Hermes Agent v0.15评测:代码瘦身76%与搜索加速4500倍
摘要
封面图:Hermes Agent v0 15 The Velocity Release 发布封面最近GitHub上Hermes Agent仓库的动静不小,如
封面图:Hermes Agent v0.15 The Velocity Release 发布封面
最近GitHub上Hermes Agent仓库的动静不小,如果正在用它,多半已经留意到了。5月28日,Nous Research发布了代号“The Velocity Release”的v0.15.0版本。仅仅一天之后,v0.15.1的hotfix就跟上了。
版本更新的规模相当可观:自v0.14.0以来,积累了1302次提交、747个合并的PR、560个Issue关闭,以及321位社区贡献者。数字本身就能说明问题,这次更新的量级确实不小。
但数量只是表象。这次更新的真正意义在于:架构被重写了、多Agent协作能力被加入了、搜索环节对LLM的依赖被移除了,安全防御也一并补齐了。这些变化才是关键。
Hermes Agent是Nous Research推出的一个开源自进化AI袋里,采用MIT许可证。它的核心卖点是一个内置的自改进学习循环——Agent会在使用过程中自动创建Skills,持续优化自己的行为。目前,该项目在GitHub上拥有173K Star和29.1K Fork,在短短三个月内攀升到这个量级,无疑是AI Agent领域的明星项目。
下面,我们来逐一拆解v0.15版本中的重点更新。
1. 架构重构:从16000行砍到3800行
run_agent.py这个文件,之前足足有16,083行。而在v0.15版本中,它被拆分成14个独立的agent/*模块,总行数骤降至3,821行。
缩减幅度达到了惊人的76%。
说实话,光看这个数字就让人觉得头皮发麻。不过官方明确表示,行为保持不变,所有外部调用都兼容。这意味着你之前编写的调用代码、脚本和集成方案,升级后应该能直接运行,无需任何改动。
架构重构图:run_agent.py 从 16,083 行拆分为 14 个模块
图 1:run_agent.py 从单文件拆分为14个模块,缩减76%
重构的具体拆分方向,在官方的Release Notes里列得非常清楚。14个模块按职责划分:配置管理、会话处理、工具调度、记忆系统、Agent生命周期等。
从技术角度看,这次重构做了几件关键的事情:
首先,模块边界变得非常明确。之前所有逻辑都混在一个文件里,配置读取、会话管理、工具调用、记忆检索,这些功能互相纠缠。现在拆分后,每个模块都有清晰的职责边界,修改一处时不用担心会牵一发而动全身。
其次,可测试性得到了质的提升。一个16,000行的单体文件,几乎不可能进行有效的单元测试。拆分成独立模块后,每个模块都可以单独编写测试用例,CI流程也因此变得更加可靠。
最后,社区贡献的门槛大大降低。这一点容易被忽略,但非常重要。新人想为项目提交PR,面对一个16,000行的文件,基本上无从下手。拆分后,定位问题和修改代码的难度显著下降。
如果你感兴趣,建议直接翻阅GitHub上的RELEASE_v0.15.0.md文件,里面包含了完整的模块清单和每个模块的职责说明。
2. Kanban多Agent协作:一键创建Swarm
这次更新中,PR数量最多的功能就是这个Kanban多Agent平台,整整涉及104个PR。
核心命令就一个:
代码语言:bash复制hermes kanban swarm
运行这个命令后,它会自动创建一个Swarm v1图,其中包含以下角色:
- Root:负责任务分配和协调- Workers:并行执行具体任务
- Verifier:验证结果质量
- Synthesizer:汇总输出
- Blackboard:共享状态存储
Swarm v1 多 Agent 架构图
图 2:Swarm v1 五角色拓扑,一条命令创建完整的多Agent协作体系
这个设计有几个值得关注的地方:
任务自动拆分。Root接到一个任务后,会自动将其拆分成子任务,分发给Workers。每个子任务甚至可以指定不同的模型。例如,代码生成可以用Claude,文本总结可以用GPT-4o,图像处理可以用专用模型。这种灵活性在复杂任务中非常有用。
Worktree隔离。每个Worker都在自己独立的Git worktree中工作,互不干扰。这个设计在多人协作场景下特别实用,不会出现改着改着就把别人的代码覆盖了的问题。而且worktree的好处是共享.git目录,基本不占额外的磁盘空间。
定时启动。支持使用cron表达式设定任务的启动时间,配合Hermes内置的调度器一起使用。比如,你可以设定每天凌晨2点自动跑一轮代码审查,或者每周一自动生成项目状态报告。
从架构层面来看,Swarm v1的设计有几个值得注意的地方。Blackboard作为共享状态存储,解决了多Agent之间信息同步的难题。Verifier角色的引入,说明设计者对Agent输出的可靠性有清醒的认识——并不是AI生成的结果就一定靠谱,需要交叉验证。Synthesizer负责汇总,可以有效避免多个Worker的输出碎片化。
如果你正在做CI/CD集成,或者有批量处理任务的需求,这个Swarm模式值得深入研究一下。
另外,v0.15.1版本修复了两个重要问题:Worker收到SIGTERM信号后无法正常终止的bug,以及Worker无法接收图片的限制。如果你打算用Swarm处理涉及图像的任务,一定要升级到v0.15.1。
3. 性能数据:冷启动降63%,函数调用砍近半
这次版本代号叫做“The Velocity Release”,速度自然是重中之重。
先看看几个关键指标:
指标 | 旧版 | v0.15 | 变化 |
|---|---|---|---|
冷启动时间 | 701ms | 258ms | -63% |
每轮函数调用数 | 399k | 213k | -47% |
Termux 冷启动 | 2.9s | 0.8s | -72% |
性能数据对比图:三项关键指标优化
图 3:冷启动降63%、函数调用减47%、Termux冷启动降72%
冷启动时间从701ms降到258ms,这个数据来自官方基准测试。与同类型产品对比,这个速度已经超过了Codex CLI的冷启动时间。
不过话说回来,冷启动速度对日常使用的影响,完全取决于你的使用模式。如果你开一个Agent跑一整天,那么400ms的差距基本无所谓。但如果你需要频繁创建和销毁Agent实例——比如在CI/CD pipeline里——这个差距累积起来就非常可观了。
函数调用数量减少47%,这跟v0.15引入的Progressive Tool Loading机制有很大关系。简单来说就是:不再一次性加载所有工具的Schema,而是初始只加载大约20个核心工具,其余的通过tool_search(query)和tool_details(name)按需加载。
# tool_search 配置项tool_search:mode: auto# auto | always | never
mode的三个选项含义如下:auto是按需加载(这也是默认模式),always是全部预加载(与旧版本行为一致),never则是禁用按需加载。如果你发现某些工具调用异常,可以临时切换到always模式进行排查。
这个机制对Context Window的节省效果非常明显。特别是在使用OpenRouter连接200模型的场景下,初始工具Schema从34个降到了约20个,省出来的Token空间可以让模型处理更多实际内容。
Termux冷启动从2.9s降到0.8s,同样令人印象深刻。虽然在手机上跑Agent的场景还比较小众,但确实有人在用。这个优化让移动端的可用性提升了一大截。
4. session_search重建:4500倍加速,完全免费
这个改动,我觉得是v0.15里性价比最高的一个。
旧版的session_search需要调用一个辅助LLM来理解搜索意图。这意味着每次搜索都要消耗API额度,单次大约要花费$0.30。而且速度很慢,一次discovery大概需要90秒。
v0.15版本彻底干掉了辅助LLM,改用本地化的搜索方案:
操作 | 旧版 | v0.15 |
|---|---|---|
Discovery | ~90s, $0.30/call | ~20ms, $0 |
Scroll | ~90s, $0.30/call | ~1ms, $0 |
4500倍的加速,完全免费。
平心而论,对于一个搜索功能来说,旧版每次花$0.30、等90秒,确实有点奢侈。新版使用本地索引替代LLM推理,既快又省钱,这种改动非常实在。
如果你之前因为搜索太慢或者太贵而很少使用session_search,升级之后,非常值得重新试一试。
5. 安全防御:Promptware防护
AI Agent的安全问题一直是个隐忧,但真正在产品层面做出防护的项目并不多。v0.15这次的安全更新,灵感来自Brainworm/Promptware Kill Chain相关的研究(论文编号arxiv 2601.09625)。
简单解释一下Promptware攻击的原理:攻击者把恶意指令隐藏在看似正常的内容里(比如一个Markdown文件、一段代码注释、一个API响应),Agent在处理这些内容时,就会把恶意指令当作正常的prompt来执行。这就好比有人往你的外卖里掺了东西,而你完全察觉不到。
v0.15增加了三层防御:
第一层,工具输出边界标记。所有工具返回的内容会被加上边界标记,防止恶意指令通过工具输出注入到Agent的上下文里。这解决的是工具返回的内容里藏了一段恶意prompt的问题。从实现角度看,这类似于在HTML里做输入转义,把不可信的内容隔离在一个安全的范围内。
第二层,Memory和Skills扫描。Agent的记忆文件和技能文件会被自动扫描,检测是否存在危险模式。如果你使用的某个Skill包含了可疑的prompt注入代码,系统会告警。这个功能在社区生态越来越大的背景下尤其重要。第三方Skill的数量正在快速增长,质量参差不齐,有自动扫描机制,显然比单纯靠人工审查要可靠得多。
第三层,控制面板文件写保护。auth.json、config.yaml等关键配置文件被设为写保护,Agent自身无法修改这些文件。这可以防止Agent被诱导后修改自己的认证信息。比如,攻击者通过Promptware让Agent把API Key发送到外部服务器,或者修改模型端点指向攻击者控制的服务器。写保护机制直接从文件层面切断了这条攻击路径。
这三层防御加在一起,基本上覆盖了Promptware攻击的主要路径。对于把Agent运行在生产环境中的团队来说,这个功能升级的价值不言而喻。
Promptware 三层防御架构图
图 4:Promptware 三层防御 — 边界标记、内容扫描、文件写保护
6. Bitwarden Secrets Manager集成
之前,API Key的管理方式是每个Provider都需要单独配置一个。如果你有OpenRouter的key、NovitaAI的key、NVIDIA NIM的key……配置起来确实有点繁琐。
v0.15集成了Bitwarden Secrets Manager,一个BWS_ACCESS_TOKEN就能替代所有per-provider API key。
# 设置环境变量export BWS_ACCESS_TOKEN=your_token_here
它同时支持EU Cloud和自托管的Bitwarden服务器。如果你的组织已经在使用Bitwarden管理密钥,这个集成基本上可以做到零额外成本接入。
7. 其他值得关注的更新
v0.15的更新列表很长,除了上面几个主要部分,还有一些值得一提的:
ntfy通知平台。Hermes目前支持23个消息平台,新增的ntfy是一个轻量级的开源推送服务,自建成本很低。之前已经有Telegram、Discord、Slack、WhatsApp、Signal这些主流平台,ntfy的加入主要是面向那些不想依赖第三方服务的用户。
Skill Bundles。之前加载多个Skill需要一条一条地执行,现在可以通过一个命令打包加载。对于那些有固定Skill组合的场景,比如“代码审查 + 测试生成 + 文档编写”这种常见组合,可以省下不少操作。
TUI多会话编排器。终端界面支持同时管理多个会话,切换更加方便。如果你同时在跑多个Agent任务,现在就不需要再开多个终端窗口了。
Krea 2图像生成 + FAL插件化。图像生成能力升级到了Krea 2,FAL作为插件化接入,扩展性更好。FAL的插件化设计意味着,后续添加新的图像生成服务会变得更加方便。
MCP目录 + 交互式安装器。MCP(Model Context Protocol)工具现在有了目录浏览和交互式安装功能,查找和安装工具的体验改善了不少。之前寻找MCP工具基本靠Google搜索加手动配置,现在有了目录,就方便多了。
xAI深度集成。包括Web Search、OAuth proxy、模型退休检测。使用xAI模型的用户,应该能感受到更流畅的体验。模型退休检测这个功能特别实用——xAI偶尔会下线旧版模型,自动检测并提示切换,可以避免调用时报错。
Docker s6-overlay容器监管。在Docker部署场景下,容器进程管理变得更加稳定。s6-overlay是一个轻量级的init系统,专门用于容器内的进程管理。加上这层之后,Agent进程崩溃后可以自动重启,不会导致整个容器退出。
8. v0.15.1 Hotfix:修了什么
v0.15.0发布仅仅一天之后,v0.15.1就来了。它修复了几个实际问题:
- Dashboard 401无限重载循环。登录过期后,Dashboard页面会无限重载,必须手动清除cookie才能恢复。这个bug对Web UI用户的影响比较大。- Docker
--insecure参数。之前Docker模式下的一些安全检查过于严格,v0.15.1增加了--insecure显式选项,让用户自己决定是否跳过。- Worker SIGTERM终止。Kanban Swarm里的Worker在收到终止信号后无法正常退出。
- Worker接收图片。之前Workers无法处理图片输入,这个问题已经修复。
如果你已经在运行v0.15.0,建议直接升级到v0.15.1。
升级指南
升级命令很简单:
代码语言:bash复制# pip 安装的用户pip install --upgrade hermes-agent# 确认版本hermes --version# 应该输出 v0.15.1 或更高
Docker 用户:
代码语言:bash复制docker pull nousresearch/hermes-agent:latest
从源码安装的:
代码语言:bash复制cd hermes-agentgit pull origin maingit checkout v0.15.1pip install -e .
几个升级注意事项:
- 配置兼容性:官方表示外部调用完全兼容,但建议升级前备份auth.json和config.yaml。- Progressive Tool Loading:升级后默认开启
auto模式,如果遇到工具调用问题,可以先切换到always模式进行排查。- session_search:升级后第一次搜索会重建索引,之后就是20ms级别的响应了。
- Kanban Swarm:这是一个新功能,建议先用小任务进行测试,确认Workers行为正常后再用于生产环境。
生态一览
Hermes Agent目前的生态数据,很能说明问题。GitHub上173K Star、29.1K Fork,三个月内达到这个量级,增长速度确实快。项目的语言构成是Python 89.1% + TypeScript 8.1%,技术栈比较统一。
周边工具也形成了不错的生态:
项目 | Star | 用途 |
|---|---|---|
AionUi | 27.2k | 桌面应用,支持 Hermes + Claude Code + Codex 等 20+ CLI |
agentmemory | 19.6k | 跨 Agent 持久记忆引擎,原生支持 Hermes |
agency-agents-zh | 13.3k | 215 个 AI 专家角色,包含中国本土化角色 |
hermes-web-ui | 6.6k | Web 仪表板,会话管理和使用分析 |
橙皮书 | 3.9k | 从入门到精通的系统化教程系列 |
AionUi将Hermes Agent与Claude Code、Codex、OpenClaw并列为四大CLI Agent。agentmemory把Hermes列为原生支持的一等公民,提供6-hook深度集成。
中文社区也相当活跃。橙皮书已经覆盖了17章5个部分,从概念到核心机制,再到实操、场景和深度思考,内容相当全面。agency-agents-zh里的215个角色中,有46个是中国市场原创的,包括针对小红书、抖音、微信、飞书、钉钉等平台的专属角色。
这些第三方项目的态度,往往比官方宣传更有说服力。一个项目被多少生态工具主动集成,是衡量其行业地位的一个非常好的指标。
总结
v0.15是Hermes Agent项目的一个非常重要的版本。代码量削减了76%却保持了行为兼容,冷启动快了63%,搜索功能从花钱变成了免费,还加入了多Agent协作和安全防御。
如果要挑三个最重要的升级理由,那会是:Progressive Tool Loading节省下来的Token费用、session_search的4500倍加速、以及Promptware安全防护。前两个直接关系到使用成本,第三个关系到安全性,都是硬需求。
Kanban Swarm的多Agent协作虽然还是v1版本,但设计思路清晰,后续的迭代空间很大。对于有复杂工作流需求的用户来说,这个方向值得持续关注。
如果你已经在使用Hermes Agent,这个版本值得升级。如果你还没用过,173K Star和完善的生态已经说明,它早已不是一个实验性的项目了。
相关资源:
GitHub 仓库:https://github.com/NousResearch/hermes-agent
v0.15.0 Release Notes:https://github.com/NousResearch/hermes-agent/blob/main/RELEASE_v0.15.0.md
v0.15.1 Release Notes:https://github.com/NousResearch/hermes-agent/blob/main/RELEASE_v0.15.1.md
来源:互联网
本网站新闻资讯均来自公开渠道,力求准确但不保证绝对无误,内容观点仅代表作者本人,与本站无关。若涉及侵权,请联系我们处理。本站保留对声明的修改权,最终解释权归本站所有。