Agent 观察与动作

agent_observation_and_action2026-09-03 00:08:29

Agent 观察与动作描述 Agent 如何通过动作影响外部环境,再根据环境返回的观察决定下一步。这种反馈闭环使 Agent 能依据真实执行结果修正判断,而不是只靠一次文本生成完成任务。

基本关系

  • 动作(Action):Agent 向环境发出的操作,例如调用搜索工具、读取文件、提交表单或向用户提问;
  • 环境(Environment):动作实际作用的系统,例如网页、代码仓库、数据库、设备或模拟世界;
  • 观察(Observation):环境在动作之后返回给 Agent 的信息,例如查询结果、文件内容、错误码、测试报告或界面状态。

最小闭环可以表示为:

当前状态 → 选择动作 → 环境执行 → 返回观察 → 更新状态 → 选择下一动作

在大语言模型 Agent 中,动作通常表示为结构化工具调用,观察通常表示为对应的工具结果。

动作空间

动作空间是 Agent 当前允许选择的全部动作。它不仅由模型能力决定,还受到工具清单、参数约束、身份权限、运行环境和人工审批规则限制。

设计动作空间时应注意:

  • 工具职责清晰,减少功能重叠;
  • 参数足以表达任务,但避免开放无边界的任意命令;
  • 区分只读、可逆写入和不可逆操作;
  • 根据当前阶段只暴露必要工具;
  • 让“请求确认”“报告阻塞”“结束任务”也成为明确行为。

观察设计

工具返回了数据,不代表模型得到了有用观察。良好的观察应包含:

  • 明确的成功或失败状态;
  • 与本次动作对应的调用 ID;
  • 足以继续决策的结构化数据;
  • 错误码、可否重试和建议处理方式;
  • 数据来源、时间或版本等必要元信息;
  • 对过长结果的摘要、分页信息或后续读取方式。

观察必须反映真实环境。不能因为模型预期某操作会成功,就省略实际执行和结果检查。

部分可观察性

Agent 通常只能看到环境的一部分。例如,文件搜索没有返回结果,可能表示内容不存在,也可能是路径、权限或查询条件有误。因此应区分“确认不存在”“尚未检查”和“检查失败”,必要时通过额外动作获取证据。

从观察更新状态

收到观察后,Harness 或 Agent 应:

  1. 将结果与正确的动作对应;
  2. 判断结果是否可信、完整且仍然有效;
  3. 更新任务状态和已有假设;
  4. 决定继续、重试、改用其他动作、请求人工介入或结束;
  5. 保存必要轨迹,供调试和评测使用。

常见失败

  • 模型生成了动作描述,但 Harness 没有真正执行;
  • 工具只返回自然语言,成功与失败无法可靠判断;
  • 错误观察被当成空结果,导致错误结论;
  • 旧观察在环境变化后仍被当作当前事实;
  • Agent 重复相同动作,却没有获得新的信息;
  • 外部文本中的恶意指令被误当成高优先级规则。

与其他概念的关系

参考资料

本页目录