🐳 第二章 从零开始运行DSH
📄 一句话概括

把四套的插件清单做差集,结果出奇地干净——PTC 和 Creative 都只是 Standard 加一件东西,Minimal 则是另起炉灶。

📝 本节和前面几节的关系

2.4.1 认了脸,这一节做书里给的那个实验:观察 composition 的差分。这是全书第一次用【做差集】的方式读 Harness,这个方法后面还会反复用到。

一、差分怎么做

做法简单到有点朴素:把每套预设的顶层插件清单列出来,两两做差集。

数据从哪儿来?就是上一步 dump 出来的配置树—— 里面 preset-* 各有一段 plugins: 列表,逐项读出来就行。

读的时候有个细节要注意:只数最外层那一层。 因为插件可以分组(配置里有 group: true 的写法), 组里面还套着别的插件——那些是组内的,不算顶层。 数错了层级,差分结果就会失真。

二、结果:加一件 vs 换一批

以 Standard 为基准做差集,结果干净得不像是真的:

三条读出来是三件事:

  1. PTC = Standard + 一件东西。那件东西把工具的呈现方式换掉了。
  2. Creative = Standard + 一件东西。那件东西给了它读写自身运行时的能力。
  3. Minimal 跟 Standard 几乎不重叠。它换了个完全不同的 shell 实现。

前两套是【加一件】,第三套是【换一批】——这是两种完全不同的改法。

三、Standard 的 19 项里有什么

顺带把 Standard 那 19 项看一遍,它们大致分四类:

最后一项值得多看一眼:连【装插件】这个动作本身都是一个可装卸的插件。 这不是炫技,是那条【官方与三方平级】的规矩落到实处的证明—— 如果插件管理器是特权,那它就不该长得跟别的插件一样。

四、这个方法为什么值得学

做完这个实验,你会得到一样比数据更值钱的东西:一个方法。

遇到【这两个东西差在哪】这类问题,最笨也最可靠的做法就是: 把两者的组成拉出来,做差集。

它比读文档可靠——文档会漏、会过时;配置不会撒谎。 它也比看截图可靠——截图里看不出少了哪个插件。

而且这个方法后面每一章都还能用:第 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 秒实验

  1. 自己把配置树里的四套插件清单抠出来,做一遍差集。
  2. 数一下 Standard 的 19 项里,有哪几项是【工具】、哪几项是【机制】。
  3. 想一想:如果让你从 Standard 里删掉三项,你会删哪三个、为什么。

常见误区

  1. 错误:PTC 是完全不同的一套系统。——纠正:PTC = Standard + 一件东西,差集里只多一项(把工具的呈现方式换掉)。
  2. 错误:Minimal 是 Standard 的精简版。——纠正:Minimal 跟 Standard 几乎不重叠,它换的是另一个 shell 实现。
  3. 错误:差分只看数量就够了。——纠正:要看多出来的那一项是什么——tool-cordis 和 tool-presentation 的含义完全不同。
自测三问(点开对答案) 1. 相对 Standard,PTC 多出什么? —— `tool-presentation` 一项——把工具的呈现方式换成【程序化编排】那一种。 2. 相对 Standard,Creative 多出什么? —— `tool-cordis` 一项——让 Agent 能读写自身运行时的能力。 3. Minimal 为什么不算【精简版】? —— 因为它换的是**另一条技术路线**(`persistent-shell`),跟 Standard 的 19 项几乎不重叠;**它是另起炉灶,不是删减。**

相关笔记