学习循环:Agent自己给自己造缰绳
03 学习循环:Agent自己给自己造缰绳
The Learning Loop: Self-Harnessing Agent
Hermes Agent最让人意外的不是它能做什么,而是它会变。用得越多,它越好用。这不是营销话术,是一个可
观察、可验证的闭环机制。
从一个真实场景说起
假设你第一次让Hermes帮你写一个Python脚本。你说:帮我写一个爬虫,抓取某个网站的标题和摘要。
它会写出一个能用的脚本。但风格可能不是你喜欢的,变量命名可能跟你的习惯不一样,错误处理的方式也未必符合你的
预期。挺正常的,毕竟它不认识你。
到了第十次,情况完全不同。它知道你偏好用httpx而不是requests,知道你习惯把错误日志写到文件而不是打印到终
端,知道你的项目结构通常是src/目录下按模块分,知道你讨厌过长的函数。
没有人教它这些。它是自己学会的。
这就是学习循环在做的事。
五个环节,一个闭环
Hermes的学习循环有五个环节,单看都不复杂,但串起来形成了一个持续改进的飞轮。
→ → → →
策划记忆 创建Skill Skill自改进 FTS5召回 用户建模
看起来像五个独立的功能?其实它们之间有因果关系。记忆提供了Skill创建的素材,Skill在使用中积累反馈触发自改进,
FTS5让历史经验被精准召回,用户建模把这些碎片拼成一幅完整的画。
一个一个拆开看。
环节一:策划记忆
每轮对话结束后,Hermes会主动决定哪些信息值得记住。是主动决定,不是被动存储。
传统的对话记忆很粗暴:把整个聊天历史塞进上下文。聊得越多,上下文越长,直到撑不下为止。这就像一个人把所有经
历过的事同时放在脑子里想,正常人干不了这事。
Hermes的做法更像人类写日记。每次对话结束,它会回头看一遍:这次聊了什么?有新发现吗?用户表达了什么偏好?
然后把值得记住的内容写入SQLite数据库,建好FTS5全文索引。
系统还有一个周期性的nudge机制,定时提醒Agent回顾最近的交互。有点像手机上的日记App弹通知:今天有什么值得
记录的?
环节二:自主创建Skill
当Hermes完成了一个相对复杂的任务,它会问自己一个问题:这个解决方案以后还会用到吗?
如果答案是yes,它就把解决方案提炼成一个Skill文件,存到 ~/.hermes/skills/ 目录下。这个Skill是一个markdown
文件,包含了任务描述、执行步骤、注意事项。
举个例子:你让Hermes帮你把一个CSV文件清洗并导入数据库。它做完之后,可能会创建一个叫 csv-to-database.md
的Skill,记录了数据清洗的常见步骤、你偏好的数据库连接方式、你通常需要的字段验证规则。
下次你再说「帮我导入这个CSV」,它不是从零开始,而是加载这个Skill,按你之前验证过的方式来做。
环节三:Skill自改进
Skill创建出来不是终点。每次使用的过程中,如果你给了反馈,Hermes会拿这些反馈修改Skill本身。
比如你说「这个导入脚本应该先检查表是否存在」,Hermes不只是这次加上这个检查,它会回去修改那个Skill文件,把
这条规则写进去。下次再用这个Skill,检查步骤就是默认包含的。
这个过程很像软件开发里的持续改进。每次上线出了问题,修复之后不只打个补丁,还要更新文档和规范,防止同类问题
再发生。
关键区别:传统AI工具的记忆是对话记录的堆积,Hermes的记忆是经验的蒸馏。一个是录像带,一个是笔记本。录像带
越来越长最终会溢出,笔记本可以一直用下去。
环节四:FTS5跨会话召回
记住了这么多东西,关键是能在对的时候找出来。
Hermes用SQLite的FTS5扩展做全文索引。每次新对话开始前,它会根据当前话题搜索历史记忆,把相关内容加载到上下
文中。不是加载全部历史,是按需检索。
这比你想象的重要。大多数AI工具要么不记得上次说了什么,要么把所有历史都塞进来拖慢速度。Hermes的做法是:你
问数据库相关的问题,它去翻数据库相关的记忆;你问前端的问题,它去翻前端的记忆。像一个整理得很好的笔记系统,
有目录有索引,需要什么查什么。
FTS5还有一个好处:它是纯本地的。你的记忆数据不需要上传到任何服务器,就在本地的SQLite文件里。搬家的时候,
拷贝 ~/.hermes/ 目录就行。
环节五:用户建模
最后一个环节是Honcho用户建模,这是可选的外部集成。它做的事情比记住你说过什么更进一步:它在推理你是什么样
的人。
每次对话结束后,Honcho会分析这次交流,推导出你的偏好、习惯、目标。这些推导不只是记录你说了什么,而是从你
的行为模式中归纳出更深层的特征。
比如你从来没有明确说过「我喜欢简洁的代码风格」,但Honcho通过分析你多次修改代码的模式,推断出这个结论。下
次生成代码时,它会默认走简洁路线。
关于Honcho的多维身份建模,我们在下一章详细展开。
Mitchell Hashimoto的理念,自动化了
如果你读过Harness Engineering那本橙皮书,可能记得Mitchell Hashimoto的做法。他用Claude Code时有个习惯:每
次Agent犯了一个错,他就在CLAUDE.md里加一条规则。
「不要在这个项目里用any类型。」
「测试文件放在__tests__目录下,不要放在src里。」
「commit message用英文,动词开头。」
一条一条加,几周下来,CLAUDE.md变成了一份非常详细的项目规范。Agent从一个什么都不知道的新人,变成了解项
目所有暗规则的老手。Mitchell说这感觉就像在训练一个新队员。
Hermes做的事情本质上一样,但它把这个过程自动化了。
你不需要手动写CLAUDE.md,不需要每次犯错后自己总结规则。Hermes自己观察、自己总结、自己写入Skill、自己在
下次调用时应用这些规则。
维度 Mitchell的方式(手动) Hermes的方式(自动)
规则来源 人观察到问题后手写 Agent自己从反馈中提炼
存储位置 CLAUDE.md(单个文件) 多个Skill文件 + 记忆数据库
触发改进 人记得要加规则才会加 每次使用后自动评估
跨项目迁移 需要手动复制CLAUDE.md Skill全局生效,所有项目共享
改进速度 取决于人的勤快程度 持续自动,不会懒
当然,自动不等于完美。Mitchell手动写的规则往往更精准,因为人类对自己的需求有更清晰的认知。Hermes自动总结
的规则可能需要调整,可能会误判。但关键是:它把门槛降到了零。不是每个人都有Mitchell那样的耐心去维护一份精细
的规则文件。Hermes让不想折腾配置的人也能享受到越用越好用的体验。
飞轮的加速效应
五个环节单独看都不算新鲜。记忆、Skill、检索、用户画像,AI领域都见过。
Hermes的创新在于把它们组成了一个闭环。记忆喂养Skill,Skill使用中产生新记忆,新记忆触发Skill改进,改进后的
Skill产生更好的结果,更好的结果让用户建模更准确,更准确的画像又让下一次记忆策划更有针对性。
这是一个正反馈循环。用得越多,每个环节都在变强,而且是同时变强。就像亚马逊的飞轮效应:更多用户带来更多数
据,更多数据带来更好推荐,更好推荐带来更多用户。
区别在于,Hermes的飞轮是为单个用户转的。它不需要百万用户的数据来变好,只需要你自己的使用历史。用上三五
天,你就能感受到明显的变化。
核心建议
学习循环的效果和你的使用频率直接相关。如果你一周只用一两次,改进会很慢。但如果你把它当作日常工作伙伴,每天
都用,飞轮转得会非常快。这也是为什么Hermes特别适合部署在$5 VPS上24/7运行,让它持续积累。
这意味着什么
回到标题:Agent自己给自己造缰绳。
在Harness Engineering里,缰绳是人造的。你写CLAUDE.md,配置hooks,设计反馈机制。这些都需要人的持续投入。
Hermes的思路是:让Agent在奔跑的过程中,自己编织自己的缰绳。它跑偏了,自己修正路线并记住教训。它找到了好
方法,自己沉淀成Skill供下次复用。它遇到了新用户,自己建立理解模型。
这不是说人类不需要参与了。你随时可以手动修改Skill文件,删除不合适的记忆,调整用户画像。但默认状态下,这个系
统是自驱动的。
下一章我们来看这个循环中最关键的基础设施:三层记忆系统。如果学习循环是引擎,记忆就是燃料。
The Learning Loop: Self-Harnessing Agent
Hermes Agent最让人意外的不是它能做什么,而是它会变。用得越多,它越好用。这不是营销话术,是一个可
观察、可验证的闭环机制。
从一个真实场景说起
假设你第一次让Hermes帮你写一个Python脚本。你说:帮我写一个爬虫,抓取某个网站的标题和摘要。
它会写出一个能用的脚本。但风格可能不是你喜欢的,变量命名可能跟你的习惯不一样,错误处理的方式也未必符合你的
预期。挺正常的,毕竟它不认识你。
到了第十次,情况完全不同。它知道你偏好用httpx而不是requests,知道你习惯把错误日志写到文件而不是打印到终
端,知道你的项目结构通常是src/目录下按模块分,知道你讨厌过长的函数。
没有人教它这些。它是自己学会的。
这就是学习循环在做的事。
五个环节,一个闭环
Hermes的学习循环有五个环节,单看都不复杂,但串起来形成了一个持续改进的飞轮。
→ → → →
策划记忆 创建Skill Skill自改进 FTS5召回 用户建模
看起来像五个独立的功能?其实它们之间有因果关系。记忆提供了Skill创建的素材,Skill在使用中积累反馈触发自改进,
FTS5让历史经验被精准召回,用户建模把这些碎片拼成一幅完整的画。
一个一个拆开看。
环节一:策划记忆
每轮对话结束后,Hermes会主动决定哪些信息值得记住。是主动决定,不是被动存储。
传统的对话记忆很粗暴:把整个聊天历史塞进上下文。聊得越多,上下文越长,直到撑不下为止。这就像一个人把所有经
历过的事同时放在脑子里想,正常人干不了这事。
Hermes的做法更像人类写日记。每次对话结束,它会回头看一遍:这次聊了什么?有新发现吗?用户表达了什么偏好?
然后把值得记住的内容写入SQLite数据库,建好FTS5全文索引。
系统还有一个周期性的nudge机制,定时提醒Agent回顾最近的交互。有点像手机上的日记App弹通知:今天有什么值得
记录的?
环节二:自主创建Skill
当Hermes完成了一个相对复杂的任务,它会问自己一个问题:这个解决方案以后还会用到吗?
如果答案是yes,它就把解决方案提炼成一个Skill文件,存到 ~/.hermes/skills/ 目录下。这个Skill是一个markdown
文件,包含了任务描述、执行步骤、注意事项。
举个例子:你让Hermes帮你把一个CSV文件清洗并导入数据库。它做完之后,可能会创建一个叫 csv-to-database.md
的Skill,记录了数据清洗的常见步骤、你偏好的数据库连接方式、你通常需要的字段验证规则。
下次你再说「帮我导入这个CSV」,它不是从零开始,而是加载这个Skill,按你之前验证过的方式来做。
环节三:Skill自改进
Skill创建出来不是终点。每次使用的过程中,如果你给了反馈,Hermes会拿这些反馈修改Skill本身。
比如你说「这个导入脚本应该先检查表是否存在」,Hermes不只是这次加上这个检查,它会回去修改那个Skill文件,把
这条规则写进去。下次再用这个Skill,检查步骤就是默认包含的。
这个过程很像软件开发里的持续改进。每次上线出了问题,修复之后不只打个补丁,还要更新文档和规范,防止同类问题
再发生。
关键区别:传统AI工具的记忆是对话记录的堆积,Hermes的记忆是经验的蒸馏。一个是录像带,一个是笔记本。录像带
越来越长最终会溢出,笔记本可以一直用下去。
环节四:FTS5跨会话召回
记住了这么多东西,关键是能在对的时候找出来。
Hermes用SQLite的FTS5扩展做全文索引。每次新对话开始前,它会根据当前话题搜索历史记忆,把相关内容加载到上下
文中。不是加载全部历史,是按需检索。
这比你想象的重要。大多数AI工具要么不记得上次说了什么,要么把所有历史都塞进来拖慢速度。Hermes的做法是:你
问数据库相关的问题,它去翻数据库相关的记忆;你问前端的问题,它去翻前端的记忆。像一个整理得很好的笔记系统,
有目录有索引,需要什么查什么。
FTS5还有一个好处:它是纯本地的。你的记忆数据不需要上传到任何服务器,就在本地的SQLite文件里。搬家的时候,
拷贝 ~/.hermes/ 目录就行。
环节五:用户建模
最后一个环节是Honcho用户建模,这是可选的外部集成。它做的事情比记住你说过什么更进一步:它在推理你是什么样
的人。
每次对话结束后,Honcho会分析这次交流,推导出你的偏好、习惯、目标。这些推导不只是记录你说了什么,而是从你
的行为模式中归纳出更深层的特征。
比如你从来没有明确说过「我喜欢简洁的代码风格」,但Honcho通过分析你多次修改代码的模式,推断出这个结论。下
次生成代码时,它会默认走简洁路线。
关于Honcho的多维身份建模,我们在下一章详细展开。
Mitchell Hashimoto的理念,自动化了
如果你读过Harness Engineering那本橙皮书,可能记得Mitchell Hashimoto的做法。他用Claude Code时有个习惯:每
次Agent犯了一个错,他就在CLAUDE.md里加一条规则。
「不要在这个项目里用any类型。」
「测试文件放在__tests__目录下,不要放在src里。」
「commit message用英文,动词开头。」
一条一条加,几周下来,CLAUDE.md变成了一份非常详细的项目规范。Agent从一个什么都不知道的新人,变成了解项
目所有暗规则的老手。Mitchell说这感觉就像在训练一个新队员。
Hermes做的事情本质上一样,但它把这个过程自动化了。
你不需要手动写CLAUDE.md,不需要每次犯错后自己总结规则。Hermes自己观察、自己总结、自己写入Skill、自己在
下次调用时应用这些规则。
维度 Mitchell的方式(手动) Hermes的方式(自动)
规则来源 人观察到问题后手写 Agent自己从反馈中提炼
存储位置 CLAUDE.md(单个文件) 多个Skill文件 + 记忆数据库
触发改进 人记得要加规则才会加 每次使用后自动评估
跨项目迁移 需要手动复制CLAUDE.md Skill全局生效,所有项目共享
改进速度 取决于人的勤快程度 持续自动,不会懒
当然,自动不等于完美。Mitchell手动写的规则往往更精准,因为人类对自己的需求有更清晰的认知。Hermes自动总结
的规则可能需要调整,可能会误判。但关键是:它把门槛降到了零。不是每个人都有Mitchell那样的耐心去维护一份精细
的规则文件。Hermes让不想折腾配置的人也能享受到越用越好用的体验。
飞轮的加速效应
五个环节单独看都不算新鲜。记忆、Skill、检索、用户画像,AI领域都见过。
Hermes的创新在于把它们组成了一个闭环。记忆喂养Skill,Skill使用中产生新记忆,新记忆触发Skill改进,改进后的
Skill产生更好的结果,更好的结果让用户建模更准确,更准确的画像又让下一次记忆策划更有针对性。
这是一个正反馈循环。用得越多,每个环节都在变强,而且是同时变强。就像亚马逊的飞轮效应:更多用户带来更多数
据,更多数据带来更好推荐,更好推荐带来更多用户。
区别在于,Hermes的飞轮是为单个用户转的。它不需要百万用户的数据来变好,只需要你自己的使用历史。用上三五
天,你就能感受到明显的变化。
核心建议
学习循环的效果和你的使用频率直接相关。如果你一周只用一两次,改进会很慢。但如果你把它当作日常工作伙伴,每天
都用,飞轮转得会非常快。这也是为什么Hermes特别适合部署在$5 VPS上24/7运行,让它持续积累。
这意味着什么
回到标题:Agent自己给自己造缰绳。
在Harness Engineering里,缰绳是人造的。你写CLAUDE.md,配置hooks,设计反馈机制。这些都需要人的持续投入。
Hermes的思路是:让Agent在奔跑的过程中,自己编织自己的缰绳。它跑偏了,自己修正路线并记住教训。它找到了好
方法,自己沉淀成Skill供下次复用。它遇到了新用户,自己建立理解模型。
这不是说人类不需要参与了。你随时可以手动修改Skill文件,删除不合适的记忆,调整用户画像。但默认状态下,这个系
统是自驱动的。
下一章我们来看这个循环中最关键的基础设施:三层记忆系统。如果学习循环是引擎,记忆就是燃料。