- 前言
- 序章
- 1. 不是又一个 LLM 包装器
- 第一篇:分层的纪律
- 2. 七个包不是七个项目
- 3. 怎样高效阅读这个仓库
- 第二篇:统一调用面 — pi-ai 的设计
- 4. Provider 不是 Adapter
- 5. 消息变换:跨模型交接的隐藏复杂度
- 6. 统一事件流设计
- 7. OAuth — 统一认证的隐藏复杂度
- 第三篇:Agent Runtime — 循环引擎的设计
- 8. agentLoop — 发动机只管转
- 9. 工具执行不是插件调用
- 10. Agent — 循环之上的有状态壳
- 第四篇:从 Runtime 到产品
- 11. 会话树:比"聊天记录"更好的数据模型
- 12. Compaction — 把无限对话装进有限窗口
- 13. 三级配置覆盖
- 14. System Prompt 是一套装配流程
- 第五篇:能力外置
- 15. Extension 系统 — 让产品长出新器官
- 16. Skill 机制 — 用文档替代代码
- 17. Resource Loader — 一切外部资源的统一入口
- 18. Model Registry — 模型不只是一个 ID
- 第六篇:工具设计 — 约束即保护
- 19. 工具设计原则
- 20. edit 的设计 — 为什么不能直接写文件
- 21. read 的设计 — 为什么不是简单的 cat
- 22. bash 与外部世界的边界
- 23. find 和 grep — 结构化搜索替代万能 bash
- 第七篇:UI 层 — 同一颗内核的不同宿主
- 24. pi-tui — 在终端里做应用
- 25. 编辑器组件 — 交互复杂度的集中地
- 26. RPC 模式 — pi 作为后端服务
- 27. pi-web-ui — 浏览器里的复用
- 第八篇:产品化实证
- 28. mom — Slack 里的 Coding Agent
- 29. pods — 为什么这个仓库还要管 GPU
- 第九篇:设计哲学
- 30. 极简核心,能力外置
- 31. 反主流选择背后的判断
- 32. 这套架构的适用边界
- 附录