Pi 调研:98K stars 的 AI Agent 工具链定位,怎么用 5 个 npm package 把统一 LLM API + Agent Runtime + 编程 CLI + TUI 拼成自己的 AI 编程栈

25次阅读
Pi 调研:98K stars 的 AI Agent 工具链定位,怎么用 5 个 npm package 把统一 LLM API + Agent Runtime + 编程 CLI + TUI 拼成自己的 AI 编程栈

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 commits5 个 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:固定工具集

Piagent 可以扩展自己的工具集(这是 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 范式


参考

  1. earendil-works/pi GitHub —— 主仓 98,728 ⭐
  2. earendil-works/pi-chat —— Slack 自动化 389 ⭐
  3. earendil-works/pi-review —— Code review 扩展 300 ⭐
  4. earendil-works/pi-tutorial —— 教程模式 170 ⭐
  5. earendil-works/absurd —— “An experiment in durability” 2.4K ⭐
  6. earendil-works/gondolin —— Linux microvm + TypeScript 2.1K ⭐
  7. davebcn87/pi-autoresearch —— 自主实验循环 7.9K ⭐
  8. Pi 官网 pi.dev —— 项目官网 + demo
  9. LoopX 调研 (WP 403) —— Pi 是 LoopX 8 host 集成之一
  10. 循环工程 4 件套横评 (WP 428) —— Pi 是 L2.5 工具链层
  11. LangChain 调研 (WP 344) —— Pi 跟 LangChain 互补(不同范式)
  12. DSH 调研 (WP 340) —— Pi 跟 DSH 都是 Agent harness
  13. Prefect 调研 (WP 432) —— Pi 跟 Prefect 都押注 AI Agent 生态
  14. Elementary 调研 (WP 424) —— AI Agent 4 层基础设施闭环
  15. D3.js 调研 (WP 426) —— “viz 领域汇编语言 ” 对照

📎 WordPress 链接

正文完