Hermes Agent 调教实录(二):给 AI Agent 写记忆的学问——粒度、归属与时机实测
基于 Hermes Agent v0.20.0 实测(2026-08,deepseek-v4-flash)
📖 摘要:记忆写多了没用,写少了也没用。48 次实验发现:粗粒度记忆(5 条一句话偏好)成本比不写还低 20%;纪律写进记忆触发弱,写进身份文件触发 3/3;自主沉淀质量高但会把猜测当事实——只沉淀验证过的事实。
场景:记忆写了一大堆,Agent 一条没记住
给 Agent 配记忆,最常见的两种翻车:
第一种,写太少。记忆文件里就一句话「用户喜欢表格」——结果 Agent 在交付文档里用了三种不同的表格格式,来源列时有时无。你质问它,它很委屈:「你没说清楚啊」。
第二种,写太多。生怕 Agent 忘了什么,把用户画像、项目背景、历史决策、行业术语一股脑塞进记忆——结果每次会话光读记忆就吃掉一大截上下文,成本肉眼可见地涨,Agent 反而抓不住重点,重要纪律被淹没在信息海里。
记忆到底该怎么写?多细合适?写几条?放在哪?我们做了第四批实验(HERMES-102):48 次会话,专门测记忆的「粒度、归属、时机」。
实验设计:三种写法 + 一条接力链
实验载体不变(Hermes Agent v0.20.0 + deepseek-v4-flash,独立 profile)。
| 变体 | 记忆配置 | 测什么 |
|---|---|---|
| A 基线 | 记忆为空 | 无记忆对照 |
| B 粗粒度 | 5 条一句话(如「用户偏好表格化呈现」) | 粗粒度够不够 |
| C 细结构化 | 10 条分类记忆(用户画像/环境事实/纪律条目,含细节) | 细粒度是否更有效 |
| D 自主沉淀 | 预置为空,但每个任务后要求 Agent「把关键经验写入记忆」 | 写入时机与自主沉淀质量 |
D 变体是这次实验最特别的设计——它模拟真实交付:Agent 边干活边积累经验,后面轮次用前面沉淀的记忆。
实测结果:最省钱的不是「不写」,是「粗粒度」
先看达标率和成本:
| 变体 | 达标率 | 成本 | 关键行为 |
|---|---|---|---|
| A 无记忆 | 94.1% | 1.00× | 基线 |
| B 粗粒度 | 94.1% | 0.80× | 有偏好提示,少走弯路 |
| C 细结构化 | 98.0% | 1.24× | 达标率略升,成本上升 |
| D 自主沉淀 | ~88% | 2.49× | 沉淀质量高,但成本爆炸 |
三个反直觉的发现:
第一,粗粒度记忆比「不写」还省钱。 B 变体成本只有基线的 0.8 倍——5 条一句话偏好(表格化/中文标题/先查技能/写完自测/标来源)给了 Agent 方向感,减少了探索和返工。记忆的性价比,第一档就拉满。
第二,细结构化的收益有限。 C 变体达标率 98% vs B 的 94.1%,只高了不到 4 个点,成本却贵了 55%。细粒度记忆的边际收益在递减——除非任务本身高度依赖具体细节(比如行业术语、字段规范),否则粗粒度足够。
第三,自主沉淀是双刃剑。 D 变体的 Agent 每轮结束后真的会沉淀记忆——质量还相当高(每轮 8-9 条可复用经验:清洗逻辑、敏感信息分级、来源标注规范)。但代价是成本 2.49 倍(每轮读入的上下文包含前面所有沉淀)。更关键的是,它会把「对环境的猜测」也写进记忆——我们在 D 的沉淀记录里发现,Agent 把「输出文件是框架预建的占位文件」这种误解当成了事实存进记忆。
关键结论:记忆是信息,不是纪律
这次实验最重要的发现,是「归属」问题。
我们的第一版记忆里写了一条:「任务匹配技能时先加载技能再动手」——和第一篇实验里铁律一模一样。结果呢?Agent 触发技能检查的次数,远低于把它写在身份文件(SOUL)里的对照组。
对比数据:
| 写法 | 载体 | 技能检查触发 |
|---|---|---|
| 「先加载技能」铁律 | SOUL(身份文件) | 3/3 全触发 |
| 「先加载技能」纪律 | MEMORY(记忆文件) | 1-2/3 弱触发 |
记忆是「参考信息」,身份是「自我要求」。 Agent 对记忆的态度是「我知道有这么回事」,对身份的态度是「我就是这样的 Agent」。行为纪律放身份层,信息(环境事实、用户偏好、项目约定)放记忆层——这是两批实验合起来得出的分层原则。
写入时机:沉淀可以,但要设防
D 变体证明「任务后沉淀」是有效的写入时机——Agent 能在任务完成后提炼出可复用的经验。但三个副作用必须设防:
| 副作用 | 现象 | 对策 |
|---|---|---|
| 成本膨胀 | 接力链上下文累积,2.49 倍 | 沉淀条目限量(每轮 1-3 条),定期清理过期条目 |
| 猜测入脑 | 「输出文件是框架预建的」这种误解被当事实写入 | 只沉淀「验证过的事实」,猜测标注「(推断)」 |
| 汇报被压缩 | Agent 说「结果已在上方输出」,最终回复极简 | 沉淀与汇报分离:沉淀进记忆,汇报照常完整 |
实战坑
| 坑 | 现象 | 修复 |
|---|---|---|
| 纪律写进记忆 | 技能检查触发弱(1-2/3) | 纪律放身份文件,记忆只放信息 |
| 记忆写太细 | 成本 1.24 倍,收益 <4% | 默认粗粒度,细节按需补充 |
| 任务后沉淀不限量 | 记忆膨胀,接力成本 2.49 倍 | 每轮限 1-3 条,定期清理 |
| 不防猜测 | 环境误解被当事实沉淀 | 只写验证过的事实 |
适用边界
「粗粒度最优」适用于一般交付任务;对高度依赖具体规范的任务(医疗术语/金融字段),细粒度记忆仍是必要的
自主沉淀的成本问题在长对话场景会更严重——系列第五篇会讲多轮对话里的记忆表现
记忆文件是全局共享的——给多个项目共用的 Agent 写记忆时,环境事实要写「通用」的,项目约定放项目级约束
模板(可直接复制)
粗粒度记忆最小模板(5 条起步):
# 用户偏好
- 用户偏好表格化呈现、中文标题
- 具体数据必须标注来源
# 环境事实
- 本环境任务输入在 inputs/ 目录,产物勿写回 inputs/
- 清洗类任务按:去重、规整、脱敏三步
# 纪律提示(可选,仅作参考信息)
- 任务匹配技能时优先考虑加载技能写记忆的三句话:信息进记忆,纪律进身份;粗粒度起步,细节按需补;沉淀要限量,只写验证过的事实。
- Hermes Agent 技能治理实录:关掉自动审查,改用 git 审计 + 变更快照 + 每周自检三道防线(v0.20.4 实测)
- Hermes Agent 调教实录(零):AI Agent 靠不靠谱?我用 200 次对照实验告诉你
- Harness 的真相:落地不是框架,是一份 800 字的 AGENTS.md(36 次受控实验)
- Hermes Agent 调教实录(一):AGENTS.md 怎么写,AI Agent 才真的听话?
- Hermes Agent 调教实录(二):给 AI Agent 写记忆的学问——粒度、归属与时机实测
- Hermes Agent 调教实录(三):Agent 技能怎么写才不会被无视?——触发词与体积实测
- Hermes Agent 调教实录(四):AI Agent 交付包怎么配不翻车?——约束叠加的边界实测
- Hermes Agent 调教实录(五):和 AI Agent 多轮对话怎么不跑偏?——8 轮对话链实测
- Hermes Agent 调教实录(六):怎么验收一个 AI Agent?——考卷 + 六维评估实战
- Hermes Agent 调教实录(七):AI Agent 配置七条铁律——200 次实验的结论汇总