Pi 架构总览
一句话
Pi 是一个可嵌入、可扩展的终端 AI coding agent。 它不是"只有一个 CLI 的 agent",而是把 agent 能力拆成多个可复用包。
本地源码
text
路径: /home/ubuntu/work/pi
HEAD: 21cb3807 fix(ai): detect DS4 context overflow errors
语言: TypeScript
管理: npm monorepo核心包结构
| 包 | 路径 | 作用 |
|---|---|---|
| ai | packages/ai | LLM provider abstraction,模型抽象 |
| agent | packages/agent | Agent loop,消息处理,工具调用 |
| coding-agent | packages/coding-agent | CLI 入口,session 管理,工具注册 |
| tui | packages/tui | 终端 UI,component-based renderer |
| orchestrator | packages/orchestrator | 多 agent 编排 |
调用链
pi CLI
↓
packages/coding-agent/src/cli.ts
↓
main.ts
↓
SettingsManager / SessionManager / ResourceLoader / ModelRegistry
↓
createAgentSessionRuntime()
↓
AgentSession
↓
Agent from pi-agent-core
↓
agent-loop.ts
↓
pi-ai streamSimple()
↓
tool calls
↓
AgentSession 持久化 JSONL session
↓
InteractiveMode / PrintMode / RpcMode架构亮点
- 分层清晰:ai → agent → coding-agent → tui 逐层抽象
- Agent loop 集中:核心循环在
agent-loop.ts一个文件 - Session 简单:JSONL + tree branch,可读性强
- TUI 手写:自研 differential renderer,控制力强
- 轻量可嵌入:不依赖 server/API,纯终端运行