📄 一句话概括
PTC 省的是往返,不是判断——步骤很少、每步要看上一步结果、需要人逐步审阅,这三种情况用 Native 更划算。
📝 本节和前面几节的关系
7.3 的最后一块:把 PTC 的适用边界说清。会用它不算本事,知道什么时候不用它才算。
一、划算的那一类
- 步骤固定、判据是字符串或数值 → 控制流确定,程序一次写完。
- 批量重复(同一模板套 N 次)→ 循环是最典型的确定性控制流。
一句话:步骤多、依赖确定。
二、不划算的这三类
- 步骤很少(1~2 步):写程序的固定开销比省下的往返还大。
- 每步要看上一步结果再决定:判断本身就是模型的活,挪不走。
- 需要人逐步审阅中间过程:程序的中间态不在上下文里,人看不见。
三、怎么算这笔账
第一步,数步骤:N 大不大? 第二步,看依赖:下一步只依赖上一步的输出格式(确定),还是依赖输出内容的含义(不确定)?
两步都偏确定,才选 PTC;只要第二步是【要理解】,就别绕。
四、一句口诀
判断少、步骤多的活交给 PTC;判断多的活别绕。
这也是 7.3.2 那句【压缩控制流、不压缩判断】的直接推论——同一件事,正着说一遍、反着说一遍。
五、动手 Demo:PTC 什么时候反而不划算
判据只看两条:依赖有多确定、每步要多少判断。
cases = [("步骤固定、判据确定", "PTC"), ("步骤很少 1~2 步", "Native"),
("每步看结果再决定", "Native"), ("需要人逐步审阅", "Native"),
("批量重复套模板", "PTC")]
for c, pick in cases:
print(" %-18s -> %s" % (c, pick))
print()
print(" 口诀: PTC 省的是往返, 不是判断")
实跑输出:
--------------------------------------------------------------------
PTC 什么时候反而不划算
--------------------------------------------------------------------
判据只看两条:步骤之间**依赖有多确定**、每步要多少判断。
情形 更适合 为什么
-----------------------------------------------------------------------
步骤固定、判据是字符串或数值 PTC 控制流确定,程序一次写完
步骤很少(1~2 步) Native 写程序的固定开销不值
每步要看上一步结果再决定 Native 判断本身就是模型的活
需要人逐步审阅中间过程 Native 程序的中间态不在上下文里
批量重复(同一模板套 N 次) PTC 循环是最典型的确定性控制流
-----------------------------------------------------------------------
一句话:**PTC 省的是往返,不是判断**。
判断少、步骤多的活交给 PTC;判断多的活别绕。
四类里三类留给 Native——PTC 不是越用越好。 写程序的固定开销是真实的:1~2 步的活包成程序反而更贵。 判据只有两条,不用记案例,记判据。
30 秒实验
- 把自己的一个任务按两条判据过一遍,决定用哪条路。
- 举一个【步骤多但每步都要判断】的例子,说明为什么它不适合 PTC。
- 想想【需要人逐步审阅】为什么是 Native 的加分项。
常见误区
- 错误:PTC 是更先进的写法,应该尽量用。——纠正:它只在特定形状的任务上划算——步骤多、依赖确定。
- 错误:步骤越少越该用 PTC。——纠正:写程序的固定开销反而更大——1~2 步的活交给 Native。
- 错误:PTC 能省掉模型的判断。——纠正:判断挪不走——每步要看结果再决定的活,就得让模型看。
自测三问(点开对答案)
1. PTC 划算的两类情形? —— **步骤固定、判据确定**与**批量重复套模板**。 2. 不划算的三类情形? —— 步骤很少(1~2 步)、每步要看上一步结果、需要人逐步审阅中间过程。 3. 判断用不用 PTC 的两条判据? —— 数步骤(N 大不大)、看依赖(只依赖输出格式,还是依赖内容的含义)。- ☐ 下一节(7.4.1 同一种 Subagent 能力,可以有不同的实现)
相关笔记
- PTC 压缩的是确定性控制流,不是依赖语义理解的决策 —— 本节的正着说
- PTC:让模型用程序编排已有工具 —— 好处那一面
- 比较同一任务的执行轨迹 —— 比轨迹不比答案
- 🐳 DeepSeek Harness · 索引