Agent工坊

【Agent工坊】Hermes v0.16 三大效率命令实战:/undo 回退、/steer 中途引导、/usage 用量监控

v0.16 "Surface Release" 不只带来了桌面端,更悄悄塞进了三个让 AI Agent 开发体验质变的命令。/undo 让你再也不同担心把 Agent 带偏后束手无策,/steer 让你在不打断 Agent 工作的前提下实时纠偏,/usage 让你对每月额度了如指掌。这篇文章逐命令拆解用法、原理和实战场景。

前言

如果你的 AI Agent 已经跑了一段时间,你一定遇到过这些场景:

  • 场景 A:你跟 Agent 说了 3 轮"不对,不是这个意思",但 Agent 已经被前两轮的误解带着跑了十几步。你想回到最初那一步重新来,但不可能——只能清空会话从头开始。
  • 场景 B:Agent 正在跑一个 20 步的任务流程,你突然发现第 5 步的方向偏了。你想说"往这边走",但 Agent 正在执行工具调用,你的消息要等它这轮跑完才能被读到——那时已经浪费了 10 步。
  • 场景 C:月底了,你不知道 Nous 月额还剩多少,Agent 突然报 API 403——已经用完了。如果能提前知道,你早就切到备用 API key 了。

Hermes v0.16 的三个新命令,就是为这些场景而生的。

这篇文章不会复述 v0.16 的完整发布说明(那篇已经写了),而是聚焦这三条命令的原理、用法、和一人公司创业者的实战场景。读完你会立刻想给自己的 Agent 配上这些能力。

命令一:/undo [N] — 时光倒流,回退最后 N 轮对话

它解决了什么问题

/undo回退机制示意

▲ 图1:/undo 回退机制示意 — 软删除保留上下文,预填输入框零摩擦重来

Agent 的对话是线性的。一旦你说了某句话,Agent 基于它执行了一串操作,你就没法"收回"那句话——Agent 的记忆(上下文窗口+会话数据库)已经被污染了。

传统的做法是清空会话,重新开始。但如果你已经在这个会话里积累了 30 轮有价值的工作(Agent 读了你的代码库、了解了项目结构、建了几个文件),清空意味着丢掉所有这些上下文。

/undo [N] 的解决方案:回退 N 轮用户消息(默认 1 轮),把你的最后一条消息预填回输入框,让你编辑后重发。

关键细节:

  • 它在 SQLite 会话数据库里做的是软删除active=0),不是物理删除。数据还在,只是因为 active 标记为 0 而不被加载。
  • 它同时 invalidates 系统提示缓存,通知记忆系统状态已回退。
  • 预填功能意味着你不需要重新打字——你的最后一条消息出现在输入框里,你可以直接修改,也可以原样重发。

基本用法

# 回退最后 1 轮(默认)

/undo

# 回退最后 3 轮

/undo 3

# 回退最后 5 轮

/undo 5

用法非常简单。但它的设计细节决定了实战效果:

1. 软删除 = 可恢复。 被回退的轮次不会从数据库消失,只是不加载。如果后续需要 debug 或审查(比如排查 Agent 为什么在那几轮做了某件事),数据还在。

2. 跨平台一致。 CLI、TUI、桌面端、Telegram、Discord——所有平台都支持 /undo,行为完全一致。你在手机上用 Telegram 跟 Agent 聊天时手滑发了错误指令,/undo 一样能用。

3. 预填 = 零摩擦。 回退后你的最后一条消息自动出现在输入框里。你可以改一两个字再发送,而不是重新打一整段。

一人公司实战场景

场景:内容排期调整

假设你是一个一人公司的运营者,用 Hermes Agent 管理你的内容发布流水线。你跟 Agent 说了这样一段话:

用户:本周每天发一篇 AI 风向快讯,时间定在早上 8 点。

Agent:好的,我已设置 Cron 任务:每天 08:00 UTC 发布 AI 风向快讯。

