Hermes Agent Lab

Hermes Agent 博客 — 实战指南与技术见解

最新文章和洞见。

装的时候说「安全」,看它一眼就执行了

技能安全扫描有三个盲点:只认 $HOME 的破坏性删除、没有任何规则盯着 !`cmd` 自动执行语法、以及安装失败被当成安装成功。PR #128443 把三处一起补上,并把扫描器版本推到 v7。

阅读更多

退出会话时,它删掉了你没提交的代码

worktree: true 的退出清理只检查「有没有未推送的提交」,从不读工作区状态,于是未提交和未跟踪的文件被 git worktree remove --force 一起删掉,而文档写的是脏工作树会被保留。

阅读更多

点了一次更新,硬盘被写满 434GB

桌面版的一次版本检查在 tree:0 克隆上按需拉取历史,留下 2659 个 promisor pack,把 1TB 硬盘写满、更新失败,而跑这次检查的恰恰是修复前的旧版应用。

阅读更多

别人的密钥,跑进了你的定时任务

一次和隔离无关的 UX 改版,把 cron 的 Profile 密钥隔离整段删掉了。PR #126982 把它接了回来,并补上了管理员托管凭据那一层。

阅读更多

hermes dump 贴出去求助,可能连你自己的 API Key 一起贴出去了

调试包里的 fallback_providers 曾经把 api_key 和 base_url 里的凭证原样打印出来。2026-09-29 合并的补丁把 dump 本身和上传边界都改成强制脱敏,这篇讲清哪些字段会被掩码、--no-redact 到底意味着什么、以后该怎么安全地分享日志。

阅读更多

/rollback 说回滚成功,但嵌套仓库里的未提交改动已经没了

checkpoint 只会把嵌套 git 仓库记成一个 gitlink(提交引用),不保存它的文件。于是 /rollback 一边报告成功,一边把子仓库里没提交的活儿覆盖掉。2026-09-29 的补丁让 rollback 在碰到 gitlink 前就拒绝执行,并在 checkpoint 上写明哪些子仓库没被捕获。

阅读更多

配置腐烂:改名、卸载插件、禁用平台之后,hermes config check 现在会开口了

工具集改名了、插件卸载了、平台被禁用但 token 还配着——这些“保存下来却早已失效”的选择过去只会消失,现在 hermes config check 会逐条报出来,而且和 hermes config migrate 用同一个判定器。

阅读更多

模型把数组写成了字符串:为什么只有一部分工具会报参数错误

同一类“JSON 字符串当数组传”的失误,普通工具会被自动修好,clarify、todo、memory、session_search 这些内联工具却直接报错——因为它们绕过了统一入口。2026-09-29 的补丁给内联工具补上了同一套参数修复。

阅读更多

Mixture of Agents 完全指南:多付一份钱,换来更靠谱的答案

MoA 把多个模型的观点汇总成一个回答,官方基准上比它最强的单个组件高出约 6 个点。这篇讲清它到底怎么跑、成本算在谁头上、fanout 三档怎么选,以及为什么新版本里 MoA 的模型行只在你自己写了预设时才出现。

阅读更多

插件突然加载不了?旧 import 路径的兼容窗口在 9 月 14 日关了

9 月的模块拆分把 Hermes 内部文件切成了一批新模块,官方给外部插件留的兼容层已在 2026-09-14 到期并移除。插件报 ImportError 怎么查、怎么改,以及哪些东西从来不属于插件契约。

阅读更多

重启一次网关,为什么又白付一遍缓存钱

多 profile 网关每次请求都要重新写一遍缓存、重启后第一条消息慢得像冷启动、/steer 留下的半句话把 channel prompt 弄丢——2026-09-28 合并的三个修复,修的是同一件事:prompt 前缀被无谓地改动。

阅读更多

hermes update 卡住不动?四个坑今天一次修完

浅克隆下更新永远超时、detached checkout 换了代码却说“已是最新”、公司网络证书 git 不认、失败被记成成功——2026-09-28 合并的四个更新补丁,把成因和新行为逐个讲清。

阅读更多

删掉的会话又回来了:两个 bug 和一道新守卫

把一个还在跑的会话删掉,曾经是白删:agent 对象还活着,每一轮的消息都会撞上外键并被静默丢弃;而在桌面端,删除会被下一次写入悄悄复活。2026-09-27 合并的 PR #125157 改成正面拒绝删除,配合 #124117 的重建修复,把这条路径收干净了。

阅读更多

「聊天已过期」:桌面端曾经把每一次发送都拦下来

在很长、工具调用很密的对话里,桌面端会反复弹出一句“Chat out of date”,你重发它还是拦,重启应用也没用。原因不是数据真的落后,而是两个组件对同一份内存视图的假设不一致:一个按权重释放历史,另一个却按条数判断新旧。PR #125523 把比较标准从“总数”换成了“尾部那一条”。

阅读更多

模型原地转了 190 圈,没有一个守卫发出声音

一次桌面会话里,模型为了等 10 个后台子代理,用空操作的 execute_code 调用把回合撑了 49 分钟,190 次主模型调用、3100 万输入 token,循环检测一次都没触发。原因是结果哈希里带着每次调用都会变的记账字段。PR #124724 只丢掉那两个字段,重放检测就活了。

阅读更多

名单里有你的地址,发信人就一定是你吗

2026-09-27 合并的两个安全补丁修掉了同一类问题:邮件网关和 SimpleX 网关都把“发送方自己可以随便填的字段”当成了身份。一个允许改名绕过 allowlist,一个允许在 From 头里塞第二个地址冒充你。

阅读更多