Pi Agent:TypeScript 全栈 AI Agent 开发底座,一站式统一 LLM API + 终端编码助手
Pi Agent:TypeScript 全栈 AI Agent 开发底座,一站式统一 LLM API + 终端编码助手
Pi 是由知名开发者 Mario Zechner(GitHub @badlogic,经典游戏框架 libGDX 作者)开源的 TypeScript Monorepo 项目,原名 pi-mono,现已迁移至 earendil-works/pi 作为主仓库。该项目提供了一套完整的 AI Agent 开发工具链:统一 LLM API 层(支持 15+ 提供商)、Agent 运行时、交互式终端编码助手 CLI、树状会话历史管理和开放的扩展系统。截至 2026 年 7 月 28 日,GitHub 约达 46,855 颗 Stars,近期持续活跃(v0.69.0 发布于 2026-07-30)。
功能与原则
Pi 的核心设计理念是「最小化 Agent Harness」——不给开发者预设工作流,而是提供原子工具和扩展点,让用户按需定制。其能力层次如下:
- 统一 LLM API(@earendil-works/pi-ai):一个接口对接 15+ 模型提供商(OpenAI、Anthropic、Google、DeepSeek、MiniMax 等),支持 token 消耗追踪、成本计算和上下文格式自动转换(如将 Anthropic 思考轨迹转为 OpenAI 兼容格式)。
- Agent 运行时(@earendil-works/pi-agent-core):有状态/无状态 Agent Loop,支持工具调用和状态管理。
- 编码助手 CLI(@earendil-works/pi-coding-agent):交互式终端工具,原子工具集极简(read/write/edit/bash),System Prompt < 1000 token,极度轻量。
- TUI 库(@earendil-works/pi-tui):差分渲染的终端 UI 库,支持多端渲染。
- 可扩展包生态:支持以 npm 或 git 方式打包分发 Extensions、Skills、Prompt Templates、Themes。
设计原则:Adapt Pi to your workflows, not the other way around——工具服务于人,而非框架束缚人。
认可度
- GitHub Stars:约 46,855(截至 2026-07-28,CSDN 日报记录)
- 2026 年 GitHub 月度 Trending 多次上榜,是 TypeScript AI Agent 领域的标杆项目之一
- v0.69.0 最新版本发布于 2026-07-30,保持高频迭代
- CSDN、博客园等国内技术社区持续有专题解析文章(如「推荐搞 Agent 的把这个 4 万 Star 的 GitHub 项目研究透」)
- 衍生项目:OdradekAI/opi(Rust 实现版)已获关注
链接
GitHub 仓库:https://github.com/earendil-works/pi
官网:https://pi.dev/
npm 包:https://www.npmjs.com/package/@earendil-works/pi-coding-agent
原作者
Mario Zechner(GitHub @badlogic),奥地利开发者,以开源游戏框架 libGDX(Java/LibGDX 游戏引擎)闻名于游戏开发圈。libGDX 是跨平台游戏开发的经典方案,在 GitHub 拥有数万 Stars。Mario 近年转向 AI Agent 基础设施方向,Pi 项目是其在 AI 时代的最新贡献,延续了其对极简主义和可组合性的追求。
介绍
Pi 不是一个「自带一切」的封闭产品,而是一个开放工具箱。
它的核心产品是 @earendil-works/pi-coding-agent——一个运行在终端里的交互式编码助手。Pi 的原子工具只有 4 个(read/write/edit/bash),System Prompt 不到 1000 token,极简到极致。这种设计让用户(或者 AI 本身)可以随时扩展:需要更多工具?直接让 Pi 自己写一个,然后 /reload 生效。
它的 @earendil-works/pi-ai 统一 LLM API 层是另一大亮点。在实际工程中,开发者往往需要同时接入多个模型提供商(贵的做复杂推理,便宜的做简单任务),但各家的 API 格式完全不同。Pi-ai 用一套统一接口封装了 15+ 提供商,支持模型间无缝切换和 token/成本追踪,极大降低了多模型管理的复杂度。
Pi 还提供了树状会话历史:每一次对话分支都保存在同一文件里,可以用 /tree 导航到任意历史节点继续工作,支持导出 HTML 或通过 /share 上传到 GitHub Gist 分享会话。
特点
- 15+ LLM 提供商统一接入:OpenAI、Anthropic、Google、DeepSeek、MiniMax、Mistral、Groq、Cerebras、xAI、HuggingFace、Moonshot 等,一套代码切换模型
- 极简编码 Agent:System Prompt < 1000 token,4 个原子工具即可启动,支持让 Agent 自己构建工具
- 自举式扩展:Pi 可以修改自己的提示词、工具和扩展,重启后立即生效,形成闭环
- 树状会话历史:分支会话永久保存,支持导航、书签和导出分享
- 多模式运行:支持交互式、打印/JSON、RPC 和 SDK 四种调用方式,可嵌入 OpenClaw 等外部系统
- 完整 TUI + Web UI:内置终端 UI 库,也提供 Web 界面
使用方法
安装(一键):
npm install -g @earendil-works/pi-coding-agent
配置鉴权(支持 4 种优先级):
- 命令行直接传入:
pi --model anthropic/claude-sonnet-4 --api-key sk-ant-xxx - 配置文件
~/.pi/agent/auth.json(持久化,权限 0600) - 环境变量
~/.pi/agent/models.json中的自定义 provider apiKey
基本使用:
# 进入交互式终端
pi
# 指定模型
pi --model deepseek/deepseek-chat
# 以 JSON 模式输出(程序化调用)
pi --print --model anthropic/claude-3-5-sonnet "解释这段代码的作用:..."
扩展安装(以 extension 为例):
# 安装 npm 包
npm install -g @earendil-works/pi-some-extension
# 重载生效
/reload
SDK 程序化调用示例:
import { createPiAgent } from "@earendil-works/pi-agent-core";
const agent = createPiAgent({
provider: "anthropic",
model: "claude-3-5-sonnet-20241022",
apiKey: process.env.ANTHROPIC_KEY,
});
const result = await agent.run({
task: "在当前目录创建一个 hello.go 输出 Hello World",
});
使用场景与人群
适用场景:
- 需要同时管理多个 LLM 提供商的 AI 应用开发者
- 追求极致轻量、想从零定制 Agent 工具链的极客用户
- 需要多模型路由、成本控制和 token 追踪的 AI 工程团队
- 希望 Agent 能「自举」——自己构建工具并即时生效的高级用户
目标用户:
- AI Agent 开发者和研究者
- 有多模型集成需求的工程团队
- 喜欢 TypeScript/JavaScript 技术栈的 AI 工具开发者
- 对极简主义和可组合性有追求的工程师
输入与输出案例
案例一:让 Pi 自己构建一个 GitHub Issue 摘要工具
输入:
帮我写一个 extension,能在 GitHub Issue 页面自动提取标题、标签和第一条评论,保存到本地 JSON 文件。
输出(Pi 自动生成 extension 并写入 ~/.pi/extensions/github-issue-summary.ts):
[Extension created successfully]
Installed extension: github-issue-summary
Use /reload to activate.
案例二:多模型路由场景
输入(pi --model openai/gpt-4o "解释什么是 RLM"):
输出:<标准 GPT-4o 解释,约 200 字>
输入(/model deepseek/deepseek-chat):
[Model switched to DeepSeek Chat]
输入(同一问题):
输出:<DeepSeek 解释视角不同,提及 PrimeIntellect 相关背景>
案例三:会话分支导航
输入(/tree):
[Session tree displayed]
- main (root)
- branch: fix-login-bug (2026-08-07)
- branch: refactor-auth (2026-08-08)
- sub: add-oauth (current)
输入(/goto fix-login-bug):
[Navigated to fix-login-bug branch]
[Session history: 12 messages from 2026-08-07]
Pi Agent 以其极简哲学、强大的多模型统一接入能力和自举式扩展机制,成为 2026 年 GitHub Trending 上的 TypeScript AI Agent 标杆项目。无论是想快速上手编码 Agent 的新手,还是追求高度定制的资深开发者,都能在 Pi 找到适合自己的切入点。
评论区
登录后可评论。