pigo Agent Loop

两层循环:流式回复 → 停止原因分派 → 工具执行 → 回填 → 续跑

pigo Agent Loop 两层循环:流式回复 → 停止原因分派 → 工具执行 → 回填 → 续跑 01 / 用户 / 驱动层 02 / Agent 循环 03 / Provider / LLM 04 / 工具执行 EX / 信任边界 接收请求 流式推理 执行 + 回填 内层 turn 循环 用户请求 · prompt / REPL · 用户 / 驱动层 › 接收请求 用户请求 prompt / REPL 最终回答 · agent_end · finish() · 用户 / 驱动层 › 执行 + 回填 最终回答 agent_end · finish() Agent 循环 · turn_start · Agent 循环 › 内层 turn 循环 › 接收请求 · 外层续跑判定 Agent 循环 turn_start 外层续跑判定 停止原因分派 · stop / tool_use / length · Agent 循环 › 内层 turn 循环 › 流式推理 停止原因分派 stop / tool_use / length Provider · SSE · 流式解码 message_update · Provider / LLM › 流式推理 · 增量文本 Provider · SSE 流式解码 message_update 增量文本 工具批量执行 · read/write/edit/bash… · 工具执行 › 执行 + 回填 · 串行 / 并发 工具批量执行 read/write/edit/bash… 串行 / 并发 信任闸门 · 副作用工具确认 · 信任边界 › 执行 + 回填 · trust gate 信任闸门 副作用工具确认 trust gate 请求消息 停止原因 tool_use 需确认 结果 回填并续跑 Legend User UI Agent logic Policy Tool action Context / trace

两层循环

  • • 外层:判定是否续跑(还有工具要跑就继续)
  • • 内层:一个 turn 内流式回复 + 工具执行
  • • 多条终止路径汇于唯一出口 finish()
  • • finish 计算新消息、发 agent_end、关流

停止原因分派

  • • stop:本轮结束,走收尾
  • • tool_use:执行工具后回填并续跑
  • • length:上下文超限,触发压缩
  • • 分派逻辑是循环的中枢

工具与信任

  • • read/grep/find 只读,直接执行
  • • bash/write/edit 副作用,经信任闸门
  • • 批量执行支持串行与并发调度
  • • 结果回填为 tool_result 进入下一轮