跳转到内容

记忆与人格

有三套互相独立的机制决定八千代在对话之间带走什么。它们容易混淆,所以:

装什么谁来写
记忆离散的事实、决策、偏好智能体,通过 remember 或自动蒸馏
SOUL.md助手的人格与演化中的特质你和智能体
USER.md你是谁,以结构化表格记录智能体,通过 updateProfile

记忆是一个本地的词条库:每条有主题、类型、内容、重要度评分,以及激活元数据(被调取过多少次、上次何时用到)。相关词条会自动被拉进一次运行的上下文。

设置 → 来源 → 记忆 里有两个开关:

  • 启用记忆 —— 把调取到的上下文带进运行,并允许显式保存。默认开启。
  • 运行后自动蒸馏 —— 工具模型复盘已完成的运行,写下值得留存的内容。关闭则记忆只在智能体显式调用 remember 时才变化。

同一个面板按主题分组列出每一条已存词条,每行带一个遗忘操作。遗忘是永久的。

remember 工具要的是结构化事实而不是叙述,配上足够宽的「激活主题」让这条记忆日后能浮出来,再加一个六个月后依然说得通的稳定键名。你让智能体记点什么,它会按这些规则来;想看看或修正它存了什么,去词条列表。

~/.yachiyo/SOUL.md 是助手自己的文档 —— 它如何行事、如何说话、倾向于什么。其中一部分是特质日志:带日期的观察逐渐累积,于是人格随使用而漂移,而不是冻结在你第一天写下的样子。

改它最直接的方式就是说出来:

从现在起,先讲权衡,再给建议。

它可以编辑自己的灵魂文档,而且一条以持久偏好方式表述的特质,比你用第三人称写自己要贴切得多。

手动编辑也行 —— 在应用里,或者用命令行:

Terminal window
yachiyo soul traits list
yachiyo soul traits add "States the tradeoff before the recommendation"
yachiyo soul traits remove <key>

新增的特质会归到今天的日期标题下。remove 接受的是 list 返回的哈希 key,不是序号。见 soul 命令行参考

~/.yachiyo/USER.md 是你的档案,它不是自由文本 —— 每个小节都是一张有固定 schema 的 Markdown 表格,这正是智能体能只更新一行而不重写整份文档的原因。

小节取决于说话的是谁:

主人(你):

小节
ProfileKey, Value
PreferencesKey, Value
Collaboration NotesTopic, Note

访客(通过频道找到你的人):

小节
ProfileKey, Value
PreferencesKey, Value
NotesTopic, Note

群组(一个群聊):

小节备注
PeopleNickname, Identity, Notes
Group VibeAspect, Description最多 8 行,7 天后过期
Topic HintsTopic, Hint最多 6 行,3 天后过期

每一行还带一个自动维护的 Since 时间戳。群组小节的行数上限和过期时间是刻意设计的 —— 一个群的氛围是滚动的印象,不是档案。

智能体通过 updateProfile 工具维护这一切。你也可以直接编辑文件;它就是 Markdown。

  • 被标记为私密的线程不出现在搜索和命令行列表里,除非你传 --include-private
  • 访客对话拿到的是过滤后的记忆memoryFilterKeywords 里列出的关键词会从记忆结果中被屏蔽,这样 Telegram 那头的陌生人没法从助手嘴里掏出你的笔记。
  • 访客有自己的 USER.md 模式,所以智能体从访客身上学到的东西不会落进你的档案。

访客模型的其余部分见频道