🟡 进阶

Hermes Agent 怎么用

从一行命令装好,到让它记住你、把重复劳动沉淀成技能、到点上在手机收它的定时简报。读完你能判断它值不值得装,并且照着本文把它跑到能干活的水平。

更新于 2026-09-13

本文校对于 Hermes Agent @ main(2026-09-13)· 官方源:hermes-agent.nousresearch.com/docs

3
行命令跑起来
64K
模型上下文最低门槛(token)
21+
可接入的消息平台
300+
Portal 订阅下的模型数

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 分钟

最短上手路径(照着敲就行)

这是本文推荐给完全新手的一条路。每一步都有对应的详细小节,卡住了再跳过去看。

0
先确认你要不要它(别跳过)

如果你只是想"写代码更快",Claude Code / Codex 更对口;Hermes 的长处是跨会话记忆 + 定时主动干活 + 手机远程。想清楚了再往下(§12 有对照表)。

1
一行命令装好,刷新终端

curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash,然后 source ~/.zshrc。不要 sudo。

2
一条命令配好"大脑"和工具

hermes setup --portal —— 浏览器里 OAuth 登录一次,模型和网页搜索 / 画图 / 语音 / 浏览器工具全通。这是官方推荐的最省事路径。

3
跑通"它真的会记住你"

聊上、让它读一个文件写一个新文件、让它"记住一条偏好"、再 /new 开新会话问它"你对我了解多少"。四步做完你就懂了它的底子(§02)。

4
把一件你每周都重复的事交给它

让它做完之后说一句"把刚才这套流程存成技能"。下次一句话就能复用(§08)。

5
接上手机,再挂一个定时任务

接 Telegram(或扫码接 WhatsApp),然后挂一个每天早上的简报。到这一步它才算"主动找你"(§09、§10)。

读完你应该能(拿这张清单对账)

✅
能用大白话讲清它和聊天机器人差在哪
不看本文,用三五句话说清"它是什么、解决什么问题"——尤其是"它为什么能跨会话记住你"。
🧭
能替自己的电脑做三个决定
要不要装、用哪个模型当大脑、要不要开消息网关——每个决定都知道代价是什么。
🔧
能自己接上第一个消息平台
从 BotFather 建 bot 到配白名单到验证能回话,全程不看别人的博客。
🩺
能自己排掉最常见的几个故障
命令找不到、bot 不回话、会话变笨、cron 不触发、技能不生效——都能自己定位。
📖 本文的一个约定:出现 $ 的地方都是终端命令

$ 本身不用复制。终端是 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
📖 为什么装完要 source 一下?

安装器把 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,这是官方推荐的入口。一条命令自动做五件事:

1
浏览器 OAuth 登录

自动打开 portal.nousresearch.com,你用账号授权登录即可——完全不需要任何厂商 API key。

2
保存登录凭据

登录令牌(refresh token,就是"下次不用重新输密码"的长期凭证)写进 ~/.hermes/auth.json。

3
把 Nous 设为模型提供商

在 ~/.hermes/config.yaml 里写入 model.provider: nous。

4
自动挑一个"能干的默认模型"

它从该提供商的精选 agentic 模型目录里挑,而不是把几百个模型全列给你。注意它挑的是通用 agent 模型,不是自家 Hermes-4——原因见 §06。

5
打开 Tool Gateway

