跳转至

Pi 旧版独立教学初审

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

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

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

阻断问题与优先级

  1. P0,学习路线与导航相反。 首页说先跑 demo,但核心路线指向 02→04→05→08→13;读者要在建立一次请求的具体消息轨迹前消化大段内部机制。13 应成为第一条主路线起点,并提供准确输出、读图任务及改动实验。
  2. P0,任务不连续。 13 是内存笔记助手,12/14 是源码研究,14.7 又变工单模板。Core→SDK 的变化同时更换任务、数据源、工具与权限,因此读者无法判断 SDK 究竟增加了什么。保留一个证据助手,依次增加可检验能力。
  3. P0,运行结束缺业务验收。 offline.ts 第三轮仅检查上一个 toolResult 非 error,随后返回固定答案;回答没经引用/证据/版本核对。sdk-agent.ts 打印文本和会话文件,没有可复制恢复或产物验收入口。应显式定义“有证据回答”和“错误答案被拒绝”,不要凭模型最后一句话完成。
  4. P1,源码解释可精确却难以迁移。 05 对完整函数顺序和错误边界有价值,但先教很多 API 分支,再说应用。每个主干精读应带一份真实 messages/state 的前后值、对应代码条件、拿掉该条件的反例。07 的 [A,B]/树关系可保留,须与贯穿案例相连。
  5. P1,下载者路径不成立。 首页/13/12 命令包含作者机器 /home/debian/...,普通下载者需自己猜替换;SDK 默认 ../pi-1.0 不在实验ZIP。阅读入口必须直接给解压后路径与离线命令,真实源码仓库另作为明确可选输入。
  6. P2,验收叙事挤占教材。 18/20反复列独立PASS;该信息属于版本维护证据。源码地图、部署过程不宜与初学主线同级。课程应优先告诉读者“你现在能做什么、下一步改变什么”。

逐章处置与读者失败场景

章节 处置 读者失败场景 / 修订要求
首页 重写 知道有三条路线但不知道第一份可验收产物;给同一案例与首条本地命令
01 版本 压缩并前置实验 尚未有代码就背迁移差异;版本表保留作环境契约
02 设计 重写前半、保留后半机制 能复述分层但不能选择Core/SDK;用一次需求变化算引入成本
03 使用 保留为CLI支线 需要API key才有首次反馈;与离线主线区分并提供明确前置条件
04 消息 重组 记role却不能配对callId;把三次request完整精简快照穿起来
05 Loop 重组主干与进阶 读完15节仍不会定位自己的工具;追唯一调用的状态、停止原因和反例
06 SDK 重组 工厂选项太早,无法理解为什么有Session;以Core重启失忆引入
07 Context 保留细节、补可运行样本 理解树图但不会预测open后的leaf;给branch/append/reopen及projection输出
08 Tools 重组 看过schema仍把授权当描述;同一read/submit工具分形状、业务对象和权限
09 MCP/Code Mode 保留进阶支线 复制占位server无结果;先讲何时本地两工具不够、接入多出的失败成本
10 Interfaces 保留进阶支线 将RPC started当完成;给可复制协议样本和完成判据
11 Durable/Chord 保留研究支线 将SDK存会话当自动恢复外部动作;用同一交付动作画崩溃窗口
12 Customize 变成贯穿任务的可选入口 安装研究包却想写文件;明确与Core/SDK方案的职责及代价
13 Core 前移并完整重写 npm demo打印成功却不知道如何从零写;分阶段文件与输入输出
14 SDK 完整重写 更换工具/任务掩盖SDK差量;保持同工具,实际关闭并重新打开会话
15 Product 重写为可交付工作 十余条建议没有一个产物;实现最小manifest/引用验收/失败状态
16 Troubleshooting 重组为可运行故障 练习答案只是术语;给故障命令、观察点、恢复命令及理由
17 Source map 保留索引附录 源码页数量被当学习进度;只作为由问题跳转源码的导航
18 Validation 改历史记录与新证据 旧21tests/PASS被误读为新版保证;新报告必须绑定指纹
19 Deployment 移维护附录 学Agent时被要求sudo发布课程;明确只给站点维护者
20 Review/delta 拆分版本参考与历史审查 主分支变化和作者修订交错;固定baseline与当前检查时点分离
Examples appendix 自动同步最终源码 逐文件全文便于核对,不替代渐进教材

本次关键源码复核

独立读取固定Pi 1.0 agent-loop.ts:159–317,确认工具结果后调用finishTurn、error/aborted硬退出、steering/follow-up与显式continuation是不同继续理由;读取 session-manager.ts:543–574,确认projection先取active path/context entries,再应用context edits并排除旧compaction摘要。这些支持旧章部分事实,不能弥补没有读者实验的缺口。

未执行旧版付费模型、全上游测试、Native/VM全面审计。新稿完成后需用新文件指纹重新独立审并运行自己的读者路径。

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