Hermes Agent v0.15:速度翻倍,从单兵到军团

v0.15.0+0.15.1 联合发布。1,302个提交、747个PR、321位贡献者。核心代码瘦身76%,Kanban长成真正的多Agent平台,搜索快4500倍。隔天热修复了Dashboard无限重载的P0 bug。

先说结论

Hermes Agent v0.15.0(5月28日)是迄今最大的单版本更新。 1,302个提交、747个合并PR、1,746个文件变更、321位社区贡献者。 隔天(5月29日)发布的 v0.15.1 修复了影响所有 Dashboard 用户的 P0 bug。

这个版本的三个关键词:快、拆、稳

速度:从各个维度变快

冷启动再砍1秒

v0.15.0 延续了冷启动性能优化的浪潮,三轮优化叠加:

  • openai._base_client 导入延迟加载:-240ms / -17MB 内存
  • 热路径函数调用削减 47%(399k → 213k,31轮对话)
  • 压缩可行性检查延迟:-170 到 -290ms
  • 自适应子进程轮询:-195ms/工具调用

实际效果:Termux 冷启动从 2.9s → 0.8s。 hermes --version 冷启动 701ms → 258ms(降63%),首次超越 Codex CLI。

session_search 快了4500倍

旧版 session_search 是辅助 LLM 驱动的工具,每次搜索花 90 秒、花费 $0.30,偶尔还会编造结果。新版完全重写:

  • 零 LLM 调用,纯 FTS5 搜索引擎
  • 三种模式(发现/滚动/浏览),自动推断无需切换
  • 搜索延迟:~20ms(旧版 ~90s)
  • 滚动延迟:~1ms

搜索历史对话现在免费且即时。

拆:核心代码大瘦身

run_agent.py 从16,000行拆成3,800行

这是整个版本最激进的重构。 run_agent.py 从 16,083 行缩减到 3,821 行(-76%),拆分到 14 个内聚的 agent/* 模块。

关键保证:行为零变化。每个拆分都在 AIAgent 上保留薄转发器,所有测试补丁路径不受影响,外部调用者完全兼容。

为什么你应该关注?以前这个文件在你的编辑器里要 90 秒才能打开,现在眨眼即开。未来开发迭代速度会显著加快。

稳:Kanban长成真正的多Agent平台

v0.15.0 用 104个PR 把 Kanban 从任务队列升级为多 Agent 协作平台。

新能力一览

能力说明
自动分解Triage 自动将一个任务分解为子任务树
Swarm 拓扑hermes kanban swarm 一键创建完整 Swarm v1 图
每任务模型覆盖便宜模型做杂活,贵模型啃硬骨头
工作树隔离每个任务独立 git worktree,互不干扰
定时启动任务支持指定开始时间
陈旧任务检测自动发现并回收卡住的任务
Worker 可视化/workers/active/runs/{id}/inspect 端点

Swarm 是什么

一条命令创建一个完整的多 Agent 工作流:

1
hermes kanban swarm

自动生成:根节点 → 并行 Worker → 门控验证者 → 门控综合者 → 共享黑板。适合代码审查、批量研究、多文件重构等场景。

安全:三道防线对抗提示注入

受 Brainworm/Promptware Kill Chain 研究(arxiv 2601.09625)启发,v0.15.0 在三个关键位置部署了防御:

  1. 威胁模式库tools/threat_patterns.py):~15个新的 Brainworm/C2 模式
  2. 记忆加载扫描:召回的记忆在注入上下文前先过安全检查
  3. 工具结果分隔符:恶意文件或远程服务无法伪装成 Hermes 自身的系统内容

配合新增的 security-guidance 插件,对危险代码写入进行模式匹配。

其他值得关注的更新

Bitwarden Secrets Manager 集成

一个引导令牌(BWS_ACCESS_TOKEN)替代所有明文 API Key。在 Bitwarden Web 端轮换密钥,重启即生效。

ntfy:第23个消息平台

无需注册、无需 API Key,只要一个 topic URL。Agent 完成任务、cron 到点,推送通知直达手机/桌面/智能家居。

Skill Bundle:一条命令加载多个 Skill

设置你的"写作日"组合(humanizer + ideation + obsidian + youtube-content)。 /writing-day 一次性激活全部。

TUI 会话管理器

Ink TUI 新增多会话切换器:在同一个终端窗口里列出、切换、刷新、关闭多个会话,不用退出。

Docker s6-overlay 容器管理

容器内网关自动监督、重启对账、docker logs 集成。Node 升级到 22 LTS。

v0.15.1 热修复(5月29日)

v0.15.0 发布隔天,一个 P0 bug 浮出水面:Dashboard 在 loopback 模式下无限重载

根因

Dashboard 的身份探针(/api/auth/me)在 loopback 模式下返回 401(设计如此)。 但 v0.15.0 的过期令牌重载守卫把每个 401 都当成了需要刷新的会话令牌,触发整页重载。 重载后其他请求清除了单次重载守卫,于是又触发下一轮。 Firefox 表现为 “Navigated to /sessions” 暴风,Chrome 表现为 React 重渲染风暴。

修复

fetchJSON 新增 allowUnauthorized 选项,跳过 loopback 下的过期令牌重载逻辑。 401 仍然抛异常让 AuthWidget 处理,但不再触发整页刷新。

其他修复

  • Docker --insecure 改为显式环境变量(HERMES_DASHBOARD_INSECURE=1),不再从绑定主机推断
  • MCP bare 命令(npx/npm/node)在 Docker 容器内正确解析到 /usr/local/bin
  • Kanban Worker 的 SIGTERM 终于能正常终止进程
  • Skills 页面源标签和分类侧边栏恢复
  • /yolo 中途启用变为 per-session 级别
  • /modelhermes model 显示统一列表
  • .md 文件媒体投递恢复
  • Web URL 不再被误删查询参数
  • Skills Hub 全目录:858 → 19,932,所有 skills.sh 条目可搜索

升级建议

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
# 源码安装
cd /opt/hermes-agent
git pull
pip install -e .

# 或 Docker
docker pull nousresearch/hermes-agent:latest

# 检查版本
hermes --version

直接跳到 v0.15.1,不要停在 v0.15.0。 Dashboard 无限重载 bug 只影响 v0.15.0。

数据总结

指标v0.15.0v0.15.1
提交数1,30228
合并PR74721
文件变更1,746-
贡献者3219
P0 修复151
P1 修复65-
安全修复19-

关注 varkm,一起学习,一起成长