1. 从“安装成功”到“真正会用”上一期主要完成了 Hermes Agent 的安装、配置和第一次运行。到这一步Hermes Agent 已经可以在本地终端中启动也可以接入模型 provider 进行基本对话。但是仅仅能对话还不够。对于 Hermes Agent 这类项目来说真正值得关注的不是“它能不能聊天”而是它能否进入真实工作流。也就是说它能不能在终端里读取项目、理解目录、调用工具、执行命令、管理会话并且在多轮任务中保持连续性。这也是本期学习的重点从 CLI 和 TUI 的使用体验出发理解 Hermes Agent 如何从一个聊天入口变成一个终端里的 Agent 工作台。2. CLI 与 TUI 是什么Hermes Agent 提供两种终端交互方式经典 CLI 和现代 TUI。CLI 是 Command Line Interface也就是命令行界面。用户在终端中输入命令Hermes 在同一个终端窗口中返回结果。它更轻量也更接近传统命令行工具的使用习惯。TUI 是 Terminal User Interface也就是终端用户界面。它仍然运行在终端中但相比普通 CLITUI 会提供更丰富的交互效果例如状态栏、会话切换、浮动面板、模型选择器、工具调用过程展示等。简单来说CLI更像“命令行聊天窗口” TUI更像“终端里的 Agent 工作台”如果只是做简单问答CLI 已经够用。如果想长期使用 Hermes观察工具调用、管理多个会话、切换模型、查看状态那么 TUI 的体验会更完整。3. 启动 Hermes Agent 的几种方式最基础的启动方式是hermes这个命令会启动默认交互界面。如果配置中默认是 CLI它就进入经典 CLI如果配置中默认是 TUI它就进入 TUI。也可以显式启动聊天模式hermes chat如果只想问一个问题不进入连续交互可以使用单次查询模式hermes chat -q 请用一句话介绍 Hermes Agent这种方式适合脚本调用。例如你只是想让 Hermes 帮你快速总结某个内容而不需要进入完整会话。如果想强制进入 TUI可以使用hermes --tui如果已经把默认界面配置为 TUI但临时想回到经典 CLI可以使用hermes --cli这说明 Hermes 的终端入口并不是单一形态而是可以根据场景切换。日常轻量使用可以用 CLI复杂任务和多会话管理可以用 TUI脚本化任务可以用hermes chat -q。4. 第一次进入界面应该看什么启动 Hermes 后界面最上方通常会显示一些运行信息。初学者不要急着直接提问而是先观察这些信息。比较重要的包括当前模型 当前 provider 当前工作目录 可用工具 已加载 skills 上下文 token 使用情况 会话状态这些信息很关键因为它们决定了本次 Agent 会话的能力边界。例如当前工作目录决定 Hermes 默认能看到哪个项目环境可用工具决定它能否读取文件、执行命令或访问浏览器当前模型决定它的推理、工具调用和上下文处理能力。所以在真实使用 Hermes 之前我建议先问它一个简单问题请告诉我你当前的工作目录、可用工具和当前模型。这个问题可以帮助我们确认三件事第一它是否知道自己处于哪个目录。第二它是否能识别当前可用工具。第三它是否已经正确接入模型 provider。如果这些基础信息都正确再继续让它做项目分析或代码修改。5. CLI 的核心体验不是聊天而是任务循环普通聊天机器人的交互模式通常是用户提问 → 模型回答而 Hermes Agent 的 CLI 更接近下面这种任务循环用户提出任务 Agent 理解任务 Agent 判断是否需要工具 Agent 调用工具读取信息或执行命令 Agent 根据工具结果继续推理 Agent 给出阶段性结论或继续执行这就是 Agent 和 Chatbot 的区别。例如用户输入请阅读当前项目并告诉我这个项目主要由哪些模块组成。普通 Chatbot 如果没有文件访问能力只能让用户上传代码或粘贴目录结构。而 Hermes Agent 如果具备文件和终端工具就可以自己查看目录、读取 README、分析配置文件然后再给出总结。这时用户看到的不只是最终回答还能看到它中间可能执行了哪些操作。这种“工具调用过程可见”的体验是 CLI/TUI 中非常重要的一部分。6. 用 Hermes 读取项目目录在终端中使用 Hermes一个典型场景是让它理解当前项目。例如先进入一个代码项目目录cd ~/projects/example-project hermes然后输入请先不要修改任何文件只阅读当前项目的目录结构并告诉我这个项目大概是做什么的。这个提示词有两个关键点。第一明确“不要修改任何文件”。因为 Agent 具备工具调用能力后它可能会主动提出修改建议甚至执行修改操作。初学阶段最好先限制它只读项目。第二要求它先分析目录结构。目录结构是理解项目的入口。一个项目的README.md、package.json、pyproject.toml、requirements.txt、src/、tests/、docs/等文件和目录通常能反映项目类型、技术栈和功能边界。一个比较好的提问方式是请以只读方式分析当前项目 1. 先查看目录结构 2. 再读取 README 和主要配置文件 3. 最后总结项目的功能、技术栈和主要模块。 不要修改任何文件。这个提示词比“帮我看看这个项目”更好因为它把任务步骤和权限边界都说清楚了。7. 用 Hermes 做代码理解当 Hermes 能够读取项目后就可以进一步让它分析代码。例如请阅读 src 目录找出项目的主入口文件并解释程序启动后的主要执行流程。或者请分析这个项目中 routes、services、models 三类目录之间的关系。这种任务非常适合 Agent。因为它不只是生成一段抽象解释而是可以结合真实文件进行分析。不过提问时要注意范围。如果一上来就说请帮我完整分析这个项目源码。这个任务通常过大Agent 可能会读取太多文件导致上下文快速膨胀也容易给出泛泛的总结。更合理的方式是分阶段提问第一步请只分析项目目录和入口文件。第二步请分析核心业务模块之间的调用关系。第三步请分析测试目录覆盖了哪些功能。这样既方便 Agent 执行也方便用户理解。8. 用 Hermes 执行命令Hermes Agent 的 CLI 使用体验中命令执行是非常关键的能力。例如可以让它执行安全的只读命令请查看当前目录下有哪些文件。或者请运行测试命令但不要修改任何文件。在代码项目中还可以让它先判断应该运行什么命令请根据项目配置文件判断应该如何运行测试。先告诉我计划再执行测试。这个提示词比直接说“运行测试”更稳妥。因为不同项目的测试命令可能不同npm test pytest cargo test go test ./... pnpm test让 Hermes 先读取配置、判断命令再执行可以减少误操作。我个人建议在初期使用 Hermes 执行命令时尽量遵守一个原则先让它说明计划再让它执行。尤其是涉及安装依赖、删除文件、重写配置、批量修改代码时更应该让它先输出计划。例如请先说明你准备执行哪些命令以及每条命令的作用。得到我确认后再执行。这样可以把 Agent 的自主性控制在合理范围内。9. Slash CommandsCLI 中的快捷控制入口Hermes Agent 的 CLI 支持 slash commands也就是以/开头的命令。这类命令不是普通聊天内容而是对当前会话、模型、工具、skills、状态等进行控制的快捷入口。输入/后通常可以看到自动补全菜单。常用命令包括/help /model /tools /skills /status /usage /title /sessions /history /compress /background这些命令可以大致分成几类。9.1 会话管理类/new /clear /history /title /sessions /resume这类命令用于管理当前会话。比如新建会话、查看历史、设置标题、恢复之前的会话。对于长期使用 Agent 来说会话管理非常重要。因为不同任务最好放在不同会话中避免上下文互相污染。例如/title Hermes Agent 源码学习这样后续恢复会话时就能更容易找到对应任务。9.2 模型与配置类/model /config /reasoning /verbose /skin这类命令用于调整当前模型、配置、推理强度和界面显示。例如在当前会话中切换模型可以使用/model或者指定模型/model provider:model-name需要注意的是在会话内的/model通常用于切换已经配置过的 provider。如果要新增 provider仍然应该退出当前会话在终端中运行hermes model这体现了 Hermes 的两个控制层次终端命令负责全局配置slash command 负责会话内控制。9.3 工具与技能类/tools /toolsets /skills /browser /cron /reload-mcp /reload-skills这类命令决定 Hermes 能使用哪些能力。其中/tools很重要。它可以查看当前可用工具也可以启用或禁用某些工具。例如在不希望 Agent 执行终端命令时可以考虑禁用相关工具在需要浏览器能力时可以通过/browser管理浏览器连接在安装新 skill 后可以通过/reload-skills重新扫描。这说明 Hermes 的工具能力不是固定死的而是可以在会话中动态管理。9.4 状态与资源类/status /usage /version /insights这类命令用于观察当前 Agent 的运行状态。例如/status可以查看当前会话信息、模型、工作目录、token、工具调用概况等。/usage则更适合查看 token 使用和成本情况。对于长任务来说这些命令非常有用。因为 Agent 执行越久上下文、成本和工具调用越需要被监控。10. TUI 的优势更适合长期任务相比经典 CLITUI 更适合长时间使用。TUI 的优势主要体现在几个方面第一状态展示更清楚。它通常会显示当前模型、工作目录、工具、skills、MCP servers、上下文使用情况等信息。第二会话管理更方便。TUI 支持更直观的会话切换可以在不同任务之间切换而不必完全依赖命令记忆。第三工具调用过程更容易观察。当 Agent 执行任务时TUI 可以用更清晰的方式展示它正在思考、正在运行工具、是否有后台任务等。第四长提示词输入更友好。复杂任务往往不是一句话能说清楚的TUI 对多行输入、编辑器输入、状态栏反馈的支持更适合实际工作。因此如果只是快速问答可以使用 CLI如果是持续分析项目、调试代码、管理多个任务我更建议使用 TUI。11. 多行输入与长提示词在终端中使用 Agent经常会遇到长提示词。例如你想让 Hermes 分析一个项目并限制它不要修改文件还要输出结构化报告。这类任务不适合写成一行。Hermes CLI/TUI 支持多行输入。常见方式包括AltEnter CtrlJ ShiftEnter也可以使用外部编辑器编写长提示词CtrlG这会把当前输入内容放到外部编辑器中编辑。保存退出后Hermes 会把编辑好的内容作为下一条 prompt 发送。这个功能非常适合写复杂任务说明。例如请以只读方式分析当前项目。 目标 1. 判断项目主要功能 2. 找出主入口文件 3. 梳理核心模块 4. 判断测试文件是否覆盖核心功能 5. 给出后续源码阅读路线。 限制 1. 不要修改任何文件 2. 不要安装任何依赖 3. 执行命令前先说明目的 4. 输出结果使用分层标题。这类提示词如果直接写在一行里非常难读用多行输入或外部编辑器会舒服很多。12. 会话恢复让任务具有连续性Hermes Agent 支持恢复之前的会话。例如hermes --continue可以恢复最近一次会话。也可以使用hermes --resume session_id恢复指定会话。在长期学习或项目分析中这个能力非常重要。比如今天分析了 Hermes Agent 的目录结构明天想继续分析 skills 系统就不需要重新开始。你也可以在会话中先设置标题/title Hermes Agent CLI 学习后续再通过 session picker 或 resume 命令找回。这其实是 Agent 和普通脚本工具的一个重要区别Hermes 不只是执行一次命令而是围绕一个长期任务保存会话轨迹。13. 上下文压缩长任务中的必要机制长任务会带来一个问题上下文越来越长。当 Agent 连续分析很多文件、执行很多命令、生成很多回答时当前会话的上下文会不断膨胀。如果不做处理可能会导致模型成本增加、响应变慢甚至接近上下文窗口限制。Hermes 提供了上下文压缩相关能力例如/compress它的作用是对当前会话进行总结压缩把前面的长历史变成更短的摘要从而为后续任务腾出上下文空间。从使用经验上看压缩适合在阶段性任务完成后使用。例如我们已经完成项目目录和入口文件分析请压缩当前上下文保留项目结构、关键文件和下一步计划。这样后续继续分析源码时Agent 不需要携带全部原始对话只需要保留关键结论。这也说明长期 Agent 不只是“记住越多越好”而是需要管理记忆和上下文把重要信息保留下来把冗余过程压缩掉。14. 背景任务让一个会话不被单个任务卡住Hermes 支持背景任务例如/background 请分析 tests 目录并总结测试覆盖情况。这类命令可以让某个任务在后台运行而当前会话继续处理其他事情。这对于代码项目分析很有用。比如主会话继续讨论架构后台任务去跑测试、读文档或分析某个子模块。但是背景任务也要谨慎使用。因为多个任务同时运行时可能会产生更多工具调用、更多 token 成本也可能让用户难以追踪每个任务的结果。所以我建议初学阶段先掌握普通会话再使用背景任务。15. 使用 Hermes CLI 的安全习惯Hermes Agent 能调用工具、执行命令、读取文件这让它比普通 Chatbot 更有用但也意味着更需要安全意识。我建议形成几个基本习惯。第一刚开始分析项目时明确“只读”。请只读取和分析文件不要修改、删除或创建任何文件。第二涉及命令执行时先让它说明计划。请先列出你准备执行的命令和原因等我确认后再执行。第三不轻易开启自动批准模式。有些模式会跳过危险命令确认虽然可以提高效率但也会增加误操作风险。除非你非常清楚任务边界否则不要轻易使用。第四重要项目中先使用 git。在让 Agent 修改代码前最好确认当前项目已经使用 git 管理并且工作区状态清楚。例如请先查看 git status然后说明当前工作区是否干净。不要修改文件。第五让 Agent 小步修改。不要一次让它“大规模重构整个项目”。更稳妥的方式是先只修改一个函数。先只补充一个测试文件。先给出 patch 计划不要直接应用。这类小步控制可以显著降低风险。16. 一个推荐的 CLI 使用流程综合上面的内容我认为学习 Hermes CLI/TUI 可以按照下面的流程进行。第一步启动 Hermescd ~/projects/example-project hermes第二步确认状态/status第三步只读分析项目请只读分析当前项目先查看目录结构和 README总结项目功能、技术栈和主要模块。不要修改文件。第四步分析入口文件请找出项目主入口文件并解释程序启动后的主要执行流程。第五步分析核心模块请分析 src 目录下核心模块之间的调用关系。第六步运行安全命令前先确认请判断这个项目应该如何运行测试。先说明你准备执行的命令不要立即执行。第七步阶段性总结请总结目前已经理解的项目结构并给出下一步源码阅读路线。第八步设置标题并保存上下文/title example-project 源码学习这个流程比较适合初学者因为它从观察、只读、分析、计划、执行、总结逐步推进而不是一上来就让 Agent 自由发挥。17. 小结这一期主要学习了 Hermes Agent 的 CLI 与 TUI 使用方式。我的理解是Hermes 的终端界面不是简单的聊天窗口而是 Agent 进入真实工作流的入口。通过 CLI/TUI用户可以让 Hermes 读取项目、调用工具、执行命令、管理会话、切换模型、观察状态并在长期任务中逐步推进。其中最值得注意的不是某一个具体命令而是使用方式的变化普通聊天用户问模型答。 Hermes CLI用户给任务Agent 读取环境、调用工具、执行步骤、总结结果。这意味着我们在使用 Hermes 时也要改变提问习惯。不要只说“帮我看看”而要明确任务范围、执行步骤、权限边界和输出格式。下一期我将继续学习 Hermes Agent 的工具调用系统重点分析它如何通过 tools 从“会说”变成“会做”以及文件工具、终端工具、浏览器工具和 MCP 工具之间的关系。