Part VI · Verdict

20 借鉴清单与失效条件 哪些能直接抄,哪些抄了会疼,哪些赌注还没结算

覆盖 ch01–ch19 本章为判断,非事实陈述
§1 Mental Model 一句话心智模型

先说本章的性质

前 19 章尽量只说代码里能证明的事。本章不同——它是判断。每条结论都标了「在什么条件下失效」,因为脱离条件的建议在工程里没有意义。

读完全书,pi 的设计哲学可以压成一句:把防御预算花在能真正守住的关口上,守不住的地方就明说守不住。

这条原则解释了它几乎所有看似矛盾的决定:

守得住 → 守到底守不住 → 明确放弃
依赖引入(精确锁版本、2 天延迟、脚本白名单)运行时权限(不做沙箱)
切点合法性(永不切在 toolResult 上)摘要的语义可靠性(靠一段英文前缀)
存储契约(三后端一套一致性测试)崩溃恢复(v3 会话根本没有 record)
终端渲染(自研 3.2 万行)prompt injection(文档直说防不住)

它的一致性在于:从不在守不住的地方摆一个看起来像防线的东西。这是本书作者认为 pi 最值得学的一点,也是最容易被误读成「不负责任」的一点。

§2 Copy 可以直接抄的

九条,按可抄性排序

§3 Careful 抄了会疼的

五条:pi 做对了,但换个环境就不成立

§4 Open 赌注未结算的

四件到快照时还没有答案的事

这一节不是批评。它列的是已经下注、但结果尚未揭晓的决定——如果你在评估是否依赖 pi,这四条是真正的风险点。

锚点之后前两注已经结算(截至 v1.2.0)。「harness-v2 会不会完工」:没有完工,被删除了。执行器先被做完大半,但没有接进默认 CLI;7fd478a(2026-10-01)把整套 harness 从 pi-agent-core 删除,随 v1.0.0 发布。按 lanes / durable runs 做过技术选型的人,拿到的是一次 breaking change——「拿别人的路线图当自己的依赖」这条提醒,结算结果正是它警告的那种。上游指向的后继 pi-durable 是另起的 experimental 包,本书没有核对它的设计,不把它当作 harness-v2 的续作。「两处同名双份实现会不会收敛」:收敛了,但方向和本书预期相反。同一个提交删掉了 agent 包里的压缩与工具副本,coding-agent 并没有迁到新 harness。本页其余判断都锚定在 ac4ac9e。见 第 08 章追记与漂移记录 · 上游后续。

本书自身的边界

为了让读者能校准信任:

§5 Takeaway 如果只记一件事
读一个活跃重写期的开源项目时,先分清「文档描述的系统」和「运行的系统」——方法很机械:找到生产入口的构造点,从那里往下读。

本书从头到尾只做了一件方法上的事:不相信文档,去找那个 new Agent(。

结果是一个 3437 行的设计文档、一个 22 个方法抛错的类、一个只被自己测试引用的接线文件,和一条从 sdk.ts:294 出发的、真实在跑的调用链。这四样东西的关系,是任何一份 README 都不会告诉你的。

如果你要评估、依赖、或借鉴一个处于类似阶段的项目,这个方法比读一百页文档更快。

全书的行号引用可在 溯源索引 一次性核对;文档与代码不一致之处记在 漂移记录。

基于 earendil-works/pi @ ac4ac9e(2026-08-07 快照)。
本章为判断而非事实陈述;结论随上游演进失效的速度,快于前 19 章。