Skip to content

04 · Hermes 是怎样完成任务的

模型、上下文、工具、Agent 循环和权限确认分别负责什么?

这是课程的第四篇。你不会修改配置,而是用上一篇的文件任务拆开 Hermes 的工作过程。看完后,你应该能解释它为什么会先读文件、再写结果,以及为什么“已经批准”仍不等于“结果一定正确”。

看完会得到什么

  • 一张 Hermes 执行任务的工作地图
  • 对模型、上下文、工具和 Agent 循环的直觉理解
  • 判断一次工具调用是否合理的方法
  • 分清“系统护栏”和“结果验收”的能力

开始前

先回到上一篇任务

你给 Hermes 的不是一个简单问答,而是一个有输入、限制和交付物的任务:

text
读取三个指定文件 → 整理事实 → 创建 summary.md → 检查结果

如果只靠模型生成文字,它看不到你电脑里的文件,也无法真的创建 summary.md。Hermes 能完成这件事,是因为模型之外还有上下文、工具和执行循环。

一张完整地图

Hermes Agent 从上下文、模型判断、权限确认到执行与验收的任务循环

这不是一条固定脚本。模型会根据每一步返回的结果决定接下来做什么,直到任务完成、需要你决定,或触及限制。

1. 界面:你从哪里发出任务

Desktop、CLI 和消息平台都是入口。入口影响操作方式、可见信息和默认工具边界,但不会把模型本身变成另一个产品。

上一篇从练习目录启动 Hermes,是为了让“当前目录”成为清楚的任务环境。如果入口没有指向正确目录,再好的提示词也可能读错位置。

2. 上下文:模型这一次能看到什么

上下文不是“Hermes 知道的一切”,而是当前这次判断拿到的信息,通常包括:

  • 你的任务说明;
  • 当前会话里的相关对话;
  • 系统和项目规则;
  • 已返回的工具结果;
  • 必要的运行环境信息。

上一篇中,三个文件的内容不是自动永久进入模型。Hermes 先调用文件工具读取内容,再把读取结果带回当前执行过程。

这也解释了两个常见现象:

  • 文件改了,但 Hermes 没有重新读取,可能仍按旧内容判断;
  • 会话太长、目标多次变化,重要限制可能被其他信息淹没。

因此,关键限制应写在任务里,而不是期待 Agent 从很早以前的对话中猜出来。

3. 模型:负责判断,不直接碰文件

模型更像大脑。它可以理解目标、比较信息、形成计划,并决定下一步需要什么工具。

在文件任务中,模型可能判断:

  1. 先确认目录中有哪些文件;
  2. 读取三个指定输入;
  3. 按要求分类;
  4. 创建 summary.md
  5. 重新读取结果并检查章节。

模型也可能判断错。它可能漏掉限制、误解原文,或者把“建议”写成已经发生的事实。模型负责提出动作,不代表动作天然正确。

4. 工具:把判断变成真实动作

工具负责接触模型外部的世界,例如:

  • 文件工具读取、搜索和修改文件;
  • 终端工具执行命令;
  • 网页工具获取公开信息;
  • 浏览器工具操作网页界面;
  • 图像工具读取或生成图片。

工具有两个重要边界。

第一,**没有对应工具,模型就不能完成对应的真实操作。**它可以解释怎样创建文件,但没有文件工具时,不能声称文件已经存在。

第二,工具返回的是观察结果,不是最终结论。“命令退出码为 0”只能说明命令正常结束,不一定说明业务结果正确;“文件存在”也不代表内容准确。

5. Agent 循环:行动后再观察

普通问答常常是一次输入、一次输出。Agent 任务需要多轮内部循环:

上图中的“模型判断—执行与观察”会重复发生,直到任务完成、需要人工决定,或触及限制。

上一篇中,可靠的流程不是“写完就结束”,而是“写完以后重新读取 summary.md,再对照任务要求”。

但循环越长,不代表质量越高。目标模糊时,Agent 可能做很多无关动作。限制工具范围、写清验收标准,通常比要求它“多思考几轮”更有效。

6. 权限确认:决定能不能做,不决定做得对不对

权限确认回答的是:这个动作是否在当前授权范围内?

例如,任务只允许新建 summary.md

动作是否符合边界原因
读取三个指定输入完成任务所需
新建 summary.md明确交付物
修改 event-notes.txt原文件禁止修改
搜索整个主目录超出当前目录
联网补充活动背景任务明确不联网

即使你批准创建 summary.md,文件里仍可能有事实错误。批准动作和验收结果是两道不同的门。

权限提示也不是完整沙箱。Hermes 的本地工具通常在运行 Hermes 的系统用户权限内工作。审批能降低误操作,但不能替代目录隔离、最小权限、备份和人工检查。

Tool 和 toolset 有什么区别

  • Tool 是一个具体动作,例如读取文件或执行终端命令。
  • Toolset 是一组相关工具的开关和边界,例如 fileterminalweb

可以用下面的命令查看当前工具状态:

bash
hermes tools list

本篇不要求修改工具配置。新人阶段的原则是:任务不需要的能力,不必为了“以后可能会用”全部打开。

为什么 Hermes 会“看起来完成了”,实际没有完成

常见原因有四类:

目标不完整

“帮我整理一下”没有说明输入、输出和完成标准。模型只能自行猜测。

工具没有执行成功

模型计划创建文件,但工具可能因路径、权限或依赖失败。必须读取真实工具结果。

观察不充分

文件成功写入,但 Agent 没有重新读取,也没有检查是否漏掉章节。

验收标准太弱

只检查“文件存在”,没有检查事实和来源。形式通过,内容仍可能错误。

30 秒判断练习

情况一

Hermes 说:“我已经把报告保存到 report.md。”但没有显示任何写文件工具结果。

判断: 不能确认完成。先检查文件是否真实存在。

情况二

终端命令返回退出码 0,但生成的网页打开后是空白页。

判断: 命令执行成功,业务验收失败。需要检查构建产物和页面,而不是只看退出码。

情况三

你只让 Hermes 查看日志,它请求修改生产配置以“顺手解决问题”。

判断: 超出授权。拒绝修改,要求先交付只读诊断结果。

情况四

Hermes 请求读取练习目录内的三个指定文件。

判断: 与任务直接相关,可以批准,但仍需检查最终整理是否准确。

权限检查

本篇不调用工具,也不修改系统。练习只要求你判断动作和结果的关系。

需要长期保留的原则:

  • 模型提出下一步;
  • 工具产生真实影响;
  • 权限决定动作能否发生;
  • 验收决定结果是否合格;
  • 用户保留高风险和不可逆决定权。

本篇验收

  • [ ] 能说明模型和工具分别负责什么
  • [ ] 能解释 Agent 为什么需要“判断—行动—观察”的循环
  • [ ] 知道上下文不是无限、永久、自动更新的
  • [ ] 能区分工具执行成功和任务结果正确
  • [ ] 知道权限确认不是完整沙箱

下一篇

下一篇会把这些判断变成一套安全方法:怎样评估动作风险,怎样处理凭据,哪些操作可以批准,哪些操作必须停下来确认。

官方来源