现在位置: 首页 > AI Agent 教程 > 正文

Hermes Agent CLI

Hermes Agent 的 CLI 是一个完整的终端用户界面(TUI),而非网页端。

Hermes Agent CLI 支持多行编辑、斜杠命令自动补全、对话历史、中断重定向以及流式工具输出,专为习惯在终端中工作的用户设计。


运行 CLI

# 启动交互式会话(默认)
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"

# 启动时预加载一个或多个技能
hermes -s hermes-agent-dev,github-auth
hermes chat -s github-pr-workflow -q "open a draft PR"

# 恢复之前的会话
hermes --continue             # 恢复最近的 CLI 会话 (-c)
hermes --resume <session_id>  # 通过 ID 恢复指定会话 (-r)

# 详细模式(调试输出)
hermes chat --verbose

# 隔离的 git worktree(用于并行运行多个 agent)
hermes -w                         # 在 worktree 中交互式运行
hermes -w -q "Fix issue #123"     # 在 worktree 中单次查询

界面布局

欢迎横幅一目了然地显示您的模型、终端后端、工作目录、可用的工具以及已安装的技能。

状态栏

状态栏位于输入区域上方,实时更新:

claude-sonnet-4-20250514 │ 12.4K/200K │ [██████░░░░] 6% │ $0.06 │ 15m
元素 说明
模型名称 当前使用的模型(超过 26 字符时截断)
Token 计数 已使用的上下文 token 数量 / 最大上下文窗口
上下文进度条 可视化填充指示器,带有颜色编码的阈值
费用 预估的会话费用(未知或零价格的模型显示 n/a)
时长 已过去的会话时间

状态栏会根据终端宽度自适应——在 ≥ 76 列时显示完整布局,52–75 列时显示紧凑布局,低于 52 列时仅显示模型和时长。

上下文颜色编码:

颜色 阈值 含义
绿色 < 50% 空间充足
黄色 50–80% 即将填满
橙色 80–95% 接近限制
红色 ≥ 95% 即将溢出——建议使用 /compress

使用 /usage 命令可查看详细费用明细,包括按类别分类的费用(输入 vs 输出 token)。

会话恢复显示

当恢复之前的会话(hermes -chermes --resume <id>)时,"之前的对话"面板会显示在横幅和输入提示之间,展示对话历史的精简摘要。


快捷键

按键 操作
Enter 发送消息
Alt+Enter 或 Ctrl+J 换行(多行输入)
Alt+V 从剪贴板粘贴图片(需终端支持)
Ctrl+V 粘贴文本,并在可能的情况下附加剪贴板中的图片
Ctrl+B 当语音模式启用时,开始/停止语音录制
Ctrl+C 中断 agent(2 秒内双按强制退出)
Ctrl+D 退出
Ctrl+Z 将 Hermes 挂起到后台(仅 Unix)。在 shell 中运行 fg 恢复。
Tab 接受自动补全建议或斜杠命令自动补全

斜杠命令

输入 / 查看自动补全下拉菜单。

Hermes 支持大量 CLI 斜杠命令、动态技能命令以及用户定义的快速命令。

命令 说明
/help 显示命令帮助
/model 显示或更改当前模型
/tools 列出当前可用的工具
/skills browse 浏览技能中心及官方可选技能
/background <prompt> 在独立的后台会话中运行 prompt
/skin 显示或切换活动的 CLI 皮肤
/voice on 启用 CLI 语音模式
/voice tts 切换 Hermes 回复的语音播放
/reasoning high 增加推理深度
/title My Session 为当前会话命名
提示:命令不区分大小写——/HELP/help 效果相同。已安装的技能也会自动注册为斜杠命令。

人格设定

设置预定义的人格来改变 agent 的语气:

/personality pirate
/personality kawaii
/personality concise

内置人格包括:helpful(乐于助人)、concise(简洁)、technical(技术)、creative(创意)、teacher(教师)、kawaii(可爱)、catgirl(猫娘)、pirate(海盗)、shakespeare(莎士比亚)、surfer(冲浪者)、noir(黑色电影)、uwuphilosopher(哲学家)、hype(狂热)。

您也可以在 ~/.hermes/config.yaml 中定义自定义人格:

personalities:
  helpful: "You are a helpful, friendly AI assistant."
  kawaii: "You are a kawaii assistant! Use cute expressions..."
  pirate: "Arrr! Ye be talkin' to Captain Hermes..."
  # 添加您自己的!

多行输入

