Agent Harness 从入门到精通 / C19
第 19 章 · 从 0 到大师:90 天与毕业标准
本篇目标:定位自己现在在哪一级,并知道下一级缺什么。 全系列到此收束:门槛不在安装,在心智模型。
19.1 四级能力矩阵(自评用)
逐格打勾,不确定的算没过。
| 能力 | L1 使用者 | L2 Harness 工程师 | L3 运行时工程师 | L4 架构师 |
|---|---|---|---|---|
| 选对模式、控制上下文开销 | ☐ | ☐ | ☐ | ☐ |
| 读 Trajectory、做模型/环境二分 | ☐ | ☐ | ☐ | ☐ |
| 把失败固化成带测试的规则 | — | ☐ | ☐ | ☐ |
| 用 hook 把建议升级为强制 | — | ☐ | ☐ | ☐ |
| 手写并发布插件、理解 effect 撤销 | — | — | ☐ | ☐ |
| 用 patch 造自定义预设、看懂 dump-config | — | — | ☐ | ☐ |
| 设计多 Agent 状态契约与隔离 | — | — | ☐ | ☐ |
| 设计可复现 A/B 与 eval suite | — | — | ☐ | ☐ |
| 七层生产架构 + 威胁模型 + 成本模型 | — | — | — | ☐ |
| 不改模型、用 Harness 变更稳定提升评测分数 | — | — | — | ☐ |
定级规则:取最低未打勾项所在的列减一。允许某一列全勾但下一列一项没有——那说明你在刷熟练度,没在跨层级。
19.2 90 天逐周计划
| 周 | 主题 | 动手内容 | 产出 | 章 |
|---|---|---|---|---|
| 1 | 拆系统 | 把当前项目每个模块归类 Model / Harness,标六要素 | 组件归类清单 + 缺口表 | 01 |
| 2 | 手写 loop | 跑通 mini_harness.py,故意造死循环再修 |
可运行代码 + JSONL 日志 | 02 |
| 3 | 事件流 | 画 turn/step/tool 时序,从日志重建一次请求 | 事件流图 + 复盘模板 | 03 |
| 4 | 安装与 dump | 隔离环境跑起 DSH,dump 插件树 | dump-config.txt |
04 |
| 5–6 | 四模式 | 每模式跑一个真实任务,记录 5 个指标 | 模式对比表 | 05 |
| 7 | 故障定位 | 故意注入 3 类故障,用极简对照定责 | 3 份故障复盘 | 06 |
| 8–9 | Ratchet | 记录 5 个真实失败,写 5 条规则 + 1 个 coverage test | AGENTS.md + 测试 |
07 |
| 10 | 护栏 | 上 PreToolUse / PostToolUse / Stop,故意违规被拦 | settings.json + 截图 |
08 |
| 11 | 上下文经济学 | 测「你好」开销,迁 1 份大文档到 Skill | 工具成本表(前后) | 09 |
| 12 | PTC | 跑通一条批量流水线,只回聚合结果 | PTC 程序 + token 对比 | 09 |
| 13 | 压缩与记忆 | 定 80% 阈值、写 MEMORY.md、测压缩鲁棒性 |
预算表 + 记忆模板 | 10 |
| 14 | 理论 | 读 arXiv:2608.25512 摘要,列可逆/不可逆副作用 | 副作用清单 | 11 |
| 15–16 | 插件 | 手写 Tool 插件,安装→加载→卸载→再加载验证 | GitHub 仓库 + dsh-plugin |
12 |
| 17 | 预设 | 造一个「写作模式」,dump 前后 diff | cordis.patch.yml + README |
13 |
| 18 | 编排 | 三路并行流水线 + 状态契约 + worktree 隔离 | 契约表 + 验证记录 | 14 |
| 19–20 | 评测 | 三臂 A/B 实验 + 10 用例 eval suite | 对照实验报告 | 15 |
| 21 | 生产七层 | 逐层勾 checklist,补缺失层 | 勾验清单 | 16 |
| 22 | 安全 | 威胁模型 10 条 + 最小权限配置 + 注入演练 | 威胁模型 + 演练记录 | 17 |
| 23 | 规模化 | 10 并发架构图 + 日预算模型 + 熔断演练 | 架构图 + 预算表 | 18 |
| 24 | 收束 | 整理 5 个作品,自评,写复盘 | 作品集 + 下一篇计划 | 19 |
每周固定动作:把本周新增的规则/配置/用例全部进 git。没有 commit 的一周不算完成。
19.3 五个作品(Portfolio 验收)
| # | 作品 | 第三方验收方式 |
|---|---|---|
| 1 | mini_harness.py + 运行日志 |
别人拿去能跑通一次真实文件编辑并自停 |
| 2 | 一份 Harness 故障复盘 | 别人能按你的日志重建当时模型看到的输入 |
| 3 | 一个开源插件 | 陌生人按 README 装上即用,卸载后无残留 |
| 4 | 一组 A/B 对照实验 | 数字可复现,含失败样本与证伪条件 |
| 5 | 七层生产 Harness + 勾验清单 | 无人值守跑满 7×24,含告警、审计、熔断记录 |
与 FDE 系列「每阶段必须产出可交付物」的编排一致。没有作品的能力自评不作数。
19.4 毕业标准(八问)
不看资料,能答出并落地以下八条,才算 L4:
- 画出 turn / step / tool call / session event 完整时序,指出哪些是 durable 事件
- 解释
ctx.effect()为何能撤销监听器却不能撤销一条已执行的 shell 命令 - 说清「规则文件约 70% 遵循、hook 100% 强制」的机制差异,并给出迁移方案
- 写出
return只回传聚合结果的 PTC 程序,说明省下的 token 来自哪里 - 设计固定环境、同一题面、彻底重置的对照实验,列出必须记录的 5 个数字
- 列出生产 Harness 七层,说明为什么 gate 只放 side effect 之前
- 在不改模型前提下,提出 3 个可量化验证的 Harness 改进假设
- 说清
SAFETY.md「未经过安全审计」对架构决策的具体约束
19.5 「伪大师」的六个信号
| 信号 | 真实情况 |
|---|---|
| 张口就是「换个更强的模型」 | 没有做过极简对照,没有定责 |
AGENTS.md 几百行,没有一条能指向具体事故 |
抄来的模板,占着上下文预算 |
| 把禁令写在系统提示词里就认为安全了 | 建议 ≠ 边界(第 02、08、17 章) |
| 靠「感觉变快了」判断优化有效 | 没有固定变量、没有 eval suite |
| 一次上齐四层 + 多 Agent + 平台 | 出问题无法分层定位 |
| 把 DSH 直接搬上生产 | 官方明说未审计、不得视为 production-ready |
19.6 收束
回到原文开头那句抱怨:「装是装上了,但除了让它写点代码,我好像并不会用别的。」
把这个抱怨翻译成工程语言,答案是:你把一个可重组装的运行环境当成了一个功能更多的输入框。二者之间隔着的不是更多技巧,是一次对象切换——从优化模型输出,切换到优化模型所处的环境。
这个切换带来三件可复利的事:
| 变化 | 收益 |
|---|---|
| 优化对象从「这一轮」变成「这一类」 | 每次修错都永久生效(ratchet) |
| 资产从「聊天记录」变成「git 里的配置与测试」 | 可 review、可 diff、可迁移 |
| 判断从「感觉」变成「固定变量的实验」 | 可证伪、可回滚、可复现 |
模型会按别人的时间表变强。Harness 只按你修掉错误的频率变强。
差的不是工具,是没开始拆。 原文
19.7 下一步
| 想继续深入 | 去哪里 |
|---|---|
| 把本系列挂进现有文档站 | INTEGRATION.md |
| 逐条核对全部一手来源 | SOURCES.md |
| 查术语 / 命令 / 配置键 | 附录 A · 术语表 |
| 上线前逐条勾验 | 附录 C · 生产级验收清单 |
| 遇到具体症状查根因 | 附录 D · 失败模式速查 |
| 回到起点重读 | README.md |
本系列为本站原创教程,基线为微信公众号《DeepSeek Harness 最新高阶指南》(2026-11-05),并汇总 DeepSeek 官方仓库与文档站、Cordis / arXiv:2608.25512、以及 OpenAI / Anthropic / LangChain / Martin Fowler 等一手资料。每条引用均标证据等级,完整清单见 附录 B;未定位到一手来源的线索单列,未编造补位。DeepSeek Harness 为 developer preview,官方 SAFETY.md 明确「未经过安全审计、不得视为生产就绪」,命令与配置键可能随版本失效。资料截止 2026-11-06。姊妹篇:《FDE 入门到精通》。