(执行: hermes cron add ai-fengxiang "0 8 * * *")

用户:不对,是北京时间 8 点,不是 UTC。

Agent:明白。北京时间 08:00 = UTC 00:00。

(执行: hermes cron update ai-fengxiang "0 0 * * *")

用户:等等,我想说的是中午 12 点……

Agent:(已经按 UTC 00:00 创建了 Cron 任务)

此时你的会话已经被两轮错误指令污染了。但你不想清空整个会话——因为前 20 轮里 Agent 帮你搭好了整套发布流水线的配置。怎么办?

/undo 2

Agent 回退了后两轮对话,你的最后一条消息"不对,是北京时间 8 点,不是 UTC"出现在输入框里。你把它改成:

改为北京时间中午 12 点发布。

重新发送。Agent 正确理解了你的意图,这次直接建好了正确的 Cron 任务。

为什么这比 Ctrl+C 清空会话强? 因为 /undo 保留了之前的上下文。Agent 还记得你的项目结构、记得你的 API key 配置、记得你已经建好了哪些 Cron 任务。你只回退了错误的 2 轮,前面的 20 轮完好无损。

注意事项

  • /undo 回退的是用户消息轮次,不是 Agent 的响应轮次。但 Agent 的响应和工具调用会随之被软删除。
  • 回退后 Agent 的系统提示缓存会被 invalidate,下一次对话会重新加载——这意味着回退后第一轮对话可能稍慢(重新构建上下文)。
  • N 不要设太大——比如 /undo 50,回退太多了会丢掉大量有价值的工作上下文。实际使用中 /undo 1/undo 3 是最常用的。

命令二:/steer — 中途引导,不中断 Agent 执行

它解决了什么问题

/steer实时纠偏vs排队消息

▲ 图2:/steer vs 排队消息 — 实时纠偏不中断流水线,效率远超传统排队模式

这是 v0.16 里设计最精巧的功能。

先看传统的问题场景:Agent 正在执行一个多步骤任务——比如 delegate_task(researcher) → 等 researcher 返回 → delegate_task(outliner) → 等 outliner 返回 → write_file(文章.md) → 等文件写完。整个流程可能跑 5-10 分钟。

你在第 2 步就发现方向偏了——researcher 搜的信息不是你要的维度。你想说"搜中文资料,不是英文"。但 Agent 的工具调用正在进行中,你的消息被排队——要等这轮工具调用全部跑完才会被读取。等 Agent 读完你的纠偏指令时,outliner 和 writer 都已经按错误方向跑完了。

/steer 的设计思路完全不一样:

你的引导信息被直接塞进下一个工具返回结果里,而不是作为新的用户消息排队。Agent 在下一次迭代(收到任何工具返回时)就能读到它。不中断当前工具调用,不影响任务流程,但 Agent 在下一步就能收到你的引导。

技术原理

/steer 用了一个巧妙的机制:

  • 普通消息(queue):作为新的用户消息,在下一个对话轮次边界被 Agent 读到。Agent 必须先完成当前任务。
  • Steer 消息:被包装成 User guidance: 标签,塞进下一个工具返回结果的文本里。Agent 在下一次读取工具返回时就看到了。

之所以这样设计,是因为 Agent 跟模型的对话协议里,工具返回结果是唯一可以在不切换角色(user/assistant)的前提下插入新信息的位置。

v0.16 还修了一个关键 bug:旧版 steer 消息被某些模型(尤其是 Claude)识别为"工具返回里的注入内容"而拒绝执行。v0.16 在 Agent 后端加了一个 trusted injection 机制——steer 消息现在标记为受信任的指令来源,模型不会再把它当注入拒绝。

基本用法

桌面端(推荐): 在 Hermes Desktop 的输入框里,按 Cmd+Enter(macOS)或 Ctrl+Enter(Windows/Linux)。输入的文字作为 steer 发出,而不是普通消息。

