Agent工坊

【Agent工坊】Hermes v0.20 六连招:零 token 直控终端

8 月 3 日,NousResearch 发布了 Hermes Agent v0.20.0,代号「Herald」。这个版本体量惊人:相对 v0.19.0 累计约 3650 个提交、约 1400 个合并 PR、关掉约 1200 个 issue,650 多位贡献者参与。8 月 13 日又打了一个 v0.20.1 补丁标签,把这十天里 1444 个提交、656 个 PR 固化给 Docker 镜像和托管部署用。

这个大版本的内容很满:能实时对话的语音模式、Agent 之间的 A2A v1.0 协议、带签名验签的出站 Webhook、可溯源引用的事实核查、桌面端的插件 SDK……但对一人公司来说,最实用、最快见效的,是那块最容易被忽略的升级——CLI 命令全家桶。

为什么说它最实用?因为日常操控 agent 有三个高频痛点:第一,跑个 shell 命令要让模型「先想一步」再调工具,白烧 token;第二,想看改了哪些文件、上下文被什么占满,都得切出终端自己敲 git 命令,打断心流;第三,上下文管理长期是玄学,快满了只能靠感觉。v0.20 把这三个痛点一次性补上了。

这六个命令尤其适合三类人:已经用 Hermes 跑内容流水线的单兵(每天几十次 shell 操作,省 token 立竿见影)、刚从 Claude Code 或 Codex 迁过来的开发者(import-agent 一条命令搬完存量配置)、以及要频繁接手新项目的自由职业者(/init 让交接成本归零)。哪怕你只是偶尔用 agent 干点杂活,! 命令这一个也值得你升级。

这篇文章带你逐个走一遍六个新命令,每个都附真实用法和输出示例,最后给出踩坑清单。看完你就能把 Hermes 的终端操作提速一个量级,token 成本同步往下压。

图1▲ 图1

一、升级到 v0.20:三秒钟的事

先确认你现在跑的是哪个版本,再一键升级。

hermes --version

hermes update

输出大致是这样:

Hermes Agent v0.19.1 (v2026.7.30)

Checking for updates...

Updated to v0.20.1 (v2026.8.13)

升级是幂等的,重复跑不会重复下载。升级完成后重启一次会话,新命令就全部生效了。注意升级前最好把正在跑的长任务先收尾——升级过程会重启进程,别让一个跑了一半的发布流水线被掐断。

二、`!` 命令:不耗 token 直接跑 shell

这是六个命令里最值钱的一个。语法极简:在输入框里,命令前面加一个英文叹号。

!python3 -c "import sys; print(sys.version)"

敲下去,命令立即执行,输出直接回显:

Python 3.13.1 (main, Dec 4 2024, 18:00:00) [Clang 16.0.0]

关键在于「零 token」。普通路径下,你让 Hermes 帮你跑命令,流程是:你的指令进入模型 → 模型生成 tool call → 工具执行 → 结果再回模型 → 模型组织语言回复。这一圈下来,光是「我帮你运行了 xxx,结果是 yyy」这句废话就要几十个 token。而 ! 命令把模型彻底短路掉,直接走 shell,一个字都不花在来回传话上。

适用场景一目了然:查依赖版本、看目录、改环境变量、跑测试脚本、curl 一个接口。凡是「你本来就知道要敲什么命令」的活,都该用 !,而不是让模型代劳。

举两个更具体的例子。一个是日常排查:怀疑某个 Python 包版本装错了,以前要么问 agent「帮我看看 requests 什么版本」,等它绕一圈;现在直接:

!pip show requests | head -2

回显:

Name: requests

Version: 2.32.3

另一个是发布前的例行检查。公众号发布前要测微信 stable_token 确认 IP 白名单,这个命令每天都要跑,用 ! 是最合适的:

!curl -s --noproxy '*' -X POST 'https://api.weixin.qq.com/cgi-bin/stable_token' -H 'Content-Type: application/json' -d '{"grant_type":"client_credential","appid":"xxx","secret":"xxx"}'

这类「固定动作」最适合固化成 ! 命令,甚至写成别名,敲一次就完事。进阶一点的做法,是把一组高频 ! 命令整理成自己的速查清单:发布前跑哪几个、排查时跑哪几个,贴在项目 AGENTS.md 里,以后不管是自己还是 agent 接手,都能照着执行。

三、`/diff`:不用切出去看改动

