把四套的插件清单做差集,结果出奇地干净——PTC 和 Creative 都只是 Standard 加一件东西,Minimal 则是另起炉灶。
2.4.1 认了脸,这一节做书里给的那个实验:观察 composition 的差分。这是全书第一次用【做差集】的方式读 Harness,这个方法后面还会反复用到。
一、差分怎么做
做法简单到有点朴素:把每套预设的顶层插件清单列出来,两两做差集。
数据从哪儿来?就是上一步 dump 出来的配置树——
里面 preset-* 各有一段 plugins: 列表,逐项读出来就行。
读的时候有个细节要注意:只数最外层那一层。
因为插件可以分组(配置里有 group: true 的写法),
组里面还套着别的插件——那些是组内的,不算顶层。
数错了层级,差分结果就会失真。
二、结果:加一件 vs 换一批
以 Standard 为基准做差集,结果干净得不像是真的:
- PTC 相对 Standard:多 1 项(
tool-presentation),少 0 项。 - Creative 相对 Standard:多 1 项(
tool-cordis),少 0 项。 - Minimal 相对 Standard:多 1 项(
persistent-shell),少 18 项。
三条读出来是三件事:
- PTC = Standard + 一件东西。那件东西把工具的呈现方式换掉了。
- Creative = Standard + 一件东西。那件东西给了它读写自身运行时的能力。
- Minimal 跟 Standard 几乎不重叠。它换了个完全不同的 shell 实现。
前两套是【加一件】,第三套是【换一批】——这是两种完全不同的改法。
三、Standard 的 19 项里有什么
顺带把 Standard 那 19 项看一遍,它们大致分四类:
- 人格与指令:
persona、agent-instructions。 - 工具:
tool-bash、tool-pwsh、tool-fs、tool-fs-search、tool-jobs、tool-skill、tool-goal、tool-ask-user、tool-todo、tool-web。 - 机制:
planning(规划模式)、compaction(上下文压缩)、delegation(子代理委派)、present(结果呈现)。 - 元能力:
tool-plugin-manager——管理插件的那个插件。
最后一项值得多看一眼:连【装插件】这个动作本身都是一个可装卸的插件。 这不是炫技,是那条【官方与三方平级】的规矩落到实处的证明—— 如果插件管理器是特权,那它就不该长得跟别的插件一样。
四、这个方法为什么值得学
做完这个实验,你会得到一样比数据更值钱的东西:一个方法。
遇到【这两个东西差在哪】这类问题,最笨也最可靠的做法就是: 把两者的组成拉出来,做差集。
它比读文档可靠——文档会漏、会过时;配置不会撒谎。 它也比看截图可靠——截图里看不出少了哪个插件。
而且这个方法后面每一章都还能用:第 3 章比较四套预设的能力差异、 第 4 章比较三种扩展层次的边界、第 8 章验证你自己写的 Preset—— 都是同一件事:列出来,做差集。
五、动手 Demo:差在哪几行
把四套的顶层插件清单做差集(以 Standard 为基准):
diff = [("PTC", "tool-presentation", "无"),
("Minimal", "persistent-shell", "18 项"),
("Creative", "tool-cordis", "无")]
print("相对 Standard 的差分:")
for name, more, less in diff:
print(" %-10s 多出 %-18s 少掉 %s" % (name, more, less))
print()
print("Standard 顶层插件数 = 19,Minimal = 2")
print("倍数 = %.1f" % (19 / 2))
实跑输出:
--------------------------------------------------------------------
差在哪几行
--------------------------------------------------------------------
把四套的顶层插件清单拉出来做差集(以 Standard 为基准),
结果干净得不像是真的:
预设 多出 少掉
-----------------------------------------
PTC tool-presentation 无
Minimal persistent-shell 18 项
Creative tool-cordis 无
-----------------------------------------
也就是说:
- PTC = Standard + 一件东西。那件东西把工具的呈现方式换掉了。
- Creative = Standard + 一件东西。那件东西给了它读写自身运行时的能力。
- Minimal 跟 Standard 几乎不重叠——它换了个完全不同的 shell 插件。
Standard 那 19 项,完整清单在这里:
persona agent-instructions tool-bash
tool-pwsh tool-fs tool-fs-search
tool-jobs skill-filesystem tool-skill
command-goal tool-goal planning
compaction delegation tool-ask-user
tool-todo tool-web present
tool-plugin-manager
这 19 项里,前两项是【人格与指令】,最后一项是【插件管理器本身】——
连【管理插件的那个插件】都是个插件。
算一笔账:Standard 19 项 对 Minimal 2 项,相差 9.5 倍。
而这个倍数,就是下一节【基准测试为什么要用 Minimal】的答案。
注意【多出】那一列里各是什么东西,这比数量重要得多:
PTC 多的是 tool-presentation(呈现方式的替换),
Creative 多的是 tool-cordis(改造自身的能力)——
同是【多一项】,含义天差地别。
所以做差集的时候,别停在数数量上,一定要看多出来的那一项叫什么。
30 秒实验
- 自己把配置树里的四套插件清单抠出来,做一遍差集。
- 数一下 Standard 的 19 项里,有哪几项是【工具】、哪几项是【机制】。
- 想一想:如果让你从 Standard 里删掉三项,你会删哪三个、为什么。
常见误区
- 错误:PTC 是完全不同的一套系统。——纠正:PTC = Standard + 一件东西,差集里只多一项(把工具的呈现方式换掉)。
- 错误:Minimal 是 Standard 的精简版。——纠正:Minimal 跟 Standard 几乎不重叠,它换的是另一个 shell 实现。
- 错误:差分只看数量就够了。——纠正:要看多出来的那一项是什么——
tool-cordis和tool-presentation的含义完全不同。
自测三问(点开对答案)
1. 相对 Standard,PTC 多出什么? —— `tool-presentation` 一项——把工具的呈现方式换成【程序化编排】那一种。 2. 相对 Standard,Creative 多出什么? —— `tool-cordis` 一项——让 Agent 能读写自身运行时的能力。 3. Minimal 为什么不算【精简版】? —— 因为它换的是**另一条技术路线**(`persistent-shell`),跟 Standard 的 19 项几乎不重叠;**它是另起炉灶,不是删减。**- ☐ 下一节(2.4.3 比较同一任务的执行轨迹)
相关笔记
- 对照 4 套 Preset —— 上一篇认脸,这一篇拆开做差集
- 比较同一任务的执行轨迹 —— 下一篇从静态组成转向动态走法
- 为什么这不只是【多加几个 Tool】 —— 那里讲的【接缝】和【改动粒度】,在这一篇的差集里看得见实物
- 🐳 DeepSeek Harness · 索引