CLI / TUI:

/steer 用中文资料搜索,不要用英文资料

消息平台(Telegram / Discord 等):

/steer 下一步应该用 qwen 模型而不是 deepseek

一人公司实战场景

场景:自动内容流水线中的实时纠偏

你的 Hermes Agent 正在执行一套完整的内容生产流水线:

第 1 步:researcher 搜索"OpenAI GPT-5 最新消息"

第 2 步:(researcher 正在调用 web_search...)

第 3 步:outliner 根据搜索结果搭文章大纲

第 4 步:writer 写出完整文章

在 researcher 返回结果后,你发现它搜的是上周的旧新闻,因为搜索词没加时间限定。此时:

传统做法:等整个流水线跑完 → 看完整篇文章 → 发现信息过时 → 手动修改或重新跑。浪费了 outliner 和 writer 的时间。

用 /steer

/steer 搜索时加上时间限定 2026-06-05 之后,要最新的信息

Agent 在下一步(读 researcher 返回结果时)就能看到这句话,调整后续的 outliner 和 writer 方向。你不需要打断流水线,不需要等它跑完再重来。

对比效果

不用 /steer用 /steer
researcher 跑完30 秒30 秒
你发现问题等流水线跑完 ≈ 2 分钟立即
纠偏重跑全部 4 步 ≈ 2.5 分钟只需调整 outliner + writer ≈ 1.5 分钟
总耗时4.5 分钟2 分钟
API 费用全文重跑,费用翻倍只跑了必要步骤

/steer vs queue(队列消息)的区别

/steer普通消息(queue)
何时被 Agent 读到下一个工具返回结果中当前任务结束后
是否打断 Agent是(排到下一轮)
适用场景方向微调、参数纠正话题切换、新任务
桌面端快捷键Cmd/Ctrl+EnterEnter

经验法则:如果 Agent 正在做的事大致正确,只是需要微调方向——用 /steer。如果要完全切换到新话题——用普通消息。

注意事项

  • /steer 的内容会被 Agent 在下一个工具返回结果中读到。如果 Agent 当前没有正在进行的工具调用(比如正在输出长文本),steer 需要等到下一次工具调用才能被读到。
  • /steer 不是 /undo——它不会回退任何内容,只是给 Agent 一个"往这边走"的提示。Agent 可以选择遵循或不遵循。
  • 桌面端的 Cmd/Ctrl+Enter 快捷键是专门为 steer 保留的。如果你习惯用这个组合键发送普通消息,需要适应一下——普通发送用 Enter。

命令三:/usage — 实时用量监控,告别突然断供

它解决了什么问题

/usage用量监控面板

▲ 图3:/usage 用量监控面板 — 四级阈值自动提醒,告别突然断供

如果你在用 Hermes Agent 的 Nous Portal 订阅,每月有固定的 API 调用额度。以前你不知道自己用了多少——直到 Agent 突然报错,告诉你额度已用完。

/usage 和配套的 credits 系统,让你在额度耗尽之前就知道。

使用方法

# 查看当前用量

/usage

输出示例:

Nous Credits

  Monthly grant: 10,000 credits

  Used: 7,543 (75%)

  Remaining: 2,457

  Top-up credits: 0

  Status: Active

  ⚠️ You've used 75% of your monthly grant.

      Consider topping up if you expect heavy usage.

自动提醒机制

/usage 只是主动查询。v0.16 的 credits 系统还会自动提醒你,不需要手动查:

使用比例提醒方式位置
50%一次性提醒TUI 状态栏 + 聊天消息
75%黄色警告TUI 状态栏(持续)+ 聊天消息
90%红色告警TUI 状态栏(持续)+ 聊天消息
100%"credit access paused"聊天消息
恢复(充值/月度重置)"credit access restored"聊天消息

