跳转至

DeepSeek Harness 旧版独立教学初审

本报告由独立质量审查员撰写,结论是 FAIL(旧版作为学习课程)。这不是“源码事实全错”的判断,也不是对正在改写的新稿的结论。旧审查 PASS、测试数量和源码页数量均不作为本次教学质量证据。

审查对象:revision-backups/pre-astra-20261004-001002 中对应 tar 快照。已按课程正文、章节入口、示例实现、测试入口与导航检查;自动生成源码地图仅核查其定位/说明,没有假装逐个人工阅读清单中的全部上游文件。长输出发生截断时不把未显示内容计作已读;已补读关键断段,并完整读两套课程测试实现。最终审仍需逐章重新读取新稿。本文足以否定旧版教学路线,不声称完成上游全仓审计。

最终验收门槛:同一个明确需求从最小可运行 loop 走到运行时选择、schema 与领域语义、可观察日志、错误恢复和交付。读者必须能够预测一次输入导致的状态变化,修改一个变量观察反例,解释所选设计的替代方案与代价。测试与离线模型只能证明机制;没有真实模型实验就不声称智能质量。

阻断问题与优先级

  1. P0,功能参考手册代替课程顺序。 03开始10K字符Cordis内部,04–17延续大量服务/状态/默认值,18才动手。即使每句正确,读者也未先获得一个可观察运行时去安放这些概念。第一章就应有最小任务,03应先用真实provider撤销/重挂解释依赖,再下钻Fiber。
  2. P0,核心例子的两次工具没有信息增量。 search_notes 已返回全文,第二次 read_note 不增加证据。应搜索只给定位摘要,读取才给版本化全文;否则学生不理解为什么要让模型再请求一次。
  3. P0,fixture与交付无因果验证。 HTTP fixture按index固定回工具和答案,没有检查上一工具是否真的进入下次请求。demo打印文字/事件种类并删临时home,学生无法直接拿它研究日志。应捕获并断言request、保存可检查的最小日志与交付物,对伪造引用给明确FAIL。
  4. P1,DSH特征没有被示例充分展示。 所有成功输出都JSON.stringify成string,output schema仅校验string。这虽合法,却藏起canonical value与render的核心收益;需要真实结构化值与不同消费者视图。
  5. P1,概念例子不连贯。 08使用summarize_record;11出现lookup_note(实际工具名是read_note);14改读任意工作区。读者每章重新猜业务。保持统一note ID、问题、版本、工具名,新增概念只改一项条件。
  6. P1,完成/恢复叙述停在正确警告。 14准确指出SDK没有cold resume,19准确指出idle非flush,但20只是打印/关进程。要亲手观察逻辑event→关闭→V4磁盘事实;恢复必须使用真实支持入口或明确给业务恢复方案,不能把同ID新create冒充resume。
  7. P2,阅读语言过于压缩。 尤其10–13中大量runtimeexecutionworld式连写与多种缩写,把独立失败边界塞一个长段。改成一个具体问题→小状态表→源码条件→代价;同一章进阶细节分层。

逐章处置与读者失败场景

章节 处置 读者失败场景 / 修订要求
首页 完整重写 26章/14000文件取代学习结果;给第一份证据产物与路径
01 Version 前置最小实战 npx启动Web但无凭据/观测结果;给离线命令与明确输出
02 Design 重写设计推导 理解everything插件却不会选择;比较两稳定函数与多provider情景成本
03 Cordis 前置运行实验、重组精读 先学Proxy/epoch不知用途;卸provider导致tool消失再追状态
04 Boot 补实际dump差量 patch例子含占位组合;展示同一工具注册前后生效tree
05 Session 数据轨迹驱动 seq/offset能背不能用;列同一任务event序列与未持久状态
06 Projection 重组并保留精读 [2,4,7]是抽象数字;映射实际问题/证据/摘要并比actual request
07 Loop 重组 phase/inbox/attempt同时入脑;按一次search→read→deliver分层再讲retry
08 Tools 更换游离示例 string output遮掉schema收益;展示同一read_note结构值和render
09 LLM/context 分核心与查阅 17K字协议参数淹没route与request区别;先看本地fixture真正payload
10 Execution 保留能力支线、重写可读性 混淆cwd/文件写策略/OS边界;用迁移notes provider决定所需能力
11 PTC/workflow 保留进阶、统一命名 lookup_note不存在;小批量read_note显示何时省请求及引入成本
12 MCP/bridges 保留参考支线 “支持桥接”被理解全兼容;需求→所需bridge→未实现能力
13 Agents/goals 保留研究支线 背五种持续机制仍不会选;用一项证据任务分别判断何时无需它们
14 SDK 与最小宿主合并教学 示例改成读工作区、不知业务在哪;同一notes profile由TS/Python驱动
15 UI/API 保留产品支线 遍历接口但不知道交付UI需要哪个;以读证据/发任务/看结果做选择
16 Storage 前置具体磁盘样本 数据持久化全部是文字;正常close后解码V4并区分副作用窗口
17 Human/automation 保留后续选择 审批/问题/计划过载;先明确该任务需不需要人,再读对应机制
18 Plugin 前移、渐进重写 一次给四文件最终版;先函数工具再抽契约/替换provider见差量
19 Composition 重写为操作实验 工厂藏完patch/home;保留产物、展示生效配置和步骤预算故障
20 SDK labs 重写为学习路径 npm test全绿仍不会解释下一次request;每checkpoint输入/输出/修改任务
21 Compare Pi 保留并强化同任务对照 原版已明确层次,仍缺实际同任务实现成本/恢复差异
22 Deploy 移维护附录 Agent学习者被课程站维护打断;明确仅站点维护者
23 Source map 保留检索附录 111K字符清单不能代替学习;用问题找源码,清单独立
24 Troubleshooting 故障命令驱动 表里知道错误层但无法重现;给401/schema/预算/缺provider操作
25 Review 只保留历史与新证据 三位旧PASS不证明新版;记录新审查范围/指纹/未测项
26 Delta 保留版本参考 main/rc2/Python混装;每段练习标实际版本与接口来源
Examples/research appendix 自动同步、归档参考 原文可核对,不要以大量研究索引代替教材

本次关键源码复核

独立读取rc.2 packages/sdk/client/src/api.ts:148–234,确认run先subscribe后prompt,以匹配messageId的inbox receipt起收集,到root idle止,没有业务成功/flush/cold resume承诺。读取rc.2 packages/core/tools/src/schema.ts:548–595,确认parameters/output DSL分别编译与pure renderer包装;成功canonical输出本可用结构对象,并无必须JSON字符串的API限制。比较章对Pi默认coding路径与实验Durable的区分成立,应保留而非改成“Pi无持久化、DSH有”。

未执行旧版付费模型、全上游测试、SSH/native/浏览器/语音等跨平台集成。新稿完成后以新指纹和自己的读者命令复审。

旧版审查范围文件集 SHA-256(docs 非 assets + examples + mkdocs,含历史附录):9079006c17ef623ae40f219dc919e9dc77d98840e8c664e2f5384fc17f31a622。

补读测试说明:旧SDK集成测试确实断言第三个请求含append-only evidence,不能说完全没有工具结果回传测试;但search本身也返回全文,这个断言不足以证明read步骤的独立信息增量。fixture本身仍未按收到的实际证据决定下一响应。旧18项测试是有价值的机制证据,教学FAIL不等于这些测试无效。