输入多行消息有两种方式:

  • Alt+Enter 或 Ctrl+J — 插入新行
  • 反斜杠续行 — 在行尾加 \ 继续输入:
❯ Write a function that:\
  1. Takes a list of numbers\
  2. Returns the sum
提示:支持粘贴多行文本——使用 Alt+Enter 或 Ctrl+J 插入换行符,或直接粘贴内容。

中断 Agent

您可以随时中断 agent:

  • 输入新消息 + Enter —— 它会中断并处理您的新指令
  • Ctrl+C —— 中断当前操作(2 秒内按两次强制退出)

正在进行的终端命令会立即终止。

忙碌输入模式

display.busy_input_mode 配置项控制当 agent 正在工作时按 Enter 会发生什么:

模式 行为
"interrupt"(默认) 您的消息会中断当前操作并立即被处理
"queue" 您的消息会被静默排队,在 agent 完成后作为下一回合发送
# ~/.hermes/config.yaml
display:
  busy_input_mode: "queue"   # 或 "interrupt"(默认)

挂起到后台

在 Unix 系统上,按 Ctrl+Z 将 Hermes 挂起到后台。在 shell 中输入 fg 即可精确恢复会话。这在 Windows 上不支持。


工具进度显示

CLI 在 agent 工作时显示动画反馈:

思考动画(API 调用期间):

  ◜ (。•́︿•̀。) pondering... (1.2s)
  ◠ (⊙_⊙) contemplating... (2.4s)
  ✧٩(ˊᗜˋ*)و✧ got it! (3.1s)

工具执行输出:

  ┊ terminal `ls -la` (0.3s)
  ┊ web_search (1.2s)
  ┊ web_extract (2.1s)

使用 /verbose 循环切换显示模式:off → new → all → verbose

工具预览长度

display.tool_preview_length 配置项控制工具调用预览行中显示的最大字符数。默认值为 0,表示无限制。

# ~/.hermes/config.yaml
display:
  tool_preview_length: 80   # 将工具预览截断为 80 字符

会话管理

恢复会话

当您退出 CLI 会话时,会打印一个恢复命令:

Resume this session with:
  hermes --resume 20260225_143052_a1b2c3

Session:        20260225_143052_a1b2c3
Duration:       12m 34s
Messages:       28 (5 user, 18 tool calls)

恢复选项:

hermes --continue                          # 恢复最近的 CLI 会话
hermes -c                                  # 短格式
hermes -c "my project"                     # 恢复命名会话
hermes --resume 20260225_143052_a1b2c3     # 通过 ID 恢复
hermes --resume "refactoring auth"         # 通过标题恢复

恢复会从 SQLite 完整恢复对话历史。

会话存储

CLI 会话存储在 Hermes 的 SQLite 状态数据库中,路径为 ~/.hermes/state.db。数据库保留:

  • 会话元数据(ID、标题、时间戳、token 计数器)
  • 消息历史
  • 压缩/恢复会话之间的血缘关系
  • 全文搜索索引

上下文压缩

当接近上下文限制时,长对话会自动被总结:

# 在 ~/.hermes/config.yaml
compression:
  enabled: true
  threshold: 0.50    # 默认在上下文限制的 50% 时压缩
  summary_model: "google/gemini-3-flash-preview"

当触发压缩时,中间的回合会被总结,而前 3 个和后 4 个回合始终保留。


后台会话

在独立的后台会话中运行 prompt,同时继续使用 CLI 进行其他工作:

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

Hermes 立即确认任务并返回提示:

Background task #1 started: "Analyze the logs in /var/log and summarize..."
   Task ID: bg_143022_a1b2c3

工作原理

每个 /background prompt 会在守护线程中生成一个完全独立的 agent 会话:

  • 隔离的对话 — 后台 agent 不了解您当前会话的历史
  • 相同配置 — 后台 agent 继承当前会话的配置
  • 非阻塞 — 您的前台会话保持完全交互式
  • 多个任务 — 您可以同时运行多个后台任务

使用场景

  • 长期研究 — 当您编写代码时进行背景研究
  • 文件处理 — 当您继续对话时分析文件
  • 并行调查 — 启动多个后台任务同时探索不同角度
提示:后台会话不会出现在您的主对话历史中。它们是独立的任务,有自己的任务 ID。

安静模式

默认情况下,CLI 运行在安静模式下:

  • 抑制工具的详细日志输出
  • 启用 kawaii 风格的动画反馈
  • 保持输出简洁、用户友好

要查看调试输出:

hermes chat --verbose