Hermes Agent:实践者参考指南(2026)
# 面向实践者的Hermes Agent参考指南。Hermes Agent是Nous Research推出的开源自我改进型AI智能体,涵盖服务提供商身份验证、配置文件、技能系统,以及如何将其作为多平台消息网关运行。
简而言之: Hermes Agent 是 Nous Research 推出的开源自我改进型 AI 智能体。它既能作为 CLI 运行,也能充当多平台消息 gateway;可在磁盘上存储持久身份与长期记忆,汇集随使用不断改进的 skill,并支持任何兼容 OpenAI 的 LLM 提供商——Nous Portal、OpenRouter、Anthropic、GitHub Copilot、z.ai、Kimi、MiniMax、DeepSeek、Qwen Cloud、Hugging Face、Google、xAI/SuperGrok,以及您自行托管的端点。1219 当前版本为 v0.21.5(标签
v2026.9.24,发布于2026年9月24日),是 v0.21 系列的汇总补丁版本;v0.21.5 的新增内容介绍了具体变更,其后的版本章节按从新到旧的顺序排列。52 对大多数新用户而言,最难的部分是提供商身份验证:在标签v2026.9.24中,Hermes 的静态选择器列表内置了39个提供商,并通过38个捆绑的提供商插件自动扩展该列表,此外还支持自定义端点;身份验证则分为3条不同路径(.env中的 API 密钥、通过hermes model使用 OAuth,或在config.yaml中配置自定义端点)。53 首先需要掌握的是身份验证模型——后续一切都取决于最终解析出的提供商。
Hermes Agent 是完整的智能体运行时,而非聊天工具的简单封装。它能够读取文件系统、在沙箱后端执行命令、抓取网页、生成子智能体、运行预定的 cron 任务,通过单一 gateway 进程与 Telegram/Discord/Slack/WhatsApp/Signal/Email 通信,还能从实践经验中创建自己的 skill。1 CLI 是构建在 run_agent.py 对话循环之上的终端 UI;gateway 则是一个长期运行的进程,负责将各消息平台的消息路由至同一对话循环。3
Hermes 的普通用法与专家级用法之间,差别归结为5个系统。 掌握它们,Hermes 就能成为事半功倍的利器:
- 提供商解析:身份验证流程如何映射到 API 调用
- 配置层级:
config.yaml+.env+auth.json+SOUL.md+AGENTS.md - Tool + toolset 系统:智能体能够执行哪些操作,以及各平台如何加以限制
- Skills 系统:由智能体创建并持续演进的程序性记忆
- Gateway + cron + profiles:让 Hermes 在您的常用平台上运行,而不局限于您当前所在的环境
核心要点
- 提供商身份验证有3条路径,而非只有1条。
.env中的 API 密钥、通过hermes model/hermes auth使用 OAuth,或在config.yaml中配置自定义端点。应选择与提供商匹配的路径,而不是仅凭熟悉程度选择。 - 切换提供商只需一条命令。
hermes model会以交互方式引导您完成每个受支持提供商的配置,包括 OAuth 登录;/model provider:model则可在会话中途切换模型,同时保留历史记录。2 - 用户可编辑的配置界面由2个文件组成。
~/.hermes/config.yaml存放设置,~/.hermes/.env存放密钥。auth.json、SOUL.md、MEMORY.md和skills/由 Hermes 直接管理——您可以手动编辑SOUL.md,其余内容则由智能体自行修改。4 - Hermes 是 OpenClaw 的后继者。 如果您正在迁移,
hermes claw migrate可自动导入30多个类别的状态。5 - 默认情况下,辅助任务使用您的主模型。 视觉处理、批准分类、压缩和会话标题会作为独立的“辅助” LLM 调用运行;在该标签版本中,
auto会将这些任务全部路由至主聊天模型——无需额外配置,但若使用昂贵的推理模型,这些附带任务会带来不可忽视的成本。必要时,可将各个auxiliary.<task>槽位分别指向低成本的快速模型。434
以下各节均以 hermes-agent.nousresearch.com/docs 的上游文档和 github.com/NousResearch/hermes-agent 的源代码树为依据。每项事实性陈述均附有脚注,指向其来源所在的具体上游页面。
选择适合您的路径
| 您的需求 | 前往此处 |
|---|---|
| 安装 Hermes | 安装——单行安装程序或手动步骤 |
| 登录提供商 | 身份验证与提供商——这正是您要查找的章节 |
| 在会话中途切换模型 | hermes auth 命令,以及介绍 /model 语法的自定义与自行托管的端点 |
| 运行本地 LLM | 自定义与自行托管的端点——Ollama、vLLM、SGLang、llama.cpp、LM Studio |
| 连接消息平台 | 消息 Gateway——Telegram、Discord、Slack、WhatsApp、Signal、Google Chat、LINE、SimpleX Chat、ntfy、Buzz(文档对比表中共列出28个平台) |
| 编写或安装 skill | Skills 系统——渐进式披露 + skill 中心 |
| 查阅每条 CLI 命令的详细参考资料 | 继续阅读——也可直接前往 CLI 命令 |
Hermes 的工作原理:心智模型
Hermes 围绕一个可由任意入口调用的单一对话循环构建。这些入口包括 CLI(cli.py)、消息 gateway(gateway/run.py)、用于编辑器集成的 ACP 适配器、批处理运行器,以及一个 API 服务器。3它们最终都会调用 run_agent.py 中的 AIAgent.run_conversation(),该方法会:
- 通过
agent/prompt_builder.py,根据SOUL.md、MEMORY.md、USER.md、skill、上下文文件和工具指南构建系统提示词(2026年9月的拆分将其移入了新的agent/包)3 - 通过
runtime_provider.py解析运行时提供商——此步骤会选择身份验证方式、基础 URL 和 API 模式3 - 使用以下3种 API 模式之一调用提供商:
chat_completions、codex_responses或anthropic_messages3 - 通过
model_tools.py和中央工具注册表(tools/registry.py)分派返回的所有工具调用3 - 持续循环,直至模型生成最终响应,然后将会话持久化到支持 FTS5 的 SQLite 中3
理解这一循环至关重要,因为所有功能——个性、记忆、skill、压缩、回退——都依附于其中某个阶段。当您查看某个配置键并想知道它有何作用时,答案通常是:“它是用于调节上述循环第1、2、3或4阶段的参数。”
与平台无关的核心。一个 AIAgent 类同时服务于 CLI、gateway、ACP、批处理和 API 服务器。平台差异存在于入口层,而非 agent 本身。3正因如此,同一组斜杠命令既可在终端中使用,也可在 Telegram 中使用——这些命令均由 hermes_cli/commands.py 中共享的 COMMAND_REGISTRY 分派。6
目录结构就是系统本身。Hermes 将所有内容存储在 ~/.hermes/ 下(非默认 profile 则存储在 $HERMES_HOME 下):4
~/.hermes/
├── config.yaml # Settings (model, terminal, TTS, compression, etc.)
├── .env # API keys and secrets
├── auth.json # OAuth provider credentials (Nous Portal, Codex, Anthropic)
├── SOUL.md # Primary agent identity (slot #1 in system prompt)
├── memories/ # Persistent memory (MEMORY.md, USER.md)
├── skills/ # Bundled + agent-created + hub-installed skills
├── cron/ # Scheduled jobs
├── sessions/ # Gateway session state
└── logs/ # agent.log, gateway.log, errors.log (secrets auto-redacted)
上述每个文件各司其职,彼此之间并无重叠。如果您想知道“Hermes 将 X 存储在哪里”,答案就在其中。
v0.21.5 的新增内容(9月24日汇总版本)
Hermes Agent v0.21.5(标签 v2026.9.24,发布于2026年9月24日)是当前版本,也是 v0.21.x 系列的第3个小型汇总版本:“此标签将自 v0.21.4 以来合并的约460个 PR 汇总为一个稳定的标签版本,供下游使用者采用”。精选发行说明再次推迟至 v0.22.0 发布。以下是面向运维人员的变更,均已根据该标签下的源代码核实:5253
- Hindsight memory 已移出核心代码树。内置的 Hindsight 提供商和
hermes-agent[hindsight]pip 可选依赖均已移除;Hindsight 现由 Vectorize 维护,并通过插件目录安装;发行说明并未提及此项变更。如果配置中设置了memory.provider: hindsight,hermes update会将目录中的插件安装到所有引用它的 profile 主目录中。若仍未安装,首次启动 agent 时也会自动安装,除非security.allow_lazy_installs为false(此时请运行hermes plugins install hindsight)。设置、.env键和记忆数据均保持不变。请参阅外部记忆提供商。 gateway.multiplex_profiles: false已停用。gateway 会将其原地改写为true,并显示一次性方框提示。必须保留独立 gateway 的命名 profile,需要在自身的config.yaml中设置gateway.standalone: true;若要让某个由主机服务的 profile 下线,hermes -p <name> gateway stop现在会将其暂停,而不会停止主机。请参阅消息 Gateway。- Nous 和 OpenRouter 模型选择器中新增模型:GPT-6 Sol 和 GPT-6 Luna(两者均提供
-pro变体),以及 Claude Opus 5.5。 - 插件兼容性保持不变:
plugins.allow_deprecated_imports: true仍然有效。
更新方式:运行 hermes update 或安装程序的一行命令;Docker 和 Hermes Cloud 镜像基于 nousresearch/hermes-agent:v2026.9.24 构建。52
v0.21.4 新增内容(第二个汇总补丁)
Hermes Agent v0.21.4(标签 v2026.9.21,2026年9月21日)是 v0.21.x 系列中第二个刻意保持精简的汇总版本。其自身定位是:“补丁版本。此标签将自 v0.21.3 以来合并的约 1,800 个 PR 汇总为稳定的带标签版本,供下游使用者(Docker 镜像、Hermes Cloud、托管部署)使用。”自 v0.21.3 以来的窗口包含“5,071 个非合并提交”,涉及“5,169 个变更文件”“1,812 个已合并 PR”和“2,116 个已关闭问题”。按提交数计算,这是项目历史上标签之间第二大的变更窗口,仅次于 v0.21.1 的 5,139 个提交;按已合并 PR 数计算,则是最大的一次。精选整理工作再次推迟,原文如下:“此窗口的完整精选发布说明将随 v0.22.0 发布,并记录从 v0.21.0 开始的所有内容”,以及“此窗口中的任何内容都不会遗漏。”发布说明确实列出了暂未记录的内容,以下每一项均已在该标签的源代码中核查;若某项变更涉及本指南中的既有章节,则会在行内给出链接。5051
- 每台主机仅运行一个 gateway,Desktop 采用连接方式而非重新启动。 规则是:每台主机上的每个操作系统用户只能运行一个
hermes serve和一个hermes gateway run,二者各自对所有 profile 进行多路复用。新的主机级单例层会强制执行此规则:胜出进程在其整个生命周期内持有主机锁,同时通过包含(pid, createTime)的会合记录,使第二次调用能够确认所有者仍是同一存活进程,并直接连接,而非绑定第二个端口。系统始终通过证据判定记录是否过期,绝不凭空假设。Desktop 应用也从自身一侧采用相同机制,连接正在运行的主机后端,而不是再启动一个后端。Messaging Gateway介绍了具体机制。51 - 连接器统一为后端所有的一项操作,并共用一张设置卡片。 一次
manage_connections工具调用会驱动后端的纯数据连接状态机,而 Desktop、TUI 和 CLI 都将其渲染为同一张设置卡片:每项缺失的凭据对应一个字段;在所有必填字段均有内容之前,卡片的操作按钮都会保持禁用。请参阅 Nous 免费层级小节。51 --format stream-json:机器可读的单次运行。hermes chat -q ... --format stream-json会为 CI 运行程序和编排器在 stdout 的每一行输出一个 JSON 对象:先是system/init事件,随后是text增量、tool_use、tool_result事件,最后是一个终止result信封,其中包含退出代码、最终文本和 token 统计信息。诊断信息和会话 ID 保留在 stderr;每个事件中的工具输出上限为 5,000 个字符;该标志隐含启用--quiet,且必须与-q或--query-file配合使用(未提供时以代码 2 退出),并且不能与--tui组合使用。hermes chat选项表中列出了此标志。51skills.auto_load将 skill 固定加载到每个会话中。config.yaml中skills.auto_load下列出的名称会在每个新会话中完整加载——无论是 CLI、TUI、gateway、cron 还是 API——并在首次构建提示词时统一解析一次。Skills System新增了“固定加载的 Skills”小节。51- 为未经授权的私信新增
decline选项。unauthorized_dm_behavior除pair和ignore外新增第三个值:decline会发送一次礼貌的拒绝消息,此后在 24 小时内不再回复该发送者。请参阅用户授权与配对。51 mcp.discovery_concurrency限制 MCP 发现连接的并发数。 默认值为 4,0表示不设限制;所有已配置的服务器仍会建立连接,只是不再同时发起。请参阅 MCP 集成。51session_search支持时间范围和召回重试。 发现参数新增after/before范围(支持 ISO 格式或7d之类的相对时长);多词查询若返回零条结果,系统会改为匹配任意词项并重试,而不再沿用 FTS5 隐含的所有词项 AND 逻辑。请参阅会话搜索。51hermes sessions set-journal-mode delete|wal:离线日志模式转换器。 这是用于修复state.db卡在错误 SQLite 日志模式下的自助方案——此前必须手动运行PRAGMA journal_mode=DELETE。请先停止 gateway、dashboard 和所有 CLI:只要任何其他进程仍持有该数据库,命令就会拒绝执行;它不会等待占用者退出,而是直接失败,并会在转换后核验 SQLite 文件头字节。Windows 不支持占用者扫描,因此在该平台上,您必须自行停止所有 Hermes 进程并传入--force,否则命令会拒绝执行。hermes doctor现在会引导使用此命令。顶级命令中的hermes sessions行已收录该功能。51- Desktop:字体设置、一键更新引擎以及卸载插件。 设置中新增按 profile 持久化到
desktop.font_family的字体系列字段。它会覆盖聊天和 UI 中主题的无衬线字体;建议列表优先展示无障碍字体(OpenDyslexic、Atkinson Hyperlegible、Lexend);留空则由主题决定。托管的本地模型运行时会在有可用更新时显示“更新引擎”按钮;更新失败后按钮仍会保留,便于直接重试。此外,Plugins 中心现在支持通过确认对话框卸载插件。51 - 视频目录:LTX 2.5 和 Kling O3。 FAL 视频插件新增
ltx-2.5(Lightricks 的开源音视频模型:原生音频、最长 20 秒/4K 图生视频、相机运动预设、低价层级——fal 会拒绝分辨率为 1440p/2160p 且时长超过 10 秒的片段)和kling-o3(Kuaishou 的前沿模型系列,属高价层级:支持原生多镜头叙事、可选音频,时长 3~15 秒)。51 - 插件目录成为随产品发布的目录和网站。 仓库中的
plugin-catalog/目录从v2026.9.14时的 9 个条目增至此标签下的 228 个——每个插件对应一个经过审核的 YAML,并固定到精确的提交 SHA。文档网站现在还会为每个插件和每位作者构建单独页面,每个页面均从固定提交中渲染插件的 README。此版本点名的 10 个社区插件在该标签下均已收录于目录中。Plugin System介绍了详细信息。51 - 此外还有大规模修复,涉及 profile/多路复用隔离、cron、看板、Desktop 和
state.db;发布说明仅将其作为一个类别提及,具体修复的精选记录将由 v0.22.0 补充。50
插件兼容性回退在此窗口中仍未落地。 在 v2026.9.21 中,COMPAT_MANIFEST.md、compat_manifest.json 和兼容性垫片仍然存在;此窗口内对 hermes_cli/plugin_compat.py 的改动仅包括进程级扫描缓存(多路复用 gateway 会为每个受服务的 profile 发现一次插件,而在启动路径中重复解析每个插件的源代码会为每个 profile 增加约 0.4 秒开销),以及 Windows 上采用 POSIX 格式的命中路径(#112576)。日期门槛和字面量布尔值逃生通道均未改变,因此 plugins.allow_deprecated_imports: true 仍能让受影响的插件继续加载。Plugin System中的兼容性说明框记录了当前状态。42
更新方式不变:git 安装使用 hermes update,全新安装则使用 shell 安装程序;Docker 和 Hermes Cloud 镜像均基于此标签构建(nousresearch/hermes-agent:v2026.9.21)。50
v0.21.3 新增内容(9月14日补丁)
Hermes Agent v0.21.3(标签 v2026.9.14,2026年9月14日)涵盖 main 分支上又 3 天的变更,发布说明仅列出两项内容。之所以发布此版本,是因为 Cloud agent 会自动更新到最新发布标签,而访问这些 agent 需要修复远程 gateway 登录问题。(1)远程 dashboard 会话不再因集中刷新请求而被撤销:gateway 上的两条刷新路径(cookie 门控和 Desktop 的原生 bearer 路由)现在会将携带同一轮换刷新 token 的并发请求合并为单次执行。因此,Desktop 唤醒时的一波请求不再会把已轮换的 token 重放到 Portal 的复用检测机制中,进而撤销整个会话。刷新操作也已移出事件循环,因此缓慢的身份提供商不会再冻结 /api/status。(2)长时间运行的进程不再创建重复的 state.db 写入句柄:gateway、dashboard/Desktop 后端、ACP 和 CLI 读取器均以只读方式连接,而进程内写入器则共享注册表中的句柄。窗口统计数据为:“1,036 个非合并提交”,涉及“2,642 个变更文件”和“338 个已合并 PR”。其余内容均有意延后整理:发布说明明确列出了暂未记录的项目(每个模型选择器上的推理强度选择器、OpenRouter OAuth PKCE、HEIF/HEIC/AVIF 解码、一批 FAL 目录更新、Slack 粘贴表格和 Agent Sessions API、跨虚拟机文件系统上对 state.db WAL 模式的拒绝,以及其他内容),并原文承诺:“此窗口的完整精选发布说明将随 v0.22.0 发布,并记录从 v0.21.0 开始的所有内容”,以及“此窗口中的任何内容都不会遗漏。”49
插件兼容性截止日期也如期到来。 v0.21.1 宣布的 2026年9月14日移除计划在已发布代码中以日期门槛生效,而非代码回退:在标签 v2026.9.14 中,hermes_cli/plugin_compat.py 包含 COMPAT_REMOVAL_DATE = 2026-09-14,且 removal_in_effect() 从该日期起返回 true(若清单文件消失,则会更早返回 true),因此受影响的外部插件现在会在加载时被禁用,并显示红色通知。尚未发生的是:真正删除旧导入路径的回退。COMPAT_MANIFEST.md、compat_manifest.json 和兼容性垫片在该标签下仍然存在——截至9月22日,在 v2026.9.21 和 main 上也依然存在——这正是 plugins.allow_deprecated_imports: true 仍能作为逃生通道的原因:只要加载器获准继续执行,旧路径仍可解析。这里有两个容易踩中的问题:该键必须是字面量 YAML 布尔值(代码只接受布尔值 True;根据源代码注释“Literal boolean only”,"true" 或 "false" 之类的带引号字符串会被视为未设置);而且一旦回退落地,此通道将立即失效,因为路径本身会随之消失。Plugin System中的兼容性说明框记录了当前状态。4249
v0.21.2 的新变化(state.db 补丁版本)
Hermes Agent v0.21.2(标签为 v2026.9.11,发布于2026年9月11日)的首要任务,是修复 v0.21.0 引入的问题。发布说明直言不讳:“v0.21.0 对会话存储的连接处理机制进行了大规模重写,但在部分安装环境中,这导致 state.db 变得脆弱:多个写入方会相互取消对方的锁,正常数据库被误报为损坏,一条异常记录就能导致 sessions list 整体失败。此版本彻底解决了这一类问题,同时汇总了 v0.21.1 发布后4天内合入 main 的其他所有改动。”与 v0.21.1 刻意简略的说明不同,此版本记录了自身的重点更新;该时间窗口内共有“947次非合并提交”,涉及“1,869个变更文件”和“312个已合并 PR”,贡献者达“140人”。至于整个 v0.21.x 阶段的精选记录,仍将由 v0.22.0 补全。48
- state.db 可靠性专项治理:6个 PR,关闭44个问题。 发布说明首先给出了面向运维人员的建议,您也应照此处理:如果
state.db在0.21.0或0.21.1中损坏,请运行hermes doctor——它现在会分别指出结构损坏与全文搜索索引损坏,而不再将所有问题笼统称为“FTS 写入损坏”;如果重建仍不足以解决问题,它还会引导您使用hermes sessions recover --inspect-only(离线、非破坏性、固定到指定 profile;无需创建输出数据库即可报告规范表的可读性)。根因修复工作消除了存储上的所有第二写入方:profile gateway 过去每5秒就会将托管房间状态写入根state.db,现在这些协调数据改存于专用的shared-state.db,因此 profile gateway 再也不会以可写方式打开主会话存储;dashboard 会优先以只读方式打开数据库;cron 的生命周期防护现在通过受跟踪的连接注册表执行,而不会对正在使用的数据库直接调用原始open()(后者会取消 gateway 的 POSIX 锁,堪称导致 SQLite 损坏的经典操作);此外,doctor --fix会拒绝执行无法确认安全的 checkpoint。除写入方问题外:FTS 索引损坏现在只会导致搜索降级,并在稍后重建索引,不再使整个交互回合失败并关闭;一条损坏记录不再拖垮sessions list、导出或 insights(异常记录会显示为?,并通过警告指出对应会话);会话绝不会绑定或读取其他 profile 的数据库;只读打开也不再获取写锁,因此在繁忙 gateway 后运行一次性hermes时,耗时已从卡顿4至20秒后失败缩短至0.01秒。48 - 强化多 profile 隔离。 自 v0.19.0 起,本指南一直援引项目方的说法:profile 路由为每个 profile 提供“完全隔离的配置、skills、内存和密钥”。到 v0.21.2,这一承诺中曾存在的漏洞现已补齐:次要 profile 的机器人会继承默认 profile 的允许列表;适配器可能将凭据发送到默认 profile 的主机;stdio MCP 服务器会收到默认 profile 的保险库密钥;
MEDIA:交付可能附带其他 profile 的.env、auth.json或state.db;webhook 和 Feishu 回调可能偏离路由指定的 profile;次要 profile 还可能从进程级备忘缓存中获取同级 profile 的 Nous bearer(#107609-#107630)。如果您在一个多路复用 gateway 下运行多个 profile,那么从此版本开始,隔离承诺才真正名副其实。48 - 对密码不可见的凭据保险库。 现在,agent 可以通过 1Password、Bitwarden 或本地 Hermes 保险库在浏览器中登录、付款和填写地址,全程无需查看任何密钥;双因素验证码可以来自已保存的身份验证器密钥(TOTP:base32 种子或
otpauth://totpURI;不接受基于计数器的 HOTP),也可以在您的 UI 中请求输入。所有后端都向 agent 提供相同的数据结构——登录元数据加上不透明的命名空间句柄(本地为vault_,另有op:、bw:),密码仅在填写时解析;外部密码管理器在当前会话中解锁前会始终保持锁定,而主密码“绝不会作为工具参数,绝不会出现在 argv 中,也绝不会被持久化”。此功能建立在 v0.19.0 的SecretSource工作之上;该机制已将提供商的 API 密钥移出明文.env,如今保险库也为 agent 的浏览器凭据提供了同等保护。48 - 精选且以 SHA 固定版本的插件目录。
hermes plugins browse会列出“精选插件目录中的每个条目”,hermes plugins search用于查询目录,而hermes plugins install除 Git URL 和owner/repo外,也能解析目录名称。hermes plugins pack则通过“声明式、可共享的插件集合”完善了整套功能:使用一个hermes-pack.yaml将一组插件固定到精确的提交 SHA;pack install将其展开为常规的固定版本安装,同时仍按插件逐一征求能力授权;pack export为当前安装生成 pack;pack show则用于试运行。插件系统的命令块已包含这些新子命令。48 - Nous 免费层级与引导式首次启动。 全新安装开箱即用,只需一条命令登录,即可获得免费推理和连接器;也可以在聊天中使用
/login,并通过tool_search搜索连接器工具(Gmail、Linear、Notion 等)。桌面应用的引导式首次启动由HERMES_GUEST_ONBOARDING=1控制,并且只有字面值1才会启用:桌面应用自身的测试明确断言,'true'、'0'和空值都会使其保持关闭;启动决策还会写入新生成后端的环境中,从而杜绝继承值意外渗入。请参阅 Nous Tool Gateway。48 - 桌面后端的批量重复启动问题已成过去。 Bot Mode 过去会在启动时以及每次 roster tick 时,针对每个 profile 启动或连接一个后端;鼠标悬停在 Bots roster 上时,会为每一行启动一个后端;切换 profile 还可能重复启动主后端。这些问题均已在此版本窗口内修复。48
更新方式保持不变:现有安装运行 hermes update,全新安装则使用 shell 安装程序。48
v0.21.1 的新增内容(汇总补丁)
Hermes Agent v0.21.1(标签 v2026.9.7,2026年9月7日)刻意保持精简:这是一个“补丁版本”,“汇总了自 v0.21.0 以来当前 main 分支的内容,供使用标签部署的用户和下游使用者使用”。正文给出了这一时间窗口的统计数据——“4,364 个变更文件中包含 5,139 个非合并提交(+601,014 / -768,419)”以及“632 个已合并 PR”——随后将完整说明留待后续发布:“这一时间窗口经过整理的完整发行说明将随 v0.22.0 发布。”这使其成为项目历史上相邻标签之间规模最大的单次变更窗口(此前没有任何相邻标签窗口超过 v2026.7.20..v2026.7.30 的 2,790 个非合并提交),却配上了最简短的发行说明。在 v0.22.0 给出经过整理的正式记录之前,以下6组变化代表了在此标签版本中操作 Hermes 时需要关注的内容,且每项均已通过源代码验证。41
- 代码库已经拆分,插件兼容倒计时于9月14日结束。 2026年9月的代码拆分(PR #102117)将仓库中的大型模块拆成了职责明确的文件:新的
agent/包承载对话循环的内部实现(包含214个顶层模块和7个子包;prompt_builder.py现位于agent/prompt_builder.py,而run_agent.py仍是AIAgent的所在地);CLI 的子命令解析器移入hermes_cli/subcommands/包(61个模块);静态CANONICAL_PROVIDERS列表从hermes_cli/models.py移至hermes_cli/models_catalog_static.py(列表本身没有变化:仍为39个静态条目,并继续根据39个内置提供商插件目录自动扩展);delegate_task则拆分至约12个tools/delegate_tool_*模块。内部导入路径并非稳定的 API,因此仓库根目录新增了COMPAT_MANIFEST.md,通过旧模块路径重新导出1,148个“moved-lazy”公共名称;解析每个名称时,每个进程仅会为该名称发出一次HermesPluginCompatWarning。此兼容层只是临时措施,并已按计划于2026年9月14日移除,即标签发布6天后生效——这并非通过代码回滚实现,而是由已随版本交付的代码中的日期门控触发。自该日起,受影响的第三方插件将不会加载:CLI 横幅、hermes doctor和hermes update会显示红色通知,指出被禁用的插件;桌面端会显示一次性模态窗口;hermes plugins list则会列出具体原因。如果您运行外部插件,请务必检查:hermes plugins compat <path>会输出每一处仍使用旧路径的位置,格式为file:line并附带旧路径 -> 新路径;只要仍有残留,命令就会以状态码1退出(使用--json可获得机器可读输出;不带参数运行则会扫描已安装的全部插件)。若插件作者尚未完成适配,可在config.yaml中设置plugins.allow_deprecated_imports: true作为权宜之计,而且该设置目前仍然有效:截至9月22日,真正删除旧导入路径的回滚尚未合入(已验证至标签v2026.9.21及main分支),因此只要加载器获准继续运行,旧路径仍可解析。后续详情请参阅上文的 v0.21.2 的新增内容;插件系统一节则包含当前状态说明框。42 - Gateway 对话彻底不再按计时器轮换。 会话生命周期文档现已明确规定:“空闲时间和实际经过时间都不会触发对话轮换。
/new和/reset会创建明确的边界;context compression 会继续管理较长的历史记录。旧版计时器配置将被忽略。现有SessionResetPolicy数据类型仅作为无实际作用的兼容数据保留,并非运行时策略。”边界必须由用户明确创建;如果您通过hermes claw migrate带入了 OpenClaw 时代的会话重置计时器,这些计时器如今只是无实际作用的数据。请参阅消息 Gateway。43 - MCP 授权新增设备代码流程。
hermes mcp login <name>新增--flow {browser,device}:browser是现有的 PKCE 流程;device是符合 RFC 8628 的设备代码登录流程,适用于难以使用浏览器回调的机器;该标志会覆盖服务器的oauth.flow配置。此次更新还强化了 MCP 的其他身份验证环节:在整个 OAuth 会话中强制执行 profile 所有权检查;格式错误的 OAuth 元数据缓存会被忽略,不再导致服务器卡死;桌面端则通过客户端本地回调中继 MCP OAuth。此外,-t/--toolsets现在也会筛选究竟启动哪些已配置的 MCP 服务器,因此一次性运行hermes -z -t <toolsets>时,不会再冷启动不需要的服务器。MCP 集成的命令块现已加入login和reauth [--all];这两项命令早在本次更新前便已存在,只是此前未在本文档中说明。44 - Delegation 对后台工作的处理更加如实可靠。 以下是
delegate_task的6项可靠性改进,均直接取自该标签版本的 delegate 工具源代码。(1)默认情况下,一个后台批次只会返回一次完整结果;启用delegation.independent_completions后,则会将调用拆分成多个完成单元:具有相同group值的任务会合并并统一报告,没有分组的任务则会在各自完成时单独报告。采用默认行为是有意为之——源代码指出,逐任务密集返回完成通知会“让没有为此制定计划的编排器支离破碎”。(2)子代理结束时,其后台进程会被终止,除非子代理使用process_manage(action="handoff")将进程移交给父代理;未移交的残留进程会在结果中以orphaned_processes列出,而已经退出但从未被读取的子进程则会以unread_completions呈现,并附带输出末尾内容。根据源代码文档字符串所表达的设计立场,父代理“必须从运行时获知这一情况”,而不能轻信子代理声称的“监视程序正在运行”。(3)delegation.fallback_providers成为真正可用的配置项:null会让未固定提供商的子代理继承父代理的回退链;[]会禁用回退;按提供商、端点或模型固定的子代理不会获得回退,除非此设置明确声明回退项。(4)子代理回退链通过规范化器解析,因此格式错误的条目会被丢弃,而不会导致生成失败。(5)单元执行途中崩溃不再导致已完成的子代理结果丢失:多子代理单元中的每个已完成子代理都会被持久记录在该单元自身的行中,并作为部分结果保留至恢复后的结果里。(6)子代理绝不会继承1小时的提示词缓存层级:委派的子代理会降至5分钟层级,因为1小时层级的定价面向暂时离开的真人用户,而非短时间内并行运行的一批子代理。45 - 提供商和模型。 Nous Portal 和 OpenRouter 目录新增 OpenAI 的 GPT-6 Astra 与 Astra Pro,并提供
-fast/-flex速度层级变体(“价格2倍,优先层级”/“价格0.5倍,弹性层级”)。在 ChatGPT/Codex OAuth 路由中,Astra 受账户权限控制(只有实时、账户范围的发现流程才能公布该模型),并新增可选择启用的-900k选择器变体,将标示的272K上下文窗口提升至经实时验证的约900K;该后缀绝不会在线路上传输。同期新增的还有:anthropic/claude-fable-5.1、google/gemini-3.7-flash和gemini-3.8-flash、qwen/qwen3.8-max-0902和qwen3.8-flash,以及 Meta 的 Muse Spark 1.3 系列(1M上下文,含贡献者变体)和一个 Metamuse-image图像生成提供商插件。Tavily 作为网页搜索/提取后端加入(TAVILY_API_KEY;通过hermes tools选择 Tavily 时无需密钥也能使用)。托管式 llama.cpp 运行时让本地模型成为一等支持路径(官方二进制文件、一个受监管的llama-server,以及桌面端一键安装),代码树之外的外部进程提供商也获得了专用解析分支。在运维方面,选择器的远程目录现在每20分钟刷新一次(model_catalog.ttl_minutes,默认值为20;旧版ttl_hours键仅在用户曾明确设置时才会继续生效)。46 - 桌面端:标注页面,掌控会话。 应用内浏览器新增评论模式:点击 Annotate,然后点击实时页面中的任意元素(或拖动框选区域)并输入备注;保存后的评论会保留为带编号的图钉,而且绝不会自行发送对话轮次。完成后,“Add N comments”会将整批评论交给编辑器,并为每个图钉附上裁剪后的屏幕截图;每条元素评论还会携带其 CSS 选择器、标记以及影响布局的计算样式,使代理能够在源代码中准确找到该元素,而不必看图猜测(标记离开页面前,会隐藏密码值、不可见值以及名称形似密钥的属性)。较大的批次会按页面区域分组,因此20多条评论会整理成少量工作项,通常分别涉及不同文件——这正是能够安全地将它们分派给并行 worker 的原因。除此之外,本次更新还带来了:结构化会话控件和会话自动化控件、通过拖动创建会话、用于导入其他编码代理对话记录的会话导入视图、
display.resume_last_session(默认为 true:冷启动时重新打开上一次聊天或页面)、首次打开 Browser 窗格且browser.use_real_profile处于关闭状态时显示的同意提示(允许用户选择启用该设置)、Capabilities -> Skills 下内置的可选 skill 目录及一键安装功能,以及新的俄语桌面端界面语言(CLI 的17个语言区域目录保持不变)。47
更新方式没有变化:现有安装运行 hermes update,全新安装则使用 shell 安装程序。该时间窗口经过整理的正式记录将由 v0.22.0 给出;以上各组内容则是在此标签版本中真正产生变化的部分。41
v0.21.0(The Pantheon Release)新增内容
Hermes Agent v0.21.0(标签v2026.8.31,2026年8月31日)是当前功能版本,也是整个v0.20.x汇总发布序列一直留待整理的权威记录:“此版本汇总了v0.20.1至v0.20.6基础设施补丁标签中的全部内容——这些发布窗口现已在此处完整记录。”其叙事承接Herald:“v0.20.0让Hermes成为传令者——他开口传讯,并将消息带给其他代理。在v0.21.0中,众神齐聚。”以下是未经改动的统计数据:“自v0.20.0以来:约5,800次提交 · 约2,475个合并的PR · 约5,680个变更文件 · 约869,000行新增 · 约135,000行删除 · 约2,100个问题已关闭 · 760多位贡献者”。35
此版本按功能领域组织,以下摘要亦是如此。若某项功能改变了本指南中的既有章节,相关链接会直接标注在对应内容中。
- Bot Mode:内置功能让您的代理组成一个社会。 Bot Mode从v0.20.3发布窗口中捆绑的
hermes-bots插件,升级为桌面应用默认启用的组成部分。每个代理profile都有名称、带随机化和锁定控制的确定性头像,并在共享名册中占有一席之地;您可以创建类似Discord的群聊,让多个机器人与您在同一房间中交流,通过编辑器@提及任意机器人,还能为房间设置名称和图片。其子功能包括标明来源的代理间消息卡片、发送方送达通知、实现即时唤醒的优先绘制hydration、Routines面板,以及基于应用设计系统的重新构建。引用该版本的原话:“过去,‘多代理’意味着一套管道系统;如今,它看起来就像一个坐满同事的聊天应用。”35 hermes peer:代理之间的机器人私信。 任何Hermes代理都可以通过handle向其他代理发送消息,跨profile、跨gateway皆可;既能从CLI发起,也能在对话中操作——例如让研究机器人将调查结果交给编程机器人,再直接在当前位置查看回复。“回复会进入每个代理的规范Bot Chat,因此代理之间的对话可持久保存且可供检查,而非发出即忘。”hermes peer命令(添加、列出、移除peer以及dm)已收录在顶级命令表中。35- 能够记忆的Cron任务。 计划任务不再像金鱼般转瞬即忘:cron代理会像其他代理一样加载并更新持久记忆;
continuity=true会将每次运行的输出带入下一次运行,让监控程序能够依据已报告的内容去重;每项任务都会获得持久的notepad暂存区;没有变化时,monitor模式任务会完全跳过LLM;可为每项任务固定推理强度;cron输出还可发送到机器人的规范Bot Chat,并由机器人真正作出回应。计划任务(Cron)章节现已记录每项功能在该标签版本中的具体机制。3537 - 实时subagent编排。
delegate_task新增控制操作:列出正在运行的子代理、在执行过程中向某个子代理发送修正指令,或提前停止它并保留部分结果。可以依据JSON schema验证子代理输出;结果中会显示每次委派的成本;默认值也提高至每个subagent 250次迭代和10个并发子代理(即v0.19.0中取代max_async_children的统一上限)。3538 - MCP指挥中心。 MCP服务器和catalog整合到一个桌面页面中,支持通过拖入内容进行“粘贴任何内容”式导入;后台健康检查会及时提醒您重新认证,避免工具调用失败;还提供涵盖整个服务器群的成本和用量叠加层(schema token估算、每台服务器30天用量),以及在明确确认后安装MCP服务器的
hermes://深层链接。请参阅MCP集成。35 - 一波CLI增强功能。 按Ctrl+P可打开模糊搜索命令面板(也可通过
/palette访问);/model选择器会随输入实时筛选;/status会显示推理模式、待处理审批和context用量;状态栏可显示实时缓存命中率、延迟和每秒token数,并可分别切换各字段。此外还加入了全局紧急停止、会话固定与取消固定、轮换显示的编辑器占位提示,以及终端宠物。关于命名需特别注意:发布说明将试运行审批检查器称为hermes approval-check;但在该标签版本中,实际命令是hermes approvals test——并不存在approval-check子命令。3540 - 代理可以操控桌面应用中的浏览器。 应用内浏览器不再只是一个仅供代理查看的窗口:Hermes能够直接导航、点击和读取页面;页面也可弹出至系统浏览器,并提供完整的链接上下文菜单。35
- 6家新provider与一轮model catalog更新。 Meta Model API(Muse Spark)、CommandCode、Tencent TokenPlan、Nebius Token Factory、Ramp Router和Actual Computer。其中3家(Meta AI、CommandCode、Actual Computer)已在早期汇总发布窗口中加入,并已收录于provider完整矩阵;矩阵现在新增Tencent TokenPlan、Nebius Token Factory和Ramp Router,以及文档中新加入的Alibaba Token Plan SKU。各catalog新增GLM-5.3-Flash、qwen3.8-max/flash、Gemini 3.7 Flash、MiniMax M3 free、Nemotron 3.5 Lightning和Muse Spark 1.2。此外还包含两项结构性变更:通过
config.yaml中的model_overrides,无需等待新版本即可修正任意model的context窗口或定价;provider现在也可以通过pip安装的软件包形式发布,并借助entry point自动发现。统一的选择保护注册表还会在所有选择器界面中发出警告,提示某个model是否会使用您的数据进行训练。3536 - 全方位安全加固。 对受保护代理指令文件(AGENTS.md、skills和memory存储)的写入如今一律需要审批,防止遭受提示注入的代理悄然改写自身的常驻指令;一次深入的脱敏排查修补了终端错误、
.env读取、checkpoint和ACP日志中的秘密泄露缺口;审批系统新增对Windows破坏性命令的识别;macOS权限授权现在通过稳定的TCC签名身份(hermes desktop --setup-tcc-identity)跨版本更新保留;上游项目遭入侵后,Blender MCP catalog条目及其skill已被移除。有关该标签版本的具体信息,请参阅安全加固。3539 - Gateway日趋成熟。 Slack新增原生实时卡片(真正的流式回复,以及可选启用的计划/任务卡片)和出站链接预览抑制;Telegram新增内联选择器,可通过@botname搜索所有命令和skill,从而绕过Telegram的命令菜单数量上限;relay通道日趋完善(原生插件初始化、支持草稿流式传输的实时卡片操作、会话跨度分段,并恢复语音消息STT);gateway控制套接字允许服务器群使用方查询gateway,也让更新程序能够优雅地暂停gateway,而不必终止整个进程树;当watchdog触发时,turn-reaper会捕获卡死worker的堆栈。35
- 一轮skills更新。 包括8项抢救恢复的生产力skills(document-to-action-items、meeting-action-items、email-inbox-triage、github-issue-to-pr、weekly-review-planning、competitor-news-monitor、product-price-monitor、social-media-content-calendar)、基于HAR生成的API客户端(“只需观察网站一次,此后无需浏览器即可直接调用其隐藏的API”)、publish-site、session-librarian、blocked-page-recovery、merge-reconciler、plan-interrogation,以及在创建时运行的建议性SKILL.md linter。35
在此发布窗口中已回退(不会随版本发布): Model Council模式(/council)和DCP context engine都曾合入,随后被回退;仅支持WS的gateway服务器(#94245)合入后也被回退(#96118),因此FastAPI仍保留在桌面应用启动路径中——但带序列戳的事件重放(#94219)以及通过WebSocket实现的桌面应用无损重连,确实已随版本发布。Electron已回退至40.10.2。如果社区对v0.20.x发布窗口的报道提及其中任何功能,请注意它们并未包含在此版本中。35
更新方式保持不变:已有安装可运行hermes update,全新安装则使用shell安装程序。下文Herald版本下的汇总小节仍按标签记录每个发布窗口加入的具体内容。35
v0.20.0(The Herald Release)新增内容
Hermes Agent v0.20.0(标签 v2026.8.3,2026年8月3日)是 v0.21.0 汇总所有变更之前的功能版本;v0.20.1(8月13日)和 v0.20.2(8月16日)是在此基础上发布的稳定版本,而 v0.20.3(标签 v2026.8.16.2,发布于8月17日)、v0.20.4(标签 v2026.8.18,8月18日)、v0.20.5(标签 v2026.8.19,发布于8月21日)和 v0.20.6(标签 v2026.8.27,8月27日)继续推进汇总发布,并且各自也涵盖了新的功能变更——详见下方小节。自 v0.19.0 以来,此阶段涵盖约 3,650 次提交、1,400 个已合并 PR,以及由 650 多位贡献者关闭的 1,200 个议题。55
以下3项变更使本指南早期版本中的操作说明不再适用。 请务必先阅读这些内容:
- 现在要求使用 Node 26。 安装程序固定使用
NODE_VERSION="26",并会拒绝旧版运行时,提示“Node.js … is too old (Hermes requires Node >=26)”。安装程序、heal和upgrade均会强制执行此要求。请注意,文档站点的安装页面仍标注 Node v22——安装脚本和发行说明更新更及时,应以它们为准。55 - pip 和 Homebrew 已停止支持,而不只是弃用。 原文明确写道:“brew + pip/PyPI wheel channels retired (shell installer / Docker / Nix are the supported channels).”如果仍通过 pip 或 brew 安装,该渠道将不再收到新版本。55
- 默认工具调用迭代上限已从 90 提高到 500。 长时间自主运行不会再撞上人为设置的限制,下文所有预算压力阈值也都按照新的上限计算。
read_file的默认读取行数也从 500 行增加到 2,000 行。55
此版本的其他更新:
- 对话式语音。 支持可随时打断的流式 TTS,以及设备端唤醒词。55
- A2A v1.0。 新增智能体间协议插件,解决了议题 #514 中长期存在的需求。55
- 已签名的出站 Webhook。 此前
hermes webhook仅支持入站;v0.20.0 新增使用 HMAC 签名的出站生命周期 Webhook,可用于会话、轮次和工具事件。55 - 有依据的引用。 新增带事实核查模式的 skill。55
- 面向高级用户的 CLI 功能浪潮。
!command可立即运行 shell 命令,无需消耗模型轮次;/init会扫描项目并写入或更新AGENTS.md;/diff可从任何界面显示已暂存、全部或当前会话的变更;/context会分析上下文窗口被哪些内容占用;/focus提供精简输出视图,并可恢复隐藏行;Ctrl+S 可暂存尚未写完的提示词。hermes import-agent能通过一条命令迁移 Claude Code 或 Codex CLI 配置。55 - 密钥功能扩展。 新增可与所有保险库组合使用的命令辅助密钥源、附带可操作启动错误提示的一键令牌轮换、可选的 Bitwarden 加密紧急访问缓存、按 profile 主目录限定作用域的保险库注入密钥,以及
config.yaml与 MCP 配置之间的${env:VAR}SecretRef 对等支持。下文所述的三路径身份验证模型保持不变。55 - 热启动更快。
hermes -w的冷启动时间从约 14 秒降至 1.8 秒。55 - 桌面端正式成为一个平台。 支持带版本卡片和沙箱化实时预览的工件、以 Kanban 为首个桌面插件的 Plugin SDK、快速输入全局快捷键、多个 GUI 窗口、SSH 远程后端模式,以及符合 RFC 8252 的原生登录。55
v0.20.3、v0.20.4、v0.20.5 和 v0.20.6 汇总版本(8月17日至27日)
项目在 v0.20.0 之后采用高频标签汇总的发布节奏,而且这些版本并非仅用于稳定性维护。4个版本都以相同方式推迟了精选发行说明——均声明“full curated release notes for this window will ship with v0.21.0”——如今 v0.21.0 已经兑现承诺:上方的 v0.21.0(The Pantheon Release)新增内容 是整个阶段的精选记录(该版本确认这些时间窗口“are fully documented here”)。下列内容仍作为各标签发布时的同期记录保留,用于明确每个标签分别引入了哪些内容;精选发行说明则将它们合并整理。54233035
v0.20.3(自 v0.20.2 以来约 250 次提交、约 125 个 PR):
- 迁移至 MCP 2.x SDK,支持 2026-07-28 无状态协议。 Hermes 升级至当前一代 MCP SDK,并支持该协议的无状态修订版。54
- Bot Mode 作为捆绑插件发布(
hermes-bots),内含核心队友协议。54 - 新增 CommandCode 提供商插件,纳入提供商目录。54
- 用于计算机操作的 Cua Driver 0.20 运行时契约,并强化子进程 Python 运行时所有权(隔离 PYTHONHOME/PYTHONPATH)。54
- 可靠性改进:cron 调度器自我修复(EMFILE 恢复、过期认领协调、卡死作业重新启用)、会话移交数据丢失修复、桌面端远程 gateway 连接自我修复,以及一系列生态系统移植功能(插件安装安全扫描、
/worktree、/rollback保留手动编辑内容、读取 UTF-16 文件)。54
v0.20.4(自 v0.20.3 以来约 146 次提交、约 74 个 PR):
- 桌面端的玻璃质感界面:加入磨砂玻璃与半透明效果,并提供模糊效果选择器和 macOS 预选功能。54
- 带 SESSIONS|BOTS 标签页的侧边栏,可分别隐藏或显示各个机器人;此外还修复了 Bot Mode 群聊问题(长时间运行的成员轮次、Markdown 渲染、跨设备路由)。54
- 安装 skill 时执行 NVIDIA SkillEvaluator Tier 1 提示性扫描——安装 skill 时会运行许可证与安全检查。54
- 强化 cron 媒体发送功能(可配置超时、手动运行附件、显示错过的触发任务),修复 SessionDB 事件循环线程与争用问题,确保
hermes update如实报告搁置分支状态,并为 Kanban 添加原生操作系统通知。54
v0.20.5(自 v0.20.4 以来约 746 次提交、约 323 个 PR):
- 无密钥 Web 层:全新安装后无需任何 API 密钥即可使用 Web 搜索——支持5家供应商的免费轮换,并具备环形故障转移机制。23
- CLI 体验优化浪潮:模糊搜索式
/model选择器、Ctrl+P 命令面板,以及信息更丰富的/status。23 - Bot Mode 日趋成熟:支持群组房间线程、可折叠的对话摘要、Blob Face 头像,以及可拖放的 PDF/文件附件。23
- 机群与 worktree 工具:
hermes update回执、hermes update --plan(发行说明称之为“fleet--planverification”;该标志属于hermes update,而非某个fleet命令。根据其解析器帮助信息,它会“Show the update plan and exit without changing anything”),以及hermes worktree list/prune。2327 - cron 作业获得持久记忆和按作业配置的推理强度;此外还根据 Composio 评测结果增加了执行纪律与运行时停滞防护、多问题澄清功能、无需 opencode 的零身份验证提供商,以及桌面端性能改进(Bot Mode 优先绘制式水合、在两个渲染器中启用 React Compiler)。23
v0.20.6(标签 v2026.8.27,8月27日——自 v0.20.5 以来约 1,313 次提交、约 525 个 PR):
该版本直言自己是一个“Patch release. This tag rolls up the ~525 PRs merged since v0.20.5 into a stable tagged release for downstream consumers”。其描述显示,此发布窗口涵盖约 1,313 次提交,涉及约 1,557 个文件(+177,113 / −21,682),合并了约 525 个 PR。30 根据该描述,主要更新如下:
- 经用户同意后使用真实 profile 浏览——本地浏览可使用默认 Chromium profile,并在 Windows 上提供需经批准的关闭流程。30
- 桌面端 Browser 现在拥有独立的操作系统窗口,另有托管式 SSH 远程更新引擎和机群 profile 栏。30
- 扩充远程 MCP 目录:纳入 50 多个经过实时验证、由供应商托管的服务器,包括 Cloudflare、Grafana Cloud、Better Stack 和 Railway。30
- 可选择使用操作系统钥匙串加密已存储的密钥——无需再在每次启动时响应 macOS 钥匙串提示。30
- 选择器新增多个模型:GLM-5.3-Flash、免费版 MiniMax M3,以及 MiniMax H3 Max 视频模型。30
- 为
web_search/web_extract添加带 TTL 的结果缓存,并为多查询tool_search添加词干提取功能。30 - Lean-tail 压缩现已成为默认方案——下方的上下文压缩章节记录了该标签发布时的配置。3031
- 终端后端现已支持插件化——请参阅终端后端。3032
- 更新程序与机群如实报告状态:更新程序会通过控制套接字暂停 gateway,而非终止整个进程树;由镜像或软件包管理的安装则会拒绝不安全的原地更新。30
- cron 增加持久事故确认机制,并提供更清晰的代码版本偏差故障提示;另有 Slack 链接展开控制和共享的 Docker 容器身份。30
更新方式保持不变:现有安装运行 hermes update,全新安装则使用 shell 安装程序。542330
v0.19.0 的新增功能(Quicksilver 版本)
Hermes Agent v0.19.0(标签 v2026.7.20,2026年7月20日)以信使之神的神速命名。此版本的核心是极致响应速度:所有平台的首轮首个 token 响应时间均缩短约 80%。围绕这一核心,新增了终端账单管理、密码管理器密钥源、默认启用的智能审批、可观察的 subagent,以及防崩溃的响应交付机制。自 v0.18.0 以来,这是该项目迄今规模最大的一次更新:约 2,245 次提交、约 1,065 个合并的 PR、约 3,300 个已关闭的 issue,以及 450 多名社区贡献者。56
- 各平台首个 token 的响应速度均提升约 80%。 CLI、gateway、TUI、桌面端和 cron 的冷启动提交→分派时间从约 4.3 秒降至约 0.9 秒——Discord 功能检测已移出关键路径,已知非 Ollama 提供商将跳过 Ollama 探测,同时从 agent 初始化过程中移除了阻塞任务。感知延迟也得到了专项优化:推理模型现在默认实时流式显示思考过程(
display.show_reasoning已开启),响应框也改为逐 token 而非逐行渲染。56 - 桌面端和 TUI 渲染全面提速。 桌面应用通过约 20 个 PR 完成了大规模性能改造:借助增量块词法分析,流式 Markdown 拆分器的 CPU 占用降低至原来的 1/14;审查窗格中的差异采用虚拟化渲染;大型对话记录间的会话切换更加迅捷;侧边栏和工具行也不再随每个 token 重复渲染。TUI 现在会按块增量渲染流式 Markdown。56
- pip 和 Homebrew 安装方式已弃用。 这两种方式均被标记为“不受支持的旧版”安装渠道,并计划移除。此移除已在 v0.20.0 中完成——brew 和 pip/PyPI wheel 渠道均已停用,目前受支持的渠道仅包括 shell 安装程序、Docker 和 Nix。5655
- 密钥可以来自密码管理器。 新增可插拔的
SecretSource接口,可在加载时从 Bitwarden 和 1Password(op://引用)获取密钥。该接口支持同时启用多个保险库、确定性的优先级、冲突警告以及逐变量来源追踪——API 密钥不再必须存放在明文.env文件中。未来的保险库提供商可以插件形式接入。56 - 智能审批现已默认启用。 当 Hermes 准备运行被标记的命令时,将由独立的 LLM 审查器进行评估,无需每次都提示您——每项裁定仅适用于对应的确切命令。用户定义的拒绝规则即使在 YOLO 模式下也会阻止匹配的命令;
/deny <reason>会转达您的拒绝原因,以便 agent 调整方向;重新引入并支持规则键的插件pre_tool_call批准操作,则可将工具调用升级至人工审批。56 - 终端账单管理:
/subscription和/topup。 无需离开终端即可管理 Nous Portal 套餐——查看当前套餐和剩余额度,准确预览升级费用或降级生效时间,并可执行操作及撤销。桌面应用也新增了对应的账单设置选项卡。56 - 观察 subagent 工作,不再丢失已完成的答案。
delegate_task分派任务后会立即返回实时对话记录文件,subagent 一经启动即可使用tail -f查看——每个子任务都有一份便于阅读的日志,完整记录所有工具调用、结果和流式回复。后台委派任务的完成结果可跨重启持久保存;gateway 的最终响应则记录在state.db的交付义务账本中。如果 gateway 在发送过程中崩溃,响应会在下次启动时重新交付。max_async_children配置选项已弃用,统一由委派并发上限取代。56 - 一个 gateway,多个 profile。 单个多路复用 gateway 可共享一个机器人 token,并将特定服务器、频道或帖子串路由到不同 profile——每个 profile 的配置、skills、memory 和密钥均完全隔离——同时支持
GATEWAY_MULTIPLEX_PROFILES覆盖设置。路由索引已迁移至state.db;sessions.json目前仅作为可选的旧版镜像。56 - 提供商和模型集中更新。 Fireworks AI 获得一等支持(包括成本估算,并位列提供商选择器第 2 位),DeepInfra 和 Upstage Solar 也同步加入。模型目录新增 GPT-5.6(Sol/Terra/Luna + Pro,端到端完整接入)、grok-4.5(正式发布)、kimi-k3(kimi-k2.x 已停用),以及完整接入的 Claude Sonnet 5。每个提供商均可设置
enabled: false标志,excluded_providers配置则会从/model选择器和解析流程中移除未使用的提供商。56 - 推理强度变为可调节选项。 所有界面均新增
max和ultra强度级别,同时支持在配置中按模型覆盖、在 MoA 预设中按槽位设置强度(顾问深入思考,综合模型保持快速)、为辅助模型按任务设置强度,以及在 CLI 中通过会话级/reasoning进行调整。56 - CLI 和 MCP 功能扩展。
hermes sessions export可导出 Markdown、Quarto、HTML、仅提示词和 Hugging Face 追踪格式,并可选择使用--redact清理敏感信息;/model --once可为单轮对话覆盖模型;斜杠 skill 调用支持叠加(/skill-a /skill-b do XYZ);--safe-mode可辅助故障排查;hermes config get/unset完善了配置管理功能;hermes serve成为真正的无头后端;MCP 工具则采用mcp__server__tool命名约定。56
如果您从 v0.18.x 升级,首先需要关注两项变更:通过 pip 或 Homebrew 安装时,现在会出现“不受支持的旧版方式”警告(请迁移至单行安装程序);max_async_children 也已弃用,改由统一的委派并发上限取代。其余变更均为增量功能——升级的主要理由包括首轮延迟缩短约 80%、智能审批,以及可确保已完成答案不因崩溃而丢失的交付账本。
v0.18.0 的新增功能(Judgment 版本)
Hermes Agent v0.18.0(标签 v2026.7.1,2026年7月1日)以“判断”命名:agent 会验证自身工作,而非直接宣称成功;同时,您还可以实际检查集成推理过程。此版本也清空了全部 P0/P1 待办事项——在 12 天内解决了约 692 个最高优先级项目。22
- Mixture-of-Agents 成为一等模型。 现在可以像选择其他模型一样,在所有界面中选择 MoA,且集成推理过程清晰可见:每个参考模型的完整输出都会以独立的带标签块呈现,并实时流式显示答案——您可以观察整个集成系统的思考过程,不再只能获得不透明的合并答案。22
/goal的完成契约。 agent 会先运行项目检查来验证自身工作,再报告目标已完成,而非直接宣称成功——将判断应用于自身。22/learn——通过描述将任何内容转化为 skill。 只需描述工作流,即可将其转化为可复用的 skill;生成的 skills 会自动遵循仓库的 CONTRIBUTING.md 约定。22/journey时间线。 以可视化方式呈现 memory 和 skills 随时间变化的历史记录,支持编辑;桌面端还提供 memory 图谱。22- 后台 subagent 扇出。 可委派多个并发运行的任务,且不会阻塞对话——v0.17.0 中单个后台 subagent 现已扩展为一支协作队伍。22
- 桌面端 Projects。 提供一等的编程 Projects,并采用项目/仓库/工作通道组织模型。22
- 可缩容至零的 gateway。 gateway 可在空闲时进入休眠状态,并协调任务排空以实现无缝部署——对于将 Hermes 作为常驻服务运行的用户而言,这项改进意义重大。22
- 支持 Google Vertex AI。 可通过 GCP 服务账号访问 Gemini,并自动刷新 OAuth2 token,现已加入提供商目录。22
/prompt编辑器命令。 打开$EDITOR编写多行提示词,无需再受限于单行输入框。22
如果您从 v0.17.x 升级,此版本不会破坏 CLI。升级的主要理由包括完成契约(能够自行验证的目标)、具有可检查集成过程的一等 MoA,以及用于捕获 skill 的 /learn。
v0.17.0 的新增功能(The Reach Release)
Hermes Agent v0.17.0(标签 v2026.6.19,2026年6月19日)以智能体如今触达范围之广而命名——新增消息渠道、模型提供商,并进一步增强了桌面端和仪表板的控制能力。此版本在 v0.16.x 的基础上增量更新;CLI 界面保持不变。21
- 新增消息渠道。 借助 Photon Spectrum,iMessage 现在无需 Mac 中继即可运行(设备代码 OAuth、
hermes photon login);WhatsApp Business Cloud API 是 Meta 官方适配器,不再需要桥接进程;SimpleX 新增群组、原生附件、文本批处理和自动接受功能;Raft 也作为内置平台插件加入,并采用以隐私契约为基础的唤醒通道设计。21 - 新增模型和提供商。 模型目录新增
z-ai/glm-5.2(1M 上下文)、anthropic/claude-fable-5、laguna-m.1、nemotron-3-ultra和grok-composer-2.5-fast(通过 xAI OAuth 使用的 Cursor 模型,200k 上下文)。xAI 的默认模型已改为grok-build-0.1,Anthropic 自适应模型现在遵循现代思考契约(绝不会发送reasoning字段)。21 - 桌面端和仪表板。 桌面端新增后台子智能体,通过实时“监视窗口”流式展示委派活动(
delegate_task(background=true));还新增 Composer 模型选择器、可重新绑定的键盘快捷键、原生操作系统通知、按线程保存的 Composer 草稿、VS Code Marketplace 主题,以及日语和繁体中文界面。仪表板新增完整的 profile 构建器(无需编辑config.yaml即可配置模型、skills 和 MCPs)、全局 profile 切换器、经过重新设计且带安全扫描的 Skills Hub、Automation Blueprints(可通过表单、斜杠命令、对话和文档使用的参数化模板),以及在 OAuth 访问门槛后返回 401 的安全登录机制。21 - Skills 和工具。
image_generate现在不仅能从零创建图像,还能在所有受支持的图像提供商中编辑和转换源图像;memory工具新增operations数组,可在单次调用中以原子方式批量执行添加、替换和删除操作;新的simplify-codeskill 会并行运行由 3 个智能体参与的审查与清理流程,并以 Chesterton’s-Fence 风险等级作为准入条件;布尔值write_approval取代了三态write_mode。21 - 架构。 后台子智能体会立即返回句柄,并将结果作为新的轮次重新引入;MCP 引导处理程序支持在工具调用期间进行确认,延迟连接的 MCP 工具则会在轮次之间公开(缓存安全);cron 改为可插拔的 CronScheduler,并提供 Chronos 托管 cron 提供商;新增 Managed scope(
/etc/hermes),允许管理员固定用户无法修改的配置,同时还新增了用于多 gateway 拓扑的 Gateway-Gateway 中继。21 - 新增命令。
/version、/billing(交互式终端账单)、hermes photon login(iMessage 身份验证)和hermes curator run --consolidate——整合现在需要主动启用,因此常规后台整理不会消耗任何 token。21 - 安全性。 v0.17.0 修复了 shell 转义拒绝列表绕过问题;当审批模块或自有策略 gateway 适配器缺失时,系统会以失败关闭方式处理;清理 cron 作业脚本子进程的环境;对请求调试转储中的机密信息进行脱敏;检查 MCP stdio 配置中的数据外泄模式;并升级 urllib3 和 PyJWT 以修复 CVE。21
如果从 v0.16.x 升级,此版本不会破坏 CLI;它只是在同一智能体周围增加了新的渠道、模型和操作界面。无需中继的 iMessage、官方 WhatsApp 适配器以及面向管理员的 Managed scope,是此次升级最值得关注的理由。
v0.16.0 的新增功能(The Surface Release)
Hermes Agent v0.16.0(标签 v2026.6.5,2026年6月5日)以其为 CLI 优先的智能体带来的新操作界面而命名。最重要的变化是,Hermes 不再只能通过终端使用。20
- 原生桌面应用。 Hermes Desktop 是一款面向 macOS、Linux 和 Windows 的全新 Electron 应用,支持一键安装和应用内自动更新。它提供流式聊天窗口、文件拖放、剪贴板图像粘贴、
Cmd+K命令面板、支持归档与搜索的会话列表,以及状态栏模型选择器。该应用可以通过安全的 WebSocket 连接远程 Hermes gateway,并使用 OAuth 或用户名/密码进行身份验证;它还支持按 profile 配置远程主机,以及通过跨 profile 的@session引用关联并发多 profile 会话。桌面界面还通过类型化 i18n 层(display.language;英语仍为默认语言)提供完整的简体中文翻译。20 - 浏览器管理面板。 本地 Web 仪表板已从状态视图升级为完整的管理面板:包括带启用/禁用开关的 MCP 目录、凭据管理、webhook 和 hook 创建、内存配置、gateway 控制,以及支持更新前检查和一键 Debug Share 的 System 页面。新的 Channels 页面可直接在浏览器中配置所有 gateway 消息平台,包括 Telegram、Discord、Slack 等。身份验证现在支持插拔:用户名/密码登录、通用自托管 OIDC 提供商、用于自托管 OAuth 客户端的
hermes dashboard register,以及刷新 token 会话轮换。20 - 新增 CLI 和斜杠命令。
/undo [N]可回退最近 N 个用户轮次,并支持预填充和软删除;该功能适用于 CLI、TUI 以及各类消息平台。新增可配置的默认界面(cli或tui),并提供--cli覆盖选项;TUI 新增统一的/model命令和 Sessions 浮层。hermes portal成为 Nous Portal 引导流程便于理解的别名,首次运行时新增 Quick Setup 和 Full Setup 两种路径;同时加入hermes prompt-size和hermes sessions optimize两项诊断功能。20 - 新增模型和提供商。 选择器新增
deepseek-v4-flash、MiniMax-M3(1M 上下文、原生 MiniMax 提供商)、qwen3.7-plus(Nous + OpenRouter)和gemini-3.5-flash(Gemini OAuth + API 密钥)。桌面启动器新增一等支持的 xAI Grok OAuth 提供商;模型选择器现在可在所有操作界面中进行模糊搜索;多端点提供商会归入同一行;目录刷新频率也从每天一次提高到每小时一次。20(v0.21.1 此后再次调整了刷新频率:选择器的远程目录每 20 分钟刷新一次,即model_catalog.ttl_minutes。46) - 更精简的 skills 与渐进式披露。 默认 skill 集移除了重复和失效的 skills(Spotify 已迁移至原生插件,Linear 改用
hermes mcp install linear,另有若干过时条目被删除),将更多 skills 调整为可选项,并新增environments:前置元数据相关性门控(kanban/docker/s6),在未被请求时不会将特定上下文的 skills 加入索引。除 OpenAI、Anthropic 和 HuggingFace 外,NVIDIA/skills现在也成为 Skills Hub 默认信任的 tap。MCP 和插件工具新增渐进式(限定范围的)工具披露机制;此外,还修复了未获得 token 时 MCP 错误报告 OAuth 成功的问题。20 - 安全性。 v0.16.0 固定使用已修复的 Starlette(≥1.0.1),以应对 CVE-2026-48710(BadHost);在异步路径中将 SSRF URL 检查移出事件循环;从子进程环境中移除 Bedrock 推理 bearer token;将
bws_cache.json加入文件安全读取防护;将docker restart/stop/kill加入危险模式列表;并清理经过审核的 skill 内容中的不可见 Unicode 字符。此版本关闭了 2 个 P0 和 62 个 P1 问题,其中 16 个带有安全标签。20
如果从 v0.15.x 升级,这些变化均不会对 CLI 本身造成破坏性影响;它们只是在同一智能体周围增加了操作界面和提供商。如果希望让非终端用户使用 Hermes,或通过浏览器管理远程 gateway,桌面应用和管理面板便是升级的主要理由。
v0.14.0 的新增功能(The Foundation Release)
与其说 v0.14.0 围绕某项重磅功能展开,不如说它着重降低设置负担,同时扩展 Hermes 的运行范围。19 主要运维变化如下:
- 安装和启动更加轻量。 可通过 PyPI 使用
pip install hermes-agent安装;重量级适配器会在首次使用时按需安装;启动路径则推迟了足够多的工作,使冷启动时间缩短约 19 秒。(v0.19.0 此后已弃用 pip 安装——请参阅安装。) - 订阅可转化为本地 API 端点。
hermes proxy可将 Claude Pro、ChatGPT Pro 和 SuperGrok 等基于 OAuth 的提供商转换为兼容 OpenAI 的本地端点,供 Codex、Aider、Cline 和 Continue 等工具使用。 - Gateway 覆盖范围扩大。 LINE 和 SimpleX Chat 加入 gateway(文档中的平台对比表显示,标签
v2026.8.31共支持 28 个平台;消息 Gateway部分说明了该数字的统计口径),Microsoft Teams 已实现端到端接入,Discord 历史记录回填默认启用,Telegram/Discord 的clarify提示现在使用原生按钮。 - 写入时验证得到改进。 完成编辑后,Hermes 可在下一轮开始前显示每轮文件变更摘要和语言服务器语义诊断,使其进一步迈向以证据为依据的智能体工作方式。
- 桌面与媒体工具覆盖面扩大。
computer_use可通过 cua-driver 与非 Anthropic 提供商配合使用;video_generate统一至可插拔后端之上;vision_analyze则会将原始像素发送给真正具备视觉能力的模型。
安装
官方支持的安装方式是使用单行安装程序。它会自动处理Python、uv、Node.js、ripgrep、ffmpeg、仓库克隆、虚拟环境以及全局hermes命令。7
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash
自v0.19.0起,已弃用pip和Homebrew安装方式。 v0.14.0引入的PyPI软件包(
pip install hermes-agent)和Homebrew公式现已被标记为“不受支持的旧版”安装方式——Hermes检测到此类安装时,会在所有界面发出警告(但不会阻止运行),并计划停止通过PyPI/Homebrew发布。如果此前通过pip或brew安装,请迁移到上述安装程序。56
支持Linux、macOS、WSL2和Android/Termux(安装程序会自动检测Termux,并切换至经过测试的Android软件包组合)。7 原生Windows现已成为Tier 1平台,不再是v0.14.0发布时的早期测试版——可使用iex (irm https://hermes-agent.nousresearch.com/install.ps1)进行安装。文档明确指出一项限制:macOS仅支持Apple Silicon,不支持Intel Mac。55 从历史上看,v0.14.0曾通过PowerShell安装程序以早期测试版形式加入原生Windows支持;但在Windows安装方案成熟之前,生产环境仍建议优先使用WSL2,以求稳妥。19
安装完成后:
source ~/.bashrc # or ~/.zshrc
hermes # Start chatting
唯一的前置条件是git。安装程序会通过uv自动配置Python 3.11(无需sudo)、Node.js 26(用于浏览器自动化和WhatsApp桥接)、ripgrep以及ffmpeg。自v0.20.0起,Node 26是硬性最低版本——如果检测到更旧的版本,安装程序会拒绝使用,并改为安装由Hermes管理的Node。557
验证安装
hermes --version # Check version (global flag; there is no `version` subcommand)
hermes doctor # Diagnose config/dependency issues
hermes status # Show current configuration + auth state
hermes dump # Copy-pasteable setup summary for debugging
hermes doctor会准确指出缺失的组件及其修复方法。7 寻求帮助时,可将hermes dump的输出粘贴到GitHub议题或Discord讨论串中——该命令会生成整个设置的纯文本摘要,并隐去其中的敏感信息。8
手动安装
如果需要完全掌控安装过程——例如自定义Python版本、选择特定扩展功能或集成Nix/NixOS——上游安装指南提供了详尽的分步说明。7 以下是可通过uv pip install -e ".[<extras>]"组合安装的主要可选扩展:
| 扩展 | 添加的功能 |
|---|---|
all |
下列全部功能 |
messaging |
Telegram和Discord gateway |
cron |
Cron表达式解析 |
cli |
用于设置向导的终端菜单界面 |
modal |
Modal云执行后端 |
voice |
CLI麦克风输入和音频播放 |
tts-premium |
ElevenLabs高级语音 |
honcho |
AI原生记忆(Honcho集成) |
mcp |
Model Context Protocol支持 |
homeassistant |
Home Assistant集成 |
acp |
ACP编辑器集成支持 |
slack |
Slack消息传递 |
pty |
PTY终端支持(交互式CLI工具) |
dev |
pytest和测试实用工具 |
termux |
经过测试的Android软件包组合(包括cron、cli、pty、mcp、honcho、acp) |
Termux的安装命令有所不同——它使用带约束文件的pip,而不是uv pip:
python -m pip install -e ".[termux]" -c constraints-termux.txt
这是因为在Android上安装.[all]时,voice扩展会引入faster-whisper,而后者依赖尚未针对Android发布的ctranslate2wheel包。7
身份验证与提供商
在标签v2026.9.7中,hermes_cli/models_catalog_static.py第311行包含39个静态CANONICAL_PROVIDERS条目(2026年9月的拆分将该列表从hermes_cli/models.py中移出;条目本身保持不变,仍包括v0.21.0的tencent-tokenplan),并会根据plugins/model-providers/自动扩展该列表(共39个捆绑目录;其中9个——actual、alibaba-coding-plan、commandcode、deepinfra、meta-ai、nebius-token-factory、opencode-free、router、upstage——没有静态条目,由于使用默认的api_key身份验证类型,因此会被自动扩展机制纳入)。文档的提供商页面以表格列出45个云端和订阅提供商,以及一行自定义端点;此外还单独介绍了本地和自托管服务器(Ollama、vLLM、SGLang、llama.cpp、LM Studio、LiteLLM、ClawRouter,以及任何与OpenAI兼容的端点)。26 在标签v2026.9.24中,静态列表仍包含39个条目,但plugins/model-providers/只剩38个目录:无需密钥的opencode-free提供商已于9月18日移除,因为OpenCode的免费层现已拒绝来自其自有客户端之外的匿名流量。53 在此基础上,还有自定义端点和3种不同的身份验证路径。下面按照路径完整梳理身份验证方式,便于您找到与现有条件相匹配的方案。
3种身份验证路径
Hermes中的每个提供商均采用以下3种身份验证模式之一:
路径1——.env中的API密钥。 将密钥写入~/.hermes/.env,Hermes会在启动时读取。OpenRouter、AI Gateway、z.ai/GLM、Kimi/Moonshot、MiniMax(以及MiniMax中国区)、Alibaba Cloud/DashScope、Kilo Code、OpenCode Zen、OpenCode Go、DeepSeek、Hugging Face、Google/Gemini及大多数第三方提供商均采用此方式。2 自v0.19.0起,密钥不再必须存放于明文文件中:可插拔的SecretSource接口能够在加载时从Bitwarden或1Password(op://引用)获取密钥,并支持同时启用多个密码库、确定性的优先级、冲突警告和逐变量来源追踪;.env仍作为后备方案。(这与v0.15.0的Bitwarden Secrets Manager引导令牌有所不同,后者通过单个令牌集中管理提供商密钥;SecretSource则取代明文文件本身,未来的密码库提供商也可作为插件接入。)56
路径2——通过hermes model或hermes auth使用OAuth。 此方式会启动设备代码流程、打开浏览器,并将凭据存储在~/.hermes/auth.json中(也可从Claude Code或Codex CLI等工具导入现有凭据)。Nous Portal、OpenAI Codex(ChatGPT账户)、GitHub Copilot和Anthropic(Claude Pro/Max)均采用此方式。2
路径3——config.yaml中的自定义端点。 适用于任何与OpenAI兼容的API,包括Ollama、vLLM、SGLang、llama.cpp、LM Studio、LiteLLM代理、Together AI、Groq、Azure OpenAI或您自行托管的服务器。通过hermes model → Custom endpoint配置一次后,设置会持久化到config.yaml中。2
完整提供商矩阵
此矩阵涵盖文档页面表格中列出的提供商,并给出每个提供商的准确设置流程;该标签版本的选择器所列项目比文档更多(请参阅上方数量),而任何与OpenAI兼容的服务都可通过自定义端点行接入。226
| 提供商 | 身份验证路径 | 设置 |
|---|---|---|
| Nous Portal | OAuth | hermes model(OAuth登录,采用订阅模式) |
| OpenAI Codex | OAuth | hermes model(ChatGPT设备代码,使用Codex模型) |
| GitHub Copilot | OAuth或令牌 | hermes model(OAuth设备代码),或COPILOT_GITHUB_TOKEN / GH_TOKEN / gh auth token |
| GitHub Copilot ACP | 本地子进程 | hermes model(要求PATH中存在copilot CLI,并执行copilot login) |
| Anthropic | OAuth或API密钥 | hermes model(优先使用Claude Code凭据),或ANTHROPIC_API_KEY,或ANTHROPIC_TOKEN设置令牌 |
| OpenRouter | API密钥 | 在~/.hermes/.env中设置OPENROUTER_API_KEY |
| AI Gateway (Vercel) | API密钥 | 在~/.hermes/.env中设置AI_GATEWAY_API_KEY(提供商:ai-gateway) |
| z.ai / GLM (ZhipuAI) | API密钥 | 在~/.hermes/.env中设置GLM_API_KEY(提供商:zai) |
| Kimi / Moonshot | API密钥 | 在~/.hermes/.env中设置KIMI_API_KEY(提供商:kimi-coding)。v0.19.0在目录中新增kimi-k3(kimi-k2.x已停用)。56 |
| MiniMax(全球) | API密钥 | 在~/.hermes/.env中设置MINIMAX_API_KEY(提供商:minimax) |
| MiniMax中国区 | API密钥 | 在~/.hermes/.env中设置MINIMAX_CN_API_KEY(提供商:minimax-cn) |
| Alibaba Cloud (Qwen) | API密钥 | 在~/.hermes/.env中设置DASHSCOPE_API_KEY(提供商:alibaba,别名:dashscope、qwen) |
| Kilo Code | API密钥 | 在~/.hermes/.env中设置KILOCODE_API_KEY(提供商:kilocode) |
| OpenCode Zen | API密钥 | 在~/.hermes/.env中设置OPENCODE_ZEN_API_KEY(提供商:opencode-zen) |
| OpenCode Go | API密钥 | 在~/.hermes/.env中设置OPENCODE_GO_API_KEY(提供商:opencode-go) |
| DeepSeek | API密钥 | 在~/.hermes/.env中设置DEEPSEEK_API_KEY(提供商:deepseek) |
| Hugging Face | API密钥 | 在~/.hermes/.env中设置HF_TOKEN(提供商:huggingface,别名:hf) |
| Google / Gemini | API密钥 | 在~/.hermes/.env中设置GOOGLE_API_KEY或GEMINI_API_KEY(提供商:gemini) |
| Fireworks AI | API密钥 | 一等提供商,在模型选择器中支持成本估算和缓存价格列;现已提升至提供商选择器的第2位。v0.19.0新增。56 |
| DeepInfra | API密钥 | 一等提供商,集成经过强化。v0.19.0新增。56 |
| Upstage Solar | API密钥 | 一等提供商。v0.19.0新增。56 |
| xAI (Grok) | 原生提供商 / SuperGrok OAuth | 一等提供商,支持直接访问API和模型目录(v0.9.0及更高版本)。v0.14.0新增SuperGrok OAuth,并将有权使用该功能的账户所支持的grok-4.3上下文窗口提升至100万。21619 v0.17.0新增grok-composer-2.5-fast(通过xAI OAuth访问的Cursor模型,20万上下文),并将xAI默认模型改为grok-build-0.1。21 v0.19.0将目录中的grok-4.5转为正式可用版本。56 |
| xAI Custom Voices | API密钥 | 支持语音克隆的TTS提供商。v0.13.0新增;在config.yaml的tts:下配置,并在.env中提供xAI密钥。18 |
| Xiaomi MiMo | 原生提供商 | 一等提供商,提供设置向导和模型目录。Nous Portal为辅助任务提供免费的MiMo v2 Pro(v0.9.0及更高版本)。1615 |
| Google AI Studio | API密钥 | 在~/.hermes/.env中设置GOOGLE_API_KEY或GEMINI_API_KEY。可直接访问Gemini,并通过models.dev注册表自动检测上下文长度(v0.8.0及更高版本)。15 |
| Qwen OAuth (Portal) | OAuth | hermes model → “Qwen OAuth (Portal)”(提供商:qwen-oauth;使用浏览器进行PKCE登录,并复用本地Qwen CLI登录)。支持Portal请求的OAuth提供商(v0.8.0及更高版本)。上述使用API密钥的DashScope路径已在v0.14.0中从Alibaba Cloud更名为Qwen Cloud;现有配置键仍然有效。151926 |
| OpenCode Free(已移除) | 无需密钥 | 已于2026年9月18日移除,标签v2026.9.21和v2026.9.24中均不再包含该提供商。若配置仍指定opencode-free、free或opencode_free,系统将报错并说明其已移除;请通过hermes model切换到opencode-zen(按量付费,OPENCODE_ZEN_API_KEY)或opencode-go(订阅制,OPENCODE_GO_API_KEY)。该提供商曾在v0.20.5时间窗口中以“无需身份验证的opencode-free提供商”之名加入。2353 |
| OpenAI API(直接访问) | API密钥 | 在~/.hermes/.env中设置OPENAI_API_KEY(提供商:openai-api,可选设置OPENAI_BASE_URL)26 |
| Google Vertex AI | OAuth2 / ADC | hermes model → “Google Vertex AI”(提供商:vertex;通过服务账户JSON或应用默认凭据使用OAuth2,费用计入您的GCP项目)26 |
| Azure AI Foundry | 端点和密钥 | hermes model → “Azure AI Foundry”(提供商:azure-foundry;使用您的Azure OpenAI / Foundry端点和密钥;选择器将其描述为“OpenAI风格或Anthropic风格的端点”)26 |
| AWS Bedrock | AWS凭据 | hermes model → “AWS Bedrock”(提供商:bedrock;通过boto3使用标准AWS凭据链、IAM或API密钥;支持Claude、Nova、Llama、DeepSeek)26 |
| NVIDIA NIM / Build | API密钥 | 在~/.hermes/.env中设置NVIDIA_API_KEY(提供商:nvidia;使用build.nvidia.com上由NIM托管的Nemotron及其他模型,也可通过覆盖基础URL来使用本地NIM端点)26 |
| Ollama Cloud | OAuth或API密钥 | hermes model → “Ollama Cloud”(提供商:ollama-cloud;粘贴OLLAMA_API_KEY,然后从发现的云托管模型中选择)26 |
| StepFun Step Plan | API密钥 | 在~/.hermes/.env中设置STEPFUN_API_KEY(提供商:stepfun;通过Step Plan API使用代理和编码模型)26 |
| MiniMax (OAuth) | OAuth | hermes model → “MiniMax (OAuth)”(提供商:minimax-oauth;使用浏览器进行PKCE登录,以访问Coding Plan,支持全球或中国区)26 |
| Meta AI | API密钥 | 在~/.hermes/.env中设置MODEL_API_KEY(提供商:meta-ai;Meta Model API、Muse Spark系列)26 |
| NovitaAI | API 密钥 | ~/.hermes/.env 中的 NOVITA_API_KEY(provider:novita;200 多个模型、Model API、Agent Sandbox、GPU Cloud)26 |
| Arcee AI | API 密钥 | ~/.hermes/.env 中的 ARCEEAI_API_KEY(provider:arcee;别名:arcee-ai、arceeai;Trinity 模型)26 |
| GMI Cloud | API 密钥 | ~/.hermes/.env 中的 GMI_API_KEY(provider:gmi;别名:gmi-cloud、gmicloud)。请使用 GMI 的 /v1/models 端点返回的准确模型 ID26 |
| Actual Computer | API 密钥或本地守护进程 | 对于托管中继,请在 ~/.hermes/.env 中设置 ACTUAL_API_KEY;对于本地守护进程,请设置 ACTUAL_BASE_URL=http://127.0.0.1:8080,通过环回地址访问时无需密钥(provider:actual;别名:actual-computer、actualcomputer、aci)26 |
| Tencent TokenHub | API 密钥 | ~/.hermes/.env 中的 TOKENHUB_API_KEY(provider:tencent-tokenhub;别名:tencent、tokenhub、tencentmaas;Hy3 Preview)26 |
| CommandCode | API 密钥 | ~/.hermes/.env 中的 COMMANDCODE_API_KEY(provider:commandcode,别名 commandcode-chat;通过 commandcode-anthropic 使用 Claude 模型,别名 commandcode-claude)。适用于 GOAT/Pro/Max/Provider 套餐,但不适用于没有 API 访问权限的 1 美元 Go 套餐。该插件于 v0.20.3 前后加入。5426 |
| Alibaba Cloud(Coding Plan) | API 密钥 | DASHSCOPE_API_KEY(provider:alibaba-coding-plan,别名 alibaba_coding);这是一个单独计费的 SKU,使用的端点不同于 alibaba DashScope provider26 |
| Tencent TokenPlan | API 密钥 | ~/.hermes/.env 中的 TOKENPLAN_API_KEY(provider:tencent-tokenplan;别名:tokenplan、tencent-lkeap;通过 api.lkeap.cloud.tencent.com 上的 Anthropic Messages 端点提供 Hy4 预览版)。v0.21.0 新增;选择器将 TokenHub 和 TokenPlan 归入仅供显示的同一行“Tencent Hy”3536 |
| Nebius Token Factory | API 密钥 | ~/.hermes/.env 中的 NEBIUS_API_KEY(provider:nebius-token-factory;别名:nebius、nebius-tf、tokenfactory)。v0.21.0 新增3536 |
| Ramp Router | API 密钥 | ~/.hermes/.env 中的 RAMP_ROUTER_API_KEY(provider:router;别名:ramp-router、ramp、router.com)。Ramp 在 api.router.com 提供原生支持 OpenAI Responses 的 LLM gateway,并配有账户专属的实时目录——有效模型 ID 以您的密钥从 /v1/models 获取的结果为准,因此选择器会动态获取,而非硬编码。v0.21.0 新增3536 |
| Alibaba Cloud(Token Plan) | API 密钥 | ~/.hermes/.env 中的 ALIBABA_TOKEN_PLAN_API_KEY(provider:alibaba-token-plan;中国大陆端点:alibaba-token-plan-cn)——Model Studio 的固定 Token 套餐,是 alibaba 和 alibaba-coding-plan 之外的第 3 个 Alibaba SKU36 |
| 自定义端点 | config.yaml | hermes model →“自定义端点”(保存在 config.yaml 中)。文档列出的 OpenAI 兼容服务包括 Together AI、Groq、Cerebras(https://api.cerebras.ai/v1)、Mistral、Azure OpenAI、LocalAI 和 Jan26 |
从 v0.19.0 开始,还可以隐藏不使用的 provider:为相应 provider 设置 enabled: false 标志,或通过 excluded_providers 配置键,将其从 /model 选择器和内置 provider 解析逻辑中移除。56 |
Anthropic:3 种身份验证方式
Anthropic 单独成节,是因为 Hermes 提供了 3 种不同的 Claude 接入方式,选择合适的方式至关重要。根据上游文档:2
# Method 1: API key (pay-per-token)
export ANTHROPIC_API_KEY=***
hermes chat --provider anthropic --model claude-sonnet-4-6
# Method 2: OAuth through hermes model (preferred)
# Uses Claude Code's credential store when available
hermes model
# Method 3: Manual setup-token (fallback/legacy)
export ANTHROPIC_TOKEN=***
hermes chat --provider anthropic
# Auto-detect Claude Code credentials
hermes chat --provider anthropic # reads Claude Code files automatically
通过 hermes model 选择 Anthropic OAuth 时,Hermes 会优先使用 Claude Code 自身的凭据存储,而不是将令牌复制到 ~/.hermes/.env。这样可确保可刷新的 Claude 凭据继续正常刷新。2 如果同一台计算机上已经在使用 Claude Code,这是最简洁的方式。
要在 config.yaml 中永久固定使用 Anthropic:
model:
provider: "anthropic"
default: "claude-sonnet-4-6"
--provider claude 和 --provider claude-code 也可作为 --provider anthropic 的简写。2
GitHub Copilot:2 种模式
Copilot 支持 2 种模式:直接调用 Copilot API(推荐),以及 Copilot ACP(将本地 Copilot CLI 作为子进程启动)。2
# Direct Copilot API
hermes chat --provider copilot --model gpt-5.4
# Copilot ACP (requires the Copilot CLI in PATH + an existing copilot login)
hermes chat --provider copilot-acp --model copilot-acp
根据上游文档,身份验证按以下顺序检查:2
1. COPILOT_GITHUB_TOKEN 环境变量
2. GH_TOKEN 环境变量
3. GITHUB_TOKEN 环境变量
4. gh auth token CLI 回退方式
5. 通过 hermes model 进行 OAuth 设备代码登录
令牌类型至关重要。 Copilot API 不支持经典 Personal Access Token(ghp_*)。支持的类型包括 OAuth 令牌(gho_*)、细粒度 PAT(github_pat_*,需具备 Copilot Requests 权限),以及 GitHub App 令牌(ghu_*)。如果 gh auth token 返回 ghp_* 令牌,请改用 hermes model 通过 OAuth 进行身份验证。2
中国 AI provider(原生支持)
Hermes 原生支持 z.ai/GLM、Kimi/Moonshot、MiniMax(全球和中国端点)以及 Alibaba Cloud,并为其提供专用的 provider ID。2
# z.ai / ZhipuAI GLM
hermes chat --provider zai --model glm-5 # Requires: GLM_API_KEY
# Kimi / Moonshot AI
hermes chat --provider kimi-coding --model kimi-for-coding # Requires: KIMI_API_KEY
# MiniMax (global)
hermes chat --provider minimax --model MiniMax-M2.7 # Requires: MINIMAX_API_KEY
# MiniMax (China)
hermes chat --provider minimax-cn --model MiniMax-M2.7 # Requires: MINIMAX_CN_API_KEY
# Alibaba Cloud / DashScope (Qwen)
hermes chat --provider alibaba --model qwen3.5-plus # Requires: DASHSCOPE_API_KEY
可通过 GLM_BASE_URL、KIMI_BASE_URL、MINIMAX_BASE_URL、MINIMAX_CN_BASE_URL 或 DASHSCOPE_BASE_URL 环境变量覆盖基础 URL。2
Z.AI 会自动检测端点。 使用 z.ai/GLM provider 时,Hermes 会探测多个端点(全球、中国和编程版),找出可接受您的 API 密钥的端点。可用端点会自动缓存——大多数用户无需设置 GLM_BASE_URL。2
xAI(Grok)会自动启用提示词缓存。 当基础 URL 包含 x.ai 时,Hermes 会随每个请求发送 x-grok-conv-id 标头,将同一对话会话路由到同一台服务器,从而复用已缓存的系统提示词和历史记录。2 此过程自动完成,无需配置。
hermes auth 命令
hermes auth 是用于管理凭据池和 OAuth 凭据的命令。6
hermes auth # Interactive wizard
hermes auth list # Show all credential pools
hermes auth list openrouter # Show one provider's pool
hermes auth add openrouter --api-key sk-or-v1-xxx
hermes auth add anthropic --type oauth
hermes auth remove openrouter 2 # Remove by index
hermes auth reset openrouter # Clear cooldowns
凭据池用于轮换同一 provider 的多个 API 密钥或 OAuth 令牌——这样无需修改代码,即可将速率限制分摊到多个密钥。6 旧版 hermes login / hermes logout 命令已被移除;请改用 hermes auth。6
自定义端点与自托管端点
Hermes 可与任何兼容 OpenAI 的 API 端点配合使用。如果服务器实现了 /v1/chat/completions,即可将 Hermes 指向该服务器。2
交互式设置(推荐):
hermes model
# Select "Custom endpoint (self-hosted / VLLM / etc.)"
# Enter: API base URL, API key, Model name
手动配置 config.yaml:
model:
default: your-model-name
provider: custom
base_url: http://localhost:8000/v1
api_key: your-key-or-leave-empty-for-local
两种方式都会将配置持久化到 config.yaml。该文件是主模型、provider 和基础 URL 的唯一真实来源。2 旧版环境变量 OPENAI_BASE_URL 和 LLM_MODEL 不再用于读取主模型配置——请使用 hermes model,或直接编辑 config.yaml。2(对于辅助 provider: "main" 路由路径,OPENAI_BASE_URL + OPENAI_API_KEY 仍可作为回退配置,因此如果正在该路径中使用它们,请勿贸然删除。)4
在会话期间切换自定义端点:
/model custom:qwen-2.5 # Custom endpoint with explicit model
/model custom # Auto-detect the model from the endpoint
/model custom:local:qwen-2.5 # Named custom provider "local"
/model custom:work:llama3 # Named custom provider "work"
/model openrouter:claude-sonnet-4 # Back to a cloud provider
/model custom(不带模型名称)会查询端点的 /v1/models API;如果仅加载了一个模型,则会自动选择该模型。这对于仅运行单个模型的本地服务器非常实用。2
本地 LLM 服务器(设置模板)
上游文档提供了 Ollama、vLLM、SGLang、llama.cpp 和 LM Studio 的完整设置指南。以下是实际需要运行的关键命令。每种方案都旨在提供一个可供 Hermes 连接的可用端点。2
Ollama——最简单的本地方案,无需配置:
ollama pull qwen2.5-coder:32b
OLLAMA_CONTEXT_LENGTH=32768 ollama serve # Raise from 4k default
hermes model # Custom endpoint → http://localhost:11434/v1 → qwen2.5-coder:32b
Ollama 的关键注意事项:Ollama 默认使用非常短的上下文长度(VRAM 不足 24GB 时为 4,096 个 token)。必须通过 OLLAMA_CONTEXT_LENGTH 或 Modelfile 提高该值——兼容 OpenAI 的 API 不接受客户端传入的上下文长度,因此 Hermes 无法代为设置。2用于 agent 时,至少应设为 16k–32k。
vLLM——高性能 GPU 服务:
pip install vllm
vllm serve meta-llama/Llama-3.1-70B-Instruct \
--port 8000 \
--max-model-len 65536 \
--tensor-parallel-size 2 \
--enable-auto-tool-choice \
--tool-call-parser hermes
工具调用需要使用 --enable-auto-tool-choice 和 --tool-call-parser <name>。支持的解析器包括:hermes(Qwen 2.5、Hermes 2/3)、llama3_json、mistral、deepseek_v3、deepseek_v31、xlam、pythonic。如果缺少这些标志,工具调用将以纯文本形式返回。2
SGLang——利用 RadixAttention 复用 KV 缓存的快速服务方案:
pip install "sglang[all]"
python -m sglang.launch_server \
--model meta-llama/Llama-3.1-70B-Instruct \
--port 30000 \
--context-length 65536 \
--tp 2 \
--tool-call-parser qwen
SGLang 的注意事项:默认 max_tokens 为 128。如果响应被截断,请在服务器上设置 --default-max-tokens,或在 config.yaml 中配置 model.max_tokens。2
llama.cpp / llama-server——适用于 CPU 和 Apple Silicon Metal:
./build/bin/llama-server \
--jinja -fa \
-c 32768 \
-ngl 99 \
-m models/qwen2.5-coder-32b-instruct-Q4_K_M.gguf \
--port 8080 --host 0.0.0.0
工具调用必须启用 --jinja。如果未启用,llama-server 会完全忽略 tools 参数,模型则会尝试通过在响应文本中写入 JSON 来调用工具——Hermes 无法将其解析为真正的工具调用。2
LM Studio——带 GUI 的桌面应用:
从 LM Studio 应用中启动服务器(Developer 选项卡 → Start Server),也可以通过 CLI 启动:lms server start(在 1234 端口启动)和 lms load qwen2.5-coder --context-length 32768。2然后让 hermes model 指向 http://localhost:1234/v1。
LM Studio 的关键注意事项:LM Studio 会从模型元数据中读取上下文长度,但许多 GGUF 模型报告的默认值为 2048 或 4096。请务必在 LM Studio 的模型设置中明确指定上下文长度——单击模型选择器旁的齿轮图标,将“Context Length”设为至少 16384(最好为 32768),然后重新加载模型。2
命名自定义提供商
如果您使用多个自定义端点(例如本地开发服务器和远程 GPU 服务器),请在 config.yaml 中将它们定义为命名自定义提供商:2
custom_providers:
- name: local
base_url: http://localhost:8080/v1
# api_key omitted — Hermes uses "no-key-required" for keyless local servers
- name: work
base_url: https://gpu-server.internal.corp/v1
api_key: corp-api-key
api_mode: chat_completions # optional, auto-detected from URL
- name: anthropic-proxy
base_url: https://proxy.example.com/anthropic
api_key: proxy-key
api_mode: anthropic_messages # for Anthropic-compatible proxies
随后即可使用三段式语法在会话期间切换:
/model custom:local:qwen-2.5
/model custom:work:llama3-70b
/model custom:anthropic-proxy:claude-sonnet-4
也可以从交互式 hermes model 菜单中选择命名自定义提供商。2
可插拔提供商架构(v0.13.0+)
v0.13.0 提供了 ProviderProfile ABC 和 plugins/model-providers/ 目录,使第三方推理提供商无需修改核心代码即可接入。18如果提供商支持兼容 OpenAI、Anthropic 或 Codex 的 API 模式,您可以实现一个 ProviderProfile 子类,用于声明身份验证路径、基础 URL、模型目录和缓存标头;Hermes 会通过内置提供商使用的同一 runtime_provider.py 路径解析它。这正是 v0.13.0 扩展提供商支持背后的架构变革:添加提供商不再需要编辑核心代码,只需发布一个插件。
兼容 OpenAI 的本地代理(v0.14.0+)
hermes proxy 会公开一个兼容 OpenAI 的本地端点,其后端是 Hermes 已登录的 OAuth 提供商——Claude Pro、ChatGPT Pro、SuperGrok 或其他已配置的兼容提供商。19这意味着,包括 Codex CLI、Aider、Cline、Continue 或自定义脚本在内,需要 OpenAI 风格 API 的工具,都可以复用 Hermes 基于订阅的身份验证,而无需单独的 API 密钥。应将该代理视为本地开发基础设施:有意选择其绑定地址,切勿大范围公开,并留意各提供商的特定条款。
上下文长度检测
根据上游文档,以下两个设置经常被混淆:2
context_length——上下文窗口总量(输入与输出的 token 预算之和,例如 Claude Opus 4.7 为 1,000,000,Sonnet 4.6 为 200,000)。Hermes 据此决定何时压缩历史记录。model.max_tokens——输出上限(模型在单次响应中最多可以生成的 token 数量)。它与历史记录长度无关。
如果自动检测得到的窗口大小不正确,请设置 context_length:
model:
default: "qwen3.5:9b"
base_url: "http://localhost:8080/v1"
context_length: 131072 # tokens
Hermes 通过多来源解析链检测上下文窗口:配置覆盖 → 自定义提供商的单模型设置 → 持久化缓存 → 端点 /models → Anthropic /v1/models → OpenRouter API → Nous Portal → models.dev(由社区维护、收录 3800 多个模型的注册表)→ 回退默认值(128K)。2该系统能够识别提供商,因此同一模型可能因服务提供方不同而具有不同的上下文限制(例如,claude-opus-4.6 通过 Anthropic 直接提供时为 1M,而通过 GitHub Copilot 提供时为 128K)。2
智能模型路由:提供商轮换与回退
Hermes 不会将您限制在单一提供商的单一模型上。智能模型路由由一组 机制组成,用于决定实际由哪个提供商和模型处理特定请求:凭据 池会将负载分散到多个密钥上;主模型失败时,已配置的回退模型会接管;而 下方的辅助槽位可独立于主模型,将附属任务路由到成本更低的模型。26请将这三项一并配置——它们决定了 agent 是因速率限制而停滞不前,还是能够继续工作。
凭据池。如果同一提供商有多个 API 密钥,请通过 hermes auth 配置轮换策略。这样即可将速率限制分散到多个密钥上。6
回退模型。配置一个备用 provider:model。当主模型因速率限制、服务器错误或身份验证失败而无法使用时,Hermes 会自动切换到该模型:2
fallback_model:
provider: openrouter # required
model: anthropic/claude-sonnet-4 # required
# base_url: http://localhost:8000/v1 # optional, for custom endpoints
# api_key_env: MY_CUSTOM_KEY # optional, env var name
回退机制会在会话期间切换模型和提供商,同时保留对话内容。每个会话最多触发一次。2支持回退的提供商包括:openrouter、nous、openai-codex、copilot、copilot-acp、anthropic、huggingface、zai、kimi-coding、minimax、minimax-cn、deepseek、ai-gateway、opencode-zen、opencode-go、kilocode、alibaba、custom。2
辅助模型
Hermes 使用“辅助”模型处理附属任务:图像分析(视觉)、危险命令审批分类、上下文压缩、会话标题生成、TTS 音频标签插入、skill 匹配、MCP 工具分派,以及 Kanban 规约器/分解器系列任务。434默认情况下(auxiliary.*.provider: "auto"),所有辅助任务都会在主聊天模型上运行——也就是您在 hermes model 中选择的同一提供商和模型。文档明确指出,这一行为取代了旧版的低成本提供商自动检测机制:“早期版本会将聚合器用户(OpenRouter、Nous Portal)分配到提供商侧的低成本默认模型。这种行为出人意料……现在,auto 会对所有用户使用主模型,而 config.yaml 中针对各项任务的覆盖设置仍然优先。”34开始使用时无需进行任何配置;但需要权衡成本——使用昂贵的推理模型时,辅助任务会产生不容忽视的额外开销。因此,在成本较为重要的场景中,请将各项任务分别指向价格低廉、速度较快的模型。
有两个曾经的辅助任务已完全不再使用LLM:网页提取(“web_extract和浏览器快照会以确定性方式截断过长内容,并存储完整文本,以便通过read_file分页读取——不涉及LLM”)和会话搜索(该单一形态的工具直接返回数据库内容)。它们原有的auxiliary.web_extract.*和auxiliary.session_search.*配置块已从默认配置中移除——现有config.yaml中残留的值“不会造成影响,将被忽略”——在该标签对应的默认配置中,flush_memories槽位同样已不存在。34
您可以配置每个辅助任务使用的模型和提供商。每个辅助槽位使用相同的配置项:provider、model、base_url(以及api_key、timeout、extra_body和各任务独立的reasoning_effort)。434
auxiliary:
vision: # vision_analyze + browser screenshots
provider: "auto" # "auto" (= main model), "openrouter", "nous", "main", etc.
model: "" # e.g. "openai/gpt-4o", "google/gemini-2.5-flash"
base_url: "" # Custom OpenAI-compatible endpoint
api_key: "" # Falls back to OPENAI_API_KEY
timeout: 120
download_timeout: 30
approval: # dangerous-command approval classifier
provider: "auto"
model: ""
timeout: 30
compression: # summarizer -- legacy compression.summary_* keys migrate here (config v17)
provider: "auto"
model: ""
base_url: ""
timeout: 120
title_generation: # auto-generated session titles after the first exchange
enabled: true # set false to disable auto-titles
provider: "auto"
model: ""
language: "" # empty follows the conversation; e.g. "English" pins titles to one language
tts_audio_tags: { provider: "auto", model: "" } # Gemini 3.1 TTS hidden audio-tag insertion
skills_hub: { provider: "auto", model: "" } # skill matching and search
mcp: { provider: "auto", model: "" } # MCP tool dispatch
triage_specifier: { provider: "auto", model: "" } # hermes kanban specify: rough one-liner into a concrete spec, promoted to todo
kanban_decomposer: { provider: "auto", model: "" } # hermes kanban decompose: triage task into a graph of child tasks routed to specialist profiles
profile_describer: { provider: "auto", model: "" } # hermes profile describe --auto: 1-2 sentence profile descriptions
更多专用槽位也采用相同的结构,包括goal_judge(判断是否满足/goal契约)、curator(用于审查skill使用情况的分支)、background_review(每轮结束后运行的自我改进分支)、review(/review的审查子代理)、moa_reference和moa_aggregator(Mixture-of-Agents)、memory_query_rewrite以及monitor。您完全不必手动编辑YAML:运行hermes model,然后选择“Configure auxiliary models”,即可通过交互式选择器为每项任务单独配置。34
"main"提供商选项表示“使用主代理当前所用的提供商”——它仅可用于auxiliary:、compression:和主回退项(fallback_providers:或旧版fallback_model:)中,不能用于顶层的model.provider设置。如果主模型使用自定义的OpenAI兼容端点,请在model:部分设置provider: custom。4
这为何重要:由于auto已经会沿用主模型,以往“必须配置OpenRouter,否则辅助任务会悄然降级”的隐患已不复存在——如今需要权衡的是成本。如果主模型是价格昂贵的推理模型,建议将频繁运行的辅助任务交给价格低廉且速度快的模型:
auxiliary:
vision:
provider: "openrouter"
model: "google/gemini-2.5-flash"
compression:
provider: "openrouter"
model: "google/gemini-2.5-flash"
配置系统
Hermes采用分层配置系统。理解其优先级至关重要,因为较高层级会覆盖较低层级,而且其中一层是您无法在config.yaml中看到的全局提供商注册表。
配置文件结构
根据上游文档,Hermes配置由以下文件组成:4
~/.hermes/
├── config.yaml # All settings (model, terminal, TTS, compression, memory, toolsets, ...)
├── .env # Secrets (API keys, bot tokens, passwords)
├── auth.json # OAuth provider credentials (Nous Portal, Codex, Anthropic)
├── SOUL.md # Primary agent identity (slot #1 in system prompt)
├── memories/ # Persistent memory (MEMORY.md, USER.md)
├── skills/ # Bundled + agent-created + hub-installed skills
├── cron/ # Scheduled jobs
├── sessions/ # Gateway session state
└── logs/ # agent.log, gateway.log, errors.log (secrets auto-redacted)
config.yaml与.env——两者均设置时,非敏感设置以config.yaml为准。4具体规则如下:
- 敏感信息(API密钥、机器人令牌、密码)→ .env
- 其他所有设置(模型、终端后端、压缩设置、内存限制、toolset)→ config.yaml
可以在config.yaml中使用shell风格的插值引用敏感信息:4
auxiliary:
vision:
api_key: ${GOOGLE_API_KEY}
base_url: ${CUSTOM_VISION_URL}
delegation:
api_key: ${DELEGATION_KEY}
管理配置
hermes config # View current configuration
hermes config show # Same as above
hermes config edit # Open config.yaml in your editor
hermes config set KEY VAL # Set a specific value
hermes config get KEY # Print a single value (v0.19.0+)
hermes config unset KEY # Remove a key so the default applies again (v0.19.0+)
hermes config path # Print the config file path
hermes config env-path # Print the .env file path
hermes config check # Check for missing options (after updates)
hermes config migrate # Interactively add missing options
示例:4
hermes config set model anthropic/claude-opus-4
hermes config set terminal.backend docker
hermes config set OPENROUTER_API_KEY sk-or-... # Saves to .env
每次执行hermes update后,都应运行hermes config check和hermes config migrate。这些命令可以发现文件中尚未包含的新增配置选项。6
配置优先级
Hermes从多个来源加载配置。当多个来源设置了同一个值时,以优先级较高的来源为准:4
- CLI参数——
hermes chat --model anthropic/claude-sonnet-4(覆盖单次调用的设置) - 环境变量——在进程启动时应用
config.yaml——主要设置文件.env——仅用于敏感信息- 内置默认值——其他来源均未设置值时应用
对于单次调用,CLI标志始终具有最高优先级。config.yaml则是长期配置的权威来源。
本地化(v0.13.0+)
v0.13.0为CLI和gateway消息新增了7种区域设置:简体中文、日语、德语、西班牙语、法语、乌克兰语和土耳其语。18v0.14.0实现了所有gateway命令和Web控制面板的本地化,新增8种区域设置,总数达到16种。19在v2026.8.31标签中,locales/目录树包含17份消息目录——英语加16种翻译(af、ar、de、es、fr、ga、hu、it、ja、ko、pt、ru、tr、uk、zh-hant、zh)。33目前文档仅提供zh-Hans本地化版本。区域设置根据LC_ALL / LANG环境变量或config.yaml中显式指定的locale:键确定。英语仍是默认语言;对于翻译尚未覆盖的任何字符串,英语也是权威来源。
Profiles——多个相互隔离的Hermes实例
profile允许您创建多个相互隔离的Hermes实例,每个实例都有独立的配置、会话、skill、内存和gateway PID。借助此功能,您可以并行运行“工作Hermes”和“个人Hermes”,同时确保两者无法访问彼此的状态。6
hermes profile list
hermes profile create work --clone # Clone from current profile
hermes profile use work # Set sticky default
hermes profile alias work --name h-work # Create wrapper script
hermes profile export work -o work-backup.tar.gz
hermes profile import work-backup.tar.gz --name restored
hermes -p work chat -q "Hello from work profile" # One-off without switching
每个profile都有自己的HERMES_HOME(默认为~/.hermes-<name>/),因此多个profile可以同时运行gateway,互不干扰。63
自v0.21.2起,隔离边界得到更严格的保障:一系列修复解决了多路复用gateway设置中确实存在的跨profile泄漏问题。在这些问题中,次要profile可能继承默认profile的允许列表、将凭据发送到默认profile的主机、把默认profile的保险库敏感信息交给stdio MCP服务器,或将其他profile的.env/auth.json/state.db附加到MEDIA:交付内容中(#107609-#107630)。如果您使用多路复用profile,那么从v0.21.2标签开始,隔离承诺才真正成立——请参阅v0.21.2的新变化。48
CLI 命令
本节是面向实践者的顶层CLI命令参考。有关以代码为准的权威参考,请参阅上游的CLI命令参考。6
全局选项
hermes [global-options] <command> [subcommand/options]
| 选项 | 说明 |
|---|---|
--version, -V |
显示版本并退出 |
--profile <name>, -p <name> |
选择要使用的Hermes profile |
--resume <session>, -r <session> |
按ID或标题恢复session |
--continue [name], -c [name] |
恢复最近的session(或匹配标题) |
--worktree, -w |
在隔离的git worktree中启动 |
--in <dir> |
启动或恢复前切换到DIR。与--resume latest或-c结合使用时,会选取DIR工作区最近的session,并让该session停留在DIR中(跳过恢复已记录的当前工作目录)27 |
--ignore-user-config |
忽略~/.hermes/config.yaml并回退到内置默认值(仍会加载.env中的凭据)27 |
--ignore-rules |
跳过自动注入AGENTS.md、SOUL.md、.cursorrules、内存和预加载的skill27 |
--tui |
启动现代TUI,而非经典REPL27 |
--cli |
强制使用经典prompt_toolkit REPL(覆盖display.interface=tui)27 |
--dev |
与--tui配合:通过tsx运行TypeScript源代码(跳过dist构建)27 |
--yolo |
绕过危险命令的批准提示 |
--safe-mode |
故障排除标志——以最小安全模式启动Hermes,以便隔离启动问题(v0.19.0+)56 |
--pass-session-id |
在代理的系统提示中包含session ID |
顶层命令
| 命令 | 用途 |
|---|---|
hermes chat |
交互式或单次聊天 |
hermes model |
以交互方式选择默认提供商和模型 |
hermes gateway |
运行或管理消息gateway |
hermes setup |
交互式设置向导 |
hermes auth |
管理凭据——添加、列出、移除、重置和设置策略 |
hermes status |
显示代理、身份验证和平台状态 |
hermes cron |
检查并推进cron调度程序 |
hermes webhook |
管理动态webhook订阅 |
hermes doctor |
诊断配置和依赖项问题 |
hermes dump |
生成可复制粘贴的设置摘要,用于支持和调试 |
hermes logs |
查看、实时跟踪和筛选代理、gateway及错误日志 |
hermes config |
显示、编辑、迁移和查询配置 |
hermes pairing |
批准或撤销消息配对码 |
hermes skills |
浏览、安装、发布和审核skill |
hermes honcho |
管理Honcho跨session内存。此命令取决于插件:文档说明,“插件专属子命令(例如hermes honcho)会在其提供商处于活动状态时自动注册”,因此,除非Honcho是当前活动的内存提供商,否则hermes --help中不会显示该命令6 |
hermes memory |
配置外部内存提供商 |
hermes acp |
将Hermes作为ACP服务器运行(编辑器集成) |
hermes mcp |
管理MCP服务器配置;将Hermes作为MCP服务器运行 |
hermes plugins |
管理插件 |
hermes tools |
按平台配置启用的工具 |
hermes sessions |
浏览、导出、修剪和删除session。v0.19.0将hermes sessions export扩展为支持Markdown、Quarto、HTML、仅提示以及Hugging Face跟踪格式,并提供选择启用的--redact机密信息清理流程,以及按时间、工作区和平台筛选的功能56;hermes sessions recover可离线且无损地从损坏的state.db中重建规范session数据,并写入一个单独的NEW数据库;使用--inspect-only可在不创建数据库的情况下报告规范表是否可读(这是v0.21.2明确指出的恢复路径)48;hermes sessions set-journal-mode delete\|wal(v0.21.4期间推出)可离线地在WAL与回滚日志模式之间转换存储——当任何外部进程占用数据库或sidecar文件时,它会拒绝执行;不会等待占用进程退出便进行切换;随后验证SQLite头部的第18/19字节;还可通过--db指定非默认存储。请先停止gateway、dashboard以及所有CLI;在无法扫描占用者的Windows上,必须自行停止所有Hermes进程并传入--force,否则命令会拒绝执行。该调度特意采用离线方式,因此命令绝不会打开其正在转换的存储;hermes doctor现在也会指向此命令51 |
hermes insights |
显示token、成本和活动分析 |
hermes claw |
OpenClaw迁移辅助工具 |
hermes profile |
管理profile(多个相互隔离的实例) |
hermes completion |
输出shell补全脚本(bash/zsh) |
hermes whatsapp |
配置WhatsApp桥接并完成配对 |
hermes --version (-V) |
输出版本信息。这是全局标志,而非子命令:在标签v2026.8.31中,_BUILTIN_SUBCOMMANDS集合不含version条目,启动快速路径也只匹配--version / -V27 |
hermes update |
拉取最新代码并重新安装依赖项 |
hermes uninstall |
从系统中移除Hermes(--full还会删除配置和数据) |
hermes backup |
完整备份配置、session、skill和内存(v0.9.0+)16 |
hermes import |
从备份归档恢复——可用于在计算机之间迁移或回滚(v0.9.0+)16 |
hermes dashboard |
启动本地Web dashboard,通过浏览器管理代理(v0.9.0+)16 |
hermes serve |
以无界面模式运行后端API服务器——从v0.19.0起,它不再构建或挂载Web UI56 |
hermes debug share |
将完整的调试报告上传至pastebin,以便在排查问题时共享(v0.9.0+)16 |
hermes approvals |
批准提示工具:suggest从批准历史中提取command_allowlist建议;test在不执行命令的情况下试运行该命令的批准判定(“绝不会执行该命令”,并支持--backend和--json)。v0.21.0发行说明将此试运行功能称为hermes approval-check,但标签v2026.8.31中不存在approval-check子命令——实际接口是hermes approvals test2740 |
hermes bundles |
创建、列出和管理skill bundle(将多个skill映射到一个/<name>斜杠命令的别名)27 |
hermes checkpoints |
检查、修剪或清空~/.hermes/checkpoints/,即/rollback背后的影子存储;不带参数运行可查看状态概览27 |
hermes computer-use |
管理Computer Use(cua-driver)后端(macOS/Windows/Linux)27 |
hermes console |
打开安全的Hermes命令控制台27 |
hermes curator |
后台skill维护(curator):查看状态、运行、暂停和固定27 |
hermes egress |
管理用于远程终端沙箱的iron-proxy出口凭据注入防火墙(默认禁用)27 |
hermes fallback |
管理后备提供商,在主模型失败时依次尝试27 |
hermes hooks |
检查和管理shell脚本hook:list、test <event>、revoke和doctor(检查执行位、允许列表、mtime漂移、JSON有效性和模拟运行耗时)27 |
hermes import-agent |
将Claude Code(~/.claude)或Codex CLI(~/.codex)设置导入Hermes27 |
hermes desktop(别名gui) |
构建并启动原生Electron桌面应用27 |
hermes kanban |
多profile协作看板(任务、链接和评论),包含看板、swarm图(swarm:并行工作进程→验证器→综合器)和调度器27 |
hermes login / hermes logout |
已弃用。请使用hermes auth管理凭据,使用hermes model选择提供商,或使用hermes setup完成完整设置27 |
hermes lsp |
Language Server Protocol管理:status、list、install <server>、install-all和restart(关闭正在运行的LSP客户端;下次编辑时重新生成)27 |
hermes migrate |
迁移已停用模型或已弃用设置的配置27 |
hermes moa |
配置Mixture of Agents提供商和模型槽位(可从模型选择器中选择的命名预设)27 |
hermes journey(别名learning、memory-graph) |
按时间展示已学习skill和内存的时间线27 |
hermes monitoring |
检查gateway监控(运行状况和诊断导出);status显示设置、导出状态和脱敏状况27 |
hermes pause / hermes resume |
紧急停止:pause会暂停cron/kanban调度和新的gateway轮次;resume则解除暂停27 |
hermes peer |
跨计算机的机器人间私信:通过add、list和remove管理对等Hermes gateway,并使用dm向其中一个gateway上的代理发送私信并输出回复27 |
hermes pets |
浏览、安装和选择petdex动画宠物27 |
hermes portal |
设置Nous Portal(登录、模型选择和Tool Gateway):login(默认)、info、open、tools;请参阅Nous Tool Gateway2728 |
hermes project |
管理项目(具名的多文件夹工作区):创建、列出、显示、添加/移除文件夹、重命名、设置主文件夹、使用、归档、恢复,以及绑定kanban看板27 |
hermes proxy |
面向OAuth提供商、与OpenAI兼容的本地代理:start、status、providers27 |
hermes prompt-size |
显示系统提示和工具schema的字节明细;离线运行27 |
hermes send |
在不启动代理循环且不使用LLM的情况下向已配置的平台发送消息(适用于脚本、cron任务和CI)27 |
hermes skin |
列出、切换和调整皮肤(list、use、set)27 |
hermes slack |
Slack集成辅助工具:manifest输出或写入Slack应用清单,其中每个gateway命令都注册为原生斜杠命令27 |
hermes sync |
跨设备及团队Skill Sync:status、pull、push、now、enable、disable、device、propose27 |
hermes whatsapp-cloud |
设置WhatsApp Business Cloud API集成(不同于面向个人账户、基于Baileys的hermes whatsapp桥接)27 |
hermes worktree |
审核并回收累积的git worktree和已合并分支。list(别名ls、audit;默认命令)会按存续时间、大小、判定和原因对每个树进行分类;prune会移除安全的树,并删除已完全合并的本地分支。两者都接受--repo <root>;prune还支持--dry-run(只显示计划,不进行任何更改)、--trees-only和--branches-only。它绝不会删除存在未提交受跟踪更改、独有未推送提交或正在使用的树;仅含未跟踪文件的临时内容会在移除前归档至~/.hermes/archive/worktree-prune/27 |
hermes secrets |
管理外部机密信息源(Bitwarden、1Password),以便在进程启动时提取API密钥27 |
hermes security |
对venv、插件和MCP服务器执行供应链审核(OSV.dev)(audit)27 |
hermes verify |
检测项目的运行方案并进行冒烟测试27 |
hermes chat——主要入口
不带参数运行hermes会直接进入交互式聊天。hermes chat是带选项的显式形式:6
hermes chat -q "Summarize the latest PRs" --oneshot # Answer and exit (without --oneshot, a TTY seeds an interactive session)
hermes chat --provider openrouter --model anthropic/claude-sonnet-4.6
hermes chat --toolsets web,terminal,skills # Enable specific toolsets
hermes chat --quiet -q "Return only JSON" # Programmatic mode
hermes chat --worktree -q "Review repo and open a PR"
主要选项:
| 选项 | 说明 |
|---|---|
-q, --query "..." |
要运行的查询。v0.21.0中有所变更:在真正的TTY上,它现在会启动一个交互式session(将查询原样提交为第一轮);与--oneshot或-Q结合使用时,或在非TTY环境中,则回答后退出——这也是旧版的单次执行行为40 |
--query-file PATH |
从文件而非命令行读取单个查询(-表示读取stdin)。内容不会经过shell解释,因此引号、$(...)和反引号都会原样传入;不能与-q同时使用51 |
--oneshot |
与-q/--query-file配合:回答查询后退出(旧版单次查询行为)。在非TTY标准输入输出环境中,或使用-Q/--quiet时会隐式启用40 |
-m, --model <model> |
覆盖本次运行使用的模型 |
-t, --toolsets <csv> |
启用一组以逗号分隔的toolset |
--provider <provider> |
强制使用某个提供商(请参阅完整列表) |
-s, --skills <name> |
为本次session预加载一个或多个skill |
-v, --verbose |
输出详细信息 |
-Q, --quiet |
编程模式(无横幅、旋转指示器和预览) |
--format <fmt> |
单次查询模式(-q或--query-file)的输出格式:text(默认)以纯文本输出最终响应;stream-json输出以换行符分隔的JSON事件(JSONL)——依次为system/init事件、text增量、tool_use/tool_result事件,最后是一个包含退出代码、最终文本和token统计信息的终止result封装。stream-json会隐式启用--quiet,要求提供-q或--query-file(未提供时以代码2退出),且不能与--tui结合使用;诊断信息和session ID会保留在stderr中,每个事件的工具输出上限为5,000个字符(v0.21.4期间推出)51 |
--resume <session> |
直接从chat恢复session |
--worktree |
创建隔离的git worktree |
--checkpoints |
在执行破坏性更改前启用文件系统checkpoint |
--yolo |
跳过批准提示 |
--source <tag> |
session来源标签(默认:cli;集成场景请使用tool) |
--max-turns <N> |
每轮对话中调用工具的最大迭代次数(自v0.20.0起默认为500,或采用配置中的agent.max_turns)40 |
hermes setup——完整向导
运行完整设置向导,或直接进入其中某个部分:6
hermes setup # Full wizard
hermes setup model # Provider and model only
hermes setup terminal # Terminal backend only
hermes setup gateway # Messaging platforms only
hermes setup tools # Tool enable/disable per platform
hermes setup agent # Agent behavior only
hermes setup --non-interactive
hermes setup --reset # Reset config to defaults before setup
hermes logs——结构化日志查询
hermes logs比直接对日志文件运行tail -f更强大,因为它支持同时按级别、session ID和时间范围进行筛选。6
hermes logs # Last 50 lines of agent.log
hermes logs -f # Follow in real time
hermes logs gateway -n 100 # Last 100 lines of gateway.log
hermes logs --level WARNING --since 1h # Warnings from the last hour
hermes logs --session abc123 # Filter by session ID substring
hermes logs errors --since 30m -f # Follow errors.log from 30m ago
hermes logs list # List all log files with sizes
日志文件位于~/.hermes/logs/:6
- agent.log——所有代理活动(API调用、工具调度、session生命周期、INFO及以上级别)
- errors.log——仅包含警告和错误(agent.log的筛选子集)
- gateway.log——消息gateway活动(平台连接、调度和webhook)
日志通过Python的RotatingFileHandler自动轮换——可查找agent.log.1、agent.log.2等文件。6
hermes doctor——诊断
遇到问题时,应首先运行hermes doctor [--fix]。它会检查配置有效性、依赖项是否存在、API密钥是否可用以及服务状态,并可通过--fix尝试自动修复。6
如需与他人共享诊断信息,请使用hermes dump——它会生成一份精简的纯文本摘要,其中API密钥已经过脱敏,可直接粘贴到GitHub issue或Discord讨论串中。6
Slash 命令
Slash 命令在活跃的聊天会话(CLI或消息平台)中运行。它们由hermes_cli/commands.py中的共享COMMAND_REGISTRY分派,因此大多数命令在不同界面上的工作方式完全相同。9
会话控制
| 命令 | 说明 |
|---|---|
/new(别名/reset) |
启动新会话 |
/clear |
清空屏幕并启动新会话 |
/history |
显示对话历史记录 |
/save |
保存当前对话 |
/retry |
重试上一条消息 |
/undo |
移除最近一轮用户与助手的对话 |
/title <name> |
为当前会话设置标题 |
/compress |
手动压缩对话上下文 |
/rollback [number] |
列出或恢复文件系统checkpoint |
/stop |
终止所有正在运行的后台进程 |
/status |
显示会话、模型、token和上下文信息——自v0.20.5版本周期起,还会显示推理模式、待处理审批和上下文用量4035 |
/queue <prompt> |
将提示词加入队列,供下一轮处理。注意:/queue和/quit都注册了/q;后注册者优先,因此实际使用时/q会解析为/quit——请务必完整输入/queue。9 |
/resume [name] |
恢复先前已命名的会话 |
/statusbar(别名/sb) |
切换上下文/模型状态栏 |
/background <prompt>(别名/bg) |
在单独的后台会话中运行提示词 |
/btw <question> |
临时提出附带问题(不使用工具,也不会持久保存) |
/plan [request] |
加载内置的plan skill,以编写计划而非直接执行 |
/branch [name](别名/fork) |
从当前会话创建分支 |
/goal <target> |
将agent锁定到某个目标,使其能够跨轮次专注完成任务。Ralph循环模式由此成为一等原语,并可配置轮次预算。v0.13.0新增。18 |
/subgoal <criterion> |
向活跃的/goal添加成功标准,无需重新启动循环。v0.14.0新增。19 |
/handoff <target> |
将实时会话(包括消息、工具调用和上下文)移交给另一个模型、persona或profile。v0.14.0新增。19 |
/worktree [new [name]\|list\|prune [--dry-run]] |
无需离开会话,即可检查、创建或回收隔离的git worktree。new会在仓库的.worktrees/下创建worktree,并将会话移入其中;list用于列出worktree;prune执行与hermes worktree prune相同的交互式回收操作。根据文档所述,它“绝不会触及会话当前所在的工作树”27 |
配置与模型
| 命令 | 说明 |
|---|---|
/config |
显示当前配置 |
/model [model-name] |
显示或更改当前模型 |
/provider |
显示可用提供商和当前提供商 |
/personality [name] |
设置persona叠加层 |
/verbose |
循环切换工具进度的显示方式 |
/reasoning |
管理推理强度和显示方式。v0.19.0新增max和ultra强度等级,并将/reasoning的作用域限定为当前会话;同时支持在配置中为每个模型及每个MoA槽位单独覆盖推理强度56 |
/skin |
显示或更改显示外观/主题 |
/voice [on\|off\|tts\|status] |
切换CLI语音模式 |
/yolo |
切换YOLO模式(跳过审批提示)。自v0.19.0起,即使处于YOLO模式,用户定义的拒绝规则仍会阻止匹配的命令56 |
/fast |
切换快速模式——为OpenAI和Anthropic模型启用优先处理(v0.9.0及更高版本)16 |
/debug |
对所有平台执行快速诊断(v0.9.0及更高版本)16 |
/subscription |
直接在终端中管理Nous Portal套餐——查看套餐与剩余额度、预览升级/降级费用,并支持应用及撤销操作(v0.19.0及更高版本)56 |
/topup |
无需离开终端,即可为Nous Portal余额充值(v0.19.0及更高版本)56 |
/model命令是会话过程中切换提供商的主力工具:9
/model # Show current model and options
/model claude-sonnet-4 # Switch model (auto-detect provider)
/model zai:glm-5 # Switch provider:model
/model custom:qwen-2.5 # Use model on custom endpoint
/model custom # Auto-detect model from custom endpoint
/model custom:local:qwen-2.5 # Named custom provider
/model openrouter:anthropic/claude-sonnet-4 # Back to cloud
v0.19.0新增/model --once,可临时覆盖单轮使用的模型,并在响应后自动恢复为先前的模型。56 自v0.20.5版本周期起,/model选择器还支持模糊搜索,可随输入实时筛选。2335
工具、Skills与信息
| 命令 | 说明 |
|---|---|
/tools [list\|disable\|enable] [name...] |
管理当前会话的工具 |
/toolsets |
列出可用的toolset |
/browser [connect\|disconnect\|status] |
管理本地Chrome CDP连接 |
/skills |
搜索、安装、检查或管理skill |
/cron |
管理计划任务 |
/reload-mcp |
从config.yaml重新加载MCP服务器 |
/plugins |
列出已安装的插件 |
/help |
显示所有命令 |
/usage |
显示token用量、成本和持续时间 |
/insights |
显示用量分析(最近30天) |
/platforms |
显示消息平台状态 |
/profile |
显示活跃profile的名称和主目录 |
/palette |
打开模糊搜索命令面板(也可按Ctrl+P),对所有命令和skill进行模糊搜索。此功能于v0.20.5版本周期上线4035 |
动态Skill Slash命令
每个已安装的skill都会自动公开为Slash命令:9
/gif-search funny cats
/axolotl help me fine-tune Llama 3 on my dataset
/github-pr-workflow create a PR for the auth refactor
/excalidraw # Just the skill name loads it and lets the agent ask what you need
自v0.19.0起,Slash skill调用支持叠加:/skill-a /skill-b do XYZ可在单轮中按顺序加载两个skill,并为串联名称提供自动补全和幽灵文本。56
还可以在config.yaml中定义快捷命令,将短名称映射到更长的提示词:9
quick_commands:
review: "Review my latest git diff and suggest improvements"
deploy: "Run the deployment script at scripts/deploy.sh and verify the output"
morning: "Check my calendar, unread emails, and summarize today's priorities"
随后,在CLI中输入/review、/deploy或/morning即可。
前缀匹配
命令支持前缀匹配:输入/h会解析为/help,输入/mod会解析为/model。当前缀存在歧义时,将按注册表顺序选择第一个已注册的命令。完整命令名称和已注册的别名始终优先于前缀匹配。9
消息平台专用命令
部分命令仅适用于消息平台(Telegram、Discord、Slack、WhatsApp、Signal、Email、Home Assistant):9
/status——显示会话信息(已不再仅限消息平台;请参阅会话控制)/sethome(别名/set-home)——将当前聊天标记为平台主页/approve [session|always]——批准待处理的危险命令/deny [reason]——拒绝待处理的危险命令。自v0.19.0起,/deny <reason>会将您的拒绝原因传达给agent,使其调整方案,而不是盲目重试56/update——将Hermes Agent更新至最新版本/commands [page]——分页浏览所有命令和skill
另有一些命令仅适用于CLI:/skin、/tools、/toolsets、/browser、/config、/cron、/skills、/platforms、/paste、/statusbar、/plugins。9
工具与 Toolset
Hermes 内置了丰富的工具注册表,涵盖互联网搜索、浏览器自动化、终端执行、文件编辑、内存、委派、RL 训练、消息发送和 Home Assistant 集成等功能。10 工具按逻辑划分为不同的 toolset,可针对各个平台分别启用或禁用。
高层分类
| 类别 | 示例 | 说明 |
|---|---|---|
| 互联网 | web_search, web_extract |
搜索互联网并提取页面内容 |
| 终端与文件 | terminal, process, read_file, patch |
执行命令并操作文件 |
| 浏览器 | browser_navigate, browser_snapshot, browser_vision |
通过文本和视觉进行交互式浏览器自动化 |
| 媒体 | vision_analyze, video_analyze, video_generate, image_generate, text_to_speech |
多模态分析与生成。video_analyze 优先使用 Gemini,并可扩展支持兼容的多模态提供商(v0.13.0+)。v0.14.0 新增统一的 video_generate,支持可插拔的提供商后端;当活动模型具备视觉能力时,还会通过 vision_analyze 处理原始像素数据。1819 |
| Agent 编排 | todo, clarify, execute_code, delegate_task |
规划、澄清、代码执行和子 Agent 委派 |
| 计算机操作 | computer_use |
通过 cua-driver 后端控制桌面;v0.14.0 起可与非 Anthropic 的视觉模型提供商配合使用。19 |
| 内存与检索 | memory, session_search |
持久内存与会话搜索 |
| 自动化与发送 | cronjob, send_message |
计划任务和出站消息发送 |
| 集成 | ha_*, MCP 工具, rl_* |
Home Assistant、MCP 和 RL 训练 |
常见的 toolset 名称包括 web、terminal、file、browser、vision、image_gen、moa、skills、tts、todo、memory、session_search、cronjob、code_execution、delegation、clarify、homeassistant 和 rl。10
管理工具
hermes chat --toolsets "web,terminal" # Use specific toolsets
hermes tools # Interactive per-platform tool config
hermes tools --summary # Print enabled-tools summary
还可在会话期间通过 /tools disable <name> 和 /tools enable <name> 切换工具状态。执行后会重置会话,以便新的工具集生效。9
终端后端
终端工具内置了7种执行后端;自 v0.20.6 起,这套后端也像提供商选择器一样支持通过插件扩展(见下文):1024
| 后端 | 使用场景 |
|---|---|
local |
在您的计算机上运行(默认)——适用于开发和可信任务 |
docker |
隔离容器——适用于安全隔离和确保可复现性 |
ssh |
远程服务器——提供沙箱环境,使 Agent 远离自身代码 |
singularity |
HPC 容器——适用于集群计算和无 root 权限环境 |
modal |
无服务器云端执行 |
daytona |
云端沙箱工作区——持久化的远程开发环境 |
vercel_sandbox |
Vercel Sandbox 云端 microVM——提供支持快照文件系统持久化的云端执行环境。安装 hermes-agent[vercel],设置 terminal.vercel_runtime(node24、node22 或 python3.13),并使用 VERCEL_TOKEN、VERCEL_PROJECT_ID 和 VERCEL_TEAM_ID 完成身份验证;远程工作区根目录默认为 /vercel/sandbox24 |
通过 hermes config set terminal.backend <name> 或在 config.yaml 中切换后端:
terminal:
backend: docker # or: local, ssh, singularity, modal, daytona, vercel_sandbox
cwd: "." # Working directory
timeout: 180 # Command timeout in seconds
插件后端(v0.20.6+)。 第三方沙箱供应商无需再将实现并入核心仓库:插件在加载时通过 PluginContext.register_terminal_environment_provider 注册 TerminalEnvironmentProvider,注册名称随后即可像内置后端一样通过 terminal.backend 选择。内置名称属于保留名称——如果提供商名称与仓库内的后端冲突,注册表会拒绝该提供商。注册后的后端会自动接入所有核心功能界面(hermes setup 后端选择器、控制面板探测状态、hermes doctor 检查、容器路径与 cwd 处理、密钥剥离),因为核心会在每个分类点查询注册表,而非依赖硬编码的名称列表。32
SSH 后端(出于安全考虑,建议使用——Agent 无法修改自身代码):10
terminal:
backend: ssh
# In ~/.hermes/.env
TERMINAL_SSH_HOST=my-server.example.com
TERMINAL_SSH_USER=myuser
TERMINAL_SSH_KEY=~/.ssh/id_rsa
Docker 后端:
terminal:
backend: docker
docker_image: python:3.11-slim
容器资源(适用于 docker、singularity、modal、daytona):10
terminal:
container_cpu: 1
container_memory: 5120 # MB (default 5GB)
container_disk: 51200 # MB (default 50GB)
container_persistent: true # Persist filesystem across sessions
启用 container_persistent: true 后,已安装的软件包、文件和配置可跨会话保留。10
所有容器后端均经过安全加固:只读根文件系统(Docker);除 DAC_OVERRIDE、CHOWN 和 FOWNER 外,移除所有 Linux capability;禁止权限提升;限制 PID(256个进程);提供完整的命名空间隔离,并通过卷实现持久化工作区。10
后台进程
终端工具支持后台执行,并提供明确的进程管理机制:10
terminal(command="pytest -v tests/", background=true)
# Returns: {"session_id": "proc_abc123", "pid": 12345}
process(action="list") # Show all running processes
process(action="poll", session_id="proc_abc123") # Check status
process(action="wait", session_id="proc_abc123") # Block until done
process(action="log", session_id="proc_abc123") # Full output
process(action="kill", session_id="proc_abc123") # Terminate
process(action="write", session_id="proc_abc123", data="y") # Send input
PTY 模式(pty=true)支持 Codex 和 Claude Code 等交互式 CLI 工具。10
Sudo
如果命令需要 sudo,Hermes 会提示您输入密码(在当前会话中缓存)。也可在 ~/.hermes/.env 中设置 SUDO_PASSWORD。10
多 Agent Kanban(v0.13.0+)
v0.13.0 将多 Agent 协作提升为一等原语:通过一个持久化 Kanban 看板,跨 Agent、跨重启跟踪任务、状态和工作进程身份。18 正是这个看板让 Hermes 工作进程群能够真正完成工作,而不会因失效的交接陷入停滞。
| 机制 | 作用 |
|---|---|
| 心跳 | 每个工作进程在拥有任务期间持续发送心跳。心跳缺失时,该工作进程会被标记为可疑,任务则会释放以供重新认领。 |
| 重新认领 | 其他工作进程可以接手被遗弃的任务,同时获得完整的任务状态和此前的部分输出。 |
| 僵尸检测 | 工作进程退出时若未将任务标记为完成,系统会自动禁止其认领新工作,避免工作进程群积累失效身份。 |
| 幻觉门控 | 如果输出未通过门控,任务不会被标记为完成,而是会连同注明的原因退回看板。 |
按任务设置 max_retries |
对已知不稳定的任务覆盖默认重试预算。 |
| 多项目看板 | 一个 Hermes 主目录可托管多个相互独立的看板。 |
在目标管理方面,Kanban 看板可自然地与 /goal(目标锁定的 Ralph 循环)搭配;在启动语义方面,则可与现有的 delegate_task 工具结合。由此形成的工作进程群模式,使每个 Agent 都能共享唯一可信的信息源,明确下一步该做什么、由谁负责,以及哪些工作陷入停滞。
什么是 Hermes 工作进程群?
工作进程群是指多个 Hermes 工作进程并行使用同一个共享 Kanban 看板。 它并不是需要单独启用的子系统,而是看板所实现的一种工作方式。看板 提供了并行 Agent 自身无法解决的关键能力:针对“下一步应该领取什么任务, 是否已经有人在处理?”给出唯一且权威的答案。
v0.15.0 将这种模式提升为正式支持的拓扑,新增了用于并行工作进程协调的 工作进程群拓扑、将高层目标拆解为子任务的自动分解、 按任务覆盖模型、计划任务以及工作树管理,避免并行 工作进程在同一检出目录中发生冲突。59
| 简单多 Agent 配置面临的问题 | 看板的应对方式 |
|---|---|
| 两个工作进程领取了同一任务 | 认领任务所有权,并记录工作进程身份 |
| 工作进程在任务中途终止,工作成果随之丢失 | 心跳失效后,任务会连同此前的部分输出一起被重新认领 |
| 已崩溃的工作进程一直“占有”任务 | 僵尸检测会阻止其认领新工作 |
| 每个子任务都使用同一个昂贵模型 | 按任务覆盖模型——机械性子任务使用成本较低的模型 |
| 并行工作进程编辑相同文件 | 工作树管理会隔离各工作进程的检出目录 |
实际运作方式如下:为工作进程群设定目标,由自动分解将其拆成看板任务,
再由工作进程认领、执行并返回结果。重试预算按任务设置(max_retries),
因此某个不稳定的子任务不会耗尽整个运行过程的容错额度。由于看板可以
持久保存,工作进程群在重启后仍可继续运行——工作进程会重新连接,并基于相同状态恢复工作。
工作进程群的成效取决于任务分解的质量。 看板负责协调工作进程,但无法 将拆分不当的目标变成合理的目标。共享隐式状态的任务仍会相互冲突, 即使使用工作树也无济于事。
skill 系统
skill 是按需加载的知识文档,agent 可在需要时加载。它采用渐进式披露模式,最大限度减少 token 用量,并兼容 agentskills.io 开放标准。11
所有 skill 均位于 ~/.hermes/skills/——这是主要目录,也是唯一可信来源。全新安装时,捆绑的 skill 会从仓库复制到此处。通过 Hub 安装及 agent 创建的 skill 也会存放于此。11
渐进式披露
Level 0: skills_list() → [{name, description, category}, ...] (~3k tokens)
Level 1: skill_view(name) → Full content + metadata (varies)
Level 2: skill_view(name, path) → Specific reference file (varies)
只有在实际需要时,agent 才会加载 skill 的完整内容。11
SKILL.md 格式
---
name: my-skill
description: Brief description of what this skill does
version: 1.0.0
platforms: [macos, linux] # Optional — restrict to OS platforms
metadata:
hermes:
tags: [python, automation]
category: devops
fallback_for_toolsets: [web] # Conditional activation
requires_toolsets: [terminal] # Conditional activation
config: # Config.yaml settings
- key: my.setting
description: "What this controls"
default: "value"
prompt: "Prompt for setup"
---
# Skill Title
## When to Use
Trigger conditions for this skill.
## Procedure
1. Step one
2. Step two
## Pitfalls
- Known failure modes and fixes
## Verification
How to confirm it worked.
条件激活
skill 可根据可用工具决定显示或隐藏。这尤其适用于备用 skill——仅当付费工具不可用时才应显示的免费或本地替代方案:11
| 字段 | 行为 |
|---|---|
fallback_for_toolsets |
列出的 toolset 可用时隐藏该 skill |
fallback_for_tools |
同上,但检查单个工具 |
requires_toolsets |
列出的 toolset 不可用时隐藏该 skill |
requires_tools |
同上,但检查单个工具 |
示例:内置 duckduckgo-search skill 使用 fallback_for_toolsets: [web]。设置 FIRECRAWL_API_KEY 后,web toolset 即可用,agent 会使用 web_search,而 DuckDuckGo skill 将保持隐藏。若未设置 API 密钥,DuckDuckGo skill 会自动作为备用方案显示。11
由 agent 管理的 skill
agent 可通过 skill_manage 工具创建、更新和删除自己的 skill。这是 agent 的程序性记忆——当它探索出一套复杂的工作流程后,会将方法保存为 skill,以便日后复用。11
agent 创建 skill 的时机:11 - 成功完成复杂任务后(调用工具5次以上) - 遇到错误或走入死胡同,随后找到可行路径时 - 用户纠正其处理方式时 - 发现复杂的工作流程时
操作:11
| 操作 | 用途 |
|---|---|
create |
从头创建新 skill |
patch |
针对性修复(首选——最节省 token) |
edit |
大幅调整结构 |
delete |
完全删除某个 skill |
write_file |
添加或更新支持文件 |
remove_file |
删除支持文件 |
Skill Hub
hermes skills browse # Browse all hub skills
hermes skills browse --source official # Browse official optional skills
hermes skills search kubernetes # Search all sources
hermes skills search react --source skills-sh # Search skills.sh directory
hermes skills inspect openai/skills/k8s # Preview before installing
hermes skills install openai/skills/k8s # Install with security scan
hermes skills install skills-sh/anthropics/skills/pdf --force
hermes skills check # Check for upstream updates
hermes skills update # Reinstall changed hub skills
hermes skills audit # Re-scan installed hub skills
hermes skills uninstall k8s
hermes skills publish skills/my-skill --to github --repo owner/repo
hermes skills tap add myorg/skills-repo # Add custom GitHub source
已集成的 Hub 来源:11
| 来源 | 示例 | 说明 |
|---|---|---|
official |
official/security/1password |
随 Hermes 提供的可选 skill(内置信任) |
skills-sh |
skills-sh/vercel-labs/agent-skills/vercel-react-best-practices |
Vercel 的公共 skill 目录 |
well-known |
well-known:https://mintlify.com/docs/.well-known/skills/mintlify |
从发布 /.well-known/skills/index.json 的网站中基于 URL 进行发现 |
github |
openai/skills/k8s |
直接从 GitHub 仓库或路径安装 |
clawhub |
— | 第三方 skill 市场 |
lobehub |
— | 转换自 LobeHub agent 目录 |
browse-sh |
— | Browserbase skill 来源 |
默认 GitHub tap(无需设置即可浏览):openai/skills、anthropics/skills、huggingface/skills、NVIDIA/skills、garrytan/gstack。claude-marketplace 来源已在 v0.20.0 中移除;在来源列表中由 browse-sh 取而代之。1155
安全扫描
所有通过 Hub 安装的 skill 都会经过安全扫描,检查数据外泄、提示词注入、破坏性命令、供应链风险信号及其他威胁。11
信任级别:11
| 级别 | 来源 | 策略 |
|---|---|---|
builtin |
随 Hermes 提供 | 始终信任 |
official |
仓库中的 optional-skills/ |
内置信任,不显示第三方警告 |
trusted |
可信注册表(openai/skills、anthropics/skills) |
采用更宽松的策略 |
community |
其他所有来源 | 可使用 --force 覆盖非危险发现;判定为 dangerous 时仍会阻止安装 |
--force 可覆盖 community skill 的非危险策略拦截,但无法覆盖安全扫描给出的 dangerous 判定。11
外部 skill 目录
可将 Hermes 指向其他 skill 目录,使其与本地目录一同接受扫描:11
skills:
external_dirs:
- ~/.agents/skills
- /home/shared/team-skills
- ${SKILLS_REPO}/skills
路径支持展开 ~,也支持替换 ${VAR} 环境变量。外部目录为只读——agent 创建或编辑 skill 时,始终写入 ~/.hermes/skills/。若两个位置存在同名 skill,则优先使用本地版本。11
固定加载的 skill:skills.auto_load(v0.21.4 阶段)
在 config.yaml 的 skills.auto_load 下列出的 skill 名称会被固定,并在每个新会话中完整加载——CLI、TUI、gateway、cron 和 API 均不例外:51
skills:
auto_load:
- team-conventions
- deploy-checklist
该列表只会解析一次,即首次构建 agent 提示词时。若名称不存在或已禁用,系统会发出警告并跳过,而不会导致会话失败。HERMES_IGNORE_RULES(--ignore-rules 背后的机制)会像处理其他自动注入的上下文一样禁用此列表。它是常驻指令对 -s/--skills 的补充;后者仅为单次会话预加载 skill。51
持久记忆
Hermes 具有容量受限且经过整理的记忆,可跨会话持久保留。代理的记忆由2个文件构成,均存储在~/.hermes/memories/中:12
| 文件 | 用途 | 字符限制 |
|---|---|---|
MEMORY.md |
代理的个人笔记——环境事实、约定和已掌握的信息 | 2,200个字符(约800个词元) |
USER.md |
用户资料——偏好、沟通风格和期望 | 1,375个字符(约500个词元) |
两者都会以会话开始时的冻结快照形式注入系统提示词。代理通过memory工具自行管理记忆,可执行add、replace或remove操作。12
冻结快照模式:系统提示词注入的内容只在会话开始时捕获一次,此后不会在会话期间发生变化。这是有意为之,旨在保留LLM的前缀缓存以提升性能。会话期间所做的更改会立即持久化到磁盘,但要到下次会话才会出现在系统提示词中。12
应保存的内容
保存以下内容(代理会主动执行):12
- 用户偏好:“相比JavaScript,我更喜欢TypeScript”→user
- 环境事实:“此服务器运行Debian 12和PostgreSQL 16”→memory
- 纠正信息:“执行Docker命令时不要使用sudo,用户已加入docker组”→memory
- 约定:“项目使用制表符、120字符行宽和Google风格文档字符串”→memory
- 已完成的工作:“已于2026年1月15日将数据库从MySQL迁移至PostgreSQL”→memory
跳过以下内容:12 - 琐碎或显而易见的信息 - 容易重新发现的事实 - 原始数据转储(对于记忆而言过大) - 仅与当前会话相关的临时信息 - 上下文文件中已有的信息
会话搜索
除了MEMORY.md和USER.md之外,代理还可使用session_search工具搜索过往对话。所有CLI和消息会话均存储在SQLite(~/.hermes/state.db)中,并支持FTS5全文搜索。自v0.15.0重新设计后,该工具完全不再涉及LLM——它会直接返回已存储的对话内容(原文表述为“single-shape tool returns DB content directly”)。因此,搜索速度提升了4,500倍,同时消除了API成本。125934
| 功能 | 持久记忆 | 会话搜索 |
|---|---|---|
| 容量 | 总计约1,300个词元 | 无限制(所有会话) |
| 速度 | 即时(位于系统提示词中) | 一次FTS查询——自v0.15.0起无需调用LLM |
| 使用场景 | 始终可用的关键信息 | 查找特定的过往对话 |
| 管理方式 | 由代理手动整理 | 自动——存储所有会话 |
| 词元成本 | 每个会话固定(约1,300个词元) | 按需产生 |
v0.21.4期间新增了2项功能,均已在标签v2026.9.21中验证。第一项是时间边界:发现参数接受after(会话开始时间的包含性下限)和before(排他性上限)。两者都可使用ISO日期/日期时间——仅提供日期时,表示当天UTC零点——也可使用相对时长(7d、24h、2w)。这些参数仅适用于明确指定时间范围的查询;sort仍只是排序偏置,而非边界。第二项是零结果召回重试:FTS5会在词项之间隐式使用AND,因此,经过改述的多词查询可能无法匹配缺少其中任意一个词的已存储句子。当精确查询和子字符串回退均无结果时,搜索会重试索引,匹配任意词项,并在排序时优先展示覆盖更多词项的行。已有命中仍保持精确匹配语义(仅在零结果时触发重试),显式使用OR/NOT的查询、单词查询和路由至CJK的查询则保持不变。51
外部记忆提供商
为了获得超越MEMORY.md和USER.md的深层持久记忆,Hermes 内置了7个外部记忆提供商插件:Honcho、OpenViking、Mem0、Holographic、RetainDB、ByteRover和Supermemory。Hindsight等更多插件可从插件目录安装。12
Hindsight 在v0.21.4及更早版本中随核心代码树提供,并于v0.21.5迁移至插件目录,由Vectorize维护。现有配置会自行迁移:如果设置了memory.provider: hindsight,hermes update会将目录中的插件安装到所有使用该配置的profile主目录;若仍未安装,代理首次启动时也会执行安装。若设置了security.allow_lazy_installs: false,代理启动流程只会记录一条消息,因此需要自行运行hermes plugins install hindsight。该插件将安装至~/.hermes/plugins/hindsight/,并添加到plugins.enabled;memory.provider、memory.hindsight.*、HINDSIGHT_API_KEY以及您的记忆数据均保持不变。可使用hermes memory status和hermes plugins list进行检查。hermes-agent[hindsight] pip extra已移除。53
外部提供商与内置记忆并行运行(绝不会取代它),并可增加知识图谱、语义搜索、自动事实提取和跨会话用户建模等能力:612
hermes memory setup # Pick a provider and configure it
hermes memory status # Check what's active
hermes memory off # Disable external provider (built-in only)
同一时间只能启用1个外部提供商。内置记忆始终处于启用状态。6
会话自动恢复(v0.13.0+)
v0.13.0使代理中途被中断后仍可继续运行。gateway 会在重启后自动恢复被中断的会话;通过/update重启时,会话状态可在升级期间得到保留;开发过程中重新加载源文件时,活动会话会继续保持,无需强制开启新会话。18实际效果是:进程重启后,长时间运行的gateway任务和由cron驱动的作业不再重置其上下文窗口。
Checkpoints v2(v0.13.0+)
v0.13.0将状态持久化重写为单一存储设计,具备真正的剪枝、磁盘防护机制,并且不再产生孤立的影子仓库。18旧版checkpoint系统会在长期运行的profile中不断累积磁盘状态;v2存储为本地checkpoint存储设置了明确上限,并移除了导致存储不断增长的重复记录机制。无需更改任何面向用户的配置;下次写入checkpoint时会自动使用v2路径。
个性与SOUL.md
SOUL.md是Hermes实例的核心身份。它占据系统提示词中的第1个插槽,取代硬编码的默认身份。13
Hermes 会自动在~/.hermes/SOUL.md(自定义profile则为$HERMES_HOME/SOUL.md)生成默认SOUL.md。现有用户文件绝不会被覆盖。Hermes 仅从HERMES_HOME加载SOUL.md,不会在当前工作目录中查找。由此可确保不同项目中的个性表现一致且可预测。13
SOUL.md中应包含的内容
用它定义持久的表达方式和个性指导:13 - 语气 - 沟通风格 - 直接程度 - 默认互动方式 - 在风格上应避免的内容 - Hermes 应如何处理不确定性、分歧和歧义
以下内容不太适合放在其中:13 - 一次性的项目指令 - 文件路径 - 仓库约定 - 临时工作流细节
这些内容应放在AGENTS.md中,而非SOUL.md。
SOUL.md与AGENTS.md
这是Hermes身份管理中最重要的区别:13
SOUL.md——身份、语气、风格、默认沟通方式和个性层面的行为。
AGENTS.md——项目架构、编码约定、工具偏好、仓库特定工作流、命令、端口、路径和部署说明。
一条实用原则是:如果某项内容应始终伴随您,就应放入SOUL.md;如果它只属于某个项目,则应放入AGENTS.md。13
内置个性
Hermes 内置了多种个性,可通过/personality切换:1333
| 名称 | 说明 |
|---|---|
helpful |
友好且通用的助手 |
concise |
简短直接的回答 |
technical |
详尽、准确的技术专家 |
creative |
创新且不拘一格的思考方式 |
teacher |
耐心讲解并提供清晰示例的教育者 |
kawaii |
可爱的表达、闪亮元素和热情洋溢的风格 |
catgirl |
使用猫系表达的Neko-chan |
pirate |
精通技术的海盗船长Hermes |
shakespeare |
充满戏剧色彩的莎士比亚式文风 |
surfer |
轻松随性的冲浪兄弟风格 |
noir |
冷硬派侦探式叙述 |
uwu |
大量使用uwu表达的极致可爱风格 |
philosopher |
对每个问题都进行深入思考 |
hype |
能量全开 |
在config.yaml中定义自定义个性:13
agent:
personalities:
codereviewer: >
You are a meticulous code reviewer. Identify bugs, security issues,
performance concerns, and unclear design choices. Be precise and constructive.
然后使用/personality codereviewer切换。
SOUL.md与/personality
SOUL.md是基础表达风格,/personality则是会话级叠加层。13建议保持务实的默认SOUL.md,然后在辅导对话中使用/personality teacher,或在集思广益时使用/personality creative。
Nous Tool Gateway(v0.10.0+)
自 Hermes Agent v0.10.0(2026年4月16日)起,付费 Nous Portal 订阅用户可使用现有 Portal 凭据,通过托管方式访问一组精选工具,无需管理额外的 API 密钥。61 Hermes CLI 本身仍采用 MIT 许可证,并完全开源。变化在于,如今通过 Portal 身份验证不仅可以使用模型推理,还能解锁更多功能。
最快的使用方式是运行 hermes setup --portal。README 将其称为“全新安装后只需一条命令”:它会通过 OAuth 为您登录,将 Nous 设置为提供商,并启用 Tool Gateway。此后,可通过 hermes portal 管理相关设置。hermes portal login(未提供子命令时的默认操作)会执行同样的一站式引导流程;hermes portal info 会输出“Portal 身份验证 + Tool Gateway 路由摘要”;hermes portal open 会在默认浏览器中打开订阅页面;hermes portal tools 会列出 gateway 工具,并标明哪些工具通过 Nous 路由。hermes portal status 仍作为 info 的隐藏向后兼容别名保留,而且该标签下文档的 CLI 参考信息仍将子命令写作 status,因此两者均可使用。28
gateway 中包含哪些工具
| 工具 | 提供商 | 用途 |
|---|---|---|
| Web 搜索 | Firecrawl | 为需要最新信息的 agent 检索内容 |
| 图像生成 | FAL / FLUX 2 Pro | 无需配置 FAL 密钥即可内联生成图像 |
| 文本转语音 | OpenAI TTS | 在消息 gateway 中提供语音输出 |
| 浏览器自动化 | Browser Use | 无头浏览与抓取 |
工作原理
gateway 通过新增的 use_gateway 配置字段,按工具分别选择启用。如果 hermes auth 中已有 Portal 凭据,并且为某个工具启用了 gateway,该工具的调用就会通过 Portal 路由。否则,将使用您的直接 API 密钥(如果已配置)。
# config.yaml — per-tool gateway opt-in
tools:
web_search:
provider: firecrawl
use_gateway: true # route via Nous Portal subscription
image_generation:
provider: fal
use_gateway: true
运行时优先级:当 gateway 可用且某个工具设置了 use_gateway: true 时,即使同时配置了直接 API 密钥,Hermes 也会优先使用 gateway。这会影响计费:gateway 调用会消耗 Portal 订阅额度,而不是直接 API 密钥的余额。
启用 gateway
hermes model # select Nous Portal (OAuth flow)
hermes tools # per-platform tool picker integrates gateway tools
hermes status # confirms gateway/subscription detection
系统会根据 hermes auth 中已有的 Portal OAuth 凭据自动检测订阅,无需单独登录。自 v0.19.0 起,还可以直接在会话中管理订阅:/subscription 会显示套餐和剩余额度,准确预览升级费用或降级生效时间,并在显示计划变更横幅及提供撤销功能的情况下应用更改;/topup 可用于充值。桌面应用中也提供了对应的账单设置标签页。56
定价与访问权限
价格和套餐名称发布在 Nous Portal 定价页面(https://portal.nousresearch.com/pricing)。本指南不逐一列出套餐,因为这些内容由 Portal 产品负责,而非 Hermes CLI,并且可能独立于 Hermes 版本发生变化。请前往 https://portal.nousresearch.com/ 注册,并查看定价页面了解当前套餐。
Nous 免费套餐与首次启动引导(v0.21.2+)
自 v0.21.2 起,全新安装无需付费套餐或 API 密钥即可获得可正常工作的 agent:开箱即用地提供免费推理和连接器,只需一条命令即可登录;也可在聊天中通过 /login 开始登录。连接器工具(Gmail、Linear、Notion 等)与其他工具一样,可以通过 tool_search 搜索。桌面端还提供由 HERMES_GUEST_ONBOARDING=1 控制的首次启动引导;只有字面值 1 才会启用。桌面端自身的测试明确断言,'true'、'0' 和空值均会保持禁用状态;启动决策还会写入所生成后端进程的环境,确保继承的值不会意外传入。48
自 v0.21.4 发布周期起,连接这些连接器已统一为由后端负责的一项操作,不再由各前端分散处理:一次 manage_connections 工具调用会驱动后端的纯数据连接状态机(操作期限固定为 300 秒,特意不设为配置键),Desktop、TUI 和 CLI 都会将其呈现为相同的设置卡片。该卡片会为每项缺失的凭据显示一个字段(名称、提示、是否必填),并在所有必填字段均有内容后才启用操作按钮;后端则会在每个前端强制执行相同的“仅限机密信息”隔离规则。51
弃用通知
HERMES_ENABLE_NOUS_MANAGED_TOOLS环境变量已在 v0.10.0 中移除。现在,托管工具通过各工具的use_gateway配置字段启用,并根据您的 Portal 订阅状态决定是否可用。61
定位:此版本不是什么
Hermes Agent CLI 并未设置订阅门槛。该项目仍采用 MIT 许可证;所有核心功能(CLI、skills、内存、消息 gateway、cron、MCP、本地仪表板,以及所有提供商的 BYOK)均可端到端使用,无需向任何一方付费。v0.10.0 只是为已付费订阅 Nous Portal 的用户增加了一条便捷路径,并未从免费使用路径中移除任何内容。
消息 gateway
Hermes 可作为长期运行的 gateway 进程,通过单个 gateway 进程连接28 个消息平台:Telegram、Discord、Slack、WhatsApp、Signal、短信、电子邮件、Home Assistant、Mattermost、Matrix、DingTalk、Feishu/Lark、WeCom、Weixin(WeChat)、BlueBubbles(iMessage)、QQBot、Microsoft Teams、Tencent Yuanbao、Google Chat、LINE、SimpleX Chat、Photon(iMessage)、WhatsApp Cloud API、WeCom Callback、Raft、IRC、ntfy、Buzz,以及通用 Webhook 适配器。360171819 这里的 28 来自标签 v2026.8.31 文档中的平台比较表;而在底层,gateway/config.py 定义了 24 个内置 Platform 枚举成员(包括 local、api_server、webhook、msgraph_webhook 和 relay 等非聊天条目),并会按需将其他任何名称解析到 plugins/platforms/ 下捆绑的 22 个适配器目录之一。因此,仅统计枚举成员或目录数量都不会与文档中的数字一致。25 v0.9.0 通过 BlueBubbles 增加了 iMessage 支持(自动注册 Webhook、设置向导和崩溃恢复能力),还通过 iLink Bot API 增加了原生 WeChat 支持,并为企业应用提供 WeCom 回调模式。16 v0.11.0 增加了 QQBot。60 v0.12.0 增加了 Microsoft Teams 和 Tencent Yuanbao。17 v0.13.0 增加了作为第 20 个平台的 Google Chat,沿用同一套可插拔适配器架构;IRC 和 Microsoft Teams 也迁移到了新的适配器模式,并采用通用的 env_enablement_fn / cron_deliver_env_var 插件钩子。18 v0.14.0 增加了 LINE 和 SimpleX Chat,并通过 Graph 身份验证、Webhook 监听器、流水线运行时和出站投递,端到端完善了 Microsoft Teams 技术栈。19 v0.17.0(2026年6月19日)通过 Photon Spectrum 增加了无需中继的 iMessage(使用 hermes photon login 进行设备代码 OAuth,无需 Mac/BlueBubbles 中继)、官方 WhatsApp Business Cloud API 适配器(不再需要桥接进程)、SimpleX 群组和原生附件,以及作为捆绑平台插件的 Raft。21 文档表格中还有两个平台未在发行说明中大张旗鼓地提及:ntfy 是一种轻量级 HTTP 发布-订阅推送渠道(在 ntfy 移动应用中订阅主题,向该主题发送消息即可与 agent 对话,并在手机上收到回复;既可使用公共 ntfy.sh 服务器,也可使用自行托管的实例,无需 SDK 或守护进程);Buzz 则将 Hermes 连接到 Buzz 社区。Buzz 是 Block 基于 Nostr 协议打造的开源人机协作平台,出站消息通过调用 buzz CLI 发送,入站消息则使用原生 Nostr WebSocket 订阅。这两者均通过 hermes gateway setup 配置。25
设置
hermes gateway setup # Interactive platform configuration
hermes gateway install # Install as user service (systemd/launchd)
hermes gateway start # Start the installed service
hermes gateway stop
hermes gateway restart
hermes gateway status
hermes gateway run # Run in foreground (debugging)
交互式设置会引导您连接各个平台,包括配置 API 令牌、机器人 ID、频道映射和允许列表。6
消息流转方式
根据上游架构文档:3
Platform event → Adapter.on_message() → MessageEvent
→ GatewayRunner._handle_message()
→ authorize user
→ resolve session key
→ create AIAgent with session history
→ AIAgent.run_conversation()
→ deliver response back through adapter
每个消息平台都使用与 CLI 相同的 AIAgent 对话循环。 因此,斜杠命令在两处的工作方式完全一致;在 Telegram 中安排的 cron 任务也能将输出投递到 Discord,因为平台之间的差异仅存在于边缘接入层。3
v0.19.0 增加了基于 profile 的消息路由和持久化投递。 共享同一机器人令牌的单个多路复用 gateway,可以将特定服务器、频道或线程路由到不同的 profile。每个 profile 的配置、skills、内存和密钥均完全隔离;同时还可通过 GATEWAY_MULTIPLEX_PROFILES 覆盖设置。经过一轮加固后,单个 profile 配置错误也不再会拖垮整个 gateway。在底层,路由索引已迁移到 state.db(sessions.json 现在只是可选的旧版镜像);最终响应会围绕平台发送操作记录在持久化的投递义务账本中。如果 gateway 在答案生成完毕后崩溃,该答案会在下次启动时重新投递,而不会悄无声息地丢失。56 v0.21.2 进一步加强了路由 profile 之间的隔离,修复了这种多路复用设置中的一系列跨 profile 泄漏问题:继承的允许列表、发送到默认 profile 主机的凭据、默认 profile 的保管库密钥传入 stdio MCP 服务器、跨 profile 的 MEDIA: 附件,以及同级 profile 的 Nous bearer 残留在进程级备忘缓存中(#107609-#107630)。48
v0.21.1 将对话边界改为只能显式创建。 标签 v2026.9.7 的会话生命周期文档用四句话明确了这一约定:“空闲状态和现实时间流逝永远不会轮换对话。/new 和 /reset 会创建显式边界;上下文压缩会继续管理较长的历史记录。旧版计时器配置将被忽略。现有的 SessionResetPolicy 数据类型只是无运行时作用的兼容性数据,而非运行时策略。”显式暂停仍会在下一次入站消息到来时创建边界;恢复操作会遵循已经最终确定的边界,而不会重新打开对话;仅因资源限制而进行的淘汰仍允许恢复对话。如果 gateway 上的某个会话看起来“永不过期”,这正是当前的设计;请自行使用 /new 轮换会话。43
从 v0.21.4 时期开始,第二个 hermes gateway run 会附加到现有进程或拒绝运行,而不会重复绑定。 规则是:每个主机上的每个操作系统用户只能运行一个 hermes serve 和一个 hermes gateway run,且两者都会多路复用所有 profile。若为运行中的多路复用器已经提供服务的 profile 启动 gateway,该命令只会附加后以状态码 0 退出;如果该多路复用器尚未为这个 profile 提供服务,Hermes 会要求它重新扫描 profiles/,待其开始提供服务后再附加;如果无法使其为该 profile 提供服务,命令将拒绝运行,而不会静默启动第二个 gateway。--replace 现在以该主机进程为目标,无论它由哪个 profile 启动;当所有者进程卡死时,--force 会完全跳过询问。独立 gateway 仍可共存:如果正在运行的 gateway 是另一个 profile 的独立(非多路复用)实例,您的 profile 会像以前一样在其旁边启动自己的实例,直到强制执行该迁移(#109417)。如果两个 gateway 同时启动,未能获得主机锁的进程会以状态码 75 退出,Hermes 生成的所有监督程序都会重试;届时,胜出进程的记录已存在,因此重试进程会按照上述规则附加或拒绝运行。锁和会合记录位于 $HERMES_GATEWAY_LOCK_DIR 下;若未设置,则位于 $XDG_STATE_HOME/hermes/gateway-locks(默认为 ~/.local/state/hermes/gateway-locks),并限定在操作系统用户范围内。如果记录中的 PID 已终止或已被其他进程复用,该记录会被视为过期并忽略,因此 gateway 崩溃不会阻止下一次启动。Desktop 应用遵循同样的规则:它会附加到正在运行的主机后端,而不会生成第二个后端。51
从 v0.21.5 起,多路复用不再是可选项。 gateway.multiplex_profiles 只有一个有效值:true。未设置该键时,它会解析为启用状态,并写入默认 profile 的 config.yaml;如果显式设置为 false,系统会直接将其改写为 true,并在该 gateway 启动时显示一次带边框的通知,随后在下一次 hermes update 摘要中再次提示。现在由两个控制项取代旧的退出选项。若要在不停止其他所有人机器人的情况下让某个 profile 离线,请运行 hermes -p <name> gateway stop:主机会将其停放(创建 profiles/<name>/gateway.parked 标记),而 hermes -p <name> gateway start 会解除停放;dashboard 和 Desktop 的停止/启动按钮执行相同操作。若命名 profile 仍需自己的 gateway,请在其 config.yaml 中设置 gateway.standalone: true;主机永远不会为它提供服务,其 stop/start 命令会作用于自己的进程。文档将此键称为“临时兼容性垫片”,而非受支持的拓扑;在默认 profile 上设置时,该键会被忽略并触发警告。如果拆分到不同的操作系统用户,或使用默认主目录 profiles/ 之外的 HERMES_HOME,仍需使用 --force。53
用户授权与配对
hermes pairing list # Show pending and approved users
hermes pairing approve <platform> <code>
hermes pairing revoke <platform> <user-id>
hermes pairing clear-pending
配对码可防止陌生人随意与您的 gateway 对话。用户从其消息平台发送配对码;您使用 hermes pairing approve 批准后,该用户便获得授权。6
unauthorized_dm_behavior 决定陌生人的私信在配对前会得到何种处理:pair 会通过私信发送配对码,ignore 会静默丢弃消息,而在 v0.21.4 时期增加的 decline 会礼貌拒绝一次,随后对该发送者保持静默 24 小时(#88028)。拒绝消息会基于平台和发送者去重,并覆盖别名;其文本来自 unauthorized_dm_decline_message(全局键;留空表示使用内置回复:“您好!我是私人助理,只能与我的主人交流,因此无法直接帮助您。抱歉!”)。可设置全局行为,也可针对设置向导写入配置的各个平台单独设置:
# ~/.hermes/config.yaml
unauthorized_dm_behavior: decline # global; gateway.unauthorized_dm_behavior also works
unauthorized_dm_decline_message: "" # empty = built-in reply
platforms:
telegram:
unauthorized_dm_behavior: pair # per-platform value always wins
未设置任何值时,实际默认行为取决于允许列表。如果未配置任何允许列表,则默认值为 pair;一旦设置了任意允许列表(GATEWAY_ALLOWED_USERS,或某个平台的允许用户、群组允许用户或群组允许聊天变量),默认值就会变为 ignore。这是因为允许列表表明 gateway 受到了有意限制,向未知联系人发送配对码既会造成干扰,也可能导致信息泄漏(#9337)。全局 ignore 或 decline 可以覆盖这条规则,但全局 pair 不行,因为它与默认值无法区分;若要在使用允许列表的同时保留配对功能,请针对具体平台设置 pair。(如果平台适配器自身设置了 dm_policy,则会在允许列表规则之前参考该策略。)电子邮件采用收件箱模式,默认值为 ignore,除非通过其平台专属键明确启用;全局值不会应用到电子邮件。使用 hermes gateway setup 配置未设置允许列表的平台时,向导会将拒绝行为作为选项之一。51
定时任务(Cron)
Hermes提供一套一流的cron系统,其中的作业是agent任务,而非shell命令。每个定时作业都会通过全新的AIAgent运行,使用已配置的提示词和可选的附加skill,并将结果发送到任意平台:36
hermes cron list
hermes cron create --prompt "Check HN for AI news and summarize" --schedule "0 9 * * *" --deliver telegram
hermes cron edit <id>
hermes cron pause <id>
hermes cron resume <id>
hermes cron run <id> # Trigger now on the next tick
hermes cron remove <id>
hermes cron status # Check if scheduler is running
hermes cron tick # Run due jobs once and exit
也可以在消息聊天中通过对话方式创建:
Every morning at 9am, check Hacker News for AI news and send me a summary on Telegram.
agent会通过自身工具设置cron作业。作业会持久保存在JSON中,并可在重启后继续运行。3
v0.21.0赋予定时作业记忆与判断能力。 共有4种机制,均已在标签v2026.8.31中验证:3537
- 连续性。
continuity=true会将作业自身最近一次的输出注入每次运行,使侦察或监控任务“唤醒时能看到上次报告的内容,从而去重并接着此前的进度继续执行”——注入的指引是“避免重复已经报告过的内容”;首次运行不受影响;在内部,该标志以保留的self条目存储在context_from中。可通过hermes cron create ... --continuity以及hermes cron edit <job_id> --continuity/--no-continuity切换此功能。37 - 持久化记事本。 每个作业都会获得一个小型KV暂存区,用于保存游标、水位标记和监视列表(每个值上限16 KB,每个作业上限64 KB——每次运行都会将其注入提示词,因此这些限制是有意为之)。可通过
hermes cron notepad <job_id> set <key> <value>写入,运行中的agent会借助其终端工具调用此命令。37 - 监控模式。 作业可以附加一个低成本的
monitor_script/monitor_url源,并在每个周期开始时优先运行:如果输出没有变化(按精确字节比较),则完全跳过agent运行——不会调用LLM、不会发送结果,只记录一次静默的no_change运行;如果检测到变化,则注入差异块并正常运行agent。监控脚本应输出稳定内容,否则每个周期都会被视为发生了变化。37 - 按作业设置推理强度,并发送至Bot Chat。
--reasoning-effort会固定某个作业的思考级别(从none到ultra),覆盖该作业运行时的全局及按模型设置;deliver=bot-chat则会将输出作为真实传入消息送达某个profile的规范Bot Chat会话,让机器人“处理一切需要执行的事项,并在聊天中作出响应”,而不是仅由用户在频道中阅读。37
MCP集成
Hermes既可作为客户端,也可作为服务器支持Model Context Protocol:6
作为客户端——将Hermes连接到外部MCP服务器,以扩展其工具范围:
hermes mcp add <name> --url https://example.com/mcp
hermes mcp add <name> --command npx --args "-y,@modelcontextprotocol/server-github"
hermes mcp list
hermes mcp test <name>
hermes mcp remove <name>
hermes mcp configure <name> # Toggle individual tool selection
hermes mcp login <name> # Force re-auth for an OAuth server (--flow browser|device)
hermes mcp reauth [--all] # Re-authenticate one OAuth server, or every one
也可以在config.yaml中手动配置:14
mcp_servers:
github:
command: npx
args: ["-y", "@modelcontextprotocol/server-github"]
env:
GITHUB_PERSONAL_ACCESS_TOKEN: "ghp_xxx"
自v0.19.0起,MCP工具按照mcp__server__tool命名约定向模型公开——每个工具名称都会包含其服务器名称,因此两个服务器提供同名工具时不再发生冲突——同时,MCP服务器的日志通知也会显示在agent.log中。56
v0.21.1为MCP OAuth新增了设备代码流程:hermes mcp login <name>接受--flow {browser,device}——browser是现有的PKCE流程,device是适用于无头或远程计算机的RFC 8628设备代码登录流程——该标志会覆盖服务器的oauth.flow配置。同一版本还会在整个OAuth会话期间强制执行profile所有权检查;遇到格式错误的OAuth元数据缓存时会予以忽略,避免服务器卡死;并通过客户端本地回调中继桌面端MCP OAuth。现在,-t/--toolsets还会筛选需要启动的已配置MCP服务器,使限定范围的调用无需冷启动无关服务器。44
v0.21.0将桌面端的MCP界面升级为命令中心:服务器与目录合并到同一个页面;支持拖入式“粘贴任意内容”导入;后台健康检查可在工具调用失败前提示身份验证即将过期;群组成本/用量叠加层会显示每台服务器的架构token估算值及30天用量;hermes://深层链接则可在明确确认后安装MCP服务器。35
v0.21.4版本周期新增了mcp.discovery_concurrency(默认值为4;0表示不受限制,#117373),用于限制发现流程同时连接的已配置MCP服务器数量。所有服务器仍会建立连接——该限制仅用于避免它们同时发起连接——如果值不是整数或为负数,系统会记录警告并回退到默认值。51
作为服务器——向其他agent公开Hermes对话:
hermes mcp serve
hermes mcp serve -v # Verbose
上下文压缩
Hermes会自动压缩过长的对话,使其保持在模型的上下文窗口之内。压缩摘要器会单独调用一次LLM——您可以将其指向任意提供商或端点。4 自v0.20.6起,保留尾部策略默认为精简(compression.tail_mode: lean);在该标签中,摘要器的模型、提供商和端点选项位于auxiliary.compression.*下,而非旧版的compression.summary_*。旧配置键会在首次加载时自动迁移(配置版本17)。3031
compression:
enabled: true
threshold: 0.50 # Compress at this % of context limit
threshold_tokens: null # Optional absolute token cap -- trigger fires at the lower of ratio vs cap
target_ratio: 0.20 # Fraction of threshold to preserve as recent tail (legacy tail mode)
tail_mode: lean # Tail retention: "lean" (default) or "legacy"
protect_last_n: 20 # Min recent messages to keep uncompressed
protect_first_n: 3 # Non-system head messages pinned across compactions
auxiliary:
compression:
model: "" # Empty = main chat model; e.g. "google/gemini-3-flash-preview"
provider: "auto" # "auto", "openrouter", "nous", "codex", "main", etc.
base_url: null # Custom OpenAI-compatible endpoint (overrides provider)
tail_mode的作用。 legacy会保留由target_ratio决定大小的原样尾部——在大窗口或提高阈值的配置中,每次压缩都会因此囤积100–240K个token。lean则保留经过限制的原样尾部,其大小为上下文窗口的2.5%(下限10K,上限25K),并改由摘要维持连续性:为已压缩区域生成详细且保留标识符的会话日志(每次尝试调用一次辅助摘要器);通过机械方式提取锚点索引(PR编号、SHA、路径、错误字符串——使用正则表达式,绝不改述);逐字引用每条真实用户消息;并提供session_search恢复指针,使agent能够重新访问摘要中省略的任何内容。文档对500K token真实会话的测量结果显示:保留约49K个token,而非约162K个。精简尾部中的旧工具结果会降级为包含恢复指针的单行存根,未知的tail_mode值则会回退到lean。31
auxiliary.compression.provider |
auxiliary.compression.base_url |
结果 |
|---|---|---|
auto(默认) |
未设置 | 自动检测最佳可用提供商 |
nous/openrouter/其他 |
未设置 | 强制使用该提供商及其身份验证 |
| 任意值 | 已设置 | 直接使用自定义端点(忽略提供商) |
摘要模型支持的上下文长度必须至少与主模型相同,因为它会在一次调用中接收对话的完整中间部分——如果摘要模型的窗口较小,调用将失败,中间轮次也会在没有摘要的情况下被丢弃。431
预算压力警告
当agent执行包含大量工具调用的复杂任务时,可能会在未察觉的情况下耗尽迭代预算(自v0.20.0起默认为500轮,此前为90轮)。预算压力机制会自动向模型发出警告:4
| 阈值 | 级别 | 模型看到的内容 |
|---|---|---|
| 70% | 注意 | [BUDGET: 350/500. 150 iterations left. Start consolidating.] |
| 90% | 警告 | [BUDGET WARNING: 450/500. Only 50 left. Respond NOW.] |
流式传输超时
LLM流式连接设有两层超时机制,并会针对本地提供商(localhost、局域网IP)自动调整:4
| 超时类型 | 默认值 | 本地提供商 | 环境变量 |
|---|---|---|---|
| 套接字读取超时 | 120秒 | 自动提高至1800秒 | HERMES_STREAM_READ_TIMEOUT |
| 停滞流检测 | 180秒 | 自动禁用 | HERMES_STREAM_STALE_TIMEOUT |
| API调用(非流式) | 1800秒 | 不变 | HERMES_API_TIMEOUT |
本地端点的套接字读取超时会提高至30分钟,因为本地LLM在处理大型上下文时,可能需要数分钟完成预填充,之后才会生成首个token。4
本地Web控制面板(v0.9.0及更高版本)
这是一个基于浏览器的控制面板,用于在本地管理Hermes Agent。无需修改配置文件或使用终端,即可配置设置、监控会话、浏览skill并管理gateway。16 使用hermes dashboard启动。对于偏好GUI的新用户而言,这是最简便的上手方式。
后台进程监控(v0.9.0+)
watch_patterns允许您设置模式来监控后台进程输出,并在匹配时实时收到通知。16无须轮询,即可监控错误、等待特定事件(“正在监听端口”),或查看构建日志。结合v0.8.0中用于在后台任务完成时发出通知的notify_on_complete,Hermes现在具备了完整的后台进程可观测层。15
可插拔Context Engine(v0.9.0+)
现在可通过hermes plugins将上下文管理用作可插拔插槽。您可以换用自定义context engine,控制agent在每轮中看到的内容,包括过滤、摘要或注入特定领域的上下文。16这将上下文策略与核心agent循环解耦,支持针对不同项目或领域自定义上下文。
备份与恢复(v0.9.0+)
hermes backup会为您的配置、会话、skills和memory创建完整归档。hermes import则从备份归档中恢复这些内容。16您可以借此在不同设备间迁移、在重大变更前创建快照,或与团队成员共享经过验证的配置。
Termux / Android支持(v0.9.0+)
Hermes可通过Termux在Android上原生运行。经过调整的安装路径、面向移动屏幕的TUI优化、语音后端支持以及/image命令均可在设备端使用。16
安全加固(v0.13.0+)
v0.13.0修复了8个P0安全问题,并将一项默认设置改为更有利于用户的选项。18随后发布的v0.14.0又修复了12个P0和50个P1问题,包括防范sudo暴力破解、加固sudo标准输入、修复危险命令绕过问题、在工具错误重新注入模型前进行清理、为仪表板插件API添加身份验证、完善skills-hub的SSRF防护,以及在安装期间扫描供应链安全公告。19
| 修复项 | 变更内容 |
|---|---|
| 默认启用敏感信息遮盖 | 此前需要选择启用。现在,除非明确禁用,否则日志和hermes debug share上传内容都会遮盖敏感信息。v0.12.0曾因收到载荷损坏报告而默认禁用遮盖;v0.13.0将其重新启用,作为更安全的基准设置。 |
| Discord跨guild私信绕过(CVSS 8.1) | Discord角色允许列表现在限定在guild范围内,从而封堵了这样一条路径:用户在某个guild中的角色可授权其跨所有guild发送私信。 |
| WhatsApp默认限制 | WhatsApp适配器默认拒绝陌生人,并且绝不会在与自己的聊天中回复。 |
| MCP OAuth TOCTOU窗口 | 修复了MCP OAuth流程在保存凭据期间存在的竞态条件。 |
CLI auth.json TOCTOU |
修复了CLI身份验证存储的凭据写入程序中类似的TOCTOU窗口。 |
| 浏览器SSRF防护底线 | 混合路由会强制执行云元数据SSRF防护底线,阻止尝试访问169.254.169.254及其等效地址的请求。 |
| Cron提示词注入扫描 | cron作业运行前,会扫描组装后的提示词(包括加载的skill内容),检查是否存在提示词注入。 |
hermes debug share内容遮盖 |
上传调试共享内容时会遮盖日志内容,而不只是在写入时处理。 |
如果您维护Hermes部署,应将v0.13.0和v0.14.0视为与安全相关的升级,而非普通的功能更新。v0.13.0修复了Discord跨guild绕过问题和两个TOCTOU窗口;v0.14.0则进一步加固了sudo处理、工具错误重新注入、插件API、skills-hub的SSRF防护以及依赖项安全公告检查。
v0.21.0带来了第四轮安全加固。现在,写入受保护的agent指令文件——AGENTS.md、CLAUDE.md、SOUL.md、.cursorrules、skills和memory存储——始终需要获得批准,因此遭到提示词注入的agent无法悄然改写自身的长期指令。该防护默认启用(security.protected_instruction_files: true,并通过protected_instruction_extra_patterns中的fnmatch基本名称扩展列表进行扩展)。源代码还明确指出了其所阻断的攻击方式:“通过注入的指令编辑AGENTS.md / CLAUDE.md / SOUL.md”,并强调指令文件会从cwd目录树中加载,因此“agent日后可能运行所在位置中的任何AGENTS.md都是现实攻击目标”。3539同一版本还修复了终端错误、.env文件读取、checkpoint和ACP日志中的敏感信息泄露缺口;让审批系统能够识别Windows上的破坏性命令和路径;通过稳定的TCC签名身份,使macOS权限授权在更新后依然有效(一次性设置:hermes desktop --setup-tcc-identity,仅适用于macOS,需要openssl/security/codesign);在上游遭到入侵后移除了Blender MCP目录条目及其skill;并为插件安装增加了Tier-1安全扫描。3539
面向实践者的架构
本节适合希望了解底层运行机制,以便进行调试、扩展或分析性能的读者。内容综合整理自上游架构文档。3
入口点 → AIAgent
Hermes 的每个入口点最终都会调用 AIAgent.run_conversation():
┌──────────────────────────────────────────────────────────────────┐
│ Entry Points │
│ │
│ CLI (cli.py) Gateway (gateway/run.py) ACP (acp_adapter/) │
│ Batch Runner API Server Python Library │
└──────────┬──────────────┬───────────────────────┬────────────────┘
│ │ │
▼ ▼ ▼
┌──────────────────────────────────────────────────────────────────┐
│ AIAgent (run_agent.py) │
│ │
│ ┌─────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ Prompt │ │ Provider │ │ Tool │ │
│ │ Builder │ │ Resolution │ │ Dispatch │ │
│ └──────┬──────┘ └──────┬───────┘ └──────┬───────┘ │
│ │ │ │ │
│ ┌──────┴───────┐ ┌──────┴───────┐ ┌──────┴───────┐ │
│ │ Compression │ │ 3 API Modes │ │ Tool Registry│ │
│ │ & Caching │ │ chat_compl │ │ 47 tools │ │
│ │ │ │ codex_resp │ │ 20 toolsets │ │
│ │ │ │ anthropic │ │ │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
└──────────────────────────────────────────────────────────────────┘
示意图改编自上游架构文档。3
横幅中的“47 个工具/20 个 toolset”与“28 个工具”。“47 个工具”是上游代码仓库中工具注册表的总数,即 Hermes 随源代码提供的所有 toolset 中的全部工具。实际运行的 CLI 会在启动横幅中显示一个较小的数字(我用于验证本指南的安装环境显示 28 tools / 89 skills)。这并非错误。许多 toolset 需要主动启用,并且必须在 config.yaml 的 toolsets: 下显式配置,例如消息平台适配器、浏览器自动化和资源消耗较大的抓取工具等。注册表总数表示“有哪些工具可用”,横幅中的数字则表示“当前 profile 启用了哪些工具”。可使用 hermes tools --list 查看已启用的 toolset,并通过 ~/.hermes/config.yaml 中的 toolsets: 块启用或禁用单个 toolset(也可以在运行中的会话内使用 /tools list、/tools enable <name> 或 /tools disable <name>;移除工具会触发会话重置,以便代理重新构建其工具清单)。
3 种 API 模式
Hermes 将不同提供商之间的差异抽象为 3 种 API 模式,并在运行时自动选择:3
| API 模式 | 使用方 |
|---|---|
chat_completions |
OpenRouter、z.ai、Kimi、MiniMax、DeepSeek、Alibaba、大多数自定义端点,以及任何与 OpenAI 兼容的服务器 |
codex_responses |
OpenAI Codex(通过 ChatGPT OAuth) |
anthropic_messages |
Anthropic API(原生)、Anthropic OAuth、兼容 Anthropic 的代理 |
runtime_provider.py 解析器会将 (provider, model) 元组映射为 (api_mode, api_key, base_url),支持 18 个以上的提供商,并负责处理 OAuth 流程、凭据池和别名解析。3
CLI 会话中的数据流
User input → HermesCLI.process_input()
→ AIAgent.run_conversation()
→ agent.prompt_builder.build_system_prompt()
→ runtime_provider.resolve_runtime_provider()
→ API call (chat_completions / codex_responses / anthropic_messages)
→ tool_calls? → model_tools.handle_function_call() → loop
→ final response → display → save to SessionDB
源自上游架构页面。3
提示词组装顺序
提示词栈包括:13
SOUL.md(代理身份;若不可用,则使用内置后备内容)- 根据工具提供的行为指导
- 记忆与用户上下文(
MEMORY.md、USER.md) - Skills 指导
- 上下文文件(
AGENTS.md、.cursorrules) - 时间戳
- 特定平台的格式提示
- 可选的系统提示词叠加层,例如
/personality
SOUL.md 是基础,其他所有内容都构建于其上。13
会话存储
基于 SQLite 的会话存储,支持 FTS5 全文搜索。会话具备谱系跟踪功能(记录压缩前后的父子关系)、按平台隔离,并采用带争用处理的原子写入。3
如果 v0.21.x 安装中的存储出现问题,请升级至 v0.21.2 或更高版本:该版本解决了 v0.21.0 时期的一系列 state.db 脆弱性问题,包括后启动的写入进程相互取消对方的锁、正常数据库被误报为损坏,以及单条异常记录导致 sessions list 整体失败。它还将托管房间的协调状态从根存储迁移至专用的 shared-state.db,因此 profile gateway 不再以可写方式打开主会话存储。现在,hermes doctor 会分别指出结构损坏和 FTS 索引损坏;FTS 损坏只会导致搜索功能降级,而不会使当前轮次失败。hermes sessions recover --inspect-only(离线、非破坏性、固定到指定 profile)则会报告规范表的可读性,且不会创建输出数据库——该子命令早已存在,只是此前未在此处记录。请参阅《v0.21.2 的新增功能》。48 对于停留在错误 SQLite 日志模式的存储,v0.21.4 发布周期新增了离线转换器 hermes sessions set-journal-mode delete|wal(请参阅顶层命令中的 hermes sessions 行)。51
插件系统
插件有 3 个发现来源:~/.hermes/plugins/(用户)、.hermes/plugins/(项目)和 pip 入口点。插件通过上下文 API 注册工具、钩子和 CLI 命令。内存提供程序是一类特殊插件,位于 plugins/memory/ 下。3 从 v0.21.2 起,系统还提供了一个精选的 SHA 固定插件目录,可按名称浏览和安装插件;同时新增 hermes plugins pack,用于创建“声明式、可共享的插件集合”:通过单个 hermes-pack.yaml 将一组插件固定到确切的提交 SHA。安装该集合时会分别执行常规的固定版本安装,而功能授权仍由每个插件单独确认。48
v0.21.4 发布周期将该目录从 CLI 界面扩展为随产品交付的构件。代码仓库中的 plugin-catalog/ 目录从 v2026.9.14 的 9 个条目增加到 v2026.9.21 的 228 个条目——每个插件对应一份经过审核的 YAML(包含名称、代码仓库、维护者、等级、类别和功能),固定到一个确切的 40 字符提交 SHA;存在于该目录中即表示获准收录。这些数据会发布为供 CLI 使用的 plugin-catalog.json(实时获取并缓存在 ~/.hermes/cache/ 下)。文档网站现在会根据同一份数据,为每个插件(/docs/plugins/<name>)和每位作者(/docs/plugins/by/<slug>)生成页面。每个页面都会呈现从固定提交而非分支最新版本获取的插件 README,并通过构建时白名单剔除原始 HTML;新增和更新排序所用的时间戳来自提交者日期。v0.21.4 发行说明中提及的 10 个社区插件,在该标签下均已收录于目录,并使用其实际目录 slug:hermes-tailscale、hermes-ssh、shodan、hermes-terminal、hermes-rss(另有独立的 rss-reader)、hermes-resetwatch、done-bell、kiwi、cognee 和 web-octen。在桌面端,Plugins 中心现在可以通过确认对话框卸载插件——目录插件通过 plugins.manage remove 卸载,独立桌面插件则通过 Electron 加载器卸载。51
hermes plugins # Interactive enable/disable UI
hermes plugins browse # List every curated plugin catalog entry (v0.21.2+)
hermes plugins search <query> # Search the curated plugin catalog (v0.21.2+)
hermes plugins install <name|repo> # Install from the curated catalog, a Git URL, or owner/repo
hermes plugins enable <name>
hermes plugins disable <name>
hermes plugins list
hermes plugins pack install <src> # Shareable SHA-pinned plugin sets; also: pack export, pack show (v0.21.2+)
兼容期(v0.21.1)现已结束:外部插件必须在 2026年9月14日之前迁离拆分前的导入路径。2026年9月的拆分(PR #102117)迁移了插件经常导入的内部组件,临时的
COMPAT_MANIFEST.md层则从旧模块重新导出了 1,148 个已迁移的公共名称,并针对每个名称在每个进程中发出一次警告(HermesPluginCompatWarning)。移除操作已按计划于 2026年9月14日生效,通过已发布代码中的日期门控实现(hermes_cli/plugin_compat.py内的COMPAT_REMOVAL_DATE;无需回滚代码):从该日期起,受影响的插件会被禁用,而不会被加载。CLI 横幅、hermes doctor和hermes update中会显示红色通知,桌面端会显示一次性模态对话框,hermes plugins list中也会列出具体原因。对于作者:hermes plugins compat <path>仍会输出所有使用旧路径的位置,包括file:line和“旧路径 -> 新路径”,只要仍有任何旧路径残留,就会以状态码 1 退出(添加--json可获得机器可读输出)。仍需使用无人维护插件的用户,可以在config.yaml中设置plugins.allow_deprecated_imports: true——其值必须是字面量 YAML 布尔值,不能是带引号的字符串。目前该应急开关仍然有效,因为删除旧路径的回滚尚未落地:在v2026.9.14、v2026.9.21、v2026.9.24以及截至9月24日的main分支中,清单和兼容垫片依然存在(v0.21.4 发布周期对兼容模块的改动仅限于缓存插件扫描和规范化 Windows 路径;v0.21.5 发布周期未修改hermes_cli/plugin_compat.py,仅移除了已删除 Hindsight 模块对应的清单条目)。一旦该回滚落地,应急开关将立即失效,因为旧路径本身也会消失。兼容层仅涵盖公共顶层名称;私有名称和测试 monkeypatch 接缝从来都不属于受支持界面,因此不会恢复。4253
设计原则
源自上游架构页面:3
| 原则 | 实际含义 |
|---|---|
| 提示词稳定性 | 系统提示词不会在对话过程中变化。除非用户执行显式操作(/model),否则不会发生破坏缓存的变更 |
| 执行过程可观察 | 每次工具调用都会通过回调向用户显示。CLI 中通过旋转指示器更新进度,gateway 中则通过聊天消息更新 |
| 可中断 | 用户可通过输入或信号,在执行过程中取消 API 调用和工具执行 |
| 平台无关的核心 | 同一个 AIAgent 类服务于 CLI、gateway、ACP、批处理和 API 服务器。平台差异由入口点负责处理 |
| 松耦合 | 可选子系统(MCP、插件、内存提供程序、RL 环境)采用注册表模式和 check_fn 门控,而不是硬依赖 |
| Profile 隔离 | 每个 profile 都有独立的 HERMES_HOME、配置、内存、会话和 gateway PID。多个 profile 可并发运行 |
从 OpenClaw 迁移
Hermes Agent 是 OpenClaw 的继任者。如果您要从现有的 OpenClaw 安装迁移:65
hermes claw migrate --dry-run # Preview what would be migrated
hermes claw migrate --preset full # Full migration including API keys
hermes claw migrate --preset user-data --overwrite # User data only, no secrets
hermes claw migrate --source /custom/path # Non-default OpenClaw location
hermes claw migrate 默认从 ~/.openclaw 读取数据(也会自动检测旧版 ~/.clawdbot 和 ~/.moldbot 目录),并写入 ~/.hermes。6
直接导入(30 多个类别):SOUL.md、MEMORY.md、USER.md、AGENTS.md、来自 4 个源目录的 skill、默认模型、自定义提供商、MCP 服务器、消息平台令牌和允许列表(Telegram、Discord、Slack、WhatsApp、Signal、Matrix、Mattermost)、agent 默认设置(推理强度、压缩、人工延迟、时区、沙箱)、会话重置策略(现已停用:自 v0.21.1 起,计时器不再轮换对话43)、审批规则、TTS 配置、浏览器设置、工具设置、执行超时、命令允许列表、gateway 配置,以及来自 3 个来源的 API 密钥。6
归档以供手动审查:cron 任务、插件、钩子/webhook、内存后端(QMD)、skill 注册表配置、UI/身份、日志记录、多 agent 设置、频道绑定、IDENTITY.md、TOOLS.md、HEARTBEAT.md、BOOTSTRAP.md。6
API 密钥解析会按优先级依次检查 3 个来源:配置值 → ~/.openclaw/.env → auth-profiles.json。6
故障排除
“未配置推理提供商。请运行 ‘hermes model’ 选择提供商和模型”
每次全新安装都会遇到的第一个错误:Hermes 尚未解析出可用的提供商。它的含义直截了当——3 种身份验证路径均未提供可用的提供商。请运行:
hermes model
交互式选择器会引导您完成所有受支持提供商的配置,包括 OAuth 设备代码流程(Nous Portal、GitHub Copilot、Anthropic、OpenAI Codex),以及用于自托管服务器的自定义端点。如果原本预期提供商已经配置好,hermes doctor 会显示 Hermes 实际能够检测到哪些凭据。常见原因包括:API 密钥设置在错误的位置(应放在 .env 中或通过 hermes config set 设置,而不是放在 shell 配置文件中)、~/.hermes/auth.json 中的 OAuth 凭据已过期,或 config.yaml 中的自定义端点缺少 base_url。有关身份验证路径的详细说明,请参阅身份验证与提供商。27
“未设置 API 密钥”
运行 hermes model 以交互方式配置提供商,或运行 hermes config set OPENROUTER_API_KEY your_key。hermes doctor 命令会准确告知您缺少哪些密钥。7
启动时出现“上下文限制:2048 个令牌”(本地模型)
Hermes 会通过服务器的 /v1/models 端点自动检测上下文长度,但许多本地服务器会报告较低的默认值。请在 config.yaml 中明确设置:2
model:
default: your-model
provider: custom
base_url: http://localhost:11434/v1
context_length: 32768
工具调用显示为文本,而未实际执行
您的服务器未启用工具调用,或者该服务器的实现不支持当前模型执行工具调用。2
| 服务器 | 修复方法 |
|---|---|
| llama.cpp | 在启动命令中添加 --jinja |
| vLLM | 添加 --enable-auto-tool-choice --tool-call-parser hermes |
| SGLang | 添加 --tool-call-parser qwen(或适用的解析器) |
| Ollama | 默认已启用工具调用——使用 ollama show <model> 检查您的模型是否支持该功能 |
| LM Studio | 升级至 0.3.6 或更高版本,并使用原生支持工具的模型 |
响应在句子中途被截断
可能有以下两个原因:2
- 服务器的输出上限过低(
max_tokens)——SGLang 默认每次响应最多输出 128 个令牌。请在服务器上设置--default-max-tokens,或在config.yaml中配置model.max_tokens。 - 上下文耗尽——模型已填满上下文窗口。请增大
model.context_length,或在 Hermes 中启用上下文压缩。
从 WSL2 连接 Windows 上托管的模型服务器时出现“连接被拒绝”
WSL2 使用具有独立子网的虚拟网络适配器——WSL2 内的 localhost 指向 Linux 虚拟机,而非 Windows 主机。有两种解决方案:2
镜像网络模式(Windows 11 22H2 及更高版本):编辑 %USERPROFILE%\.wslconfig:
[wsl2]
networkingMode=mirrored
然后运行 wsl --shutdown 并重新启动。此时,localhost 即可双向访问。
主机 IP 备用方案(旧版 Windows):从 WSL2 内部获取 Windows 主机 IP,并使用该地址代替 localhost:
ip route show | grep -i default | awk '{ print $3 }'
# Use that IP as the base_url host
此外,还需让模型服务器绑定到 0.0.0.0,而不是 127.0.0.1——对于 Ollama,请设置 OLLAMA_HOST=0.0.0.0;对于 llama-server/SGLang,请添加 --host 0.0.0.0;对于 LM Studio,请启用“Serve on Network”。2
迭代预算忽略 agent.max_turns
如果活动行显示 N/90(或其他过期上限),而 config.yaml 中设置的是 agent.max_turns: 500,最可能的原因是 ~/.hermes/.env 中残留了一行过期的 HERMES_MAX_ITERATIONS:设置向导过去会将预算同时写入两个存储位置。如果启动桥接程序因更早出现的配置解析错误而退出,.env 中的幽灵配置便会悄然生效。自 v0.21.1 起,hermes doctor 会检测这组遮蔽配置,而 hermes doctor --fix 会删除 .env 中的对应行,使 config.yaml 成为权威配置来源。41
所有内容都在哪里?
此时,hermes status 和 hermes dump 会很有帮助。hermes logs list 会显示所有日志文件及其大小。hermes config path 会输出配置文件的位置。hermes config env-path 会输出 .env 的位置。6
常见问题
Hermes Agent 和 Claude Code 有什么区别?
Claude Code 是 Anthropic 官方推出的 CLI,仅限使用 Anthropic 模型。Hermes Agent 是 Nous Research 推出的开源智能体框架,可与任何兼容 OpenAI 的提供商配合使用,包括 Nous Portal、OpenRouter、Anthropic、GitHub Copilot、z.ai、Kimi、MiniMax、DeepSeek、Hugging Face、Google,或您自行托管的端点。12 Hermes 还提供适用于 Telegram/Discord/Slack/WhatsApp/Signal 的消息 gateway,而 Claude Code 并不具备此功能。
可以将 Hermes 与 Anthropic API 密钥配合使用吗?
可以。有3种方式:2
- 在
~/.hermes/.env中设置ANTHROPIC_API_KEY,然后运行hermes chat --provider anthropic --model claude-sonnet-4-6 - 运行
hermes model并选择 Anthropic——如果 Claude Code 的凭据存储可用,Hermes 将使用其中的凭据 - 手动设置
ANTHROPIC_TOKEN(setup-token 或 OAuth token)作为后备方案
如果您已在同一台计算机上使用 Claude Code,建议选择方式2——这样可确保能够刷新的 Claude 凭据继续保持可刷新状态。
如何在不丢失对话的情况下切换提供商?
在会话中使用 /model provider:model。对话历史记录、memory 和 skills 都会完整保留:9
/model zai:glm-5
/model openrouter:anthropic/claude-sonnet-4
/model custom:local:qwen-2.5
我配置了 Anthropic,但视觉/Web/压缩功能无法使用
在当前版本中,过去那种问题基本不会再发生。默认情况下(auxiliary.*.provider: "auto"),所有辅助任务——视觉、审批分类、压缩、会话标题——都会在您的主聊天模型上运行。因此,仅配置 Anthropic 时,这些任务会使用已有的 OAuth。旧的默认机制(依次尝试通过 OpenRouter 使用 Gemini Flash、Nous、Codex 自动检测,并在均未配置时静默降级)已被移除:“auto 现在会让所有用户使用主模型,而 config.yaml 中针对各项任务的覆盖配置仍然优先。”34
如果辅助任务仍然失败,请检查是否存在明确的任务级覆盖配置,指向了从未配置的提供商(即 config.yaml 中的 auxiliary.<task>.provider / .model),或是否残留旧版配置键。从标签 v2026.8.31 开始,压缩摘要器与其他辅助槽位采用相同的配置方式,即 auxiliary.compression.provider;旧版 compression.summary_* 配置键会自动迁移至此处(配置版本17)。31 Web 内容提取也不再属于 LLM 任务(“不涉及 LLM”),因此在当前版本中,Web 摘要失败并非辅助模型问题。34 如需将某项任务明确固定回主提供商:
auxiliary:
vision: { provider: "main" }
compression: { provider: "main" }
SOUL.md 和 AGENTS.md 有什么区别?
SOUL.md 定义智能体的身份,包括语气、风格和默认沟通方式。它位于 ~/.hermes/SOUL.md,无论身处何处都会随您生效。AGENTS.md 则是项目专用文件,用于记录架构、约定、命令和路径,存放在项目目录中。13 如果内容应在所有场景中随您生效,请写入 SOUL.md;如果内容只属于某个项目,请写入 AGENTS.md。
如何并行运行多个 Hermes 实例?
使用 profiles。每个 profile 都有各自独立的 HERMES_HOME、配置、memory、会话和 gateway PID:6
hermes profile create work --clone
hermes profile use work # Sticky default
hermes -p work chat -q "..." # One-off without switching
hermes profile alias work --name h-work # Wrapper script
Hermes 支持本地 LLM 吗?
支持,可通过自定义端点路径实现。Hermes 可与任何兼容 OpenAI 的服务器配合使用,包括 Ollama、vLLM、SGLang、llama.cpp/llama-server、LM Studio、LocalAI、Jan,或您自行搭建的服务器。2 各服务器的配置方法请参阅自定义与自行托管的端点。
为什么启动横幅显示的工具数量少于指南所述数量?
本指南引用的47个工具和20个 toolsets 来自上游架构注册表,代表 Hermes 在所有 toolset 中提供了源代码的工具总数。实际运行的安装版本会在横幅中显示更少的数量(本指南使用的参考安装显示28个工具),因为 Hermes 启动时仅启用默认的 toolset 集合。许多 toolsets 都需要主动启用:消息 gateway 适配器、浏览器自动化、较重量级的抓取技术栈以及若干专用集成,都必须先在 ~/.hermes/config.yaml 的 toolsets: 下明确列出才会加载。注册表总数表示“启用后可用的工具”,横幅总数则表示“当前 profile 实际加载的工具”。使用 hermes tools --list 可查看哪些 toolsets 已启用,以及哪些虽可用但处于禁用状态。运行时可通过 /tools enable <name> 和 /tools disable <name> 切换各个 toolset(禁用操作会触发会话重置,以便智能体按照新的工具结构重建工具清单)。
主提供商发生故障时,Hermes 如何处理模型回退?
在 config.yaml 中配置 fallback_model 块:2
fallback_model:
provider: openrouter
model: anthropic/claude-sonnet-4
主模型失败时(例如触发速率限制、服务器错误或身份验证失败),Hermes 会在会话过程中切换至后备模型,同时保留对话历史记录。每个会话最多触发1次。
智能体能否随着时间推移改进自己的 skills?
可以——这正是 Hermes Agent 的“自我改进”能力。智能体可以通过 skill_manage 工具创建、更新和删除 skills。找到一套并非显而易见的工作流程后,它会将相应方法保存为 skill,以便日后复用。11 完成复杂任务(调用工具5次以上)、遇到错误并找到可行路径、您纠正其处理方式,或发现不易掌握的工作流程时,智能体会创建 skills。
是否提供 IDE 集成?
是的——Hermes 可以作为 ACP(Agent Client Protocol)服务器运行,供 VS Code、Zed 和 JetBrains 使用:6
pip install -e '.[acp]'
hermes acp
更新日志
| 日期 | 变更 | 来源 |
|---|---|---|
| 2026-09-24 | 指南v1.23:自指南首版以来一直位于当前版本上方的v0.14.0导览块,现已移至“新增内容”历史记录末尾,成为最早的章节,与其余历史记录所采用的从新到旧顺序保持一致。内容未作更改;简要概述现在从要点直接衔接至来源说明和“选择您的路径”。 | 指南结构 |
| 2026-09-24 | 指南v1.22:Hermes v0.21.5(标签v2026.9.24,9月24日)——第3个汇总补丁,精选说明推迟至v0.22.0。 顶部新增“新增内容”章节;简要概述已指向该章节。按标签深度涵盖:Hindsight从核心目录移至插件目录(发行说明中未提及),并提供自动迁移;gateway.multiplex_profiles: false已停用,新增按profile驻留机制和gateway.standalone;Nous和OpenRouter选择器中新增GPT-6 Sol/Luna与Claude Opus 5.5。“外部内存提供商”现列出7个捆绑提供商,以及目录中的Hindsight。“消息gateway”新增一段关于已停用退出选项的说明。在该标签处重新检查兼容性框:plugin_compat.py未发生变化,应急绕过机制仍然有效。更正:捆绑的提供商插件数量为38,而非39;OpenCode Free行已标记为移除;这两项变更均始于9月18日。 |
5253 |
| 2026-09-23 | 指南v1.21:完成正确性和可读性检查,仍为Hermes v0.21.4(标签v2026.9.21;暂无更新版本)。“新增内容”现按从新到旧排列,v0.21.3拥有独立章节,简要概述以当前版本开篇。配对方面:decline是唯一新增值;一旦设置任意允许列表,实际默认值即为ignore;YAML的结构为platforms.<name>.unauthorized_dm_behavior或顶层键。stream-json接受--query-file,选项表中已新增对应行。set-journal-mode注明必须停止所有进程的规则,以及Windows上的--force。主机单例段落现以运维人员行为开篇。已删除有关写入进程的句子。 |
5051 |
| 2026-09-22 | 指南v1.20:Hermes v0.21.4(标签v2026.9.21,9月21日)——第2个汇总补丁:自v0.21.3以来包含“5,071个非合并提交”“5,169个变更文件”“1,812个已合并PR”和“2,116个已关闭issue”;简短说明将精选内容推迟至v0.22.0。 在v0.21.3块下方新增“新增内容”章节。所有5项主要数据均已在本地克隆中按指定测量提交4b8a8134准确复现(该标签增加了1个发布提交,即5,072个非合并提交;包含合并提交时总数为5,173,与GitHub比较API一致);这是有史以来第2大的标签间窗口,仅次于v0.21.1的5,139(该说法已重新核查,仍然属实)。仅在标签处完成源代码验证后,才涵盖该版本有意未记录的项目,并将各项归入其固定章节:主机单例(gateway/host_rendezvous.py:每台主机、每个操作系统用户仅允许1个hermes serve和1个hermes gateway run,通过主机锁和包含(pid, createTime)的会合记录证明进程存活;host_attach.py包含ATTACH/RESCAN/REPLACE_HOST/REFUSE/START五种结果;Desktop端的host-backend-attach.ts按账本→HTTP→令牌→WS的阶梯流程运行,并设有主机级生成门控——“消息gateway”已新增相关段落);由后端统一负责的连接器操作(tools/connectors/operation.py标注“纯数据,无I/O”,300秒截止时间有意不设为配置键;根据标签处测试,Desktop/TUI/CLI中提供manage_connections设置卡片——Nous免费层级小节已扩充);--format stream-json(_parser.py:247-249与hermes_cli/stream_json.py:system/init→text/tool_use/tool_result→单个result封装;要求使用-q,隐含启用--quiet,拒绝与--tui并用,工具输出上限为5,000个字符——chat选项表已新增对应行);skills.auto_load(config_defaults.py:1435,“在每个新会话(CLI、TUI、gateway、cron、API)中固定为完全加载”,构建提示词时仅解析一次,名称缺失时发出警告并跳过,HERMES_IGNORE_RULES可抑制此行为——新增“固定Skills”小节);gateway decline(gateway/config.py:139,先礼貌拒绝一次,随后24小时保持静默,由DECLINE_DEDUPE_SECONDS控制,见#88028;unauthorized_dm_decline_message;可通过platforms.<name>.extra按平台配置;Email默认为ignore——“配对”章节已扩充);mcp.discovery_concurrency(config_defaults.py:526,默认值为4,0表示不限制,见#117373;无效值会触发警告并回退到默认值,所有服务器仍会连接——MCP章节已扩充);session_search新增after/before与OR放宽重试(工具schema第708—725行,支持包含式/排除式边界以及ISO或7d/24h/2w格式;hermes_state_search.py:1151-1163在unicode61索引未返回结果时,以ANY-term方式重试,同时保留精确命中语义;OR/NOT、单个词项和CJK查询不适用——“会话搜索”已扩充;此外,根据34,该章节中过时的“Gemini Flash摘要”说法已修正为v0.15.0不含LLM的单一结构设计);hermes sessions set-journal-mode delete\|wal(subcommands/sessions.py:177与sessions_cmd_journal_mode.py,为#100896提供离线自助处理;检测到其他持有者时拒绝执行;验证头部第18/19字节;doctor会指引使用该命令——sessions行和“会话存储”已扩充);Desktop系列更新(字体字段desktop.font_family可覆盖主题的--dt-font-sans,建议以无障碍体验为先;“更新引擎”支持一键更新运行时,并在失败时提供可见的重试入口;Plugins中心的卸载操作需确认,并通过plugins.manage remove/Electron加载器执行);视频目录(plugins/video_gen/fal中的ltx-2.5和kling-o3,附带标签处的功能字符串;toolset参考名册已新增对应行);插件目录扩建(窗口期内plugin-catalog/从9项增至228项,采用SHA固定的YAML准入机制;为每个插件和每位作者生成网站页面,通过允许列表渲染器展示固定提交的README,并依据提交者日期按新增/更新排序;已确认该版本的10个社区插件以实际slug存在:hermes-tailscale/hermes-ssh/shodan/hermes-terminal/hermes-rss/hermes-resetwatch/done-bell/kiwi/cognee/web-octen——“插件系统”已扩充)。修复类别(profile/multiplex隔离、cron、看板、Desktop、state.db)按照发行说明自身的延期安排,留待v0.22.0扫描。兼容状态已重新验证:删除路径的回退提交仍未落地——在v2026.9.21以及main分支的a53b42ddea(2026年9月22日,同日拉取)中,清单与兼容垫片均仍存在;plugin_compat.py窗口期内的变更仅涉及插件扫描缓存和Windows路径的POSIX格式(#112576),字面布尔值防护从第261—268行移至第296—303行,但仍使用is True;v0.21.1条目、v0.21.3块、“插件系统”框和42中的时效信息均已刷新。在v2026.9.21重新标记:静态提供商为39个(models_catalog_static.py:311处的AST计数),提供商插件目录也为39个,两者均未变化;简要概述中的提供商数量标记已从v2026.9.14更新至v2026.9.21;v0.21.3中的“当前版本”措辞已停用。 |
505142 |
| 2026-09-15 | 指南 v1.19:Hermes v0.21.2(标签 v2026.9.11,9月11日)“state.db 补丁版本”+ v0.21.3(标签 v2026.9.14,9月14日),以及插件兼容截止日期生效后的情况。 在 v0.21.1 小节下方新增“最新动态”小节。v0.21.2(“947 个非合并提交”“312 个已合并 PR”“140 位贡献者”)重点介绍了 state.db 可靠性专项改进(6 个 PR、44 个问题:将托管房间协调从根存储迁移至 shared-state.db——已在该标签验证 gateway/hosted_rooms.py:398-426;dashboard 优先以只读方式打开;通过受跟踪的连接注册表实现 cron 防护;doctor --fix 拒绝处理无法证明安全的 checkpoint;FTS 索引损坏时仅降级搜索功能,而不会以关闭失败方式终止当前轮次;损坏的行显示为 ?,不再导致 sessions list 终止;绑定固定至 profile;只读打开不再获取写锁,耗时从 4–20 秒降至 0.01 秒;保留该版本面向运维人员的操作说明:先运行 hermes doctor,再运行 hermes sessions recover --inspect-only——解析器位于 hermes_cli/subcommands/sessions.py:185-196,且该子命令早于本次发布窗口便已存在(v2026.8.31 中已有),因此文档将其表述为新纳入说明,而非新增功能);多 profile 隔离强化(#107609-#107630 修复了自 v0.19.0 起“完全隔离”承诺中的实际漏洞——继承的允许列表、发送至默认 profile 主机的凭据、传给 stdio MCP 服务器的 vault 密钥、跨 profile 的 MEDIA: 附件、同级 Nous bearer;已在 Profiles 和 Messaging Gateway 多路复用段落中补充如实说明);密码不可见的凭据 vault(通过仅含元数据且带命名空间的句柄,从 1Password、Bitwarden 或本地 vault 登录、付款和自动填充,密码在填充时才解析;主密码绝不会作为工具参数;可根据已保存的身份验证器密钥生成 TOTP——已在该标签验证 agent/vault_backends/ + agent/vault_store.py:74-105);插件目录(hermes plugins browse/search + 感知目录的 install + pack install/export/show,使用 SHA 固定版本——已在该标签验证子解析器;已更新 Plugin System 命令块);Nous 免费层级 + 首次启动引导(免费推理和连接器、可从聊天中使用 /login,以及 HERMES_GUEST_ONBOARDING=1,其中只有字面值 1 才会启用——已验证 guest-onboarding-flag.test.ts;在 Nous Tool Gateway 下新增小节);以及桌面端进程启动风暴修复。简短的 v0.21.3 内容块(“1,036 个非合并提交”“338 个已合并 PR”;发布该标签,以便自动更新的 Cloud agent 能够获取):单飞 token 刷新机制终结了刷新突发导致的会话撤销(提交 5dea46d13d,#110061),并停止创建重复的 state.db 写入句柄(提交 939a2f64b4,#110934);两者均仅在 v2026.9.11..v2026.9.14 窗口内得到验证;引用该版本自身的延期说明(“此窗口的完整精选发行说明将随 v0.22.0 发布,其中会记录自 v0.21.0 起的全部内容”……“此窗口中的内容不会遗漏”),并在该行列出其有意暂不记录的内容(推理强度选择器、OpenRouter PKCE、HEIF/AVIF、FAL 系列更新、Slack Agent Sessions API、跨虚拟机 WAL 拒绝),留待 v0.22.0 扫描时处理。兼容截止日期生效后的说明已改写为过去时,涉及 v0.21.1 的分解条目、Plugin System 提示框和 42:移除机制按计划通过日期门控生效,而非通过代码回退(v2026.9.14 的 hermes_cli/plugin_compat.py:32 设置了 COMPAT_REMOVAL_DATE;从 2026-09-14 起,:86-90 的 removal_in_effect() 返回 true),受影响的插件现已禁用,并显示红色通知——但删除旧导入路径的回退尚未落地(在该标签以及 2026-09-15 12:55 PT 获取的 main 提交 5d59366010 上,COMPAT_MANIFEST.md、compat_manifest.json 和兼容垫片仍然存在),因此 plugins.allow_deprecated_imports: true 仍能让受影响的插件继续加载;仅接受字面布尔值(plugin_compat.py:261-268,is True——带引号的字符串绝不会启用绕过机制)。以下仅记入变更日志,且均经版本或源码验证:Telegram 的 bots_require_mention 会要求机器人必须收到 @提及,从而阻断机器人之间的循环;hermes -z --resume 会继续该会话(-z = --oneshot,hermes_cli/_parser.py:113);被动更新检查改为最多每天访问一次 GitHub API,不再每 30 分钟执行一次 git fetch(v2026.9.11 的 banner.py:129-131,v2026.9.14 的 :136-139);hermes backup -k/--keep 默认仅保留最新的 3 个 zip 文件(subcommands/backup.py:24-26),而 config.yaml 备份集中存放在一个容量受限的 backups/config/ 目录中;model_thresholds 键可按 provider:substr 格式限定 provider 范围(agent/context_compressor.py:1558-1567);--clone-all 不再复制 cron 作业(该 flag 属于 hermes profile,位于 subcommands/profile.py:24,而非 hermes cron);kanban promote 会拒绝尚未完成父任务的项目,kanban_request_review 会拒绝未知的审阅者 profile;/model 和辅助 auto 绝不会向并非由您选择的 provider 计费,也绝不会自动切换到没有凭据的 provider;选择器新增 DeepSeek V4.1 Flash(Nous Portal + OpenRouter)、GPT Image 2.5,以及原生 Anthropic 选择器中的 Opus 5 + Fable 5.1;debug share 在 dpaste 回退方案中的保留期缩短至 1 天。基于 v2026.9.14 重新确认:静态 provider 数量为 39(对 models_catalog_static.py:314 中 CANONICAL_PROVIDERS 的 AST 计数),provider 插件目录数量也为 39,两者均未变化;--max-turns 默认值 500 现位于 cli.py:404(41 中的 cli.py:400 对其对应标签仍然正确);model_catalog.ttl_minutes 为 20(config_defaults.py:1866);与两个新窗口(本地非合并计数分别为 959 和 1,037)相比,v0.21.1 的最大窗口声明(5,139)依然成立;TL;DR 中的 provider 数量核验标签已从 v2026.9.7 更新为 v2026.9.14。 |
484942 |
| 2026-09-08 | 指南v1.18:Hermes v0.21.1(标签v2026.9.7,9月7日)——汇总补丁:这是迄今标签间跨度最大的一次更新(“5,139个非合并提交”“632个已合并PR”),补丁说明却刻意从简,将精选说明留待v0.22.0发布。 在Pantheon章节上方新增“最新变化”章节,包含6组经来源验证的更新:9月代码拆分以及2026-09-14 plugin兼容截止日期(COMPAT_MANIFEST.md:1,148个名称迁移为延迟加载;每个名称仅触发一次HermesPluginCompatWarning;提供hermes plugins compat检查器与plugins.allow_deprecated_imports应急开关;Plugin System中新增兼容窗口说明框);gateway会话边界改为仅显式触发(SessionResetPolicy现已失效——已更新Messaging Gateway,并为claw迁移列表添加注释);MCP设备代码OAuth(hermes mcp login --flow device,RFC 8628;在MCP命令块中加入login和reauth --all;通过OAuth会话确定profile所有权;忽略格式错误的元数据缓存;桌面客户端使用本地回调;-t筛选器控制MCP服务器生成);委派可靠性(通过delegation.independent_completions提供带有每任务group的完成单元,默认每次调用返回一个完成结果;后台进程交接会在结果中标明orphaned_processes和unread_completions;支持delegation.fallback_providers;子链经规范化器验证;部分结果可跨崩溃持久保存;子任务绝不继承1小时缓存层——以上均从该标签的delegate tool源代码中读取);提供商/模型(GPT-6 Astra与Astra Pro,支持fast/flex层级;通过Codex OAuth使用时受账户权限控制,并提供可选择启用的-900k变体;claude-fable-5.1;gemini-3.7/3.8-flash;qwen3.8-max-0902;Muse Spark 1.3及muse-image image_gen plugin;Tavily搜索/提取;托管式llama.cpp运行时;外部进程提供商;通过model_catalog.ttl_minutes设置20分钟目录刷新周期);以及桌面端浪潮(应用内浏览器评论模式可随每条批注携带选择器、标记和样式,并按区域分批处理;结构化会话与自动化控件;通过拖动创建会话;导入外部转录记录会话;display.resume_last_session;首次打开真实profile时征求同意;内置可选skill目录;俄语桌面端区域设置)。仅见于变更日志且经提交或来源验证的内容包括:cron可靠性(通过3个经验证的修复提交强化重启交接;将投递去重串行化并保留终态;消除创建已暂停任务时的竞态条件;Discord cron媒体会路由至目标位置,并报告上传失败;静默审计周期之间仍保持连续性);审批shell解析(GNU env拆分转义与argv0操作数、env argv和shell注释边界、带引号的命令替换体会保留其命令边界,以及隔离容器内的approvals.deny);gateway启动存活监视器(hermes_startup_watchdog.py;gateway.startup_watchdog设置300秒期限,硬退出代码为75);state.db韧性(使用sqlite3 .recover抢救至lost-and-found、like_scan FTS路由、新增docs/state-db-recovery.md);性能(search_files在本地POSIX主机上原生运行ripgrep;schema v30的三元组FTS索引排除delegate子任务转录记录;主路径与辅助路径共用OpenAI httpx客户端);gateway.trust_env;Slack Block Kit /model选择器;以及远程sandbox媒体投递(凭据及其符号链接绝不会离开sandbox);故障排除新增检查陈旧HERMES_MAX_ITERATIONS残留变量的doctor项目。在该标签上将基准从v2026.8.31更新为v2026.9.7:静态提供商为39个,provider-plugin目录为39个,两者的条目均与v0.21.0完全一致——预扫描中“38个静态提供商,xai已并入plugin”的说法已被源代码证伪(xai元组仍在静态列表中;只是文件从hermes_cli/models.py移至hermes_cli/models_catalog_static.py:311);在心智模型和CLI数据流中,将prompt_builder.py的路径更新为agent/prompt_builder.py;保留v0.16每小时刷新目录的版本限定说明,同时在旁边补充20分钟刷新周期。再次验证且未发生变化的既有结论包括:hermes approvals test命名说明;--max-turns默认为500(该标签中的cli.py:400;未沿用仍称60的陈旧文档字符串);read_file限制为2000行;委派上限为250/10;compression.tail_mode: lean;Node 26;17种CLI区域设置。 |
41424344454647 |
| 2026-07-28 | 指南v1.12:由搜索需求推动的覆盖补充——两个转化表现良好的主题没有可供落地的标题。 没有新版本发布。GSC数据显示,hermes swarm和hermes agent swarm在约第8位时的转化率为4.4%–6.3%,hermes smart model routing在第6.7位时的转化率为4.9%,但这些术语均无对应章节:swarm仅作为正文出现在Multi-Agent Kanban和变更日志行中,而“smart model routing”只在一条脚注中出现。在Multi-Agent Kanban下新增什么是Hermes Swarm?——将swarm定义为在同一个持久化看板上并行工作的多个工作单元,记录v0.15.0的swarm拓扑、自动拆分、按任务覆盖模型、计划任务和worktree管理,并通过表格说明各机制所预防的故障。将提供商轮换与回退重命名为Smart Model Routing:提供商轮换与回退,并在导语中将凭据池、回退模型和辅助路由串联为一个完整系统。内部没有链接指向该锚点,因此此次重命名不会造成链接失效。 |
59 2 6 |
| 2026-08-31 | 指南v1.17:Hermes v0.21.0“The Pantheon Release”(标签v2026.8.31,8月31日)——精选汇总正式发布。 在Herald章节上方新增“最新变化”章节,并按照该版本自身的功能领域组织内容:桌面端内置Bot Mode且默认启用(命名profile、确定性头像、支持@提及的群聊);用于机器人间私信的hermes peer(回复会进入各agent的规范Bot Chat);cron连续性(continuity=true、持久化记事本、监控模式下跳过LLM、按任务固定推理强度——Scheduled Tasks章节新增该标签下这4项功能的具体机制);实时子agent编排(delegate_task的列出/引导/停止操作、采用JSON schema的子任务输出、默认值提升至250次迭代/10个并发子任务——已在config_defaults.py中验证;相比之下,委派文档页面中的3/50已过时);MCP命令中心(外加hermes://安装链接——已更新MCP章节);CLI功能浪潮(斜杠命令表中新增/palette、Ctrl+P以及基于共享注册表的/status,并注明/model支持输入即筛选;经该标签验证,发行说明中的hermes approval-check实际为hermes approvals test——根本不存在前述子命令);由agent驱动的应用内浏览器;提供商/模型浪潮(新增6个提供商;矩阵根据文档引用的环境变量新增Tencent TokenPlan、Nebius Token Factory、Ramp Router和Alibaba Token Plan行;model_overrides;数据训练层级警告;通过pip安装的提供商plugin);安全浪潮(写入AGENTS.md、skill和memory始终需要审批——已在该标签验证security.protected_instruction_files: true和tools/file_tools.py关卡;全面清理敏感信息;Windows审批覆盖;hermes desktop --setup-tcc-identity;移除Blender MCP——Security Hardening新增第4波更新);gateway日趋成熟;8项skill更新;以及已回滚列表(Model Council /council、DCP context engine、仅支持WS的gateway服务器——带序号时间戳的重放功能#94219确实已经发布;Electron回退至40.10.2;grep确认指南从未记录任何已回滚功能)。汇总小节中“说明待补”的表述现已解决,并改为指向精选章节;窗口块继续保留,作为各标签的记录。在该标签上将基准从v2026.8.27更新为v2026.8.31:静态提供商从38增至39(新增tencent-tokenplan),provider-plugin目录从37增至39(新增nebius-token-factory和router,两者均为auth_type="api_key"),文档中的提供商行从41增至45;以下内容保持不变并已重新验证:文档中28个平台行、24个Platform枚举成员(列表完全一致)、22个适配器目录;_BUILTIN_SUBCOMMANDS完全一致(73个,peer自汇总窗口起便已存在,无version);7个终端后端及plugin注册表(注册表逐字节一致);14种personality和17种区域设置(分别逐字节一致/列表一致);compression的lean默认值与辅助槽位清单;_startup_fast.py/portal_cli.py逐字节一致。验证过程中修复的偏差:在TTY中运行hermes chat -q现会启动交互式会话(新增--oneshot以恢复“回答后退出”的行为),并根据该标签的解析器帮助,将聊天表中的--max-turns默认值从90更正为500。 |
35363738394033 |
| 2026-08-27 | 指南 v1.16:Hermes v0.20.6(标签 v2026.8.27,8月27日)——第4次汇总。 根据该版本自身的说明(自 v0.20.5 以来,约1,313次提交,涉及约1,557个文件,+177,113 / −21,682——合并约525个 PR),汇总小节新增第4个时间窗口:经用户同意后使用真实 profile 浏览(默认 Chromium profile;Windows 采用经批准后关闭的流程)、在独立操作系统窗口中运行的桌面 Browser、托管式 SSH 远程更新引擎与机群 profile 轨道、扩充远程 MCP 目录(50多个经在线验证、由供应商托管的服务器,包括 Cloudflare、Grafana Cloud、Better Stack、Railway)、可选择启用的操作系统密钥链加密以保护已存储的机密信息、新增选择器模型(GLM-5.3-Flash、免费的 MiniMax M3、MiniMax H3 Max video)、web_search/web_extract 结果的 TTL 缓存、支持词干提取的多查询 tool_search、更新程序通过控制套接字暂停 gateway、镜像/软件包管理式安装拒绝不安全的原地更新、cron 持久事件确认、Slack 链接展开控制,以及共享的 Docker 容器身份。版本说明中的两项声明与现有章节相矛盾;经标签版本确认后均已修正:lean-tail compression 为默认模式(重写 Context Compression,采用标签版本中的配置键——tail_mode: lean、threshold_tokens、protect_first_n,以及位于 auxiliary.compression.* 下的摘要器调节项,并包含配置版本17的自动迁移;同时修正了结论颠倒的故障排除说明);终端后端可通过插件扩展(重新表述为7个内置后端加插件注册表,风格与提供商选择器一致;内置名称为保留名称)。重新核验标签版本快照,并将 v2026.8.19 → v2026.8.27:38个静态提供商 + 37个提供商插件目录,24个 Platform 枚举成员 / 22个适配器目录 / 文档表格28行;没有 version 子命令(_BUILTIN_SUBCOMMANDS 含73项,存在 worktree);解析器选项和带引号的帮助字符串保持不变;BUILTIN_PERSONALITIES 仍为14个(从 helpful 到 hype);locales/ 现有17个语言目录(en + 16种翻译;新增标签版本计数)。main 正好位于该标签(ahead_by: 0,状态完全一致)。此外还修正了核验过程中发现的偏差:辅助系统原有的默认说明已过时——auto 现在会将所有辅助任务路由至主聊天模型,而不再通过 OpenRouter → Nous → Codex 检测路由至 Gemini Flash;Auxiliary Models 已按标签版本的槽位清单重写(新增 title_generation、tts_audio_tags、triage_specifier、kanban_decomposer、profile_describer,并为其补充有来源依据的单行说明;上游已移除 web_extract 和 session_search 槽位——二者均不再使用 LLM——默认项中也已移除 flush_memories),并重新核实仅适用于 Anthropic 的故障排除条目。该版本的全新安装说明使用原始 GitHub 脚本 URL;本指南仍保留规范地址 hermes-agent.nousresearch.com/install.sh。v0.21.0 仍将提供精编发行说明。 |
293031323334 |
| 2026-08-26 | 指南 v1.15:更正——没有新版本(最新标签为 v2026.8.19 / v0.20.5,8月21日);已在该标签版本重新核验现有声明。 终端后端:由6个增至7个,表格和配置注释中新增 vercel_sandbox。消息平台:将零散出现的“22”统一修正为标签版本文档对比表中的28,并注明统计口径(24个内置 Platform 枚举成员、22个捆绑适配器目录);gateway 列表中新增 ntfy 和 Buzz。提供商:将“约20个 / 约22个一等支持”替换为有来源依据的计数(38个静态 CANONICAL_PROVIDERS 条目,并可由37个捆绑提供商插件自动扩展;文档页面中有41行云服务/订阅服务),删除“完整列表”的说法,修正 Qwen OAuth 行,并在矩阵中新增17行(OpenCode Free、OpenAI API direct、Vertex AI、Azure Foundry、Bedrock、NVIDIA NIM、Ollama Cloud、StepFun、MiniMax OAuth、Meta AI、NovitaAI、Arcee AI、GMI Cloud、Actual Computer、Tencent TokenHub、CommandCode、Alibaba Coding Plan)。将 hermes version → hermes --version(在该标签版本中并非子命令)。注明 hermes honcho 仅在相应插件存在时可用。将“机群 --plan”→ hermes update --plan。Global Options 新增 --in、--tui、--cli、--dev、--ignore-rules、--ignore-user-config;Top-Level Commands 根据 _BUILTIN_SUBCOMMANDS 新增34行,其中包括带参数说明的 hermes worktree list\|prune;新增 /worktree 斜杠命令;补充 hermes setup --portal 和 hermes portal login\|info\|open\|tools 文档。核验时,main 已领先该标签1,104次提交(此后均已汇总至 v2026.8.27);v0.21.0 将提供精编发行说明。 |
23242526272829 |
| 2026-08-24 | 指南 v1.14:v0.20.5(标签 v2026.8.19,发布于8月21日)。 汇总小节新增第3个时间窗口(自 v0.20.4 以来约746次提交 / 约323个 PR):无密钥网页层(5家供应商免费轮换,并通过环形故障转移——全新安装无需任何密钥即可进行网页搜索)、CLI 体验优化(支持模糊搜索的 /model 选择器、Ctrl+P 命令面板、信息更丰富的 /status)、Bot Mode 群聊线程 + 可折叠摘要 + PDF/文件拖放、hermes worktree list/prune、hermes update 回执和机群 --plan 验证、具备持久内存且可为每项任务设置推理强度的 cron、源自 Composio 评估结果的执行纪律停滞防护、无需身份验证的 opencode-free 提供商,以及桌面端性能优化(优先绘制式 hydration、在两个 renderer 中启用 React Compiler)。包含完整精编发行说明的 v0.21.0 仍待发布——这些摘要取自该版本自身的时间窗口说明。已更新页首版本沿革。 |
23 |
| 2026-08-20 | 指南 v1.13:v0.20.3(标签 v2026.8.16.2,发布于8月17日)和 v0.20.4(标签 v2026.8.18,8月18日)。 Herald Release 下新增小节:汇总发布序列如今已包含新功能,不再只是稳定性改进。v0.20.3(约250次提交 / 约125个 PR):MCP 2.x SDK 迁移并支持 2026-07-28 无状态协议、捆绑 Bot Mode 插件(hermes-bots)及核心队友协议、CommandCode 提供商插件、Cua Driver 0.20 计算机操作运行时契约、Python 运行时所有权加固、cron 调度器自愈、会话移交数据丢失修复、生态系统功能移植(/worktree、/rollback 保留手动编辑内容、插件安装安全扫描)。v0.20.4(约146次提交 / 约74个 PR):桌面端玻璃/半透明界面及磨砂效果选择器、带标签页的 SESSIONS|BOTS 侧边栏并支持逐个隐藏/取消隐藏机器人、安装 skill 时使用 NVIDIA SkillEvaluator Tier 1 进行建议性扫描(许可证 + 安全性)、cron 媒体发送加固、hermes update 如实报告暂存分支状态。两个版本均说明完整精编发行说明将随 v0.21.0 发布——摘要取自各版本自身的时间窗口说明。已更新页首语句和标签沿革。 |
54 |
| 2026-08-16 | 指南 v1.12:v0.20.0“The Herald Release”(8月3日,标签 v2026.8.3),以及 v0.20.1(8月13日)和 v0.20.2(8月16日)稳定性版本标签。 3项更正修复了已经失效的说明:必须使用 Node 26(安装程序固定 NODE_VERSION="26" 并拒绝较旧的运行时——文档网站所称的 Node v22 已过时,因此以安装程序和发行说明为准);pip 和 Homebrew 已停用,而非弃用(“shell 安装程序 / Docker / Nix 是受支持的渠道”);默认迭代次数上限从90提高至500,导致预算压力表中的所有数字均已失效。安装命令已更正为规范地址 https://hermes-agent.nousresearch.com/install.sh。已移除的功能:claude-marketplace skill 源已删除,并在源列表中由 browse-sh 取代;默认 GitHub tap 现为 openai、anthropics、huggingface、NVIDIA 和 gstack。通过直接枚举文档对比表,将消息 gateway 从22个平台重新统计为28个平台(文档未公布官方总数)。Windows(原生)属于 Tier 1,而非早期测试版;macOS 仅支持 Apple Silicon。新增章节介绍该版本本身:支持插话的对话式语音、A2A v1.0、带签名的出站生命周期 webhook、grounded-citations skill、!//init//diff//context//focus CLI 功能浪潮与 hermes import-agent、command-helper 机密信息源、hermes -w 冷启动时间从约14秒降至约1.8秒,以及桌面端构建产物与 Plugin SDK。经核验保持不变的内容:3种身份验证路径、~/.hermes/ 布局、hermes update 和文档所列工具。 |
55 |
| 2026-07-21 | 指南v1.11:v0.19.0“The Quicksilver Release”(2026年7月20日,标签v2026.7.20)。新增“v0.19.0的新功能”章节:首次响应的TTFT缩短约80%(在CLI/gateway/TUI/桌面端/cron中,冷启动提交→分派耗时从约4.3秒降至约0.9秒);默认实时流式输出推理过程(启用display.show_reasoning);桌面端迎来约20个PR的性能优化(流式Markdown速度提升14倍),TUI支持增量Markdown;弃用pip/Homebrew安装方式(仅警告为“不受支持的旧版方式”,计划停止发布PyPI/Homebrew版本)——安装章节和TL;DR已更正为单行安装程序;可插拔的SecretSource,支持Bitwarden和1Password提供程序(op://引用、多保管库、确定性优先级、逐变量来源追踪);默认启用智能审批(由独立的LLM审查器检查每条被标记的命令)+ 用户自定义拒绝规则,即使在YOLO模式下也依然生效 + /deny <reason> + 重新引入插件pre_tool_call批准升级机制;终端计费功能/subscription + /topup + 桌面端计费标签页(撤回“没有单独订阅命令”的说法);state.db中新增实时subagent记录 + 持久化后台委派 + 交付义务账本;弃用max_async_children,改用统一的委派并发上限;基于profile的gateway消息路由(一个多路复用机器人令牌→隔离的profile、GATEWAY_MULTIPLEX_PROFILES、state.db中的路由索引、可选的旧版sessions.json镜像);提供程序/模型:Fireworks AI(选择器第2位)、DeepInfra、Upstage Solar、端到端支持GPT-5.6(Sol/Terra/Luna + Pro)、grok-4.5正式发布、kimi-k3(停用kimi-k2.x)、完整接入Claude Sonnet 5、逐提供程序设置enabled: false + excluded_providers、推理强度max/ultra层级以及逐模型/逐MoA槽位覆盖,并提供会话级/reasoning;CLI/MCP:hermes sessions export(Markdown/Quarto/HTML/仅提示词/HF跟踪、--redact)、/model --once、堆叠调用斜杠skill、--safe-mode、hermes config get/unset、真正无界面的hermes serve、MCP的mcp__server__tool命名方式。还补记了遗漏的补丁标签:v0.18.1(标签v2026.7.7)和v0.18.2(标签v2026.7.7.2),2026年7月7日至8日——基础设施补丁汇总;v0.18.2的实质性修复是取消将WhatsApp Baileys固定在特定版本,改用7.0.0-rc13,以确保Docker构建稳定可靠。 |
56 57 |
| 2026-07-16 | 新增首条故障排除项,针对以下原样启动错误:“No inference provider configured. Run ‘hermes model’ to choose a provider and model”——根据搜索需求编写;指向交互式选择器、hermes doctor以及3种身份验证方式。产品本身没有变化。 |
2 7 |
| 2026-07-01 | 指南v1.10:v0.18.0“The Judgment Release”(2026年7月1日,标签v2026.7.1)。新增“v0.18.0的新功能”章节:完整清理P0/P1积压事项(约692项);Mixture-of-Agents成为一等功能,支持带标签的逐模型集成输出和实时流式传输;完成契约——/goal通过运行项目检查自行验证工作成果;/learn(描述工作流→可复用skill,符合CONTRIBUTING.md规范);/journey记忆/skill时间线 + 桌面端记忆图谱;后台subagent扇出(并发执行委派任务);桌面端Projects(项目/代码库/工作通道);可缩容至零的gateway,支持排空协调;Google Vertex AI(通过GCP服务账号使用Gemini,自动刷新OAuth2);/prompt \$EDITOR编辑器。来源:hermes-agent releases。 |
22 |
| 2026-06-21 | 指南v1.9:v0.17.0“The Reach Release”(2026年6月19日,标签v2026.6.19)。新增“v0.17.0的新功能”章节。消息平台:通过Photon Spectrum实现无需中继的iMessage(hermes photon login、设备代码OAuth);官方WhatsApp Business Cloud API适配器(无需桥接);SimpleX群组和附件;Raft平台插件。模型:z-ai/glm-5.2(1M)、anthropic/claude-fable-5、laguna-m.1、nemotron-3-ultra、grok-composer-2.5-fast(xAI OAuth,200k);xAI默认模型→grok-build-0.1;Anthropic自适应模型不再包含reasoning字段。桌面端/仪表盘:支持实时监看窗口的后台subagent(delegate_task(background=true))、完整的profile构建器、重新设计的Skills Hub、Automation Blueprints、安全的401登录、VS Code Marketplace主题、日语和繁体中文界面。Skills/工具:image_generate图生图编辑、memory原子化operations批处理、simplify-code skill、布尔值write_approval(取代write_mode)。架构:MCP引导处理程序、可插拔CronScheduler + Chronos、Managed作用域(/etc/hermes)、Gateway-Gateway中继。命令:/version、/billing、hermes curator run --consolidate(选择启用)。安全性:修复shell转义拒绝列表绕过漏洞、审批/gateway适配器采用故障关闭机制、清理cron环境变量、调试转储中的密钥经过脱敏处理、筛查MCP stdio数据外泄、升级urllib3 + PyJWT以修复CVE。 |
21 |
| 2026-06-08 | 指南v1.8:v0.16.0“The Surface Release”(2026年6月5日,标签v2026.6.5)。将指南标题更新为v0.16,并新增“v0.16.0的新功能”章节。核心变化:Hermes不再局限于终端。原生Hermes Desktop应用(Electron,支持macOS/Linux/Windows),提供一键安装、应用内自动更新、流式聊天、拖放及剪贴板粘贴图片、Cmd+K命令面板、会话归档/搜索、状态栏模型选择器、通过安全WebSocket连接远程gateway(OAuth或用户名/密码、逐profile主机、跨profile的@session链接),并通过类型化i18n提供完整的简体中文翻译。浏览器管理面板(Web仪表盘→完整管理后台):启用/禁用MCP目录、凭据管理、创建webhook/hook、记忆配置、gateway控制、带更新前检查和Debug Share的System页面、新增Channels页面,以及可插拔身份验证(用户名/密码、自托管OIDC、hermes dashboard register)。新命令:/undo [N](CLI/TUI/消息平台)、可配置的默认界面(cli/tui、--cli)、TUI统一的/model + Sessions浮层、hermes portal、hermes prompt-size、hermes sessions optimize。新模型:deepseek-v4-flash、MiniMax-M3(1M上下文)、qwen3.7-plus、gemini-3.5-flash;桌面端启动器原生支持xAI Grok OAuth;模糊搜索模型选择器;每小时刷新目录。Skills:精简默认集合(Spotify→原生插件、Linear→hermes mcp install linear、移除失效skill)、environments:相关性门控(kanban/docker/s6)、默认信任的NVIDIA/skills tap、渐进式(限定作用域)披露MCP/插件工具。安全性:将CVE-2026-48710(Starlette BadHost)固定为≥1.0.1;SSRF检查移出事件循环;从子进程环境中移除Bedrock不记名令牌;为bws_cache.json添加读取保护;将docker restart/stop/kill加入危险模式;清理不可见Unicode字符。完成2项P0和62项P1(其中16项带安全标签)。 |
20 |
| 2026-05-31 | 指南v1.7.1:v0.15.1(2026年5月29日01:12 UTC)——Velocity补丁。Velocity发布当天的后续热修复;固定在标签v2026.5.29这一版本线。修复影响环回模式部署的仪表盘401重新加载循环。Docker不再将--insecure视为隐式设置——如需重新启用,必须明确设置HERMES_DASHBOARD_INSECURE=1。MCP裸命令(npx、npm、node)现在可再次在Docker容器内正确解析。Skills页面的来源标签和分类侧边栏恢复正常渲染。Kanban工作进程可妥善响应SIGTERM,不再遗留孤儿进程。通过发现站点地图,Skills.sh目录从858项扩充至19,932项。共28次提交、21个合并PR、9位贡献者。v0.15.2(2026年5月29日13:37 UTC)——Velocity打包补丁。修复wheel和sdist发行包,使其包含plugin.yaml清单,从而确保通过PyPI安装时无需旁加载源代码树。仅涉及打包的热修复,共4位贡献者。 |
58 |
| 2026-05-28 | 指南v1.7:新增v0.15.0(2026年5月28日)— Velocity版本(标签v2026.5.28)。重点:大规模重构与全新的编排原语。代码库重构:run_agent.py代码量减少76%(16,083行→3,821行),拆分至14个职责清晰、紧密内聚的模块。多智能体Kanban v2:自动将高层目标分解为子任务、采用群体拓扑协调并行工作智能体、支持逐任务模型覆盖、计划任务和worktree管理。性能:冷启动再缩短1秒;每次对话的函数调用次数减少47%;重新设计的session_search速度提升4,500倍,移除LLM依赖项(同时消除其API成本)。安全性:Promptware防御机制在3个安全关口抵御Brainworm级提示词注入;集成Bitwarden Secrets Manager,以单个引导令牌取代多个逐提供商API密钥。skill捆绑包:使用一条斜杠命令同时加载多个skill。TUI会话编排器:在单个终端窗口中管理多个会话。新增提供商:新增用于图像生成的Krea 2(Medium/Large)和FAL插件支持;xAI集成更新新增网页搜索插件、OAuth上游支持、退役模型检测和自然的TTS停顿。统计数据:1,302次提交、747个已合并PR、321位社区贡献者。根据GitHub发布说明,当日或次日发布的补丁版本解决了dashboard 401重新加载循环、Docker --insecure显式环境变量、Docker中的MCP裸命令解析(npx、npm、node)、Skills页面恢复、Kanban工作智能体SIGTERM处理,以及通过站点地图提供完整的19,932项Skills目录。 |
59 |
| 2026-05-21 | 指南v1.6:新增v0.14.0(2026年5月16日)— Foundation版本。重点:更轻量的安装与运行时基础,并拓展提供商、gateway、媒体和验证功能。新增支持grok-4.3 1M上下文的SuperGrok OAuth、面向OAuth提供商且兼容OpenAI的hermes proxy、一等公民级x_search、pip install hermes-agent、依赖项延迟安装、启动速度提升约19秒、浏览器CDP调用速度提升180倍、LINE和SimpleX Chat(使消息平台总数达到22个)、Microsoft Teams端到端支持、/handoff、/subgoal、Telegram/Discord原生澄清按钮、Discord历史记录回填、基于原始像素的vision_analyze、逐轮文件变更验证器页脚、每次写入时运行LSP语义诊断、统一的video_generate、通过cua-driver为非Anthropic提供商提供computer_use、可点击的OSC8 URL、Zed ACP Registry支持、OpenRouter Pareto Code路由器、NovitaAI、Codex应用服务器运行时、受信任的huggingface/skills tap、9项可选skills、插件ctx.llm / tool_override、Brave/DDGS网页搜索、Qwen Cloud更名、原生Windows测试版,以及关闭12个P0和50个P1问题。 |
19 |
| 2026-05-07 | 指南v1.5:新增v0.13.0(2026年5月7日)— Tenacity版本。重点:持久可靠的多智能体Kanban看板(心跳、回收、僵尸检测、幻觉门控、逐任务max_retries、多项目看板),让智能体群从一种委派模式升级为一等公民级原语。/goal命令可跨轮次将智能体锁定在目标上(以斜杠命令实现Ralph循环模式)。新增video_analyze工具,优先使用Gemini,并支持扩展兼容模型。新增支持语音克隆的xAI Custom Voices TTS提供商。为CLI和gateway消息提供7种语言的i18n(zh-Hans、ja、de、es、fr、uk、tr);文档仅支持zh-Hans。通过可插拔适配器模式新增Google Chat,成为第20个消息平台;IRC和Microsoft Teams也迁移至同一模式。通过ProviderProfile ABC和plugins/model-providers/支持可插拔第三方提供商,无需修改核心代码。gateway重启、/update和源文件重新加载后均可自动恢复会话。Checkpoints v2经过重写,采用单一存储设计,实现真正的清理机制和磁盘防护限制。关闭8项P0安全问题:默认启用密钥脱敏、修复Discord跨服务器私信绕过(CVSS 8.1)、WhatsApp拒绝陌生人和自聊静音、MCP OAuth TOCTOU、CLI auth.json TOCTOU、浏览器SSRF最低防线、cron提示词注入扫描、hermes debug share脱敏。新增Python/JSON/YAML/TOML写入后检查、cron no_agent纯脚本模式、覆盖Slack/Telegram/Mattermost/Matrix/DingTalk的平台允许列表,以及MCP增强功能(SSE传输、OAuth转发、图像MEDIA标签)。自v0.12.0以来的统计数据:864次提交、588个已合并PR、829个文件变更、295位社区贡献者、关闭282个问题(13个P0、36个P1)。 |
18 |
| 2026-05-06 | 指南v1.4:新增v0.12.0(2026年4月30日)— Curator版本。重点:在gateway的cron计时器上运行的自主后台Curator(默认周期为7天),可依据评分标准评估skill库、清理失效skill、整合相关skill并生成逐次运行报告——即使没有活跃会话,Hermes也能自我维护。自我改进循环得到升级,加入基于评分标准的评估、主动更新偏置、正确的运行时继承,以及仅限memory和skills的作用域toolset。4个新的推理提供商:GMI Cloud、Azure AI Foundry、MiniMax OAuth和Tencent Tokenhub。LM Studio升级为一等公民。远程模型目录清单现在无需发布新版本即可自动更新。2个新的消息平台:Microsoft Teams(第19个,通过可插拔gateway架构接入)和Tencent Yuanbao(第18个,原生支持文本和媒体)。通过PKCE OAuth提供原生Spotify支持,并捆绑相应skill;新增用于通话和转录的Google Meet插件;新增Piper本地TTS提供商。ComfyUI v5和TouchDesigner-MCP由可选组件改为默认捆绑。新增skills:Humanizer、claude-design、design-md、airtable。CLI新增功能:hermes -z单次运行模式、hermes update --check预检查、/reload-skills斜杠命令、可插拔忙碌指示器样式。通过延迟初始化智能体和延迟导入,TUI可见冷启动时间缩短约57%。安全性:默认禁用密钥脱敏,防止载荷损坏;针对无法恢复的命令设置严格阻止列表。统计数据:1,096次提交、550个已合并PR、213位社区贡献者。 |
17 |
| 2026-04-25 | 指南v1.3:新增v0.11.0(2026年4月23日)— Interface版本。使用React/Ink全面重写交互式TUI,配备Python JSON-RPC后端(tui_gateway);固定输入框、支持OSC-52剪贴板的实时流式输出、稳定的选择器按键、带逐轮计时器和git分支的状态栏、/clear确认、浅色主题预设、子智能体生成可观测性浮层。可插拔传输架构——将格式转换和HTTP传输提取至agent/transports/,使提供商接入结构更加清晰。通过Converse API提供原生AWS Bedrock支持。5条新的推理路径:NVIDIA NIM、Arcee AI、Step Plan、Google Gemini CLI OAuth和Vercel ai-gateway。通过Codex OAuth使用GPT-5.5——现在无需单独的API密钥,即可通过ChatGPT Codex OAuth访问OpenAI全新旗舰模型。新增QQBot(第17个消息平台),支持扫码设置和流式输出。插件功能扩展:斜杠命令、工具分派、执行阻止、结果转换。/steer <prompt>——在运行期间向智能体发出提示,将备注注入正在运行的智能体,使其在下一次工具调用后看到该备注,同时不中断当前轮次,也不破坏提示词缓存。Shell hooks无需Python插件,即可将脚本接入生命周期钩子。Webhook直接投递模式可绕过智能体,将载荷直接转发至平台聊天,以便扇出分发。通过编排器角色、可配置的生成深度和文件协调实现更智能的委派。Dashboard新增插件系统、实时主题切换、i18n和移动端响应式支持。自v0.9.0以来的统计数据:1,556次提交、761个已合并PR、1,314个文件变更、224,174行新增代码、29位社区贡献者。 |
60 |
| 2026-04-16 | 指南v1.2:新增v0.10.0——Nous Tool Gateway。Nous Portal付费订阅用户现在无需额外的API密钥,即可使用托管工具(Firecrawl网页搜索、FAL / FLUX 2 Pro图像生成、OpenAI TTS、Browser Use浏览器自动化)。可通过新的use_gateway配置字段逐项选择启用工具。同时配置gateway和直接API密钥时,运行时会优先使用gateway。已移除HERMES_ENABLE_NOUS_MANAGED_TOOLS环境变量。Hermes Agent CLI仍采用MIT许可证,并完全免费。 |
61 |
| 2026-04-13 | 指南v1.1:新增v0.8.0和v0.9.0功能。本地网页dashboard、/fast模式、iMessage和WeChat平台(共16个)、后台进程监控(watch_patterns)、可插拔context engine、hermes backup/hermes import、Termux/Android、xAI、MiMo、Google AI Studio和Qwen提供商、/debug命令,以及全面的安全加固。 |
15 16 |
| 2026-04-10 | 指南v1.0:首次发布,涵盖Hermes Agent v0.7.0。提供商身份验证、配置、CLI、斜杠命令、工具、skills、memory、gateway、cron、MCP、压缩、架构、OpenClaw迁移、故障排除和常见问题。 | |
| — |
参考资料
-
Nous Research,GitHub 上的 “Hermes Agent” 项目 README。产品说明(自我改进型智能体、多提供商支持、消息 gateway、终端后端、skill 演进、cron 调度器、委派)及 “快速安装” 单行命令的主要来源。 ↩↩↩
-
Hermes Agent 文档中的 Nous Research “AI 提供商”。完整提供商列表、各提供商的身份验证方式(Nous Portal OAuth、Codex 设备代码、GitHub Copilot 令牌类型、Anthropic 的3种身份验证方式、中国 AI 提供商、Hugging Face 路由、自定义端点)、3种身份验证路径(
.env中的 API 密钥、通过hermes model使用 OAuth、config.yaml中的自定义端点)、/model斜杠命令语法(包括custom:name:model)、Ollama/vLLM/SGLang/llama.cpp/LM Studio 设置模板、WSL2 网络配置说明、上下文长度检测链、备用模型配置、智能模型路由及具名自定义提供商的主要来源。本文中所有特定于提供商的环境变量名称、令牌类型、基础 URL 覆盖值和模型标识符均来自此页面。 ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Hermes Agent 开发者指南中的 Nous Research “架构”。系统概览图、目录结构、通过 CLI 会话与 gateway 消息路径的数据流、3种 API 模式(
chat_completions、codex_responses、anthropic_messages)、通过runtime_provider.py解析提供商、通过 SQLite + FTS5 持久化会话、消息 gateway 平台列表、插件系统发现来源、profile 隔离及6项设计原则的主要来源。 ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Hermes Agent 用户指南中的 Nous Research “配置”。配置目录结构、
config.yaml与.env的规则(“对于非敏感设置,以config.yaml为准”)、配置优先级链(CLI 参数 → 环境变量 → config.yaml → .env → 默认值)、上下文压缩设置(compression.*块,包含threshold、threshold_tokens、target_ratio、tail_mode、protect_last_n、protect_first_n;自配置版本17迁移后,摘要器的模型、提供商和端点位于auxiliary.compression.*下)、预算压力阈值(70%时提示注意,90%时发出警告)、针对本地提供商自动调整的流式传输超时,以及完整辅助模型配置块(auxiliary:,包含vision、web_extract、approval、compression、session_search、skills_hub、mcp、flush_memories槽位)的主要来源。辅助、压缩和回退槽位对"main"提供商的限制也来自此页面。 ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Hermes Agent 指南中的 Nous Research “从 OpenClaw 迁移”。OpenClaw → Hermes 迁移流程的来源。 ↩↩
-
Hermes Agent 参考文档中的 Nous Research “CLI 命令参考”。本文记录的所有顶层 CLI 命令的主要来源,包括
hermes chat、hermes model、hermes gateway、hermes setup、hermes auth、hermes status、hermes cron、hermes webhook、hermes doctor、hermes dump、hermes logs、hermes config、hermes pairing、hermes skills、hermes honcho、hermes memory、hermes acp、hermes mcp、hermes plugins、hermes tools、hermes sessions、hermes insights、hermes claw、hermes profile、hermes completion、hermes update和hermes uninstall。本文中所有子命令标志、选项说明、凭据池行为、日志筛选语法、OpenClaw 迁移标志、profile 管理命令及服务安装命令均来自此页面。 ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Hermes Agent 入门指南中的 Nous Research “安装”。单行安装命令、安装程序行为(先决条件、平台支持、Termux 自动检测、Windows/WSL2 要求)、可选附加组件表、手动安装步骤及验证命令的主要来源。 ↩↩↩↩↩↩↩↩↩
-
Nous Research,“CLI 命令参考”——请特别参阅
hermes dump一节,其中说明了该命令的输出格式(标题、环境、身份、模型、终端、API 密钥、功能、服务、工作负载、配置覆盖值),以及用于共享诊断信息的预期用途。 ↩ -
Hermes Agent 参考文档中的 Nous Research “斜杠命令参考”。本文所列全部斜杠命令、
COMMAND_REGISTRY架构、CLI 与消息传递之间的区别、动态 skill 斜杠命令、config.yaml中的快捷命令、前缀匹配行为,以及仅限消息传递的命令(/status、/sethome、/approve、/deny、/update、/commands)的主要来源。 ↩↩↩↩↩↩↩↩↩↩ -
Hermes Agent 用户指南中的 Nous Research “工具与 Toolset”。工具类别概览、toolset 使用命令、7种终端后端(local、docker、ssh、singularity、modal、daytona、vercel_sandbox)、容器配置(cpu、memory、disk、persistent)、容器安全加固、后台进程管理 API 及 sudo 支持的主要来源。 ↩↩↩↩↩↩↩↩↩↩
-
Hermes Agent 用户指南中的 Nous Research “Skills 系统”。渐进式披露、
SKILL.md格式、平台专用 skills、条件激活(fallback_for_toolsets、requires_toolsets、fallback_for_tools、requires_tools)、通过skill_manage由智能体管理 skills、skill 中心命令及来源列表(official、skills-sh、well-known、github、clawhub、claude-marketplace、lobehub)、安全扫描与信任级别,以及外部 skill 目录的主要来源。 ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Hermes Agent 用户指南中的 Nous Research “持久记忆”。
MEMORY.md/USER.md字符数限制、冻结快照模式、记忆工具操作(add、replace、remove)、应保存与应跳过的内容、记忆与会话搜索的比较,以及外部记忆提供商的主要来源。在标签v2026.9.24中,配套的记忆提供商页面(第9行)写道:“Hermes Agent 随附7个外部记忆提供商插件”,并补充说明“插件目录中还提供更多插件(如 Hindsight)”;该标签下的plugins/memory/包含byterover、holographic、honcho、mem0、openviking、retaindb和supermemory。 ↩↩↩↩↩↩↩↩ -
Hermes Agent 用户指南中的 Nous Research “个性与 SOUL.md”。
SOUL.md行为(位于HERMES_HOME中、永不被覆盖、在系统提示词中居第1位、纳入前会进行安全扫描)、SOUL.md 与 AGENTS.md 的区别、内置个性列表(从helpful到hype的14种个性)、config.yaml中的自定义个性、/personality叠加模式,以及完整提示词栈组装顺序的主要来源。 ↩↩↩↩↩↩↩↩↩↩↩↩ -
Hermes Agent 指南和参考文档中的 Nous Research “将 MCP 与 Hermes 配合使用”及 MCP 配置参考。
config.yaml中包含command、args、env字段的mcp_servers:配置格式的来源。 ↩ -
Hermes Agent v0.8.0 发行说明。2026年4月8日。后台进程自动通知、Nous Portal 上免费的 MiMo v2 Pro、跨平台实时切换
/model、Google AI Studio 原生提供商、Qwen OAuth、基于非活动时长的超时机制、Slack/Telegram 上的批准按钮、MCP OAuth 2.1 PKCE、集中式日志记录、插件系统扩展。 ↩↩↩↩↩ -
Hermes Agent v0.9.0 发布说明。2026年4月13日。本地 Web 仪表盘、快速模式(
/fast)、通过 BlueBubbles 支持 iMessage、WeChat + WeCom、Termux/Android、后台进程监控(watch_patterns)、xAI + Xiaomi MiMo 原生提供商、可插拔 context engine、统一代理支持、安全加固(修复路径遍历、Shell 注入、SSRF、RCE)、hermes backup/hermes import、/debug+hermes debug share,支持 16 个平台。共 487 次提交、269 个已合并 PR、24 位贡献者。 ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Hermes Agent v0.12.0 发布说明。2026年4月30日。“Curator 版本。”新增自主运行的后台 Curator,默认每 7 天借助 gateway 的 cron 定时器对 skill 库进行评分、清理和整合。自我改进循环全面升级:基于评分标准的评估、主动更新倾向、正确的运行时继承,以及仅限内存和 skills 的作用域 toolsets。新增 4 个推理提供商:GMI Cloud、Azure AI Foundry、MiniMax OAuth、Tencent Tokenhub。LM Studio 升级为一等公民。远程模型目录清单无需发布新版本即可自动更新。新增 2 个消息平台:Microsoft Teams(第 19 个,通过可插拔 gateway 架构接入)和 Tencent Yuanbao(第 18 个,原生支持文本 + 媒体)。通过 PKCE OAuth 原生集成 Spotify,并附带 skill;Google Meet 插件支持通话和转录;新增 Piper 本地 TTS 提供商。默认捆绑 ComfyUI v5 + TouchDesigner-MCP。新增 skills:Humanizer、claude-design、design-md、airtable。CLI:
hermes -z单次运行模式、hermes update --check预检、/reload-skills斜杠命令,以及可插拔的忙碌指示器样式。通过延迟初始化,TUI 冷启动时间缩短约 57%。安全性:默认禁用密钥脱敏;对不可恢复命令采用严格的阻止列表。自 v0.11.0 以来的统计数据:1,096 次提交、550 个已合并 PR、213 位社区贡献者。另请参阅:v2026.4.30 发布标签。 ↩↩↩ -
Hermes Agent v0.13.0 发布说明。2026年5月7日。“Tenacity 版本。”新增多智能体看板,支持心跳检测、任务回收、僵尸检测、幻觉门控、按任务配置
max_retries,以及多项目看板。新增/goal斜杠命令,可跨轮次锁定目标(Ralph 循环原语),并支持配置轮次预算。新增video_analyze工具,以 Gemini 为首选,同时可扩展至兼容的多模态模型。新增支持语音克隆的 xAI Custom Voices TTS 提供商。支持 7 种语言的 i18n:zh-Hans、ja、de、es、fr、uk、tr(CLI + gateway 消息;文档仅支持 zh-Hans)。Google Chat 作为第 20 个消息平台,通过可插拔适配器模式接入,并提供通用的env_enablement_fn/cron_deliver_env_var插件钩子;IRC 和 Microsoft Teams 也已迁移至同一模式。新增ProviderProfileABC +plugins/model-providers/,用于接入可插拔的第三方提供商。gateway 重启、/update和源文件重新加载后均可自动恢复会话。Checkpoints v2 重写为单一存储架构,具备真正的清理机制和磁盘防护措施,不再产生孤立的影子仓库。完成 8 项 P0 安全修复:默认启用密钥脱敏;修复 Discord 跨服务器私信绕过问题(CVSS 8.1,角色允许列表限定于服务器范围);WhatsApp 默认拒绝陌生人,并且永不在与自己的聊天中响应;修复 MCP OAuth 凭据保存过程中的 TOCTOU 问题;修复凭据写入器中 CLIauth.json的 TOCTOU 问题;在混合路由中为浏览器访问云元数据设置 SSRF 基线防护;扫描 cron 组装后的提示词(包括 skill 内容)以防范提示词注入;上传时对hermes debug share日志内容进行脱敏。其他重要更新:对 Python/JSON/YAML/TOML 执行写入后 lint 检查;新增 cronno_agent纯脚本看门狗模式;为 Slack/Telegram/Mattermost/Matrix/DingTalk 提供平台允许列表;增强 MCP(SSE 传输、OAuth 转发、将图像结果输出为 MEDIA 标签)。自 v0.12.0 以来的统计数据:864 次提交、588 个已合并 PR、829 个文件发生变更、295 位社区贡献者、关闭 282 个问题(13 个 P0、36 个 P1)。 ↩↩↩↩↩↩↩↩↩↩↩↩ -
Hermes Agent v0.14.0 发布说明。2026年5月16日。“Foundation 版本。”自 v0.13.0 以来:808 次提交、633 个已合并 PR、1,393 个文件发生变更、新增 165,061 行、关闭 545 个问题(12 个 P0、50 个 P1),以及 215 位社区贡献者。新增支持 grok-4.3 及 100 万上下文的 SuperGrok OAuth、
hermes proxy、x_search、PyPI 打包、延迟加载依赖、跨会话 1 小时 Claude 提示词缓存、启动速度提升约 19 秒、浏览器 CDP 调用速度提升 180 倍、LINE 和 SimpleX Chat(消息平台总数增至 22 个)、/handoff、原生澄清按钮、Discord 历史记录回填、基于原始像素的vision_analyze、每轮文件变更验证器页脚、LSP 语义诊断、统一的video_generate、cua-drivercomputer_use、OSC8 链接、Zed ACP Registry 支持、OpenRouter Pareto Code 路由器、NovitaAI、Codex app-server 运行时、huggingface/skills、插件ctx.llm、tool_override、Brave/DDGS 搜索、危险命令加固、/subgoal、Qwen Cloud 重命名、原生 Windows 测试版、总计 16 个区域设置,以及大范围的文档和测试更新。 ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Hermes Agent v0.16.0 发布说明,“The Surface Release”,标签
v2026.6.5,发布于2026-06-06T00:55:58Z(发布标签日期为2026年6月5日);截至2026年6月8日为最新版本。新增原生 Hermes Desktop(基于 Electron,支持 macOS/Linux/Windows;通过安全 WebSocket 使用 OAuth 或用户名/密码连接远程 gateway;支持按 profile 配置远程主机;支持跨 profile 的@session链接;通过强类型 i18n 提供简体中文界面,可用display.language设置)。Web 控制面板扩展为完整的管理面板(MCP 目录开关、凭据管理、webhook/hook 创建、内存配置、gateway 控制、带有更新前检查和 Debug Share 的 System 页面,以及 Channels 页面;支持可插拔身份验证,包括自托管 OIDC 和hermes dashboard register)。新增命令:/undo [N]、可配置的默认界面(cli/tui、--cli)、TUI/model与 Sessions 浮层、hermes portal、hermes prompt-size、hermes sessions optimize。新增模型:deepseek-v4-flash、MiniMax-M3(1M 上下文)、qwen3.7-plus、gemini-3.5-flash;支持 xAI Grok OAuth;新增模糊选择器;模型目录每小时刷新。Skills:精简默认集合、通过environments:进行相关性筛选、将NVIDIA/skills设为默认受信任 tap、渐进式披露工具,并修复 MCP 错误返回 OAuth 成功的问题。安全性:将存在 CVE-2026-48710(Starlette BadHost)的版本固定升级至≥1.0.1;将 SSRF 检查移出事件循环;从子进程环境中移除 Bedrock bearer token;为读取bws_cache.json增加保护;将docker restart/stop/kill加入危险模式;净化不可见 Unicode 字符;关闭2项 P0 和62项 P1 问题(其中16项带有安全标签)。已排除发布说明中的营销性表述(PR/提交数量、“none of this existed a week ago”),仅记录与该标签关联的具体功能和版本事实。当前会话于2026年6月8日完成验证。 ↩↩↩↩↩↩↩↩ -
Hermes Agent v0.17.0 发布说明,“The Reach Release”,标签
v2026.6.19,2026年6月19日发布;截至2026年6月21日为最新版本。消息平台:通过 Photon Spectrum 支持 iMessage(设备代码 OAuth、hermes photon login,无需 Mac 中继);提供官方 WhatsApp Business Cloud API 适配器(取代桥接进程);支持 SimpleX 群组、原生附件、文本批处理和自动接受;内置 Raft 平台插件。模型/提供商:z-ai/glm-5.2(1M 上下文)、anthropic/claude-fable-5、laguna-m.1、nemotron-3-ultra、grok-composer-2.5-fast(xAI OAuth,200k 上下文);xAI 默认模型改为grok-build-0.1;Anthropic 自适应模型采用现代思考协议(不含reasoning字段)。CLI/斜杠命令:/version、/billing、hermes photon login、hermes curator run --consolidate(选择启用)、hermes modelGUI,以及 profile 克隆。Desktop:后台 subagent 监视窗口(delegate_task(background=true))、Composer 模型选择器、可重新绑定的快捷键、原生操作系统通知、按线程保存草稿、VS Code Marketplace 主题,以及日语和繁体中文界面。控制面板:完整的 profile 构建器、全局 profile 切换器、经过全面改造并集成安全扫描的 Skills Hub、Automation Blueprints,以及安全登录(位于 OAuth 后方,未登录时返回401)。Skills/工具:image_generate支持跨提供商的图生图编辑;memory新增operations原子批处理;新增simplify-code并行审查 skill;使用布尔值write_approval取代write_mode。架构:后台 subagent(立即返回句柄,结果作为新一轮对话重新进入)、用于工具调用期间确认的 MCP 信息征询处理程序、在轮次之间公开后接入的 MCP 工具、可插拔 CronScheduler 与 Chronos 托管 cron、Managed 作用域(管理员固定配置的/etc/hermes),以及 Gateway-Gateway 中继。安全性:修复 shell 转义拒绝列表绕过问题;缺少审批模块及自有策略 gateway 适配器时采用故障关闭;净化 cron 作业脚本环境;在调试转储中遮盖机密信息;不在公开状态中披露主机元数据;筛查 MCP stdio 数据外传模式;升级 urllib3 和 PyJWT 以修复 CVE。已排除发布说明中的营销性表述(提交/PR 数量)。当前会话于2026年6月21日完成验证。 ↩↩↩↩↩↩↩↩↩↩↩ -
Hermes Agent v0.18.0 发布说明(标签
v2026.7.1),2026年7月1日——“The Judgment Release”。集中清理高优先级积压问题(12天内关闭全部 P0/P1,约692项);Mixture-of-Agents 成为所有界面均可选择的一等模型,每个参考模型的完整输出均以独立的带标签区块呈现,并支持实时流式生成答案;为/goal引入完成协议(agent 通过运行项目检查自行验证工作);新增/learn命令(只需描述,即可将任何内容转化为可复用的 skill,并自动遵循 CONTRIBUTING.md);新增/journey可视化内存/skill 时间线,支持编辑,并在 Desktop 中提供内存图谱;支持后台 subagent 扇出(同时执行多个委派任务);新增 Desktop Projects(项目/代码仓库/lane 模型);提供具备排空协调机制、可缩容至零的 gateway;支持 Google Vertex AI(通过 GCP 服务账号使用 Gemini,并自动刷新 OAuth2 token);新增/prompt$EDITOR 命令。当前会话于2026年7月1日(PST)根据 GitHub 发布页面完成验证;v0.18.0 为最新版本。 ↩↩↩↩↩↩↩↩↩↩↩ -
Hermes Agent v0.20.5 发布说明(标签
v2026.8.19,注明的发布日期为2026年8月19日,实际发布于2026年8月21日;2026年8月24日通过 GitHub API 获取——prerelease: false)。窗口描述原文:“~746 commits across ~1,250 files (+111,500 / -20,701) - ~323 merged PRs including Bot Mode group-room threads, foldable conversation summaries, blob-face avatars, and PDF/file attachments with drag & drop; the keyless web tier (5-vendor free rotation with ring failover, web search on fresh installs with zero keys); a CLI polish wave (fuzzy /model picker, Ctrl+P command palette, richer /status); execution-discipline and runtime stall guards from the Composio eval findings;hermes updatereceipts and fleet--planverification;hermes worktree list/prune; the opencode-free zero-auth provider; multi-question clarify; desktop perf work (paint-first Bot Mode hydration, compositor spinners, React Compiler in both renderers); and cron jobs gaining persistent memory and per-job reasoning effort.”该版本再次说明:“Full curated release notes for this window will ship with v0.21.0.” ↩↩↩↩↩↩↩↩↩↩↩ -
标签
v2026.8.31的终端后端(已针对指南 v1.17 重新验证;agent/terminal_env_registry.py与其v2026.8.31版本逐字节相同,tools/terminal_tool.py文档字符串中的事实未发生变化,tools/environments/仍包含相同的7个后端模块,现另有一个path_utils.py辅助文件):tools/terminal_tool.py模块文档字符串原文:“A terminal tool that executes commands in local, Docker, Modal, SSH, Singularity, Daytona, and Vercel Sandbox environments”;在环境选择列表中,vercel_sandbox条目的原文为“Execute in Vercel Sandbox cloud sandboxes”;该标签下存在后端模块tools/environments/vercel_sandbox.py,与daytona.py、docker.py、local.py、modal.py、singularity.py和ssh.py并列。该标签下的 README 原文:“Seven terminal backends – local, Docker, SSH, Singularity, Modal, Daytona, and Vercel Sandbox.”Tools & Toolsets 文档页面(该标签下的源文件为website/docs/user-guide/features/tools.md)在表格中将vercel_sandbox描述为“Vercel Sandbox cloud microVM”,用途为“Cloud execution with snapshot-backed filesystem persistence”;页面还展示配置注释# or: docker, ssh, singularity, modal, daytona, vercel_sandbox,并注明:“Authenticate with all three ofVERCEL_TOKEN,VERCEL_PROJECT_ID, andVERCEL_TEAM_ID. … Supported runtimes arenode24,node22, andpython3.13; Hermes defaults to/vercel/sandboxas the remote workspace root.”在v2026.8.31中,tools/environments/包还包含共享基础设施(base.py中定义了BaseEnvironmentABC,另有file_sync.py、modal_utils.py和managed_modal.py);该包的文档字符串将托管 Modal 视为 Modal 的一种模式,而非第8个后端:“Modal additionally has direct and Nous-managed modes, selected via terminal.modal_mode.” ↩↩↩ -
消息平台数量基于标签
v2026.8.31(已针对指南v1.17重新验证;与v2026.8.31相同——文档表格含28行,仍为24个Platform枚举成员和22个适配器目录)。Messaging Gateway文档页面(该标签下的源文件为website/docs/user-guide/messaging/index.md)包含一个有28行的“平台对比”表:Telegram、Discord、Slack、Google Chat、WhatsApp、WhatsApp Cloud API、Signal、SMS、Email、Home Assistant、Mattermost、Matrix、DingTalk、Feishu/Lark、WeCom、WeCom Callback、Weixin、BlueBubbles、Photon (iMessage)、QQ、Yuanbao、Microsoft Teams、LINE、ntfy、Raft、IRC、Buzz、SimpleX。gateway/config.py定义了class Platform(Enum),其中包含24个显式成员(local、telegram、discord、whatsapp、whatsapp_cloud、slack、signal、mattermost、matrix、homeassistant、email、sms、dingtalk、api_server、webhook、msgraph_webhook、feishu、wecom、wecom_callback、weixin、bluebubbles、qqbot、yuanbao、relay),并注明:“插件平台使用由_missing_()按需创建的动态成员,因此无需修改此枚举,Platform("irc")即可正常工作。”该标签的plugins/platforms/目录树包含22个适配器目录:a2a buzz dingtalk discord email feishu google_chat homeassistant irc line matrix mattermost ntfy photon raft simplex slack sms teams telegram wecom whatsapp。平台说明:ntfy页面原文为:“ntfy是一种基于HTTP的简易发布—订阅通知服务。它既可使用ntfy.sh上的免费公共服务器,也可连接任何自托管实例……在ntfy移动应用中订阅主题,向该主题发送消息即可与代理对话,并在手机上接收回复。”Buzz页面原文为:“Buzz适配器将Hermes连接至Buzz社区——这是Block基于Nostr协议构建的开源人类与代理协作平台——并在Buzz频道(或私信)与代理之间转发消息。出站流量通过shell调用buzzCLI二进制文件……入站流量则使用原生Nostr WebSocket订阅。”两个页面均写道:“运行hermes gateway setup并选择……即可按照引导逐步完成设置。” ↩↩↩ -
提供商数量基于标签
v2026.8.31(已针对指南v1.17重新验证;v0.21.0已将这些数量从v2026.8.31的38个静态条目/37个插件目录/41行文档表格更改为当前数值)。hermes_cli/models.py声明了CANONICAL_PROVIDERS: list[ProviderEntry],其中包含39个静态条目(nous、fireworks、openrouter、moa、novita、lmstudio、anthropic、openai-codex、openai-api、alibaba、xai-oauth、xiaomi、tencent-tokenhub、tencent-tokenplan、nvidia、copilot、copilot-acp、huggingface、gemini、vertex、deepseek、xai、zai、kimi-coding、kimi-coding-cn、stepfun、minimax、minimax-oauth、minimax-cn、ollama-cloud、arcee、gmi、kilocode、opencode-zen、opencode-go、bedrock、azure-foundry、ai-gateway、qwen-oauth),后接注释:“使用在providers/中注册、但尚未列入上述列表的任何提供商自动扩展CANONICAL_PROVIDERS。只需添加plugins/model-providers//,即可在模型选择器中显示新的提供商”;该循环仅跳过oauth_device_code、oauth_external、external_process、aws_sdk、copilot和vertex这几种身份验证类型(未变)。该标签的plugins/model-providers/目录树包含39个提供商目录(nebius-token-factory和router在v0.21.0时间窗口内新增);其中没有静态条目的9个目录(actual、alibaba-coding-plan、commandcode、deepinfra、meta-ai、nebius-token-factory、opencode-free、router、upstage)均解析为api_key身份验证类型——7个目录显式声明了auth_type="api_key"(包括两个新增插件),而commandcode和opencode-free则从providers/base.py继承auth_type: str = "api_key"。AI Providers文档页面(该标签下的源文件为website/docs/integrations/providers.md)以表格列出45个具名提供商,另有一行“自定义端点”(自v2026.8.31以来新增的行:Ramp Router、Nebius Token Factory、Tencent TokenPlan、Alibaba Cloud (Token Plan)——引文见36);新矩阵行中的每个环境变量名称、提供商slug、别名和身份验证说明均引自该表,其中包括:“OpenCode Free | 无需密钥——不需要API密钥或账户(提供商:opencode-free,别名:free、opencode_free)。通过hermes model或/model free选择;请求将匿名发送”、“Google Vertex AI | ……通过服务账户JSON或ADC使用OAuth2,需启用GCP结算”、“AWS Bedrock | ……通过boto3使用标准AWS凭据链”,以及“CommandCode | ……支持GOAT/Pro/Max/Provider套餐(不支持1美元的Go套餐——该套餐没有API访问权限)”。Meta AI行来自同一页面的一级API密钥区块:“Meta Model API(Muse Spark系列)……hermes chat --provider meta-ai --model muse-spark-1.2……要求:MODEL_API_KEY”。Cerebras仅出现在该页面的“其他兼容提供商”表中(https://api.cerebras.ai/v1,“晶圆级芯片推理”),因此列在自定义端点行下,而非作为一级提供商。 ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
CLI 在标签
v2026.8.31时的界面(已针对指南 v1.17 重新验证;引用的全局选项帮助文本及所有_BUILTIN_SUBCOMMANDS相关事实均与v2026.8.31保持一致——frozenset 完全相同,共有 73 个条目——而hermes_cli/_parser.py仅在hermes chat内部发生变化,详见 40)。全局选项及其帮助文本来自hermes_cli/_parser.py:--in(“在启动或恢复前进入 DIR。与 ‘–resume latest’ 或 -c 结合使用时,将选取 DIR 工作区中最近的会话,并让会话留在 DIR 中(跳过恢复已记录的 cwd)。”)、--ignore-user-config(“忽略 ~/.hermes/config.yaml 并回退到内置默认值(仍会加载 .env 中的凭据)”)、--ignore-rules(“跳过自动注入 AGENTS.md、SOUL.md、.cursorrules、memory 和预加载的 skills”)、--tui(“启动现代 TUI,而非经典 REPL”)、--cli(“强制使用经典 prompt_toolkit REPL(覆盖 display.interface=tui)”)、--dev(“与 –tui 配合使用:通过 tsx 运行 TypeScript 源代码(跳过 dist 构建)”),以及--version/-V(“显示版本并退出”)。hermes_cli/_startup_fast.py仅对argv in (["--version"], ["-V"])使用快速路径,而hermes_cli/main.py中的_BUILTIN_SUBCOMMANDSfrozenset 不包含version条目;CLI 命令参考记录了hermes --version(“显示版本信息”),但未记录hermes version。命令说明取自该标签下hermes_cli/main.py和hermes_cli/subcommands/*.py中解析器的help=文本(例如approvals:“审批提示工具(从历史记录中挖掘允许列表提案)”;pause:“紧急停止:暂停 cron/kanban 调度和新的 gateway 轮次”;sync:“Skill Sync——在设备之间以及与团队成员同步您的 skills”;verify:“检测项目的运行方案并对其进行冒烟测试”;login:“已弃用。请使用hermes auth管理凭据,使用hermes model选择提供商,或使用hermes setup完成完整设置。”),并已与文档中的顶级命令表交叉核对。hermes update --plan位于hermes_cli/subcommands/update.py:“显示更新计划并退出,不进行任何更改:安装类型(git/docker/nix)、所有 profile 中正在运行的每项 Hermes 服务及其监管程序和运行中的代码版本,以及每项服务将如何重启。只读;可安全用于在线集群。”;_BUILTIN_SUBCOMMANDS中不存在fleet命令。hermes worktree在hermes_cli/main.py中注册(帮助文本:“审计并回收累积的 git worktree 和已合并分支”),包含list(别名为ls、audit;“对每个工作树进行分类:存续时间、大小、结论、原因(默认操作)”)、prune(“移除安全的工作树并删除已完全合并的本地分支”)、--repo、--dry-run(“显示计划但不进行任何更改”)、--trees-only(“仅移除 worktree;保留本地分支不变”)和--branches-only(“仅删除已合并的本地分支;保留 worktree 不变”)。/worktree斜杠命令是hermes_cli/cli_commands_mixin.py中的_handle_worktree_command(语法块:/worktree、/worktree new [name]、/worktree list、/worktree prune [--dry-run]);CLI 用户指南的“Worktree 清理”一节补充道:“在会话中,/worktree prune [--dry-run]会执行相同操作(并且绝不会触及该会话当前运行所在的工作树)。” ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
标签
v2026.8.31时的 Nous Portal 命令(已针对指南 v1.17 重新验证;hermes_cli/portal_cli.py与其v2026.8.31版本逐字节完全相同)。该标签下的 README 中“跳过 API 密钥收集——Nous Portal”一节写道:“全新安装后只需一条命令:hermes setup --portal……这会通过 OAuth 登录,将 Nous 设置为提供商,并启用 Tool Gateway。您可以随时通过hermes portal info检查当前配置。”hermes_cli/portal_cli.py注册了portal(帮助文本:“设置 Nous Portal(登录、选择模型、Tool Gateway);另请参阅portal info”),其子命令包括login(“登录 Nous Portal 并完成设置(默认;一次性引导流程)”)、info(“显示 Portal 身份验证与 Tool Gateway 路由摘要”)、open(“在默认浏览器中打开 Portal 订阅页面”)、tools(“列出 Tool Gateway 工具以及哪些工具通过 Nous 路由”),代码注释还指出:“保留status,作为info的隐藏向后兼容别名。”Tool Gateway 文档页面展示了hermes setup --portal # Fresh install: Nous OAuth + set Nous as provider + turn on the Tool Gateway in one go和hermes portal info # Portal auth + Tool Gateway routing summary;同一标签下的 CLI 命令参考仍记录为hermes portal [status|open|tools]。 ↩↩↩ -
GitHub 比较 API,
NousResearch/hermes-agent,v2026.8.19...main,获取于 2026年8月26日:ahead_by: 1104、behind_by: 0。发布版本 API 将v2026.8.19(Hermes Agent v0.20.5,发布于 2026-08-21T12:16:39Z)列为最新标签,其说明称:“此时间窗口的完整精选发布说明将随 v0.21.0 一并发布,其中会记录从 v0.20.0 开始的全部内容。”已于 2026年8月27日根据新标签重新检查:v2026.8.27...main返回ahead_by: 0、behind_by: 0、status: identical——main现在与 v0.20.6 标签完全一致。 ↩↩ -
Hermes Agent v0.20.6 发布说明(标签
v2026.8.27,标注发布日期为 8月27日,发布于 2026-08-27T12:06:53Z;于 2026年8月27日通过 GitHub API 获取——预发布:false)。原文定位:“补丁版本。此标签将自 v0.20.5 以来合并的约 525 个 PR 汇总为一个稳定的标签版本,供下游使用者(Docker 镜像、托管部署、全新安装)使用。”原文对该时间窗口的描述:“自 v0.20.5(v2026.8.19,于 8月21日添加标签)以来,此时间窗口内共落地约 1,313 次提交,涉及约 1,557 个文件(+177,113 / -21,682)——包括约 525 个已合并 PR,涵盖经用户同意后使用真实 profile 浏览(使用默认 Chromium profile 进行本地浏览,Windows 上采用经批准后关闭的流程);桌面 Browser 获得独立的操作系统窗口,以及托管式 SSH 远程更新引擎和集群 profile 导航栏;远程 MCP 目录大规模扩充(50 多个经过在线验证、由供应商托管的服务器,包括 Cloudflare、Grafana Cloud、Better Stack、Railway);为 web_search/web_extract 添加 TTL 结果缓存;默认采用 lean-tail 压缩;支持带词干提取的多查询 tool_search;为存储的机密信息提供可选的操作系统钥匙串加密(不再于每次启动时弹出 macOS Keychain 提示);更新程序通过控制套接字暂停 gateway,而非终止整个进程树;镜像/软件包托管式安装会拒绝不安全的原地更新(#91277 第 3 阶段);cron 持久事件确认,以及更清晰的代码版本偏差故障提示;Slack 链接展开控制;共享的 Docker 容器身份;可插拔的终端环境后端;以及选择器中的新模型(GLM-5.3-Flash、MiniMax M3 free、MiniMax H3 Max video)。”该版本说明再次强调:“此时间窗口的完整精选发布说明将随 v0.21.0 一并发布,其中会记录从 v0.20.0 开始的全部内容——包括重点内容、功能领域和完整的贡献者名单。此时间窗口内的任何内容都不会遗漏。” ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
在标签
v2026.8.31下的压缩机制;针对指南v1.17在v2026.8.31下重新验证:tail_mode: str = "lean"、("legacy", "lean")防护逻辑、agent_init的默认值"lean"、配置版本17迁移,以及下文提及的过时辅助注释,在新标签下均保持不变(context_compressor.py新增了固定摘要路由重试路径,但未改变任何引用的默认值)。agent/context_compressor.py在ContextCompressor.__init__中将tail_mode: str = "lean"设为默认值,并附有注释:“精简尾部模式(#compaction-v2):’lean’ = 较小且受限的近期尾部 + 逐字保留的用户消息摘要部分 + 恢复指针;’legacy’ = 0.20窗口尾部(当前发布行为)”;其防护逻辑为self.tail_mode = tail_mode if tail_mode in ("legacy", "lean") else "lean"。agent/agent_init.py读取compression.tail_mode时使用默认值"lean";其注释量化了两种模式:“’lean’(默认)保留受限的2.5%/10K-25K逐字尾部,并配有恢复指针机制……’legacy’恢复#87326之前的0.20阈值逐字尾部;在大窗口或提高阈值的配置中,每次压缩会囤积100-240K个令牌。”配置文档页面(该标签下的源文件为website/docs/user-guide/configuration.md)展示了compression:块,其中包含enabled、threshold: 0.50、threshold_tokens: null、target_ratio: 0.20、tail_mode: lean(在v2026.8.31下的注释为:“’lean’(默认——受限的2.5%尾部,范围为10K-25K;摘要中包含详细会话日志、锚点索引和session_search恢复指针,全部由一次辅助摘要器调用生成;压缩后保留的令牌约减少3倍)或’legacy’(0.20×阈值的逐字尾部)”)、protect_last_n: 20和protect_first_n: 3;摘要器选项位于auxiliary.compression下(model、provider、base_url)。页面还注明:“包含compression.summary_model、compression.summary_provider和compression.summary_base_url的旧配置,会在首次加载时自动迁移至auxiliary.compression.*(配置版本17),无需手动操作。”迁移由hermes_cli/config_migrations.py中的_migrate_to_17实现(“版本16 -> 17:移除旧版compression.summary_键”)。上下文压缩开发者页面(该标签下的源文件为website/docs/developer-guide/context-compression-and-caching.md)在表格中列出tail_mode,其默认值为lean;页面指出:“在包含500K个令牌的真实会话中,结果为:保留约49K,而非约162K”,并称:“精简尾部内的旧工具结果会降级为携带恢复指针的单行存根。”页面还包含摘要模型警告(在v2026.8.31下):“摘要模型的上下文窗口必须至少与主代理模型的一样大。……随后,压缩器会在没有摘要的情况下丢弃中间轮次,悄无声息地丢失对话上下文。”(上游有一处过时内容:配置页面的“完整辅助配置参考”仍将auxiliary.compression项注释为“上下文压缩超时(独立于compression.配置)”;迁移代码、交互式hermes model辅助模型选择器以及该页面自身的压缩部分则是更新且相互一致的来源。) ↩↩↩↩↩↩↩ -
标签
v2026.8.31下的可插拔终端后端(针对指南v1.17重新验证;agent/terminal_env_registry.py与其v2026.8.31版本逐字节完全相同)。agent/terminal_env_registry.py的模块文档字符串原文意为:“已注册可插拔终端后端的中央映射。由插件在加载时通过PluginContext.register_terminal_environment_provider填充;供tools.terminal_tool._create_environment使用”,以及“内置后端名称属于保留名称——如果提供程序名称与其中之一冲突,register_provider会拒绝该提供程序,因此插件绝不可能遮蔽源代码树内的docker/modal/…实现”;此处特意“没有活动提供程序解析逻辑:活动后端就是TERMINAL_ENV / terminal.backend所指定的后端,与内置后端完全相同。”其BUILTIN_BACKEND_NAMES冻结集合包含7个后端及内部模式别名managed_modal:local、docker、singularity、modal、managed_modal、daytona、vercel_sandbox、ssh。新的文档页面终端环境提供程序插件(该标签下的源文件为website/docs/developer-guide/terminal-environment-plugin.md)原文意为:“Hermes通过一组可插拔终端后端运行shell命令。内置后端(local、Docker、Singularity、Modal、Daytona、Vercel Sandbox、SSH)位于核心仓库的tools/environments/下。第三方沙箱供应商则以插件形式集成——独立插件仓库安装在~/.hermes/plugins/下,注册一个后端,用户可通过config.yaml中的terminal.backend选择它,方式与内置后端完全相同”;页面以表格列出已注册提供程序所驱动的各个功能面(命令分派、hermes setup后端选择器、仪表板探测状态、hermes status/hermes doctor检查、系统提示中的环境提示、容器路径/当前工作目录处理、机密信息剥离、每会话沙箱隔离),并阐明设计目标:“在提供程序上声明这些标志,可彻底杜绝‘新后端遗漏了第N个分类位置’这一经典错误类型——核心会在每个位置查询注册表,而非使用硬编码名称列表。” ↩↩↩ -
在标签
v2026.8.31下重新全面验证(指南v1.17)。语言区域:locales/目录树包含17个消息目录——en.yaml及16种翻译(af、ar、de、es、fr、ga、hu、it、ja、ko、pt、ru、tr、uk、zh-hant、zh)——与v2026.8.27相同。个性:hermes_cli/personality.py中的BUILTIN_PERSONALITIES仍包含相同的14项,从helpful到hype(helpful、concise、technical、creative、teacher、kawaii、catgirl、pirate、shakespeare、surfer、noir、uwu、philosopher、hype);该文件与其v2026.8.27版本逐字节完全相同。该标签下已发生变化的数量:39个静态CANONICAL_PROVIDERS条目(原为38个),以及39个plugins/model-providers/目录(原为37个)——参见26和36。保持不变的数量:24个Platform枚举成员(gateway/config.py中的成员列表完全相同,仅新增了room_link_urlgateway字段)、22个plugins/platforms/适配器目录、文档“平台比较”表中的28行;_BUILTIN_SUBCOMMANDS仍包含完全相同的73项(包括peer和worktree,仍无version,也没有approval-check——这是发行说明中对hermes approvals test的称呼);hermes_cli/_startup_fast.py和hermes_cli/portal_cli.py与各自的v2026.8.27版本逐字节完全相同。 ↩↩↩↩ -
tag
v2026.8.31中的辅助模型路由(已针对指南v1.17重新验证;新tag中的"auxiliary"默认配置块包含完全相同的槽位清单、移除说明和非槽位设置,且下方文档引文与原文一字不差)。配置文档页面(该tag中的源文件为website/docs/user-guide/configuration.md)原文:“默认情况下(auxiliary.*.provider: "auto"),Hermes 会将每项辅助任务路由至您的主聊天模型——也就是您在hermes model中选择的同一提供商/模型。无需任何配置即可开始使用,但请注意,对于成本高昂的推理模型(Opus、MiniMax M2.7等),辅助任务会产生不可忽视的费用。”;其中“为何‘auto’使用您的主模型”说明原文:“早期版本会将聚合服务用户(OpenRouter、Nous Portal)分配至提供商侧的廉价默认模型。这出人意料——购买聚合服务订阅的用户会发现其辅助流量由另一个模型处理。现在,auto会对所有用户使用主模型,而config.yaml中针对各项任务的覆盖配置仍然优先。”;关于网页提取,原文:“(网页提取并非辅助任务:web_extract和浏览器快照会以确定性方式截断过长内容,并存储完整文本以供read_file分页读取——不涉及 LLM。)”权威槽位清单位于该tag的hermes_cli/config_defaults.py中的"auxiliary"默认配置块:vision、compression、skills_hub、approval、review、mcp、title_generation、memory_query_rewrite、tts_audio_tags、triage_specifier、kanban_decomposer、profile_describer、goal_judge、curator、monitor、background_review、moa_reference和moa_aggregator(另有非槽位设置transient_retries、free_only、openrouter_model、stream_only_base_urls);各槽位包含provider、model、base_url、api_key、timeout、extra_body,以及针对每项任务的reasoning_effort。同一文件中的移除说明原文:“web_extract 不再使用辅助 LLM——页面内容会被截断并存储,同时提供一个 read_file 指针(不进行摘要),浏览器快照也采用相同模式。旧的auxiliary.web_extract.*配置块已从此处移除。用户 config.yaml 文件中已有的值只是无害的遗留配置,将被忽略。”以及“session_search 不再使用辅助 LLM(PR #27590——单一结构的工具直接返回数据库内容)”;该配置块中不存在flush_memories键。槽位简介来自同一文件的注释(“Triage specifier——将 Kanban Triage 列中粗略的一句话扩充为具体说明,然后将其提升至todo。由hermes kanban specify调用”;“Kanban decomposer——将一项待梳理任务分解为子任务图,并根据描述将其路由至专业profile。由hermes kanban decompose和kanban自动分解调度器调用”;“Profile describer——自动生成1至2句话,说明某个profile擅长处理哪些工作。由hermes profile describe <name> --auto和dashboard中的自动生成按钮调用”;“Goal judge——评估一次 /goal 运行的最新响应是否满足目标/约定”;“Curator——skill使用情况审查分支”;“Background review——每轮交互后的自我改进分支,用于决定是否保存memory或修补skill”)、配置页面完整参考中的注释(“Gemini 3.1 TTS隐藏式音频标签插入”;“自动生成的会话标题。语言留空时沿用对话语言”;auxiliary.title_generation.enabled: false可禁用自动标题),以及 Kanban文档页面中的配置表(“auxiliary.kanban_decomposer| 生成任务图的模型(由Decompose调用)”;“auxiliary.profile_describer| 自动生成profile描述的模型(由hermes profile describe --auto调用)”)。交互式路径:运行hermes model并选择“配置辅助模型”,即可打开针对各项任务的选择器(vision、title_generation、tts_audio_tags、compression、approval、triage_specifier、kanban_decomposer、profile_describer、delegation);Delegation条目会保存至顶层delegation.*,因为subagent“是完整的子agent,而非旁路 LLM 调用”。 ↩↩↩↩↩↩↩↩↩↩↩ -
Hermes Agent v0.21.0发布说明,“The Pantheon Release”,tag
v2026.8.31,标注发布日期为8月31日,发布于2026-08-31T19:29:49Z。统计行原文:“自v0.20.0以来:约5,800次commit · 约2,475个合并的PR · 约5,680个文件发生变更 · 约869,000处新增 · 约135,000处删除 · 约2,100个issue已关闭 · 760多位贡献者”。定位描述原文:“The Pantheon Release。v0.20.0让Hermes成为传令使——他开口传讯,并将消息带给其他agent。在v0.21.0中,众神齐聚。”以及“此版本汇集了v0.20.1至v0.20.6基础设施补丁tag的全部内容——这些发布窗口现已在此完整记录。”上文采用的功能领域引文原文如下:Bot Mode——“Bot Mode现已成为桌面应用内置且默认启用的组成部分:每个agent profile都会获得一个名称、一个确定性生成的头像面孔(提供随机生成/锁定控件),以及共享名册中的一席之地”和“过去,‘multi-agent’意味着底层管道;如今,它看起来就像一款坐满同事的聊天应用”(#87886、#88243、#89386、#96726);hermes peer——“回复会进入每个agent的规范Bot Chat,因此agent之间的对话可持久保存、可供检查,而非发后即忘”(#88725、#88178、#91487);cron——“continuity=true会将每次运行的输出传递至下一次运行(因此monitor可根据已报告的内容去重),每项job都会获得持久化notepad草稿区,而monitor模式的job在没有变化时会完全跳过 LLM”(#91447、#80774、#81139、#81138);delegation——“列出正在运行的子agent,在执行过程中向其中一个发送方向修正,或提前停止它并保留部分结果。新增可选的 JSON-schema子agent输出验证,在结果中显示每次delegation的成本,并提高默认上限(250次迭代、10个并发子agent)”(#85232、#81144、#81142、#86506、#86745);MCP——“通过需明确确认的hermes://深层链接安装 MCP 服务器”(#87525-#87581);CLI——“Ctrl+P可打开模糊搜索命令面板,/model选择器会在输入时筛选,/status可显示推理模式、待处理的审批和context使用量,状态栏还可通过逐字段开关显示实时缓存命中率、延迟和每秒token数”(#90730、#90717、#90745、#98250、#98282、#97666);浏览器——“Hermes现在可以直接导航、点击并读取网页”(#90197、#89366);提供商——“Meta Model API(Muse Spark)作为内置提供商加入,与CommandCode、Tencent TokenPlan、Nebius Token Factory、Ramp Router和Actual Computer并列”(#88565、#88308、#97917、#97916、#97915,以及#79644/#26491的补救内容);安全——“受保护的agent指令文件(AGENTS.md、skills、memory存储)如今始终需要写入审批,因此遭受提示注入的agent无法悄然改写自身的常驻指令”(#81152),另包括敏感信息遮盖全面排查(#80965)、Windows审批覆盖(#84428)、TCC身份(#95091)以及移除Blender MCP(#83404)。回退部分原文:“Model Council模式(/council)——曾经合入,随后回退;不包含在此版本中。”;“DCP context engine——曾经合入,随后回退;不包含在此版本中。”;“仅限WS的gateway服务器(#94245)——合并后又被回退(#96118);FastAPI 仍保留在桌面端启动路径中。带seq标记的事件重放(#94219)确实已发布。”;“Electron已回退至40.10.2;TCC解释器锚点已移除(由已发布的签名身份方案取代)。”错误修复部分以此收尾:“……此外还有约两千个已关闭issue所涉及的修复——此发布窗口平均每天合并约85个PR。” ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
v2026.8.31标签中的新提供商。hermes_cli/models.py新增了ProviderEntry("tencent-tokenplan", "Tencent TokenPlan", "Tencent TokenPlan (Hy4 preview via api.lkeap.cloud.tencent.com, Anthropic Messages)")(静态条目 #39)、目录模型hy4-preview、hy3、hy3-preview,以及仅用于显示的选择器组"tencent": ("Tencent Hy", "Hy4 / Hy3 via TokenHub & TokenPlan", ["tencent-tokenhub", "tencent-tokenplan"])。plugins/model-providers/新增了nebius-token-factory/和router/,两者均声明auth_type="api_key",因此自动扩展机制会将其纳入。router 插件的文档字符串原文为:“Ramp Router 的提供商 profile;Ramp 的 LLM gateway:位于https://api.router.com/v1的单一 OpenAI Responses 兼容端点,可将每个请求路由至上游提供商(OpenAI、Anthropic、xAI、Fireworks 等),并在服务器端处理故障转移和支出控制”……“Responses API 是原生传输协议。”……“有效的模型 ID 取决于密钥对应的GET /v1/models返回结果(BYOK 账户会看到额外条目),因此此 profile 不提供fallback_models——选择器依据实时获取结果,这也符合 Router 自身关于绝不硬编码模型名称的指导。”该标签下的 AI 提供商文档页面列出了 45 个具名提供商及 Custom Endpoint 行;自v2026.8.27以来新增的 4 行原文如下:“Ramp Router |RAMP_ROUTER_API_KEY,位于~/.hermes/.env(provider:router;aliases:ramp-router、ramp、router.com;Responses 原生 gateway,按账户范围实时获取目录)”;“Nebius Token Factory |NEBIUS_API_KEY,位于~/.hermes/.env(provider:nebius-token-factory;aliases:nebius、nebius-tf、tokenfactory)”;“Tencent TokenPlan |TOKENPLAN_API_KEY,位于~/.hermes/.env(provider:tencent-tokenplan;aliases:tokenplan、tencent-lkeap;Anthropic Messages 端点)”;“Alibaba Cloud (Token Plan) |ALIBABA_TOKEN_PLAN_API_KEY,位于~/.hermes/.env(provider:alibaba-token-plan;中国大陆端点:alibaba-token-plan-cn)——Model Studio 固定 token 套餐”。该标签的hermes_cli/config_defaults.py中包含model_overrides("model_overrides": {};显式的model_overrides.<provider>.<model_id>条目优先于目录,而_default条目仅为目录未涵盖的模型补全缺失配置)。 ↩↩↩↩↩↩↩↩ -
v2026.8.31标签中的 cron 连续性。cron 文档页面(该标签下的源文件为website/docs/user-guide/features/cron.md)原文为:“设置continuity=true后,作业会在每次运行时注入其自身最近一次的输出。周期性作业通常每次运行都会从失忆状态开始——新闻侦察任务会重复报告相同新闻,监控任务也会针对相同状况反复告警。启用连续性后,作业唤醒时能看到上次报告的内容,从而去重并承接上次进度”;“后续运行时,系统会在先前输出前加上连续性引导语(‘避免重复已经报告的内容’)……在内部,该标志以context_from中的保留条目self存储。”;“通过 CLI:hermes cron create "every 6h" "Scan for news" --continuity,并可使用hermes cron edit <job_id> --continuity/--no-continuity切换现有作业的设置。dashboard 的 cron 编辑器和桌面版 Bot Mode 的例程对话框中也提供了相同开关。”每个作业的推理强度原文为:“作业可以固定自身的思考级别,不受模型固定设置影响;可选值为none、minimal、low、medium、high、xhigh、max、ultra。设置后,该作业运行时将同时覆盖全局agent.reasoning_effort和每个模型的agent.reasoning_overrides”;可通过hermes cron create/edit --reasoning-effort high设置。Bot Chat 交付原文为:“bot-chat会将输出作为一条真实消息发送到某个 profile 的规范‘Bot Chat’会话中……此处的接收者就是机器人本身:它将输出作为传入消息接收,对任何需要处理的事项采取行动,并在聊天中回复。”记事本:cron/notepad.py模块的文档字符串为:“每个 cron 作业都可使用的轻量 KV 暂存区,用于在定时唤醒之间延续状态(游标、水位线、监视列表)”;上限为“MAX_VALUE_BYTES(16 KB)”和“MAX_JOB_TOTAL_BYTES(64 KB)”(“记事本会在每次运行时注入提示词,因此无限增长会使每次唤醒的提示词愈发臃肿”);以及“写入路径为 CLI(hermes cron notepad <job_id> set <key> <value>),运行中的代理通过其终端工具调用该命令;不会添加模型工具。”监控模式:cron/monitor.py的文档字符串为:“监控模式 cron 支持——通过哈希抑制未发生变化的检测结果”,并挂接一个“开销较低的监控源(monitor_script或monitor_url)”;“未变化 -> 完全抑制代理运行(无 LLM,不交付);此次触发被记录为静默的no_change运行”;“输出按完全一致的字节比较——不会移除时间戳,也不会规范化空白字符。监控脚本应输出稳定内容……否则每次触发都会被视为发生变化。”;“启用项:#80774。” ↩↩↩↩↩↩↩ -
v2026.8.31标签中的实时 subagent 编排。委派文档页面(该标签下的源文件为website/docs/user-guide/features/delegation.md)中,“引导正在运行的 Subagent”部分提供的控制界面为{"action": "list"}、{"action": "steer", "subagent_id": "sa-0-1a2b3c4d", "message": "focus on pricing instead"}、{"action": "stop", "subagent_id": "sa-0-1a2b3c4d"};原文为:“list返回该对话中仍处于活动状态的子项:subagent_id、目标、状态、running_seconds、accepting_steer和实时转录路径”;“stop会在子项的下一个迭代边界提前终止它;部分结果仍会作为正常的完成消息重新进入对话”;控制操作“仅限调用者自身的生成树——一个对话绝不可能查看或控制另一会话的子项——而且不会占用每轮的 subagent 生成上限,因此即使达到上限,stop仍然有效”;关于引导消息的交付,文档如实说明了竞态条件(“已排队不等于已交付,但绝不会伪造成功”;pending_steer会排入结果中等待处理,如果子项先完成,则标记为missed_steer)。默认值:hermes_cli/config_defaults.py将delegation.max_iterations设置为250(“每个 subagent 的迭代上限;每个 subagent 都有自己的预算,独立于父项的 max_iterations”),并将delegation.max_concurrent_children设置为10(“统一并发上限:每批次的最大并行子项数,同时也是并发后台(background=true)委派单元的最大数量……(取代已弃用的 max_async_children。)”)。上游仍有一处过时内容:委派文档页面本身仍称“默认 3 个任务”,其配置参考中也显示“max_iterations: 50……(默认值:50)”;实际发布的config_defaults.py与发行说明(“默认值已提高(250 次迭代、10 个并发子项)”)较新,且二者内容一致。 ↩↩ -
标签
v2026.8.31中的安全更新。受保护的指令文件:hermes_cli/config_defaults.py默认设置security.protected_instruction_files: True(注释:“写入代理指令文件(AGENTS.md/CLAUDE.md/SOUL.md/…)”),并设置protected_instruction_extra_patterns: [](对基本文件名进行 fnmatch 匹配);tools/file_tools.py实现了这道关卡——针对_PROTECTED_INSTRUCTION_BASENAMES = frozenset({"agents.md", "claude.md", "soul.md", ".cursorrules", ...})的“受保护代理指令文件(始终询问的审批关卡)”——并明确描述了威胁模型,原文为:“攻击向量:一条被注入的指令修改 AGENTS.md / CLAUDE.md / SOUL.md”,以及“项目上下文指令文件会从 cwd 目录树中加载——代理日后可能运行于其中的任何位置,其 AGENTS.md 都是一个实时攻击目标。”TCC 身份:hermes desktop --setup-tcc-identity在hermes_cli/main.py中实现——_desktop_macos_setup_tcc_identity(identity: str = "Hermes Local Signing"),“为hermes desktop --setup-tcc-identity执行一次性设置”,并设有保护条件“(–setup-tcc-identity 仅适用于 macOS;正在跳过)”和“(–setup-tcc-identity 需要 openssl、security 和 codesign……)”。脱敏全面排查(#80965、#80964、#81675、#81686、#88232)、Windows 审批覆盖(#84428)、移除 Blender MCP(#83404),以及 Tier-1 插件安装扫描(#80728)均以发布说明为准。35 ↩↩↩↩ -
标签
v2026.8.31中的 CLI 界面变更。hermes_cli/commands.py中的COMMAND_REGISTRY注册了CommandDef("palette", "Open the fuzzy command palette (also Ctrl+P)", "Info", ...)和CommandDef("status", "Show session, model, token, and context info", "Session", ...)——/status是共享注册表中的会话命令,并非仅限消息传递。_BUILTIN_SUBCOMMANDS中没有approval-check条目(共 73 个条目,与v2026.8.27完全相同);v0.21.0 发布说明称为hermes approval-check(#81137)的试运行命令,实际是hermes approvals test——该标签下hermes_cli/subcommands/approvals.py中的解析器帮助文本为:“试运行某条命令的审批裁决(绝不会执行该命令)”,并提供--backend(“要用于评估的终端后端类型(默认值:local……”)和--json。hermes_cli/_parser.py仅在hermes chat内发生变更:-q/--query的帮助文本现为“要运行的查询。在真实 TTY 上,该提示会为交互式会话提供初始内容(作为第一轮按原样提交);与 –oneshot 或 -Q 组合使用,或在非 TTY 环境中运行时,则回答后退出。”;新增的--oneshot标志说明为“与 -q/–query-file 配合使用:回答查询后退出(旧版单次查询行为),而不是启动交互式会话。在非 TTY 标准输入输出环境中或使用 -Q/–quiet 时隐式启用。”;--max-turns的说明为“每轮对话中调用工具的最大迭代次数(默认值:500,或配置中的 agent.max_turns)”。 ↩↩↩↩↩↩↩↩↩ -
Hermes Agent v0.21.1 发布说明,标签
v2026.9.7,标示发布日期为9月7日,发布于 2026-09-07T22:17Z。正文刻意保持简短;原文称这是一个“补丁版本”,“汇总了自 v0.21.0 以来当前 main 分支的内容,供带标签的部署和下游使用者使用”;准备发布时,该时间窗口的统计数据为“4,364 个变更文件中的 5,139 个非合并提交(+601,014 / -768,419)”和“632 个已合并 PR”;并称“该时间窗口完整整理的发布说明将随 v0.22.0 一同发布。”本地克隆检查:git rev-list --count --no-merges v2026.8.31..v2026.9.7= 5,140,git diff --shortstat= +601,018 / -768,423——正文中的数字是发布提交之前的快照,差值恰好来自该发布提交;此前相邻标签之间最大的时间窗口是v2026.7.20..v2026.7.30,包含 2,790 个非合并提交(在本地克隆中测量了从v2026.3.12开始的每一对相邻标签)。故障排除条目中的 doctor 检查位于该标签的hermes_cli/doctor_config.py:330-362(_drift_max_iterations_ghost):当启动桥接因更早发生的配置解析错误而退出时,.env中过时的HERMES_MAX_ITERATIONS会遮蔽agent.max_turns(问题 #17534),而hermes doctor --fix会删除.env中的该行。当前会话验证日期为2026年9月8日。 ↩↩↩↩↩ -
标签
v2026.9.7中的COMPAT_MANIFEST.md(仓库根目录,共 3,869 行)。原文:“2026年9月的拆分(PR #102117)将 Hermes Agent 的大型模块拆分为职责明确的文件”;“内部导入路径并非稳定的 API”;“此兼容层为临时措施,将于2026年9月14日移除。它通过单个提交添加,并通过还原该提交来移除。”;“后续行为”表格(2026年9月14日之前:黄色通知,注明插件、日期和hermes plugins compat;插件“会加载;每个旧路径解析操作会发出一次HermesPluginCompatWarning”;自2026年9月14日起:“红色通知:插件已禁用”,且“不会加载;hermes plugins list会显示原因”;Desktop:“一次性模态窗口”);应急开关的原文:“在config.yaml中设置plugins.allow_deprecated_imports: true,可让受影响的插件在该日期之后继续加载,直至还原提交真正移除这些路径。”;类型数量:moved-lazy 1148、import 592、restored-def 290、restored-helper 41、restored-import 17、module-stub 3、unrestorable 34;范围:仅限公开的顶层名称,“测试中的 monkeypatch 接缝同样不会保留。”检查器解析器位于hermes_cli/subcommands/plugins.py:104-112:hermes plugins compat [path] [--json],描述原文为“以静态方式扫描每个已启用的外部插件,查找对拆分前模块路径的导入(参见 COMPAT_MANIFEST.md),并输出文件:行号、旧路径 -> 新路径。任何插件受到影响时均以状态码 1 退出。”已在该标签验证拆分后的结构:agent/= 214 个顶层模块 + 7 个子包(lsp、monitoring、pet、proxy_sources、secret_sources、transports、verify),hermes_cli/subcommands/= 61 个模块,CANONICAL_PROVIDERS位于hermes_cli/models_catalog_static.py:311,包含 39 个条目,其 slug 与hermes_cli/models.py中v2026.8.31的列表完全相同(包括xai静态元组;plugins/model-providers/仍有 39 个目录),旧的顶层prompt_builder.py已移除(现为agent/prompt_builder.py),而根目录中的run_agent.py仍是AIAgent所在文件。后续情况,为指南 v1.19 再次验证(2026年9月15日):移除操作按计划以日期关卡的形式生效,并非还原提交——在标签v2026.9.14中,hermes_cli/plugin_compat.py:32设置了COMPAT_REMOVAL_DATE = _dt.date(2026, 9, 14),removal_in_effect()(第 86–90 行)从该日期起或清单文件缺失时返回 true,而allow_deprecated_imports()(第 261–268 行)仅接受字面布尔值(保护条件为... is True;源代码注释:“仅限字面布尔值”,因此"false"或"no"等 YAML 字符串绝不可能开启移除后的绕过机制)。删除旧路径的还原提交尚未合入:在v2026.9.14以及main的提交5d59366010(2026年9月15日 12:55 PT,当日获取)中,COMPAT_MANIFEST.md、compat_manifest.json和hermes_cli/plugin_compat.py均仍存在,因此应急开关仍能解析旧路径;还原提交一旦合入,它便会立即失效。为指南 v1.20 再次验证(2026年9月22日):仍未进行还原——这 3 个文件在标签v2026.9.21以及main的提交a53b42ddea(提交于2026年9月22日,当日获取)中均存在。在v2026.9.21中,关卡和保护条件实质上没有变化:COMPAT_REMOVAL_DATE仍位于plugin_compat.py:32,removal_in_effect()位于第 86 行,allow_deprecated_imports()现位于第 296–303 行,并采用完全相同的字面布尔值保护条件(... is True;注释现为“仅限字面布尔值:YAML"false"/"no"不得开启移除后的绕过机制。”)。v0.21.4 时间窗口对该模块的唯一更改涉及性能和可移植性:新增进程级扫描缓存,以每个插件目录中各文件的(relpath, mtime_ns, size)签名作为键(多路复用 gateway 会为每个已提供服务的 profile 发现一次插件,而重新解析每个插件的源代码会使启动路径中每个 profile 增加约 0.4 秒开销),并在原生 Windows 上采用 POSIX 格式的命中路径(#112576);清单本身还删除了 2 个与 opencode 相关的行(_OPENCODE_KEYLESS_EXTRA_SLUGS、is_opencode_zen_free_model)——除此之外没有结构性变化。 ↩↩↩↩↩↩↩↩↩ -
docs/session-lifecycle.md在标签v2026.9.7下的“6. 显式对话边界”一节,完整原文:“非活动状态和实际经过时间绝不会轮换对话。/new和/reset会创建显式边界;上下文压缩会继续管理较长的历史记录。旧版计时器配置将被忽略。现有的SessionResetPolicy数据类型只是惰性的兼容性数据,并非运行时策略。显式挂起后,仍会在下一轮入站消息到达时创建边界。恢复操作会遵循显式边界和历史上已最终确定的边界,而不会将其重新打开。仅资源逐出和 WebSocket 孤儿清理不会影响对话的可恢复性。” ↩↩↩↩ -
标签
v2026.9.7下的 MCP 授权。解析器:hermes_cli/subcommands/mcp.py:55-66——login(“强制对基于 OAuth 的 MCP 服务器重新进行身份验证”)接受--flow参数,可选值为browser/device,帮助文本原文为:“OAuth 流程(覆盖 oauth.flow):浏览器 PKCE 或 RFC 8628 设备代码”;reauth(“对一个 OAuth MCP 服务器或所有服务器(–all)重新进行身份验证”)接受一个可选名称及--all。设备代码流程在本周期内落地:提交f5afe8bd40“feat: 通过 CLI 使用设备代码授权 MCP 服务器”。同期配套的加固提交主题包括:f914c9b070“fix(mcp): 在整个 OAuth 会话中强制执行 profile 所有权”;f94307a7f7“fix: 忽略格式错误的 MCP OAuth 元数据缓存”;e3ba651b6d“fix(desktop): 通过客户端本地回调中继 MCP OAuth”。按 toolset 筛选的派生:tools/mcp_tool_discovery.py:412-426——此筛选器让“hermes -z -t <toolsets>”能够“跳过调用方不需要的服务器冷启动”;筛选器为空时会完全跳过 MCP 加载。 ↩↩↩ -
标签
v2026.9.7下的委派可靠性,内容取自 delegate 工具源代码。完成单元:tools/delegate_tool_dispatch.py:326-341(_units_of)——原文:“默认关闭(delegation.independent_completions):整个调用是一个单元,并以一条消息的形式返回。每项任务都密集产生完成通知(每次各占一个新轮次),会使毫无应对计划的编排器支离破碎。”;单元按每个不同的任务group各设一个(遵循首次出现顺序),未分组任务也各设一个,每个单元都会独立重新进入对话;同期提交c89f3b8800“fix(delegation): 默认每次调用只产生一个完成通知;排队的单元不再停滞”。后台进程移交:提交3c0d90e8ef“feat(delegation): 子代理将后台进程移交给父代理;遗留进程会被明确列出,而非默认信任”;在该标签中,tools/delegate_tool_child_run.py:744-763(account_background_processes)会在结果中记录已移交的进程,将仍在运行但尚未移交的进程列为orphaned_processes,将已经退出但从未读取的进程列为unread_completions(附带输出末尾内容),随后由cleanup将其终止。文档字符串指出,父代理“必须从运行时获知此事”,而不能相信子代理声称“监视器正在运行”;移交操作为process_manage(action="handoff")(仅限子代理),它会通过process_registry.transfer_ownership在持有注册表锁期间变更ProcessSession.owner_task_id(该标签下tools/AGENTS.md的“委派”一节)。回退配置界面:hermes_cli/config_defaults.py中的delegation.fallback_providers,注释原文:“对于未固定的子代理,null = 继承父代理链;[] = 禁用回退。按 provider、endpoint 或 model 固定的子代理不会获得回退,除非此设置明确声明回退。”;tools/delegate_tool_config.py:417-425(_resolve_child_fallback_chain)中的链验证:“规范化程序会丢弃格式错误的条目。”崩溃持久性:tools/async_delegation.py:222-246会将仍在运行的多子代理单元中每个已完成的子代理持久记录到该单元自身的行中("partial": True),因此即使该单元完成前发生崩溃,已完成的子代理结果仍会保留。缓存层级:tools/delegate_tool.py:106-112(_apply_child_cache_ttl),原文:“委派的子代理绝不使用 1h 缓存层级。”;如果子代理携带_cache_ttl == "1h",该值会被设为"5m"。 ↩↩ -
标签
v2026.9.7下的 provider 和模型。Astra 层级:hermes_cli/models_catalog_static.py:22-25——openai/gpt-6-astra-fast“2 倍价格,优先层级”,-flex“0.5 倍价格,弹性层级”,另有-pro-fast/-pro-flex;gpt-6-astra和-pro位于OPENROUTER_MODELS中,且不属于_OPENROUTER_ONLY排除集合,因此 Nous Portal 也提供这些模型。Astra 访问限制与 900K:hermes_cli/codex_models.py:96-101(“Astra 受账户限制:只有实时的账户级目录才能公布该模型”)以及agent/model_metadata.py:1447-1462——Codex OAuth 公布的上下文为 272K,gpt-6-astra可使用 900K,并附有注释“公布为 272K;920,043 输入可用,1,000,043 被拒绝(2026-09-04 实测)”;CODEX_CONTEXT_VARIANT_SUFFIX = "-900k"是“仅供选择器使用的可选后缀;绝不会在线路上传输”(根据model_metadata.py:334,OpenRouter 侧 Astra 的上下文为 1,050,000)。同一静态文件中的新目录条目(第 30-42 行):anthropic/claude-fable-5.1、google/gemini-3.8-flash和gemini-3.7-flash、qwen/qwen3.8-max-0902和qwen/qwen3.8-flash、meta/muse-spark-1.3和-contributor(根据agent/model_metadata.py:349,上下文为 1M)。muse-image:plugins/image_gen/meta-ai/__init__.py(“Meta Model API(muse-image):兼容 OpenAI(https://api.meta.ai/v1)”,模型包括muse-image-1.0)。Tavily:hermes_cli/config_defaults.py:2522-2525,原文为“用于 AI 原生网络搜索与提取的 Tavily API 密钥(可选——选择 Tavily 时,无密钥也可使用)”,工具为web_search和web_extract;web配置块注明,Tavily“可通过hermes tools选择无密钥使用,并非环中的成员”。托管式 llama.cpp 运行时:hermes_cli/local_runtime/包(“托管式 llama.cpp 运行时”)、config_defaults.py:2327中的配置块(“官方二进制文件,由一个受监管的”服务器运行;文档指向user-guide/local-models),以及桌面端界面apps/desktop/src/api/local-models.ts。外部进程 provider:agent/auxiliary_client.py:4740-4799(_resolve_external_process_branch,“通过其已注册 profile 提供服务的 PROVIDER_REGISTRYexternal_processprovider”),以已注册的 profile 为键,“从而让树外 ACP provider”得以解析。目录刷新频率:hermes_cli/config_migrations.py:622-627中的配置迁移 39 -> 40(“model_catalog.ttl_hours -> ttl_minutes(默认 20)”,用户消息为“模型目录现在每 20 分钟刷新一次(model_catalog.ttl_minutes)”);hermes_cli/model_catalog.py仅“在ttl_minutes仍为默认值时”兼容旧版ttl_hours。 ↩↩↩ -
tag
v2026.9.7时的 Desktop 更新。评论模式:tag 对应的website/docs/user-guide/desktop.md,核心原文:“在预览浏览器栏中点击 Annotate,然后点击实时页面上的任意元素(或拖动框选),再输入备注;每条已保存的评论都会以带编号的图钉形式保留在页面上”;“保存图钉绝不会发送对话轮次”;“Add N comments 会为每个图钉附加一张裁剪后的屏幕截图,以及一段在编辑器中注明各条评论的简短提示词”;“每条元素评论都携带其 CSS 选择器、标记,以及影响布局的计算样式,使 Agent 能够在源代码中找到该元素,无需根据图片猜测”;“密码、隐藏字段值以及任何看起来像密钥或令牌的属性,都会先在页面上经过脱敏处理,再将标记传出”;“较大的批次会按照每条评论所在的页面区域分组,因此二十多条评论会变成少量工作,而不是每条评论各成一项任务”;“由于这些分组是彼此独立的 DOM 子树,通常会涉及不同文件,因此可以安全地交给并行工作进程处理”。此窗口内的提交:10f2a20966“feat(desktop): 为应用内浏览器添加评论模式”;e4bda3ff77“feat(desktop): 浏览器评论携带元素的选择器、标记和样式”;会话控件8cb2bcc8c1“公开结构化会话控件”+bfddf556bf“载入结构化会话控件”+dffd8d62c2“添加会话自动化控件”;6b1e12c7f4“通过拖动 New session、项目与控件以及 profile 分组来创建会话”;9186e3ebc5“用于外部编码 Agent 转录记录的会话导入视图”;a1c25d393a“Capabilities → Skills 中内置可选 skill 目录,并支持一键安装”;俄语区域设置a922dad9d8“feat(desktop): 添加俄语(ru)区域设置”+269e5bde33(在区域设置测试/文档中注册ru;apps/desktop/src/i18n/ru.ts是此窗口中的新增文件,而 CLI 的locales/仍为 17 个目录)。display.resume_last_session:hermes_cli/config_defaults.py:777,默认值为True,注释原文为“Desktop 在冷启动时重新打开上次的聊天/页面(也可在 Settings → Appearance 中设置)。”真实 profile 同意机制:apps/desktop/src/app/chat/right-rail/real-profile-consent-dialog.tsx(“首次打开时针对真实 profile 浏览显示的同意提示”;当 Browser 窗格打开且browser.use_real_profile处于关闭状态时显示;接受后会写入与 Capabilities 开关相同的配置键,“Not now”会在本次应用运行期间不再提示,“Don’t show again”则会跨启动永久保存)。 ↩↩ -
Hermes Agent v0.21.2 发布说明,“state.db 补丁版本”,tag
v2026.9.11,声明发布日期为9月11日,发布于2026-09-11T19:20Z。原文概述:“v0.21.0 对会话存储的连接处理进行了大规模重写,但这导致某些安装中的state.db变得脆弱:第二个写入进程会取消其他进程的锁,健康的数据库会被误报为损坏,一条异常记录就会让sessions list整体失效。”在提交04dd80a977处统计的数据:“947 个非合并提交”“1,869 个变更文件”“312 个已合并 PR”“140 位贡献者”(本地克隆检查:git rev-list --count --no-merges v2026.9.7..v2026.9.11= 959——正文中的数字是预发布快照,与 v0.21.1 的情况相同)。行动标题原文:“state.db 可靠性行动(6 个 PR,关闭 44 个问题)”(PR #108076、#108082、#108130、#108086、#108074、#108067);更新指导原文:“先运行hermes doctor;它现在能够正确区分结构损坏与索引损坏,并在重建仍不足以解决问题时,引导至hermes sessions recover --inspect-only(锁定到 profile)。”在该 tag 处进行的源代码验证:在gateway/hosted_rooms.py:398-426中将托管房间状态移出根存储——default_db_path会让 profile gateway 使用“共享的根shared-state.db,而不是主state.db”;其文档字符串指出,在一个由 6 个 gateway 组成的集群中(2026-09-03)观察到的反复多写入进程损坏问题,正是禁止 profile gateway 以可写方式打开主会话存储的原因。hermes sessions recover的解析器位于hermes_cli/subcommands/sessions.py:185-196,其中--inspect-only的帮助文本原文为“仅报告规范表的可读性;不创建输出数据库”;该子命令早于此窗口便已存在(v2026.8.31的hermes_cli/main.py中已有),但此前未在本指南中记录。凭据保险库:agent/vault_backends/__init__.py的文档字符串(“浏览器凭据保险库的登录后端”;句柄按后端划分命名空间,使浏览器工具无需更改架构即可路由;外部管理器在每个会话解锁前保持锁定;主密码“绝不会作为工具参数,绝不会进入 argv,也绝不会持久化”)、agent/vault_backends/base.py(LoginBackend“列出登录元数据(绝不包含机密信息),并在填充时解析一个密码”),以及agent/vault_store.py:74-105(身份验证器密钥只能是 base32 种子或otpauth://totpURI;拒绝基于计数器的 HOTP;代码由totp_now生成);该 tag 中还包含后端local.py、onepassword.py、bitwarden.py,以及agent/secret_sources/{onepassword,bitwarden,command}.py。hermes_cli/subcommands/plugins.py中的插件目录子解析器:install帮助文本为“从精选目录、Git URL 或 owner/repo 安装插件”,search为“搜索精选 Hermes 插件目录”,browse为“列出精选插件目录中的所有条目”,pack为“声明式、可共享的插件集合(hermes-pack.yaml)”,并包含install/export/show。apps/desktop/electron/guest-onboarding-flag.test.ts中的访客引导:测试标题原文为“guestOnboardingEnabled:环境变量中恰好为 “1”,或 argv 中存在 –guest-onboarding 时启用免费层级”;测试套件断言'true'、'0'和空值均为关闭状态,并断言desktopBackendSpawnEnv“最后写入启动决策,绝不允许继承值泄漏”。发布说明中列出了多 profile 加固问题集 #107609-#107630。本次会话于2026年9月15日完成验证。 ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Hermes Agent v0.21.3 发布说明,tag
v2026.9.14,声明发布日期为9月14日,发布于2026-09-14T16:04Z。目的原文:此 tag“旨在让下述远程 gateway 登录修复覆盖 Cloud Agent,因为它们会自动更新到最新发布 tag。”在提交9b419a2d3c处统计的数据:“1,036 个非合并提交”“2,642 个变更文件”“338 个已合并 PR”(本地克隆检查:git rev-list --count --no-merges v2026.9.11..v2026.9.14= 1,037,多出的仍是发布提交)。文档中列出的两项内容均已在本地克隆中验证,且仅出现在此窗口:提交5dea46d13d“fix(dashboard-auth): 为 Cookie 门禁和原生路由设置单次刷新机制,脱离事件循环运行”(#110061,修复 #55712;与 Portal 端的 hermes-portal#1209 配套,采用30天滑动空闲期限,并为轮换令牌提供5分钟宽限期)以及提交939a2f64b4“fix: 阻止长时间运行的进程创建重复的 state.db 写入句柄”(#110934,修复 #100896 和 #103339)。延期说明原文:“此窗口的完整精选发布说明将随 v0.22.0 发布,届时会记录从 v0.21.0 起的全部内容”以及“此窗口中的任何内容都不会遗漏”;发布说明中有意暂不记录的清单包括服务器到客户端的 JSON-RPC 请求及 Pydantic 传输契约注册表、每个模型选择器上的推理强度选择、OpenRouter OAuth PKCE、HEIF/HEIC/AVIF 解码、Honcho 对等模型重构、FAL 目录新增项(Wan 3.0、Kling 3.0 / Kling Image v3、MiniMax H3 Max Turbo、Gemini Omni Flash 1.1、Meta Muse)、Slack 粘贴表格与 Agent Sessions API、多路复用 profile 隔离和 gateway 活性修复,以及跨虚拟机文件系统上的 state.db WAL 拒绝机制——按照发布说明自身的表述,以上内容均留待 v0.22.0 扫描。本次会话于2026年9月15日完成验证。 ↩↩↩ -
Hermes Agent v0.21.4 发布说明,标签为
v2026.9.21,标注的发布日期为9月21日,发布于2026-09-21T18:10:55Z。用途原文:“补丁版本。此标签汇总了自v0.21.3以来合并的约1,800个PR,为下游使用方(Docker 镜像、Hermes Cloud、托管部署)提供稳定的带标签版本。此时间窗口的完整精选说明将推迟至v0.22.0发布。”在提交4b8a8134009a处测得的统计数据为:“5,071个非合并提交”,涉及“5,169个变更文件”(+312,961 / -62,855)、“1,812个已合并PR”和“2,116个已关闭议题”——本地克隆检查精确复现了全部5项数据(git rev-list --count --no-merges v2026.9.14..4b8a8134= 5,071;git diff --shortstat= 5,169个文件,+312,961 / -62,855;标签提交d337b736aa“chore(release): v0.21.4 (v2026.9.21)”是4b8a8134的子提交,因此共有5,072个非合并提交,计入合并提交后总计5,173个;而针对v2026.9.14...v2026.9.21的GitHub比较API报告total_commits: 5173, ahead_by: 5173, behind_by: 0)。时间窗口排名(9月23日针对指南v1.21重新核查):按每对相邻v2026.*标签之间的非合并提交数计算,v2026.8.31..v2026.9.7(计入其发布提交后为5,140个)位居第一,v2026.9.14..v2026.9.21(5,072个)位居第二,领先于v2026.7.20..v2026.7.30(2,790个);按发布说明中所述的已合并PR数计算,1,812是所有单一时间窗口汇总说明中的最高值(v0.21.1为“632个已合并PR”,v0.19.1为“约1,000多个PR”;v0.21.0的“约2,475个”涵盖自v0.20.0以来的6个v0.20.x标签,因此不属于单一标签间的时间窗口)。延期说明原文:“此时间窗口的完整精选发布说明将随v0.22.0一同推出,其中将记录自v0.21.0以来的所有内容”以及“此时间窗口中的任何内容都不会遗漏。”有意暂未记录的功能列表包括:gateway单例锁和会合记录,以及Desktop连接到正在运行的主机后端;由后端负责的连接器操作及其Desktop/TUI/CLI设置卡片;--format stream-json;skills.auto_load;Desktop聊天/UI字体选择器、一键更新本地引擎和Plugins中心卸载功能;未经授权的私信所采用的decline行为;mcp.discovery_concurrency;session_search的after/before边界和采用OR放宽条件的召回重试;hermes sessions set-journal-mode;视频目录中的LTX 2.5和Kling O3;目录网站中按插件和作者划分的页面、固定至特定提交的README以及新增/更新排序;“目录中新增了十余个社区插件(tailscale、ssh、shodan、terminal、rss、resetwatch、done-bell、kiwi、cognee、Octen)”(发布说明中的简称;该标签处对应的目录条目为hermes-tailscale、hermes-ssh、shodan、hermes-terminal、hermes-rss、hermes-resetwatch、done-bell、kiwi、cognee、web-octen);以及“大量针对profile/多路复用隔离、cron、kanban、Desktop和state.db的修复”。更新方式:对git安装使用hermes update,或使用安装程序单行命令;“Docker / Hermes Cloud:镜像基于此标签构建(nousresearch/hermes-agent:v2026.9.21)”。当前会话验证日期:2026年9月22日。 ↩↩↩↩↩↩ -
已在标签
v2026.9.21的源代码中核实v0.21.4披露的项目(指南v1.20,2026年9月22日;指南v1.21于9月23日新增操作员规则)。主机单例:gateway/host_rendezvous.py文档字符串——“主机范围的单例会合机制:每个操作系统用户的每个角色使用一把锁和一条记录”;“每台主机恰好运行一个hermes serve和一个hermes gateway run,两者分别复用所有profile”;主机flock/msvcrt锁“在胜出进程的整个生命周期内保持”,并配有会合记录,使第二次调用能够“证明这是同一个仍在运行的进程,并附加到该进程,而不是绑定第二个端口”;通过(pid, createTime)“证明记录已过期,而非主观假定”(“执行附加的客户端绝不能连接已被回收PID的端口”);锁根目录为$HERMES_GATEWAY_LOCK_DIR,若未设置则为$XDG_STATE_HOME/hermes/gateway-locks,作用域限定为操作系统用户(gateway/status.py:308-324:相对路径形式的XDG_STATE_HOME会被忽略,并回退至~/.local/state)。操作员路径:gateway/run.py:5466-5499中的_host_attach_or_none在ATTACH时输出附加消息并以状态码0退出,在REFUSE时拒绝操作,在REPLACE_HOST时将--replace发送给“主机进程,无论该进程由哪个主目录启动”,并在使用--force时跳过询问(“当所有者进程卡死或谎报状态时,供操作员脱困的途径”);_claim_host_gateway_role(gateway/run.py:5331-5346)会让锁竞争中的失败者以EX_TEMPFAIL(75)退出,因为“我们生成的每个进程监督器都会重试75;重试时,所有者的记录已经存在”。gateway/host_attach.py定义了5种结果:ATTACH、RESCAN->ATTACH(控制套接字rescan-profiles)、REPLACE_HOST、REFUSE(“绝不在无提示的情况下启动第二个实例”)、START(独立的单profile gateway可“在强制执行迁移(#109417)之前”共存)。Desktop端:apps/desktop/electron/host-backend-attach.ts(“附加到主机正在运行的Hermes后端(仅限复用,Desktop端)”;其I/O流程读取计算机根级别的启动账本,并按“HTTP就绪状态 -> 已提供的会话令牌 -> WebSocket身份验证”验证候选进程,同时持有“主机级门控,确保两个应用同时启动时只产生一个后端,而非两个”;HOST_SPAWN_GATE_STALE_MS = 60_000)。连接器操作:tools/connectors/operation.py:1原文为“每次manage_connections调用对应一个由后端拥有的连接操作。纯数据,不执行I/O。”;OPERATION_DEADLINE_SECONDS = 300.0,注释为“这不是配置键:允许用户调整且设有上下限的等待时间容易引发问题(PR1曾包含此功能,但未合并)”;该tool注册为manage_connections(tools/connectors/tool.py:16,48,113);每个目标的required_env为“({name, prompt, required});卡片为每个条目呈现一个字段,并在所有必填项均有内容后才启用其操作按钮”;tests/hermes_cli/test_mcp_catalog_env_boundary.py:330中提及三种前端共用的卡片(“连接器卡片后端(Desktop/TUI/CLI设置卡片)采用相同的仅限机密信息拆分方式”)。stream-json:聊天解析器的hermes_cli/_parser.py:247-249——--format可选text/stream-json,默认为text,帮助文本原文为“’stream-json’输出以换行符分隔的JSON事件(JSONL),隐含–quiet,且不能与–tui结合使用”;hermes_cli/stream_json.py模块文档字符串为“每行stdout对应一个JSON对象……system/init->text增量/tool_use/tool_result-> 一个终结result信封(退出码、最终文本、令牌统计信息)。诊断信息和session_id保留在stderr”,_TOOL_OUTPUT_CAP = 5000;禁用组合以状态码2退出;hermes_cli/stream_json.py:23中的stream_json_requested在以状态码2退出前接受query或query_file(cli.py:1703-1705中的Fire入口点检查已经解析的查询);hermes_cli/_parser.py:218-222中的--query-file PATH与-q属于互斥组(帮助文本原文为“从文件而非命令行读取单条查询(’-‘从stdin读取)。可安全处理任意文本:不会由shell解释任何内容”),由_read_query_file(hermes_cli/main.py:1735-1762)读取,自标签v2026.8.19起已存在;契约测试位于tests/hermes_cli/test_stream_json.py(包括“在stream-json模式下绝不能进入stdout”)。skills.auto_load:hermes_cli/config_defaults.py:1435,默认值为[],注释原文为“在每个新会话(CLI、TUI、gateway、cron、API)中固定为完整加载的skill名称。在首次构建agent提示词时解析一次;名称缺失或被禁用时发出警告并跳过;HERMES_IGNORE_RULES与其他自动注入的上下文一样会抑制此列表。” decline:gateway/config.py:137-139——注释原文为“’pair’通过私信发送配对码,’ignore’静默丢弃,’decline’发送一次礼貌拒绝消息,随后在gateway.pairing.DECLINE_DEDUPE_SECONDS内对该发送者保持静默(#88028)”,UNAUTHORIZED_DM_BEHAVIORS = {"pair", "ignore", "decline"},字段默认值为"pair"(:626),unauthorized_dm_decline_message为空时使用DEFAULT_UNAUTHORIZED_DM_DECLINE_MESSAGE(回复内容引自“配对”部分);DECLINE_DEDUPE_SECONDS = 24 * 3600,支持别名的拒绝时间戳位于gateway/pairing.py:37,565-576;get_unauthorized_dm_behavior(gateway/config.py:803-809)负责按平台解析并设置Email默认值:“Email采用收件箱形态,因此默认为"ignore";除非其自身的unauthorized_dm_behavior明确启用其他行为(全局默认值不会使其启用)”。该键本身、pair/ignore以及Email规则早于本时间窗口(已存在于v2026.9.14的gateway/config.py:564,736-742中;由#1919于2026年3月引入);仅decline为新增项。实际默认值:gateway/authz_mixin.py:699-740中的_get_unauthorized_dm_behavior,其文档字符串规定的顺序为“显式的按平台配置;Email -> “ignore”;显式的非默认全局配置;适配器dm_policy(pairing -> “pair”,allowlist/disabled -> “ignore”);配置了任何allowlist -> “ignore”……;否则为”pair””(#9337),且仅当全局值!= "pair"时才采用全局配置。YAML结构:platforms.<name>下的按平台键会提升至PlatformConfig.extra(gateway/config.py:456-460,#10206);顶级键或嵌套的gateway.unauthorized_dm_behavior由gateway/config_loader.py:39-46,102桥接;hermes gateway setup通过write_platform_config_field写入platforms.<name>.unauthorized_dm_behavior(hermes_cli/config.py:2061-2069;hermes_cli/gateway_setup_wizard.py:182-184,219-249,选项为“礼貌拒绝未知发送者(发送一次消息,随后保持静默)”)。拒绝消息仅支持全局配置(gateway/run_inbound.py:139)。discovery_concurrency:hermes_cli/config_defaults.py:526中的默认值为4;tools/mcp_tool_discovery.py:27-40(“mcp.discovery_concurrency会覆盖该值,0表示无限制(#117373)”;非整数或负数值会记录“不是非负整数;使用%d”,并采用默认值);tests/tools/test_mcp_tool.py:2813固定了“限制而非门控”的语义(“限制同时进行的连接数,但仍会并发连接每台服务器”)。session_search边界与重试:tools/session_search_tool.py:578,621-635,708-725——after为“会话开始时间的包含式下界。ISO日期/日期时间(例如2026-06-01)或相对时长(7d、24h、2w,即最近N时间内)”;before为“会话开始时间的排除式上界。ISO日期/日期时间(仅含日期的值表示当天UTC午夜)或相对时长(7d表示一周之前)”;两者均“仅用于发现范围”,且“排序是一种排名倾向,而非边界”;为保持schema稳定,新参数“追加在detail之后”;hermes_state_search.py:1151-1163中的OR放宽重试,注释原文为:“词项之间隐含的AND意味着,经过转述的多词查询会漏掉缺少哪怕一个词的已存储句子……在精确查询和子字符串回退均无结果后,使用unicode61索引重试并匹配任意词项。……仅在结果为零时启用,因此已有命中仍保持精确匹配语义;显式OR/NOT、单词项以及路由至CJK的查询不受影响”;专用测试套件为tests/hermes_state/test_search_or_relaxed_fallback.py。set-journal-mode:解析器位于hermes_cli/subcommands/sessions.py:177,帮助文本原文为“在离线状态下(所有占用者均已停止),于journal_mode=WAL和DELETE之间转换state.db”;hermes_cli/sessions_cmd_journal_mode.py文档字符串——#100896的离线自助处理路径(此前,“唯一的脱困方法是手动运行未记录在文档中的PRAGMA journal_mode=DELETE”),“当任何外部进程占用该文件或辅助文件(foreign_state_db_holders)时拒绝执行;无需等待占用者退出即可切换(_set_journal_mode_no_wait),随后验证SQLite为该模式写入的文件头第18/19字节”;分派被标记为“离线:不得打开其转换的存储”(hermes_cli/sessions_cmd.py:982);对于非默认存储,hermes doctor会使用--db推荐此命令(hermes_cli/doctor_platform.py:148,163)。解析器描述原文为“请在gateway、dashboard和所有CLI均已停止时运行此命令:若任何进程占用该文件,命令将拒绝执行;否则会切换模式并验证文件头”;--force帮助文本为“仅限Windows:自行停止所有Hermes进程后,在没有占用者扫描功能的情况下继续执行”(hermes_cli/subcommands/sessions.py:176-189),由_refusal强制实施(sessions_cmd_journal_mode.py:40-44:“无法证明Windows上的数据库处于静默状态——不存在占用者扫描功能”)。Desktop更新:字体字段位于apps/desktop/src/app/settings/chat-font-setting.tsx(CONFIG_PATH = 'desktop.font_family',550毫秒自动保存),并配合themes/chat-font.ts(建议字体包括OpenDyslexic、Atkinson Hyperlegible、Lexend、Inter、IBM Plex Sans、Source Sans 3、Noto Sans、Segoe UI、SF Pro Text;留空表示使用主题字体),通过themes/context.tsx:279应用并覆盖主题令牌--dt-font-sans;引擎更新位于apps/desktop/src/app/settings/local-models-settings.tsx及其测试中(当受管的本地运行时报告update_available时显示“更新引擎”按钮,通过installLocalRuntime启动可报告进度的runtime-install作业;测试“在显式更新失败后继续显示该更新,并提供直接重试,同时不暂存模型”);Plugins中心的卸载功能位于apps/desktop/src/app/capabilities/plugins/plugins-tab.tsx及其测试中(“仅在用户接受确认对话框后,才通过plugins.manage remove执行卸载”;独立Desktop插件通过Electron加载器上的uninstallDiskPlugin卸载)。视频目录:plugins/video_gen/fal/__init__.py:43-44,99-101——ltx-2.5(“LTX 2.5”,“Lightricks开源音视频模型。支持原生音频,i2v最高可达20秒/4K,并提供摄像机运动预设。”,低成本级别,lightricks/ltx-2.5/text-to-video/fast和/image-to-video/fast,宽高比16:9/9:16,时长为整数;:128注明“fal拒绝在1440p/2160p下生成超过10秒的LTX 2.5视频”)和kling-o3(“Kling O3(标准版)”,“Kuaishou前沿模型。支持多镜头原生叙事、可选音频,时长3至15秒。”,高级级别,字符串形式的3至15秒时长,i2v根据图像推导宽高比,generate_audio为真正有效的开关);载荷测试位于tests/plugins/video_gen/test_fal_plugin.py:641,681;名册条目位于website/docs/reference/toolsets-reference.md:72。目录扩建:标签v2026.9.14下的plugin-catalog/包含9个条目及removed.yaml,标签v2026.9.21下则包含228个条目及removed.yaml;条目结构以plugin-catalog/hermes-tailscale.yaml为准(名称、repo、40位十六进制sha、描述、维护者、tier: community、类别、docs_url、功能);收录和发布模型见hermes_cli/plugin_catalog.py:4-10,33(“固定至一个精确的40字符提交SHA。出现在该目录中即代表”获准收录;website/scripts/extract-plugins.py发布/docs/api/plugin-catalog.json;获取LIVE_CATALOG_URL并缓存至~/.hermes/cache/plugin-catalog.json);网站页面位于website/plugins/plugin-catalog-pages/index.js(“/docs/plugins/为每个条目生成一个页面”,“/docs/plugins/by/为每位维护者生成一个页面”,“已合并的目录PR是页面出现、变更或消失的唯一途径”,且网站“可以降级,但绝不失败”)和readme.js(每个条目的README均通过指向该sha的原始URL“从固定提交”渲染,“绝不使用分支最新提交”,因此页面准确展示目录审核者所阅读的README;使用构建时允许列表进行渲染,丢弃原始HTML,上限为512 KB,主机仅限raw.githubusercontent.com和gitlab.com;使用readme: false可选择退出);作者slug以及基于提交者日期的新增/更新时间戳位于website/scripts/extract-plugins.py:80,142;以该版本命名的10个社区插件均作为条目存在于此标签下,其slug见50。 ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Hermes Agent v0.21.5 发布说明,标签
v2026.9.24,标明的发布日期为9月24日,发布于2026-09-24T10:09:38Z。原文所述用途:“补丁版本。此标签将自 v0.21.4 以来合并的约 460 个 PR 汇总为一个稳定的标签版本,供下游使用者(Docker 镜像、Hermes Cloud、托管部署)使用。此期间完整整理的说明将推迟至 v0.22.0 发布。”在标签提交f97608f178(“chore: release v0.21.5 (2026.9.24)”)处测得的统计数据为:“1,610 个非合并提交”,涉及“4,828 个变更文件”(+164,132 / -149,440)、“460 个已合并 PR”和“475 个已关闭问题”。本地克隆检查准确复现了提交数和差异统计数据(git rev-list --count --no-merges v2026.9.21..v2026.9.24= 1,610;包含合并提交时为 1,638;git diff --shortstat= 4,828 个文件,+164,132 / -149,440);PR 和问题数量未经过独立核验。正文中明确不作详细说明的功能列表提到了 Nous 和 OpenRouter 目录中的 GPT-6 “Sol/Terra/Luna”及 Claude Opus 5.5、通过gateway.standalone按 profile 执行停止/启动/重启,以及一轮 Desktop plugin-SDK 更新;其中未提及 Hindsight。原文所述更新路径:“hermes update(git 安装),或重新运行单行安装命令”,以及“镜像基于此标签构建(nousresearch/hermes-agent:v2026.9.24)”。 ↩↩↩↩ -
已在标签
v2026.9.24的源代码中核验的 v0.21.5 项目(指南 v1.22,2026年9月24日)。Hindsight:提交4cbf862abe“chore(memory): remove the bundled hindsight provider (moved to the plugin catalog)”(9月22日)是该标签的祖先提交;该标签下的plugins/memory/包含7个提供商目录(byterover、holographic、honcho、mem0、openviking、retaindb、supermemory),而v2026.9.21中有8个;提交73c598e319“build: drop the hermes-agent[hindsight] extra”将其从pyproject.toml中移除。plugin-catalog/hindsight.yaml:repo: https://github.com/vectorize-io/hindsight、maintainer: vectorize-io、tier: community、requires_hermes: ">=0.21.4"。迁移:hermes_cli/memory_provider_migration.py的文档字符串(第1—14行)列出了两个钩子:“hermes update”和“agent init”;第75行输出“Memory provider ‘{name}’ moved out of core – installed its plugin from the catalog”;recover_at_startup()(第110行)“遵循security.allow_lazy_installs”;它由hermes_cli/update_cmd_deps.py:535-536和agent/agent_init.py:1315-1316调用。磁盘写入效果和验证命令:memory-providers.md:482-490。Multiplex:hermes_cli/gateway_multiplex_mode.py第10行写道:“显式的false已被弃用”,第43—44行写道:“gateway.multiplex_profiles: false 已被弃用,并已重写为 true”(提交b936546561,9月23日)。gateway.standalone:hermes_cli/profiles.py:979-982,“DEFAULT profile 永远不会是 standalone——它本身就是主机——如果在那里设置了该键,则每个进程仅警告一次”(提交0238c9d740)。驻停:提交4c342c05de“stop, start and restart one profile under the host multiplexer”;multi-profile-gateways.md:120-138, 233-244(“一个临时兼容垫片”;“gateway.standalone优先”)。模型:hermes_cli/models_catalog_static.py的OPENROUTER_MODELS第32行及第36—37行(anthropic/claude-opus-5.5、openai/gpt-6-sol、-sol-pro、gpt-6-luna、-luna-pro);第162行的nous列表由此派生。该标签的模型选择器目录中未出现gpt-6-terra模型 ID,因此此处仅列出 Sol 和 Luna。提供商:第314行的CANONICAL_PROVIDERS解析后包含39项(AST 计数,保持不变);plugins/model-providers/在v2026.9.21和v2026.9.24中均包含38个目录,而v2026.9.14中有39个。提交998f614c7f“feat(providers): remove the keyless opencode-free tier”(9月18日)删除了该 plugin;其提交消息写道:“OpenCode 的免费层目前会对来自 OpenCode 客户端之外的匿名流量返回 HTTP 403”。hermes_cli/auth.py:1255-1259保留了针对opencode-free、free和opencode_free的错误提示,并将用户引导至opencode-zen和opencode-go。兼容性:COMPAT_MANIFEST.md、compat_manifest.json和hermes_cli/plugin_compat.py均存在于该标签中,也存在于aa8a33d22d(9月24日)的main分支中。git diff v2026.9.21 v2026.9.24 -- hermes_cli/plugin_compat.py的输出为空(第32行的COMPAT_REMOVAL_DATE;第296—303行的“仅限字面量布尔值”检查)。这一对清单仅移除了已删除的plugins.memory.hindsight条目(-7 / -12 行)。 ↩↩↩↩↩↩↩↩ -
Hermes Agent v0.20.3 发布说明(标签
v2026.8.16.2,标明的发布日期为8月16日,发布于2026年8月17日)和 v0.20.4 发布说明(标签v2026.8.18,2026年8月18日);两者均于2026年8月20日通过 GitHub API 获取(预发布:false)。v0.20.3 原文:“MCP 2.x SDK 迁移及对2026-07-28无状态协议的支持、捆绑的 Bot Mode(hermes-bots)plugin 与核心队友协议、CommandCode 提供商 plugin、子进程 Python 运行时所有权强化(PYTHONHOME/PYTHONPATH 隔离)、用于计算机操作的 Cua Driver 0.20 运行时契约。”v0.20.4 原文:“桌面端玻璃/半透明界面工作(哑光玻璃、磨砂选择器、macOS 预选择)、带有按 bot 隐藏/取消隐藏功能的分页式 SESSIONS|BOTS 侧边栏,……安装 skill 时执行 NVIDIA SkillEvaluator Tier 1 咨询式扫描(许可证与安全检查)。”两个版本均注明:“此期间完整整理的发布说明将随 v0.21.0 一同发布。” ↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Hermes Agent v0.20.0 发布说明,“The Herald Release”,标签
v2026.8.3,2026年8月3日,后续稳定化标签为 v2026.8.13 和 v2026.8.16。发布说明原文:“所有安装程序/heal/upgrade 均要求 Node 26”;“brew + pip/PyPI wheel 渠道已弃用(受支持的渠道为 shell 安装程序 / Docker / Nix)”;“默认迭代上限从 90 → 500”;“已移除 claude-marketplace 源”。已在 scripts/install.sh 的安装程序源代码中独立确认 Node 最低版本要求——NODE_VERSION="26"以及保护条件“Node.js $(node –version) is too old (Hermes requires Node >=26)”——其头部注释还记录了规范的单行安装命令curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash。请注意这一冲突:安装页面文档仍标明 Node v22,与二者相比已经过时。平台分级取自平台支持;skills 来源和默认 taps 取自 skills;28个平台的数量通过逐项统计消息传递页面中的对比表得出,该页面并未公布官方总数。以上内容均于2026年8月16日获取并核验。 ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Hermes Agent v0.19.0 发布说明,“The Quicksilver Release”,标签
v2026.7.20,2026年7月20日发布;截至2026年7月21日为最新版本。自 v0.18.0 以来的统计数据:约 2,245 次提交、约 1,065 个已合并 PR、约 3,300 个已关闭问题,以及 450 多名社区贡献者。性能主线:首次响应 TTFT 缩短约 80%,CLI/gateway/TUI/桌面端/cron 的冷启动提交到分派耗时从约 4.3 秒降至约 0.9 秒(PR #59332);默认实时流式显示推理过程,display.show_reasoning默认开启,并按 token 绘制响应(PR #59389);桌面端通过约 20 个 PR 实现一轮性能提升,其中流式 Markdown 速度提高 14 倍;TUI 支持增量式 Markdown。pip/Homebrew 安装方式已弃用,现仅显示“unsupported legacy”警告,并计划停止发布 PyPI/Homebrew 软件包(PR #57225)。新增可插拔SecretSource接口,支持 Bitwarden 和 1Password 提供商、op://引用、多保管库、确定性优先级,以及逐变量来源追踪(PR #59498)。智能审批成为默认设置(每条被标记的命令均由独立 LLM 审核器审查),支持即使在 YOLO 模式下仍然生效的用户自定义拒绝规则,以及/deny <reason>(PR #62661、#59164、#54518);插件pre_tool_call的审批升级功能重新落地(PR #60504)。终端计费新增/subscription、/topup,桌面端新增计费选项卡(PR #51639)。新增实时子代理转录文件和持久化后台委派(PR #67479、#63494);state.db中新增交付义务账本(PR #67181);max_async_children已弃用,改用统一的委派并发上限(PR #56955)。Gateway 支持基于 profile 的路由和GATEWAY_MULTIPLEX_PROFILES,路由索引迁移至state.db,sessions.json成为可选的旧版镜像(PR #64835、#65700、#60589、#59203)。提供商/模型:Fireworks AI 成为模型选择器第 2 位的一级选项(PR #62593),新增 DeepInfra、Upstage Solar,并端到端支持 GPT-5.6 Sol/Terra/Luna 和 Pro(PR #61616);grok-4.5 正式发布,新增 kimi-k3(kimi-k2.x 已停用),Claude Sonnet 5 完整接入,并支持逐提供商设置enabled: false和excluded_providers(PR #67971);推理强度新增max/ultra级别,支持按模型、按 MoA 槽位覆盖,以及会话级/reasoning(PR #62650、#64458)。CLI/MCP:hermes sessions export支持 Markdown/Quarto/HTML/仅提示词/HF 跟踪格式,并提供--redact(PR #60186);新增/model --once(PR #67113)、堆叠式斜杠 skill 调用(PR #57987)、--safe-mode、hermes config get/unset(PR #65540)、真正无头运行的hermes serve(PR #55923),以及 MCPmcp__server__tool命名方式(PR #52750)。未纳入发布营销措辞;在此版本周期内被撤销的项目(iron-proxy 出站防火墙、dynamic-workflow skill、memory provider-actions)有意不记为已发布功能。当前会话验证于2026年7月21日完成。 ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Hermes Agent v0.18.1 发布标签和 v0.18.2 发布标签,2026年7月7日至8日。二者是 v0.18 分支的基础设施补丁汇总;v0.18.2 的实质性修复是取消锁定 WhatsApp Baileys 版本,改用 7.0.0-rc13,以确保 Docker 构建可靠。这两个补丁周期均已汇总至 v0.19.0 发布说明并得到完整记录。 ↩
-
Hermes Agent v0.15.1 发布说明和 Hermes Agent v0.15.2 发布说明。v0.15.1(2026年5月29日 01:12 UTC)是 Velocity 的当日热修复:修复回环模式下仪表板的 401 重新加载循环;Docker 现要求显式设置
HERMES_DASHBOARD_INSECURE=1;MCP 裸命令(npx、npm、node)可在 Docker 容器中正确解析;恢复 Skills 页面来源标签和分类侧边栏;Kanban 工作进程可响应 SIGTERM;Skills.sh 目录通过站点地图从 858 项扩展至 19,932 项。共 28 次提交、21 个已合并 PR、9 名贡献者。v0.15.2(2026年5月29日 13:37 UTC)是仅涉及打包的热修复,将plugin.yaml清单打包进 wheel 和 sdist 发行包,使 PyPI 安装无需旁加载源代码即可正常工作。共有 4 名贡献者。 ↩ -
Hermes Agent v0.15.0 发布说明和 Hermes Agent 发布页面。“The Velocity release”,标签
v2026.5.28。统计数据:1,302 次提交、747 个已合并 PR、321 名社区贡献者。对run_agent.py进行重构,代码量减少 76%(从 16,083 行缩减至分布在 14 个模块中的 3,821 行)。新增多代理 Kanban 平台(自动拆解、群体拓扑、逐任务模型覆盖、计划任务和 worktree 管理)。重新设计session_search,速度提升 4,500 倍,并移除 LLM 依赖。在 3 个安全关口加入 Promptware 防御,以抵御 Brainworm 类提示注入。集成 Bitwarden Secrets Manager,以单个引导 token 取代多个逐提供商 API 密钥。Skill 包允许通过一条斜杠命令加载多个 skill。新增 TUI 会话编排器,可在一个终端窗口中管理多个会话。新增 Krea 2(Medium/Large)和 FAL 插件,以支持图像生成。xAI 集成更新新增网页搜索插件、OAuth 上游支持、已停用模型检测,以及语音输出中的自然 TTS 停顿。GitHub 上提及的补丁版本修复了仪表板 401 重新加载循环;Docker--insecure现要求显式设置HERMES_DASHBOARD_INSECURE=1环境变量;支持在 Docker 中解析 MCP 裸命令(npx、npm、node);修复 Skills 页面渲染和 Kanban 工作进程的 SIGTERM 处理;通过站点地图提供完整的 19,932 项 Skills 目录;此外还包含一小批修复,涉及.md交付、gateway 探测安全性、网页 URL 脱敏、kanban-worker 视觉能力,以及 hindsight 观察默认值。 ↩↩↩↩ -
Hermes Agent v0.11.0 发布说明。2026年4月23日。“The Interface release”——使用 React/Ink 全面重写交互式 CLI,后端采用 Python JSON-RPC(
tui_gateway);新增可插拔传输架构(agent/transports/);通过 Converse API 原生支持 AWS Bedrock;新增 5 条推理路径(NVIDIA NIM、Arcee AI、Step Plan、Google Gemini CLI OAuth、Vercel ai-gateway);通过 Codex OAuth 支持 GPT-5.5;QQBot 成为第 17 个消息平台,并支持扫码配置;扩展插件功能面(斜杠命令、工具分派、执行阻止和结果转换);新增/steer <prompt>,可在代理运行过程中进行引导,在下一次工具调用后注入上下文,同时不破坏提示缓存;支持无需 Python 插件即可处理生命周期事件的 shell 钩子;新增 webhook 直接交付模式,将负载直接转发至平台聊天;通过编排器角色、可配置的生成深度和文件协调实现更智能的委派;新增仪表板插件系统、实时主题切换、i18n 和移动端响应式设计。自 v0.9.0 以来的统计数据:1,556 次提交 · 761 个已合并 PR · 1,314 个文件发生变更 · 新增 224,174 行 · 29 名社区贡献者。另请参阅:Hermes Agent v0.11.0 GitHub 发布标签。 ↩↩↩ -
Hermes Agent v0.10.0 发行说明。2026年4月16日。“Tool Gateway 版本。”为 Nous Portal 付费订阅用户集成 Nous Tool Gateway,无需额外的 API 密钥,即可使用 Firecrawl 网页搜索、FAL / FLUX 2 Pro 图像生成、OpenAI TTS 和 Browser Use 浏览器自动化。通过新增的
use_gateway配置字段,可按工具选择启用。若 gateway 和直接使用的 API 密钥均已配置,运行时会优先使用 gateway。与hermes tools和hermes status完全集成。取代已弃用的HERMES_ENABLE_NOUS_MANAGED_TOOLS环境变量。由 @jquesnelle(emozilla)实现。Hermes Agent CLI 仍采用 MIT 许可证,并保持完全开源;gateway 是与现有 Portal 订阅产品的集成,并非针对 CLI 设置的付费门槛。另请参阅:Nous Portal,了解订阅价格并注册。 ↩↩↩