同一个任务交给四套预设,比的是轨迹不是答案;往返次数少的真正好处是——中间结果不用一轮轮塞回上下文。
2.4.2 比的是【静态的组成】,这一节比【动态的走法】。到这里,第二章的三件动手事(跑起来、选工作区、比轨迹)就齐了。
一、实验怎么设计
书里给的实验设计很讲究:同一句话、同一个模型、同一个工作区, 只换预设,然后记录过程。
三个变量被固定住,只剩一个在动——这是控制变量。 注意它比的是轨迹,不是最终答案。为什么?因为:
- 答案只告诉你【成没成】。
- 轨迹告诉你【它是怎么一步一步走到的】。
调试的时候,后者比前者有用得多。答案错了,你得靠轨迹去找错在哪一步。
二、四套的走法差异
拿一个简单任务看:【列出工作区里所有 .py 文件,统计总行数】。
- Standard:列文件 → 读文件 → 自己加总。2~3 次往返。
- PTC:写一段程序 → 一次执行拿结果。1~2 次往返。
- Minimal:自己敲命令、读输出、再算。2~4 次往返。
- Creative:同 Standard,但它还能看运行时内部。2~3 次往返。
同一件事,四条路。差别不在【谁聪明】,而在谁手里有趁手的家伙。 PTC 少走几步,不是因为它更会算,是因为它能把【多步】打包成【一段程序】。
三、往返次数不是成绩单
看到 PTC 往返最少,很容易得出【PTC 最好】。这个结论是错的。
往返次数少只说明一件事:中间结果不用一轮轮塞回上下文。 它省的是上下文,不是【步骤】。
反过来,什么时候次数少反而不好?
当下一步高度依赖人的反馈时。比如你说【先看看有哪些文件,再决定改哪个】—— 这种时候每一步都停下来给你看一眼,比一把梭做完要好。
所以选预设要看任务形状,不是看次数排行榜。 步骤固定、数据流清楚的任务适合 PTC;需要边走边看的任务适合 Standard。
四、怎么看轨迹
轨迹里最该看的是模型每一轮看到的内容—— 这正是第 6 章整章要讲的东西。
可以这样理解:轨迹是一份完整记录,记下了【模型这一轮看到了什么、做了什么决定】。 有了这份记录,你才能回答那类最难回答的问题:
- 它为什么没看到那个文件?→ 看它那一轮的上下文里有没有。
- 它为什么改了不该改的地方?→ 看它读到的是不是过期内容。
- 它是模型不行还是环境不行?→ 先看证据,再下判断。
没有轨迹的 Agent 只能靠猜,有轨迹的 Agent 可以查。 这也是 DSH 把【可追溯】当成一等公民的原因。
五、动手 Demo:同一句话,四套预设的轨迹不一样
同一个任务在四套预设下的走法对比(往返次数为示意区间):
traj = [("Standard", "列文件 → 读文件 → 自己加总", "2 ~ 3"),
("PTC", "写一段程序 → 一次执行拿结果", "1 ~ 2"),
("Minimal", "自己敲命令、读输出、再算", "2 ~ 4"),
("Creative", "同 Standard,但能看运行时内部", "2 ~ 3")]
for n, way, r in traj:
print(" %-9s %-28s 往返 %s" % (n, way, r))
print()
per = 5000
print("每次往返带回的中间结果约 %d token" % per)
print("Standard 走 3 次 = %d token" % (per * 3))
print("PTC 压成 1 次 = %d token + 一小段程序" % per)
实跑输出:
--------------------------------------------------------------------
同一句话,四套预设的轨迹不一样
--------------------------------------------------------------------
书里给的实验是:把同一个任务分别交给四套预设,
记录各自的执行轨迹,再比较——注意比较的是轨迹,不是最终答案。
拿一个简单任务看:【列出工作区里所有 .py 文件,统计总行数】
预设 大致走法 往返次数
--------------------------------------------------------
Standard 列文件 → 读文件 → 自己加总 2 ~ 3
PTC 写一段程序 → 一次执行拿结果 1 ~ 2
Minimal 自己敲命令、读输出、再算 2 ~ 4
Creative 同 Standard,但能看运行时内部 2 ~ 3
--------------------------------------------------------
这里的【往返次数】指的是模型和工具之间来回几次。
次数少不等于效果好——次数少的真正好处,是中间结果不用一轮轮塞回上下文。
算一笔账:同样的任务,上下文占用差多少?
每次往返带回来的中间结果 约 5000 token
Standard 走 3 次 约 15000 token
PTC 压成 1 次 约 5000 token + 一小段程序
这就是 PTC 那件【多说的一句话】换来的东西:
把【多轮对话】换成【一段程序】,省下的是上下文,不是时间。
最后两行是这一节的账:PTC 用【一段程序】换掉了【两轮来回】。 省下来的 10000 token 不是抽象数字——它占的是模型本来能用来思考的空间。 上下文里少堆两坨中间结果,模型就多两分余地放在正事上。
30 秒实验
- 挑一个短任务,在两套预设里各跑一次,把过程看一遍。
- 数一下模型说了几次话、工具被调了几次。
- 在轨迹里找找【模型看到的内容】——那正是第 6 章要讲的东西。
常见误区
- 错误:往返次数越少越好。——纠正:少只说明中间结果不用塞回上下文;遇到需要人拍板的任务,次数少反而不好。
- 错误:四套跑同一个任务,答案应该一模一样。——纠正:工具不同,能做的事就不同,答案自然可能不同。
- 错误:轨迹只是日志,没什么用。——纠正:轨迹是调试 Agent 的主要证据来源——先看轨迹,再判断是不是模型的问题。
自测三问(点开对答案)
1. 为什么比轨迹而不是比答案? —— **轨迹反映的是【过程里发生了什么】**,答案只反映结果;调试时过程更有用。 2. PTC 省下来的到底是什么? —— 上下文——**中间结果不用一轮轮塞回去,直接在一段程序里消化掉**。 3. 什么时候往返次数少反而不好? —— 当下一步**高度依赖人的反馈**时;这时每一步都停下来看一眼,比一把梭做完好。- ☐ 下一节(2.5 为什么官方 Benchmark 会选 Minimal)
相关笔记
- 观察 composition 的【差分】 —— 上一篇看静态组成,这一篇看动态走法
- 为什么官方 Benchmark 会选 Minimal —— 下一篇看官方怎么做对照
- Developer Preview —— 轨迹与版本一起,构成本书的【以当下为准】原则
- 🐳 DeepSeek Harness · 索引