<?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/%E5%8D%87%E7%BA%A7%E6%8C%87%E5%8D%97/</link><description>Recent content in 升级指南 on Kalend's Blog</description><generator>Hugo -- gohugo.io</generator><language>zh</language><lastBuildDate>Fri, 29 May 2026 10:00:00 +0800</lastBuildDate><atom:link href="https://blog.kalend.top/tags/%E5%8D%87%E7%BA%A7%E6%8C%87%E5%8D%97/index.xml" rel="self" type="application/rss+xml"/><item><title>Hermes Agent 升级指南：v0.14.0 → v0.15.1，为什么要隔天发补丁</title><link>https://blog.kalend.top/2026/05/29/hermes-v0.15.1-upgrade-guide.html/</link><pubDate>Fri, 29 May 2026 10:00:00 +0800</pubDate><guid>https://blog.kalend.top/2026/05/29/hermes-v0.15.1-upgrade-guide.html/</guid><description>
 &lt;blockquote&gt;
 &lt;p&gt;2026年5月，Hermes Agent 两周内连发三版：v0.14.0 → v0.15.0 → v0.15.1。第三版是隔天紧急修复——Dashboard 无限重载，新装用户直接无法使用。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h2 id="先说结论"&gt;先说结论
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;所有用户直接升级到 v0.15.1。&lt;/strong&gt; 不用停在 v0.15.0，它的 Dashboard 有 P0 级缺陷。&lt;/p&gt;
&lt;p&gt;一张表看全貌：&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;版本&lt;/th&gt;
 &lt;th&gt;日期&lt;/th&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;v0.14.0&lt;/td&gt;
 &lt;td&gt;5.16&lt;/td&gt;
 &lt;td&gt;Foundation&lt;/td&gt;
 &lt;td&gt;全平台基础版本&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;v0.15.0&lt;/td&gt;
 &lt;td&gt;5.28&lt;/td&gt;
 &lt;td&gt;Velocity&lt;/td&gt;
 &lt;td&gt;1302 commits 大重构&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;v0.15.1&lt;/td&gt;
 &lt;td&gt;5.29&lt;/td&gt;
 &lt;td&gt;Hotfix&lt;/td&gt;
 &lt;td&gt;隔天紧急修复&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="v0140--v0150大版本跳跃"&gt;v0.14.0 → v0.15.0：大版本跳跃
&lt;/h2&gt;&lt;p&gt;这不是小更新。v0.15.0 是 Hermes 历史上最大的单版本变更——747 个 PR、1302 个 commit、321 位贡献者。&lt;/p&gt;
&lt;h3 id="核心代码大瘦身"&gt;核心代码大瘦身
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;run_agent.py&lt;/code&gt; 从 &lt;strong&gt;16,000 行&lt;/strong&gt;重构到 &lt;strong&gt;3,800 行&lt;/strong&gt;，缩减 76%。不是删功能，是把职责拆分到独立模块。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;性能实测数据：&lt;/strong&gt;&lt;/p&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;-195ms&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;每轮函数调用&lt;/td&gt;
 &lt;td&gt;-240ms（-47%）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="session_search-重写4500x-提速"&gt;session_search 重写：4500x 提速
&lt;/h3&gt;&lt;p&gt;会话搜索引擎从 LLM 驱动改为纯 FTS5 实现。搜索速度快了 &lt;strong&gt;4500 倍&lt;/strong&gt;，而且不再消耗 token。&lt;/p&gt;
&lt;h3 id="kanban-演进为多-agent-平台"&gt;Kanban 演进为多 Agent 平台
&lt;/h3&gt;&lt;p&gt;Kanban 模块经过 &lt;strong&gt;104 个 PR&lt;/strong&gt; 打磨，从任务看板变成了多 Agent 协作平台。支持任务分解、子 Agent 分发、跨 Agent 依赖管理。&lt;/p&gt;
&lt;h3 id="安全防护promptware-defense"&gt;安全防护：Promptware Defense
&lt;/h3&gt;&lt;p&gt;新增 promptware 防御机制，防止恶意提示词注入攻击 Agent 系统提示。&lt;/p&gt;
&lt;h3 id="新集成"&gt;新集成
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Bitwarden Secrets Manager&lt;/strong&gt;：密钥管理集成&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Krea 2 + FAL 插件&lt;/strong&gt;：两个新图像生成提供商&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Nous 官方 MCP 目录&lt;/strong&gt;：审核过的 MCP 服务目录&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ntfy 平台&lt;/strong&gt;：第 23 个消息平台&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;mTLS 支持&lt;/strong&gt;：MCP 连接支持 TLS 客户端证书&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="breaking-changes"&gt;Breaking Changes
&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;code&gt;API_SERVER_KEY&lt;/code&gt; 强制&lt;/td&gt;
 &lt;td&gt;API Server 现在强制要求 Key，无 Key 不再允许请求&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;web_crawl&lt;/code&gt; 移除&lt;/td&gt;
 &lt;td&gt;该工具及相关 provider 已被移除&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;context engine&lt;/td&gt;
 &lt;td&gt;新增外部上下文引擎接口，需配合新配置&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="v0150--v0151为什么隔天就发补丁"&gt;v0.15.0 → v0.15.1：为什么隔天就发补丁
