Pi (earendil-works/pi) — 技术研究¶
本报告基于
/tmp/pi-snap受控副本工作树,固定 Snapshot-A =mainHEAD2a9b4ebc680053c64e31f635b0b22d5e22564001,发布日期 2026-08-11。 交叉引用 releasev0.84.1=53fa77ccd8a279eb87e92294ef3687b03ff80112(2026-08-07)。 当前为「待验证版本」——一切结论须经用户确认后才能晋升为稳定版本、向 Cloudflare 部署。
一、研究对象¶
Pi (earendil-works/pi) 是一个面向开发者终端的 统一 LLM 编程代理 框架。
它把"和 LLM 对话"封装为"和 coding agent 对话",交付标准化能力:
- 跨 provider 的统一接口(Anthropic / OpenAI / Google / Bedrock / Azure / Mistral / Codex / OpenAI-compat 等)
- 内建工具集:
read / bash / edit / write / grep / find / ls - 扩展点(hook / 扩展 / 技能 / 远程 RPC)
- Session 持久化 + 模型回放 + thinking level 控制
- 可审计 telemetry(零依赖 schema)
- 终端 TUI、JSON 输出、RPC 三种运行模式
二、本次研究目标¶
| # | 目标 | 状态 | 文档 |
|---|---|---|---|
| 1 | 它解决什么问题 | ✅ | 核心架构 §1.1 |
| 2 | 当前核心架构与主要调用流程 | ✅ | 核心架构 + 调用链 |
| 3 | 最早形成 MVP 的 commit | ⏸ 用户决议取消 | — |
| 4 | 主要历史演进 | ✅ | 演进时间线 |
| 5 | 哪些实现值得复用 | ✅ | 复用清单 |
三、关键事实(直读源码)¶
- 仓库寿命:12 天(2025-08-09 创建;2026-08-11 锁定)
- 代码量:259,066 行 / 17 种语言,以 TypeScript 为主(209,631 行 / 1125 文件)
- 包数量:10 个
@earendil-works/*包(README 只列 5 个;另外 5 个session-backends/server/client/evals/protocol在 README 未列) - 提交密度:~470 commit/day · 5,650 commit 总数(按 release v0.5.3–v0.84.1)
- 首发 release:
v0.5.3(2025-08-09;从单仓库炸到 monorepo 时继承的版本号) - 次发 release:
v0.7.16(2025-11-17;中间 ≈ 3 个月停顿) - 当前 release:
v0.84.1(2026-08-07) - 协议:MIT License(仓库根 LICENSE 文件)
- 未做:npm install / build / test / pre-commit / 扫描器
四、触发 Skill 的来源¶
本次研究由 technical-research-toolkit Skill(第 4–10 步)驱动,所有动作可追溯到该 Skill 的固定流程:
- 第 4 步:受控副本 →
/tmp/pi-snap(git clone --no-checkout --filter=blob:none);后来--unshallow获取完整历史 - 第 5 步:
scripts/inspect_repository.sh→/tmp/pi-inspect/(1325 文件 / 56905 符号 / cloc / history.tsv) - 第 6 步:模块视图(10 个包 + 依赖方向 + 主链静态阅读)
- 第 8–10 步:技术问题初步 + 完整演进时间线
下一次研究时,复用相同流程,新增的研究产物放进 research/<新仓库>/ 目录后重新构建部署。