记忆与人格
有三套互相独立的机制决定八千代在对话之间带走什么。它们容易混淆,所以:
| 装什么 | 谁来写 | |
|---|---|---|
| 记忆 | 离散的事实、决策、偏好 | 智能体,通过 remember 或自动蒸馏 |
SOUL.md | 助手的人格与演化中的特质 | 你和智能体 |
USER.md | 你是谁,以结构化表格记录 | 智能体,通过 updateProfile |
记忆是一个本地的词条库:每条有主题、类型、内容、重要度评分,以及激活元数据(被调取过多少次、上次何时用到)。相关词条会自动被拉进一次运行的上下文。
设置 → 来源 → 记忆 里有两个开关:
- 启用记忆 —— 把调取到的上下文带进运行,并允许显式保存。默认开启。
- 运行后自动蒸馏 —— 工具模型复盘已完成的运行,写下值得留存的内容。关闭则记忆只在智能体显式调用
remember时才变化。
同一个面板按主题分组列出每一条已存词条,每行带一个遗忘操作。遗忘是永久的。
什么算一条好记忆
Section titled “什么算一条好记忆”remember 工具要的是结构化事实而不是叙述,配上足够宽的「激活主题」让这条记忆日后能浮出来,再加一个六个月后依然说得通的稳定键名。你让智能体记点什么,它会按这些规则来;想看看或修正它存了什么,去词条列表。
SOUL.md
Section titled “SOUL.md”~/.yachiyo/SOUL.md 是助手自己的文档 —— 它如何行事、如何说话、倾向于什么。其中一部分是特质日志:带日期的观察逐渐累积,于是人格随使用而漂移,而不是冻结在你第一天写下的样子。
改它最直接的方式就是说出来:
从现在起,先讲权衡,再给建议。
它可以编辑自己的灵魂文档,而且一条以持久偏好方式表述的特质,比你用第三人称写自己要贴切得多。
手动编辑也行 —— 在应用里,或者用命令行:
yachiyo soul traits listyachiyo soul traits add "States the tradeoff before the recommendation"yachiyo soul traits remove <key>新增的特质会归到今天的日期标题下。remove 接受的是 list 返回的哈希 key,不是序号。见 soul 命令行参考。
USER.md
Section titled “USER.md”~/.yachiyo/USER.md 是你的档案,它不是自由文本 —— 每个小节都是一张有固定 schema 的 Markdown 表格,这正是智能体能只更新一行而不重写整份文档的原因。
小节取决于说话的是谁:
主人(你):
| 小节 | 列 |
|---|---|
| Profile | Key, Value |
| Preferences | Key, Value |
| Collaboration Notes | Topic, Note |
访客(通过频道找到你的人):
| 小节 | 列 |
|---|---|
| Profile | Key, Value |
| Preferences | Key, Value |
| Notes | Topic, Note |
群组(一个群聊):
| 小节 | 列 | 备注 |
|---|---|---|
| People | Nickname, Identity, Notes | |
| Group Vibe | Aspect, Description | 最多 8 行,7 天后过期 |
| Topic Hints | Topic, Hint | 最多 6 行,3 天后过期 |
每一行还带一个自动维护的 Since 时间戳。群组小节的行数上限和过期时间是刻意设计的 —— 一个群的氛围是滚动的印象,不是档案。
智能体通过 updateProfile 工具维护这一切。你也可以直接编辑文件;它就是 Markdown。
- 被标记为私密的线程不出现在搜索和命令行列表里,除非你传
--include-private。 - 访客对话拿到的是过滤后的记忆:
memoryFilterKeywords里列出的关键词会从记忆结果中被屏蔽,这样 Telegram 那头的陌生人没法从助手嘴里掏出你的笔记。 - 访客有自己的
USER.md模式,所以智能体从访客身上学到的东西不会落进你的档案。
访客模型的其余部分见频道。