&lt;/h2&gt;&lt;p&gt;v0.15.0 发布后隔天社区报告了多个阻断性问题。&lt;/p&gt;
&lt;h3 id="-dashboard-无限重载循环p0"&gt;🔴 Dashboard 无限重载循环（P0）
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;这是 v0.15.1 存在的唯一理由。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;在 loopback 模式下（Docker 部署 / 托管环境 / 全新安装），Dashboard 的 SPA 在 token 过期后陷入死循环：401 → 重新登录 → 又 401 → 无限刷新。用户看到页面不停闪烁，完全无法使用。&lt;/p&gt;
&lt;p&gt;修复方式：&lt;code&gt;/api/auth/me&lt;/code&gt; 返回 401 时不再触发整页重载，改为 SPA 内部处理 token 刷新。&lt;/p&gt;
&lt;h3 id="-kanban-worker-sigterm-不终止"&gt;🔴 Kanban Worker SIGTERM 不终止
&lt;/h3&gt;&lt;p&gt;发送 SIGTERM 后进程没有正确终止，任务超时或手动取消时僵尸进程堆积。&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;code&gt;/model&lt;/code&gt; 和模型选择器列表不统一&lt;/td&gt;
 &lt;td&gt;CLI 和 gateway 显示不同模型列表&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;/yolo&lt;/code&gt; 模式未绕过 session&lt;/td&gt;
 &lt;td&gt;yolo 模式实际没生效&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Skills 目录不完整&lt;/td&gt;
 &lt;td&gt;858 → 19,932，只拉取了部分条目&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;.md&lt;/code&gt; 媒体投递被误拦截&lt;/td&gt;
 &lt;td&gt;Gateway 把正常 Markdown 附件也拦了&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Web URL 被误脱敏&lt;/td&gt;
 &lt;td&gt;URL 参数被错误替换&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="docker-安全加固"&gt;Docker 安全加固
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;--insecure&lt;/code&gt; 标志必须通过环境变量&lt;strong&gt;显式启用&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;MCP bare command（&lt;code&gt;npx&lt;/code&gt;/&lt;code&gt;npm&lt;/code&gt;/&lt;code&gt;node&lt;/code&gt;）明确解析到 &lt;code&gt;/usr/local/bin&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;arm64 CI 缓存问题修复&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="升级指南"&gt;升级指南
&lt;/h2&gt;&lt;h3 id="从-v0140-升级推荐"&gt;从 v0.14.0 升级（推荐）
&lt;/h3&gt;&lt;p&gt;直接跳到 v0.15.1，不需要中间停 v0.15.0：&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;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;/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;git clone https://github.com/NousResearch/hermes-agent
&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; hermes-agent
&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;# 或 PyPI&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;pip install --upgrade hermes-agent
&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;h3 id="从-v0150-升级到-v0151必须"&gt;从 v0.15.0 升级到 v0.15.1（必须）
&lt;/h3&gt;&lt;p&gt;v0.15.0 的 Dashboard 无限重载是影响所有新装和 Docker 用户的 P0 问题：&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;pip install --upgrade hermes-agent
&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;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;Gateway 重启&lt;/td&gt;
 &lt;td&gt;升级后必须 &lt;code&gt;hermes gateway restart&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;API_SERVER_KEY&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;v0.15.0+ 强制要求，检查 &lt;code&gt;~/.hermes/.env&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Browser Use 配置&lt;/td&gt;
 &lt;td&gt;需配置 &lt;code&gt;BEARER_TOKEN&lt;/code&gt; 匹配 &lt;code&gt;API_SERVER_KEY&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Kanban 备份&lt;/td&gt;
 &lt;td&gt;并发加固后更稳定，但建议备份 &lt;code&gt;~/.hermes/kanban.db&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Docker &lt;code&gt;--insecure&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;必须显式设置环境变量&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="版本号背后的逻辑"&gt;版本号背后的逻辑
&lt;/h2&gt;&lt;p&gt;v0.15.1 不是计划内版本。大版本（v0.15.0）涉及 1300+ commits 变更，回归测试不可能覆盖所有部署环境。Dashboard 无限重载只在 loopback/Docker 场景触发，CI 没覆盖到。&lt;/p&gt;
&lt;p&gt;发现问题后团队在隔天内发布修复——这是健康开源项目的标准响应速度。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;建议所有用户直接使用 v0.15.1。&lt;/strong&gt;&lt;/p&gt;
&lt;section style="margin:20px 0;padding:16px 20px;background:linear-gradient(135deg,#4a90d9,#357abd);border-radius:8px;text-align:center;"&gt;
&lt;p style="margin:0 0 8px 0;color:#fff;font-size:16px;font-weight:bold;line-height:1.6;"&gt;关注 varkm，一起学习，一起成长&lt;/p&gt;
&lt;p style="margin:0;color:rgba(255,255,255,0.85);font-size:13px;line-height:1.6;"&gt;更多 AI Agent 实战经验和踩坑记录，持续更新中&lt;/p&gt;
&lt;/section&gt;</description></item></channel></rss>