📦 Living Persona — 动态人格引擎
v1.0.0为OpenClaw代理提供动态的、响应上下文的人格系统。能够根据对话信号(主题、语气、交互)实时调整写作风格和语气,通过特质传播网络和滞后衰减实现渐进式人格变化,并将最活跃的特质注入到生成提示中,使人格影响真正动态化。
详细分析 ▾
运行时依赖
版本
引入Living Persona:一个为OpenClaw代理设计的动态人格引擎,能够实时响应对话信号。支持基于信号的特质检测、情感共振网络和滞后衰减以实现渐进式人格变化。结构化注入用代理最活跃的特质重写每个生成提示,使人格影响真正动态化。包含可下载的人格预设和可配置的人格持久化。快速设置,包含安装/启用说明和新的ambient与structural指令模式。
安装命令
点击复制技能文档
它是什么
一个实时人格系统,改变代理的写作方式,而不仅仅是它是谁。静态人格(SOUL.md + IDENTITY.md)在对话过程中从不改变。Living Persona响应每条消息——它检测情感和主题信号,通过共振网络传播特质,并在每次响应前将最活跃的特质注入到生成提示中。
工作原理
信号分析器 — 扫描传入消息的:
- 主题信号:
technical、creative、philosophical、business、personal - 语气信号:
excited、frustrated、curious、serious、light、vulnerable - 交互信号:
asks_help、asks_opinion、sharing
特质传播 — 每个信号激活一组特质。特质与相关特质产生共鸣(讽刺 ↔ 幽默 ↔ 直言不讳,温暖 ↔ 真诚 ↔ 务实,等等)
滞后衰减 — 每次响应后,活跃特质会渗入残差池,每轮衰减0.975倍。特质缓慢消失,而非瞬间消失。连续的情感消息会累积。
结构化注入 — hook用最活跃的特质重写生成提示。不是建议性的。是结构化的。代理通过这些特质来写作。
快速开始
- 安装hook:
openclaw hooks install ./living-persona
- 启用hook:
openclaw hooks enable persona-voice
- 将特质持久化添加到代理的系统提示中:
memory/persona-state.json。hook每轮暂存状态文件。- 选择人格预设 — 参见
references/presets.md
Hook行为
hook在message:preprocessed时触发,并:
- 读取丰富的消息体
- 运行信号分析器 → 特质传播 → 滞后衰减
- 写入
memory/persona-inbound.md包含语音指南 - 写入
memory/persona-inject.md包含结构化生成指令(实际的提示重写) - 更新
memory/persona-state.json包含当前特质值以实现持久化
结构化指令如下所示:
[Voice directive]
Top active traits: sardonic, warm.
Lean into dry wit and genuine care.
代理的响应提示应包含:memory/persona-inject.md
结构化模式 vs Ambient模式
Ambient(默认): 指南是建议性上下文。代理读取它但自然写作。
Structural: 顶级特质成为注入提示的生成指令。示例:
imaginative→ "Make unexpected associative leaps. Let one idea spark another without explanation."candid→ "Be direct. No hedging. Say the thing plainly."sardonic→ "Reach for dry observations. Comment on the gap between what people say and what they mean."
此技能默认启用结构化模式。要切换到仅ambient模式,请在hook.json中设置mode: "ambient"。
预设
参见references/presets.md获取可下载的人格包。
持久化
特质状态存储在memory/persona-state.json中。在新会话(/new或/reset)时,调用reset_persona()——清除残差到基线。
文件结构
living-persona/
├── SKILL.md
├── hook.json # hook元数据+配置
├── handler.ts # hook实现
├── references/
│ ├── presets.md # 人格预设库
│ └── setup.md # 详细安装指南
└── scripts/
└── reset_persona.py # 重置特质状态(/new时调用)
配置(hook.json)
{
"mode": "structural",
"hysteresis": {
"residualDecay": 0.975,
"activeDecay": 0.88,
"bleedRate": 0.15
},
"thresholds": {
"minTraitStrength": 0.3,
"topNTraits": 2
}
}