先说结论
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 工作流:
| |
自动生成:根节点 → 并行 Worker → 门控验证者 → 门控综合者 → 共享黑板。适合代码审查、批量研究、多文件重构等场景。
安全:三道防线对抗提示注入
受 Brainworm/Promptware Kill Chain 研究(arxiv 2601.09625)启发,v0.15.0 在三个关键位置部署了防御:
- 威胁模式库(
tools/threat_patterns.py):~15个新的 Brainworm/C2 模式 - 记忆加载扫描:召回的记忆在注入上下文前先过安全检查
- 工具结果分隔符:恶意文件或远程服务无法伪装成 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 级别/model和hermes model显示统一列表.md文件媒体投递恢复- Web URL 不再被误删查询参数
- Skills Hub 全目录:858 → 19,932,所有 skills.sh 条目可搜索
升级建议
| |
直接跳到 v0.15.1,不要停在 v0.15.0。 Dashboard 无限重载 bug 只影响 v0.15.0。
数据总结
| 指标 | v0.15.0 | v0.15.1 |
|---|---|---|
| 提交数 | 1,302 | 28 |
| 合并PR | 747 | 21 |
| 文件变更 | 1,746 | - |
| 贡献者 | 321 | 9 |
| P0 修复 | 15 | 1 |
| P1 修复 | 65 | - |
| 安全修复 | 19 | - |
关注 varkm,一起学习,一起成长