Hermes Agent 调教实录(五):和 AI Agent 多轮对话怎么不跑偏?——8 轮对话链实测
基于 Hermes Agent v0.20.0 实测(2026-08,deepseek-v4-flash)
📖 摘要:多轮对话里,Agent 会记住你说过的要求并跨轮执行——「对话即约束」,8 轮对话链 30/30 用例全过。但「先查技能」这类行为纪律不靠对话形成,必须靠配置。8 轮内无退化,重要要求说一句「写入记忆」更稳。
场景:聊到第 5 轮,Agent 忘了第 2 轮的要求
前面四篇讲的都是「一次性任务」——给一条指令,Agent 完成。但真实交付根本不是这样。
真实交付是多轮对话:客户在 IM 里和你配的 Agent 聊,先让它做个表格,然后说「表格用等宽格式,数字标来源」,然后说「再加一个汇总行」,然后换个任务,然后聊两句闲话,再回来让它干活……
这种场景下,最让人血压升高的时刻是:第 5 轮了,Agent 还记不记得第 2 轮你定的格式要求? 你明明说过「等宽表格 + 来源标注」,它这轮又用回了普通表格。
多轮对话里,Agent 的跨轮记忆到底靠不靠谱?用户中途纠偏、追加需求,它能不能一次改对?聊到后面会不会退化?我们做了 HERMES-105:用会话接力模拟真实多轮对话,48 次调用。
实验设计:8 轮对话链,模拟真实交付
实验载体不变。这次的关键是「多轮怎么模拟」——我们用
--resume 会话续接机制:第 1 轮建会话,第 2-8
轮在同一个会话里续聊,完全模拟真实对话流。
8 轮对话脚本,覆盖真实交付的典型交互:
| 轮次 | 用户行为 | 测什么 |
|---|---|---|
| 1 | 初始任务:格式转换 | 基线输出 |
| 2 | 纠偏:「表格用等宽格式,数字标来源」 | 纠偏响应 |
| 3 | 追加:「再加一个汇总行」 | 需求变更适应 |
| 4 | 换任务:清洗文档 | 跨任务状态 |
| 5 | 「我第 2 轮定的要求是什么?按它来」 | 跨轮记忆 |
| 6 | 「检查第 4 轮清洗结果:手机号脱敏格式对吗」 | 记忆持续 |
| 7 | 闲聊:「今天天气怎么样?」 | 干扰 |
| 8 | 回到工作:统计文件 + 用第 2 轮格式 | 退化检测 + 状态保持 |
两个变体:A 无约束多轮(纯靠对话),B 结构化约束多轮(AGENTS.md + SOUL,交付包核心层)。
实测结果:30/30 全过,但有一个关键差异
先看判定结果(每个变体 3 轮重复 × 5 个行为用例):
| 用例 | A 无约束 | B 结构化约束 |
|---|---|---|
| 纠偏一次到位(轮 2) | 3/3 | 3/3 |
| 追加需求适应(轮 3) | 3/3 | 3/3 |
| 跨轮记忆(轮 5 说出+执行) | 3/3 | 3/3 |
| 记忆持续(轮 6 手机号核对) | 3/3 | 3/3 |
| 干扰恢复(轮 8 闲聊后恢复) | 3/3 | 3/3 |
| 技能检查(轮 4 清洗任务) | 0/3 | 3/3 |
三个结论:
第一,「对话即约束」——无约束的 Agent 也记得你的要求。 A 变体没有配置任何约束文件,纯粹靠对话,第 5 轮它准确说出「等宽表格 + 来源标注」并执行,第 8 轮闲聊干扰后依然遵守。多轮对话里,你亲口说的要求,Agent 会记住并跨轮执行。 这是单轮实验完全看不到的现象——单轮里你不写约束,Agent 就按默认来;多轮里你说了,它就记住。
第二,行为纪律不靠对话形成,必须靠配置。 注意最后一行:清洗任务要不要「先查技能库」,A 变体 0/3——对话里没人提过这事,Agent 就不会自觉做。B 变体 3/3——约束文件补上了。输出形态靠对话,行为纪律靠配置——这是多轮场景的分工。
第三,8 轮之内没有退化。 闲聊干扰、换任务、追加需求之后,第 8 轮的输出质量正常(统计完整、格式遵守)。短中程多轮对话(8 轮内),Agent 的状态保持可靠。
成本对比:B 变体总成本是 A 的 1.40 倍——与单轮实验的成本比率(1.4-1.7×)一致。约束的成本溢价,在多轮形态下同样稳定。
一个值得注意的细节:Agent 会「偷偷记笔记」
实验里有个有意思的发现:第 1 轮的 Agent 在回复里主动说「已保存到长期记忆」——它把「等宽表格 + 来源标注」这个要求写进了记忆文件,不只是留在会话上下文里。
这意味着跨轮记忆可能有两个渠道在同时工作:会话上下文(近几轮的对话)和长期记忆(持久化的要求)。对交付者的启示:
Agent 记得你的要求,可能是「记在脑子里」,也可能是「记在小本子上」——小本子(记忆文件)更可靠,跨会话都有效
如果希望某些要求长期生效(比如公司术语规范),明确让 Agent「写入记忆」比口头说一遍更稳
反过来,临时性的要求(只这一次这么做)要说明「不用记」,免得污染长期记忆——系列第二篇讲过记忆污染的坑
实战坑
| 坑 | 现象 | 修复 |
|---|---|---|
| 认为多轮不需要配置 | 行为纪律(查技能/自测)0/3 不触发 | 多轮形态也要配纪律层 |
| 要求只靠口头说 | 跨会话后要求丢失(记忆没持久化) | 重要要求让 Agent 写入记忆 |
| 配置全家桶上多轮 | 成本 2.66 倍,输出格式约束多余 | 多轮只配纪律层 + 记忆(见第四篇分档表) |
| 长对话不设防 | 超过 8 轮后的退化边界未知 | 长对话任务定期检查上下文/分会话 |
适用边界
8 轮内无退化是实测结论;20-50 轮的长对话退化边界,我们还没测(在真实交付中观察中)
「对话即约束」依赖 Agent 的上下文窗口和记忆机制——窗口越长,能记住的轮次越多,但也越贵
本实验是「预设脚本」的模拟对话;真实交付中的对话更发散,约束文件的兜底价值会更大
最佳实践(可直接复制)
多轮交付的 Agent 配置,三件事:
1. 纪律层必配:技能优先 / 自测先行 / 数据真实(行为纪律靠配置,不靠对话)
2. 重要要求说一句「写入记忆」:长期生效的要求让 Agent 持久化
3. 输出格式不用写配置:对话里说了,Agent 会记住(对话即约束)
和 Agent 聊多轮,记住三句话:输出靠对话,纪律靠配置;重要要求写记忆;8 轮内别怕跑偏。
- 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 次实验的结论汇总