Agent Loop

Agent Loop 可以理解为“观察—决定—行动—再观察”的循环。它把一次复杂任务拆成许多可以核对的小步。

text
用户目标
   ↓
准备上下文与本次可用工具
   ↓
模型决定:回答,还是调用工具?
   ├─ 回答 ─────────────→ 完成
   └─ 调用工具
          ↓
   权限、参数与审批检查
          ↓
   执行并得到结果
          ↓
   把安全结果交回模型 ───→ 下一轮

一次循环发生了什么

1. 准备

系统读取当前对话、模型配置、权限、已选择 Skill 和可用 MCP Tool,组装本轮模型真正能看到的上下文。每次模型请求都会冻结当时可用的 Tool;激活 Skill 或内置能力后,下一次请求可以获得更新后的集合,但模型不能凭空发明未注册的 Tool。

2. 模型选择下一步

模型可能直接回答,也可能提出一个或一批 Tool 调用。例如先搜索文件,再读取其中两个文件。Tool 的参数必须满足结构要求。

3. Host 校验和执行

真正执行前,系统检查路径、权限、工具身份和风险策略。需要用户决定时,Run 保存可恢复状态并暂停,而不是让模型假装工具已经成功。

4. 观察结果

工具结果以有界、适合模型阅读的形式返回。过大的结果可能分页、截断或保存为独立产物;“界面显示了活动”并不代表全部原始输出都进入模型上下文。

5. 继续或结束

模型根据新证据选择下一步。如果任务完成,就生成最终回答;如果失败、取消或遇到无法恢复的问题,则以相应状态结束。

为什么审批后还能继续

等待审批时,系统会保存本次 Run 的检查点:已经看到的历史、待处理动作、工具身份和权限边界。你批准后,Host 重新校验冻结的动作并继续同一逻辑 Run,而不是让模型凭记忆重新生成一次调用。

为什么有时不应自动重试

读取失败通常可以安全重试,但写文件、调用外部 MCP 工具或向网站提交表单可能已经产生效果。如果连接在返回结果前中断,系统只能报告“结果未知”。这时再次执行可能造成重复写入,正确做法是先检查真实环境。

用户怎样影响 Loop

  • 在任务开头给出完成条件和禁止事项;
  • 选择合适权限,逐项处理审批;
  • 在 Run 进行中补充方向时,使用界面提供的引导能力;
  • 看到结果未知、冲突或来源不足时,要求先核对事实;
  • 需要停止时取消 Run,但仍检查已经跨过副作用边界的动作。

Tool 的授权细节见Tool Calling,长对话如何保持连贯见上下文管理

源文档核验 · 2026-08-23官网导入 · 2026-08-27