以前想看看 Hermes 这个会话到底改了哪些文件,得自己开个终端 git diff。现在直接敲斜杠命令:

/diff

输出会把变更按「暂存 / 全部 / 会话」三种口径列出来:

── Session changes ─────────────────────────

 M src/publisher.py +34 -12

 M config/settings.json +5 -2

 A scripts/deploy.sh +120

/diff 支持带参数切换口径,比如只看本次会话的改动、或者只看已暂存的改动。这个命令的价值不在「能看 diff」(git 本来就能看),而在「不离开当前上下文」。agent 正在干活,你想确认它改对了没有,一个 /diff 就能扫一眼,而不是切到另一个终端、切回来时发现自己的思路断了。

典型场景:agent 跑完一轮自动发布,改动了发布脚本、配置文件和几张图。你用 /diff 一眼确认「改的是不是预期那几个文件、有没有手滑改到不该动的地方」,这比事后翻 git log 快得多,也能及时拦下 agent 改错文件的低级事故。对在本地跑发布流水线的单兵来说,/diff 是每次发布后必做的一步确认。

四、`/context`:给上下文做个体检

长会话跑到一半,经常会有个疑问:我的上下文窗口到底被什么占满了?以前只能靠猜。现在:

/context

输出是一份上下文占用分解:

Context breakdown (128K window)

  system prompt 14.2K 11%

  tool schemas 21.6K 17%

  conversation 58.3K 46%

  memory / skills 12.8K 10%

  reserved 21.1K 16%

  ─────────────────────────────────

  used 128K 100%

这张表的价值在于「可量化」。看到工具 schema 占了 17%,你就知道是不是该精简工具集;看到 conversation 快满了,就该主动 /focus 或触发压缩。以前这些只能靠感觉,现在是一张能看懂的仪表盘。

更要紧的是,v0.20 同步把压缩逻辑做了大改:阈值可以按模型、按绝对 token 数配置;压缩从「一次性大停顿」变成「逐轮微压缩」,把成本摊薄到每一轮;还保证最近 N 条用户消息永远存活,不会把重要上下文压没了。配合 /context 这个仪表盘,上下文管理从「玄学」变成了「看表操作」——先看表,再决定是精简工具、压缩历史,还是直接开新会话。

图2▲ 图2

五、`/focus`:一键进入精简视图

上下文快满、或者你只想让 agent 别再啰嗦地回显每个步骤时,用 /focus 切到精简输出视图。

/focus

进入 focus 模式后,工具执行细节会被折叠,只保留关键结论和动作;隐藏掉的中间输出还可以按行找回,不会丢。这个设计很贴心——不是粗暴地把信息丢掉,而是「藏起来,需要时能翻回来」。

最适合的场景是后台长任务。比如你让 agent 跑一个「扫描 + 核实 + 撰写 + 发布」的全流程,中间有几十次工具调用、成堆的中间日志。在 focus 模式下,agent 在后台吭哧吭哧干活,你只看里程碑和最终结果,中间那些刷屏的日志不再淹没你。等发现某个环节不对劲,再把隐藏的行翻出来定位问题。习惯之后你会发现,focus 模式才应该是默认状态,需要看细节时再临时切回完整视图。

六、`/init`:一键生成项目的 AGENTS.md

这是给「接手新项目」或「换机器」准备的。进入一个目录后敲:

/init

Hermes 会扫描整个项目,自动生成(或更新)一个 AGENTS.md,也就是 agent 的项目说明书。生成的内容长这样:

# AGENTS.md

## Project

AI 内容发布流水线,Python + Node.js 混合栈。

## Build & Test

python3 -m pytest tests/

npm run build

## Conventions

- 草稿统一放 content/drafts/,文件名 draft-YYYYMMDD-HHMM-关键词.md

- 微信 API 一律走 curl --noproxy '*' 绕过代理

- 网站图片压缩到 1200px 宽再部署

有了这份文件,任何一个新会话、任何一个新 agent 接进来,第一眼就知道这个项目怎么跑、有哪些约定、哪些坑不能踩。相当于给项目写了一份「员工手册」,交接成本直接归零。

这里有个关键认知:AGENTS.md 不是写给模型「读一遍就忘」的,而是会被加载进上下文的持久化说明书。所以它的质量直接决定 agent 接手项目的靠谱程度。一份好的 AGENTS.md 至少要包含四块:项目是干什么的、怎么构建和测试、有哪些命名和路径约定、有哪些绝对不能踩的坑。/init 帮你把骨架搭起来,剩下的是往里填「只有你知道的隐性知识」。

