<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>性能优化 on Kalend's Blog</title><link>https://blog.kalend.top/tags/%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96/</link><description>Recent content in 性能优化 on Kalend's Blog</description><generator>Hugo -- gohugo.io</generator><language>zh</language><lastBuildDate>Fri, 29 May 2026 18:30:00 +0800</lastBuildDate><atom:link href="https://blog.kalend.top/tags/%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96/index.xml" rel="self" type="application/rss+xml"/><item><title>Hermes Agent v0.15：速度翻倍，从单兵到军团</title><link>https://blog.kalend.top/2026/05/29/2026-05-29-hermes-v0.15-whats-new.html/</link><pubDate>Fri, 29 May 2026 18:30:00 +0800</pubDate><guid>https://blog.kalend.top/2026/05/29/2026-05-29-hermes-v0.15-whats-new.html/</guid><description>&lt;h2 id="先说结论"&gt;先说结论
&lt;/h2&gt;&lt;p&gt;Hermes Agent v0.15.0（5月28日）是迄今最大的单版本更新。
&lt;strong&gt;1,302个提交、747个合并PR、1,746个文件变更、321位社区贡献者&lt;/strong&gt;。
隔天（5月29日）发布的 v0.15.1 修复了影响所有 Dashboard 用户的 P0 bug。&lt;/p&gt;
&lt;p&gt;这个版本的三个关键词：&lt;strong&gt;快、拆、稳&lt;/strong&gt;。&lt;/p&gt;
&lt;h2 id="速度从各个维度变快"&gt;速度：从各个维度变快
&lt;/h2&gt;&lt;h3 id="冷启动再砍1秒"&gt;冷启动再砍1秒
&lt;/h3&gt;&lt;p&gt;v0.15.0 延续了冷启动性能优化的浪潮，三轮优化叠加：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;openai._base_client&lt;/code&gt; 导入延迟加载：&lt;strong&gt;-240ms / -17MB&lt;/strong&gt; 内存&lt;/li&gt;
&lt;li&gt;热路径函数调用削减 47%（399k → 213k，31轮对话）&lt;/li&gt;
&lt;li&gt;压缩可行性检查延迟：-170 到 -290ms&lt;/li&gt;
&lt;li&gt;自适应子进程轮询：-195ms/工具调用&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;实际效果：Termux 冷启动从 2.9s → 0.8s。
&lt;code&gt;hermes --version&lt;/code&gt; 冷启动 701ms → 258ms（&lt;strong&gt;降63%&lt;/strong&gt;），首次超越 Codex CLI。&lt;/p&gt;
&lt;h3 id="session_search-快了4500倍"&gt;session_search 快了4500倍
&lt;/h3&gt;&lt;p&gt;旧版 &lt;code&gt;session_search&lt;/code&gt; 是辅助 LLM 驱动的工具，每次搜索花 90 秒、花费 $0.30，偶尔还会编造结果。新版完全重写：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;零 LLM 调用&lt;/strong&gt;，纯 FTS5 搜索引擎&lt;/li&gt;
&lt;li&gt;三种模式（发现/滚动/浏览），自动推断无需切换&lt;/li&gt;
&lt;li&gt;搜索延迟：~20ms（旧版 ~90s）&lt;/li&gt;
&lt;li&gt;滚动延迟：~1ms&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;搜索历史对话现在免费且即时。&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="拆核心代码大瘦身"&gt;拆：核心代码大瘦身
&lt;/h2&gt;&lt;h3 id="run_agentpy-从16000行拆成3800行"&gt;run_agent.py 从16,000行拆成3,800行
&lt;/h3&gt;&lt;p&gt;这是整个版本最激进的重构。
&lt;code&gt;run_agent.py&lt;/code&gt; 从 16,083 行缩减到 3,821 行（&lt;strong&gt;-76%&lt;/strong&gt;），拆分到 14 个内聚的 &lt;code&gt;agent/*&lt;/code&gt; 模块。&lt;/p&gt;
&lt;p&gt;关键保证：&lt;strong&gt;行为零变化&lt;/strong&gt;。每个拆分都在 &lt;code&gt;AIAgent&lt;/code&gt; 上保留薄转发器，所有测试补丁路径不受影响，外部调用者完全兼容。&lt;/p&gt;
&lt;p&gt;为什么你应该关注？以前这个文件在你的编辑器里要 90 秒才能打开，现在眨眼即开。未来开发迭代速度会显著加快。&lt;/p&gt;
&lt;h2 id="稳kanban长成真正的多agent平台"&gt;稳：Kanban长成真正的多Agent平台
&lt;/h2&gt;&lt;p&gt;v0.15.0 用 &lt;strong&gt;104个PR&lt;/strong&gt; 把 Kanban 从任务队列升级为多 Agent 协作平台。&lt;/p&gt;
&lt;h3 id="新能力一览"&gt;新能力一览
&lt;/h3&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;能力&lt;/th&gt;
 &lt;th&gt;说明&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;自动分解&lt;/td&gt;
 &lt;td&gt;Triage 自动将一个任务分解为子任务树&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Swarm 拓扑&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;hermes kanban swarm&lt;/code&gt; 一键创建完整 Swarm v1 图&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;每任务模型覆盖&lt;/td&gt;
 &lt;td&gt;便宜模型做杂活，贵模型啃硬骨头&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;工作树隔离&lt;/td&gt;
 &lt;td&gt;每个任务独立 git worktree，互不干扰&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;定时启动&lt;/td&gt;
 &lt;td&gt;任务支持指定开始时间&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;陈旧任务检测&lt;/td&gt;
 &lt;td&gt;自动发现并回收卡住的任务&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Worker 可视化&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;/workers/active&lt;/code&gt;、&lt;code&gt;/runs/{id}&lt;/code&gt;、&lt;code&gt;/inspect&lt;/code&gt; 端点&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="swarm-是什么"&gt;Swarm 是什么
&lt;/h3&gt;&lt;p&gt;一条命令创建一个完整的多 Agent 工作流：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;hermes kanban swarm
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;自动生成：根节点 → 并行 Worker → 门控验证者 → 门控综合者 → 共享黑板。适合代码审查、批量研究、多文件重构等场景。&lt;/p&gt;
&lt;h2 id="安全三道防线对抗提示注入"&gt;安全：三道防线对抗提示注入
&lt;/h2&gt;&lt;p&gt;受 Brainworm/Promptware Kill Chain 研究（arxiv 2601.09625）启发，v0.15.0 在三个关键位置部署了防御：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;威胁模式库&lt;/strong&gt;（&lt;code&gt;tools/threat_patterns.py&lt;/code&gt;）：~15个新的 Brainworm/C2 模式&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;记忆加载扫描&lt;/strong&gt;：召回的记忆在注入上下文前先过安全检查&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;工具结果分隔符&lt;/strong&gt;：恶意文件或远程服务无法伪装成 Hermes 自身的系统内容&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;配合新增的 &lt;code&gt;security-guidance&lt;/code&gt; 插件，对危险代码写入进行模式匹配。&lt;/p&gt;
&lt;h2 id="其他值得关注的更新"&gt;其他值得关注的更新
&lt;/h2&gt;&lt;h3 id="bitwarden-secrets-manager-集成"&gt;Bitwarden Secrets Manager 集成
&lt;/h3&gt;&lt;p&gt;一个引导令牌（&lt;code&gt;BWS_ACCESS_TOKEN&lt;/code&gt;）替代所有明文 API Key。在 Bitwarden Web 端轮换密钥，重启即生效。&lt;/p&gt;
&lt;h3 id="ntfy第23个消息平台"&gt;ntfy：第23个消息平台
&lt;/h3&gt;&lt;p&gt;无需注册、无需 API Key，只要一个 topic URL。Agent 完成任务、cron 到点，推送通知直达手机/桌面/智能家居。&lt;/p&gt;
&lt;h3 id="skill-bundle一条命令加载多个-skill"&gt;Skill Bundle：一条命令加载多个 Skill
&lt;/h3&gt;&lt;p&gt;设置你的&amp;quot;写作日&amp;quot;组合（humanizer + ideation + obsidian + youtube-content）。
&lt;code&gt;/writing-day&lt;/code&gt; 一次性激活全部。&lt;/p&gt;
&lt;h3 id="tui-会话管理器"&gt;TUI 会话管理器
&lt;/h3&gt;&lt;p&gt;Ink TUI 新增多会话切换器：在同一个终端窗口里列出、切换、刷新、关闭多个会话，不用退出。&lt;/p&gt;
&lt;h3 id="docker-s6-overlay-容器管理"&gt;Docker s6-overlay 容器管理
&lt;/h3&gt;&lt;p&gt;容器内网关自动监督、重启对账、docker logs 集成。Node 升级到 22 LTS。&lt;/p&gt;
&lt;h2 id="v0151-热修复5月29日"&gt;v0.15.1 热修复（5月29日）
&lt;/h2&gt;&lt;p&gt;v0.15.0 发布隔天，一个 P0 bug 浮出水面：&lt;strong&gt;Dashboard 在 loopback 模式下无限重载&lt;/strong&gt;。&lt;/p&gt;
&lt;h3 id="根因"&gt;根因
&lt;/h3&gt;&lt;p&gt;Dashboard 的身份探针（&lt;code&gt;/api/auth/me&lt;/code&gt;）在 loopback 模式下返回 401（设计如此）。
但 v0.15.0 的过期令牌重载守卫把每个 401 都当成了需要刷新的会话令牌，触发整页重载。
重载后其他请求清除了单次重载守卫，于是又触发下一轮。
Firefox 表现为 &amp;ldquo;Navigated to /sessions&amp;rdquo; 暴风，Chrome 表现为 React 重渲染风暴。&lt;/p&gt;
&lt;h3 id="修复"&gt;修复
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;fetchJSON&lt;/code&gt; 新增 &lt;code&gt;allowUnauthorized&lt;/code&gt; 选项，跳过 loopback 下的过期令牌重载逻辑。
401 仍然抛异常让 &lt;code&gt;AuthWidget&lt;/code&gt; 处理，但不再触发整页刷新。&lt;/p&gt;
&lt;h3 id="其他修复"&gt;其他修复
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;Docker &lt;code&gt;--insecure&lt;/code&gt; 改为显式环境变量（&lt;code&gt;HERMES_DASHBOARD_INSECURE=1&lt;/code&gt;），不再从绑定主机推断&lt;/li&gt;
&lt;li&gt;MCP bare 命令（npx/npm/node）在 Docker 容器内正确解析到 &lt;code&gt;/usr/local/bin&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Kanban Worker 的 SIGTERM 终于能正常终止进程&lt;/li&gt;
&lt;li&gt;Skills 页面源标签和分类侧边栏恢复&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/yolo&lt;/code&gt; 中途启用变为 per-session 级别&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/model&lt;/code&gt; 和 &lt;code&gt;hermes model&lt;/code&gt; 显示统一列表&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.md&lt;/code&gt; 文件媒体投递恢复&lt;/li&gt;
&lt;li&gt;Web URL 不再被误删查询参数&lt;/li&gt;
&lt;li&gt;Skills Hub 全目录：858 → 19,932，所有 skills.sh 条目可搜索&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="升级建议"&gt;升级建议
&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 源码安装&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; /opt/hermes-agent
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git pull
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;pip install -e .
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 或 Docker&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;docker pull nousresearch/hermes-agent:latest
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 检查版本&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;hermes --version
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;strong&gt;直接跳到 v0.15.1，不要停在 v0.15.0。&lt;/strong&gt; Dashboard 无限重载 bug 只影响 v0.15.0。&lt;/p&gt;
&lt;h2 id="数据总结"&gt;数据总结
&lt;/h2&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;指标&lt;/th&gt;
 &lt;th&gt;v0.15.0&lt;/th&gt;
 &lt;th&gt;v0.15.1&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;提交数&lt;/td&gt;
 &lt;td&gt;1,302&lt;/td&gt;
 &lt;td&gt;28&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;合并PR&lt;/td&gt;
 &lt;td&gt;747&lt;/td&gt;
 &lt;td&gt;21&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;文件变更&lt;/td&gt;
 &lt;td&gt;1,746&lt;/td&gt;
 &lt;td&gt;-&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;贡献者&lt;/td&gt;
 &lt;td&gt;321&lt;/td&gt;
 &lt;td&gt;9&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;P0 修复&lt;/td&gt;
 &lt;td&gt;15&lt;/td&gt;
 &lt;td&gt;1&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;P1 修复&lt;/td&gt;
 &lt;td&gt;65&lt;/td&gt;
 &lt;td&gt;-&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;安全修复&lt;/td&gt;
 &lt;td&gt;19&lt;/td&gt;
 &lt;td&gt;-&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;p&gt;关注 varkm，一起学习，一起成长&lt;/p&gt;</description></item></channel></rss>