一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

Hermes Agent 的命令行界面

时间:2026-07-15 20:04:02 编辑:袖梨 来源:一聚教程网

命令行是 Hermes Agent 的主战场,掌握 CLI 的全部交互细节,你才能让智能体在终端里真正"跑起来"。

Hermes Agent 命令行界面

为什么是 TUI 而非 Web UI

Hermes Agent 的 CLI 并非一个简单的命令行包装器,而是一个完整的终端用户界面(TUI)。它支持多行编辑、斜杠命令自动补全、对话历史、中断重定向以及流式工具输出——设计哲学很明确:为常驻终端的用户而生。如果你更偏好模态覆盖层和鼠标交互,还可以用 hermes --tui 启动现代 TUI 模式。

最基本的启动方式只需一个词:

hermes          # 启动交互式会话(默认)
hermes chat -q "Hello"   # 单次查询模式(非交互式)

日常使用中,你通常会指定模型、提供商或工具集:

hermes chat --model "anthropic/claude-sonnet-4"
hermes chat --provider nous          # 使用 Nous Portal
hermes chat --provider openrouter    # 强制使用 OpenRouter
hermes chat --toolsets "web,terminal,skills"

如果你已知本次会话需要哪些 skill,可以在启动时直接预加载,避免第一轮对话后再手动加载:

hermes -s hermes-agent-dev,github-auth
hermes chat -s github-pr-workflow -q "open a draft PR"

状态栏:一眼掌握会话全貌

输入区域上方有一条持久状态栏,实时更新当前模型、Token 用量、上下文进度、费用和时长。一个典型显示如下:

⚕ claude-sonnet-4-20250514 │ 12.4K/200K │ [██████░░░░] 6% │ $0.06 │ 15m

上下文进度条采用颜色阈值编码:绿色表示空间充足(<50%),黄色趋于饱满(50%-80%),橙色接近上限(80%-95%),红色则意味着即将溢出(>=95%),此时应考虑用 /compress 主动压缩。状态栏会根据终端宽度自适应——宽于 76 列显示完整布局,52-75 列紧凑显示,低于 52 列只保留模型和时长。

值得一提的是,当 YOLO 模式开启时,状态栏会持续显示警告徽章,确保你不会忘记自己正处于自动批准状态。

斜杠命令与快捷命令

输入 / 即可看到自动补全下拉菜单。Hermes 内置了大量斜杠命令,同时已安装的 skill 也会自动注册为命令。几个高频命令:

命令作用
/model显示或更改当前模型
/tools列出当前可用工具
/skills browse浏览 skill 中心
/background 在后台会话中运行 prompt
/reasoning high提高推理强度
/compress手动触发上下文压缩
/status显示会话摘要(纯本地计算,不调用 LLM)

除了内置命令,你还可以在 config.yaml 中定义自定义快捷命令,它们不调用 LLM 即可执行 shell 命令,在 CLI 和消息平台(Telegram、Discord 等)中均可使用:

# ~/.hermes/config.yaml
quick_commands:
  status:
    type: exec
    command: systemctl status hermes-agent
  gpu:
    type: exec
    command: nvidia-smi --query-gpu=utilization.gpu,memory.used --format=csv,noheader
  restart:
    type: alias
    target: /gateway restart

定义好后,在任意聊天中输入 /status/gpu/restart 即可执行,零 token 消耗。

多行输入与快捷键

Hermes CLI 的快捷键设计贴近主流终端习惯。Enter 发送消息,Alt+Enter / Ctrl+J / Shift+Enter 换行。需要注意的是,大多数终端默认对 Enter 和 Shift+Enter 发送相同字节序列,只有支持 Kitty 键盘协议的终端才能区分。在 Windows Terminal 中,Alt+Enter 被终端捕获用于切换全屏,应改用 Ctrl+Enter 或 Ctrl+J。

一个特别实用的功能是 Ctrl+G:它会在 $EDITOR(vim/nano/VS Code 等)中打开当前输入缓冲区,保存退出后文本作为下一条 prompt 发送——非常适合编写长篇多段落提示词。

中断与繁忙输入模式

