Pi Agent:9.8万Star,只有4个工具却干翻一切,AI编程界的极简主义革命


🥧 Pi Agent:9.8万Star,只有4个工具却干翻一切,AI编程界的极简主义革命

市面上的AI编程工具都在比谁功能多。

Claude Code有几十个内置工具。Codex有完整的项目管理。Cursor有代码补全、多文件编辑、Agent模式三套引擎。

然后有个项目反着来。

叫Pi。9.8万Star,MIT开源,由Flask作者Armin Ronacher打造。默认只有4个工具:读文件、写文件、改文件、跑命令。

没了。

没有子Agent,没有权限弹窗,没有Plan模式,没有待办列表,没有后台命令。

它的口号是:”Primitives, not features”(给原语,不给功能)。

结果Databricks实测:同一个模型同样的思考强度,Pi的成本只有Claude Code的一半,质量基本一致。

项目地址:https://github.com/earendil-works/pi


🤔 一、为什么4个工具就够了

先说一个反直觉的事实。

AI编程工具的工具数量和任务完成质量之间,没有正相关。甚至可能是负相关。

原因很简单。每个工具的描述会占用上下文token。工具越多,描述越长,模型真正用来理解任务的上下文越少。

Databricks的实测数据:

对比项 Claude Code / Codex Pi
每轮上下文体积 大(大量工具描述+系统提示) 小(4个工具,描述极简)
单任务成本 基准值 基准值 × 0.5
任务质量 基准值 基本一致
上下文效率 33%(约2/3是工具开销) 100%

Pi的判断逻辑是一句话:”LLM真的很擅长写和运行代码,所以拥抱这一点。”

既然模型能写bash命令,为什么还要给它一个专门的”搜索文件”工具?让它自己写grep -r "keyword" .不就行了。既然模型能写Python脚本,为什么还要给它一个”运行测试”工具?让它自己写pytest tests/不就行了。

4个原语工具能组合出无限种能力。100个定制工具只能做设计者预设好的100件事。


️ 二、四层架构:极简不等于简陋

Pi的内部架构分四层,每层职责清晰:

第一层:pi-ai — 统一LLM API

一个接口对接所有模型。OpenAI、Anthropic、Google、Mistral、Moonshot,切换模型只改一个参数。不绑定任何provider。

// 统一接口,换模型只改provider
import { generate } from '@earendil-works/pi-ai';

const response = await generate({
  provider: 'anthropic',
  model: 'claude-opus-4.8',
  messages: [{ role: 'user', content: '读一下src/index.ts' }]
});

第二层:pi-agent-core — Agent运行时

核心就是一个while循环。模型决定下一步→执行工具→拿结果→再决定。没有复杂的状态机,没有多Agent编排。状态管理基于”会话树”——每个操作是一个节点,可以分支、回溯、重放。

第三层:pi-coding-agent — 编程Agent CLI

终端交互界面。支持四种运行模式:交互模式(对话式)、批处理模式(脚本驱动)、RPC模式(被其他程序调用)、SDK模式(嵌入Node.js应用)。

第四层:pi-tui — 终端UI库

自研的终端渲染库,支持差分渲染(只更新变化部分,不重绘整个屏幕)。这是Pi在终端里能做到流畅交互的底层保障。

作用 可独立使用
@earendil-works/pi-ai 统一多Provider LLM API
@earendil-works/pi-agent-core Agent运行时+工具调用+状态管理
@earendil-works/pi-coding-agent 编程Agent CLI
@earendil-works/pi-tui 终端UI库(差分渲染)

四个包都可以独立使用。你不需要装整个Pi,只需要pi-ai就能用它的统一LLM API。


三、上手实测:5分钟跑起来

安装方式极简:

# 全局安装
npm install -g @earendil-works/pi-coding-agent

# 启动
pi

第一次启动会让你配置API Key。支持OpenAI、Anthropic、Google,也支持本地Ollama。

配好后直接在终端里跟它对话:

