最近看了Hermes Agent的文档,它的设计思路确实有点不一样。不是那种堆功能的框架,而是内部有一套让AI自己改进的逻辑。这篇聊聊学习循环、三层记忆、Skill系统和工具集成这几个方面。

学习循环

Hermes最让我觉得有意思的是它会随着使用慢慢变好。第一次让它写爬虫,代码风格可能不太对,变量命名也不合习惯。用到第十次的时候,它已经知道你喜欢用httpx而不是requests,知道你把错误日志写文件而不是打印出来。没人专门教它这些。

背后的机制是一个持续运转的闭环。每次对话结束,Hermes会自己回顾:聊了什么,有没有值得记住的东西,用户表达了什么偏好。然后把关键信息写入SQLite数据库。这有点像写日记,不是记流水账,而是提炼要点。

更关键的是,当它完成一个相对复杂的任务后,会判断这个解决方案以后还会不会用到。如果会,就自己创建一个Skill文件存到~/.hermes/skills/目录。下次再遇到类似需求,直接调用这个Skill,不用从零开始。

Skill还会自我改进。你给了反馈之后,它不只是这次修正,而是回去修改Skill文件本身。你说“这个导入脚本应该先检查表是否存在”,它就把这条规则写进Skill里。下次自动包含这个检查步骤。这有点像持续迭代,只是现在Agent自己来做了。

检索用的是SQLite的FTS5全文索引,纯本地。新对话开始时,它根据当前话题搜索相关历史记忆,只把必要的内容加载进上下文。不会像有些工具那样把所有历史塞进去,聊几天就爆掉。

三层记忆

大多数AI助手的记忆像金鱼,上一轮的话下一轮就忘了。Hermes想做的是记住你说过什么、知道你是什么样的人、还学会了你做事的方式。

第一层是会话记忆,存的是“发生了什么”。每轮对话的内容、工具调用结果都写进SQLite,需要的时候按关键词检索出来。第二层是持久记忆,存的是“你是谁”。你的编码偏好、项目结构习惯、常用工具链,这些跨会话保持,不会因为新对话就丢失。

第三层叫Skill记忆,存的是“怎么做事”。每个Skill就是一个markdown文件,放在skills目录下面,可以直接打开看,觉得不对也能手动改。

还有个可选组件叫Honcho,是一个用户建模系统。它不只是记住你说过什么,还会推断你是什么样的人。比如你连续几周都在写Python脚本,它可能推断出你的技术水平、工作节奏,甚至你嘴上说的偏好和实际行为的矛盾。这些推断会悄悄影响后续对话,你会感觉它越来越懂你,但又说不清楚哪里变了。

不过记忆系统没有自动过期机制。用久了数据库会越来越大,过时的信息需要自己清理。另外如果早期记错了什么东西,这个错误可能会一直影响后面的行为。所以偶尔去~/.hermes/目录下翻翻还是有必要的。

Skill系统

Skill在Hermes里就是独立的markdown文件,放在skills目录。来源有三种:安装时自带的预置能力,Agent自己创建提炼的,还有从社区Skills Hub安装的。

Hermes的Skill是活的,不是写死就不动了。它跑在学习循环里,根据实际反馈自动调整。执行任务→收集反馈→分析并修改Skill文件→下次用新版本。同一个写代码的Skill,Python开发者和Rust开发者用几周后会演化成两个很不一样的版本。这跟那些主要靠人工维护Skill的系统不太一样,各有优劣吧。

Hermes采用了agentskills.io标准,这个标准目前已经有三十多个工具支持,包括Claude Code、Cursor这些。你为Claude Code写的Skill可以直接在Hermes里用,反过来也行。Skill不再是某个工具的专属资产,换工具不用重写。

有个小问题:Skill自改进的效果取决于你的反馈够不够清楚。如果你只是觉得“不太对”但不说具体哪里不对,Agent很难准确改进。好的反馈才能带来好的进化方向。

工具和MCP

Hermes内置了四十多个工具,分成几大类:执行类(跑命令、操作文件)、信息类(搜索网页、浏览器自动化)、媒体类(看图、生图、语音)、记忆类(操作记忆层、管理Skill、定时任务)、协调类(委派子Agent、多模型推理)。

有几个功能值得单独提一下。session_search用FTS5搜索历史对话,能让Agent快速找回“上周讨论过的那个方案”。moa同时调用多个LLM,综合多个模型的回答,适合事实核查这种场景。cronjob支持用自然语言定义定时任务,你说“每天早上九点帮我看GitHub通知”,它就自动创建定时触发,不用写cron表达式。

MCP是Model Context Protocol,Anthropic提出的开放标准。Hermes通过stdio或HTTP连接任意MCP Server,目前生态覆盖了六千多个应用——GitHub、Slack、Jira、Google Drive、各种数据库。接入就是在config.yaml里加一段配置,还可以做工具过滤,只暴露特定工具给Agent,遵循最小权限原则。

子Agent委派是比较强大的协调能力。它能生成子Agent实例,把任务分发出去并行执行。每个子Agent有独立上下文、受限工具集,最多同时跑三个。这个限制是有原因的,测试发现超过三个之后,主Agent汇总结果的质量会明显下降——不是算力不够,是模型在整合太多独立信息源时容易分心。

工具层面做了三重约束:只启用配置里允许的工具、代码在沙箱里执行、子Agent只能使用指定的工具子集。这个安全模型比较务实,不追求理论完美,但在实用性和安全性之间找了个折中。

如果想要《Hermes Agent从入门到精通》这本书的pdf,可以来这里直接下载

Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