Agent 工作时你并非只能等待。display.busy_input_mode 控制按下 Enter 的行为,提供三种模式:

  • interrupt(默认):你的消息中断当前操作并立即处理。
  • queue:消息静默排队,在 agent 完成后作为下一轮发送。
  • steer:消息通过 /steer 注入当前运行,在下一次工具调用后到达 agent,不中断、不开新轮次。
# ~/.hermes/config.yaml
display:
  busy_input_mode: "steer"

steer 模式很适合在 agent 还在编辑代码时说"顺便也检查一下测试"——不中断,不另起一轮。它有两个自动回退:agent 尚未启动或附有图片时,消息会回退到 queue 行为,确保内容不丢失。你也可以在 CLI 中用 /busy steer/busy queue/busy interrupt 动态切换。

会话管理与上下文压缩

退出 CLI 时会打印恢复命令,会话完整存储在 SQLite 数据库 ~/.hermes/state.db 中。恢复会话只需:

hermes --continue              # 恢复最近的 CLI 会话
hermes --resume 20260225_143052_a1b2c3   # 通过 ID 恢复指定会话

长对话接近上下文限制时会自动触发压缩。你可以在配置中调整阈值和摘要模型:

compression:
  enabled: true
  threshold: 0.50    # 默认在上下文限制的 50% 时压缩
auxiliary:
  compression:
    model: ""   # 留空则使用主聊天模型,或指定廉价快速的模型

压缩触发时,中间轮次被摘要,同时始终保留前 3 轮和后 20 轮,保证最近的上下文不丢失。

后台会话:让 Agent 并行工作

/background 命令在独立的后台会话中运行 prompt,同时前台保持完全交互。每个后台任务都是一个完全隔离的 agent 会话——不共享当前会话历史,但继承相同的模型、提供商和工具集配置。

/background Analyze the logs in /var/log and summarize any errors from today

任务完成后,结果以面板形式出现在终端中。你可以同时运行多个后台任务,适合长时间研究、批量文件处理或并行调查等场景。

Frequently Asked Questions

Q:我在 agent 工作时输入了新消息,它到底是中断了还是排队了?我怎么知道当前是哪种模式?

A: 这取决于 display.busy_input_mode 的配置,默认是 interrupt 模式——你的消息会直接中断当前操作并立即处理。你可以在 CLI 中输入 /busy status 查看当前模式,也可以用 /busy steer/busy queue 动态切换。第一次在 agent 工作时按 Enter,Hermes 会打印一行提示说明当前行为,这个提示每个安装只触发一次。如果你希望在不打断 agent 工作流的前提下补充指令,我推荐切到 steer 模式,它会在下一次工具调用后把你的消息"塞进去",既不打断也不开新轮次,非常适合微调 agent 的执行方向。

Q:状态栏里那个压缩次数标记是什么意思?频繁压缩会影响对话质量吗?

A: 状态栏中的压缩次数标记(形如 N)表示当前会话被自动压缩的次数。每次压缩时,中间轮次会被 LLM 摘要,同时始终保留前 3 轮和后 20 轮的原始内容。频繁压缩确实意味着对话已经很长了,摘要可能丢失一些细节,但 Hermes 的设计是"保头保尾、摘要中间",对于大多数工程任务来说,最近的上下文是最关键的。如果你发现 agent 开始"忘记"早期信息,可以主动用 /title 给会话命名、用 /status 查看摘要,或者干脆开一个新会话。另外,你可以把压缩摘要模型指向一个廉价快速的模型(如 Gemini Flash),既省钱又不影响主对话质量。

Q:Ctrl+G 打开外部编辑器后,我修改的内容怎么发不出去?

A: 这通常是编辑器没有正确"阻塞"导致的。Ctrl+G 的机制是:在 $EDITOR 中打开当前输入缓冲区,你保存并退出编辑器后,编辑后的文本才作为下一条 prompt 发送。如果你用的是 VS Code,必须设置 $env:EDITOR = "code --wait"——那个 --wait 标志至关重要,没有它编辑器会立即返回,Hermes 收到的是空缓冲区。在 Windows 上,如果 EDITOR 和 VISUAL 都没设置,Hermes 默认使用 notepad,它天然是阻塞式的。建议把编辑器设置写进 PowerShell profile 或系统环境变量里,这样每个新 shell 都能生效。

热门栏目