🐳 第六章 Agent一轮工作的全过程
📄 一句话概括

一轮里模型可能调多次工具,每次都从同一道门走——审批、沙箱、超时、留痕一样不少;规则只写一遍,所有调用者都受管。

📝 本节和前面几节的关系

6.2 数了推进次数,这一节看每一次动手——它在第 4 章已经见过面,这里放进一轮工作的时间线里。

一、管线在时间线里的位置

一个 Turn 的每次工具调用,都完整过一遍六道关(4.4):

调 3 次工具 = 过 3 遍关卡——没有【这轮已经批过了】这回事。

审批的一次性(4.5.2)在这里体现得最直白:每次动手都是新的一次。

二、实测:规则挂在管线层

规则类插件(user-approval、sandbox-policy 等 8 件)注册在管线层,不在任何一个工具里。

工具换了一批,关卡纹丝不动——这既是 4.6 的【唯一入口】,也是本章的视角:一轮里不管调什么工具,规则恒定。

对照反面:如果每个工具自带审批逻辑,八件规则插件就得复制进每个工具——改一条规则要改 N 处。

三、多 Step 连续调用的一致性

一个 Turn 里第 1 步和第 3 步调用的工具可能完全不同,但:

一致性来自【规则在层上,不在工具里】(5.9 的机制化思想)。

四、对调试的意义

因为格式统一,一轮的流水可以整段分析:

这是 6.8.3 调试三步能成立的前提之一——账的格式统一,才好翻。

五、动手 Demo:Tool Call 要过统一执行管线

一轮里的三次调用,三次过门:

calls = ["Step 1: 列文件", "Step 2: 读文件", "Step 3: 汇总"]
gates = ["审批", "沙箱", "超时", "留痕"]
for c in calls:
    print("  %s -> 过关卡: %s" % (c, " / ".join(gates)))
print()
print("  规则挂在管线层: 工具换一批, 关卡纹丝不动")

实跑输出:

--------------------------------------------------------------------
Tool Call 要过统一执行管线
--------------------------------------------------------------------
  一轮里模型可能调多次工具,每次都从同一道门走:

    一个 Turn 调 3 次工具  =>  过 3 遍关卡
    每一遍                =>  审批、沙箱、超时、留痕一样不少

  规则只写一遍,所有调用者都受管——这就是 4.6 说的【唯一入口】
  在一轮工作里的样子。

  实测支撑:规则类插件(user-approval、sandbox-policy 等 8 件)
  注册在管线层,而不是任何一个工具里——
  **工具换了一批,关卡纹丝不动。**

每次动手都是新的一次——审批的一次性在时间线上最直白。 规则在层上不在工具里——改一条规则改一处。 格式统一让整轮流水可整段分析——为 6.8.3 铺路。

30 秒实验

  1. 复述:一个 Turn 调 3 次工具,过几遍关卡?为什么?
  2. 对照反面:规则写进每个工具里,改一条规则要动几处?
  3. 想想【这轮已经批过了,后面免批】这种设计会出什么事。

常见误区

  1. 错误:一轮里审批一次就够,后面的调用免检。——纠正:每次动手都是新的一次——审批是一次性的(4.5.2)。
  2. 错误:不同工具可以各带各的审批逻辑。——纠正:规则在管线层——带进工具里就要改 N 处。
  3. 错误:同一轮里沙箱范围可以逐步放宽。——纠正:同一轮规则恒定——一致性来自规则在层上。
自测三问(点开对答案) 1. 一个 Turn 调 3 次工具,要过几遍关卡? —— **3 遍**——每次工具调用都完整走一遍六道关。 2. 规则类插件注册在哪一层? —— **管线层**——不在任何工具里;工具换一批,关卡不动。 3. 统一管线给调试带来什么? —— **流水格式统一**——整轮可分析,能定位哪一次调用开始不对劲。

相关笔记