七、`hermes import-agent`:把 Claude Code / Codex 配置搬过来

如果你之前用的是 Claude Code 或 Codex CLI,迁移到 Hermes 不用从零开始。一条命令搞定:

hermes import-agent --from claude-code

输出会告诉你搬了什么:

Imported from claude-code:

  ✓ CLAUDE.md → AGENTS.md (merged)

  ✓ .claude/settings.json → profiles/default/config.yaml (merged)

  ✓ 12 个自定义斜杠命令

  ✓ MCP server 配置

这一步的价值在于「存量资产不浪费」。很多一人公司从 Claude Code 一路用过来,攒了一堆 CLAUDE.md 约定、斜杠命令和 MCP 配置,手动重写在 Hermes 里要大半天,import-agent 一条命令搬完,还自动合并冲突字段。同理,--from codex 可以把 Codex CLI 的那套配置搬过来。

八、别忘了还有一个:中途纠偏

严格说这不属于「CLI 命令」,但它和提速高度相关,值得一提。以前 agent 跑偏了方向,你得 /stop 然后重新解释一遍,前功尽弃。v0.20 加了「redirect」——agent 正在干活的时候,你直接敲一句纠正,当前这一轮就会被重定向:进行中的工作保留,原始 prompt 保留,agent 带着你的新指引原地转向。

这个机制的价值在长任务里尤其明显。一个跑了十分钟的发布流程,走到一半你发现插图风格不对,以前是全部推倒重来,现在一句话纠回来,前面十分钟没白跑。配合 Ctrl+S 把写了一半的 prompt 暂存到可浏览面板,思路断了也不怕丢。

图3▲ 图3

九、六个命令怎么选:一张表

命令解决什么问题省什么
!command跑 shell 命令省 token、省一轮往返
/diff看会话改动省切出终端的时间
/context看上下文占用省盲目压缩的时间
/focus精简输出省阅读噪声的时间
/init生成项目说明省交接成本
hermes import-agent迁移旧配置省重写成本

一句话记住:跑命令用 !,看状态用 /diff/context,控输出用 /focus,接项目用 /init,搬家用 import-agent,跑偏了直接说一句纠正。

十、实战:六招串成一条日常流水线

学了六个命令,怎么落进真实的日常?给一个典型的一天:

早上开工,先 hermes update 确认版本,然后 !git status 扫一眼昨天收尾的状态。要写一篇新稿子,进项目目录敲 /init,让 agent 先读一遍项目说明书,避免它在陌生的约定里乱撞。

写作过程中,让 agent 自己跑扫描和核实脚本,用 /focus 把中间日志折叠起来,你只看结果。写累了切出去查个依赖版本,用 ! 而不是问 agent。稿子写完,用 /diff 确认 agent 只改了该改的文件,再用 /context 看一眼上下文还剩多少,决定是继续还是开新会话。

发布前,! 跑一遍 stable_token 测试确认 IP 白名单。发布后,/diff 确认网站同步文件到位。一天下来,你会发现这六个命令不是「学了就忘的花活」,而是嵌进了每个环节的肌肉记忆。

这条流水线的核心逻辑:凡是「确定性的操作」用 ! 短路模型,凡是「要看状态」用 /diff/context,凡是「长任务」用 /focus 降噪。把模型省下来,专注在真正需要判断和创作的地方——这才是 agent 时代一人公司该有的工作方式。

十一、这波提速到底省了多少

光说「更快」不够,release notes 里有几个硬数字可以量化:

第一,! 命令把一个 shell 操作从「模型一轮往返」压成「零 token」。假设你每天在 Hermes 里跑 50 次 shell 命令,每次往返哪怕只烧 200 token,一天就是一万 token。一个月就是三十万 token,这笔钱省下来,够你多跑好几轮正经的内容生成。对成本敏感的一人公司来说,这不是小数目。

第二,工具调用迭代上限从 90 拉到 500。以前长任务跑到 90 次工具调用就撞墙,必须人工重启,现在一口气能跑 500 次,长自主任务不再半路熄火。这意味着你可以放心把「扫描热点 → 核实 → 撰写 → 排版 → 发布」这种多步骤流水线交给 agent 一口气跑完,不用守在旁边等它撞墙再重启。

