Hermes Agent 与OpenClaw有什么不同?
这两天Hermes Agent很火,连续好几天Github Trending 第一。 我也从安装配置了一下Hermes,看看和OpenClaw比有什么不同。 今天分享一下我的发现。
Hermes Agent
Hermes Agent是Nous Research的产品,就是做Hermes系列开源模型那个团队。2026年2月上线Agent产品,到现在GitHub上63000多star,8000多次fork,到4月份已经v0.8.0了。
项目地址:
在安装之前,我们先来了解一下这个新的Agent系统。
Hermes 采用了一种混合架构:
- Python部分 (逻辑大脑): 负责主循环(ReAct 循环)、LLM 的推理编排(Orchestration)以及复杂的内存搜索。它支持
uv高速管理环境。 - Node.jsbuf (工具触角): 专门负责高并发的 I/O 任务,特别是对 MCP (Model Context Protocol) 的原生支持,以及 WhatsApp、Telegram 等网关的长连接处理。
它的数据目录结构是这样的
~/.hermes/
.env # API keys,注意别把明文key写在config.yaml里
config.yaml # 所有配置
SOUL.md # Agent的人设和身份定义
sessions/ # 对话历史
memories/ # 持久化记忆
skills/ # 技能库
state.db # SQLite数据库,FTS5全文索引
cron/ # 定时任务
hooks/ # 事件钩子
logs/ # 运行日志
记忆系统
Hermes最核心的卖点是记忆。但它做的不是简单的对话历史保存,而是一整套多层架构
内置记忆:MEMORY.md和USER.md
~/.hermes/memories/下有两个文件。
MEMORY.md是Agent自己的笔记,记录环境信息、项目约定、工具的坑;
USER.md是用户画像,偏好、沟通风格、技术栈。
写入时有字符上限,memory是2200字符,user是1375字符,大概800和500 token。
每次写入还会扫描注入攻击和渗透模式,curl ... $KEY、cat .env、authorized_keys这些都会被拦。
这个设计有个好处是可审计性。用户可以直接打开MEMORY.md看Agent记住了什么,甚至手动编辑。相比向量数据库的黑箱,这对建立信任很重要。
会话搜索:SQLite FTS5
state.db用了FTS5做全文索引,WAL模式(Write-Ahead Logging)支持并发读。分词器用的porter unicode61,同时支持英文词干提取和Unicode(包括中文)。schema里sessions表记录会话元数据,messages表存每条消息,messages_fts是FTS5虚拟表,三个trigger保持同步。
搜索流程:
FTS5关键词匹配
→ 按session分组去重
→ 通过parent_session_id链回溯到根会话(压缩和委派会产生子会话)
→ 每个会话截取匹配位置前后约100K字符
→ 最多5个会话并行调用辅助模型(默认Gemini Flash)做摘要
→ 摘要结构化输出(目标、约束、进度、关键决策、待解决问题、相关文件)。
这个”检索+LLM摘要”的两阶段设计是经典RAG模式。FTS5的优势在于零外部依赖、毫秒级查询、支持中文,SQLite文件天然可移植。
有两个细节设计得不错。
一是会话启动时会做一个frozen snapshot,把MEMORY.md和USER.md的内容锁进system prompt,会话中间的写入直接落盘但不改system prompt,整个会话期间LLM的前缀缓存不会被破坏。
二是上下文压缩用辅助模型生成结构化摘要,后续再压缩时迭代更新摘要而不是从头生成,压缩失败有10分钟冷却期,期间直接丢弃中间消息而不是注入无用的占位符。
实际体验
实际用下来,第一天让它帮我看一个项目的配置,聊了二十分钟。第二天再打开,它主动把昨天的关键信息拎出来了,衔接很自然。大家可能都有这种经验,因为上下文耗尽后会进行压缩,免不了每次新会话都要交代背景。 Hermes确实在解决这个痛点。
自动提炼的技能系统
Hermes的技能系统不只是”装一个别人写好的插件”。它的技能库是三层渐进式发现,借鉴了Anthropic的Claude Skills设计。
第一层是索引,只返回技能的name(64字符上限)和description(1024字符上限),很省token。第二层是完整指令,按需加载SKILL.md。
第三层是关联文件,references/、templates/、scripts/里的内容单独加载。
技能目录在~/.hermes/skills/下,每个技能一个文件夹,核心文件是SKILL.md,用YAML frontmatter,兼容agentskills.io开放标准。这个标准目前已经被Claude Code、Cursor、GitHub Copilot等11+工具采纳,技能可以跨框架流通。
自动提炼的触发机制:
每隔N轮工具调用(skills.creation_nudge_interval,默认15),系统会往上下文里注入一条提醒,让Agent考虑是不是该把当前任务的做法存成技能。
Agent有skill_manage工具,支持create、edit、patch、delete。技能内容上限100000字符(约36K token),单个附件文件上限1MB。
YouTube上有博主测试过完整的自主迭代闭环:Agent从任务中提炼出技能后,后续遇到类似任务发现现有技能有缺口,自己用patch更新了技能。整个循环不需要人工介入。
我用的两天时间亲眼验证了 Hermes自动把我从OpenClaw导入的定时任务-AI热点收集 做成了一个 ai-hot-tracker 的skill.
安全机制
Hermes的安全分两块。
一块是命令执行前的预检查,叫Tirith。
这个东西不是Python写的,是一个独立的Rust二进制,Hermes通过subprocess调用它。
检查方式是”
subprocess.run([tirith_path, "check", "--json", "--non-interactive", "--shell", "posix", "--", command]
返回码0放行,1拦截,2警告但放行。
检测内容包括:同形URL攻击、pipe到解释器(curl ... | bash)、终端注入(ANSI转义)、环境变量篡改等。
另一块是Skills Guard, 它专门扫描外部技能的代码。纯regex匹配,检测五类威胁模式:渗透(curl ... $KEY、cat .env、SSH密钥目录访问)、注入(ignore previous instructions、HTML注释注入)、破坏性命令(rm -rf /、mkfs)、持久化(crontab、authorized_keys、.bashrc修改)、混淆(base64编码命令、eval编码字符串)。
不同信任级别的安装策略不同:
| 来源 | safe | caution | dangerous |
|---|---|---|---|
| 内置 | 放行 | 放行 | 放行 |
| 受信仓库 | 放行 | 放行 | 拦截 |
| 社区 | 放行 | 拦截 | 拦截 |
| Agent自创 | 放行 | 放行 | 询问 |
YouTube上有博主用Claude Code对Hermes做了15项端到端安全测试,综合B+评级。混淆命令、危险rm、Base64编码恶意指令、SQL注入,拦截率大约60%。但也发现了2个高危和1个中危漏洞,主要在内容检测层面存在绕过风险。所以生产环境用还是建议再加一层防护。
子Agent
子Agent的实现也看了一下。通过delegate_task工具创建子Agent,每个子Agent有独立的对话上下文和工具集,父Agent只会看到最终结果摘要,不会看到子Agent的中间推理过程。
有几个限制值得注意:最大嵌套深度2层,子Agent不能递归委派、不能和用户交互、不能写共享MEMORY.md、不能发跨平台消息。默认最多3个子Agent并行,子Agent默认50轮迭代上限。
子Agent可以用不同的模型和供应商,这个在配置里设:
delegation:
max_iterations: 50
default_toolsets: ["terminal", "file", "web"]
model: "google/gemini-3-flash-preview"
provider: "openrouter"
max_concurrent_children: 3
Gateway
Gateway这块,Hermes支持17个平台:Telegram、Discord、WhatsApp、Slack、Signal、Mattermost、Matrix、Home Assistant、Email、SMS、钉钉、API Server、Webhook、飞书、企业微信、微信、BlueBubbles。
启动gateway后就可以从这些平台跟它聊了。每个平台都有独立的session隔离,群聊里还能按用户隔离上下文。
不过实际用下来gateway不太稳定。我自己就遇到了一次:gateway进程莫名卡死了,翻日志发现最后一条记录停在”Interrupted during call.”,时间戳4/12 17:17。 让Hermes自己解决,发现是之前的gateway 进程没有完全退出,新进程启动时遇到竞争条件 (platform lock 或端口冲突)。

安装
安装本身不复杂,一行命令:
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bas
推荐套一个虚拟环境安装:
python3 -m venv venv
source venv/bin/activate
pip install --upgrade pip
pip install hermes-agent
pip install从PyPI拉包经常超时,可以换清华源:
pip install hermes-agent -i https://pypi.tuna.tsinghua.edu.cn/simple
装好之后跑hermes setup,向导会问你模型供应商、API key、要不要开gateway和cron。这点和openclaw 类似,只不过命令不同。
从OpenClaw 迁移成本不高,hermes claw migrate一条命令能把OpenClaw的SOUL.md、记忆、技能、API key都导过来。
命令行界面
命令行输入 hermes 或 hermes chat 即可进入对话界面,很像 openclaw tui 命令。

UI 界面
Hermes 项目默认没有Web UI界面。 不过别慌, 已经有多个开源项目为Hermes 开发了Web UI。
比如我安装了这个叫hermes-webui的项目,体验也还是不错的。
微信连接
Hermes天然对微信非常友好,扫码即可对接微信ClawBot助手。
输入 hermes setup


总结一下
OpenClaw的强项是覆盖面。50多个平台接入,ClawHub几千个技能,社区大。但供应链安全基本没有审核,用过ClawHub技能的人现在都应该回去检查一遍。
Hermes的强项是深度。记忆持久化、技能自动积累、学习闭环,还有一套至少在认真做安全防护的体系。
欢迎点赞、收藏、评论、加关注!
本文由 Zhihu on Obsidian 创作并发布
编辑本页

