
Pi 调研:98K stars 的 AI Agent 工具链定位,怎么用 5 个 npm package 把统一 LLM API + Agent Runtime + 编程 CLI + TUI 拼成自己的 AI 编程栈
Pi(earendil-works/pi)不是单一 CLI,是模块化 AI Agent 工具包 —— 98,728 ⭐ / MIT ✅ / TypeScript / 周更 v0.84.3 / 5,815 commits。5 个 npm package 把整套能力拆成清晰的几层:pi-ai(统一 LLM API)+ pi-agent-core(Agent 运行时)+ pi-coding-agent(交互式 CLI)+ pi-tui(终端 UI)+ pi-telemetry(供应商中立 telemetry)。本文把 Pi 作为 AI Agent 工具链 的定位讲透。
写在前面:AI Agent 工具链的 4 层架构
打开任何一个 TypeScript 项目想加 AI Agent 能力,选项至少 4 类:
| 类别 | 代表 | 定位 |
|---|---|---|
| LLM 编排框架 | LangChain 344 / LlamaIndex | 怎么写 Agent 代码(Python 优先) |
| Agent CLI | Pi / Claude Code / Codex CLI / Aider | Agent 怎么用(命令行交互) |
| Agent 控制面 | LoopX 403 | 长程任务怎么管(状态 / evidence / quota) |
| Agent 循环方法论 | loop-engineering 175 | 循环怎么设计(6 构件 / 7 patterns) |
Pi 是 ”Agent 的瑞士军刀 ” —— 不替代任何现有项目,而是让所有 Agent 更好用。
一、Pi 是什么
基本信息
| 项 | 数据 |
|---|---|
| 仓库 | earendil-works/pi |
| Stars | 98,728 ⭐(GitHub API 实时) |
| Forks | 12,216 |
| License | MIT ✅ 干净 |
| 创建 | 2025-08-09(不到 1.5 年的新项目,但增速极猛) |
| Commits | 5,815(高活跃度) |
| 最新 release | v0.84.3(2026-08-24) |
| Release 节奏 | 周更(v0.84.0 → 0.84.3 仅 18 天) |
| Open issues | 135 |
| 主语言 | TypeScript |
| 体积 | 67.6 MB |
| Description | “AI agent toolkit: unified LLM API, agent loop, TUI, coding agent CLI” |
| 官网 | pi.dev |
核心架构 :Pi = monorepo 5 个 npm package + 12+ 个配套仓库。 不是单一 CLI,是可独立引用的模块化工具链。
二、Pi 5 大核心包(模块化设计)
Pi 不是单一 CLI,而是 monorepo 5 个 npm package,可以 单独引用或组合使用:
5 大核心包架构
┌─────────────────────────────────────────────┐
│ @earendil-works/pi-coding-agent │ ← 交互式编码 CLI
│ (开箱即用的 "pi" 命令) │
├─────────────────────────────────────────────┤
│ @earendil-works/pi-agent-core │ ← Agent 运行时
│ (tool calling + state management) │
├─────────────────────────────────────────────┤
│ @earendil-works/pi-ai │ ← 统一 LLM API
│ (15+ providers: OpenAI/Anthropic/Google) │
├─────────────────────────────────────────────┤
│ @earendil-works/pi-tui │ ← 终端 UI 库
│ (差分渲染 TUI 组件) │
├─────────────────────────────────────────────┤
│ @earendil-works/pi-telemetry │ ← 供应商中立 telemetry
│ (reference adapter + conformance tests) │
└─────────────────────────────────────────────┘
5 大核心包详解
1️⃣ pi-ai(统一多 provider LLM API)
import {complete} from '@earendil-works/pi-ai';
// 一套接口切换 OpenAI / Anthropic / Google / 本地
const result = await complete({
model: 'claude-3-5-sonnet', // 或 'gpt-4o' / 'gemini-2.5-pro'
messages: [{role: 'user', content: 'Hello'}],
stream: true,
});
关键卖点:
– ✅
15+ provider 支持(OpenAI / Anthropic / Google / DeepSeek / Mistral / vLLM 本地)
– ✅ 流式响应统一抽象
– ✅ Tool calling 定义统一
– ✅ 自动 fallback + cost tracking
2️⃣ pi-agent-core(Agent 运行时)
import {Agent} from '@earendil-works/pi-agent-core';
const agent = new Agent({
llm: 'claude-3-5-sonnet',
tools: [fileReadTool, bashExecTool, gitCommitTool],
state: {workspace: './my-project'},
});
const result = await agent.run('Fix the failing test in test_auth.py');
核心职责:
– 调用 LLM → 解析 tool calls → 执行 tools → 收集结果 → 决定下一步
–
状态管理:多轮对话 context
–
可嵌入:可以嵌入任何需要 ”AI 自主行动 ” 的项目
3️⃣ pi-coding-agent(交互式 CLI)
# 装整个 CLI
npm install -g @earendil-works/pi-coding-agent
# 启动
pi
> 分析当前代码库的 bug
> 自动 fix
> 跑测试
> 提交 commit
关键卖点:
– 开箱即用的编码 agent
– 集成文件操作 + Shell 执行 + Git
– 自动引导模型完成编程任务
4️⃣ pi-tui(终端 UI 库)
import {render} from '@earendil-works/pi-tui';
// 差分渲染:只更新变化的部分
render(<MyAgentUI status="thinking" tokens={1234} />);
核心能力 : 差分渲染 TUI 组件 —— 比传统打印整个屏幕效率高 10x。
5️⃣ pi-telemetry(供应商中立 telemetry)
import {trace} from '@earendil-works/pi-telemetry';
await trace('agent.run', async () => {
// 自动生成 OTel 兼容的 trace
// 可以导出到 Langfuse / Phoenix / Datadog
});
关键卖点:
– Vendor-neutral telemetry contracts
– Reference adapter + conformance tests
–
可导出到 Langfuse(已发 WP 405)/ Phoenix / Datadog
三、Pi 设计哲学:Self-Extensible
Pi 最大的差异化 = “self-extensible”(工具可以被工具自己扩展):
工具本身可以被工具自己扩展(agent 改自己)
意思 :Pi 的 agent 可以用自己的工具修改自己的代码 / 配置文件 / 扩展。
pi
> 我想加一个新工具 " 用 GitHub CLI 创建 PR"
> [Pi 自动写代码 + 添加工具 + 测试]
> 现在我可以用 pi 创建 PR 了
对比其他 Agent CLI:
– Claude Code:固定工具集,不能 agent 自己加
– Codex CLI:固定工具集
– Aider:固定工具集
–
Pi:agent 可以扩展自己的工具集(这是 INTP 友好极强)
四、Pi 完整生态(earendil-works org 12+ 仓库)
earendil-works 不只 Pi 一个仓库,是 完整 AI Agent 工具生态:
| 仓库 | Stars | 定位 |
|---|---|---|
| earendil-works/pi | 98,728 | 主仓:AI Agent 工具包 |
| earendil-works/absurd | 2,387 | “An experiment in durability”(持久性实验) |
| earendil-works/gondolin | 2,055 | Linux microvm + TypeScript Control Plane |
| earendil-works/pi-chat | 389 | Slack 自动化 |
| earendil-works/pi-review | 300 | Code review 扩展 |
| earendil-works/pi-transcribe | 221 | 音频转录 |
| earendil-works/pi-tutorial | 170 | 教程模式 |
| earendil-works/pi-review-loop | 147 | 持续 diff review loop |
| earendil-works/pi-website | 48 | 官网 |
| earendil-works/inkling | 25 | RFC 协作工具 |
| earendil-works/clipboard | 21 | 剪贴板 API |
| earendil-works/ray | 18 | 代码片段格式化 |
外部生态:
| 仓库 | Stars | 定位 |
|---|---|---|
| davebcn87/pi-autoresearch | 7,893 | pi 的自主实验循环扩展(外部社区) |
完整生态图:
earendil-works org
├── pi (98K) ──────┬── pi-chat (Slack)
│ ├── pi-review (code review)
│ ├── pi-transcribe (audio)
│ ├── pi-tutorial (tutorial mode)
│ └── pi-review-loop (diff review)
├── absurd (2.4K) 实验性项目
├── gondolin (2K) Linux microvm
├── inkling (25) RFC 协作
└── 外部 davebcn87/pi-autoresearch (7.9K)
五、Pi vs 5 大对手
8 维对比表
| 维度 | Pi | Claude Code | Aider | Codex CLI | LangChain | Cline |
|---|---|---|---|---|---|---|
| License | MIT ✅ | 闭源 | Apache-2.0 | 闭源 | MIT | Apache-2.0 |
| Stars | 98,728 ⭐ | 闭源 | 13K ⭐ | 闭源 | ~95K ⭐ | ~15K ⭐ |
| 主语言 | TypeScript | Rust | Python | TypeScript | Python / TS | TypeScript |
| LLM 锁定 | 多 provider | Anthropic 锁定 | 多 provider | OpenAI 锁定 | 多 provider | 多 provider |
| Self-extensible | ✅ | ❌ | ❌ | ❌ | ❌ | ⚠️ |
| 形态 | CLI + TUI + monorepo | CLI + IDE | CLI | CLI | Python lib | VSCode 扩展 |
| Agent 运行时 | ✅ pi-agent-core | ✅ 内置 | ✅ 内置 | ✅ 内置 | ✅ | ✅ |
| 设计哲学 | 模块化 + 自扩展 | 单一 CLI | 终端优先 | 单一 CLI | LLM 编排 | IDE 集成 |
核心差异
1️⃣ Pi 是 Self-Extensible(唯一)
只有 Pi 允许 agent 修改自己的工具集:
# Pi 可以这样
pi
> 给 pi 加一个新功能:自动 lint Python 代码
> [Pi 自动改代码 + 提交 PR]
# 其他 Agent CLI 不行
claude-code > 加新功能 # ❌ Claude Code 不允许
codex > 加新功能 # ❌ Codex 不允许
2️⃣ Pi 是 Monorepo 模块化(唯一)
只有 Pi 提供 ” 独立 npm package”:
# 你可以只引用 pi-ai,不用整个 pi
npm install @earendil-works/pi-ai
# 或者只用 pi-agent-core 跑 agent
npm install @earendil-works/pi-agent-core
对比其他都是单一包:LangChain 是单一包 / Claude Code 是单一 CLI / Aider 是单一 CLI。
3️⃣ Pi 是 多 LLM + 不锁定(共享优势)
Pi 跟 Aider / LangChain / Cline 都是多 LLM,Claude Code / Codex 是厂商锁定。
4️⃣ Pi 是 纯 CLI(vs Cline 的 VSCode 扩展)
Pi 不依赖 IDE,可以在任何 terminal 跑。INTP 友好。
六、6 大场景决策矩阵
| 场景 | 推荐 | 理由 |
|---|---|---|
| 🚀 快速搭一个 AI 编程助手 CLI | Pi ⭐ | 5 分钟 开箱即用 / 多 LLM / 不锁定 |
| 🔧 集成 LLM 到自家 TS 项目 | Pi (pi-ai) | 只引用 pi-ai 不引整个 CLI |
| 🐍 Python 数据科学 / ML | LangChain | Python 优先 + LangChain Expression Language |
| 🆚 VSCode IDE 集成 | Cursor / Cline / Continue | IDE 集成 vs 纯 CLI |
| 🔒 单一厂商锁定(只用 OpenAI / Anthropic) | Claude Code / Codex CLI | 厂商原生体验 |
| ⚙️ agent 长程状态控制 | LoopX | 持久执行 + 8 host 集成(含 Pi) |
核心判断:Pi 是 ” 模块化 + 自扩展 + 多 LLM + 纯 CLI”4 个维度的最优组合。
七、Pi 在 AI Agent 4 层基础设施的位置
AI Agent 4 层架构(更新版)
┌──────────────────────────────────────────────┐
│ L4. 可观测层 P12 AgentObs 405 │
│ Langfuse / Phoenix / Helicone / AgentOps │
├──────────────────────────────────────────────┤
│ L3. 循环层 P19 横评 428 │
│ loop-engineering / loopy / loom / LoopX │
├──────────────────────────────────────────────┤
│ L2.5 Agent 工具链层 ⭐ Pi (本次) │
│ monorepo 5 个 npm package + 12+ 配套仓库 │
├──────────────────────────────────────────────┤
│ L2. Agent 框架层 │
│ LangChain 344 / DSH 340 / Cordis 350 │
├──────────────────────────────────────────────┤
│ L1. LLM 层 │
│ OpenAI / Anthropic / Google / DeepSeek │
└──────────────────────────────────────────────┘
Pi 填补的空白:L2.5 “Agent 工具链层 ” —— 在 Agent 框架(LangChain)和 Agent 循环(LoopX)之间,提供 CLI / TUI / 统一 API / 自扩展 的工具链。
关键创新点:
– LangChain 提供 ” 怎么写 Agent 代码 ”
– Pi 提供 ”Agent 怎么用 / 怎么扩展 ”
– LoopX 提供 ” 长程任务怎么管 ”
– Langfuse 提供 ”Agent 出问题能查 ”
Pi 是 ”Agent 的瑞士军刀 ” —— 唯一一个 把 CLI + TUI + 统一 API + 自扩展 + 多入口 全部打包的开源项目。
八、35 分钟 5 步实战:跑通第一个 Pi Agent
Step 1:装 Pi(2 分钟)
# Node.js >= 20
npm install -g --ignore-scripts @earendil-works/pi-coding-agent
# 验证
pi --version # v0.84.3
Step 2:配置 LLM(5 分钟)
# 编辑 ~/.pi/config.json
{
"providers": {"openai": { "apiKey": "sk-..."},
"anthropic": {"apiKey": "sk-ant-..."},
"google": {"apiKey": "..."}
},
"defaultModel": "claude-3-5-sonnet"
}
Step 3:写第一个 Agent(10 分钟)
// my-agent.ts
import {Agent} from '@earendil-works/pi-agent-core';
import {fileRead, fileWrite, bashExec} from '@earendil-works/pi-coding-agent';
const agent = new Agent({
llm: 'claude-3-5-sonnet',
tools: [fileRead, fileWrite, bashExec],
systemPrompt: `
你是一个 Python 代码助手。1. 先读相关文件
2. 找出问题
3. 修改代码
4. 跑测试验证
`,
});
const result = await agent.run('找出 test_auth.py 失败的测试并修复');
console.log(result);
Step 4:启动交互式 CLI(5 分钟)
# 启动 Pi 交互式会话
pi
# 自然语言交互
> 帮我看看 src/ 目录有没有 TODO
> [Pi 自动搜索 + 列出]
> 帮我加个 type hint
> [Pi 自动编辑]
Step 5:自定义 TUI(13 分钟)
// custom-tui.ts
import {render, Box, Text} from '@earendil-works/pi-tui';
import {Agent} from '@earendil-works/pi-agent-core';
const agent = new Agent({llm: 'gpt-4o', tools: [...] });
const ui = render(
<Box flexDirection="column">
<Text color="indigo">🤖 My Custom Pi Agent</Text>
<Text>Status: {agent.status}</Text>
<Text>Tokens: {agent.tokens}</Text>
</Box>
);
总成本
Step 1 npm install 2 分钟
Step 2 配置 LLM API keys 5 分钟
Step 3 写一个简单 Agent(TypeScript)10 分钟
Step 4 启动 CLI + 自然语言交互 5 分钟
Step 5 自定义 TUI(可选)13 分钟
───────────────────────────────────────────────
Total 35 分钟
九、6 条风险清单
⚠️ 风险 1:不到 1.5 年新项目(社区治理待验证)
Pi 2025-08-09 创建,不到 1.5 年 。 跟 D3.js(2010)那种 15 年老牌相比,社区治理 / issue 响应 / breaking change 处理都需要时间验证。
⚠️ 风险 2:依赖 TypeScript 生态(Python 用户用不了)
Pi 只支持 TypeScript(Python 用户不能直接用)—— 跟 LangChain 的 Python-first 形成对照。
⚠️ 风险 3:5,815 commits 增速快但质量待验证
5,815 commits 不到 1 年 = 平均每天 13 个 commit。增速极快,但 commit 质量 / breaking change 频率需要观察。
⚠️ 风险 4:”self-extensible” 哲学可能导致 agent 改坏自己
Self-extensible 是 Pi 的核心卖点,也是双刃剑 —— agent 可能写出有 bug 的扩展工具自己用,导致不可预测行为。
⚠️ 风险 5:LoopX 8 host 集成里 pi 是其中一个
LoopX 把 Pi 列为 8 host 之一 (Codex/Claude Code/OpenCode/Pi/DSH/KunlunCode/Cursor/ 自定义)。 如果 Pi API 变了,LoopX 集成可能断。
⚠️ 风险 6:pi-chat / pi-review 等子项目星标分散
Pi 主仓 98K,但子项目 pi-chat 389 / pi-review 300 / pi-transcribe 221 —— 子项目星标分散,生态治理复杂,未来可能出现子项目失活。
十、总结
3 个最值得用 Pi 的理由
1️⃣ Self-extensible 设计哲学(独一无二)
只有 Pi 允许 agent 修改自己的工具集 —— 这是 INTP 友好极强,也是 AI Agent 工具的 ” 元编程 ” 能力。
2️⃣ 完整 monorepo 5 个 npm package(按需引用)
pi-ai / pi-agent-core / pi-coding-agent / pi-tui / pi-telemetry 5 个独立 npm package —— 你可以只引用 pi-ai 不引整个 CLI。对比其他都是单一包。
3️⃣ 98K ⭐ + MIT ✅ + 周更节奏(高活跃度)
5,815 commits / 周更 v0.84.3 / 不到 1.5 年 98K stars —— 比 LangChain 还高(95K),比 Claude Code / Codex(闭源)开放。
不适合用 Pi 的场景
- ❌ Python 数据科学项目(用 LangChain)
- ❌ VSCode IDE 集成(用 Cursor / Cline)
- ❌ 单一厂商锁定场景(用 Claude Code / Codex)
- ❌ 长程状态控制(用 LoopX 而不是 Pi)
先试一周
| Day | 任务 |
|---|---|
| 1 | 装 Pi + 配置 2 个 LLM API key(OpenAI + Anthropic) |
| 2-3 | 启动 Pi CLI,让 agent 改一个真实的 bug |
| 4-5 | 写一个自定义 Agent(用 pi-agent-core + pi-ai) |
| 6-7 | 加 TUI 自定义(可选),探索 self-extensible 用法 |
一周后如果你觉得 ”agent 改自己工具 ” 的感觉对了,恭喜你进入了 self-extensible AI Agent 范式。
参考
- earendil-works/pi GitHub —— 主仓 98,728 ⭐
- earendil-works/pi-chat —— Slack 自动化 389 ⭐
- earendil-works/pi-review —— Code review 扩展 300 ⭐
- earendil-works/pi-tutorial —— 教程模式 170 ⭐
- earendil-works/absurd —— “An experiment in durability” 2.4K ⭐
- earendil-works/gondolin —— Linux microvm + TypeScript 2.1K ⭐
- davebcn87/pi-autoresearch —— 自主实验循环 7.9K ⭐
- Pi 官网 pi.dev —— 项目官网 + demo
- LoopX 调研 (WP 403) —— Pi 是 LoopX 8 host 集成之一
- 循环工程 4 件套横评 (WP 428) —— Pi 是 L2.5 工具链层
- LangChain 调研 (WP 344) —— Pi 跟 LangChain 互补(不同范式)
- DSH 调研 (WP 340) —— Pi 跟 DSH 都是 Agent harness
- Prefect 调研 (WP 432) —— Pi 跟 Prefect 都押注 AI Agent 生态
- Elementary 调研 (WP 424) —— AI Agent 4 层基础设施闭环
- D3.js 调研 (WP 426) —— “viz 领域汇编语言 ” 对照
📎 WordPress 链接
- 官方链接:《Pi 调研:98K stars 的 AI Agent 工具链定位,怎么用 5 个 npm package 把统一 LLM API + Agent Runtime + 编程 CLI + TUI 拼成自己的 AI 编程栈》
- 短链:
https://east196.cn/?p=434 - WordPress API ID:434
- 状态:published · 2026-08-29