pi> 帮我看一下这个项目的package.json,列出所有依赖
# Pi会自动调用read工具读取文件,然后分析

pi> src/utils目录下有没有处理日期的函数?
# Pi会调用bash工具执行 grep -r "date" src/utils/

pi> 给这个项目加一个.eslintrc,用标准配置
# Pi会调用write工具创建文件

你会发现它跟Claude Code的体验很像。但有个关键区别:Pi的每一步操作你都能看到,它不会偷偷在后台干什么。而且它不会主动往上下文里塞东西——除非你明确要求。

扩展机制:Extension

Pi把所有”可选功能”都留给了Extension。想加Plan模式?装个Extension。想要子Agent?装个Extension。想要代码review?装个Extension。

// 一个最小的Extension示例
export default {
  name: 'my-extension',
  tools: [
    {
      name: 'search_web',
      description: '搜索互联网',
      execute: async (query: string) => {
        // 你的搜索逻辑
        return results;
      }
    }
  ]
};

Extension是标准TypeScript包,可以通过npm分发。这意味着你可以把团队的工作流固化成Extension,新人装上就能用。


四、Databricks实测:省一半钱,质量不降

2026年7月8日,Databricks发布了一篇重磅研究:在百万行代码库上基准测试编码Agent。

核心发现:”harness对成本和质量的影响巨大。在许多情况下,像Pi这样的简单harness在我们的工作负载上表现最好。”

指标 Claude Code Codex Pi
单任务成本 1.0x 1.1x 0.48x
综合通过率 基准 基准 最高
每轮context体积 小(约1/3)
推荐模型 自家 自家 Claude Opus 4.8 xhigh

Pi搭配Claude Opus 4.8的xhigh thinking设置,在Databricks数据中综合通过率最高,同时成本低于Claude Code和Codex。

原因就是上下文效率。Pi每轮发送的context约只有前者的三分之一,剩下的三分之二全是工具描述和系统提示的开销。更少的开销意味着同样长的对话窗口能装更多有用信息。

Shopify的案例更有意思。工程师用Pi写了一个叫pi-autoresearch的扩展——让Pi读自己的扩展文档然后写出来的。Shopify报告内部实测单元测试速度提升300倍、React组件挂载速度提升20%。


️ 五、Pi vs Claude Code vs Cursor:怎么选

维度 Pi Claude Code Cursor
工具数量 4个 几十个 几十个
哲学 极简原语 功能完备 IDE集成
模型绑定 不绑定 Anthropic 多家
扩展性 Extension/npm 有限 插件系统
上下文效率 最高
上手门槛 中(需配置)
适合人群 喜欢掌控感的开发者 快速上手 重度IDE用户

Pi不适合所有人。如果你要的是”开箱即用、什么都帮你配好”,Claude Code和Cursor更合适。但如果你想要完全掌控Agent的行为、理解每一步在干什么、按自己的工作流定制,Pi是目前最好的选择。

Flask作者Ronacher的判断值得品味:”There are many agent harnesses, but this one is yours.”(有很多Agent框架,但这个是你的。)


本文要点回顾

  1. Pi是Flask作者打造的极简AI编程Agent,9.8万Star,MIT开源,默认只有4个工具(read/write/edit/bash),理念是”给原语不给功能”
  2. 四层架构:pi-ai统一LLM API → pi-agent-core运行时 → pi-coding-agent CLI → pi-tui终端UI,每层可独立使用
  3. Databricks百万行代码库实测:Pi成本只有Claude Code一半,质量基本一致,因为上下文效率高3倍
  4. Extension机制让Pi可无限扩展:Plan模式、子Agent、代码review都可装Extension实现,通过npm分发
  5. 选型建议:要开箱即用选Claude Code/Cursor,要完全掌控和定制选Pi——”有很多Agent框架,但这个是你的”

文章摘自:https://www.cnblogs.com/badhope/p/22757597/pi-agent-98k-stars-4-tools-minimalist-revolution