AI 简明手册
Pi 源码解读 · 定位与分层一轮 Agent 的事件与工具流

一轮 Agent 的事件与工具流

先盯住一个动作

Pi 的 Agent 循环由事件串联:接收消息、发起模型请求、解析工具调用、执行并回填工具结果;只要模型继续请求工具,循环就进入下一轮模型调用。

沿执行轨迹走

  1. 事件是可观察边界

    pi-agent-core 公开 agent_start/end、turn_start/end、message_start/update/end 和 tool_execution_start/update/end 等事件,UI 与宿主据此观察同一条运行链。

    [repo]

  2. 工具批次的顺序语义

    默认模式先按顺序完成工具调用的预检,再并发执行允许的工具;完成事件按实际完成顺序发出,但写入上下文的 tool result 仍按模型原始调用顺序排列。任一工具声明 sequential 时,整批顺序执行。

    [repo]

  3. 停止发生在明确边界

    工具结果通常触发下一次模型调用;工具结果可共同给出 terminate 提示,宿主也能在 turn 完成后用 shouldStopAfterTurn 结束循环。

    [repo]

每一步改变了什么

  • 接入审计、取消或 UI 时,应监听事件和钩子,而不是从终端文本反推内部状态。

  • 并发工具可能改变完成顺序;依赖前一步副作用的调用应显式选择顺序执行。

这条轨迹没有说明什么

  • 事件顺序描述正常完成路径;Provider 错误、用户取消和 Extension 拦截会在相同边界产生不同终止结果。

来源与核验

  1. [repo] Pi 官方源码(固定 revision)
  2. [docs] Pi 官方文档

Revision:853a80d26c90a14c1886f0ebb8ffaae133ca2185 · 核验日期:2026-08-31