📄 一句话概括
DSH 是主版本 0 的预览软件,接口明天就可能换——能带走的是四条不依赖函数名的判断。
📝 本节和前面几节的关系
8.6 讲了怎么衡量,这一节回答一个更实在的问题:这一课读完,到底留下什么。
一、为什么不能带走 API
1.5 Developer Preview 已经讲清:版本号 0 开头,接口不承诺兼容。
本课实测的是 0.2.0-rc.2——rc 还指在预览候选上。
把 API 背下来,等于把有效期绑在一个版本号上。
二、四条能带走的判断
- 能力与实现分离:能力是 id,实现是包(7.3.1)。
- 边界先划:先写不做什么(2.2、8.3.2)。
- 规矩只写一遍:所有动手路径过同一道门(4.4、6.3)。
- 一切留证据:能回放、能追溯、能解释(6.5、6.6)。
四条都不含任何函数名、任何包名。
三、为什么是这四条
它们都是关于结构的判断,不是关于接口的知识。
- 接口回答【怎么写】,换版本就作废。
- 结构回答【该怎么组织】,换实现照样成立。
本课反复用的一句话:学结构,别背接口(1.5 的结论)。
四、换个 Harness 还成不成立
把四条放到任何一套 Agent Runtime 上问一遍:
- 你的能力有没有和实现焊死?
- 你有没有先写清【不做什么】?
- 你的所有动手路径是不是都过同一道门?
- 出问题时,你能不能拿出证据?
四问过不去,换哪家 Runtime 都一样。
五、动手 Demo:值得带走的不是某个 API
DSH 是 developer preview,接口明天就可能换;留下的是四条判断:
rules = ["能力与实现分离", "边界先划",
"规矩只写一遍", "一切留证据"]
for i, r in enumerate(rules, 1):
print(" %d. %s" % (i, r))
print(" 这四条不依赖任何一个函数名")
实跑输出:
--------------------------------------------------------------------
值得带走的不是某个 API
--------------------------------------------------------------------
DSH 是 developer preview(主版本 0),接口明天就可能换。
但这一课真正要留下的,是四条**换版本也不变**的判断:
判断 一句话 本课出处
---------------------------------------------------------
能力与实现分离 能力是 id,实现是包 7.3.1
边界先划 先写不做什么 2.2/8.3.2
规矩只写一遍 所有路径过同一道门 4.4/6.3
一切留证据 能回放、能追溯、能解释 6.5/6.6
---------------------------------------------------------
这四条不依赖 DSH 的任何一个函数名——**换一家 Harness 也成立**。
四条全是结构判断,不含任何一个函数名或包名。 换个 Harness,把这四条当问卷问一遍——过不去的,换哪家都一样。 这正是 1.5 说的那句:学结构,别背接口。
30 秒实验
- 把四条判断抄下来,对你现在用的工具逐条打分。
- 找一条你以前记的【API 用法笔记】,问问它换版本后还能不能用。
- 挑一条判断,想想它在你的项目里对应的具体做法是什么。
常见误区
- 错误:把这一课当 DSH 使用手册。——纠正:它是结构课——手册会随版本重印,结构不会。
- 错误:这四条太抽象,没法用。——纠正:每条都有对应动作——分离=找接缝,边界=写不做栏,只写一遍=收口到一道门,留证据=能 dump 能回放。
- 错误:等 DSH 发 1.0 再学更划算。——纠正:学的正是它身为 0.x 时暴露出来的结构——等 1.0 反而看不清哪些是权衡。
自测三问(点开对答案)
1. 为什么不能带走 API? —— 因为**版本号 0 开头,接口不承诺兼容**——本课实测的还只是 0.2.0-rc.2。 2. 能带走的是哪四条判断? —— **能力与实现分离、边界先划、规矩只写一遍、一切留证据**。 3. 为什么是这四条? —— 因为它们是**关于结构的判断**——接口回答【怎么写】,结构回答【该怎么组织】;换实现照样成立。- ☐ 下一节(8.8 Harness Lab 的最终架构)
相关笔记
- Harness Lab 的最终架构 —— 四条判断拼成一栋楼
- Developer Preview —— 学结构别背接口
- Runtime 到底多做了什么 —— 结构视角的上一站
- 🐳 DeepSeek Harness · 索引