在 TUI 中,状态栏的颜色会随用量变化:

  • 正常:绿色
  • 50%+:黄色
  • 75%+:橙色
  • 90%+:红色

在聊天平台(Telegram / Discord / Slack / WhatsApp)上,每个级别触发一次性消息——不会每个回合都重复提醒。

一人公司实战场景

场景:避免关键任务中断

你在月底用 Agent 跑一套完整的客户交付物(案例报告 + 数据看板 + 部署文档),需要在 2 小时内完成。你点了开始,然后去做别的事了。

没有 credits 系统:Agent 跑到一半突然报 403,额度用完了。你回来发现任务半途而废,而且 API 额度已经耗尽,连重跑都做不了。

有 credits 系统:Agent 在跑任务之前就发现额度已经用了 90%,在 TUI 状态栏和 Telegram 里都发了红色告警。你在手机上看到 Telegram 消息,立刻充值了 2000 top-up credits。Agent 的任务跑完了,没中断。

v0.16 的 credits 系统给出的最佳操作流程

每月 1 号:月额重置 → /usage 确认有 10,000 credits

每月 15 号:收到 50% 提醒 → 检查用量速度是否正常

每月 25 号:收到 75% 提醒 → 如果本月还有重要任务,提前充值 top-up

每月 28 号:收到 90% 告警 → 必须充值或切换到备用 API key

技术细节

  • Credits 信息存储在 /tmp/grant_spent 文件里,Agent 在每个对话轮次结束时更新。
  • 百分比提醒是一次性的——触发后不会重复。但 TUI 状态栏是持续更新的。
  • 5 分钟内多次达到同一阈值不会重复提醒(防止 Agent 快速迭代时刷屏)。
  • grant spent 提醒会在下一次用户提示时 yield,不会插入 Agent 的输出中——保证 Agent 的回答不被截断。

三个命令的协同实战:一个完整的工作流

假设你正在用 Hermes Agent 编写一篇深度分析文章。这是一个 4 步的自动流水线:研究员 → 大纲生成 → 写作者 → 审核员。

第 1 步:启动流水线

用户:写一篇关于 OpenAI GPT-5 最新进展的深度分析,2500 字以上,带数据来源。

Agent 开始执行 delegate_task(researcher)

第 2 步:实时纠偏(用 /steer)

研究员返回了搜索结果。你发现它搜的是一个月前的旧文章。Agent 正准备启动 outliner。

/steer 只搜索 2026 年 6 月的信息,重点关注 GPT-5 正式发布日期和定价

Agent 在下一个工具返回中读到了这句话,outliner 和 writer 都会按新方向走。

第 3 步:回退错误轮次(用 /undo)

writer 写完初稿后,你 review 发现第二段的分析框架不对。你想让 Agent 换一个分析框架重写第二段。

(注:这里 /steer 不够用,因为 writer 已经写完了。queue 消息可以,但需要等 Agent 处理完当前审核步骤。)

其实你只需要撤回 writer 的那一步:

/undo 1

Agent 回退到"writer 写完初稿之前"的状态,你的最后一条指令出现在输入框:

用户:(预填的消息)写一篇关于 OpenAI GPT-5 最新进展的深度分析...

你改成:第二段改用"技术成熟度-商业落地-政策监管"三维分析框架,不要用"优势-劣势"二分法。其余段落不变。

重发。writer 按新框架重写第二段。

第 4 步:监控用量(用 /usage)

流水线跑了一半,你想确认额度还够不够跑完:

/usage

输出显示还剩 35%,但考虑到后续还要让 reviewer 跑两轮,可能不够。你提前充值了 top-up credits,保证流水线不会中断。

完整流程总结

步骤命令作用
启动普通消息定义任务
纠偏/steer微调方向,不打断
回退/undo N撤回错误轮次,保留上下文
监控/usage确保额度够用
交付Agent 自动完成任务

