📌 评测对象:earendil-works/pi | 星数:105,527 · Fork 13,269(2026-09-15)| 协议:MIT | 语言:TypeScript(monorepo)| 创建:2025-08-09 · 13个月 | 今日 GitHub Trending +437
一句话定位:"别人卖成品Agent,Pi卖造Agent的骨架——统一LLM API、agent循环、TUI、编码CLI全部拆成独立包,你能改任何一层,甚至让Agent改它自己。" Pi(Pi Agent Harness)是 2026 年 Agent 基础设施赛道星数最高的项目:2025 年 8 月创建,13 个月冲到 105.5k 星,今天仍在 GitHub Trending 榜上(+437)。它不是又一个 ChatGPT 壳,而是一套分层明确的工具箱:pi-ai 统一多提供商 LLM API、pi-agent-core 管工具调用与状态、pi-tui 做差分渲染终端界面、pi-coding-agent 则是官方用这些积木搭出的自扩展编码 Agent。
站内今天刚发布了它最出圈的扩展上手教程《SoL-Pi教程:2k星NVIDIA出品的Agent效率扩展,四个机制省token不减活》(SoL-Pi 就是寄生在 Pi 上的效率扩展),本文是深度评测视角:拆它的六包架构、安全模型、供应链工程与真实使用成本。注意别和另一个项目搞混:站内也写过PI-Desktop(本地优先编码Agent桌面端),那是独立的桌面项目,与 earendil-works/pi 无关。同类的 Agent 运行时对比还可看FrontierAgent教程:3.1k星Agent运行时,ReAct+Agent Team双工作流。
| 维度 | 评分 | 说明 |
|---|---|---|
| 理念与定位 | 9.5 | harness而非产品:把"Agent的骨架"做成可替换的分层积木,自扩展(self-extensible)让Agent能改自己,思路领先多数一体化竞品 |
| 工程含金量 | 9.5 | 六包monorepo职责切分干净(ai/agent/tui/coding-agent/chord/telemetry);构建支持完全离线(build:offline+release模型数据),独立二进制带SHA256校验 |
| 安全与权限 | 8.0 | 无内置权限系统是硬伤但文档诚实明示;给出Gondolin micro-VM/Docker/OpenShell三种容器化模式,把选择权交给用户 |
| 供应链工程 | 9.5 | 同类最重:依赖当受审代码、精确锁版本、min-release-age=2防当天依赖、shrinkwrap+生命周期脚本白名单+发布冒烟测试+CI audit全套 |
| 上手成本 | 8.0 | npm i -g即用,官方文档pi.dev完善甚至能让Agent解释自己;但要吃透权限边界需要容器化知识,面向power user |
| 文档质量 | 9.0 | pi.dev文档站+容器化专页(三种模式逐一给方案)+公开RFC流程(rfc.earendil.com),长期路线透明 |
| 生态与扩展 | 9.0 | NVIDIA为它写SoL-Pi效率扩展、姊妹项目pi-chat(Slack/聊天自动化)、pi-share-hf会话数据集生态(Hugging Face)、Discord社区 |
| 社区与维护 | 8.5 | 105.5k星/13.3k fork/236 open issues,最新push就在今天,极其活跃;但新贡献者issue/PR默认auto-close是双刃剑 |
| 包 | 职责 | 评测观察 |
|---|---|---|
| pi-ai | 统一多提供商LLM API(OpenAI、Anthropic、Google等) | 一套API抽象层,换提供商不用重写调用代码,Agent开发里最实用的一层 |
| pi-agent-core | Agent运行时:工具调用+状态管理 | agent循环的参考实现,拿它搭非编码类Agent也完全可行 |
| pi-tui | 终端UI库,差分渲染 | 终端应用的渲染性能方案,单独抽出来复用价值高 |
| pi-coding-agent | 交互式编码Agent CLI(官方成品) | 自扩展是灵魂:装技能、加工具、甚至改自己的行为,SoL-Pi就是范例 |
| chord | 服务组合运行时:复制状态、RPC、插件 | 面向服务化场景的组合层,野心在多Agent/多服务编排 |
| pi-telemetry | 厂商中立遥测契约+参考适配器 | 连观测层都做了契约抽象,工程洁癖可见一斑 |
这个分层本身就是最大的卖点:你可以只用 pi-ai 当统一模型网关,可以用 pi-agent-core + pi-tui 搭自己的领域Agent,也可以直接用 pi-coding-agent 编码——三种用法互不绑架。想看"用运行时搭领域Agent"的另一个参照,可读FrontierAgent教程;想看"Agent自主跑研究任务"的极端用法,可读PRAXIST自主研究系统教程。
评测必须敲黑板的第一件事:Pi没有内置权限系统。README 原话:它不以任何方式限制文件系统、进程、网络或凭证访问,默认以启动它的用户和进程权限运行。换句话说,一个失控的 Agent 能干的事=你的账号能干的事。官方没有回避这一点,而是在容器化文档里给了三条加强边界的路径:
| 模式 | 原理 | 适合 |
|---|---|---|
| Gondolin扩展 | pi和提供商凭证留在宿主机,内置工具与!命令路由进本地Linux micro-VM | 想要细粒度工具级隔离的用户 |
| 普通Docker | 整个pi进程跑在本地容器 | 快速粗粒度隔离,最省事 |
| OpenShell | 整个pi进程跑在策略控制的沙箱 | 需要可编程安全策略的团队 |
把"没做权限系统"做成"给三种沙箱模式+诚实文档",比那些默默给 root 权限的同类工具强——但事实不变:裸跑Pi在高权限环境是有风险的,生产环境请配合容器化。
这是 Pi 最硬核的部分,值得单独开一节。在 Agent 工具频繁曝出恶意依赖投毒的 2026 年,Pi 的做法几乎是教科书级:
.npmrc 设置 save-exact=true 和 min-release-age=2——发布不满2天的依赖不进入解析,直接封死"抢注恶意新版本"的攻击窗口package-lock.json 是依赖唯一事实源,误提交lockfile会被pre-commit拦截;发布CLI带 npm-shrinkwrap.json 锁定传递依赖npm run release:local 在仓库外做隔离的npm/Bun安装测试;文档化安装和 pi update --self 都走 --ignore-scriptsnpm audit --omit=dev 加签名校验;GitHub Releases 带 SHA256SUMS,源码包可用官方脚本离线复现构建# 最快路径:npm全局安装
npm install -g @earendil-works/pi-coding-agent
# 或从GitHub Releases下载独立二进制(带SHA256SUMS校验)
# 源码构建(可完全离线)
git clone https://github.com/earendil-works/pi.git
cd pi && npm install --ignore-scripts
npm run build # 刷新模型数据+构建全部包
npm run build:offline # 离线重建(用已有模型数据)
./pi-test.sh # 从源码跑pi
上手体验:CLI装完即用,文档在 pi.dev(域名还是 exe.dev 捐的),甚至可以在 Agent 里直接问它自己怎么用——"让Agent解释自己"这个设计很符合项目气质。真实成本:软件 $0(MIT),LLM 调用费走你自己配的提供商 API key;时间成本主要花在理解权限边界和(可选的)容器化配置上。
1. 新贡献者issue/PR默认auto-close。README 顶部明说:新贡献者的issue和PR默认自动关闭,维护者每天审查这些被关闭的内容。105k星量级下的自保策略,可以理解,但对想贡献代码的人是实打实的劝退门槛。
2. 没有内置权限系统。上文详述,裸跑有风险,必须自己上沙箱。
3. TypeScript单语言生态。整套东西是Node/TS世界观,Rust/Go阵营的agent工具链无法直接复用这些包,跨语言团队要自己再包一层。
| 方案 | 哲学 | 适合 |
|---|---|---|
| Pi | harness/积木:分层可替换+自扩展,供应链安全最重 | 想深度改造Agent行为的开发者、安全敏感团队 |
| Claude Code/Codex等厂商产品 | 一体化成品,开箱即用 | 图省事的终端用户,不想碰底层 |
| OpenAI Agents SDK等纯框架 | 只给runtime,不管TUI和编码场景 | 纯API侧Agent编排 |
推荐:想把编码Agent"调教成自己形状"的开发者(自扩展+六包分层给了全部手术刀);安全与供应链敏感的团队(依赖锁定/审计/冒烟测试是同类最重,前提是自己加容器化);想用统一API接多提供商LLM的人(pi-ai单拎出来就值回票价)。
不建议:只想"装完就用、绝不折腾"的轻用户(Claude Code类产品更合适);没有能力配置沙箱却要在高权限环境跑Agent的人;Rust/Go技术栈想直接复用包的团队。
综合评分 8.9/10:13个月105.5k星不是风口运气——六包架构、诚实到把"没有权限系统"写在README第一段的安全文档、把npm依赖当代码审的供应链纪律,都是稀缺的工程品格。扣分在无内置权限、auto-close新人的社区策略和TS单语言生态。当 NVIDIA 都来给它写效率扩展(SoL-Pi)时,这个骨架的扩展性已经不需要自证了。
Pi(earendil-works/pi,105.5k星,MIT)是一个AI agent工具箱(agent harness):底层是统一多提供商LLM API(pi-ai,支持OpenAI、Anthropic、Google等)、agent运行时(pi-agent-core,工具调用+状态管理)和差分渲染终端UI库(pi-tui),上层封装出自扩展的交互式编码Agent CLI(pi-coding-agent)。区别在于它卖的不是成品体验而是可改造的骨架:Claude Code是厂商一体化产品,Pi则把每层拆成独立npm包,开发者可以替换、扩展任意一层,甚至让Agent自己改自己。
最简单方式:npm install -g @earendil-works/pi-coding-agent。GitHub Releases还提供带SHA256校验的独立二进制(含离线模型数据,可用build-binaries.sh自行构建)。模型支持通过pi-ai统一层覆盖OpenAI、Anthropic、Google等主流提供商,一套API换base_url即可切换,官方文档在pi.dev,也可以直接在Agent里让它解释自己。
Pi没有内置权限系统,默认以启动它的用户身份和进程权限运行——这点必须知情。官方在容器化文档里给出三种加强边界的模式:Gondolin扩展(pi和提供商凭证留在宿主机,内置工具和感叹号命令路由进本地Linux micro-VM)、普通Docker(整个pi进程跑在本地容器里)、OpenShell(策略控制的沙箱)。想给它配效率扩展可参考SoL-Pi(NVIDIA出品),但任何扩展都继承同样的权限边界。
这是Pi最突出的工程亮点:npm依赖变更被当作受审代码变更对待——直接外部依赖全部精确锁版本,.npmrc设置save-exact=true和min-release-age=2避免当天发布的依赖进入解析,package-lock.json是依赖唯一事实源,发布CLI带npm-shrinkwrap.json锁定传递依赖,生命周期脚本有显式白名单,发布前跑隔离npm/Bun安装冒烟测试,CI定时跑npm audit。GitHub Releases带SHA256SUMS校验,构建可完全离线。
这是维护团队明确的策略:新贡献者的issue和PR默认被自动关闭,维护者每天审查这些被关闭的内容。目的是在105k星量级的关注度下控制维护成本,把精力集中在核心路线图(公开RFC流程在rfc.earendil.com)。想贡献代码应先读CONTRIBUTING.md和AGENTS.md,长期计划以RFC为准。