Hermes Agent v0.17.0 对
memory工具进行了自诞生以来最大幅度的升级——原子批量操作。旧版"删一条→等一轮→再存一条"的多轮拉锯战被彻底消灭,一次 API 调用即可完成全部记忆编辑,实测工具调用量减少 52%,最坏情况从 4-6 次降至 1 次。
▲ 旧版5次调用 vs 新版1次调用:最坏情况从5.5次降至1次,降低82%
为什么你需要关心记忆系统的这次升级
如果你在用 Hermes 跑自动化流水线(cron 定时任务、多步骤内容生产、长时间研究会话),你一定遇到过这个场景:
Agent 跑了几十轮,记忆快满了,想存一条新发现——add 被拒绝(超出 2200 字符上限)。然后它开始"腾空间":remove 一条旧记忆 → 等下一轮 → 再 add 新内容 → 又超了 → 再 remove → 再 add。一来一回 4-6 次工具调用,每次都重新发送整个对话上下文给模型,Token 在燃烧,时间在流逝。
v0.17.0 的 原子批量操作(atomic batch operations)把这场拉锯战变成了一次调用。本文不仅讲原理,还会给你可以直接复制粘贴的实战代码。
旧世界的痛苦:多轮"腾挪"拉锯战
先看一个真实场景。假设你的 Hermes 记忆已经用了 2000/2200 字符(91%),你想添加一条 300 字符的新发现:
5 次工具调用,每次都要重新发送整个对话上下文(可能几万到十几万 token)。而且旧版的 schema 还在 instruct 模型"在一个 turn 里完成 consolidate + retry"——这在单操作 API 下根本不可能。
这个问题在长时间运行的自动化场景中尤为致命。做内容生产流水线时,Agent 会积累大量环境信息、工具路径、API 密钥位置等记忆——一旦满了,整个流水线就开始"原地打转"。
v0.17.0 的解法:operations 数组 + 原子性保证
新版的 memory 工具增加了一个 operations 参数——一个操作数组,里面可以同时包含多个 add、replace、remove 操作:
一次调用,四条操作。而且最关键的是:字符限制检查只在最终状态进行一次。
这意味着中间状态可以"暂时超出"——只要最终写入磁盘的状态不超出 2200 字符即可。先删后加的场景彻底被覆盖。
原子性保证:要么全成功,要么全回滚
批量操作遵循严格的原子性:
- 任何一个操作格式错误 → 整个 batch 中止,不写入任何内容
- 任何一个
old_text匹配不到或匹配到多条 → 整个 batch 中止 - 最终状态超出字符限制 → 整个 batch 中止
这不是"尽力而为"的批处理,是数据库级别的事务语义。你可以放心地把 remove 和 add 放在同一个 operations 数组里——如果 add 失败,前面的 remove 也不会生效。
实战:三个你必须掌握的批量操作模式
▲ operations数组结构:一次调用包含remove、add、replace多种操作,原子性执行
模式 1:腾空间 + 存新(最常用)
记忆已满 91%,需要删旧换新:
效果:旧版需要 3-4 次调用,新版 1 次调用。
模式 2:批量纠正(适用于信息刷新)
发现多条记忆需要同时更新:
模式 3:用户画像批量更新(user target)
用户偏好变了,一口气全改:
注意:user 目标的字符限制更紧(1375 字符),批量操作时尤其要注意最终状态不超出。
数据说话:到底快了多少?
Nous Research 在 Hermes v0.17.0 的 PR 中提供了实测数据(来源:GitHub PR #48507,2026年6月19日发布):
| 场景 | 旧版(平均调用次数) | 新版(平均调用次数) | 降低 |
|---|---|---|---|
| 常规添加 | 2.25 | 1.0 | 56% |
| 高负载存储 | 3.75 | 2.0 | 47% |
| 近满存储(最坏情况) | 5.5 | 1.0 | 82% |
| 混合更新 | 3.0 | 2.0 | 33% |
| 总体(4场景×4重复) | 3.12 | 1.50 | 52% |
最坏情况——记忆接近满载需要腾空间——从 5.5 次降到 1 次,降幅 82%。这不仅是速度提升,更是 Token 消耗的大幅削减。
每一次工具调用都需要重新发送整个对话上下文。假设上下文 5 万 token,按 DeepSeek v3 的 API 价格(输入约 ¥0.6/百万 token),一次工具调用的上下文重发成本约 ¥0.03。降到 1 次调用,单次记忆操作就能省 ¥0.12-0.15。对于每天跑几十次的自动化流水线,一个月能省出一顿火锅钱。
踩坑提醒:升级到 v0.17.0 后的三个注意事项
▲ 实测数据:4场景×4重复,平均工具调用从3.12次降到1.50次,整体降低52%
坑 1:不要混用 `action` 和 `operations`
坑 2:`old_text` 子串匹配在批量模式下更严格
单操作模式下,old_text="Python" 可能匹配到"Python 版本"那条记录。但在批量模式下,由于原子性要求,任何模糊匹配都会导致整个 batch 回滚。
坑 3:先删后加的顺序仍然重要
虽然批量操作是原子的,但操作按数组顺序执行。如果你先 add 再 remove,中间状态可能更早触及限制:
虽然最终状态检查只看最终结果,但中间操作的执行顺序会影响子串匹配的可用性——先删后加是最安全的模式。
迁移指南:从旧版记忆管理到批量操作
如果你的 Hermes 还在 v0.16 或更早,升级后记忆工具的使用方式不需要任何改动——单操作模式(action/content/old_text)完全向后兼容。但如果你想享受批量操作的好处,以下是迁移建议:
第一步:检查当前版本
第二步:升级
第三步:识别可以批量化的人工操作
回忆一下你最近几次手动让 Hermes 删旧记忆、存新记忆的场景——那些"先删几条、再存一条"的操作序列,就是最适合改为批量操作的候选。
第四步:在 cron job 的 prompt 中启用批量模式
如果你用 Hermes 的 cron 跑自动化任务,在 prompt 中告诉它使用批量操作:
总结
Hermes v0.17.0 的记忆批量操作不是锦上添花的小优化——它消灭了一个结构性的效率问题。旧版"先腾后存"的多轮拉锯战在长会话和自动化流水线中是实实在在的 Token 黑洞。
三个关键要点:
- 一次调用多操作:
operations数组支持 add/replace/remove 混合 - 原子性保证:要么全成功要么全回滚,不会出现"删了旧的、新的没存上"
- 实测 52% 效率提升:从平均 3.12 次调用降到 1.50 次,最坏情况从 5.5 次降到 1 次
对于跑自动化流水线的 AI 创业者来说,这不是"更快了一点",是从"偶尔卡住需要人工解围"到"全程无人值守"的跨越。
*本文基于 Hermes Agent v0.17.0(v2026.6.19)Release Notes 和 GitHub PR #48507 的实测数据撰写。记忆系统升级由 Nous Research 的 teknium1 主导开发。*
本文由AI辅助创作,经人工审核编辑发布
更多一人公司案例与工具 → 微信公众号搜索「AI创业内参」→ 菜单栏「官方网站」即可访问 xopcx.com
