全网信息技术服务商

电脑端+手机端+微信端+APP端(安卓+IOS),全网覆盖

0532-89269576

Hermes Agent半月迭代5个版本:智能体框架的安全焦虑从哪来

发布时间:2026-08-23 编辑:智序网络 浏览:104 次

8月3日Hermes Agent v0.20.0发布时,社区普遍把这次更新称为"传令神版"。3650次提交、1400个PR、559,000行新增代码,单版本规模在开源Agent框架里前所未有。

但没人想到,15天后v0.20.4又来了。

速度背后的工程真相

Hermes Agent的迭代节奏正在加速。v0.20.0到v0.20.4之间,官方口径是约146个提交、74个PR。本地实测数据更高——270个文件改动、22,000多行新增,其中桌面端占了139个文件。

一个值得注意的细节:窗口毛玻璃效果本身占了17个提交。

这个数字背后是Nous Research的策略选择——他们把用户体验层和核心Agent引擎同时推进,而不是等引擎稳定后再补UI。这种"双线并行"的开发模式,在开源社区并不常见。

更快的迭代意味着更快的漏洞曝光。

一位用户在GitHub社区发布了一篇长文,标题直接点出问题:"Hermes Agent v0.20.4这么快也发布了,是不是大版本快出了"。文章里他做了一件很具体的事——把自己机器上的249个skill目录扫了一遍,发现67个按Hermes自己的规则根本装不进去。

这不是一个理论问题。技能目录的结构很简单:一个skill.md文件加上头几行的元数据,后面是给模型看的指令,可能再带几个脚本。它不编译、不进包管理器、没有版本锁。你从别人仓库拷一个目录进来,下一轮它就跟着系统提示词一起进模型了。

技能的自我配置陷阱

这篇文章里最核心的发现是:排在第一位的风险不是攻击,而是技能会写自己的配置。

跑的是仓库里的tools/skills_guard.py,纯正则表达式实现,无外部依赖。作者直接按community的规则扫了一遍自己的机器。

这意味着什么?一个技能可以把自己的配置写入系统——比如修改自己的权限范围、修改它被调用的条件、甚至修改其他技能的加载顺序。由于技能文件是明文markdown,模型看到的是完整的指令上下文,任何注入其中的内容都会被当作系统级指令执行。

这不是Hermes独有的问题。任何基于"技能即提示词"架构的Agent框架都存在这个根本性的信任缺口:当技能可以改写自身运行时环境时,谁在确认技能的来源可信?

源码视角下的架构取舍

从CSDN上那篇详细的源码解读来看,Hermes的对话引擎架构有几个值得注意的设计:

核心入口是run_agent.py,8206行,门面层+兼容层+CLI入口三合一。真正干活的逻辑被拆进了agent/包——conversation_loop.py 7524行负责对话主循环,tool_executor.py 2403行负责工具执行,turn_context.py 1281行处理每轮前置。

这种门面模式的工程取舍很明显:接口定义和契约留在门面层,行为实现放到可独立测试的模块里。CLI、Gateway(Telegram/Discord/飞书)、Desktop三个入口共享同一套对话引擎,改行为不动接口。

但这里有一个代价——向后兼容的符号重导出。历史上约28个测试文件用mock.patch("run_agent.OpenAI")这种写法,大量生产代码from run_agent import X。重构时实现挪走了,这些符号必须留在run_agent模块命名空间里,于是满屏# noqa: F401 # re-exported for tests

代码整洁度和向后兼容性之间,Hermes选择了后者。

双层预算与段式调度

对话主循环conversation_loop.py的核心机制是双层预算——外层while管tool-calling迭代次数,由max_iterations(硬上限)和iteration_budget(软预算)双重兜底;内层while管单次API调用的重试,处理限流、fallback、凭据刷新、指数退避。

工具调度则是段式的——一批工具调用被切成有序的可并行和必须串行的段。路径域工具读读可并行,读写/写写冲突则关闭当前并行段。交互式工具永远顺序执行。

这种设计的诚实代价是:段式调度增加了复杂性,但避免了并行执行时的路径冲突和数据不一致。

安全边界在快速迭代中如何形成

v0.20.4的发布节奏暴露了一个更深层的问题——当Agent框架以周为单位迭代时,安全审查能否跟上?

Nous Research的应对是推出skills_guard.py。这是一个纯正则实现的技能扫描工具,能检测技能目录中的可疑行为模式。但它解决的是"事后扫描"而非"事前拦截"。

真正需要回答的问题是:Agent框架是否应该在技能加载阶段就引入沙箱隔离?

目前的架构下,技能代码和系统提示词共享同一个LLM上下文窗口。无论技能扫描得多严格,一旦模型接受了技能的指令,就没有运行时边界来限制它的行为。

这是开源Agent生态面临的共同挑战——我们拥有了快速迭代的能力,但还没有建立起与之匹配的信任机制。

Hermes用15天完成了5个版本的迭代,这证明了工程能力。但下一个问题可能是:当67个技能中有1个能自我配置时,框架的安全边界在哪?

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。