这个流程里,三个命令各司其职:/steer 负责"往这边走",/undo 负责"不对,退回去重来",/usage 负责"钱还够不够"。以前你只能靠手动重启会话、手动查额度来做这些事,现在 Agent 自己就能处理。

常见问题

Q:/undo 回退后,Agent 的"记忆"还在吗?

A:在的。Hermes 的记忆系统(memory)跟会话对话(session)是分开的。/undo 只回退会话对话,不影响记忆存储。如果之前的轮次中 Agent 写入了记忆(比如"用户偏好中文搜索结果"),这些记忆不会被 /undo 清除。

Q:/steer 和直接在聊天框里打字有什么区别?

A:普通的聊天消息是排队的——Agent 会完成当前所有工具调用后,在下一轮开始时读取。/steer 是塞进下一个工具返回结果里的——Agent 在当前轮的下一步就能读到。前者会打断流程,后者不会。如果你说"换一个话题",用普通消息;如果你说"搜索加个时间限定",用 /steer。

Q:/usage 的数据是实时的吗?

A:接近实时。Credits 信息在每个对话轮次结束后更新(写入 /tmp/grant_spent),/usage 读取的是这个文件。如果你刚充值了 top-up credits,可能需要等当前轮次结束(或手动 /usage 刷新一次)才能看到新余额。

Q:这三个命令在 Telegram / Discord 上能用吗?

A:全部能用。/undo/steer/usage 都有跨平台一致的支持。唯一的例外是 /steer 的桌面端快捷键(Cmd/Ctrl+Enter),这只在 Hermes Desktop 里有效。

踩坑提醒

  1. /undo 后第一轮可能变慢。因为系统提示缓存被 invalidate 了,Agent 需要重新构建上下文。如果会话历史很长(50+ 轮),这可能需要几秒钟。这是正常的,不是 bug。
  2. /steer 的内容不要太长。steer 消息被塞进工具返回结果里,如果太长可能会稀释工具返回的原始内容。建议控制在 1-2 句话,精确指出需要调整的方向即可。
  3. 桌面端 Cmd/Ctrl+Enter:如果你之前习惯用这个快捷键提交普通消息,现在它会发送 steer。普通消息用 Enter 发送。这个改动可能需要适应一两天。
  4. Credits 系统的前提:你需要通过 Nous Portal 使用 Hermes Agent。如果你用的是自己的 API key(直接对接 OpenAI/Anthropic/DashScope),credits 跟踪不会生效——它只跟踪 Nous Portal 的月度额度。
  5. 不要过度依赖 /undo。它可以救命,但不是设计来"随便试试看"的。频繁回退意味着你的指令本身不够清晰。更好的做法是:在发送复杂指令前,先用 /steer 微调,而不是等 Agent 跑偏了再用 /undo 回退。

总结

v0.16 的三个新命令,代表的是一种产品哲学的变化:Hermes 不再是一个"发完指令就等着"的黑箱,而是一个你能实时介入、实时纠偏、实时监控的协作工具。

对于一人公司创业者来说,这意味着:

  • /steer → 你的 Agent 流水线不再是"全自动但不可控",中途可以纠偏
  • /undo → 犯错不再是灾难,可以精准回退而不丢失上下文
  • /usage → 成本不再是个谜,随时知道花了多少钱、还剩多少钱

这三个命令的代码量都不大(/undo 两个 PR,/steer 四个 PR,credits 两个 PR),但它们解决的是 Agent 工程中最痛点的问题——可控性和可观测性

建议你现在就打开 Hermes Agent,试一下这三个命令。特别是在下一次 Agent 跑自动化流水线时,试试在半途中用 /steer 微调方向——你会发现 Agent 的可用性提升了一个档次。


#AI创业 #HermesAgent #Agent工坊 #一人公司

*本文基于 Hermes Agent v0.16.0 (v2026.6.5) 版本的 release notes 和 PR 记录撰写。所有命令用法和参数均来自官方源码和文档。*

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