第三,hermes -w 冷启动从约 14 秒压到约 1.8 秒。别小看这 12 秒——你一天打开十几次,就是两分钟,一年下来就是十几个小时。冷启动快还带来一个隐性好处:你更愿意「随手开个 agent 干点小事」,而不是攒着等凑齐再干,这间接提升了 agent 的使用频率。

这三项叠加,对一个靠 agent 干活的单兵来说,是实打实的「降本 + 提速」。它不是某个炫酷功能的锦上添花,而是把日常操控的成本一点点抠下来。

再算一笔更直观的账:一个标准的「扫描热点 → 核实 → 撰写 → 排版 → 发布」内容流水线,中间至少二三十次工具调用,其中有一半是查文件、跑脚本、看版本这类确定性操作。如果这些全部改走 ! 命令,一条流水线能省下几千 token 的模型往返成本。一天一条稿子,一个月就是十几万 token——对靠内容吃饭的一人公司,这笔钱省下来就是利润。

十二、踩坑清单(务必看)

坑一:!/ 不是一回事。 叹号 ! 是「直接执行 shell,绕过模型」,斜杠 / 是「slash 命令,会进入模型处理」。想省 token 就认准 !,别在 / 上纠结。反过来说,如果你要的是「让 agent 理解意图后决定怎么操作」,那才用 /。两者混用是新手最常见的错。

坑二:/init 会覆盖你手写的 AGENTS.md。 /init 是「生成或更新」,如果你在自动生成的 AGENTS.md 里手写了一大段精修约定,再跑一次 /init 可能把结构重新生成。正确做法是先把自定义内容备份出来,或者接受「以 /init 生成为底、手动增量编辑」的流程,别反复跑。

坑三:import-agent 的配置合并不是无脑覆盖。 迁移时 Claude Code 的 CLAUDE.md 和 Hermes 已有的 AGENTS.md 会走合并逻辑,但如果两边都有同名自定义斜杠命令或 MCP server,合并结果可能和预期不同。迁移完先跑一遍 hermes tools/context 各看一眼,确认命令和工具数量对得上再开工。

坑四:长任务跑 500 次迭代,别忘了 token 预算。 迭代上限放开到 500 是好事,但也意味着一个失控的 agent 可以烧掉 500 轮的 token 才停下来。配合前面 v0.20 的连续拒绝熔断和预算护栏一起用,别让「跑得更久」变成「烧得更多」。

坑五:/focus 是折叠不是删除,但别误以为信息丢了。 进入 focus 模式后看到输出变少,新手容易以为 agent 卡住或漏了步骤。其实只是中间输出被折叠了,需要时可以用隐藏行恢复。先习惯一下 focus 模式下的输出节奏,再判断是不是真出了问题。

坑六:升级后老习惯可能不兼容。 v0.20 的命令体系在旧版上不存在,如果你在自动化脚本或 cron 任务里硬编码了旧版的行为路径,升级后要先回归一遍。特别是靠 cron 自动发布的一人公司,升级当晚最好盯一次发布日志,确认流水线里的调用方式在新版下没有变化。

十三、总结

Hermes v0.20 的 CLI 六连招,本质是把手伸进了「日常操控」这个高频场景:跑命令、看状态、控输出、接项目、搬家,全都不用再切出终端。对一人公司来说,这不是炫技,而是每天几十次操作累积下来的时间和 token 成本。

如果你是旧版本,先 hermes update 升到 v0.20.1;升级完挑一个最高频的痛点先练一个命令——我个人建议从 ! 开始,因为它当天就能在 token 账单上看到变化。练熟一个再练下一个,六个命令都上手之后,你会发现「开着 Hermes 干活」这件事,手感完全不一样了。

最后给一句提醒:工具再顺手,也别忘了 v0.20 给这些命令配的护栏——预算护栏、连续拒绝熔断、审批门禁。提速和控险是一体两面,只有把「跑得快」和「刹得住」都配齐,一个人才敢放心地把更多活交给 agent。

本文由 AI辅助创作,关键数据(版本号、提交数、PR 数、迭代上限、冷启动耗时)均逐条核对 NousResearch 官方 release notes,请以官方发布说明为最终准绳。

本文由AI辅助创作,经人工审核编辑发布

更多一人公司案例与工具,微信搜索「AI创业内参」关注我们