Hermes Agent Lab

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

最新文章和洞见。

搜不到那个技能?技能搜索其实先去问了四个注册表

你照着文档敲 hermes skills search,结果零命中——那个技能明明刚发布在 skills.sh 上。原因是搜索默认走一份定期重建的中央索引。9 月 16-18 日的几次改动把这条链路补上了:索引没命中时,再去问 skills.sh、ClawHub、LobeHub 和 well-known 端点,最多给 8 秒预算;索引自身的构建也不再因为一个超时的分片就静默丢技能。

阅读更多

在地铁上也能指挥你的 Agent:社区 WebUI 上手记

Hermes WebUI 是一个约 1.8 万 star 的社区项目,用 Python 和原生 JS 把 CLI 的能力搬到浏览器里:三条命令装好、默认只绑本机、SSH 隧道或 Tailscale 打通手机访问、密码与 passkey 可自选。这篇把它怎么装、怎么安全地远程访问、以及它的边界在哪里讲清楚。

阅读更多

打开一个下拉框为什么要等好几秒:读列表的路上不该做网络探测

模型选择器转圈、hermes plugins list 卡住、Profiles 面板每几秒掉一帧——三个看起来无关的卡顿,根因是同一个:读列表的路径上顺手做了网络探测和文件系统遍历。PR #114994 / #114811 / #114879 分别把缓存、失败记忆、后台刷新搬离了这条路径。

阅读更多

别人给你的那个 URL,Hermes 不再闭着眼睛去取

图片生成 provider 返回的结果 URL、模型自己填的参考图 URL、宠物商店的清单与雪碧图、skills.sh 的 sitemap 条目——这些 URL 都不是你选的。PR #114887 让这七个抓取点全部走仓库原有的 SSRF 防护:取之前先判定、连接时再判定一次(封掉 DNS 重绑定的窗口)、每次跳转重新判定,遇到没有 Location 头的 3xx 直接失败。

阅读更多

你打印过一次的 API key,不该出现在聊天记录里

同一天合入的两个修复补上了密钥外泄的两条缝:PR #114839 让带点号的 sk- 密钥和智谱那种没有前缀的 id.secret 密钥在工具输出里被完整遮住;PR #114789 让定时任务的输出在聊天、会话镜像、Bot Chat 这些出口上强制脱敏,并且脱敏失败时宁可整段替换也不放行原文。

阅读更多

记忆插件搬出核心之后:升级时它自己装回来了

内置记忆 provider 正在陆续搬到维护者自己的仓库与插件目录里。PR #114569 加了两个钩子:hermes update 与 agent 启动时会检测「配置了 provider 但代码不在了」,并按目录里审核过的版本自动装回。名字、memory.<name> 配置、数据目录、工具名全部不变。

阅读更多

1,393 个子代理、19 小时、一台 i7:官方是怎么让 agent 重构掉百万行代码的

Nous Research 用一个 /goal 让 Hermes 跑了 19 小时、调度 1,393 个子代理,把自家仓库的源码行数砍掉 34.4%。本文整理官方公布的实测数据、规模化时会崩掉的九个环节,以及你在自己仓库里复刻的步骤。

阅读更多

一段 16KB 的脚本让网关卡死 23 秒:危险命令检测的性能复盘

你把一段几百行的 heredoc 交给 Hermes,机器人在 Telegram 上突然不回消息了——事件循环被同步正则按住了。issue #113535 与 PR #114208 讲清了这条 O(n³) 路径,以及为什么修复后的判定结果一个都没变。

阅读更多

图片正在悄悄吃掉你的额度:两个该认识的图片配置项

原生嵌入的图片会在之后每一次 API 调用里被重发,而旧的退休策略为了退掉一张图能重写十几万 token 的历史。PR #113953 与 #113817 修掉了这两个问题,并带来 vision.embed_target_bytes 与 max_calls_per_image 两个配置项。

阅读更多

看不见的第二个模型:Hermes 的后台调用链该怎么配、怎么查

会话标题变成一串 JSON、审批突然不智能、本地模型压缩慢得离谱——问题常常不在你的主模型,而在 13 个具名的 auxiliary 后台任务上。本文讲清它们的配置结构、全局旋钮,以及 9 月 17 日合并的一批静默失败修复。

阅读更多

Agent 把你的数据库写成了乱码:Hermes 现在会拒绝这类写入

write_file 与 patch 曾经把 .db-wal 侧车文件当普通文本读写,把活着的 SQLite 库写成一堆乱码。PR #114220 在工具层加了侧车文件写保护,本文讲清楚事故怎么发生、修复了什么、你的版本里有没有。

阅读更多

hermes doctor 大 WAL 提示:别再让自己成为第二个写者

hermes doctor 过去看到超过 50 MB 的 state.db WAL 就直接让你跑 --fix,却没检查网关或 Desktop 是否还持有数据库。PR #113055 让这条警告变得诚实:有活写者时,它只说大 WAL 是正常的。

阅读更多

Hermes Honcho 记忆为什么总落在别的项目里

Honcho 的记忆本该按项目分开存放,PR #112602 修掉了两条把会话路由错位的路径:自动生成的标题不再覆盖 sessionStrategy,会话解析改用对话所在的工作区,而不是后端进程的启动目录。

阅读更多

profile 改名后旧会话指向幽灵?一条命令补上身份迁移

PR #112653 让 profile 改名同时迁移身份:路由键、会话行、心跳、投递义务和 Telegram 话题表都换成新名字。没迁移成可以用 migrate-identity 补一次;删除 profile 则留下墓碑。

阅读更多

gateway 多路复用默认开启:一个进程服务所有 profile

gateway.multiplex_profiles 现在默认开启,但未显式设置的取值会在每次启动时由一道守卫重新判定:只有收拢安全时,才由一个 gateway 服务全部 profile,判定结果还会写进状态里。

阅读更多

为什么 state.db 会在 Docker Desktop / OrbStack / WSL2 的挂载目录里损坏

把数据目录 bind mount 进容器的部署方式,virtiofs 和 9p 给不了 SQLite WAL 真正需要的共享锁,两个写进程就能悄悄写坏 state.db,而完整性检查一路通过。PR #111433 之后,Hermes 在启动时和 hermes doctor 里都会主动指出这件事,并给出两条修法。

阅读更多