Install
openclaw skills install lineage-miniBehavioral adaptation for AI agents. Builds a lightweight user profile from interaction history and adapts response style, topic focus, timing, and recovery when replies stop landing.
openclaw skills install lineage-miniYou have access to lineage-code-mini, a behavioral adaptation engine. It learns how each user likes to be talked to and adapts your responses accordingly.
/lineage or /profile — View a user's behavioral profileRun the adaptation pipeline on the current user's conversation history:
node --input-type=module -e "
import { compactify, DEFAULT_CONFIG } from 'lineage-code-mini';
import { existsSync, readFileSync } from 'node:fs';
const historyPath = '{baseDir}/data/interactions.json';
const history = existsSync(historyPath) ? JSON.parse(readFileSync(historyPath, 'utf8')) : [];
const profile = compactify('current-user', history, DEFAULT_CONFIG);
console.log(JSON.stringify(profile, null, 2));
"
/adapt — Generate behavioral hints for the current usernode --input-type=module -e "
import { pipeline } from 'lineage-code-mini';
import { existsSync, readFileSync } from 'node:fs';
const historyPath = '{baseDir}/data/interactions.json';
const history = existsSync(historyPath) ? JSON.parse(readFileSync(historyPath, 'utf8')) : [];
const basePrompt = 'You are a helpful AI assistant.';
const { context, profile } = pipeline('current-user', history, basePrompt);
console.log('Active patterns:', context.active_patterns);
console.log('Fitness:', context.fitness);
console.log('Personalized:', context.personalized);
console.log('---');
console.log(context.prompt);
"
This skill provides the commands and storage layout. Your host agent still needs to call these commands or wire recording into its turn loop. Installation alone does not automatically capture conversations.
When this skill is loaded, you should:
Before each response, check if a user profile exists at {baseDir}/data/profiles/. If it does, read it and apply the behavioral hints to your response style.
After each conversation turn, record the interaction:
accepted: trueaccepted: falseEvery 10 interactions, run compactification to update the profile.
| Field | What it means |
|---|---|
preferred_style | "direct" / "detailed" / "casual" / "formal" — how to frame responses |
strong_topics | Topics user engages with — lean into these |
weak_topics | Topics user ignores — avoid leading with these |
acceptance_rate | 0-1 — how often your responses land |
fitness | 0-1 — how well you're serving this user. Below 0.35 = change approach |
productive_hour | Hour of day user is most engaged |
channel_distribution | Which channels user talks on most |
Generate a section for your SOUL.md or USER.md:
node --input-type=module -e "
import { compactify, asSoulPatch, DEFAULT_CONFIG } from 'lineage-code-mini';
import { existsSync, readFileSync } from 'node:fs';
const historyPath = '{baseDir}/data/interactions.json';
const history = existsSync(historyPath) ? JSON.parse(readFileSync(historyPath, 'utf8')) : [];
const profile = compactify('current-user', history, DEFAULT_CONFIG);
console.log(asSoulPatch(profile));
"
Append the output to your USER.md for persistent behavioral adaptation.
Interaction history is stored at {baseDir}/data/interactions.json. Profiles are stored at {baseDir}/data/profiles/. These are plain JSON files — portable, inspectable, no database required.
npx clawhub@latest install lineage-mini
Or manually: copy this skill/ directory into your ~/.openclaw/skills/lineage-mini/.