Pi 是一个模块化的 AI 编码智能体 Monorepo,使用 TypeScript 构建。它提供统一的 LLM 抽象层、通用的智能体运行时、丰富的终端 UI 框架,以及完全可扩展的编码智能体命令行工具。
1. 项目概览
Pi(@earendil-works/pi-mono)是由 Mario Zechner 开发的 AI 编码智能体 Monorepo,设计理念是模块化、可扩展、供应商无关。它将多个 LLM 供应商的复杂性抽象为统一 API,提供强大的智能体运行时和工具执行能力,并附带生产就绪的终端 UI。
核心能力
| 能力 |
说明 |
| 统一 LLM API |
9 种 API 协议和 30+ 供应商品牌的单一接口。只需修改一个字符串即可切换供应商。 |
| 智能体运行时 |
完整的智能体循环,支持并行工具执行、消息注入队列和上下文压缩。 |
| 丰富的终端 UI |
独立的终端 UI 框架,支持差异化渲染、文本编辑器、图片显示和浮层系统。 |
| 扩展系统 |
80+ 扩展示例、20+ 生命周期钩子。可注册工具、命令、快捷键和供应商。 |
| Web 组件 |
基于 Lit 的聊天 UI,支持沙箱化 Artifact 渲染(HTML、SVG、PDF、DOCX 等)。 |
| 多运行模式 |
交互式终端、管道友好的打印模式,以及用于 IDE 集成的 JSONL RPC 模式。 |
包依赖关系图
graph TD
subgraph "第一层:基础层"
ai["<b>pi-ai</b><br/>统一 LLM API<br/>30+ 供应商"]
end
subgraph "第二层:运行时层"
agent["<b>pi-agent-core</b><br/>智能体运行时<br/>工具执行"]
end
subgraph "第三层:UI 层"
tui["<b>pi-tui</b><br/>终端 UI 框架<br/>零依赖"]
end
subgraph "第四层:应用层"
coding["<b>pi-coding-agent</b><br/>编码智能体 CLI<br/>扩展与工具"]
webui["<b>pi-web-ui</b><br/>Web UI 组件<br/>Lit + Tailwind"]
end
ai --> agent
agent --> coding
tui --> coding
ai --> webui
tui --> webui
style ai fill:#1f6feb,stroke:#388bfd,color:#fff
style agent fill:#238636,stroke:#3fb950,color:#fff
style tui fill:#8957e5,stroke:#bc8cff,color:#fff
style coding fill:#da3633,stroke:#f85149,color:#fff
style webui fill:#e3b341,stroke:#d29922,color:#fff
图 1: Pi monorepo 包依赖关系图 — 4 层架构,5 个包