Hermes Agent 怎么用
从一行命令装好,到让它记住你、把重复劳动沉淀成技能、到点上在手机收它的定时简报。读完你能判断它值不值得装,并且照着本文把它跑到能干活的水平。
更新于 2026-09-13
本文校对于 Hermes Agent @ main(2026-09-13)· 官方源:hermes-agent.nousresearch.com/docs
01先读这一屏:读完你能拿它做什么
一句话价值主张:Hermes Agent 是一个装在你自己电脑或服务器上的 AI 助手——它不只是"你问它答",它会记住你、把干过的活沉成技能、还能到点主动找你。读完本文,你能把它跑到能干活的水平,并且知道哪些事该交给它、哪些千万别。
① 它本体免费、开源(MIT 协议),但"大脑"要花钱——它自己不会思考,得接一个云模型(按用量付费)或本地模型(免费但吃显存)。
② 别用名字带 Hermes 的模型当它的大脑——Hermes-4 系列是聊天模型,没针对"调用工具"训练过,做 agent 会"手脚不协调"(官方原文,见 §06)。
③ 它默认跑在你自己的账号权限下——能读写你的文件、执行终端命令。第一次配置的门槛、以及唯一要警惕的地方,都在这里。
你现在的处境 → 先看哪一节
按你打开这篇文章的原因对号入座。不用从头读。
| 你的处境 | 先看这里 | 大概要花多久 |
|---|---|---|
| "我就想知道它是什么、值不值得折腾" | §01 + §02(本节 + 最小例子) | 10 分钟 |
| "我要现在装起来用" | §03 装与首次配置 → §02 最小例子 | 15 分钟 |
| "装好了,但不会日常用" | §04 终端日常 → §05 家目录 | 15 分钟 |
| "它答得又慢又笨,或老调错工具" | §06 选大脑 → §13 排错 | 10 分钟 |
| "我要它记住我的偏好、别再让我重复交代" | §07 记忆 | 15 分钟 |
| "我要把重复劳动变成一句话" | §08 技能 | 20 分钟 |
| "我要每天自动收简报 / 出门也能用" | §09 定时任务 → §10 手机远程 | 30 分钟 |
| "我要拿它改代码 / 处理 Excel" | §02 最小例子 → §11 进阶能力 | 20 分钟 |
| "我怕它乱删我东西" | §12 安全边界(先看这一节再装也行) | 10 分钟 |
| "它报错了 / bot 不回话" | §13 排错 | 5 分钟 |
最短上手路径(照着敲就行)
这是本文推荐给完全新手的一条路。每一步都有对应的详细小节,卡住了再跳过去看。
如果你只是想"写代码更快",Claude Code / Codex 更对口;Hermes 的长处是跨会话记忆 + 定时主动干活 + 手机远程。想清楚了再往下(§12 有对照表)。
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash,然后 source ~/.zshrc。不要 sudo。
hermes setup --portal —— 浏览器里 OAuth 登录一次,模型和网页搜索 / 画图 / 语音 / 浏览器工具全通。这是官方推荐的最省事路径。
聊上、让它读一个文件写一个新文件、让它"记住一条偏好"、再 /new 开新会话问它"你对我了解多少"。四步做完你就懂了它的底子(§02)。
让它做完之后说一句"把刚才这套流程存成技能"。下次一句话就能复用(§08)。
接 Telegram(或扫码接 WhatsApp),然后挂一个每天早上的简报。到这一步它才算"主动找你"(§09、§10)。
读完你应该能(拿这张清单对账)
$ 的地方都是终端命令
$ 本身不用复制。终端是 macOS 上那个叫"终端 / Terminal"的窗口(按 Command + 空格,输入"终端",回车打开)。不带 $ 的代码块,是在 Hermes 对话框里输入的话或斜杠命令。
02最小例子:亲手验证它"到底特别在哪"
如果只看一句介绍就装,你会把它当"又一个聊天框"。所以这一节不追求讲全功能,只带你做一次能证明它确实与众不同的最小实验。做完你会直观理解"跨会话记忆"和"能动手干活"到底是什么意思。
agent(代理):不是"你问一句它答一句",而是能连续自主执行多步任务的 AI 程序——查资料 → 做决定 → 调用工具 → 看结果 → 再决定下一步。工具(tool):agent 能调用的具体能力,比如"读文件""写文件""执行终端命令""搜网页"。聊天机器人只有嘴,agent 还有手。
第 1 步:装好并进入一次对话
装的部分在 §03 讲全,这里先给你三条命令:
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash
source ~/.zshrc # 让当前终端认识刚装好的 hermes 命令
hermes setup --portal # 浏览器 OAuth 登录一次,模型和工具全配好
然后敲 hermes 进对话。你会看到一个带模型名、可用工具和技能的欢迎横幅,接着出现输入光标。先问一个能立刻验证"大脑通了"的问题:
你:用一句话介绍你自己,并列出你现在启用的 3 类主要能力。
如果它答得像模像样,说明模型和工具都通了。答不出来或报错,先看 §13 排错。
第 2 步:让它做一件"真的要动手"的事
普通聊天机器人只能回答;它应该能自己找文件、写文件。先在终端里造一个测试文件:
cd ~/Desktop && printf 'apple\nbanana\nApple\ncherry\nbanana\n' > 测试词汇.txt
回到 Hermes 对话里,下发一个多步任务:
你:读一下桌面的"测试词汇.txt",把单词去重并忽略大小写,按字母排序后存成一个新文件 结果.txt,然后告诉我路径和内容。
它会自己走完 read_file(读文件)→ 处理 → write_file(写文件),最后汇报。这个"读 → 想 → 写 → 验"的连续过程,就是 agent 与聊天机器人的分水岭。
第一次跑终端命令或写文件时,Hermes 可能停下来问你。CLI 里看清要执行什么再允许——这是它的安全设计(§12 详述),别养成无脑放行的习惯。
第 3 步:让它记住一条关于你的偏好
这是它的招牌能力。在对话里直接说:
你:记住:以后所有回复都用简体中文,控制篇幅,先给结论再给细节。
它会把这条偏好写进长期记忆——具体落在 ~/.hermes/memories/ 目录下的两个纯文本文件里(机制见 §07)。
第 4 步:开新会话,验证它"还记得你"
在会话内敲 /new 开一个全新会话(历史清空),然后只问一句:
你:你对我有什么了解?请基于你的记忆回答。
如果它答出"你希望回复简洁、用简体中文、先结论后细节"——恭喜,最小闭环跑通了:上一个会话的收获,被带到了下一个会话。这一步才是它和网页版聊天框真正的区别。
第 5 步(可选):试试"不占会话"的一次性问答
你可以在终端脚本里直接调用它,一条提示词进、纯文本答案出:
hermes -z "法国首都是哪?"
-z 模式会抑制横幅和进度动画,只输出最终答案,非常适合写进你自己的脚本(§11 有完整用法)。
问一句答一句、答完关掉、下次重新交代背景。那你花的安装成本全浪费了——它的价值全在"跨会话"和"动手"。
让它动手做一件事 → 让它记住一条偏好 → 换新会话验证记忆还在。四步做完,你才真正体会到它"越用越懂你"的底层逻辑。
03怎么装、怎么开:从零到能对话
Hermes 官方提供一行命令安装,安装器会自动检测并补装全部依赖:uv(一个装 Python 工具的命令行程序)、Python 3.11、Node.js、ripgrep(一个极快的文本搜索工具,它搜自己的历史会话要用)、ffmpeg(处理音视频,语音功能要用)。整个过程不需要 sudo——sudo 是"以管理员身份执行"的意思,也就是能改整台电脑的最高权限;安装器会把 Python 装进你自己的用户目录,不碰系统。
一条命令安装(macOS / Linux / WSL2)
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash
这条命令做两件事:curl 把官方安装脚本下载下来,| bash 把它交给终端执行。安装完,先让当前这个已经开着的终端认识新命令:
source ~/.zshrc # zsh(macOS 默认);如果你用 bash,则是 source ~/.bashrc
安装器把 hermes 命令写进了你的 shell 启动脚本(如 ~/.zshrc),但"当前这个已经打开的终端"还停留在旧状态,它不知道有新命令。执行一次 source ~/.zshrc 就是重新读一遍这份配置,之后就能直接敲 hermes 了。若之后提示 hermes: command not found,八成就是忘了这一步。
Windows 怎么办
Windows 原生已完整支持(不需要装 WSL)。在 PowerShell 里执行:
iex (irm https://hermes-agent.nousresearch.com/install.ps1)
安装器会额外给你一个便携版 Git Bash(约 45MB,解到 %LOCALAPPDATA%\hermes\git),同样不需要管理员权限,也不会干扰你系统里已有的 Git。Hermes 就用这个内置的 Bash 来跑 shell 命令。
还有哪些安装方式
| 方式 | 怎么做 | 什么时候选它 |
|---|---|---|
| 图形安装器(Hermes Desktop) | 从官网下载桌面安装器并运行,命令行版和桌面版一起装好 | macOS / Windows 用户想省事——官方把它标为推荐路径 |
| Windows 原生 | iex (irm …/install.ps1),装到 %LOCALAPPDATA%\hermes | 不想装 WSL 的 Windows 用户 |
| 从源码 / 开发者 | 先跑安装脚本,再 uv pip install -e ".[all,dev]" | 要二次开发 Hermes 本身;普通用户不必 |
| Nix / NixOS | 官方文档给了一套 flake 与 NixOS 模块 | 整台机器用 Nix 声明式管理的人 |
| Android / Termux | 官方有专门的 Termux 指南;会装精简的 .[termux] 依赖集 | 想在手机上跑(功能比桌面窄) |
第一次配置:三种模式怎么选
敲 hermes setup 会进入配置向导,它给你三个模式:
| 模式 | 做什么 | 适合谁 |
|---|---|---|
| Quick Setup(Nous Portal) | 免费 OAuth 登录 Nous Portal(点浏览器授权,不用填密码),自动配好模型 + Tool Gateway 工具,不用自己收集各家 API key | 本文读者首选(最顺) |
| Full Setup | 一步步手动走完每个提供商、工具和选项(需要自带各家的 API key) | 想精细控制、或手上已有多家 key 的人 |
| Blank Slate | 只开最小运行项:模型 + 文件操作 + 终端。其余全关——没有网页、浏览器、代码执行、视觉、记忆、委派、定时任务、技能、插件、MCP;连上下文压缩、检查点、记忆捕获都是关的 | 极简主义者、或想"从零自己一项项开"的安全偏好者。之后可用 hermes tools 逐项开回来 |
官方"最快路径":hermes setup --portal
如果你只想最快跑起来、又不想面对一堆 API key,这是官方推荐的入口。一条命令自动做五件事:
自动打开 portal.nousresearch.com,你用账号授权登录即可——完全不需要任何厂商 API key。
登录令牌(refresh token,就是"下次不用重新输密码"的长期凭证)写进 ~/.hermes/auth.json。
在 ~/.hermes/config.yaml 里写入 model.provider: nous。
它从该提供商的精选 agentic 模型目录里挑,而不是把几百个模型全列给你。注意它挑的是通用 agent 模型,不是自家 Hermes-4——原因见 §06。
网页搜索、图片生成、语音合成(TTS)、云端浏览器自动化,都走 Portal 订阅,不需要分别去申请 Firecrawl / FAL / Browser Use 这些第三方服务的 key。
hermes setup --portal
官方给了两条替代路径。① 本地做 SSH 端口转发,把远程机器的登录端口"搬"到你本机浏览器:
ssh -N -L 8642:127.0.0.1:8642 用户名@远程机,然后再在远程机上跑 hermes setup --portal。
② 设备码登录:hermes auth add nous --type oauth,它会给你一个码,你在任意有浏览器的设备上输入即可。
验证配置成功
用一条命令确认登录状态、模型与各工具的路由:
hermes portal info
正常情况下它会打印你的登录状态块,并显示网页搜索 / 图片 / 语音 / 浏览器等工具都路由 via Nous Portal。确认无误后正式开聊:
hermes # 经典聊天界面(classic CLI)
hermes --tui # 更现代的终端界面(官方推荐,支持鼠标选择、弹层)
① OpenRouter:去 openrouter.ai 建一个 key——一个 key 能调很多家的模型——用 hermes model 选 provider 再粘贴 key;
② Anthropic / OpenAI 官方:用自己官网的 API key,一样在 hermes model 里配;
③ 本地模型:配 Ollama,或用 Hermes 内置的 llama.cpp 运行时,不花钱但吃显存。详细对比见 §06。
以后怎么更新、怎么体检
hermes update # 一键升级到最新版(会先自动备份,再重启网关)
hermes update --check # 只看落后多少,先不改任何文件
hermes doctor # 体检:配置/依赖/服务是否健康
hermes doctor --fix # 体检并自动修
hermes --version # 看当前版本号
想彻底卸载:先 hermes gateway stop 停掉后台进程,再 hermes uninstall——它会问你要不要保留配置目录 ~/.hermes/,想以后重装就选保留。
04装好之后每天怎么用:终端里的两种入口、一套命令
Hermes 的日常使用分两层:终端里用(本节的 CLI / TUI),和聊天软件里用(走网关,见 §10)。先掌握终端这半边。
五种"启动姿势"
| 命令 | 作用 | 什么时候用 |
|---|---|---|
hermes | 经典聊天界面(classic CLI),打开就能聊 | 最朴素、最稳的入口 |
hermes --tui | 更现代的终端界面(TUI),支持鼠标选择、弹层、命令补全 | 官方推荐;两者共用同一套会话与配置,可以随时换着用 |
hermes chat | 显式进入聊天,可带参数(见下面 chat 选项块) | 要在命令行里指定模型或一次性问题时 |
hermes -c(或 --continue) | 带着完整历史恢复上一个会话,接着聊 | 昨天聊到一半,今天继续 |
hermes -z "提示词" | 纯一次性模式:一条提示词进、最终答案文本出 | 写进脚本、管道里调用(见 §11) |
hermes chat 常用选项(照抄就能用)
# 指定模型聊一次(临时覆盖,不改默认配置)
hermes chat --model "anthropic/claude-sonnet-4"
# 带一个问题进交互会话;给 OS 启动器 / 桌面快捷方式用最合适
hermes chat -q "帮我看看这个 bug"
# 问完就退出——写脚本用这个,而不是 -q
hermes chat --oneshot -q "总结一下最近的 PR"
# 程序化模式:抑制横幅、转圈、工具预览
hermes chat -Q -q "只给我结论"
区别值得记牢:-q 在真实终端里是正常会话的第一句话,问完会话还开着;加上 --oneshot(或 -Q、或输出被管道接走时)才是"答完就走"。
一次"典型会话"长什么样
先把预期摆正:它回你的通常不是"一段话就完",而是一串带着工具的干活过程。像这样(示意):
你:桌面上有个 销售.xlsx,帮我按产品线统计总销售额,做成表格存成 report.md。
Hermes(可见的多步过程):
· 调用 terminal:确认文件存在、可读
· 调用 file/代码工具:用脚本读取 xlsx、按"产品线"分组求和
· 调用 write_file:生成 ~/Desktop/report.md
· 自查:报告文件行数与原始数据是否对得上
Hermes 最终回复:
已生成 ~/Desktop/report.md ✅
A 产品线 ¥ 123,000
B 产品线 ¥ 86,500
…(详见文件;如需我导出成图表也可以说一声)
注意它把"读、算、写、验"四步都走完并汇报——这就是 agentic(自主干活)与"问答"的差别。你随时可以用 /stop 打断,或用 /undo 撤掉刚才的一个来回。
会话内最常用的斜杠命令
在对话输入框里以 / 开头输入;支持前缀匹配(比如敲 /h 能命中 /help)。桌面端 / TUI 里按 Ctrl+P 还能打开模糊命令面板,输入几个字筛选所有命令和技能。
| 命令 | 作用 | 什么时候用 |
|---|---|---|
/new(别名 /reset) | 开全新会话,清空当前历史;可带一个标题,如 /new 实验一 | 想从零开始、或验证"它是否真的记住了你" |
/model [名字] | 切换模型;不带参数弹出选择器 | 只想这个会话换个大脑,不动全局默认 |
/personality [名字] | 临时切换人格语气(如 concise / technical / teacher);/personality none 复位 | 这一次想让它换个说话方式 |
/retry | 重发最后一条消息让它重答 | 答案跑偏了,但不想重新打字 |
/undo | 撤销最后一轮你来我往 | 刚才那次对话没用,撤掉 |
/compress | 手动压缩上下文(会话太长、变慢变笨时用) | 聊了很久它开始"健忘" |
/usage | 看本次 / 累计 token(计费单位)消耗与费用 | 想确认这个月花了多少 |
/rollback | 把文件系统回滚到改动前的自动快照 | 它改乱了你的文件,一键反悔 |
/skills | 查看 / 搜索 / 审批技能(等价于终端 hermes skills) | 看它攒了哪些技能 |
/learn <内容> | 把"任何你能描述的东西"交给它蒸馏成一个可复用技能 | 刚干完一件值得复用的事(§08) |
/memory | 查看 / 审批待写入的长期记忆 | 想知道它偷偷记了你什么 |
/journey(别名 /learning) | 看自己一路沉淀的技能 + 记忆时间线(等价 hermes journey) | 回看"它到底学会了什么" |
/bg <提示词> | 把任务丢到后台会话跑,不阻塞当前对话 | 长任务,但你不想干等 |
/stop | 中断当前正在进行的任务 / 后台子任务 | 发现它走错路了,立刻停 |
/quit | 退出 | 收工 |
/clear、/new、/reset、/undo、/quit --delete 这类会丢历史的操作,会弹一个"三选确认"(Approve Once / Always Approve / Cancel)。想这一次直接过,可以加 now、--yes 或 -y,例如 /new now、/reset now。点了"Always Approve"就相当于把 approvals.destructive_slash_confirm 关掉了——之后不再问。
终端里的一等命令(管 agent 本身)
下面这些都在终端里执行(不是在对话里)。它们负责"管这个 agent",不是"让它干活"。
| 命令 | 作用 | 典型用法 |
|---|---|---|
hermes model | 交互式选择默认提供商 + 模型 | "正规换大脑"的唯一入口 |
hermes tools | 查看 / 按平台配置启用哪些工具与工具集 | 关掉你不想让它碰的能力 |
hermes config set / get | 读写单项配置 | hermes config get model.default |
hermes skills | 浏览 / 安装 / 管理技能(browse、install、list、audit 等) | hermes skills browse |
hermes cron | 管理定时任务(create、list、edit、pause、resume、run、remove) | hermes cron list |
hermes gateway | 启动 / 管理消息网关(setup、start、status、stop、install) | hermes gateway status |
hermes sessions | 列出 / 浏览 / 导出 / 清理过去的会话记录 | 找回上周那次对话 |
hermes insights | 查看 token / 费用 / 活跃度分析(默认近 30 天) | 看钱花在哪了 |
hermes journey | 看学到的技能 + 记忆的时间线(别名 learning、memory-graph) | hermes journey list 看全部节点 |
hermes send | 往已配置平台发一条一次性消息(不走 agent、不花 token) | 脚本跑完通知你(§11) |
hermes doctor | 体检并诊断配置 / 依赖问题,--fix 自动修 | 出问题第一站 |
hermes update | 一键升级到最新版 | 隔段时间刷一次 |
终端敲 hermes --help,或对任意子命令敲 hermes cron --help,会列出全部子项;会话里敲 /help 同理。注意:某些命令只在特定 provider 激活时才出现——比如你选了 Honcho 当外部记忆后端,才会多出 hermes honcho 这套子命令。
05它把东西都放在哪:一个目录看懂全部配置
Hermes 的所有配置、记忆、技能、会话记录都放在一个目录里——默认 ~/.hermes/(~ 是你的用户主目录,比如 /Users/你的名字)。官方管它叫 HERMES_HOME。知道这个目录,你就能"亲眼看见"它到底记了什么,改配置也再不用瞎猜。
目录速览
| 路径 | 存什么 | 你什么时候会来这里 |
|---|---|---|
~/.hermes/config.yaml | 主配置:模型、终端后端、压缩、记忆上限等(非机密设置) | 想改默认行为 |
~/.hermes/.env | API key、bot token 等机密(不进 config.yaml) | 手动加密钥时 |
~/.hermes/auth.json | OAuth 登录凭据(Nous Portal 等) | 登录状态出问题时 |
~/.hermes/SOUL.md | agent 的"身份人格"主文件(我是谁、我怎么说话) | 想改它的固定语气 |
~/.hermes/memories/ | 长期记忆:MEMORY.md(它自己的笔记)+ USER.md(对你的画像) | 想看 / 改它记住了什么(§07) |
~/.hermes/skills/ | 所有技能(它自建的 + 你安装的);归档的进 skills/.archive/ | 想找某个技能文件 |
~/.hermes/pending/skills/ | 等你审批的技能草稿(开了审批模式时) | 审批模式下的待办 |
~/.hermes/cron/ | 定时任务定义与本地输出(cron/output/) | 确认任务跑了没、留了什么 |
~/.hermes/sessions/ + state.db | 会话历史(SQLite 数据库——一种免安装、整个数据库就是单个文件的本地数据库,带全文索引) | 它"翻旧账"靠的就是这里 |
~/.hermes/logs/ | 运行日志:errors.log、gateway.log | 排查问题必备(§13) |
~/.hermes/checkpoints/ | 文件改动的快照(默认关闭,见 §11) | /rollback 回滚时用 |
常用配置命令
hermes config get model.default # 读某一项配置
hermes config set model anthropic/claude-opus-4 # 写某一项配置
hermes config set terminal.backend docker # 例:把命令执行后端切到 Docker 沙箱(§12)
hermes config show # 查看全部配置
hermes config check # 校验配置有没有问题
hermes config migrate # 更新后缺了新配置项?交互式补上
两条规则值得记:① hermes config set 会自动分流——API key 进 .env,其余进 config.yaml,你不用自己记;② 优先级从高到低是命令行参数 > config.yaml > .env > 内置默认值。所以"我明明配了却没用"的时候,先想一下是不是命令行参数覆盖了它。
人格文件 SOUL.md:agent 的"嗓音"
- 它是什么:
~/.hermes/SOUL.md定义 agent 的身份、语气与风格,是系统提示(system prompt——每次对话开始前,程序自动塞给模型的那段"你是谁、你能用什么工具、有什么规矩"的隐藏说明)里第一顺位的内容——它会完全替换掉内置的默认身份。文件不存在或读不到时,它回落到内置默认人格。 - 一句话区别:
SOUL.md写"我是谁、我怎么说话"(跟着你走,跨项目生效);AGENTS.md写"这个项目怎么组织、有什么约定"(只属于某个代码仓库)。 - 怎么临时换人格(只影响当前会话):
/personality concise # 说话精炼
/personality technical # 技术口吻
/personality teacher # 讲道理讲得细
/personality none # 恢复默认
项目上下文文件:让它在你项目里"懂规矩"
把项目跑在 Hermes 里时,它会在项目目录自动识别并加载上下文文件。关键是"只加载一个"——多种类型同时存在时,按下面顺序取第一个匹配到的;只有 SOUL.md 永远独立加载。
| 文件 | 作用 | 优先级 / 范围 |
|---|---|---|
.hermes.md / HERMES.md | 项目专属指令(最高优先级) | 从当前目录一路向上找到 git 根 |
AGENTS.override.md | 你个人的、针对某个目录的覆盖版本(通常加进 gitignore 不提交) | 排在 AGENTS.md 之前——想写"只对我生效"的约定就用它 |
AGENTS.md | 项目约定、编码规范(提交进仓库给别人也看) | 会递归合并子目录里的同名文件 |
CLAUDE.md | 从 Claude Code 项目沿用过来的上下文文件(也认) | 只在工作目录 |
.cursorrules / .cursor/rules/*.mdc | 从 Cursor 沿用过来的规则(也认) | 只在工作目录 |
SOUL.md | agent 身份,不参与上面这套竞争 | 永远加载,占系统提示第一格 |
所有被加载的上下文文件都有字数上限(默认 20000 字符),超了会智能截断。它还会对这些文件做提示注入扫描——可疑内容会被标记成 [BLOCKED: ...] 拦下来。
Profiles:想要多个"分身"就靠它
一个 profile 相当于一个相互隔离的 Hermes 实例——各自有独立的记忆、技能、配置、会话。平时不用管;如果以后想区分"工作用 agent"和"私人用 agent",用 hermes profile 创建,再以 -p 名字 启动:
hermes -p work # 用名为 work 的 profile 启动
hermes -p work chat # 这个 -p 别名对每个子命令都有效
hermes -p work gateway start # 连网关也能按 profile 分开跑
官方原文:"never run two agents against the same profile or Hermes home"——两个 agent / 两个人共用同一个 profile,会让记忆和用户画像互相污染,"它们存下来的状态会随着每一次会话一起退化"。要共享就用不同的 profile;确实想跨 agent 共享记忆,用外部记忆后端(§07 的 Honcho)。
06给它选个"大脑":模型与提供商怎么选
Hermes Agent 是"身体",模型是"大脑"。它不绑定任何一家:Nous Portal、OpenRouter、OpenAI、Anthropic、Google、你自己的端点、本地模型都行。但选错大脑会显著变笨,本节给新手一个可以直接照抄的决策。
最重要的一条提醒:别用 Hermes-4 当大脑
名字都带 Hermes,很容易顺手选成自家模型。但官方文档写得非常直白:
"Hermes-4-70B and Hermes-4-405B are available on the Portal at deep discounts, but they're chat/reasoning models, not tool-call-tuned. They will struggle with multi-step agent loops."
——Hermes-4 系列是聊天 / 推理模型,没有针对工具调用调优,在多步 agent 循环里会吃力。官方建议把它们用在做对话和研究上;做 agent 请挑前沿的 agentic 模型。
agent 的每一步都要做一种很特别的决定:该不该调用工具、调哪一个、传什么参数,而且要输出成机器能解析的结构化格式。聊天模型擅长写漂亮的回答,但不擅长这种高频、精确的"工具调用协议"——所以表现出来就是"话很会说,手脚不协调"。这就是所谓的tool-call(工具调用)调优。
四条接入路径(由易到难)
| 路径 | 怎么做 | 开销 | 适合谁 |
|---|---|---|---|
| ① Nous Portal | hermes setup --portal,浏览器 OAuth 登录;官方称一个订阅下 300+ 模型 + Tool Gateway 工具全包 | 订阅制(按套餐 / 用量计费) | 想最省事的首选;本文默认路径 |
| ② OpenRouter | 去 openrouter.ai 建 key → hermes model 选 provider 粘贴 key | 按量付费;一个 key 可调多家 | 想用一个 key 试多家模型的人 |
| ③ Anthropic / OpenAI 官方 | 用各自官网的 API key,在 hermes model 里配 | 按量付费 | 已有对应官方账号 / key 的人 |
| ④ 本地模型 | 配 Ollama,或启用 Hermes 内置的 llama.cpp 托管运行时 | 免费,吃你电脑的显存 / 内存 | 在意隐私、不想付费、机器够强(8GB+ 显存起步) |
新手"速选大脑"清单
模型名随官方目录变动——具体以你打开 hermes model 看见的精选列表为准(那里列的是官方为 agent 场景挑过的模型,不是你 API 账户里能看到的全部模型)。
- 想最省事、预算允许 → 走
hermes setup --portal,官方已替你选好默认 agentic 模型,先别换; - 写代码、求稳 → 首选 Claude Sonnet 系的通用模型;
- 任务链条长、要强推理 → 看 GPT-5 系这类同时支持推理与工具调用的型号;
- 要超长上下文(要塞大文件)→ 选上下文窗口大的模型档位;
- 想省钱 → DeepSeek 系或本地模型,先用小任务试试质量够不够;
- 千万别选 → Hermes-4 系列(见上一小节)。
配置动作一览
- 换默认"大脑"(终端,一次性):
流程是:选 provider → 认证(OAuth 会开浏览器,或让你填 API key)→ 从该提供商的精选目录里选模型 → 写入hermes model~/.hermes/config.yaml。它只影响之后新开的会话。 - 会话中途想换(不动默认):在对话里
/model anthropic/claude-sonnet-4;加--global才持久化到配置。 - 命令行临时覆盖:
hermes chat --model "anthropic/claude-sonnet-4" -q "帮我看看这个 bug" - 不想开对话,直接写配置:
hermes config set model anthropic/claude-opus-4
① key 不对家:OpenAI 的 key 不能拿去调 OpenRouter,反之亦然;
② 会话里换不了模型:/model 只能切换到"已经配置好"的 provider——要新增 provider 必须回终端跑 hermes model,然后开新会话;
③ 模型太小会被拒:官方要求模型上下文至少 64,000 token(token 是模型读写文本的计量单位,粗略可理解成"半个到一个词")。窗口太小的模型无法维持多步工具调用所需的工作记忆,启动时就会被拒。
配置文件长什么样(照抄改一处就能用)
主模型写在 config.yaml。下面这份是走 OpenRouter 的完整样子:
# ~/.hermes/config.yaml
model:
provider: openrouter
default: anthropic/claude-opus-4.7 # OpenRouter 上的模型标识符(provider/模型名)
base_url: '' # 切 provider 时会被清空
api_mode: chat_completions
"副手"模型(比如让更便宜的模型单独负责压缩上下文或看图)有独立槽位,默认 auto 表示复用主模型:
# ~/.hermes/config.yaml —— 例:让视觉任务走更便宜的模型
auxiliary:
vision:
provider: openrouter
model: google/gemini-2.5-flash
timeout: 120
API key 一律放 ~/.hermes/.env(安全、不进配置文件)。两个官方明确列出的标准变量名:
# ~/.hermes/.env
OLLAMA_API_KEY=...
DEEPSEEK_API_KEY=...
OpenRouter、Anthropic 等一般通过 hermes model 的 Keys 面板或向导接线,不必手写。想接本地自定义的 OpenAI 兼容端点,可在 config.yaml 的 providers: 下写 api + api_key(细节以官方 configuring-models 页为准)。
07它凭什么"越用越懂你":三层记忆拆开看
这是 Hermes Agent 区别于大多数工具的核心。官方反复强调一个词:closed learning loop(闭环学习)——"闭环"的意思不是玄学,而是"上一次干活的收获,会变成下一次的起点"。这一节把这句话拆成三层你能亲眼看见的记忆。
先破一个误解
"它记住你" ≠ "它把你所有聊天都塞进上下文"。 如果把每句话都带着走,token(模型的计费与容量单位)早就爆了,而且模型会变笨。Hermes 用的是"该记的记成小文件 + 需要时再翻历史"的策略:文件是精选摘要,历史是可以按需搜索的仓库。这两件事不是一回事。
三层记忆结构
| 层 | 存在哪 / 是什么 | 容量与触发 | 一句话作用 |
|---|---|---|---|
| ① 常驻双文件 | ~/.hermes/memories/MEMORY.md(它自己的笔记:环境事实、约定、踩过的坑)+ USER.md(你的画像:偏好、沟通风格、期望) |
MEMORY.md 上限约 2200 字符、USER.md 约 1375 字符;每次会话开始时作为"快照"注入系统提示 | 每一轮对话它都"自带"对你的核心了解,几乎不额外花 token |
| ② 会话全文搜索 | 所有 CLI / 消息会话存在 SQLite 数据库 ~/.hermes/state.db,带 FTS5 全文索引(一种"把每个词都建好索引、所以能秒搜"的数据库技术) |
按需由它调用 session_search 工具召回;返回的是真实消息原文,不做摘要截断 |
像"翻自己所有聊天记录"——记不全的细节还能搜回来 |
| ③ 用户建模(可选,Honcho) | 接 plastic-labs 的 Honcho 作为外部记忆后端,在对话之后异步"辩证推理"你的偏好与习惯 | 默认关,需要 hermes memory setup 选 honcho + 配 HONCHO_API_KEY;建模深度可调 |
让"懂你"升级:不是记住你说了什么,而是推理你可能要什么 |
写记忆不是乱写:系统会做去重与安全扫描(拦截提示注入、隐私外泄的文本模式,以及用来藏东西的隐形 Unicode 字符);写满时报错,并让你在当回合先 replace / remove 腾位置;会话结束后还有一个后台"自改进评审"静默挑值得沉淀的点。想全程掌控,可以开审批模式:
# ~/.hermes/config.yaml —— 记忆写入要先经你同意
memory:
write_approval: true # true = 任何记忆写入都要审批
开了之后,CLI 里它会当场问你;在消息平台 / 脚本 / 后台评审里,写入会暂存等你用 /memory pending → /memory approve <id> 或 /memory reject <id> 处理;会话里还能用 /memory approval on|off 随时开关。
你可以怎么主动用它
记住:…(或 remember this for next time),它会写进常驻记忆。hermes journey list 看全部记忆与技能节点;hermes journey delete <节点> 删。技能是归档(可恢复),记忆块是真删。亲手看一眼"它记住了什么"
这两个文件就是纯文本,你随时可以打开看、也可以手改:
open ~/.hermes/memories # macOS 用 open 打开文件夹
cat ~/.hermes/memories/MEMORY.md ~/.hermes/memories/USER.md
看到两个 .md 文件里躺着它写给你的小结,就说明记忆系统在工作。
记忆回答"我该知道什么"(你是谁、环境怎样、有什么教训);技能回答"我该怎么干"(可复用的多步流程)。两者叠加,才是官方说的 closed learning loop:每次干活都让下一次更省事。
08技能(Skills):让重复劳动变成"肌肉记忆"
如果记忆是它"记得你",那 Skills(技能)就是它"记得怎么做"——官方称之为 agent 的 procedural memory(程序性记忆),就是"手脚怎么动"的那部分记忆,和"记得事实"相对。理解这套机制,是看懂 Hermes"自我改进"的关键。
一个 Skill 到底是什么
官方定义:技能是"按需加载的知识文档"(on-demand knowledge documents),教会 Hermes 怎么处理某一类具体任务。关键在于"按需"——不加载时几乎不占上下文(官方原话 "Zero tokens until loaded")。一个技能 = 一个带说明的 SKILL.md 文件。它兼容 agentskills.io 这个开放标准,理论上可以跨 agent 工具复用。
它什么时候"自学成才"?
不是每次对话都会生成技能。系统提示要求它在三种时刻沉淀:
沉淀原则是 "lessons, not logs"(要教训,不要流水账):把坑写成可推广的规则加一句为什么;聊天原文、某个 PR 号、日期这类只对当时有意义的碎片,不算技能内容。
技能的"长相":一个最小的 SKILL.md
技能都放在 ~/.hermes/skills/,结构是 分类/技能名/SKILL.md——上面是 YAML 头(用缩进表达的数据格式,夹在两个 --- 之间),下面是 Markdown 正文:
# ~/.hermes/skills/daily/tidy-csv/SKILL.md
---
name: tidy-csv
description: 读取一个 CSV,做清洗(去重/去空/统一编码),另存为新文件
version: 1.0.0
---
# Tidy CSV
## When to Use(什么时候用)
用户给了一个脏 CSV,想要干净版。
## Procedure(步骤)
1. read_file 读取并探测编码;
2. 用脚本去重空行、合并重复列;
3. write_file 输出为 原名_clean.csv;
4. 打印行数前后对比。
## Pitfalls(坑)
不要直接覆盖原文件——先备份。
## Verification(怎么验证)
让模型确认输出行数 = 输入行数 - 去重行数。
手写一个技能只要三步,不需要注册,丢进去就生效:
mkdir -p ~/.hermes/skills/my-cat/my-skill
# 然后把上面那份 SKILL.md 内容写进 my-cat/my-skill/SKILL.md
/skills # 在会话里确认它被认出来了(需先开新会话,见下)
常用操作:查 / 装 / 审批 / 自建
| 你要做什么 | 怎么做 | 注意 |
|---|---|---|
| 看有哪些技能 | 会话里 /skills,或终端 hermes skills list | 加 --source hub 只看从社区库装的 |
| 搜索 / 安装现成技能 | hermes skills browse 看目录 → hermes skills install openai/skills/k8s | 安装参数是 来源/路径 形式的 slug;还有 official/…、anthropics/skills 等来源;hermes skills inspect <slug> 可先预览,install 会先跑一次安全扫描 |
| 立即调用某个技能 | 每个已装技能会自动注册成斜杠命令,如 /tidy-csv 帮我把这份表洗一下 | 一条消息里最多可叠加 5 个技能 |
| 让 AI 把刚做完的流程写成技能 | 会话里 /learn 我刚才是怎么部署那台服务器的 | 也接受"给我一个网址 / 一个目录 / 一段描述" |
| 把"自动写技能"管住 | 配置 skills.write_approval: true | 写入先进 ~/.hermes/pending/skills/,再用 /skills pending / diff / approve / reject 逐个审 |
| 手动造一个技能 | 见上面那三步 | 无需注册;但当前会话要重载才生效 |
谁来防止技能"越攒越乱":Curator 策展器
技能会自己长出来,久了必然堆积。Hermes 内置一个后台维护进程 Curator:统计每个技能被查看 / 使用 / 修补的频率,长期不用的按 active → stale → archived 推进归档。官方强调两点:
- 它绝不自动删除——最坏结果只是归档到
~/.hermes/skills/.archive/,可恢复(官方原话:"never auto-deletes — the worst outcome is archival"); - 它由空闲检查触发,不是常驻定时任务——默认在你闲置一段时间后、且距上次运行够久,才在后台跑,不打扰对话。
hermes curator status # 上次运行时间、计数、置顶列表
hermes curator run --dry-run # 先看它"打算"归档哪些,不真动手
hermes curator pause # 暂停;resume 恢复
官方 work-with-skills 指南提醒:当前会话里新装 / 新改的技能,通常要 /reset(开新会话)才会被加载。别以为是装失败了。这也是为什么"我明明装了却调不出来"排在常见坑前几名(§13)。
09定时任务(Cron):让 agent 到点自己干活
想让它"每天早上 9 点自动总结新闻发我"?这就是 cron 干的活。Cron 原本是 Unix 系统里"按时间表自动跑任务"的老牌机制,Hermes 内置了一个同样的调度器,而且跑完能把结果投递到任意已接入的平台——投递能力正是它区别于"只能你问它答"的关键。
三种创建方式(挑顺手的)
| 方式 | 例子 |
|---|---|
| 会话内斜杠命令 | /cron add "every 2h" "检查服务器状态";一次性任务 /cron add "in 30m" "提醒我看构建结果" |
| 终端 CLI | hermes cron create "every 2h" "检查服务器状态";带技能版 hermes cron create "every 1h" "总结新的 feed" --skill blogwatcher |
| 纯自然语言(在对话里说) | 直接说"每天早上 9 点去 Hacker News 找 AI 新闻,总结后发我 Telegram"——agent 会自己调用 cron 工具建好 |
时间怎么表达(重要)
- 间隔 / 相对时间:
in 30m(30 分钟后跑一次)、every 2h(每 2 小时)、every hour、30m; - 标准 cron 表达式:5 段式,从左到右分别是"分 时 日 月 星期"。例如
0 9 * * *(每天 9:00)、0 9 * * 1-5(工作日 9:00)、0 */6 * * *(每 6 小时);也认MON-FRI这种名字; - 一次性的 ISO 时间:
2026-09-15T09:00:00。
官方 automate-with-cron 原文:"Natural language like daily at 9am is not supported — use 0 9 * * * instead." 所以别写"每天早上",写 0 9 * * *。注意区分:你在对话里用中文说"每天早上 9 点"是可以的——那是 agent 替你翻译成 cron 表达式;但直接建任务时的时间参数必须是上面三种格式之一。
给 cron 写提示词的黄金法则:自包含
cron 任务跑在全新会话里,官方原文:"Cron jobs run in fresh agent sessions with no memory of your current chat."——它对你刚才聊了什么一无所知。所以提示词必须自包含:搜什么、取几条、什么格式、多长、什么语气,全写清楚。
/cron add "0 9 * * *" "按老样子做每日简报"
/cron add "0 9 * * *" "搜索过去 24 小时的 AI agent 与开源 LLM 新闻,至少 5 篇,按来源分组给出要点并附链接,控制在 500 字以内" --deliver telegram
投递到哪:--deliver 的写法
origin:回到创建它的那个聊天(默认);local:只存本地文件~/.hermes/cron/output/;telegram/discord/slack:投到该平台的 home channel("家庭频道",用/sethome指定,见 §10);- 更精确的群 / 话题:
telegram:-1001234567890(群)、telegram:-1001234567890:17585(群里的某个话题); - 可以组合多个目标:
--deliver bot-chat,telegram。
管理命令 + 一个完整可抄的流程
hermes cron list # 看所有任务
hermes cron run <job_id> # 立即手动跑一次(测试用)
hermes cron edit <job_id> # 改这个任务(可换模型 / 提示词 / 时间)
hermes cron pause <job_id> # 暂停
hermes cron resume <job_id> # 恢复
hermes cron remove <job_id> # 删除
最实用的"先测后挂"流程——先手动确认效果满意,再挂成定时,能省掉大量返工:
# ① 先在终端手动验证效果(把要求一次说清)
hermes -z "搜索最近 24 小时 AI 编程工具新闻,总结 3 条要点并附链接,简体中文"
# ② 确认回答满意后,挂成每周一 9 点的定时任务,投到 Telegram
/cron add "0 9 * * 1" "搜索最近 24 小时 AI 编程工具新闻,总结 3 条要点并附链接,简体中文" --name "周一 AI 简报" --deliver telegram
让它"安静地监控",只在有变化时发声
[SILENT] 标记 + 脚本
监控类任务可以挂一个脚本,脚本只在检测到变化时输出 CHANGE DETECTED;提示词里要求"若无变化就只回 [SILENT]"。规则是:
- 只要最终回复里含
[SILENT],这次就完全不投递;但输出仍会存到~/.hermes/cron/output/供你事后审计; - 失败的 job 一定会投递(会发
⚠️ Cron 'X' failed),只有成功的运行才能被静音——所以"安静"不等于"哑掉"。
完整写法(照抄改路径):
/cron add "every 1h" "If the script output says CHANGE DETECTED, summarize what changed and why it might matter. If it says NO_CHANGE, respond with just [SILENT]." --script ~/.hermes/scripts/watch-site.py --name "Pricing monitor" --deliver telegram
不需要 AI 的定时任务:--no-agent
如果任务只是"跑个脚本、把输出发给我",根本不需要模型参与——这样不花一分钱 token:
hermes cron create "every 5m" \
--no-agent \
--script memory-watchdog.sh \
--deliver telegram \
--name "memory-watchdog"
语义值得记住:脚本输出(去掉首尾空白)原样投递;输出为空 = 静默跳过(这就是"只在出问题时说话"的看门狗模式);非零退出码或超时 = 会发错误告警(所以坏掉的看门狗不会静默失效)。脚本必须放在 $HERMES_HOME/scripts/ 里,且进程环境会被清洗——你的 API key 之类机密不会被这个脚本继承。
10手机远程:把它接进 Telegram / 微信 / 飞书
前面都在终端里跟它说话。接上消息网关(gateway)之后,它就成了一个"你随叫随到、也能主动找你"的聊天机器人——而且跑在你自己的机器上,不在别人的云里。
Gateway 是什么
官方一句话:gateway 是 Hermes 里唯一常驻后台的进程——它负责连上你配置的各种聊天平台、维持会话、并按点触发 cron 定时任务。官方称网关连接 20+ 个外部消息平台(共 21+ 个平台接入,其中 19 个原生在网关里,IRC 和 Microsoft Teams 走插件),包括 Telegram、Discord、Slack、WhatsApp、Signal、短信(SMS)、Matrix、邮件、钉钉、飞书、企业微信、微信、iMessage(经 BlueBubbles)、QQ、Microsoft Teams、LINE 等。
原理是:每个平台适配器收到消息 → 路由给同一个 agent 处理 → 回复回到对应聊天。也就是说,你在 Telegram 里聊天,和你在终端里聊,背后是同一个 Hermes、共享同一套记忆和技能。
安全默认:先看懂"白名单"
官方 messaging 页原文:"the gateway denies all users by default as a safety measure"。陌生用户私聊你的 bot,只会收到一个一次性配对码。新手最常见的问题是"bot 不回话"——十有八九就是没把自己加进白名单。
所以配置任何平台,都要显式声明"谁可以用"。白名单写在 ~/.hermes/.env 里,格式是逗号分隔的用户 ID。
动手:把 Hermes 接进 Telegram(4 步)
在 Telegram 里搜 @BotFather → 发 /newbot → 起一个显示名 + 一个以 bot 结尾的用户名,它会回你一串 API token(能让程序以这个 bot 身份说话的密钥)。
~/.hermes/.envTELEGRAM_BOT_TOKEN=123456789:ABCdefGHIjklMNOpqrSTUvwxYZ
TELEGRAM_ALLOWED_USERS=你的数字ID
不填 ALLOWED_USERS 就谁都连不上。怎么拿你的数字 ID:在 Telegram 里给 @userinfobot 发一条消息,它会告诉你。
hermes gateway # 前台跑,先确认能连上
hermes gateway status # 看状态
想要开机自启、后台常驻,先 hermes gateway install(装成 macOS 的 launchd 服务 / Linux 的 systemd 用户服务),再 hermes gateway start。
给 bot 发条消息,正常几秒内应收到回复。若没反应,看日志:tail -f ~/.hermes/logs/gateway.log。
嫌手写麻烦?官方推荐直接跑交互向导,它会问你 bot token 和允许的 user ID,然后替你写好配置:
hermes gateway setup
在聊天软件里怎么用
- 发消息即对话:直接私聊就是正常对话;群聊需要额外配置才响应(回复 bot 的消息 /
@bot用户名/ 配置唤醒词——群里只有消息里带了这个词,bot 才会搭理); - 斜杠命令照样能用:官方明确列出
/status、/new、/model、/skills、/cron、/rollback、/learn等一批命令在 CLI 和消息平台上都有效;装好的技能也会自动注册成该平台的原生斜杠命令。反过来,/history、/tools、/config这类是只在 CLI 里能用的; - 危险操作怎么确认:聊天里没法弹终端那种选择框,agent 会问你
Reply 'yes' to approve,你回yes或no; - 让它"认得你家":在常用群里对它说
/sethome,之后 cron 的定时结果默认投到这里。
没 Telegram?WhatsApp 其实更省事
接 WhatsApp 不需要 Meta 开发者账号——官方内置桥用扫码配对(本质是模拟一次"WhatsApp 网页版"登录)。跑 hermes whatsapp 会生成一个二维码(约 20 秒刷新一次,超时重跑即可),手机扫码就连上了。然后在 .env 写:
WHATSAPP_ENABLED=true
WHATSAPP_MODE=bot
WHATSAPP_ALLOWED_USERS=15551234567 # 带国家码、不要 + 号;填 * = 放行所有人(别这么干)
"Never set GATEWAY_ALLOW_ALL_USERS=true on a bot with terminal access."——别图省事对一个"能执行终端命令的 bot"开放所有人,任何人找到你的 bot 就能在你的机器上跑命令。白名单 + 配对码才是正确姿势。
11进阶:让它当你的"虚拟小团队"
熟练之后,你不需要只会"一问一答"。Hermes 有一组让你把复杂任务拆开、并行、接进流水线的能力。本节不展开到开发者级,只把每个能力"是什么 / 怎么触发"讲明白——足够你读懂它自己怎么干活、以及知道往哪查。
子代理委派(delegation):把一件大事拆成几件并行做
官方工具 delegate_task 会派生相互隔离的子 agent,每个有独立的上下文和终端会话,可以同时处理各自的子任务。关键点:
- 不用你手动"叫"——agent 会根据任务复杂度自己决定要不要委派(官方:"The agent handles delegation automatically based on the task complexity");
- 并发上限可配:
delegation.max_concurrent_children,默认 3 个,下限 1、没有硬上限;超过上限的批量会返回工具错误,而不是被静默截断; - 子 agent 是全新会话、零父级记忆,你只能通过
goal(目标)和context(背景)喂给它——所以给父级一条清晰的委派指令,等于给每个子代理发一份清晰的工单; - 批量任务可一次派多个:
delegate_task(tasks=[...]),完成一个回报一个; - 默认深度是 1(扁平),子 agent 不能再派孙代理;把
max_spawn_depth调到 2 或 3 才有多层结构——代价是成本按层数相乘(3 层 × 每层 3 个 = 最多 27 个并发子 agent)。
配置参考页写的是"并发默认 3";而功能文档(delegation 页)写的是"Maximum concurrency: 10 tasks by default"。同一个仓库的两页对不上,很可能是"每次委派调用 3 个 / 整个线程池 10 个"这类不同口径,也可能是文档漂移。实践建议:以你本地 hermes config show 里的实际值为准,别假定数字。
你不需要手写这个工具;但理解了它,你就明白为什么"把大任务说清楚、拆成几件事"能让它干得更快。典型触发话术:
帮我并行调研这三件事,每件单独出一份结论:
1. A 主题
2. B 主题
3. C 主题
- 给每个子任务写清背景 + 目标 + 交付物格式("给出结论 + 引用链接"就比"调研一下"好);
- 需要横向对比时,说"把结果合并成一张对比表再给我";
- 不要让两个子代理改同一个文件(各自独立工作区,容易互相覆盖);想彻底隔离可以开
delegation.worktree_isolation: true,给每个子代理一个独立的 git 工作树。
execute_code 和子代理:机械活 vs 动脑活
execute_code | delegate_task | |
|---|---|---|
| 本质 | 只执行一段 Python 代码,代码里通过 RPC(远程调用)调 Hermes 的工具 | 一个完整的模型推理循环 |
| 适合 | 机械、确定性的流水线(批量改名、遍历文件) | 要判断力、多步推理的活 |
| 开销 | 低(一次代码执行) | 高(每一步推理都走模型) |
| 并发 | — | 默认 3(见上方口径提醒) |
MCP:给它接第三方工具(GitHub、数据库、n8n…)
MCP(Model Context Protocol,模型上下文协议)是一个"让 AI 连外部系统"的开放协议——你可以把它理解成一个统一的插座标准:外部系统按这个标准做成"服务器",AI 只要会插,就能用任何一家的能力。Hermes 两种角色都当:它既是 MCP 客户端(能连别人的 server),也能把自己当 MCP server 暴露给别的工具。
hermes mcp # 交互式管理 MCP server 配置
hermes mcp install n8n # 从官方目录安装某个 server
hermes mcp add my-oauth-server --url https://mcp.example.com/mcp --auth oauth
hermes mcp serve # 把 Hermes 自己作为 MCP server 暴露给 Claude Code / Cursor / Codex
接入的 server 工具会以 mcp_<服务器名>_<工具名> 注册,可以用 include / exclude 控制放行哪些。新手只需记住一句:以后想让它操作你的 GitHub / 数据库 / 自动化平台,路径就是 MCP(详见官方 "Use MCP with Hermes" 指南)。
Hooks:在关键节点"插一脚"(给想折腾的人)
Hooks 允许你在"消息到达、工具被调用、模型开始推理"等生命周期节点运行你自己的脚本——比如拦截危险工具调用、自动格式化文件、往提示里注入上下文。在 config.yaml 的 hooks: 下声明即可;回调出错会被隔离记录,不会拖垮 agent。查看:hermes hooks list。对新手:先知道有这么一层"保险丝"就够,不必现在配。
Checkpoints 回滚:改坏了能"反悔"
Hermes 可以在改文件前对工作目录做自动快照(checkpoints,基于影子 git 仓库)。但默认 checkpoints.enabled: false——这是需要你主动开的。想用就先开:
hermes config set checkpoints.enabled true
# 或单次会话临时开:
hermes chat --checkpoints
开了之后改乱可以用会话里的 /rollback 一键回滚到改动前(默认每个目录保留 20 个快照,可用 max_snapshots 调)。这条是"让它大胆改代码"的安全垫——尤其适合让 AI 改代码的新手,但不等于替代你自己的备份。
把 Hermes 塞进你自己的脚本
用 -z 一次性调用 + hermes send 通知,它就成了你自动化流水线的一环:
# 例:让 Hermes 总结一个文件,把结果存进变量
answer=$(hermes -z "用三点总结这份报告" < 报告.txt)
# 例:脚本跑完,往 Telegram 发一条通知(不走 agent,几乎零开销)
hermes send --to telegram "构建完成 ✅ $(date)"
# 例:想看这次调用花了多少 token,并拿到机器可读的报告
hermes -z "..." --usage-file usage.json
# 例:临时换 provider / 模型跑一次(不改配置)
hermes -z "..." --provider openrouter --model openai/gpt-5.5
-z 只输出最终答案、没有横幅动画,非常适合管道调用;需要保留工具过程记录就改用 hermes chat --oneshot -q "…"。--usage-file 写出的 JSON 里含 estimated_cost_usd、输入 / 输出 / 缓存 token 数、api_calls、模型、provider、session id 等字段,而且即使这次运行失败也会写——所以批量流水线总能对账。
12安全边界:权限很大,请当回事
Hermes 默认跑在你自己的电脑上、以你的用户权限执行命令——这既是它能干实事的原因,也是你唯一要警惕的地方。一句话类比:你雇了一个"会动手的员工",并且把家里的钥匙给了他。好消息是它的安全设计是"先问再动",但需要你配合。
默认权限模型
| 能力 | 默认行为 | 想收紧 / 想放开怎么做 |
|---|---|---|
| 执行终端命令 | 默认后端 local:直接在这台机器上跑,拥有你当前用户能做的全部事 | 切隔离后端:hermes config set terminal.backend docker(或 ssh) |
| 危险命令 | 需要你确认 / 审批 | --yolo 或会话内 /yolo 可跳过审批(见下警告) |
| 改文件 | 检查点默认关(§11) | 先 hermes config set checkpoints.enabled true,之后可 /rollback |
| 消息网关 | 默认拒绝所有非白名单用户 | 加白名单;永远别开 GATEWAY_ALLOW_ALL_USERS |
| 记忆 / 技能写入 | 自动写入,但有去重 + 注入 / 外泄安全扫描 | 开 memory.write_approval / skills.write_approval 全审 |
--yolo:它关掉的是什么,一定要清楚
--yolo(或会话里 /yolo 切换,或环境变量 HERMES_YOLO_MODE=1)会跳过所有危险命令审批。开着的时候界面上会一直显示 ⚠ YOLO 徽标,防止你忘了自己在自动放行模式。它关掉的是"你最后一次说不的机会"——只建议用在可信的自动化 / CI 环境里,日常别开。
另外有个底:Hermes 内置一份硬编码的不可恢复命令黑名单,它在审批层之前就拦截,连 --yolo 也绕不过去。你还可以自己加一份"例外清单":
# ~/.hermes/config.yaml —— 允许 agent 干任何事,除了这些
approvals:
deny:
- "rm -rf /*"
- "curl * | bash"
你该养成的 5 个习惯
~/.hermes/.env;别在聊天里粘贴密码让它"帮你记住"。docker / ssh 后端隔离,别用 local。hermes security audit(依赖供应链审计)+ hermes doctor。别做这几件事
- 别在聊天软件里用 sudo——网关没有交互终端,危险命令的确认会退化成"回一句 yes";官方 FAQ 明确不建议在聊天软件(IM,即即时通讯工具)里 sudo;
- 别把"能删库 / 动生产环境"的任务丢给全自动 cron——定时任务无人盯着的时候更危险;
- 别无脑同意它的每一步——每次确认前扫一眼它要干什么(
rm、curl | bash、连陌生服务器都要警惕); - 别以为它"全知"——模型会幻觉(一本正经地编错事实);重要结论让它给出来源(网页工具会带链接),重要改动自己复核。
它值不值得装?和同类工具对照
先说它不适合谁:只想"开箱即答"、完全不碰配置的人;重度依赖云服务、不想在自己电脑跑常驻进程的人;想要"大厂保修式稳定"的人——这是开源项目,迭代很快,文档偶有漂移。
| 你的需求 | 更合适的工具 | Hermes Agent 的位置 |
|---|---|---|
| 随手问、快速写作、临时查资料 | 网页版 ChatGPT / Claude | 它也能做,但你要付安装成本——网页版零安装 |
| 在项目里改代码、跑测试、提交 Git | Claude Code / Codex | 它也能改,但那是"顺带";工程能力不是它的重点 |
| 一个跨会话记得我、能主动找我的长期助理 | Hermes Agent | 这正是它的主打:记忆 + 技能 + 定时 + 消息投递 |
| 定时把结果发到我手机上 | Hermes Agent(cron + gateway) | 网页版做不到:它在云端、不认得你的微信 / Telegram |
| 数据完全不外发 | Hermes Agent + 本地模型 | 可以做到,但模型能力弱一些 |
隐私:数据到底去了哪
- 官方称工具无遥测:对话、记忆、技能默认都留在本地
~/.hermes/,没有行为回传; - 但只要用了云模型 API,你的对话就会发给对应模型厂商(Nous Portal / Anthropic / OpenAI / OpenRouter 等),受它们各自的隐私政策约束;
- 要绝对本地:用本地模型(Ollama 或内置 llama.cpp),完全不把你的内容发到网上——代价是模型能力弱一些。
13出问题了去哪看:先看症状,再对号入座
下面是新手最高频的坑,按"症状 → 原因 → 解法"整理。遇到问题先查这张表;查不到再看日志 ~/.hermes/logs/errors.log 和 ~/.hermes/logs/gateway.log,最后跑 hermes doctor --fix。别急着卸载重装。
| 症状 | 可能原因 | 解法 |
|---|---|---|
hermes: command not found | 装完没刷新 shell,或终端还是旧会话 | source ~/.zshrc,或重开终端 |
| Telegram / Discord 的 bot 收到消息不回话 | 没把自己加进白名单(网关默认拒绝所有用户) | 确认 TELEGRAM_ALLOWED_USERS=你的ID;再看 tail -f ~/.hermes/logs/gateway.log |
| 会话变长后"变笨了"或答得慢 | 上下文塞满了 | /compress 压缩;或 /new 开新会话、hermes -c 续旧会话 |
| 第一次跑就报 Error 400 / 模型不存在 | 模型名写错,或这个 key 没有该模型权限 | hermes config show 核对;重跑 hermes model,从精选目录里选 |
会话里 /model 换不到想用的模型 | 那个提供商还没配置好 | 回终端 hermes model 先加 provider + key,再开新会话切换 |
| 用 OpenAI 的 key 配 OpenRouter 时报错 | key 不对家 | key 必须和 provider 匹配;别混用 |
| agent"手脚笨"、老调错工具或反复失败 | 选成了聊天型模型(典型是 Hermes-4) | 换 tool-call 调优过的通用模型;并确认模型上下文 ≥ 64K |
| cron 建的时候报时间格式错 | 时间参数写了自然语言 | 官方不支持 daily at 9am,改成 0 9 * * * |
| cron 跑出来的结果驴唇不对马嘴 | 提示词不自包含 | cron 在全新会话里跑,把要求(搜什么 / 几条 / 什么格式)全写进提示词 |
| 定时任务从不触发 | 网关没常驻 / 没启动 | hermes gateway install 再 hermes gateway start;用 hermes gateway status 确认 |
| 新装的技能好像没生效 | 当前会话没重载技能 | /reset 开新会话(技能需在新会话里加载) |
| 更新后配置报错 / 缺配置项 | 上游加了新的配置项 | hermes config check → hermes config migrate → hermes doctor --fix |
| 它改了文件但想撤销 | 检查点没开(默认关) | 先开 checkpoints.enabled 才能 /rollback;没开就只能靠 git 或备份 |
报错全是英文、看不懂怎么办
三个动作,按顺序来:
- 把红色报错原文整段贴回对话,让它自己解释(或贴给别的 AI)——它对自己的报错最熟;
- 看日志定位:网关问题看
tail -f ~/.hermes/logs/gateway.log,其他错误看~/.hermes/logs/errors.log; - 先跑体检:
hermes doctor --fix+hermes config check——多数"启动不起来 / 配置失效"的问题它能自动修。
两个不同的人(或两个 agent)用同一个 profile,会让记忆和画像互相污染。分开用 hermes -p <名字> 开不同 profile(§05)。
14速查表:平时照着敲
把全文最重要的命令压缩成几张表,读到第二遍时直接查这里,不用重读全文。
安装 / 更新 / 维护
| 目的 | 命令 | 备注 |
|---|---|---|
| 安装(macOS / Linux / WSL2) | curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash | 不需要 sudo |
| 让当前终端识别 hermes | source ~/.zshrc | bash 用户用 ~/.bashrc |
| 进入聊天 | hermes / hermes --tui | --tui 是官方推荐界面 |
| 一键更新 / 只看更新 | hermes update / hermes update --check | 更新会自动备份并重启网关 |
| 体检 / 自动修复 | hermes doctor / hermes doctor --fix | 出问题第一站 |
| 看版本 | hermes --version | — |
| 卸载(可保留家目录) | hermes gateway stop → hermes uninstall | 会问你要不要保留 ~/.hermes/ |
首次配置与模型
| 目的 | 命令 | 备注 |
|---|---|---|
| 最快路径(Nous Portal) | hermes setup --portal | 模型 + 四个网关工具一次配好 |
| 完整向导 / 最小向导 | hermes setup | 可选 Full Setup 或 Blank Slate |
| 验证 Portal 状态 | hermes portal info | 能看到各工具的路由 |
| 换默认模型(终端) | hermes model | 只影响新会话 |
| 读 / 写配置项 | hermes config get model.default / hermes config set … | 自动分流 .env 与 config.yaml |
| 一次性问答(脚本用) | hermes -z "法国首都是哪?" | 只输出最终答案 |
| 远程机器登录 Portal | ssh -N -L 8642:127.0.0.1:8642 用户@主机 或 hermes auth add nous --type oauth | 没浏览器时用 |
会话内斜杠命令
| 命令 | 作用 | 备注 |
|---|---|---|
/new(别名 /reset) | 开新会话(清历史) | 加 now / -y 跳过确认 |
/model 名字 | 切换模型 | 只能切已配置的 provider |
/personality 名字 | 临时换人格 / none 复位 | 固定风格应写 SOUL.md |
/compress | 压缩上下文 | 会话太长变慢时用 |
/rollback | 回滚文件快照 | 需先开 checkpoints |
/usage | 看 token 用量与费用 | — |
/skills · /learn <内容> | 管技能 · 把经验写成技能 | 新技能要 /reset 才生效 |
/memory | 查看 / 审批记忆写入 | 配合 write_approval |
/journey | 看技能 + 记忆的时间线 | 别名 /learning |
/bg 提示词 · /stop | 后台跑任务 · 中断 | 长任务用 /bg |
/cron add "时间" "提示词" | 建定时任务 | 可加 --deliver / --name |
/sethome | 把当前聊天设为默认投递目标 | 在消息平台里用 |
能力命令(终端)
| 目的 | 命令 | 备注 |
|---|---|---|
| 管技能 | hermes skills list / browse / install openai/skills/k8s | 安装参数是 来源/路径 形式的 slug |
| 管定时任务 | hermes cron list / create / edit / run <id> / pause / resume / remove <id> | 先 run 手测再挂 |
| 管消息网关 | hermes gateway setup / start / status / stop;gateway install 装常驻服务 | 定时投递必须先常驻 |
| 看会话 / 用量 | hermes sessions · hermes insights | insights 默认近 30 天 |
| 看记忆 / 技能时间线 | hermes journey list / hermes journey delete <节点> | 技能归档可恢复、记忆真删 |
| 一次性发消息通知 | hermes send --to telegram "文案" | 不走 agent、不花 token |
| 接第三方工具 | hermes mcp / hermes mcp install n8n / hermes mcp serve | GitHub、数据库、n8n 都走这里 |
| 管检查点 | hermes checkpoints | 查看 / 清理快照目录 |
| 安全审计 | hermes security audit | 依赖供应链审计 |
| 看日志 | hermes logs 或 tail -f ~/.hermes/logs/gateway.log | 排错必备 |
15术语表:遇到不认识的词回来查
第三列回答的是"为什么重要 / 何时用 / 别当什么用"——不是翻译。
| 术语 | 定义(人话) | 为什么重要 / 何时用 · 别当什么用 |
|---|---|---|
| Agent(代理) | 能连续自主执行多步任务的 AI 程序:查资料 → 决定 → 调工具 → 验证 → 再决定 | Hermes Agent 就是 agent 本体;和"你一句它一段"的聊天机器人是两种东西——别拿聊天的期待去要求它 |
| LLM / 模型("大脑") | 负责理解和生成文本的大语言模型 | agent 的智力来源;选错了它会"手脚笨"——做 agent 请选 tool-call 调优过的通用模型,别选 Hermes-4 这类聊天模型 |
| Provider(提供商) | 提供模型 API 的公司 / 平台,如 Nous Portal、OpenRouter、OpenAI、Anthropic | 决定你连谁、付谁钱、key 挂哪;配置入口是 hermes model——key 必须和 provider 对家 |
| API key(密钥) | 标识你身份的字符串,用来调用某个平台的 API | 放 ~/.hermes/.env,别贴进聊天;OpenAI 的 key 不能用于 OpenRouter(不对家就报错) |
| OAuth(授权登录) | 点浏览器授权即可登录、不用填密码或 key 的机制 | Portal 一键登录用的就是它;凭据存 auth.json,比手动 key 省心——但它也会过期,不是一劳永逸 |
| 上下文(Context) | 本次对话模型"看得见"的全部内容(历史 + 提示 + 工具说明) | 决定它记不记得你在聊啥;过长会变笨 / 变贵——用 /compress 或开新会话;它不是长期记忆(长期记忆在 memories/) |
| Token(令牌) | 模型计费与长度的最小单位,约等于"半个到一个词" | 关系到费用与上下文上限;/usage、hermes insights 看消耗——它不是"给你背的句子",别逐字去算 |
| Tool-call(工具调用) | 模型输出"我要调用某工具 + 参数"的结构化行为 | agent 干活全靠它(读文件 = 调工具);"tool-call 调优"就是专门训练这种输出——Hermes-4 没怎么练,所以不适合当大脑 |
| CLI / TUI | CLI = 纯文字终端界面;TUI = 更现代、带补全和鼠标的终端界面 | hermes 是 CLI,hermes --tui 是官方推荐的 TUI——两者共用会话和配置,习惯哪个用哪个 |
| Cron(定时任务) | 按时间表自动跑任务的机制,如"每天 9 点做 X" | 让 agent"主动找你"的关键;时间参数请写 0 9 * * * 这类表达式——自然语言时间官方不支持(除非你是在对话里让 agent 替你翻译) |
| Session(会话) | 一段有连续上下文的对话 | 记忆以会话为单位推进;/new 清零、-c 续上——别把"会话记忆"当"长期记忆",后者在 memories/,跨会话生效 |
| Skill(技能) | 按需加载的"怎么干活"知识文档,一个 SKILL.md | 它是 agent 的"肌肉记忆",反复做的事沉淀成技能越用越省;装了要 /reset 才在当前会话生效,别以为装失败 |
| Memory(记忆) | 跨会话保存的"关于你和环境的事实"(MEMORY.md / USER.md) | 让它在每轮都"自带"对你的了解;有容量上限、必须精简——它是精选摘要,不是聊天备份 |
| SOUL.md | agent 的"身份嗓音"主文件(我是谁、怎么说话) | 跟人走、跨项目生效;项目约定放 AGENTS.md——别把工程细节写进 SOUL.md,那会让所有项目都受影响 |
| Personality(人格) | 临时切换的语气预设(concise / technical / teacher…) | /personality 只是会话级临时覆盖;想要固定风格请写 SOUL.md——它是覆盖层,不是档案 |
| Profile(分身) | 相互隔离的一套 Hermes 实例(各自的记忆 / 技能 / 配置 / 会话) | 一人一个、公私分离用;别两个人共用一个 profile,记忆会互相污染 |
| Gateway(消息网关) | 唯一常驻后台的进程,负责连各聊天平台并触发 cron | 要在 Telegram 里随叫随到 / 定时投递,必须让它常驻(gateway install)——关掉终端服务就没了 |
| Home channel(家庭频道) | 用 /sethome 指定的"常用投递目的地" | 把常用群设成 home,简报就不会投丢;它是投递目的地,不是权限开关 |
| 白名单(ALLOWED_USERS) | 声明"谁可以用"的用户 ID 列表 | 网关默认拒绝所有人——bot 不回话先查它;安全上务必保留,别开"允许所有人" |
| Checkpoint(检查点) | 改文件前自动拍的工作目录快照 | 让"让 AI 改代码"可反悔(/rollback);默认是关的、要主动开,而且它是保险丝、不等于替代你自己的备份 |
--yolo | 跳过危险命令审批的模式 | 只用于可信的自动化 / CI;日常别开——它关掉的是"你最后一次说不的机会" |
| MCP | 让 AI 连外部系统(GitHub / 数据库 / 自动化平台)的开放协议 | 要让它操作第三方工具时用 hermes mcp;它是"插座",接什么、放行哪些由你挑 |
| FTS5 / 会话搜索 | 对历史会话做全文检索的数据库技术 | 让它"翻旧账"靠它(存 SQLite);返回真实消息原文——它是检索,不是推理回忆,细节依赖当时是否真聊过 |
| Delegation(子代理委派) | 把子任务派给相互隔离的子 agent 并行处理 | 大任务加速用;子 agent 零父级记忆——必须把背景和目标写进工单,否则它一定跑偏 |
| Honcho(可选) | 外部"用户建模"记忆后端,异步推理你的偏好与习惯 | 想让"懂你"再进一步时启用(hermes memory setup);默认关,而且它要额外的 key 和成本 |
| Tool Gateway | Nous Portal 订阅里打包的四个工具:网页搜索、图片生成、语音合成、云端浏览器 | 走它就不用分别申请各家 key;但它绑在 Portal 订阅上——不订阅就得自己配别家 |
16你大概还会问这些
hermes import-agent claude-code(或 codex)导入 Claude Code / Codex 的配置、技能和记忆。hermes model 的精选目录里挑。~/.hermes/。但注意:只要用云模型 API,对话文本就会发给对应厂商。要完全本地,改用本地模型。~/.hermes/memories/(MEMORY.md / USER.md),纯文本可手改;完整节点用 hermes journey list 看、hermes journey delete <节点> 删。技能节点删除是"归档可恢复",记忆块删除是真删。SOUL.md。hermes gateway stop,再 hermes uninstall(它会问你要不要保留 ~/.hermes/ 数据)。想连数据一起清,选不保留,或手动删 ~/.hermes/ 与 ~/.local/bin/hermes。走之前建议先 hermes backup 备份整个家目录。hermes --version 看当前版本;hermes update --check 看落后多少(只比较、不改文件);想更就 hermes update——它会先自动备份,再重启网关。这个项目迭代很快(仓库以 main 分支实时推进),建议隔段时间刷一次。docker / ssh 后端还能当隔离手段。远程机器没有浏览器时做 Portal 登录,用 SSH 端口转发(ssh -N -L 8642:127.0.0.1:8642 用户@主机)或设备码登录(hermes auth add nous --type oauth)。想让它在服务器上"常驻待命",就装成 gateway 服务,然后在手机上找它。/yolo 或启动时加 --yolo 可跳过危险命令审批(代价是你失去最后一道确认,建议只在可信的自动化里用);另一个更安全的思路是别让它执行高风险命令,改用只读任务,或者切 Docker 后端隔离。~/.hermes/memories/、skills/),随时可看、可删、可审批;它每次动手仍受模型能力 + 审批 + 权限的约束。把它当"能力很强的工具"而不是"有自我意志的人";需要信任边界时就用沙箱后端 + 白名单 + write_approval。99一句话总结
Hermes Agent 是 Nous Research 开源的"自改进型"本地 AI 助手:一行装好、用 hermes setup --portal 或手动接一个通用模型就能聊;它的灵魂是跨会话记忆(记住你是谁)+ 技能沉淀(记住怎么干)+ cron 定时与消息网关(主动找你)——记住别拿 Hermes-4 当大脑、别对能执行终端的 bot 开放所有人、检查点默认是关的,然后就可以放心让它越用越懂你。
17参考来源与时效说明
本文在 2026-09-13 逐条核对了以下官方源。命令与配置取自官方文档与仓库 README 的当日快照。
仓库与官网
- GitHub 仓库(定位、特性表、Quick Install):
https://github.com/NousResearch/hermes-agent - 官方文档站根:
https://hermes-agent.nousresearch.com/docs/ - 官网 / 安装脚本:
https://hermes-agent.nousresearch.com/·/install.sh·/install.ps1 - 机器可读文档索引与全文:
/docs/llms.txt·/docs/llms-full.txt(本文核对所用的全文快照,约 4.3MB)
入门与安装
- 安装:
docs/getting-started/installation(含 Windows 原生、Termux、Nix) - 快速开始:
docs/getting-started/quickstart(64K 上下文最低要求、三种 setup 模式) - 更新与卸载:
docs/getting-started/updating - 平台支持:
docs/getting-started/platform-support
使用与参考
- CLI 命令参考:
docs/reference/cli-commands;斜杠命令:docs/reference/slash-commands - 配置:
docs/user-guide/configuration;模型配置:docs/user-guide/configuring-models;本地模型:docs/user-guide/local-models - Nous Portal 指南:
docs/integrations/nous-portal;Tool Gateway:docs/user-guide/features/tool-gateway - 会话:
docs/user-guide/sessions;Profiles:docs/user-guide/profiles
核心特性
- Skills:
docs/user-guide/features/skills;记忆:docs/user-guide/features/memory;Honcho:docs/user-guide/features/honcho;Curator:docs/user-guide/features/curator - Cron:
docs/user-guide/features/cron+docs/guides/automate-with-cron - 委派:
docs/user-guide/features/delegation(并发默认值的两处不同口径就出在这里与配置参考页) - 检查点与回滚:
docs/user-guide/checkpoints-and-rollback - Hooks / Personality / Context Files / MCP:
docs/user-guide/features/hooks、…/personality、…/context-files、…/mcp - 安全:
docs/user-guide/security(危险命令审批、YOLO 模式、用户授权)
消息网关
- 消息总览:
docs/user-guide/messaging;Telegram:docs/user-guide/messaging/telegram;WhatsApp:docs/user-guide/messaging/whatsapp - 用户授权与配对:
docs/user-guide/messaging的 user authorization 一节(GATEWAY_ALLOW_ALL_USERS警告的出处) - 脚本输出直发平台:
docs/guides/pipe-script-output
本文校对于 2026-09-13,依据上述官方源当天的快照。Hermes Agent 迭代很快(仓库以 main 分支实时推进),以下内容请以"你当前安装的版本 + 官方最新文档"为准:
① 文中出现的具体模型名与版本号(如 anthropic/claude-sonnet-4、anthropic/claude-opus-4.7、google/gemini-2.5-flash)是文档当时所写,随官方目录变动;
② 默认并发数、白名单变量名、命令子项等细节可能小幅调整。本文已记录一处官方文档内部不一致(委派并发默认值:配置参考页写 3,delegation 功能页写 10)——遇到时以你本机实际值或最新文档为准;
③ 第 11 节的检查点默认值、第 13 节的诊断表,是按官方文档当日状态写的。旧版资料(包括本页的前一版本)常把检查点写成"改文件前自动快照、可随时回滚",那是不准确的:checkpoints.enabled 默认 false,要用得先开;
④ 本文命令思路经 macOS / zsh 验证;Windows 原生以官方 Windows 指南为准。遇到报错,把红色错误原文发给 AI 即可对症调整。