Hermes Agent:实践者参考指南(2026)
# 面向实践者的Hermes Agent参考指南。Hermes Agent是Nous Research推出的开源自我改进型AI代理。本指南涵盖提供商身份验证、配置文件、技能系统,以及如何将其作为多平台消息网关运行。
简而言之: Hermes Agent 是 Nous Research 推出的开源自我改进型 AI agent。它既可作为 CLI 运行,也可作为多平台消息 gateway 使用;它会在磁盘上存储持久身份和长期记忆,汇集能够在使用过程中持续改进的 skills,并可与任何兼容 OpenAI 的 LLM 提供商协同工作——包括 Nous Portal、OpenRouter、Anthropic、GitHub Copilot、z.ai、Kimi、MiniMax、DeepSeek、Qwen Cloud、Hugging Face、Google、xAI/SuperGrok,或您自行托管的端点。1219 当前版本为 v0.21.7(标签
v0.21.7,发布于2026年10月11日),这是 v0.21 系列的第5个汇总补丁,也是首个通过项目全新稳定版发布流水线交付所有渠道的版本;v0.21.7 的新增功能介绍了具体变更,后续发布章节则按时间从新到旧排列。56 对大多数新用户而言,最棘手的部分是提供商身份验证:在标签v0.21.6中,Hermes 的静态选择器列表内置了39个提供商,并会根据41个捆绑提供商插件自动扩展该列表,此外还支持自定义端点;身份验证分为3条不同路径(.env中的 API 密钥、通过hermes model使用 OAuth,或在config.yaml中配置自定义端点)。5355 首先需要掌握的是身份验证模型——其他一切都取决于最终解析到的提供商。
Hermes Agent 是一套完整的 agent 运行时,而非简单的聊天封装。它可以读取文件系统、在沙盒后端执行命令、抓取网页、生成 subagents、运行预定的 cron 任务、通过单个 gateway 进程与 Telegram/Discord/Slack/WhatsApp/Signal/Email 通信,并根据经验创建自己的 skills。1 CLI 是构建在 run_agent.py 对话循环之上的终端 UI;gateway 则是一个长期运行的进程,负责将消息平台发来的消息路由至同一对话循环。3
Hermes 的普通用法与专家级用法之间,关键在于以下5个系统。 掌握它们,Hermes 就能成为事半功倍的利器:
- 提供商解析:身份验证流程如何映射到 API 调用
- 配置层级:
config.yaml+.env+auth.json+SOUL.md+AGENTS.md - 工具与 toolset 系统:agent 能够执行哪些操作,以及各平台如何限制这些能力
- Skills 系统:由 agent 创建并持续演进的程序性记忆
- 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,但其余内容由 agent 自行维护。4 - Hermes 是 OpenClaw 的继任者。 如果您正在迁移,
hermes claw migrate可自动导入30多个类别的状态。5 - 默认情况下,辅助任务使用主模型。 视觉处理、审批分类、压缩和会话标题分别通过独立的“辅助”LLM 调用运行;在该标签版本中,
auto会将所有这些任务路由至主聊天模型——无需配置,但如果使用昂贵的推理模型,这些附带任务会产生不可忽视的成本。必要时,可将各个auxiliary.<task>槽位分别指向价格低廉、响应迅速的模型。434
以下各节均以 hermes-agent.nousresearch.com/docs 的上游文档和 github.com/NousResearch/hermes-agent 的源代码树为依据。每项事实陈述均附有脚注,指向其具体来源页面。
选择适合您的路径
| 您的需求 | 前往此处 |
|---|---|
| 安装 Hermes | 安装——使用单行安装程序或手动步骤 |
| 登录提供商 | 身份验证与提供商——您此行所需的章节 |
| 在会话中途切换模型 | 有关 /model 语法,请参阅hermes auth 命令和自定义与自行托管的端点 |
| 运行本地 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、skills、上下文文件和工具指南构建系统提示词(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
理解此循环至关重要,因为每项功能——个性、记忆、skills、压缩、回退——都依附于其中某个阶段。阅读配置键并思考其用途时,答案通常是:“它用于调节上述循环的第1、2、3或4阶段。”
与平台无关的核心。 单个 AIAgent 类同时服务于 CLI、gateway、ACP、批处理和 API 服务器。平台差异存在于入口点,而非代理本身。3正因如此,相同的斜杠命令既能在终端中使用,也能在 Telegram 中使用——它们均由 hermes_cli/commands.py 中共享的 COMMAND_REGISTRY 分派。6
目录结构就是系统本身。 Hermes 将所有内容存储在 ~/.hermes/ 下(非默认 profiles 则存储在 $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)
上述每个文件各司其职,彼此互不重叠。如果想知道“TERM_0 将 X 存储在哪里”,答案就在这些位置之中。
v0.21.7 的新变化(10月11日汇总)
Hermes Agent v0.21.7(标签为 v0.21.7,日期为2026年10月11日,于10月12日发布)是当前版本,也是 v0.21.x 系列的第5个小型汇总版本。v0.21.6 仅发布了标签和 Docker 镜像,而此次版本覆盖了所有渠道:桌面应用(macOS Apple silicon 和 Windows)、Microsoft Store 和 MSIX 构建版本、安装程序、Docker 以及 Hermes Cloud。自 v0.21.6 以来,共有“740个非合并提交”,涉及“4,156个变更文件”“204个已合并 PR”和“69个已关闭问题”(GitHub 的比较结果将合并提交计算在内,共计777个提交)。精选说明再次推迟至 v0.22.0。以下是该版本记录并经标签源码核实的内容:5657
- 源码安装现在会跟随带标签的版本。 在官方仓库的检出中运行
hermes update,现在会更新至最新发布的vX.Y.Z版本及其对应的确切提交,而非跟随main上的每个提交。如果安装版本已经领先于最新发布版本,则会保持不变,直至下一个版本发布;解析器也绝不会根据推测将检出回退:若无法确定版本关系(历史记录较浅或无法访问 GitHub),则保留当前 HEAD。若要继续跟随每个提交,请运行hermes update --set-channel main;--channel <name>可仅针对单次运行覆盖该设置(stable和canary选择已发布版本,main选择分支顶端)。此选择按安装记录在config.yaml的update.installs下,以根据安装路径生成的 ID 为键(运行hermes update --install-id可显示该 ID),因为同一个~/.hermes可以同时服务于主机安装、Docker gateway 和桌面应用。分叉仓库、镜像和本地路径来源仍会跟随main;Store、MSIX 和捆绑式桌面安装不受影响。 - 桌面应用提供相同的切换选项。 对于源码安装,“设置 ▸ 关于 ▸ 更新”中新增了“更新渠道”一行,可选择“稳定版本”或“每个提交”,更新对话框也会显示当前所在的渠道。
- 恢复会话时会保留推理内容。 在运行
hermes chat --resume后,以及上游验证签名思考块的下一次 gateway 轮次中,这些思考块会继续重放;Bedrock Converse 推理模型也不再拒绝恢复的会话。若上游拒绝某个签名,系统会为其生成指纹,并在重建请求时将其过滤掉,而不会中断会话。 - 在某些防火墙之后,更新不再失败。 使用
main的安装不再获取可能被区域防火墙以 403 响应拦截的版本记录。设置 GitHub 令牌时(GITHUB_TOKEN或通过gh auth login登录),稳定版本检查会使用该令牌;若令牌被拒绝,则以匿名方式重试;遇到 GitHub 速率限制时,也会如实报告速率限制,而非显示“没有版本”。 - Holographic 移出核心代码树。 目前捆绑的记忆提供商仅有 ByteRover 和 RetainDB;Holographic 改为从插件目录安装(社区层级,
requires_hermes: ">=0.21.5"),自动迁移机制会像处理其他6个提供商一样处理它。请参阅外部记忆提供商。 - 插件目录从493项增至552项;根据版本说明,新增内容包括 memory-shield、command-ledger、Memoria、Model Router、wyoming-voice-bridge、codex-account-switch 和 redline。提供商插件仍为41个目录,静态选择器仍为39行。
- 此外,根据版本说明: 插件可以运行内置桌面操作(
ctx.runAction,例如view.showBrowser),并通过宠物气泡播报消息(ctx.pet.say);Codex 请求由核心发出,因此插件永远不会持有令牌;会话中途安装的 skill 无需重新构建提示词即可供模型使用;Krea 2 Medium Turbo 成为新付费订阅者的默认图像通道,当托管式 Krea 拒绝请求时则回退至 FAL;桌面更新速度更快;固定版本安装只检出指定的固定版本;压缩标记会发送至 Relay(agent/relay_compaction.py会将hermes.compaction记录作为 NeMo Relay 标记发出)。
更新方式:桌面应用会自行更新,Store 安装则通过 Store 更新;CLI 可使用 hermes update 或安装程序的一行命令;Docker 和 Hermes Cloud 拉取 nousresearch/hermes-agent:stable(或 :latest)。56
v0.21.6 新增内容(10月8日汇总版)
Hermes Agent v0.21.6(标签 v0.21.6,2026年10月8日)是10月8日至10月11日期间的当前版本,也是 v0.21.x 系列第4个精简汇总版,并首次由项目的新稳定版本发布流水线构建:“一次尝试引用、一个经过测试的 Docker 镜像,以及发布时的凭证标签”。此次仅发布标签、GitHub 版本和 Docker 镜像;桌面应用、Termux 软件包和 Microsoft Store 版本将维持当前版本,直至下一个捆绑版本发布。自 v0.21.5 以来的变更规模创下新高:涉及“8,867个非合并提交”“8,342个变更文件”“2,106个已合并 PR”和“3,027个已关闭问题”(GitHub 比较结果计入合并提交后为9,180个提交)。精选说明再次推迟至 v0.22.0。发布说明列出了尚未记录的内容;以下各项均已根据该标签的源代码核验:5455
- 说话时实时转写。
stt.streaming: true可在 CLI、TUI 和桌面端于话语尚未结束时流式显示部分文本。此功能默认关闭,支持openai、xai和elevenlabsSTT 提供商(stt.streaming_model指定唯一支持话语中途增量更新的模型;OpenAI 对应gpt-live-transcribe),流式处理失败时会回退到文件路径方案。 - 语音轮次拥有独立的模型槽位。
auxiliary.voice_chat可将语音轮次(CLI 语音输入、桌面端或 TUI 语音对话、消息平台语音留言)路由至比会话主模型更快的模型,默认设置为reasoning_effort: none。该路由在系统提示词构建完成后绑定,并会在内存同步和后台审查前解除。如果某一轮次无法满足语音模型的压缩阈值,则仍使用主模型。请参阅辅助模型。 - 第三方插件可在进程外运行。
plugins.isolation: host(默认为in_process)会按 profile 将通用插件加载到独立的插件宿主进程中,并拒绝所有其他会在进程内导入用户代码的路径(类别提供商、模型提供商 profile、仪表板插件 API);捆绑插件仍在进程内运行。插件即使挂起或崩溃,也只会导致其宿主进程退出,不会拖垮 gateway。请参阅插件系统。 - 另外4个内存提供商移出核心代码树。 Honcho、Mem0、OpenViking 和 Supermemory 现在通过插件目录安装(社区层级,由各自厂商维护),与 Hindsight 采用相同方式;捆绑提供商则包括 ByteRover、Holographic 和 RetainDB。v0.21.5 引入的自动迁移现已覆盖全部8个名称。请参阅外部内存提供商。
- 插件兼容层已移除。
hermes_cli/plugin_compat.py现为空操作存根,COMPAT_MANIFEST.md和兼容垫片已被删除,plugins.allow_deprecated_imports也不复存在;仍导入拆分前路径的插件将无法导入。请参阅插件系统。 hermes status优先显示摘要。 默认输出中,每个组件占一行;--full(别名--all)会打印所有部分,--deep则会运行耗时较长的检查。发布说明还提及--short标志,但该标签对应的解析器并无此选项,因为摘要已是默认输出。- 可插拔的分层语言包。
display.language接受由捆绑目录(该标签下有17种)、profile 的覆盖目录或插件语言包提供的任何 id。hermes config set display.language <id>会先发现插件,因此刚安装的语言包也能立即生效。核心字符串与 TUI 字符串以不同层分别提供(locales/<lang>.yaml和locales/<lang>.tui.yaml;该标签下有16个 TUI 语言包)。请参阅本地化。 - 新增3个提供商插件:
lmstudio、solstice和tencent-tokenhub,使plugins/model-providers/下的目录数量从38个增至41个;静态选择器列表仍为39行。Nous 和 OpenRouter 选择器新增 GPT-6.1 Sol(含-pro变体)、Claude Sonnet 5.5 和 Claude Haiku 5.5,openai-api和 Bedrock 列表也新增 GPT-6.1 Sol。本地模型方面:hermes model可直接列出 Ollama、LM Studio 和 Ollama Cloud 模型;根据发布说明,捆绑的本地运行时还在 Linux x64 和 arm64 上新增 llama.cpp CUDA 构建(llamacpp-cuda)。 - 审批规则新增2种检测机制。 如果 curl 或 wget 上传命令(
-d、-F、-T)携带名称疑似机密信息的变量或凭据文件,或通过管道将凭据文件传给此类命令,系统会将其标记为可能的数据外泄;命令中若含不可见或双向 Unicode 控制字符,则会被标记为可能的混淆行为,因为您批准时看到的内容可能与实际运行的内容不同。 - Cron 可应对存储不可写的情况。 磁盘已满或挂载为只读(ENOSPC、EROFS、EACCES)时,cron 存储只会降级一次,不再每隔60秒发出警告;重新探测的频率最多为每分钟一次,
hermes cron status和hermes doctor均会报告此状态(该版本还新增了主频道警告)。 - Discord 设置流程会检查机器人令牌并输出邀请链接,其中包含适配器所需的权限位;若 Message Content Intent 仍处于关闭状态,也会特别提示,因为在此情况下 Discord 会拒绝机器人的连接。请参阅消息 gateway。
- 其他内容:新增
activate.fish,即./activate开发环境脚本的 fish 对应版本;根据发布说明,还新增了统一的 Kanban 工作流定义。此外,发布说明中列出但未随此版本桌面构建交付的功能包括:将收藏和置顶模型显示在桌面端选择器顶部、在订阅用量触及上限前显示用量标记、说明限流原因及截止时间的提供商速率限制通知、审查窗格中的差异范围选择器,以及跟随轮次启停的保持唤醒功能。
安全修复(发布说明中均注明了贡献者):修复了由 Tenable Research 报告的4个仪表板身份验证问题——伪造的 X-Forwarded-For 标头可能重置密码登录速率限制并绕过每 IP 上限;未经身份验证的登录请求可能向身份验证审计日志写入无限长度的值;公开的 /auth/ 路由未限制请求体大小;原生登录可能将登录代码发送至非环回重定向地址,从而导致会话被接管。自动 git 调用(会话工作区快照、subagent worktree、kanban、worktree 清理、hermes -w)可能在首次提示前运行由不受信任仓库自身配置定义的 clean、smudge 或 process 过滤器程序;现在,如果无法消除这些过滤器的影响,相关操作将被拒绝。此外,电子邮件 From 标头中带引号的显示名称可能冒充允许的发件人通过电子邮件允许列表;现在会先展开标头,再使用 parseaddr 解析(GHSA-rxqh-5572-8m77)。任何仪表板、gateway 或电子邮件部署都应将此标签视为与安全密切相关的升级。5455
更新方式:运行 hermes update 或安装程序单行命令;Docker 和 Hermes Cloud 拉取 nousresearch/hermes-agent:stable(或 :latest)。54
v0.21.5 新增内容(9月24日汇总版)
Hermes Agent v0.21.5(标签 v2026.9.24,2026年9月24日)是9月24日至10月8日期间的当前版本,也是 v0.21.x 系列第3个精简汇总版:“此标签将 v0.21.4 以来合并的约460个 PR 汇总为面向下游使用方的稳定标签版本”。精选说明再次推迟至 v0.22.0。以下面向运维人员的变更均已根据该标签的源代码核验:5253
- Hindsight 内存移出核心代码树。 捆绑的 Hindsight 提供商和
hermes-agent[hindsight]pip extra 已被移除;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仍然有效。v0.21.6 移除了兼容层及此配置键(请参阅v0.21.6 新增内容)。
更新方式:运行 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 个已关闭 issue”。按提交数计算,这是项目历史上标签间变更规模第二大的版本,仅次于 v0.21.1 的 5,139 个提交;按已合并 PR 数计算,则是规模最大的版本。经过整理的完整说明再次推迟,原文如下:“此时间窗口的完整精选发布说明将随 v0.22.0 一同发布,涵盖从 v0.21.0 开始的所有内容”,并且“此时间窗口内的任何内容都不会遗漏。”发布说明确实列出了尚未记录的内容,以下各项均已对照该标签的源代码核验;若某项影响本指南中的既有章节,则会在条目内提供链接。5051
- 每台主机仅运行一个 gateway,Desktop 采用连接而非重新启动。 规则是每台主机、每个操作系统用户只能运行一个
hermes serve和一个hermes gateway run,两者各自对所有 profile 进行多路复用——这一规则由新增的主机级单实例层强制执行:胜出进程在整个生命周期内持有主机锁,同时通过包含(pid, createTime)的会合记录,使第二次调用能够确认锁的所有者仍是同一存活进程,从而连接到该进程,而不是绑定第二个端口。系统始终通过证据判定状态是否过期,绝不主观假定;Desktop 应用也从自身一侧采用相同机制,连接到主机上正在运行的后端,而不是再启动一个实例。消息 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 系统新增了“固定 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:字体设置、一键更新引擎及卸载插件。 Settings 新增按 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 个社区插件在该标签中均已收录于目录。插件系统介绍了详细信息。51 - 此外还有大量修复,涉及 profile/多路复用隔离、cron、kanban、Desktop 和
state.db;发布说明仅将它们作为一个类别提及,完整整理记录将由 v0.22.0 给出。50
插件兼容层的回退在此时间窗口内仍未落地。 COMPAT_MANIFEST.md、compat_manifest.json 和兼容垫片在 v2026.9.21 中仍然存在;此时间窗口内对 hermes_cli/plugin_compat.py 的改动仅包括进程级扫描缓存(多路复用 gateway 对每个提供服务的 profile 只发现一次插件;在启动路径上,重新解析每个插件的源代码会给每个 profile 增加约 0.4 秒开销),以及 Windows 上使用 POSIX 格式的命中路径(#112576)——日期门控和字面量布尔值应急开关均未改变,因此 plugins.allow_deprecated_imports: true 仍可让受影响的插件继续加载。插件系统中的兼容性说明框介绍了当前状态。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 会自动更新到最新的发布标签,而远程 gateway 的登录修复需要借此抵达这些 agent。(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(如果清单文件消失,则会提前生效),因此受影响的外部插件现在会在加载时被禁用,并显示红色通知。尚未发生的是:真正删除旧导入路径的回退。COMPAT_MANIFEST.md、compat_manifest.json 和兼容垫片在该标签中仍然存在——截至9月22日,在 v2026.9.21 和 main 上也依然如此——这正是 plugins.allow_deprecated_imports: true 仍可作为应急开关的原因:只要加载器获准继续执行,旧路径仍能解析。这里有两个容易踩坑之处:该键必须是字面量 YAML 布尔值(代码仅接受布尔值 True;按照源代码注释“Literal boolean only”,"true" 或 "false" 之类的带引号字符串会被视为未设置);一旦回退落地,该开关便会失效,因为相关路径本身将被删除。插件系统中的兼容性说明框介绍了当前状态。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、导出或洞察功能整体失效(异常记录会显示为?,同时给出标明相应会话的警告);会话绝不会绑定或读取其他 profile 的数据库;只读打开也不再获取写入锁,因此在繁忙 gateway 后运行的一次性hermes,等待后失败的耗时从4至20秒缩短至0.01秒。48 - 强化多 profile 隔离。 自 v0.19.0 起,本指南一直在转述项目方的主张:profile 路由可让每个 profile 拥有“完全隔离的配置、skill、内存和密钥”。到了 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:),密码只在填写时解析;外部密码管理器会保持锁定,直至您为当前会话将其解锁;主密码“绝不会成为 tool 参数,绝不会进入 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;连接器工具(Gmail、Linear、Notion 等)则可通过tool_search搜索。桌面端的引导式首次启动由HERMES_GUEST_ONBOARDING=1控制,而且只有字面值1才会启用:桌面端自身的测试明确验证,'true'、'0'和空值均不会开启此功能;启动决策还会写入所生成后端的环境中,确保继承的值绝不会意外渗入。请参阅 Nous Tool Gateway。48 - 桌面端后端生成风暴已成为过去。 Bot Mode 过去会在启动时以及每次 roster 轮询时,为每个 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个“延迟迁移”公共名称;解析这些名称时,每个进程中的每个名称只会发出一次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 - 委派现在会如实处理后台工作。 以下是
delegate_task的6项可靠性改进,均直接核对了该标签版本的委派工具源代码。(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 选择器、标记,以及与布局相关的计算样式,让代理可以在源代码中准确找到该元素,而不必仅凭图片猜测(标记离开页面前,会对密码、隐藏值及类似密钥的属性进行脱敏)。较大的批次会按页面区域分组,因此二十多条评论会归并为少量工作单元,通常分别涉及不同文件——这正是将其安全分发给并行工作器的关键。除此之外,还新增了结构化会话控件和会话自动化控件、拖动创建会话功能、用于导入其他编码代理记录的会话导入视图、
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会将每次运行的输出传递至下一次,让监控程序能根据已报告的内容进行去重;每项作业都有持久的记事本式 scratchpad;在没有任何变化时,监控模式作业会完全跳过 LLM;可以为每项作业固定推理强度;cron 输出还可以进入机器人的规范 Bot Chat,并由机器人真正作出响应。计划任务(Cron)章节现已记录各项机制在对应标签版本中的具体情况。3537 - 实时 subagent 编排。
delegate_task新增控制操作:列出正在运行的子代理、在执行途中引导某个子代理调整方向,或者提前停止并保留部分结果。子代理输出可以根据 JSON schema 进行验证,结果中会显示每次委派的成本;默认值也提升至每个 subagent 250次迭代以及10个并发子代理(这是 v0.19.0 中取代max_async_children的统一上限)。3538 - MCP 指挥中心。 MCP 服务器与目录合并到同一个桌面页面中,支持通过拖入方式“粘贴任意内容”进行导入;后台健康检查会在工具调用失败前提醒您重新授权;还提供全体服务器的成本与用量叠加视图(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 与一轮模型目录更新。 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。模型目录则新增 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,无需等待新版本即可修正任意模型的 context window 或定价;provider 现在也能以通过 pip 安装的软件包形式发布,并经由 entry point 自动发现。此外,统一的选择保护注册表会在所有选择器界面发出警告,提醒某个模型是否会使用您的数据进行训练。3536 - 全方位安全加固。 写入受保护的代理指令文件(AGENTS.md、skills、memory stores)现在始终需要审批,因此遭到提示词注入的代理无法悄然改写自身的长期指令;一次深入的敏感信息脱敏排查修补了终端错误、
.env读取、checkpoint 和 ACP 日志中的机密泄露缺口;审批系统新增对 Windows 破坏性命令的识别;借助稳定的 TCC 签名身份(hermes desktop --setup-tcc-identity),macOS 权限授权可在更新后继续保留;Blender MCP 目录条目及其 skill 则因上游遭到入侵而被移除。有关对应标签版本的详细信息,请参阅安全加固。3539 - Gateway 日趋成熟。 Slack 新增原生实时卡片(真正的流式回复,以及可选启用的计划/任务卡片)和出站链接预览抑制功能;Telegram 新增内联选择器,可通过 @botname 搜索每条命令和每项 skill,从而绕过 Telegram 的命令菜单数量上限;relay 通道进一步成熟(原生插件初始化、支持草稿流式传输的实时卡片操作、会话跨度分段,并恢复语音消息 STT);gateway 控制套接字让集群使用方可以查询 gateway,也让更新程序能够优雅地暂停它,而不必终止整个进程树;当看门狗触发时,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个问题。59
有3项变更使本指南早期版本提供的操作说明不再适用。 请务必先阅读以下内容:
- 现在必须使用 Node 26。 安装程序固定使用
NODE_VERSION="26",并会拒绝旧版运行时,提示“Node.js … is too old (Hermes requires Node >=26)”。安装程序、heal和upgrade均会强制执行此要求。请注意,文档网站的安装页面仍称需要 Node v22——安装脚本和发行说明更新更及时,应以二者为准。59 - pip 和 Homebrew 已停止使用,并非只是弃用。 原文明确指出:“brew + pip/PyPI wheel channels retired (shell installer / Docker / Nix are the supported channels).”如果仍通过 pip 或 brew 安装,该渠道将不再收到新版本。59
- 默认工具调用迭代上限已从90次提高至500次。 长时间自主运行不会再撞上人为设置的壁垒,下文所有预算压力阈值也均根据新上限计算。
read_file的默认读取量同样从500行提高至2,000行。59
此版本的其余更新包括:
- 对话式语音。 支持可插话打断的流式 TTS,以及设备端唤醒词。59
- A2A v1.0。 新增代理间协议插件,解决了问题 #514 中长期存在的需求。59
- 签名出站 Webhook。 此前
hermes webhook仅支持入站;v0.20.0 新增使用 HMAC 签名的出站生命周期 Webhook,覆盖会话、轮次和工具事件。59 - 有依据的引用。 新增一项带事实核查模式的 skill。59
- 面向高级用户的 CLI 更新浪潮。
!command无需占用模型轮次即可立即运行 shell 命令;/init会扫描项目并写入或更新AGENTS.md;/diff可从任何界面显示暂存、全部或当前会话中的变更;/context会详细说明哪些内容占据了上下文窗口;/focus提供精简输出视图,并可恢复被隐藏的行;Ctrl+S 可以暂存尚未写完的提示词。hermes import-agent只需一条命令即可迁移 Claude Code 或 Codex CLI 配置。59 - 密钥功能扩展。 新增可与任意保管库组合使用的命令辅助程序密钥源、附带可操作启动错误提示的一键令牌轮换、可选的 Bitwarden 加密紧急访问缓存、按各 profile 主目录限定作用域的保管库注入密钥,以及
config.yaml与 MCP 配置之间的${env:VAR}SecretRef 对等支持。下文介绍的三路径身份验证模型保持不变。59 - 更快的热启动。
hermes -w的冷启动时间从约14秒降至1.8秒。59 - 桌面端成为正式平台。 新增带版本化卡片和沙盒实时预览的产物、以 Kanban 作为首个桌面插件的 Plugin SDK、用于快速输入的全局快捷键、多 GUI 窗口、SSH 远程后端模式,以及符合 RFC 8252 的原生登录。59
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 新增功能是这一整段时期的精选记录(该版本确认这些发布窗口“are fully documented here”)。下方各区块仍作为发布当时的逐标签记录保留——它们注明了每个标签具体引入的内容,而精选说明则将这些内容合并呈现。58233035
v0.20.3(自 v0.20.2 以来约250次提交、约125个 PR):
- MCP 2.x SDK 迁移,并支持2026-07-28版无状态协议。 Hermes 迁移至当前一代 MCP SDK,并支持该协议的无状态修订版。58
- Bot Mode 作为捆绑插件发布(
hermes-bots),内置核心队友协议。58 - 新增 CommandCode 提供商插件,进一步扩充提供商目录。58
- 用于计算机操作的 Cua Driver 0.20 运行时契约,并强化子进程 Python 运行时所有权(隔离 PYTHONHOME/PYTHONPATH)。58
- 可靠性更新:cron 调度器自愈(从 EMFILE 恢复、协调过期声明、重新启用卡死任务)、修复会话移交过程中的数据丢失问题、桌面端远程 gateway 连接自愈,以及一系列生态功能移植(插件安装安全扫描、
/worktree、/rollback保留手动编辑内容、读取 UTF-16 文件)。58
v0.20.4(自 v0.20.3 以来约146次提交、约74个 PR):
- 桌面端玻璃界面:加入磨砂玻璃和半透明效果,并提供磨砂效果选择器与 macOS 预选功能。58
- 采用标签页的 SESSIONS|BOTS 侧边栏,可分别隐藏或取消隐藏每个机器人;同时修复 Bot Mode 群聊问题(长时间运行的成员轮次、Markdown 渲染、跨设备路由)。58
- 安装 skill 时执行 NVIDIA SkillEvaluator Tier 1 建议性扫描——安装 skill 时会进行许可证与安全检查。58
- 强化 cron 媒体发送功能(可配置超时、手动运行附件、显示错过的触发),修复 SessionDB 事件循环线程和争用问题,使
hermes update如实报告已搁置分支,并为 Kanban 加入原生操作系统通知。58
v0.20.5(自 v0.20.4 以来约746次提交、约323个 PR):
- 无密钥 Web 层:全新安装后,无需任何 API 密钥即可使用 Web 搜索——通过5家供应商免费轮换,并支持环形故障转移。23
- 一轮 CLI 体验优化:支持模糊搜索的
/model选择器、Ctrl+P 命令面板,以及信息更丰富的/status。23 - Bot Mode 日趋成熟:新增群组房间线程、可折叠对话摘要、斑点脸头像,以及支持拖放的 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 Keychain 提示。30
- 选择器新增多款模型:GLM-5.3-Flash、免费的 MiniMax M3,以及 MiniMax H3 Max video。30
- 为
web_search/web_extract加入 TTL 结果缓存,并支持带词干提取的多查询tool_search。30 - 精简尾部压缩现已成为默认设置——下方的上下文压缩部分记录了该标签发布时的配置。3031
- 终端后端现已支持插件化——请参阅终端后端。3032
- 更新程序和设备群如实反馈状态:更新程序会通过控制套接字暂停 gateway,而非终止整个进程树;通过镜像或软件包管理的安装则会拒绝不安全的原地更新。30
- Cron 新增持久事件确认并提供更清晰的代码版本偏差失败信息,同时加入 Slack 链接展开控制和共享 Docker 容器身份。30
更新方式保持不变:现有安装运行 hermes update,全新安装则使用 shell 安装程序。582330
v0.19.0 新增内容(Quicksilver 版本)
Hermes Agent v0.19.0(标签 v2026.7.20,2026年7月20日)以信使之神的神速命名:本次发布的核心是极致响应能力,所有平台的首次交互首个 token 响应时间缩短了约 80%。围绕这一核心,还新增了终端账单管理、密码管理器密钥源、默认启用的智能审批、可观测的子代理,以及可抵御崩溃的响应交付机制。从 v0.18.0 至今,这是项目规模最大的一次更新:约 2,245 次提交、约 1,065 个合并的 PR、约 3,300 个已关闭的问题,以及 450 多名社区贡献者。60
- 所有平台的首个 token 响应速度均提升约 80%。 CLI、gateway、TUI、桌面端和 cron 的冷启动提交至分发耗时均从约 4.3 秒降至约 0.9 秒——Discord 能力检测已移出关键路径;对于已知的非 Ollama 提供商,将跳过 Ollama 探测;代理初始化中的阻塞操作也已移除。感知延迟同样得到专项优化:推理模型现在默认实时流式显示思考过程(
display.show_reasoning已开启),响应框也改为逐 token 而非逐行渲染。60 - 桌面端与 TUI 渲染全面提速。 桌面应用通过约 20 个 PR 完成了一轮性能大改:借助增量块词法分析,流式 Markdown 分割器的 CPU 占用降低至原来的 1/14;审阅窗格的差异内容实现虚拟化;大型对话记录中的会话切换更加迅捷;侧边栏和工具行也不再随每个 token 重新渲染。TUI 现在会按块增量渲染流式 Markdown。60
- pip 和 Homebrew 安装方式已弃用。 两种方式均被标记为“不受支持的旧版”安装渠道,并计划移除。该移除工作已在 v0.20.0 中完成——brew 和 pip/PyPI wheel 渠道现已停用,受支持的渠道仅保留 shell 安装程序、Docker 和 Nix。6059
- 密钥可从密码管理器获取。 新增的可插拔
SecretSource接口可在加载时从 Bitwarden 和 1Password(op://引用)获取密钥,支持同时启用多个保险库,并提供确定性的优先级、冲突警告和逐变量来源记录——API 密钥无需再存放于明文.env文件中。未来的保险库提供商可作为插件直接接入。60 - 智能审批现已默认启用。 当 Hermes 准备运行被标记的命令时,独立的 LLM 审阅器会先进行评估,无需每次都向您确认——且每项裁定仅适用于对应的确切命令。用户定义的拒绝规则即使在 YOLO 模式下也会阻止匹配的命令;
/deny <reason>会将拒绝原因告知代理,促使其调整方案;重新加入并支持规则键的插件pre_tool_call批准操作,则可将工具调用升级为人工审批。60 - 终端账单管理:
/subscription和/topup。 无需离开终端即可管理 Nous Portal 套餐——查看当前套餐和剩余额度,准确预览升级费用或降级生效时间,并在应用变更后撤销操作。桌面应用也新增了相应的账单设置选项卡。60 - 实时查看子代理工作;已完成的答案永不丢失。
delegate_task分发任务后会返回实时对话记录文件,子代理一经启动即可使用tail -f查看——每个工具调用、结果和流式回复都会写入日志,每个子代理各有一份易于阅读的记录。后台委派任务的完成结果可在重启后保留;最终 gateway 响应会记录在state.db的交付义务账本中。如果 gateway 在发送途中崩溃,响应将在下次启动时重新交付。max_async_children配置选项已弃用,统一委派并发上限将取而代之。60 - 一个 gateway,多个 profile。 单个复用型 gateway 可共享一个机器人令牌,并将特定服务器、频道或线程路由至不同的 profile——每个 profile 都拥有完全隔离的配置、skills、内存和密钥——同时支持通过
GATEWAY_MULTIPLEX_PROFILES覆盖设置。路由索引已迁移至state.db;sessions.json现在仅作为可选的旧版镜像。60 - 提供商与模型集中更新。 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选择器和解析流程中彻底移除未使用的提供商。60 - 推理强度可灵活调节。 所有界面均新增
max和ultra强度级别,并支持配置中的逐模型覆盖、MoA 预设中的逐槽位强度(顾问深入思考,综合器保持快速)、辅助模型的逐任务强度,以及 CLI 中仅对当前会话生效的/reasoning。60 - 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命名约定。60
如果从 v0.18.x 升级,首先需要注意两项变更:pip 或 Homebrew 安装现会提示为不受支持的旧版方式(请迁移至单行安装程序);max_async_children 也已弃用,统一委派并发上限将取而代之。其余更新均为增量功能——最值得升级的理由是首次交互延迟缩短约 80%、智能审批,以及确保已完成答案不因崩溃而丢失的交付账本。
v0.18.0 新增内容(Judgment 版本)
Hermes Agent v0.18.0(标签 v2026.7.1,2026年7月1日)以“判断”为名:代理不再直接宣称成功,而是验证自己的工作;同时,集成推理过程也真正做到了可供检查。此版本还清空了全部 P0/P1 待办事项——在 12 天内解决了约 692 个最高优先级项目。22
- Mixture-of-Agents 成为一流模型。 现在可在所有界面中像选择其他模型一样选择 MoA,集成推理过程也清晰可见:每个参考模型的完整输出都会呈现为独立的带标签内容块,并实时流式显示答案——您可以亲眼观察集成模型的思考过程,而不再只能得到不透明的合并答案。22
/goal的完成契约。 代理在报告目标完成前,会先运行项目检查来验证自身工作,不再直接宣称成功——将判断力用于自身。22/learn——通过描述将任何内容转化为 skill。 只需描述工作流,即可将其转化为可复用的 skill;生成的 skills 会自动遵循仓库的 CONTRIBUTING.md 约定。22/journey时间线。 以可视化方式呈现内存和 skills 随时间演变的历史记录,支持编辑;桌面端还提供内存图谱。22- 后台子代理扇出。 可委派多个任务并发运行,且不会阻塞对话——v0.17.0 中的单个后台子代理现已扩展为一支队伍。22
- 桌面端 Projects。 提供一流的编码 Projects,并采用项目/仓库/通道组织模型。22
- 可缩容至零的 gateway。 gateway 可在空闲时进入休眠状态,并协调排空过程以实现无缝部署——对于将 Hermes 作为常驻服务运行的用户而言,这项改进意义重大。22
- 支持 Google Vertex AI。 可通过 GCP 服务账号访问 Gemini,并自动刷新 OAuth2 令牌,现已加入提供商目录。22
/prompt编辑器命令。 打开$EDITOR编写多行提示词,无需再受限于单行输入框。22
如果从 v0.17.x 升级,此版本不会破坏 CLI。最值得升级的功能包括完成契约(可自行验证的目标)、支持检查集成过程的一流 MoA,以及用于捕获 skill 的 /learn。
v0.17.0 的新增功能(触达版本)
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(100万上下文)、anthropic/claude-fable-5、laguna-m.1、nemotron-3-ultra和grok-composer-2.5-fast(通过 xAI OAuth 使用的 Cursor 模型,20万上下文)。xAI 默认模型已改为grok-build-0.1,Anthropic 自适应模型现在遵循现代思考协议(绝不会发送reasoning字段)。21 - 桌面端和仪表板。 桌面端新增后台子智能体,可通过实时“监视窗口”流式展示委派活动(
delegate_task(background=true)),还新增 Composer 模型选择器、可重新绑定的键盘快捷键、原生操作系统通知、各线程独立的 Composer 草稿、VS Code Marketplace 主题,以及日语和繁体中文界面。仪表板新增完整的 profile 构建器(无需编辑config.yaml即可配置模型、skills 和 MCP)、全局 profile 切换器、经过重构且带安全扫描功能的 Skills Hub、Automation Blueprints(适用于表单、斜杠命令、对话和文档的参数化模板),以及位于 OAuth 访问控制之后、会返回 401 的安全登录机制。21 - Skills 和工具。
image_generate现在不仅能从零创建图像,还能通过所有受支持的图像提供商编辑和转换源图像;memory工具新增operations数组,可在单次调用中以原子方式批量添加、替换或移除内容;新的simplify-codeskill 会执行由 3 个智能体并行完成的审查和清理流程,并通过切斯特顿围栏风险级别进行把关;布尔值write_approval则取代了三态write_mode。21 - 架构。 后台子智能体会立即返回句柄,并将其结果作为新一轮对话重新送入;MCP 信息征询处理程序支持在工具调用过程中请求确认,较晚连接的 MCP 工具会在对话轮次之间公开(且可安全缓存);cron 改为可插拔的 CronScheduler,并新增 Chronos 托管 cron 提供商;新的 Managed 作用域(
/etc/hermes)允许管理员锁定用户无法修改的配置,此外还新增用于多 gateway 拓扑的 Gateway-Gateway 中继。21 - 新增命令。
/version、/billing(交互式终端计费)、hermes photon login(iMessage 身份验证)和hermes curator run --consolidate——整合现改为选择启用,因此常规后台整理不会消耗任何令牌。21 - 安全性。 v0.17.0 修复了绕过 shell 转义拒绝列表的漏洞;缺少审批模块或自有策略 gateway 适配器时默认拒绝执行;净化 cron 作业脚本子进程的环境;隐去请求调试转储中的机密信息;检查 MCP stdio 配置中的数据外泄模式;并升级 urllib3 和 PyJWT 以修复 CVE。21
如果从 v0.16.x 升级,这些变化都不会破坏 CLI;只是在同一个智能体周围新增了渠道、模型和交互界面。无需中继的 iMessage、官方 WhatsApp 适配器以及管理员 Managed 作用域,是此次升级最值得关注的理由。
v0.16.0 的新增功能(界面版本)
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 会话,以及使用跨 profile 的@session引用关联这些会话。桌面界面还通过类型化 i18n 层提供完整的简体中文翻译(display.language;英语仍为默认语言)。20 - 浏览器管理面板。 本地 Web 仪表板已从状态视图升级为完整的管理面板:包括带启用/禁用开关的 MCP 目录、凭据管理、Webhook 和钩子创建、内存配置、gateway 控制,以及提供更新前检查和一键 Debug Share 的 System 页面。新的 Channels 页面允许通过浏览器配置 gateway 的所有消息平台(Telegram、Discord、Slack 等)。身份验证现在支持插拔:用户名和密码登录、通用的自托管 OIDC 提供商、用于注册自托管 OAuth 客户端的
hermes dashboard register,以及刷新令牌会话轮换。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(100万上下文,原生 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 在被请求之前不会进入索引。NVIDIA/skills现与 OpenAI、Anthropic 和 HuggingFace 一同成为 Skills Hub 默认信任的 tap。MCP 和插件工具新增渐进式(限定作用域的)工具公开机制;此外还修复了一个 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 的新增功能(基础版本)
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 可以在下一轮对话之前显示每轮的文件变更摘要和语言服务器语义诊断,使其更接近循证驱动的智能体工作方式。
- 桌面和媒体工具能力进一步扩展。 对于非 Anthropic 提供商,
computer_use可通过 cua-driver 工作;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安装,请迁移至上述安装程序。60
支持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。59 从历史版本来看,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。597
验证安装
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 issue或Discord讨论串中——它会以纯文本形式汇总您的完整设置,同时隐去所有敏感信息。8
手动安装
如果需要完全掌控安装过程——例如自定义Python版本、指定extras或集成Nix/NixOS——上游安装指南提供了循序渐进的手动操作说明。7 以下是可通过uv pip install -e ".[<extras>]"组合安装的主要可选extras:
| Extra | 增加的功能 |
|---|---|
all |
以下全部功能 |
messaging |
Telegram和Discord gateway |
cron |
Cron表达式解析 |
cli |
用于设置向导的终端菜单UI |
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 extra会引入faster-whisper,后者依赖的ctranslate2 wheel并未针对Android发布。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的免费层现已拒绝来自其自有客户端之外的匿名流量,无密钥的opencode-free提供商已于9月18日移除。53在标签v0.21.6中,静态列表仍有39行,目录数则为41:已有静态行的lmstudio和tencent-tokenhub新增了插件目录,而没有静态行的solstice则通过自动扩展加入。55除此之外,还有自定义端点和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取代的是明文文件本身,未来的保管库提供商可作为插件直接接入。)60
路径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已停用)。60 |
| 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新增。60 |
| DeepInfra | API密钥 | 一等提供商,集成经过强化。v0.19.0新增。60 |
| Upstage Solar | API密钥 | 一等提供商。v0.19.0新增。60 |
| xAI (Grok) | 原生提供商 / SuperGrok OAuth | 一等提供商,支持直接访问API及模型目录(v0.9.0及更高版本)。v0.14.0新增SuperGrok OAuth,并将有权限账户的grok-4.3上下文窗口提升至1M。21619v0.17.0新增grok-composer-2.5-fast(通过xAI OAuth使用Cursor的模型,上下文为200k),并将xAI默认模型改为grok-build-0.1。21v0.19.0将目录中的grok-4.5转为正式可用版本。60 |
| 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或Application Default Credentials使用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)”(provider:minimax-oauth;通过浏览器进行 PKCE 登录,适用于 Coding Plan,支持全球或中国区域)26 |
| Meta AI | API 密钥 | ~/.hermes/.env 中的 MODEL_API_KEY(provider: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 版本周期内加入。5826 |
| 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 → “Custom endpoint”(保存在 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 解析中移除。60 |
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 自身的凭据存储,而不是将 token 复制到 ~/.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 设备代码登录
token 类型至关重要。 Copilot API 不支持经典 Personal Access Token(ghp_*)。支持的类型包括 OAuth token(gho_*)、细粒度 PAT(具有 Copilot Requests 权限的 github_pat_*)以及 GitHub App token(ghu_*)。如果 gh auth token 返回 ghp_* token,请改用 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 会探测多个端点(全球、中国及 coding 变体),找出能够接受您的 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 token,便于在不修改代码的情况下,将速率限制分摊到多个密钥上。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将Hermes指向http://localhost:1234/v1。
LM Studio的关键陷阱:LM Studio会从模型元数据中读取上下文长度,但许多GGUF模型报告的默认值为2048或4096。请务必在LM Studio的模型设置中明确指定上下文长度——点击模型选择器旁的齿轮图标,将“Context Length”设置为至少16384(最好为32768),然后重新加载模型。2
命名自定义provider
如果需要使用多个自定义端点(例如本地开发服务器和远程GPU服务器),请在config.yaml中将它们定义为命名自定义provider: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菜单中选择命名自定义provider。2
可插拔provider架构(v0.13.0+)
v0.13.0提供了ProviderProfile ABC以及plugins/model-providers/目录,使第三方推理provider无需修改核心代码即可接入。18如果某个provider支持OpenAI、Anthropic或Codex兼容的API模式,您可以实现一个ProviderProfile子类,并在其中声明认证路径、基础URL、模型目录和缓存标头;Hermes会通过内置provider所使用的同一条runtime_provider.py路径解析它。这正是v0.13.0扩展provider支持背后的架构变革:添加provider不再需要编辑核心代码,只需发布插件即可。
OpenAI兼容的本地代理(v0.14.0+)
hermes proxy会公开一个OpenAI兼容的本地端点,其后端是Hermes已登录的OAuth provider——Claude Pro、ChatGPT Pro、SuperGrok或其他已配置的兼容provider。19这意味着,包括Codex CLI、Aider、Cline、Continue或自定义脚本在内,任何需要OpenAI风格API的工具,都可以复用Hermes中由订阅支持的认证,而无需单独的API密钥。请将此代理视为本地开发基础设施:有意选择绑定地址,切勿大范围公开,并留意各provider的具体条款。
上下文长度检测
根据上游文档,以下两项设置经常被混淆: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使用多来源解析链检测上下文窗口:配置覆盖→自定义provider的逐模型设置→持久化缓存→端点/models→Anthropic /v1/models→OpenRouter API→Nous Portal→models.dev(由社区维护、涵盖3800多个模型的注册表)→后备默认值(128K)。2该系统能够识别provider,因此同一模型可能因服务它的provider不同而具有不同的上下文限制(例如,claude-opus-4.6通过Anthropic直连时为1M,但通过GitHub Copilot时为128K)。2
智能模型路由:provider轮换与故障转移
Hermes不会将您局限于单一provider上的单一模型。智能模型路由是一组 用于确定实际由哪个provider和模型处理特定请求的机制:凭据池在多个密钥之间 分摊负载;主模型故障时,已配置的后备模型会接管;下方的辅助槽位则会将次要任务 路由到更便宜的模型,而不受主模型影响。26请将这三项结合配置——这决定了agent 是因速率限制而停滞不前,还是能够继续工作。
凭据池。如果同一provider有多个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
后备机制会在会话中途切换模型和provider,同时保留对话内容。每个会话最多触发一次。2支持故障转移的provider包括: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 规约制定器/分解器系列,以及自 v0.21.6 起支持的语音轮次(auxiliary.voice_chat,默认使用更快的模型并设为 reasoning_effort: none 来执行语音轮次;如果请求无法满足语音模型的压缩阈值,则继续使用主模型)。43455 默认情况下(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,然后选择“配置辅助模型”,即可通过交互式选择器逐项设置。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
可以使用shell风格的插值在config.yaml中引用机密信息: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种区域设置:简体中文、日语、德语、西班牙语、法语、乌克兰语和土耳其语。18 v0.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:键确定。英语仍为默认语言,也是翻译尚未覆盖的所有字符串的事实来源。v0.21.6支持可插拔语言:display.language接受由17个内置目录、profile的叠加目录或已安装插件语言包提供的任意id;hermes config set display.language <id>会先执行插件发现,因此刚安装的语言包也会被接受。核心字符串与TUI字符串分别位于不同层(locales/<lang>.yaml和locales/<lang>.tui.yaml;该标签包含16个TUI语言包)。55
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的允许列表、向其主机发送凭据、将其保险库机密交给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或标题恢复会话 |
--continue [name], -c [name] |
恢复最近的会话(或匹配某个标题) |
--worktree, -w |
在隔离的git worktree中启动 |
--in <dir> |
在启动或恢复前切换到DIR。与--resume latest或-c结合使用时,会选择DIR工作区最近的会话,且会话将留在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+)60 |
--pass-session-id |
在代理的系统提示中包含会话ID |
顶级命令
| 命令 | 用途 |
|---|---|
hermes chat |
交互式或单次聊天 |
hermes model |
以交互方式选择默认提供商和模型 |
hermes gateway |
运行或管理消息gateway |
hermes setup |
交互式设置向导 |
hermes auth |
管理凭据——添加、列出、移除、重置及设置策略 |
hermes status |
显示代理、身份验证和平台状态;自v0.21.6起默认以单屏摘要呈现,使用--full(或--all)可查看所有部分,使用--deep可执行耗时较长的检查 |
hermes cron |
检查并触发cron调度器 |
hermes webhook |
管理动态webhook订阅 |
hermes doctor |
诊断配置和依赖项问题 |
hermes dump |
生成可直接复制粘贴的设置摘要,用于支持和调试 |
hermes logs |
查看、实时跟踪和筛选代理、gateway及错误日志 |
hermes config |
显示、编辑、迁移和查询配置 |
hermes pairing |
批准或撤销消息平台配对码 |
hermes skills |
浏览、安装、发布和审计skill |
hermes honcho |
管理Honcho跨会话记忆。此命令取决于插件:文档说明“插件专属子命令(例如hermes honcho)会在其提供商处于活动状态时自动注册”,因此除非Honcho是当前活动的记忆提供商,否则它不会出现在hermes --help中6 |
hermes memory |
配置外部记忆提供商 |
hermes acp |
将Hermes作为ACP服务器运行(编辑器集成) |
hermes mcp |
管理MCP服务器配置;将Hermes作为MCP服务器运行 |
hermes plugins |
管理插件 |
hermes tools |
按平台配置启用的工具 |
hermes sessions |
浏览、导出、清理和删除会话。v0.19.0将hermes sessions export扩展为支持Markdown、Quarto、HTML、仅提示词和Hugging Face跟踪格式,并提供可选的--redact敏感信息清理流程,以及按时间、工作区和平台筛选的功能60;hermes sessions recover可从损坏的state.db中重建规范会话数据,并写入单独的全新数据库。该过程离线运行且不会破坏原数据库;使用--inspect-only可报告规范表是否可读,而不创建新数据库(v0.21.2指明的恢复路径)48;hermes sessions set-journal-mode delete\|wal(v0.21.4版本窗口)可离线将存储在WAL与回滚日志模式之间转换——如果任何外部进程占用数据库或其辅助文件,它会拒绝执行;不会等待占用进程退出,而是直接失败;完成后会验证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 |
更新源码安装并重新安装依赖项;自v0.21.7起,官方签出版本会跟随最新发布版本(使用--set-channel main可跟随每次提交,使用--channel <name>可为单次运行指定通道,使用--install-id可输出当前安装的ID) |
hermes uninstall |
从系统中移除Hermes(--full还会删除配置和数据) |
hermes backup |
完整备份配置、会话、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界面60 |
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:并行worker → verifier → synthesizer)和dispatcher27 |
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向其中的代理发送消息并输出回复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应用manifest或将其写入文件,其中每个gateway命令都会注册为原生斜杠命令27 |
hermes sync |
跨设备并与团队进行Skill Sync:status、pull、push、now、enable、disable、device、propose27 |
hermes whatsapp-cloud |
设置WhatsApp Business Cloud API集成(不同于面向个人账号的hermes whatsapp Baileys桥接器)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上,它现在会初始化一个交互式会话(查询内容会按原样作为第一轮提交);与--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> |
为此会话预加载一个或多个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同时使用;诊断信息和会话ID仍会写入stderr,每个事件中的工具输出上限为5,000个字符(v0.21.4版本窗口)51 |
--resume <session> |
直接从chat恢复会话 |
--worktree |
创建隔离的git worktree |
--checkpoints |
在破坏性更改前启用文件系统checkpoint |
--yolo |
跳过审批提示 |
--source <tag> |
会话来源标签(默认: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更强大,因为它支持同时按日志级别、会话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调用、工具分派、会话生命周期、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> |
将 prompt 加入队列,供下一轮使用。注意:/queue 和 /quit 都注册了 /q;后注册的命令优先,因此实际使用时 /q 会解析为 /quit——请务必完整输入 /queue。9 |
/resume [name] |
恢复先前已命名的会话 |
/statusbar(别名 /sb) |
切换上下文/模型状态栏 |
/background <prompt>(别名 /bg) |
在独立的后台会话中运行 prompt |
/btw <question> |
临时提出题外问题(不使用工具,也不持久化) |
/plan [request] |
加载内置的 plan skill,以编写计划而非直接执行 |
/branch [name](别名 /fork) |
为当前会话创建分支 |
/goal <target> |
将 agent 锁定到目标,使其在多轮交互中始终专注于任务。将 Ralph-loop 模式作为一等原语提供,并可配置轮次预算。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] |
设置 personality 叠加层 |
/verbose |
循环切换工具进度显示方式 |
/reasoning |
管理推理强度和显示方式。v0.19.0 新增 max 和 ultra 强度级别,并将 /reasoning 的作用域限定为当前会话,同时支持在配置中为每个模型和每个 MoA 槽位单独覆盖推理强度60 |
/skin |
显示或更改界面皮肤/主题 |
/voice [on\|off\|tts\|status] |
切换 CLI 语音模式 |
/yolo |
切换 YOLO 模式(跳过批准提示)。自 v0.19.0 起,即使处于 YOLO 模式,用户定义的拒绝规则仍会阻止匹配的命令60 |
/fast |
切换 Fast Mode——为 OpenAI 和 Anthropic 模型启用优先处理(v0.9.0+)16 |
/debug |
在所有平台上快速进行诊断(v0.9.0+)16 |
/subscription |
在终端中管理 Nous Portal 方案——查看方案和剩余额度、预览升级/降级成本,并可在应用后撤销(v0.19.0+)60 |
/topup |
无需离开终端,即可为 Nous Portal 余额充值(v0.19.0+)60 |
在会话过程中切换提供商时,/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——仅覆盖一轮所用模型,并在响应后自动恢复到之前的模型。60 自 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,并为串联的名称提供自动补全和幽灵文本。60
还可以在 config.yaml 中定义快捷命令,将短名称作为较长 prompt 的别名: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)——将当前聊天设为平台 home/approve [session|always]——批准待处理的危险命令/deny [reason]——拒绝待处理的危险命令。自 v0.19.0 起,/deny <reason>会将拒绝理由转达给 agent,使其及时调整,而不是在不明原因的情况下盲目重试60/update——将 Hermes Agent 更新到最新版本/commands [page]——分页浏览所有命令和 skill
另有一些命令仅适用于 CLI:/skin、/tools、/toolsets、/browser、/config、/cron、/skills、/platforms、/paste、/statusbar、/plugins。9
工具与 Toolsets
Hermes 内置了丰富的工具注册表,涵盖网页搜索、浏览器自动化、终端执行、文件编辑、记忆、委派、RL 训练、消息传递、Home Assistant 集成等功能。10工具按逻辑组织为不同的 toolsets,可针对各个平台启用或禁用。
高层类别
| 类别 | 示例 | 说明 |
|---|---|---|
| Web | 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 capabilities、禁止权限提升、限制 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 将这种模式提升为受支持的拓扑结构,新增了用于 协调并行工作进程的群体拓扑、将高层目标拆分为子任务的自动分解、 每任务模型覆盖、定时任务以及工作树管理,避免并行 工作进程在同一检出目录中发生冲突。63
| 简单多 Agent 设置中的问题 | 看板的处理方式 |
|---|---|
| 两个工作进程认领了同一个任务 | 认领任务时记录工作进程身份,从而明确任务归属 |
| 工作进程在任务途中终止,工作成果随之丢失 | 心跳中断后,任务会连同此前的部分输出一起被重新认领 |
| 已崩溃的工作进程永远“占用”任务 | 僵尸检测会阻止其认领新任务 |
| 所有子任务都使用同一个昂贵模型 | 通过每任务模型覆盖,让机械性子任务使用成本较低的模型 |
| 并行工作进程编辑同一批文件 | 工作树管理会隔离每个工作进程的检出目录 |
实际运作方式如下:为群体设定一个目标,由自动分解将其拆解为看板任务,
再让各工作进程认领、执行并返回结果。重试预算按任务设置(max_retries),
因此某个不稳定的子任务不会耗尽整个运行过程的容错额度。由于看板具备
持久性,群体在重启后仍可继续运行——工作进程会重新连接,并基于同一状态恢复工作。
群体的成效取决于任务分解的质量。 看板负责协调工作进程,但无法 将拆分不当的目标变成优质任务。共享隐式状态的任务仍然会相互冲突, 即使使用工作树也无济于事。
Skills 系统
Skills 是代理可在需要时加载的按需知识文档。它们采用渐进式披露模式,以尽量减少 token 用量,并兼容 agentskills.io 开放标准。11
所有 skills 均位于 ~/.hermes/skills/——这是主目录,也是唯一可信来源。全新安装时,捆绑的 skills 会从仓库复制到此处。通过 Hub 安装以及代理创建的 skills 也会存放在这里。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)
只有实际需要某项 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.
条件激活
Skills 可以根据可用工具决定显示或隐藏。这对于后备 skills 最为实用——它们是免费的本地替代方案,仅应在高级工具不可用时出现: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 即可使用,代理会使用 web_search,而 DuckDuckGo skill 则保持隐藏。若没有 API 密钥,DuckDuckGo skill 会自动作为后备方案出现。11
代理管理的 Skills
代理可以通过 skill_manage 工具创建、更新和删除自己的 skills。这构成了代理的程序性记忆——当代理探索出一套复杂的工作流后,会将其方法保存为 skill,以便日后复用。11
代理会在以下情况下创建 skills: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 随附的可选 skills(内置信任) |
skills-sh |
skills-sh/vercel-labs/agent-skills/vercel-react-best-practices |
Vercel 的公共 skills 目录 |
well-known |
well-known:https://mintlify.com/docs/.well-known/skills/mintlify |
从发布 /.well-known/skills/index.json 的网站中通过 URL 发现 |
github |
openai/skills/k8s |
直接从 GitHub 仓库或路径安装 |
clawhub |
— | 第三方 skills 市场 |
lobehub |
— | LobeHub 代理目录转换 |
browse-sh |
— | Browserbase skills 来源 |
默认 GitHub taps(无需设置即可浏览):openai/skills、anthropics/skills、huggingface/skills、NVIDIA/skills、garrytan/gstack。claude-marketplace 来源已在 v0.20.0 中移除;browse-sh 在来源列表中取而代之。1159
安全扫描
所有通过 Hub 安装的 skills 都会经过安全扫描器检查,检测数据外泄、提示词注入、破坏性命令、供应链风险信号及其他威胁。11
信任级别:11
| 级别 | 来源 | 策略 |
|---|---|---|
builtin |
Hermes 随附 | 始终信任 |
official |
仓库中的 optional-skills/ |
内置信任,不显示第三方警告 |
trusted |
可信注册表(openai/skills、anthropics/skills) |
采用更宽松的策略 |
community |
其他所有来源 | 可使用 --force 忽略非危险发现;dangerous 判定仍会被阻止 |
对于社区 skills,--force 可以绕过非危险的策略阻止,但无法绕过扫描给出的 dangerous 判定。11
外部 Skill 目录
您可以让 Hermes 指向其他 skill 目录,使其与本地目录一同接受扫描:11
skills:
external_dirs:
- ~/.agents/skills
- /home/shared/team-skills
- ${SKILLS_REPO}/skills
路径支持展开 ~,也支持替换 ${VAR} 环境变量。外部目录为只读——代理创建或编辑 skill 时,始终写入 ~/.hermes/skills/。如果两个位置存在同名 skill,则以本地版本为准。11
固定加载的 Skills: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
此列表仅在首次构建代理提示词时解析一次;如果名称不存在或已被禁用,系统会发出警告并跳过,而不会导致会话失败。HERMES_IGNORE_RULES(--ignore-rules 背后的机制)会像处理其余自动注入的上下文一样抑制该列表。这是对 -s/--skills 的常规指令补充;后者只会为单次会话预加载 skills。51
持久记忆
Hermes 具备容量受限、经过筛选且可跨会话保留的记忆。代理的记忆由两个文件组成,均存储在 ~/.hermes/memories/ 中:12
| 文件 | 用途 | 字符限制 |
|---|---|---|
MEMORY.md |
代理的个人笔记——环境信息、约定和已掌握的事项 | 2,200个字符(约800个 token) |
USER.md |
用户画像——偏好、沟通风格和期望 | 1,375个字符(约500个 token) |
两者都会以会话开始时的冻结快照形式注入系统提示词。代理通过 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 成本。126334
| 功能 | 持久记忆 | 会话搜索 |
|---|---|---|
| 容量 | 总计约1,300个 token | 不限(所有会话) |
| 速度 | 即时(位于系统提示词中) | 一次 FTS 查询——自 v0.15.0 起无需调用 LLM |
| 使用场景 | 始终可用的关键信息 | 查找特定的过往对话 |
| 管理方式 | 由代理手动筛选维护 | 自动——存储所有会话 |
| Token 成本 | 每个会话固定(约1,300个 token) | 按需产生 |
v0.21.4 阶段新增了两项功能,均已在标签 v2026.9.21 中验证。第一项是时间范围:发现参数接受 after(会话开始时间的包含式下限)和 before(不包含式上限)。二者均可使用 ISO 日期/日期时间——仅提供日期时,表示当天 UTC 零时——也可使用相对时长(7d、24h、2w)。这些参数仅适用于明确指定时间范围的查询;sort 仍然只是排序偏向,而非范围限制。第二项是零结果召回重试:FTS5 会在搜索词之间隐式使用 AND,因此,经过改写的多词查询可能无法命中缺少其中任意一个词的已存储句子。当精确查询和子字符串回退均未返回结果时,搜索会重试索引,匹配任意一个词,并优先排列覆盖更多搜索词的记录。已有命中仍保持精确匹配语义(仅在零结果时才会触发重试),而包含显式 OR/NOT 的查询、单词查询和经 CJK 路由的查询均不受影响。51
外部记忆提供商
若需要超越 MEMORY.md 和 USER.md 的深层持久记忆,Hermes 在 v0.21.7 中内置了两个外部记忆提供商插件:RetainDB 和 ByteRover。另有6个可从插件目录安装:在 v0.21.7 中移出核心代码树的 Holographic;在 v0.21.6 中移出的 Honcho、OpenViking、Mem0 和 Supermemory;以及在 v0.21.5 中移出的 Hindsight。这6个插件均属于社区级条目,由各自供应商维护。125557
Hindsight 在 v0.21.4 及之前版本中随核心代码树提供,并在 v0.21.5 中迁移至目录,由 Vectorize 维护;Honcho、Mem0、OpenViking 和 Supermemory 随后于 v0.21.6 迁移,Holographic 则于 v0.21.7 迁移。现有配置会自行迁移:如果 memory.provider 指定了其中之一,hermes update 会在每个使用该插件的 profile 主目录中安装相应的目录插件;若首次启动代理时仍未安装,也会自动完成安装。若设置了 security.allow_lazy_installs: false,代理启动流程只会记录一条消息,因此需要自行运行 hermes plugins install <name>。插件会安装到 ~/.hermes/plugins/<name>/,并添加到 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)
同一时间只能启用一个外部提供商。内置记忆始终处于启用状态。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密钥。65 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用于充值。桌面应用中也提供了相应的账单设置选项卡。60
定价与访问权限
定价和等级名称发布在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订阅状态控制访问权限。65
定位:此版本不是什么
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 适配器。364171819 这里的 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。64 v0.12.0 增加了 Microsoft Teams 和 Tencent Yuanbao。17 v0.13.0 将 Google Chat 作为第 20 个平台加入,沿用同一套可插拔适配器架构;IRC 和 Microsoft Teams 也迁移到了新的适配器模式,并采用通用的 env_enablement_fn / cron_deliver_env_var 插件钩子。18 v0.14.0 增加了 LINE 和 SimpleX Chat,并完善了 Microsoft Teams 的端到端技术栈,涵盖 Graph 身份验证、webhook 监听器、管线运行时和出站投递。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 移动应用订阅主题,向主题发送消息即可与代理交流,并在手机上接收回复;既可使用公共 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 自 v0.21.6 起,Discord 设置步骤会验证机器人令牌,并输出一个包含适配器所需权限位的邀请链接;它还会明确提示仍处于关闭状态的 Message Content Intent,因为这会导致 Discord 拒绝机器人的连接。5455
消息流转方式
根据上游架构文档: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 恰好崩溃,系统会在下次启动时重新投递,而不会悄然丢失。60 v0.21.2 进一步加强了路由 profile 之间的隔离,修复了这种多路复用配置中特有的一系列跨 profile 泄漏问题:继承的允许列表、发送到默认 profile 主机的凭据、泄漏至 stdio MCP 服务器的默认 profile 保管库密钥、跨 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 仍可共存:如果正在运行的是另一个 profile 的独立(非多路复用)gateway,您的 profile 会像以前一样在旁边启动自己的 gateway,直至强制执行迁移(#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;主机永远不会服务该 profile,而它的 stop/start 会作用于自己的进程。文档将此键称为“临时兼容性垫片”,而非受支持的拓扑;如果在默认 profile 中设置,系统会发出警告并忽略它。若 gateway 分布在不同的操作系统用户下,或者 HERMES_HOME 位于默认主目录的 profiles/ 之外,则仍需要使用 --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 系统,其中的作业是代理任务,而不是 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.
代理将通过其工具设置 cron 作业。作业会持久保存在 JSON 中,并在重启后继续存在。3
v0.21.0 为计划作业赋予了记忆与判断能力。 共包含以下4种机制,均已在标签 v2026.8.31 中验证:3537
- 连续性。
continuity=true会在每次运行时注入该作业自身最近一次的输出,使侦察或监控任务“醒来时能看到上次报告的内容,从而去重并接续先前进度”——注入的引导语是“避免重复已经报告的内容”;首次运行不受影响;在内部,该标志以context_from中保留的self条目存储。可通过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>写入,运行中的代理会借助其终端工具调用该命令。37 - 监控模式。 作业可附加低成本的
monitor_script/monitor_url数据源,并在每次触发时优先运行:若输出未发生变化(按精确字节比较),便会完全跳过代理运行——不调用 LLM、不发送结果,只留下静默的no_change运行记录;若检测到变化,则注入差异块并正常运行代理。监控脚本应输出稳定内容,否则每次触发都会被视为发生变化。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 中。60
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 界面升级为命令中心:服务器与目录合并到同一页面;支持通过拖入内容实现“粘贴任何内容”式导入;后台健康检查会在工具调用失败前显示即将过期的身份验证;服务器群组成本与用量叠加层会显示每台服务器的 schema token 估算值及30天用量;hermes:// 深层链接则可在用户明确确认后安装 MCP 服务器。35
v0.21.4 版本新增 mcp.discovery_concurrency(默认值为4;0 表示不设限制,#117373),用于限制发现流程同时连接的已配置 MCP 服务器数量。所有服务器仍会建立连接——该上限只是避免它们同时发起连接——若值不是整数或为负数,系统会记录警告并回退到默认值。51
作为服务器——将 Hermes 对话开放给其他代理:
hermes mcp serve
hermes mcp serve -v # Verbose
上下文压缩
Hermes 会自动压缩过长的对话,使其保持在模型的上下文窗口之内。压缩摘要器会单独调用一次 LLM——您可以将其指向任意提供商或端点。4 自 v0.20.6 起,保留尾部策略默认为 lean(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 恢复指针,使代理能够重新访问被摘要掉的任何内容。文档对实际500K-token 会话的测量结果显示:保留量约为49K token,而非约162K。lean 尾部中的旧工具结果会降级为仅包含恢复指针的单行占位信息;未知的 tail_mode 值则会回退到 lean。31
auxiliary.compression.provider |
auxiliary.compression.base_url |
结果 |
|---|---|---|
auto(默认) |
未设置 | 自动检测可用的最佳提供商 |
nous / openrouter / 等 |
未设置 | 强制使用该提供商及其身份验证 |
| 任意值 | 已设置 | 直接使用自定义端点(忽略提供商) |
摘要模型支持的上下文长度必须至少与主模型相同,因为它会在单次调用中接收对话的完整中间部分——如果其窗口较小,调用便会失败,中间轮次也将在没有摘要的情况下被丢弃。431
预算压力警告
当代理使用大量工具调用处理复杂任务时,可能会在毫无察觉的情况下耗尽迭代预算(自 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
| 超时 | 默认值 | 本地提供商 | 环境变量 |
|---|---|---|---|
| 套接字读取超时 | 120s | 自动提高至1800s | HERMES_STREAM_READ_TIMEOUT |
| 陈旧流检测 | 180s | 自动禁用 | HERMES_STREAM_STALE_TIMEOUT |
| API 调用(非流式) | 1800s | 不变 | 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会为您的配置、会话、skill和内存创建完整归档。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-stdin攻击、修复危险命令绕过漏洞、在工具错误重新注入模型前进行清理、为仪表板插件API增加身份验证、完善skills-hub的SSRF防护,以及在安装期间扫描供应链安全通告。19
| 修复项 | 变更内容 |
|---|---|
| 默认启用密钥脱敏 | 此前需要主动启用。现在,除非明确禁用,否则日志和hermes debug share上传内容都会对密钥进行脱敏。v0.12.0曾因收到载荷损坏报告而默认禁用脱敏;v0.13.0重新启用此功能,将其作为更安全的基准设置。 |
| Discord跨服务器私信绕过(CVSS 8.1) | Discord角色允许列表现在限定在服务器范围内,从而封堵了一个漏洞:用户在某个服务器中的角色可能会授权其跨所有服务器发送私信。 |
| 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脱敏 |
Debug share上传内容会在上传时对日志进行脱敏,而不仅仅是在写入时进行处理。 |
如果您负责维护Hermes部署,应将v0.13.0和v0.14.0视为与安全密切相关的升级,而非普通功能更新。v0.13.0修复了Discord跨服务器绕过漏洞和两个TOCTOU窗口;v0.14.0则进一步加固了sudo处理、工具错误重新注入、插件API、skills-hub SSRF防护和依赖项安全通告等方面。
v0.21.0带来第四轮安全加固。现在,写入受保护的agent指令文件–AGENTS.md、CLAUDE.md、SOUL.md、.cursorrules、skills和内存存储–一律需要批准,防止遭到提示词注入的agent悄然改写自身的长期指令。该防护机制默认启用(security.protected_instruction_files: true,并通过protected_instruction_extra_patterns中的fnmatch基本名称扩展列表进行补充)。源代码明确说明了它所封堵的攻击途径:“编辑AGENTS.md / CLAUDE.md / SOUL.md的注入指令”,并指出指令文件会从当前工作目录树中加载,因此“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
v0.21.6带来第五轮安全加固。其中包括Tenable Research报告的4项仪表板身份验证修复(使用X-Forwarded-For欺骗登录速率限制、未经身份验证的请求可导致身份验证审计记录无限写入、公开的/auth/路由未限制请求正文大小,以及登录代码被发送至非环回重定向地址而导致会话可被接管);自动git调用在首次提示前不再运行不受信任代码库自身的clean、smudge或process过滤器程序;以及使用parseaddr解析电子邮件From标头,防止带引号的显示名称绕过允许列表。详情请参阅v0.21.6的新增内容。5455
面向实践者的架构
本节面向希望了解底层工作原理,以便调试、扩展或分析性能的读者。内容综合自上游架构文档。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>;移除工具会触发会话重置,以便agent重新构建工具清单)。
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(agent身份;若不可用,则使用内置后备内容)- 感知工具的行为指导
- 记忆/用户上下文(
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.6开始,plugins.isolation: host(默认值为in_process)可将第三方Python插件代码隔离在Hermes进程之外:普通插件按profile分别加载到一个插件宿主进程中,并且只能通过ctx与Hermes通信;所有其他可能在进程内导入用户代码的路径(类别提供商、模型提供商profile、仪表板插件API)都会拒绝加载并说明原因;捆绑插件则继续在进程内运行。这样一来,某个插件挂起或崩溃时,只会导致其宿主进程停止,而不会拖垮gateway。55从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;出现在该目录中即代表获准收录。这些数据以plugin-catalog.json形式发布,供CLI使用(实时获取,并缓存在~/.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 到v0.21.6时,这一应急途径已经关闭:清单、垫片、hermes plugins compat扫描器和plugins.allow_deprecated_imports均已移除;hermes_cli/plugin_compat.py仅作为无功能的存根保留,供仍从旧版检出运行的更新程序使用。若插件仍然导入拆分前的路径,其导入将失败。55
设计原则
摘自上游架构页面: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 个源目录的 skills、默认模型、自定义提供商、MCP 服务器、消息平台令牌和允许列表(Telegram、Discord、Slack、WhatsApp、Signal、Matrix、Mattermost)、代理默认设置(推理强度、压缩、人性化延迟、时区、沙盒)、会话重置策略(现已停用:自 v0.21.1 起,计时器不再轮换对话43)、审批规则、TTS 配置、浏览器设置、工具设置、执行超时、命令允许列表、gateway 配置,以及来自 3 个来源的 API 密钥。6
归档以供手动审查:cron 作业、插件、钩子/webhook、内存后端(QMD)、skills 注册表配置、UI/身份、日志、多代理设置、频道绑定、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 profile 中)、~/.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。对话历史记录、内存和 skills 都会随之保留:9
/model zai:glm-5
/model openrouter:anthropic/claude-sonnet-4
/model custom:local:qwen-2.5
我配置了 Anthropic,但视觉、网页和压缩功能无法使用
在当前版本中,过去那种情况基本不会再发生。默认情况下(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 网页提取已不再属于 LLM 任务(“不涉及 LLM”),因此在当前版本中,网页摘要失败并非辅助模型问题。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、配置、内存、会话和 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-10-13 | 指南 v1.25:Hermes v0.21.7(标签 v0.21.7,10月11日)——第5个汇总补丁,也是首个覆盖所有发布渠道(桌面端、Store/MSIX、安装程序、Docker、Cloud)的版本;精选说明推迟至 v0.22.0。 顶部新增“最新动态”章节;TL;DR 已链接至该章节。基于标签深入介绍:源代码安装会跟随带标签的版本(使用 hermes update --set-channel main 可继续跟随 main,以及 --channel、--install-id 和 update.installs 下的各安装记录)、桌面端 Update 渠道切换、恢复会话时重放签名思维以及 Bedrock Converse 推理、稳定版检查中的 403 和令牌处理、Holographic 移至目录(核心仍保留 ByteRover 和 RetainDB)、目录条目从 493 增至 552。已更新 CLI 表中的 hermes update 行和“外部内存提供商”;重新标注 v0.21.6 章节的日期。 |
5657 |
| 2026-10-11 | 指南 v1.24:Hermes v0.21.6(标签 v0.21.6,10月8日)——第4个汇总补丁,也是首个通过新稳定版发布流水线发布的版本(仅包含标签、GitHub 版本和 Docker 镜像);精选说明推迟至 v0.22.0。 顶部新增“最新动态”章节;TL;DR 已链接至该章节。基于标签深入介绍:stt.streaming 实时转录、auxiliary.voice_chat 槽位、plugins.isolation: host、另有4个内存提供商移至目录(Honcho、Mem0、OpenViking、Supermemory;核心仍保留 ByteRover、Holographic、RetainDB)、移除插件兼容层和 allow_deprecated_imports、hermes status 改为优先显示摘要(--full、--deep;该标签中没有 --short 标志)、可插拔语言包、提供商插件从 38 增至 41、选择器中新增 GPT-6.1 Sol 和 Claude Sonnet/Haiku 5.5、2种审批检测器、cron 存储健康状况降级、Discord 引导流程,以及 Tenable、git-filter 和 email-sender 的安全修复。已更新“辅助模型”“本地化”、CLI 表、“外部内存提供商”“消息 gateway”“插件系统”、兼容性说明框和“安全加固”。 |
5455 |
| 2026-09-24 | 指南 v1.23:自指南首版起一直位于当前版本上方的 v0.14.0 概览块,现已作为最早的章节置于“最新动态”历史记录末尾,与其余历史记录保持从新到旧的顺序。内容没有变化;TL;DR 现在从“关键要点”直接衔接至来源说明和“选择您的路径”。 | 指南结构 |
| 2026-09-24 | 指南 v1.22:Hermes v0.21.5(标签 v2026.9.24,9月24日)——第3个汇总补丁,精选说明推迟至 v0.22.0。 顶部新增“最新动态”章节;TL;DR 已链接至该章节。基于标签深入介绍: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 拥有独立章节,TL;DR 以当前版本开篇。配对: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 个已关闭议题”,并附有一则简短说明,将精选内容推迟至 v0.22.0。 在 v0.21.3 内容块下方新增“最新动态”章节。本地克隆在指定的测量提交 4b8a8134 上精确复现了全部5项主要数据(该标签额外增加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 这5种结果;桌面端部分的 host-backend-attach.ts 按账本 -> HTTP -> 令牌 -> WS 的阶梯顺序处理,并设有主机级启动门控——“消息 gateway”新增相关段落);由后端统一管理的连接器操作(tools/connectors/operation.py 中的“纯数据,无 I/O”,300秒期限有意不设为配置键,依据标签对应测试,manage_connections 设置卡片适用于桌面端/TUI/CLI——扩展 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个字符——聊天选项表新增对应行);skills.auto_load(config_defaults.py:1435,“在每个新会话(CLI、TUI、gateway、cron、API)中固定为完全加载”,构建提示词时仅解析一次,名称缺失时发出警告并跳过,HERMES_IGNORE_RULES 可将其禁用——新增“固定 Skills”小节);gateway decline(gateway/config.py:139,礼貌拒绝一次,随后在 DECLINE_DEDUPE_SECONDS 所规定的24小时内保持静默 #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.font_family 会覆盖主题的 --dt-font-sans,建议优先考虑无障碍性;“Update engine”支持一键更新运行时,并在失败时显示重试选项;Plugins-hub 卸载操作需经确认,通过 plugins.manage remove / Electron 加载器执行);视频目录(plugins/video_gen/fal 中的 ltx-2.5 + kling-o3,包含标签对应的功能字符串;toolsets-reference 名册新增对应行);插件目录扩建(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/多路复用隔离、cron、看板、桌面端、state.db)留待 v0.22.0 扫描。已重新验证兼容状态:删除路径的回滚仍未合入——在 v2026.9.21 以及 main 的 a53b42ddea(2026年9月22日,同日获取)中,清单与 shim 均仍存在;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 个,二者均未变化;TL;DR 中提供商数量的标定标签已从 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服务器的保险库密钥、跨profile的MEDIA:附件、同级Nous bearer;已在“Profiles”和“Messaging Gateway”多路复用段落中补充如实说明);密码不可见的凭据保险库(通过仅含元数据的命名空间句柄,使用1Password、Bitwarden或本地保险库登录、付款和自动填充,并仅在填充时解析密码;主密码绝不会作为工具参数;可通过已保存的身份验证器密钥生成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智能体能够接收此版本):单飞令牌刷新机制终结了刷新突发导致的会话撤销(提交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;第86–90行的removal_in_effect()从2026-09-14起返回true),受影响的插件现已禁用,并显示红色通知——但删除旧导入路径的回滚尚未落地(COMPAT_MANIFEST.md、compat_manifest.json及兼容垫片在该标签和main的5d59366010中均仍存在,获取时间为2026-09-15 12:55 PT),因此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(agent/context_compressor.py:1558-1567);--clone-all不再复制cron任务(该标志属于hermes profile,见subcommands/profile.py:24,而非hermes cron);kanban promote会拒绝尚未完成其父项的任务,kanban_request_review会拒绝未知的评审者profile;/model和辅助自动模式绝不会向未选择的提供商计费,也不会自动切换至缺少凭据的提供商;选择器新增DeepSeek V4.1 Flash(Nous Portal + OpenRouter)、GPT Image 2.5,以及原生Anthropic选择器中的Opus 5和Fable 5.1;在dpaste备用方案中,debug share的保留期限缩短至1天。在v2026.9.14重新确认:静态提供商为39个(对models_catalog_static.py:314中CANONICAL_PROVIDERS的AST计数),提供商插件目录亦为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中的提供商数量基准标签已从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插件兼容截止日期(COMPAT_MANIFEST.md:1,148个名称迁移至延迟加载、每个名称仅触发一次HermesPluginCompatWarning、hermes plugins compat检查器、plugins.allow_deprecated_imports应急选项;插件系统中新增兼容期说明框);仅由显式操作触发的gateway对话边界(SessionResetPolicy现已失效——已更新消息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工具源代码读取);提供商/模型(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插件;Tavily搜索/提取;托管式llama.cpp运行时;外部进程提供商;通过model_catalog.ttl_minutes设置20分钟目录刷新周期);以及桌面端浪潮(应用内浏览器评论模式会随每条注释携带选择器/标记/样式,并按区域分批处理;结构化会话与自动化控件;通过拖动创建会话;导入外部记录的会话;display.resume_last_session;首次打开真实profile时征求同意;内置可选skill目录;俄语桌面端区域设置)。仅记入更新日志且经提交或来源核实的内容包括:cron可靠性(通过3个经核实的修复提交强化重启交接;串行执行交付去重并保留终态;消除创建暂停任务时的竞态条件;将Discord cron媒体路由至目标位置,并报告上传失败;在无声审计tick之间保持连续性);审批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选择器;以及远程沙箱媒体交付(凭据及指向凭据的符号链接绝不会离开沙箱);故障排除新增针对陈旧HERMES_MAX_ITERATIONS残留项的doctor检查。标签基准从v2026.8.31更新为v2026.9.7:静态提供商为39个,提供商插件目录为39个,两者的条目均与v0.21.0完全相同——预扫描中“38个静态提供商,xai已并入插件”的说法已被源代码推翻(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只在多智能体看板的正文和更新日志行中出现,而“smart model routing”除脚注外从未出现。在多智能体看板下新增什么是Hermes Swarm?——将swarm定义为在一个持久化看板上并行工作的多个工作单元,记录v0.15.0的swarm拓扑结构、自动分解、按任务覆盖模型、计划任务和工作树管理,并通过表格列出每种机制可避免的故障。将提供商轮换与回退改为智能模型路由:提供商轮换与回退,并在导语中将凭据池、回退模型和辅助路由统一为一个系统。原锚点没有任何内部链接,因此改名不会破坏现有链接。 |
63 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跳过、按任务固定effort——计划任务章节补充了该标签下这4项功能的机制);实时subagent编排(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提供商插件);安全浪潮(写入AGENTS.md/skills/memory始终需要审批——已在该标签下核实security.protected_instruction_files: true及tools/file_tools.py中的防护门;全面清理敏感信息;Windows审批覆盖;hermes desktop --setup-tcc-identity;移除Blender MCP——安全加固新增第四轮更新);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);提供商插件目录从37个增至39个(新增nebius-token-factory和router,二者均为auth_type="api_key");文档中的提供商行从41行增至45行;保持不变并再次核实的内容包括:28个文档平台行/24个Platform枚举成员(列表完全相同)/22个适配器目录;_BUILTIN_SUBCOMMANDS完全相同(73个,peer自汇总窗口起便已存在,没有version);7个终端后端加插件注册表(注册表逐字节相同);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视频模型)、web_search/web_extract结果的TTL缓存、支持词干提取的多查询tool_search、更新程序通过控制套接字暂停gateway、通过镜像/软件包管理的安装拒绝不安全的原地更新、cron持久事件确认、Slack链接展开控制,以及共享Docker容器身份。两个发布声明与现有章节相矛盾;经标签版本确认后均已修正:lean-tail压缩是默认设置(使用标签版本的配置键重写“上下文压缩”章节——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;使用标签版本的槽位清单重写“辅助模型”章节(新增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直连、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。“全局选项”新增--in、--tui、--cli、--dev、--ignore-rules、--ignore-user-config;“顶级命令”从_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):无密钥Web层(5家供应商免费轮换并支持环形故障转移——全新安装无需配置任何密钥即可使用Web搜索)、CLI体验优化(模糊搜索式/model选择器、Ctrl+P命令面板、信息更丰富的/status)、Bot Mode群组房间会话串+可折叠摘要+PDF/文件拖放、hermes worktree list/prune、hermes update回执和机群--plan验证、支持按任务设置推理强度的cron持久内存、源于Composio评估结果的执行纪律停滞防护、无需身份验证的opencode-free提供商,以及桌面端性能改进(优先绘制的水合策略、两个渲染器均采用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中提供完整精选说明——摘要取自各版本自身的时间窗口说明。已更新页首说明和标签沿革。 |
58 |
| 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、命令助手的密钥来源、hermes -w冷启动时间从约14秒降至约1.8秒,以及桌面端构建产物与Plugin SDK。经核验保持不变:3种身份验证路径、~/.hermes/目录结构、hermes update以及文档列出的工具清单。 |
59 |
| 2026-07-21 | 指南v1.11:v0.19.0“The Quicksilver Release”(2026年7月20日,标签v2026.7.20)。新增“v0.19.0的新变化”章节:首次响应的TTFT缩短约80%(冷启动提交→分发从约4.3秒降至约0.9秒,覆盖CLI/gateway/TUI/桌面端/cron),默认实时流式显示推理过程(display.show_reasoning为ON);桌面端完成约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/仅prompt/HF-trace、--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构建可靠。 |
60 61 |
| 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(项目/代码仓库/lane);支持带排空协调机制的缩容至零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_mode的布尔值write_approval。架构:MCP信息征询处理程序、可插拔CronScheduler和Chronos、Managed范围(/etc/hermes)、Gateway-Gateway中继。命令:/version、/billing、hermes curator run --consolidate(选择启用)。安全性:修复shell转义拒绝列表绕过问题;审批/gateway适配器改为故障时关闭;清理cron环境;在调试转储中隐去secret;筛查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、移除失效skills)、environments:相关性门控(kanban/docker/s6)、默认信任的NVIDIA/skills tap,以及渐进式(限定范围的)MCP/插件工具披露。安全性:将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项带安全标签)。 |
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位贡献者。 |
62 |
| 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目录。 |
63 |
| 2026-05-21 | 指南v1.6:新增v0.14.0(2026年5月16日)— Foundation版本。要点:更轻量的安装与运行时基础,以及更广泛的提供商、gateway、媒体和验证能力。新增SuperGrok OAuth并支持拥有100万上下文的grok-4.3;新增面向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 app-server运行时、受信任的huggingface/skills tap、9个可选skill、插件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种语言的国际化支持(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可在活跃会话之间自行维护。自我改进循环获得升级,加入基于评分标准的评级、主动更新偏向、正确的运行时继承,并将toolset严格限定于内存和skill。新增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从可选组件调整为默认捆绑。新增skill: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钩子无需Python插件即可将脚本接入生命周期钩子。Webhook直接投递模式可绕过智能体,将载荷直接转发到平台聊天,用于扇出分发。通过编排器角色、可配置的生成深度和文件协调机制,实现更智能的委派。Dashboard新增插件系统、实时主题切换、国际化和移动端响应式支持。自v0.9.0以来的统计数据:1,556次提交、761个合并的PR、1,314个文件变更、224,174行新增、29名社区贡献者。 |
64 |
| 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许可证,并完全免费。 |
65 |
| 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、内存、gateway、cron、MCP、压缩、架构、OpenClaw迁移、故障排除和常见问题解答。 | |
| — |
参考资料
-
Nous Research,“Hermes Agent”项目在GitHub上的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→默认值)、上下文压缩设置(包含threshold、threshold_tokens、target_ratio、tail_mode、protect_last_n、protect_first_n的compression.*块;自配置版本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格式、平台特定skill、条件激活(fallback_for_toolsets、requires_toolsets、fallback_for_tools、requires_tools)、通过skill_manage由代理管理skill、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的“在Hermes中使用MCP”和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 库进行评分、清理和整合。自我改进循环全面升级:基于评分标准进行评估、优先主动更新、正确继承运行时,以及将限定范围的 toolset 限制为仅可访问内存和 skills。新增 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 版本”。新增多智能体 Kanban 看板,支持心跳检测、任务回收、僵尸检测、幻觉门控、按任务设置
max_retries,以及多项目看板。新增/goal斜杠命令,用于跨轮次锁定目标(Ralph 循环原语),并可配置轮次预算。新增video_analyze工具,以 Gemini 为首选,同时可扩展至兼容的多模态模型。新增支持语音克隆的 xAI Custom Voices TTS 提供商。支持 7 种语言的国际化: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 1M context 的 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(100万上下文)、qwen3.7-plus、gemini-3.5-flash;xAI Grok OAuth;模糊选择器;每小时刷新目录。Skills:精简默认skill集、environments:相关性门控、默认受信任的NVIDIA/skillstap、渐进式工具披露、修复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/提交数量、“一周前这一切都还不存在”);仅记录与该标签关联的具体功能和版本事实。本次会话于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(100万上下文)、anthropic/claude-fable-5、laguna-m.1、nemotron-3-ultra、grok-composer-2.5-fast(xAI OAuth,20万上下文);xAI默认模型改为grok-build-0.1;Anthropic自适应模型采用现代思考契约(无reasoning字段)。CLI/斜杠命令:/version、/billing、hermes photon login、hermes curator run --consolidate(选择启用)、hermes model图形界面、profile克隆。Desktop:后台subagent监视窗口(delegate_task(background=true))、Composer模型选择器、可重新绑定的快捷键、原生操作系统通知、按线程保存草稿、VS Code Marketplace主题、日语和繁体中文界面。Dashboard:完整的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次提交,涉及约1,250个文件(+111,500 / -20,701)——约323个合并的PR,包括Bot Mode群组房间线程、可折叠的对话摘要、blob-face头像,以及支持拖放的PDF/文件附件;无密钥Web层(5家提供商免费轮换并采用环形故障转移,新安装无需任何密钥即可使用Web搜索);一轮CLI打磨(模糊/model选择器、Ctrl+P命令面板、信息更丰富的/status);源于Composio评估结果的执行纪律和运行时停滞防护;hermes update回执及机群--plan验证;hermes worktree list/prune;无需opencode、零身份验证的提供商;多问题澄清;Desktop性能优化(优先绘制的Bot Mode水合、合成器加载指示器、在两个渲染器中启用React Compiler);以及支持持久内存和按作业配置推理强度的cron作业。”发布说明再次强调:“本窗口的完整精选发布说明将随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模块文档字符串原文:“可在local、Docker、Modal、SSH、Singularity、Daytona和Vercel Sandbox环境中执行命令的终端工具”;在环境选择列表中,vercel_sandbox条目为“在Vercel Sandbox云沙盒中执行”。后端模块tools/environments/vercel_sandbox.py在该标签中确实存在,与daytona.py、docker.py、local.py、modal.py、singularity.py和ssh.py并列。该标签下的README写道:“7种终端后端——local、Docker、SSH、Singularity、Modal、Daytona和Vercel Sandbox。”Tools & Toolsets文档页面(该标签下的源文件为website/docs/user-guide/features/tools.md)在表格中将vercel_sandbox列为“Vercel Sandbox云microVM”,用途为“使用快照支持的文件系统持久性进行云端执行”;其中展示了配置注释# or: docker, ssh, singularity, modal, daytona, vercel_sandbox,并说明:“必须同时使用VERCEL_TOKEN、VERCEL_PROJECT_ID和VERCEL_TEAM_ID这3项进行身份验证。……支持的运行时为node24、node22和python3.13;Hermes默认使用/vercel/sandbox作为远程工作区根目录。”在v2026.8.31中,tools/environments/包还包含共享基础设施(base.py中的BaseEnvironmentABC、file_sync.py、modal_utils.py、managed_modal.py);包文档字符串将托管Modal计为Modal的一种模式,而非第8种后端:“Modal还提供直接模式和Nous托管模式,可通过terminal.modal_mode选择。” ↩↩↩ -
消息平台数量以标签
v2026.8.31为准(已针对指南v1.17重新验证;与v2026.8.31完全相同——文档表格共28行、相同的24个Platform枚举成员,以及相同的22个适配器目录)。消息 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 提供商文档页面(该标签下的源文件为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 中(跳过恢复已记录的当前工作目录)。”)、--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)、所有 profiles 中每项正在运行的 Hermes 服务及其监督程序和运行中的代码版本,以及每项服务的重启方式。只读;可安全用于实时集群。”;_BUILTIN_SUBCOMMANDS中不存在fleet命令。hermes worktree在hermes_cli/main.py中注册(帮助文本:“审计并回收累积的 git worktrees 和已合并分支”),包含list(别名为ls、audit;“对每棵树进行分类:期限、大小、判定、原因(默认操作)”)、prune(“移除安全的树并删除已完全合并的本地分支”)、--repo、--dry-run(“显示计划而不做任何更改”)、--trees-only(“仅移除 worktrees;保留本地分支不变”)以及--branches-only(“仅删除已合并的本地分支;保留 worktrees 不变”)。/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 获取——prerelease: 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 提示);更新程序通过控制套接字暂停 gateways,不再终止进程树;镜像/软件包管理的安装方式拒绝不安全的原地更新(#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版本逐字节一致。该标签下发生变化的数量:静态CANONICAL_PROVIDERS条目为39个(原为38个),plugins/model-providers/目录为39个(原为37个)——请参阅26和36。未变化的数量:Platform枚举成员为24个(gateway/config.py中的成员列表完全相同,仅新增了room_link_urlgateway字段);plugins/platforms/适配器目录为22个;文档的“平台比较”表中有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版本逐字节一致。 ↩↩↩↩ -
标签
v2026.8.31中的辅助模型路由(已针对指南v1.17重新验证;新标签中的"auxiliary"默认配置块包含完全相同的槽位清单、移除说明和非槽位设置,且下方文档引文与原文一字不差)。配置文档页面(该标签中的源文件为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。)”权威槽位清单位于该标签中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键。槽位的单行说明来自同一文件的注释(“分诊细化器——将Kanban分诊列中的粗略单行描述扩充为具体规格,然后将其推进至todo。由hermes kanban specify调用”;“Kanban分解器——将分诊任务分解为子任务图,并依据描述将其路由至专业profile。由hermes kanban decompose和Kanban自动分解调度器调用”;“Profile描述器——自动生成1至2句话,说明profile擅长的任务。由hermes profile describe <name> --auto和仪表板的自动生成按钮调用”;“目标评判器——评估/goal运行的最新响应是否满足目标/约定”;“策展器——skill使用情况审查分支”;“后台审查——轮次结束后的自我改进分支,用于决定是否保存记忆或修补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.*,因为子代理“是完整的子代理,而非旁路LLM调用。” ↩↩↩↩↩↩↩↩↩↩↩ -
Hermes Agent v0.21.0发布说明,“The Pantheon Release”,标签
v2026.8.31,标明的发布日期为8月31日,发布于2026-08-31T19:29:49Z。统计行原文:“自v0.20.0以来:约5,800次提交 · 约2,475个合并的PR · 约5,680个文件发生更改 · 约869,000行新增 · 约135,000行删除 · 约2,100个问题已关闭 · 760多位贡献者”。概述原文:“The Pantheon Release。v0.20.0让Hermes成为传令者——他开口传讯,并将消息带给其他代理。在v0.21.0中,众神齐聚。”以及“此版本汇总了v0.20.1至v0.20.6基础设施补丁标签中的全部内容——这些时间窗口现已在此得到完整记录。”上文引用的功能领域原文如下:Bot Mode——“Bot Mode现已成为桌面应用内置且默认启用的组成部分:每个代理profile都有名称、确定性生成的头像面孔(提供随机化/锁定控件),并在共享名册中占有一席之地”以及“过去,‘多代理’意味着底层管道;如今,它看起来就像一个满是同事的聊天应用”(#87886、#88243、#89386、#96726);hermes peer——“回复会进入各代理的规范Bot Chat,因此代理之间的对话持久且可供检查,而非发出即忘”(#88725、#88178、#91487);cron——“continuity=true会将每次运行的输出传递至下一次运行(从而让监控器能依据已报告内容去重),每项作业都有持久的记事本草稿区,而监控模式作业在没有任何变化时会完全跳过LLM”(#91447、#80774、#81139、#81138);delegation——“列出正在运行的子代理、在执行过程中引导某个子代理改变方向,或提前停止并保留部分结果。新增可选的子代理输出JSON架构验证,在结果中显示每次delegation的成本,并提高默认值(250次迭代、10个并发子代理)”(#85232、#81144、#81142、#86506、#86745);MCP——“通过hermes://深层链接安装MCP服务器,并要求明确确认”(#87525-#87581);CLI——“Ctrl+P打开模糊搜索命令面板,/model选择器会随输入即时筛选,/status显示推理模式、待处理审批和上下文用量,状态栏还可显示实时缓存命中率、延迟和每秒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挽救成果);安全——“受保护的代理指令文件(AGENTS.md、skills、记忆存储)如今始终需要写入审批,因此遭受提示注入的代理无法悄无声息地改写自己的长期指令”(#81152),此外还包括敏感信息遮盖全面整治(#80965)、Windows审批覆盖(#84428)、TCC身份(#95091)以及移除Blender MCP(#83404)。回退部分原文:“Model Council模式(/council)——曾合入后又回退;未包含在此版本中。”;“DCP context engine——曾合入后又回退;未包含在此版本中。”;“仅WS的gateway服务器(#94245)——合并后又回退(#96118);FastAPI仍位于桌面端启动路径中。带序列号标记的事件重放(#94219)确实已发布。”;“Electron已回退至40.10.2;TCC解释器锚点已移除(由已发布的签名身份方案取代)。”错误修复部分结尾写道:“……以及约两千个其他已关闭问题所对应的工作——此时间窗口内平均每天合并约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中(提供商:router;别名:ramp-router、ramp、router.com;原生支持 Responses 的 gateway,实时获取限定于账户范围的目录)”;“Nebius Token Factory |NEBIUS_API_KEY,位于~/.hermes/.env中(提供商:nebius-token-factory;别名:nebius、nebius-tf、tokenfactory)”;“Tencent TokenPlan |TOKENPLAN_API_KEY,位于~/.hermes/.env中(提供商:tencent-tokenplan;别名:tokenplan、tencent-lkeap;Anthropic Messages 端点)”;“Alibaba Cloud (Token Plan) |ALIBABA_TOKEN_PLAN_API_KEY,位于~/.hermes/.env中(提供商: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模块文档字符串写道:“一个小型 KV 暂存区,每个 cron 任务都可用它在定时唤醒之间保存状态(游标、水位线、监视列表)”,其上限为“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,不投递);本次 tick 记录为静默的no_change运行”;“输出按精确字节比较——不会移除时间戳,也不会规范化空白字符。监控脚本应输出稳定内容……否则每次 tick 看起来都像发生了变化。”;“启用项:#80774。” ↩↩↩↩↩↩↩ -
v2026.8.31标签下的实时 subagent 编排。delegation 文档页面(该标签下的源文件为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)delegation 单元的最大数量……(取代已弃用的 max_async_children。)”)。上游仍有一处内容陈旧:delegation 文档页面本身仍称“默认为 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-09-14移除。它通过单个提交添加,并将通过还原该提交来移除。”;结果表(2026-09-14之前:黄色通知,列出插件名称、日期和hermes plugins compat;插件“可以加载;每个旧路径解析都会发出一次HermesPluginCompatWarning”;自2026-09-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以及截至提交5d59366010的main(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以及截至提交a53b42ddea的main(提交于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);清单本身则删除了两个与opencode相关的行(_OPENCODE_KEYLESS_EXTRA_SLUGS、is_opencode_zen_free_model)——没有任何结构性变化。 ↩↩↩↩↩↩↩↩↩ -
标记
v2026.9.7中的docs/session-lifecycle.md,第“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“功能:通过 CLI 使用设备代码授权 MCP 服务器”。同一发布周期内还进行了配套加固,提交主题包括:f914c9b070“修复(mcp):在整个 OAuth 会话期间强制执行 profile 所有权”;f94307a7f7“修复:忽略格式错误的 MCP OAuth 元数据缓存”;e3ba651b6d“修复(桌面端):通过客户端本地回调中继 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“修复(delegation):默认每次调用仅产生一个完成消息;排队的单元不再停滞”。后台进程移交:提交3c0d90e8ef“功能(delegation):subagent 将后台进程移交给父级;遗留进程会被列明,而非直接信任”;在该标记中,tools/delegate_tool_child_run.py:744-763(account_background_processes)会在结果中记录已移交的进程,在cleanup将其终止之前,把仍在运行但未移交的进程列为orphaned_processes,把已经退出但从未读取的进程列为unread_completions(附带输出末尾内容);其文档字符串指出,父级“必须由运行时告知此事”,而不能相信子级声称的“监视器正在运行”;移交操作为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 和 model。Astra 层级:hermes_cli/models_catalog_static.py:22-25——openai/gpt-6-astra-fast“价格为 2 倍,priority 层级”,-flex“价格为 0.5 倍,flex 层级”,另有-pro-fast/-pro-flex;gpt-6-astra和-pro位于OPENROUTER_MODELS中,且不在_OPENROUTER_ONLY排除集合内,因此 Nous Portal 也提供这些 model。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)”,model 包括muse-image-1.0)。Tavily:hermes_cli/config_defaults.py:2522-2525,原文为“用于 AI 原生网络搜索和提取的 Tavily API 密钥(可选——选择 Tavily 时,无密钥也可使用)”,工具为web_search和web_extract;web块注明 Tavily“可通过hermes tools选择无密钥启用,但不是 ring 成员”。托管式 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)”,用户消息“Model 目录现在每 20 分钟刷新一次(model_catalog.ttl_minutes)”),其中hermes_cli/model_catalog.py仅在“ttl_minutes仍为默认值时”才采用旧版ttl_hours。 ↩↩↩ -
桌面端在标签
v2026.9.7迎来一轮更新。评论模式:标签对应的website/docs/user-guide/desktop.md,核心原文为:“单击预览浏览器栏中的注释,然后单击实时页面上的任意元素(或拖动框选区域)并输入备注;每条已保存的评论都会作为带编号的图钉保留在页面上”;“保存图钉绝不会发送轮次”;“添加N条评论会为每个图钉附加一张裁剪后的屏幕截图,并向编辑器添加一段简短提示,逐一注明各条评论”;“每条元素评论都会携带其CSS选择器、标记以及与布局相关的计算样式,使代理能够在源代码中定位该元素,而不必根据图片猜测”;“在标记离开页面之前,密码、隐藏字段值以及任何类似密钥或令牌的属性都会在页面上被遮盖”;“较大的批次会根据每条评论所在的页面区域分组,因此二十多条评论会归并为少数几项工作,而非每条评论各成一项任务”;“由于这些分组属于不同的DOM子树,通常会涉及不同的文件,因此可以安全地将其交由并行工作进程处理”。窗口期内的提交:10f2a20966“feat(desktop):为应用内浏览器添加评论模式”;e4bda3ff77“feat(desktop):浏览器评论携带元素的选择器、标记和样式”;会话控制8cb2bcc8c1“公开结构化会话控制”+bfddf556bf“载入结构化会话控制”+dffd8d62c2“添加会话自动化控制”;6b1e12c7f4“通过拖动从新建会话、项目+控制项和profile组创建会话”;9186e3ebc5“用于导入其他编码代理记录的会话导入视图”;a1c25d393a“功能→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,注释原文为“桌面端冷启动时会重新打开上次的聊天/页面(也可在设置→外观中配置)。”真实profile同意机制:apps/desktop/src/app/chat/right-rail/real-profile-consent-dialog.tsx(“首次打开时显示的真实profile浏览同意提示”;当浏览器窗格打开且browser.use_real_profile处于关闭状态时显示;接受后会写入与功能开关所使用的同一配置键;“暂不”会在本次应用运行期间静默该提示,“不再显示”则会跨启动持久生效)。 ↩↩ -
Hermes Agent v0.21.2发布说明,“state.db补丁版本”,标签
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)。”在该标签处进行源码验证:根存储之外的托管房间状态位于gateway/hosted_rooms.py:398-426——default_db_path会让profile gateway解析到“共享的根级shared-state.db,而不是主state.db”;其文档字符串将2026年9月3日在6个gateway集群中观察到的重复多写入进程损坏问题列为原因,说明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生成);后端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发布说明,标签
v2026.9.14,标注的发布日期为9月14日,发布于2026-09-14T16:04Z。用途原文:该标签“旨在让下述远程gateway登录修复覆盖Cloud代理,因为后者会自动更新至最新发布标签。”在提交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,169个变更文件”中包含“5,071个非合并提交”(+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)。时间窗口排名(为指南v1.21于9月23日重新核验):按每对相邻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、看板、Desktop和state.db的修复”。更新方式:hermes update(适用于git安装)或安装程序的一行命令;“Docker / Hermes Cloud:镜像基于此标签构建(nousresearch/hermes-agent:v2026.9.21)”。当前会话核验日期:2026年9月22日。 ↩↩↩↩↩↩ -
v0.21.4披露的项目已在标签
v2026.9.21的源代码中验证(指南v1.20,2026年9月22日;运维规则补充于指南v1.21,9月23日)。主机单例:gateway/host_rendezvous.py文档字符串——“主机范围的单例会合机制:每个操作系统用户的每个ROLE对应一把锁和一条记录”;“每台主机恰好运行一个hermes serve和一个hermes gateway run,各自复用所有profile”;主机flock/msvcrt锁“在胜出进程的整个生命周期内保持”,并配有会合记录,使第二次调用能够“证明它是同一个存活进程,并执行ATTACH,而不是绑定第二个端口”;通过(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发送给“HOST进程,无论它由哪个主目录启动”,并在使用--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)”)。桌面端部分:apps/desktop/electron/host-backend-attach.ts(“附加到主机上正在运行的Hermes后端(仅复用,桌面端部分)”;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曾包含此功能,但未合并)”;该工具注册为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名称。在首次构建智能体提示词时解析一次;缺失/禁用的名称会发出警告并跳过;HERMES_IGNORE_RULES会像处理其他自动注入的上下文一样抑制此列表。” decline:gateway/config.py:137-139——注释原文为“’pair’通过DM发送配对码,’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 = 早于一周前)”,两者都“仅用于发现结构”,且“sort是排序偏向,而非边界”;为保持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”),“当任何外部进程占用该文件或其sidecar文件时拒绝操作(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进程后,在不执行占用者扫描(Windows上不存在该扫描)的情况下继续”(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执行卸载”;独立桌面plugins通过Electron加载器上的uninstallDiskPlugin卸载)。视频目录:plugins/video_gen/fal/__init__.py:43-44,99-101——ltx-2.5(“LTX 2.5”,“Lightricks开源音视频模型。原生音频,最高支持20秒/4K(i2v),提供镜头运动预设。”,低成本层级,lightricks/ltx-2.5/text-to-video/fast和/image-to-video/fast,宽高比16:9/9:16,时长为整数;:128为“fal拒绝LTX 2.5在1440p/2160p下生成超过10秒的视频”)和kling-o3(“Kling O3(标准版)”,“快手前沿模型。原生多镜头叙事,可选音频,时长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为例(name、repo、40位十六进制sha、description、maintainer、tier: community、category、docs_url、capabilities);准入和发布模型见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(通过sha对应的原始URL,“从固定提交”渲染每个条目的README,“绝不使用分支尖端”,因此页面准确呈现目录审核者当时阅读的README;构建时采用允许列表渲染并丢弃原始HTML,上限为512 KB,主机仅限raw.githubusercontent.com和gitlab.com;可通过readme: false选择退出);作者slug及基于提交日期的新增/更新时间戳位于website/scripts/extract-plugins.py:80,142;以此次发布命名的全部10个社区plugins均已作为条目存在于该标签下,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。多路复用: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“在宿主多路复用器下停止、启动和重启单个profile”;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计数,未发生变化);在v2026.9.21和v2026.9.24中,plugins/model-providers/均包含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无输出(COMPAT_REMOVAL_DATE位于第32行;“仅限字面量布尔值”检查位于第296至303行)。这两个清单文件仅删除了plugins.memory.hindsight条目(分别减少7行和12行)。 ↩↩↩↩↩↩↩↩ -
Hermes Agent v0.21.6 发布说明,标签为
v0.21.6(首个不采用v2026.M.D格式的发布标签),标注的发布日期为10月8日,发布于2026-10-08T11:51:57Z。原文所述目的:“补丁版本。此标签将自v0.21.5以来合并的约2,100个PR汇总为一个稳定的带标签版本,供Docker 和Hermes Cloud使用。此时间段完整整理的说明将随v0.22.0发布。”原文所述流水线:“这是新稳定版发布流水线生成的首个版本:一个尝试引用、一个经过测试的Docker 镜像,以及发布时生成的收据标签。它会发布该标签、此GitHub 版本和Docker 镜像。Desktop应用、Termux软件包和Microsoft Store目前仍保持现有构建,并将在下一个捆绑版本中一并更新。”统计数据“于提交818c13be处测得”:共“8,867个非合并提交”,涉及“8,342个变更文件”(+772,490 / -225,600)、“2,106个已合并PR”和“3,027个已关闭问题”;GitHub 对比v2026.9.24...v0.21.6显示含合并提交在内共有9,180个提交(此次未在本地复现差异统计)。有意不作说明的项目列表原文提到:“在CLI、TUI和Desktop中,用户说话时进行实时转录(stt.streaming)”、“将语音对话路由至其专用模型(auxiliary.voice_chat),默认关闭推理”、“第三方plugin在每个profile各自的plugin宿主中运行(plugins.isolation: host)”、“以摘要为先的hermes status(--short、--full)”、“覆盖核心、Desktop和TUI的可插拔分层语言包”、“hermes model中的本地模型,以及Linux x64和arm64上的llama.cpp CUDA”、“用于凭据上传和终端命令中不可见Unicode字符的审批标志”、“会检查机器人令牌并输出邀请链接的Discord设置流程”、“统一的Kanban工作流定义”、“activate.fish”、“目录中的GPT-6.1 Sol及Claude Sonnet 5.5 / Haiku 5.5”,以及“新增功能”部分所述的Desktop项目。安全部分原文节选:“感谢Tenable Research报告全部4个问题(TRA-725、TRA-726、TRA-727、TRA-728)”;“自动git调用(会话工作区快照、subagent工作树、kanban、工作树清理、hermes -w)可能会在首次提示之前,运行由不受信任仓库自身配置定义的clean/smudge/process过滤程序(#130661)”;“From标头中带引号的显示名称……可能使攻击者的消息以允许的发件人身份通过电子邮件允许列表检查(#125212)”。原文所述更新路径:“Docker / Hermes Cloud:nousresearch/hermes-agent:stable(或:latest)。CLI(git安装):hermes update,或重新运行一行式安装程序。” ↩↩↩↩↩↩ -
已在标签
v0.21.6(提交818c13be;指南v1.24,2026年10月11日)的源代码中验证v0.21.6各项内容。STT:hermes_cli/config_defaults.py设置stt.streaming: False(“说话时显示实时局部文本(openai/xai/elevenlabs);失败时则使用文件路径”)和streaming_model: "gpt-live-transcribe"(“唯一支持话语中途增量输出的模型”)。语音路由:auxiliary.voice_chat默认为120秒时限,并设置"reasoning_effort": "none";agent/voice_turn_route.py的文档字符串写道:“语音轮次(CLI语音输入、Desktop/TUI语音对话或消息平台语音留言)可以使用比会话主模型更快的模型……如果某轮请求在开始时无法满足语音模型的压缩阈值,则改用主模型运行”。隔离:hermes_cli/plugin_isolation.py(“in_process(默认)会将每个插件导入Hermes进程……host则将第三方插件代码隔离在进程之外:通用插件按profile分别加载到一个plugin-host进程中……且仅通过ctx与Hermes通信……Hermes随附的插件仍在进程内运行”);config_defaults.py设置plugins.isolation: "in_process"。内存:plugins/memory/包含byterover、holographic和retaindb(v2026.9.24中共有7个目录);plugin-catalog/honcho.yaml(plastic-labs)、mem0.yaml(mem0ai)、openviking.yaml(volcengine)和supermemory.yaml(supermemoryai)均为tier: community;hermes_cli/memory_provider_migration.py将_LEFT_CORE设为全部8个名称(“曾随核心一同提供的提供商。无人值守的同意仅涵盖这些提供商”)。兼容性:hermes_cli/plugin_compat.py的文档字符串写道:“该兼容层以及用于报告仍在使用它的插件的扫描器均已移除”;compat_report()返回{};整个代码树中未出现allow_deprecated_imports;COMPAT_MANIFEST.md和compat_manifest.json均不存在。状态:hermes_cli/subcommands/status.py定义了--full/--all(“显示所有部分(密钥已隐去),而非单屏摘要”)和--deep(“隐含启用–full”),但没有--short。语言:hermes_cli/config_language.py(“可接受的集合为agent.i18n.supported_languages():随附目录、profile的覆盖目录以及每个已加载插件的语言包”);locales/包含17个<lang>.yaml文件和16个<lang>.tui.yaml文件。提供商:plugins/model-providers/包含41个目录(v2026.9.24中为38个;新增lmstudio、solstice、tencent-tokenhub);hermes_cli/models_catalog_static.py中的CANONICAL_PROVIDERS在两个标签下均有39行;其OPENROUTER_MODELS列表新增anthropic/claude-sonnet-5.5、anthropic/claude-haiku-5.5、openai/gpt-6.1-sol和openai/gpt-6.1-sol-pro,这些均未出现在v2026.9.24中。审批:tools/approval_detection.py规则包括“通过curl/wget上传密钥或凭据文件(可能发生数据泄露)”、“将凭据文件通过管道传给curl/wget进行上传(可能发生数据泄露)”以及“不可见或双向Unicode控制字符(可能用于混淆)”。Cron:cron/store_health.py(“cron存储不可写(ENOSPC、EROFS、EACCES)时的降级状态……每个存储目录会获得且仅获得一条内存记录……probe_store也是hermes cron status和hermes doctor所使用的机制”)。Discord:plugins/platforms/discord/onboarding.py(invite_url()、INVITE_PERMISSION_BITS;“Message Content Intent保持关闭(否则Discord会拒绝机器人的连接)”)。Git过滤器:tools/subagent_worktree.py(“检出操作会运行以仓库命名的smudge过滤器;若无法将其停用,则跳过隔离”)通过hermes_cli._subprocess_compat.noninteractive_repo_git_env实现,而hermes_cli/worktree_ops.py会“在无法将其停用时拒绝操作”。电子邮件:plugins/platforms/email/adapter.py(“使用parseaddr,而不是匹配第一个<…>的正则表达式(GHSA-rxqh-5572-8m77);并先展开RFC 5322折行”)。Dashboard身份验证:hermes_cli/dashboard_auth/request_utils.py(“切勿在此处解析客户端提供的X-Forwarded-For”)。本地运行时:hermes_cli/local_runtime/binaries.py将"cuda"映射到llamacpp-cuda;hermes_cli/models_local.py涵盖Ollama、LM Studio和Ollama Cloud。activate.fish位于仓库根目录(“与./activate对应的fish版本”)。未在源代码中检查Kanban工作流定义和Desktop相关项目。 ↩↩↩↩↩↩↩↩↩↩↩↩ -
Hermes Agent v0.21.7发布说明,标签
v0.21.7,标注的发布日期为10月11日,发布于2026-10-12T05:53:41Z;标签提交为71d34bad“fix(release): the builds-table render gets its R2 credentials and cannot block the release”(2026-10-12T03:17:10Z)。原文所述目的:“补丁版本。此标签将自v0.21.6以来合并的约204个PR汇总为稳定版本,面向Desktop应用(macOS Apple silicon、Windows)、Microsoft Store和MSIX、安装程序、Docker及Hermes Cloud。此时间段完整整理的说明将随v0.22.0发布。”统计数据“在提交1fd18277处测量”:在“4,156个变更文件”(+86,775 / -26,980)中包含“740个非合并提交”、“204个已合并PR”和“69个已关闭issue”;GitHub比较v0.21.6...v0.21.7显示包括合并提交在内共有777个提交。源代码安装要点原文:“从官方仓库进行源代码安装时,将更新到最新发布的vX.Y.Z版本,而不是跟随main上的每个提交。若现有安装已比最新版本更新,则会停留在当前位置并等待下一个版本;不会回退。若要继续跟随每个提交,请运行:hermes update --set-channel main。Fork和镜像继续跟随main。Store、MSIX及随附的Desktop安装不受影响。”;“对于源代码安装,Settings ▸ About ▸ Updates中新增了Update channel切换项(Stable releases / Every commit),更新对话框现在也会显示当前所处的通道。”;“签名思考内容会在hermes chat --resume后以及下一次gateway轮次中重放,Bedrock Converse推理模型也不会再在恢复的会话中遭到拒绝。”;“main上的安装不再获取可能被区域防火墙以403响应的版本记录。若已设置GitHub令牌(GITHUB_TOKEN或gh auth login),稳定版本检查会使用该令牌,并将GitHub速率限制明确报告为速率限制。”特意不公开文档的列表包括ctx.runAction、ctx.pet.say、“由核心发起Codex请求,使插件永远不会持有令牌”、“会话期间安装的skills无需重建提示词即可传递给模型”、“将Krea 2 Medium Turbo作为新付费订阅者的默认图像通道,并在托管Krea拒绝请求时回退到FAL”、更快的Desktop更新、“仅检出固定版本的固定安装”、“发送到Relay的压缩标记”,以及plugins memory-shield、command-ledger、Memoria、Model Router、wyoming-voice-bridge、codex-account-switch和redline。更新路径原文:“Desktop应用:自动更新。Microsoft Store安装通过Store更新。CLI:运行hermes update,或重新运行安装程序单行命令。Docker / Hermes Cloud:nousresearch/hermes-agent:stable(或:latest)。” ↩↩↩↩ -
v0.21.7 条目已在标签
v0.21.7的源代码中验证(提交71d34bad;指南 v1.25,2026年10月13日)。渠道:hermes_cli/subcommands/update.py定义了--set-channel CHANNEL(“持久保存此安装的更新渠道(按安装记录在 config.yaml 的 update.installs 下)……官方源代码检出默认使用 ‘stable’(最新发布的 vX.Y.Z 版本,精确对应提交);‘main’ 跟随源代码分支”)、--channel CHANNEL(“仅在本次运行中跟踪 CHANNEL……‘stable’ 和 ‘canary’ 选择已发布版本,‘main’ 选择分支顶端。仅限源代码安装”)以及--install-id;hermes_cli/update_channel.py(“一个 config.yaml 服务于多个安装(主机、docker gateway 和桌面端都绑定挂载同一个~/.hermes),因此主目录全局的update.channel键并不安全,也不存在”;“未配置的官方检出跟踪stable;分支副本和镜像继续跟踪main”;_tracks_official_origin:“分支副本、镜像和本地路径源不发布官方版本”);hermes_cli/source_releases.py(“解析已推送的源代码版本,绝不根据 Git 标签推断是否已发布”;_head_containing:“未经选择的默认设置绝不能凭猜测让检出回退,因此关系未知时(浅层历史记录、GitHub 无法访问)保留 HEAD”;来自“区域性 WAF”的 403“不得中止”检查;“传输失败会明确指出原因(速率限制并不等同于‘没有版本’)”;“被拒绝的令牌将以匿名方式重试”;GITHUB_TOKEN和gh auth login的措辞来自该版本)。桌面端:apps/desktop/src/app/settings/update-channel-row.tsx和apps/desktop/src/i18n/en_update_channel.ts(标题“更新渠道”;“稳定版仅安装已发布版本。每次提交则会在变更落地时跟随 main 分支。”;选项“稳定版本”和“每次提交”)。推理:agent/anthropic_thinking_policy.py(“将包含上游验证签名的思考块所对应的路由进行处理:这些路由会重放已签名的块”);agent/anthropic_thinking_replay.py(“我们只持久保存被拒绝的不透明签名/数据值的指纹,然后从每份重建的请求副本中过滤这些块。此操作不能只局限于当次重试,因为上下文选择和进程恢复之后仍可能从规范历史记录重建请求”);agent/bedrock_adapter.py(“来自持久化reasoning_details的思考……Converse 要求推理位于 toolUse 之前”;“在 Converse 上按模型重放推理”)。内存:plugins/memory/包含byterover和retaindb(在v0.21.6中共有3个目录);plugin-catalog/holographic.yaml(repo: https://github.com/itpartypattaya/hermes-plugin-holographic、tier: community、requires_hermes: ">=0.21.5");hermes_cli/memory_provider_migration.py中的_LEFT_CORE仍列出全部8个名称。目录:plugin-catalog/包含552个 YAML 条目(v0.21.6中为493个,依据 GitHub 内容 API)。该标签下保持不变的内容包括:41个提供商目录、39个静态行、17个核心和16个 TUI 语言区域目录、仅有22行的桩文件hermes_cli/plugin_compat.py,以及仅支持--full/--all和--deep的hermes status。桌面端操作:apps/desktop/src/contrib/plugin.ts记录了ctx.runAction?.('view.showBrowser');Relay:agent/relay_compaction.py(“当 NeMo Relay 在所属会话的作用域堆栈中标记时,生成hermes.compaction记录”)。以下内容未在源代码中找到,取自发行说明:ctx.pet.say、由核心发出的 Codex 请求、会话中途加载的 skills、Krea 默认值与 FAL 回退、固定版本安装的检出,以及更快的桌面端更新。 ↩↩↩ -
Hermes Agent v0.20.3 发行说明(标签
v2026.8.16.2,标注的发布日期为2026年8月16日,实际发布于8月17日)和 v0.20.4 发行说明(标签v2026.8.18,2026年8月18日);二者均于2026年8月20日通过 GitHub API 获取(prerelease: false)。v0.20.3 原文:“MCP 2.x SDK 迁移和2026-07-28无状态协议支持、附带核心队友协议的内置 Bot Mode(hermes-bots)插件、CommandCode 提供商插件、子进程 Python 运行时所有权加固(PYTHONHOME/PYTHONPATH 隔离)、用于计算机操作的 Cua Driver 0.20 运行时契约。”v0.20.4 原文:“桌面端玻璃/半透明表面改进(哑光玻璃、磨砂选择器、macOS 预选择)、带选项卡的 SESSIONS|BOTS 侧栏及按 bot 隐藏/取消隐藏功能,……安装 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。发行说明原文:“安装程序/修复/升级均要求 Node 26”;“brew + pip/PyPI wheel 渠道已停用(shell 安装程序 / Docker / Nix 为受支持渠道)”;“默认迭代上限 90 → 500”;“已移除 claude-marketplace 源”。Node 最低版本也在安装程序源代码 scripts/install.sh 中得到独立确认——NODE_VERSION="26"以及保护条件“Node.js $(node –version) 版本过旧(Hermes 要求 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>(PRs #62661、#59164、#54518);插件的pre_tool_call审批升级机制重新落地(PR #60504)。终端新增账单命令/subscription和/topup,桌面端新增账单标签页(PR #51639)。新增实时子代理记录文件和持久化后台委派(PRs #67479、#63494);state.db中新增交付义务账本(PR #67181);max_async_children已弃用,改用统一的委派并发上限(PR #56955)。Gateway新增基于profile的路由和GATEWAY_MULTIPLEX_PROFILES;路由索引迁移至state.db,sessions.json成为可选的旧版镜像(PRs #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(PRs #62650、#64458)。CLI/MCP:hermes sessions export支持Markdown/Quarto/HTML/仅提示词/HF-trace格式及--redact(PR #60186);新增/model --once(PR #67113)、堆叠式斜杠skill调用(PR #57987)、--safe-mode、hermes config get/unset(PR #65540)、真正无界面的hermes serve(PR #55923),以及MCP的mcp__server__tool命名方式(PR #52750)。未纳入发布营销措辞;对于在此期间已回滚的项目(iron-proxy出口防火墙、dynamic-workflow skill、内存提供商操作),特意未将其记录为已发布功能。本会话于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个安全关卡加入针对Brainworm类提示词注入的Promptware防御。集成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,了解订阅价格并注册。 ↩↩↩