网页搜索、图片生成、语音合成(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  # 更现代的终端界面(官方推荐,支持鼠标选择、弹层)
💡 不想走 Portal?三条手动路径也很快

① 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/.envAPI key、bot token 等机密(不进 config.yaml)手动加密钥时
~/.hermes/auth.jsonOAuth 登录凭据(Nous Portal 等)登录状态出问题时
~/.hermes/SOUL.mdagent 的"身份人格"主文件(我是谁、我怎么说话)想改它的固定语气
~/.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 的"嗓音"

/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.mdagent 身份,不参与上面这套竞争永远加载,占系统提示第一格

所有被加载的上下文文件都有字数上限(默认 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 分开跑
⚠️ 一个 profile 只给一个人(或一个 agent)用

官方原文:"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 Portalhermes 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 系列(见上一小节)。

配置动作一览

⚠️ 新手三个高频翻车点

① 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),它会写进常驻记忆。
🔍
让它翻旧账
说"我们上周讨论过的那个 XX 方案,把结论找回来"——它会用会话搜索工具把历史捞回来。
🗂️
自己看 / 删记忆
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 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" "提醒我看构建结果"
终端 CLIhermes cron create "every 2h" "检查服务器状态";带技能版 hermes cron create "every 1h" "总结新的 feed" --skill blogwatcher
纯自然语言(在对话里说)直接说"每天早上 9 点去 Hacker News 找 AI 新闻,总结后发我 Telegram"——agent 会自己调用 cron 工具建好

时间怎么表达(重要)

🚫 官方明确不支持自然语言时间

官方 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 的写法

管理命令 + 一个完整可抄的流程

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、共享同一套记忆和技能。

Telegram / 飞书 / WhatsApp…
你在聊天软件里发消息
→
Gateway
唯一常驻后台进程
→
同一个 Hermes
共享记忆 · 技能 · 模型
→
回复 / cron 投递
回到你的聊天

安全默认:先看懂"白名单"

🚫 默认拒绝所有人

官方 messaging 页原文:"the gateway denies all users by default as a safety measure"。陌生用户私聊你的 bot,只会收到一个一次性配对码。新手最常见的问题是"bot 不回话"——十有八九就是没把自己加进白名单。

所以配置任何平台,都要显式声明"谁可以用"。白名单写在 ~/.hermes/.env 里,格式是逗号分隔的用户 ID。

动手:把 Hermes 接进 Telegram(4 步)

1
找 Telegram 的 @BotFather 建 bot

在 Telegram 里搜 @BotFather → 发 /newbot → 起一个显示名 + 一个以 bot 结尾的用户名,它会回你一串 API token(能让程序以这个 bot 身份说话的密钥)。

2
把 token 和自己的 ID 写进 ~/.hermes/.env
TELEGRAM_BOT_TOKEN=123456789:ABCdefGHIjklMNOpqrSTUvwxYZ
TELEGRAM_ALLOWED_USERS=你的数字ID

不填 ALLOWED_USERS 就谁都连不上。怎么拿你的数字 ID:在 Telegram 里给 @userinfobot 发一条消息,它会告诉你。

3
启动网关
hermes gateway          # 前台跑,先确认能连上
hermes gateway status   # 看状态

想要开机自启、后台常驻,先 hermes gateway install(装成 macOS 的 launchd 服务 / Linux 的 systemd 用户服务),再 hermes gateway start。

4
验证

给 bot 发条消息,正常几秒内应收到回复。若没反应,看日志:tail -f ~/.hermes/logs/gateway.log。

嫌手写麻烦?官方推荐直接跑交互向导,它会问你 bot token 和允许的 user ID,然后替你写好配置:

hermes gateway setup

在聊天软件里怎么用

没 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,每个有独立的上下文和终端会话,可以同时处理各自的子任务。关键点:

⚠️ 官方文档内部有个数字不一致,两个都告诉你

配置参考页写的是"并发默认 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_codedelegate_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 个习惯

🔑
别让它碰密钥
API key 只放 ~/.hermes/.env;别在聊天里粘贴密码让它"帮你记住"。
🗑️
不想碰的目录别丢给它
敏感 / 重要目录先想清楚再让它进;它按你的授权干活,不是超人。
🐳
重要场合用沙箱后端
对不信任的目录 / 任务,切 docker / ssh 后端隔离,别用 local。
🧯
网关只对可信的人开放
坚持白名单 + 配对码;永远别对能执行终端的 bot 开"允许所有人"。
🩺
定期体检
有疑虑就跑 hermes security audit(依赖供应链审计)+ hermes doctor。

别做这几件事

它值不值得装?和同类工具对照

先说它不适合谁:只想"开箱即答"、完全不碰配置的人;重度依赖云服务、不想在自己电脑跑常驻进程的人;想要"大厂保修式稳定"的人——这是开源项目,迭代很快,文档偶有漂移。

你的需求更合适的工具Hermes Agent 的位置
随手问、快速写作、临时查资料网页版 ChatGPT / Claude它也能做,但你要付安装成本——网页版零安装
在项目里改代码、跑测试、提交 GitClaude Code / Codex它也能改,但那是"顺带";工程能力不是它的重点
一个跨会话记得我、能主动找我的长期助理Hermes Agent这正是它的主打:记忆 + 技能 + 定时 + 消息投递
定时把结果发到我手机上Hermes Agent(cron + gateway)网页版做不到:它在云端、不认得你的微信 / Telegram
数据完全不外发Hermes Agent + 本地模型可以做到,但模型能力弱一些

隐私:数据到底去了哪

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 或备份

报错全是英文、看不懂怎么办

三个动作,按顺序来:

  1. 把红色报错原文整段贴回对话,让它自己解释(或贴给别的 AI)——它对自己的报错最熟;
  2. 看日志定位:网关问题看 tail -f ~/.hermes/logs/gateway.log,其他错误看 ~/.hermes/logs/errors.log;
  3. 先跑体检:hermes doctor --fix + hermes config check——多数"启动不起来 / 配置失效"的问题它能自动修。
⚠️ 一个隐藏坑:多人共用一个 profile

两个不同的人(或两个 agent)用同一个 profile,会让记忆和画像互相污染。分开用 hermes -p <名字> 开不同 profile(§05)。

14速查表:平时照着敲

把全文最重要的命令压缩成几张表,读到第二遍时直接查这里,不用重读全文。

安装 / 更新 / 维护

目的命令备注
安装(macOS / Linux / WSL2)curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash不需要 sudo
让当前终端识别 hermessource ~/.zshrcbash 用户用 ~/.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 "法国首都是哪?"只输出最终答案
远程机器登录 Portalssh -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 insightsinsights 默认近 30 天
看记忆 / 技能时间线hermes journey list / hermes journey delete <节点>技能归档可恢复、记忆真删
一次性发消息通知hermes send --to telegram "文案"不走 agent、不花 token
接第三方工具hermes mcp / hermes mcp install n8n / hermes mcp serveGitHub、数据库、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 / TUICLI = 纯文字终端界面;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.mdagent 的"身份嗓音"主文件(我是谁、怎么说话)跟人走、跨项目生效;项目约定放 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 GatewayNous Portal 订阅里打包的四个工具:网页搜索、图片生成、语音合成、云端浏览器走它就不用分别申请各家 key;但它绑在 Portal 订阅上——不订阅就得自己配别家

16你大概还会问这些

Hermes Agent 免费吗?到底要花什么钱?
工具本身免费且开源(MIT 协议)。要花钱的是"大脑":云模型 API 按用量计费(或 Nous Portal 订阅),本地模型则免费但要吃你电脑的显存 / 内存。
一定要用 Nous Portal 吗?
不必。它只是官方推荐的"最省事路径"——一个订阅覆盖模型加四个 Tool Gateway 工具。你也可以只用 OpenRouter、Anthropic、OpenAI,甚至本地 Ollama。
它和 Claude Code / Codex 有什么区别?能一起用吗?
那两位是"专注改代码的编程代理";Hermes Agent 是更宽泛的"通用自改进助手",也能改代码,但重点是跨会话记忆、技能沉淀、定时与消息投递。它们不冲突,按任务挑工具即可。Hermes 甚至能 hermes import-agent claude-code(或 codex)导入 Claude Code / Codex 的配置、技能和记忆。
为什么官方建议别拿 Hermes-4 当模型?
Hermes-4-70B / 405B 是"聊天 / 推理模型",未针对工具调用调优(官方原话 "not tool-call-tuned… struggle with multi-step agent loops")。做 agent 要选通用 agentic 模型,从 hermes model 的精选目录里挑。
它会不会偷看 / 上传我的数据?
官方称无遥测、对话与记忆默认存本地 ~/.hermes/。但注意:只要用云模型 API,对话文本就会发给对应厂商。要完全本地,改用本地模型。
记忆存在哪?我能看 / 删吗?
在 ~/.hermes/memories/(MEMORY.md / USER.md),纯文本可手改;完整节点用 hermes journey list 看、hermes journey delete <节点> 删。技能节点删除是"归档可恢复",记忆块删除是真删。
我不会写代码,能玩转它吗?
能。本文所有步骤都是复制粘贴级别。你不写代码,它写。你要做的是三件事:会打开终端、会读英文报错并贴回给它、以及每次它动手前瞄一眼在干什么。真正的前提是你想要一个"越用越懂你"的 AI 助手。
它支持中文吗?
支持——模型本身多语种;想让回复稳定中文,可以在第一次对话让它"记住"这个偏好(§02 第 3 步),或者直接写进 SOUL.md。
装坏了 / 想完全卸载怎么办?
先 hermes gateway stop,再 hermes uninstall(它会问你要不要保留 ~/.hermes/ 数据)。想连数据一起清,选不保留,或手动删 ~/.hermes/ 与 ~/.local/bin/hermes。走之前建议先 hermes backup 备份整个家目录。
怎么知道是不是最新版 / 要不要更新?
hermes --version 看当前版本;hermes update --check 看落后多少(只比较、不改文件);想更就 hermes update——它会先自动备份,再重启网关。这个项目迭代很快(仓库以 main 分支实时推进),建议隔段时间刷一次。
它能跑在服务器 / VPS / 远程机器上吗?
可以,官方甚至专门提过"跑在 5 美元的 VPS 上"。同一行命令装到 Linux 服务器即可;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。
提示词到底该怎么写才对?
一句话原则:把"背景 + 目标 + 交付物格式"写全。对比一下就明白:「帮我整理一下文件」(它只能猜)对比「读桌面上 销售.csv,按"产品线"列分组求和,输出一张 Markdown 表格存成 report.md,并在回复里打印每个产品线的总额」。后者不仅更准,也更容易让你验证它做对没有。

99一句话总结

🎯 核心要点

Hermes Agent 是 Nous Research 开源的"自改进型"本地 AI 助手:一行装好、用 hermes setup --portal 或手动接一个通用模型就能聊;它的灵魂是跨会话记忆(记住你是谁)+ 技能沉淀(记住怎么干)+ cron 定时与消息网关(主动找你)——记住别拿 Hermes-4 当大脑、别对能执行终端的 bot 开放所有人、检查点默认是关的,然后就可以放心让它越用越懂你。

17参考来源与时效说明

本文在 2026-09-13 逐条核对了以下官方源。命令与配置取自官方文档与仓库 README 的当日快照。

仓库与官网

入门与安装

使用与参考

核心特性

消息网关

📌 证据边界与时效说明

本文校对于 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 即可对症调整。

⌂