炎策笔记

Pi 编码 Agent 深度解析:极简主义如何赢得开发者的青睐

· AI资讯

如果你最近半年在 Cursor、Codex、Claude Code、OpenCode 之间反复横跳,已经有点”选恐”了——这篇文章应该能给你一个新视角。

过去几个月,Coding Agent 赛道卷出了天际。各家疯狂堆功能、加特性,恨不得把整个 IDE 都塞进终端。但就是在这一片”军备竞赛”里,冒出来一个反其道而行之的家伙——Pi。它在 GitHub 上拿了 58,000 个 Star、7,000 个 Fork,过去半年发了 225 个版本,拥有自己的独立官网 pi.dev 和活跃的 Discord 社区。

你可能觉得 58K Star 在 2026 年不算什么——但考虑到 Pi 是一个纯终端工具、没有 GUI、不内置任何花哨功能,这个数字说明了一件事:有一大票开发者已经被那些”宇宙飞船”级别的 Agent 折腾烦了,正在用脚投票。

Pi 是 libGDX 引擎创始人、写了 17 年开源代码的 Mario Zechner 搞出来的。它的逻辑简单到有点”冒犯”人:四个工具、一段极短的 system prompt、没有那些花里胡哨的东西,但能让你用一句自然语言把它改造成任何你想要的样子。

这篇文章聊聊 Pi 背后的逻辑、它到底怎么用、以及为什么很多人一用就回不去了。


一、现在的编码 Agent,是不是在瞎折腾?

先快速过一下时间线。

2025 年以前,大家还停留在从 ChatGPT 里复制代码片段、让 Copilot 帮忙补全几行函数的阶段。偶尔能用,经常翻车。

2025 年 2 月,Claude Code 横空出世。它没有走 Cursor 那种”先给整个项目建索引”的路,而是让模型直接拿 bash 和文件工具去实时探索你的代码库,找到需要的信息就改。效果炸裂,无数开发者包括 Mario 在内,直接写到不睡觉。

但好景不长。

Claude Code 开始疯狂加功能。今天加个这个,明天加个那个,很快变成 Mario 口中的”宇宙飞船”——功能多到你真正用过的可能只有 5%,了解的也就 10%,剩下 90% 全是”暗物质”,不知道它背地里到底对你的上下文动了什么手脚。

Mario 自己做过实验。他在 2025 年夏天写了一些拦截工具,专门抓 Claude Code 往后端发请求时偷偷往 context 里塞了什么东西。结论是:每天都在变,而且很多时候是多余的。 厂商改一个不起眼的小细节,你的 LLM 就可能在处理老任务时直接发疯,而你对这一切一无所知。

这就戳中了一个核心矛盾:厂商需要快速迭代做实验,但开发者需要可预测的稳定环境。 当你发现自己正在依赖一个”随时可能背刺你”的工具时,那种掌控感的丧失是非常要命的,尤其是在你写的代码要上生产环境的时候。

Claude Code 不是个例。OpenCode 也有自己的问题——它在每一轮对话里会把 4 万 token 之前的记录全删掉,等于自己把自己的 prompt cache 给毁了;它还默认挂着 LSP,在模型一行一行改代码的过程中不断插嘴说”这里报错了”,搞得模型一脸懵:“我还没改完呢你急什么?“更离谱的是,它闹出过默认自带的远程代码执行漏洞(RCE),而且是开了很久才发现。

Mario 对 OpenCode 的评价很直接:“一旦我对这种底层设计失去信心,我就不想再用这个工具了。”

而最让 Mario 警觉的,是 AMP 这类商业化框架的做法——它甚至会替用户决定”这个任务用哪个模型处理最好”。这对一个写了 17 年开源代码、把”掌控权”视作信仰的人来说,简直不能忍。


二、一个 17 年开源老兵决定掀桌子

Mario 不是只吐槽不干活的人。他开始认真思考:一个”对”的编码 Agent 到底应该长什么样?

转折点来自一个叫 TerminalBench 的基准测试,它专门评估各种 Agent 框架和模型的组合,有大约 82 个多样化的任务。排行榜上表现最好的框架之一叫 Terminus,它的做法极其简单粗暴:模型拿到的只有一个 tmux session,唯一能做的就是发送按键然后接收返回的 VT 序列码。这是模型与电脑之间最原始、最极简的接口。 但它就是顶级表现。

这个发现给了 Mario 一记重锤:我们真的需要文件工具、子 Agent、联网搜索、plan mode 那些功能吗?答案很可能是不需要。

于是 Pi 诞生了。

它的核心理念就一句话:让 Agent 适应你的需求,而不是你适应 Agent。

开箱即用只有四个工具:read、write、edit、bash。system prompt 比其他框架短一个数量级——Mario 的逻辑是:现在的 frontier models 早就通过海量 RL 训练”知道”什么是 Coding Agent 了,不需要你再长篇大论地教它该怎么当程序员。

默认就是 YOLO 模式,全自动跑到底,不问你”确定要删这个文件吗?“——因为 Mario 认为那种确认对话框根本没有意义,用户要么早就关了它,要么就是无脑按回车,从来没有真正起到过”安全护栏”的作用。

四个工具,极短 prompt,YOLO 跑到底。就这些。

但你如果以为 Pi 只是一个玩具级的极简 Agent,那就太小看它了。它的实际架构是一个 monorepo,包含四个核心 package:

  • pi-coding-agent:交互式编码 Agent CLI,也就是你每天在终端里用的那个
  • pi-agent-core:Agent 运行时,负责工具调用和状态管理
  • pi-ai:多 provider 统一 LLM API,抹平 OpenAI、Anthropic、Google 等不同厂商的协议差异
  • pi-tui:终端 UI 渲染库,Mario 自己手写的,大约 600 行代码,但出奇好用

这个架构透露了一个很有意思的信息:Pi 不只是”一个终端工具”,它是一套可以被嵌入到任何地方的 Agent 基础设施。 你可以在 headless 模式下把它当 SDK 用,也可以在一个 Slack bot 里跑它——实际上,官方已经有一个 pi-chat 项目专门做这个。


三、Pi 到底用起来什么样?

如果说 Mario 的视角是”造物者”,那前阵子一位开发者 GoldenSpider 的分享就是最真实的”使用者”视角——他已经把 Pi 调成了日常主力,Codex 都打入冷宫了。

他提了一个很妙的类比:OpenCode 像 VS Code,Pi 像 NeoVim。

VS Code 开箱即用、默认体验好、有自己一套观点。NeoVim 装好几乎啥都没有、门槛高、但定制深度完全是另一个维度。

不过 Pi 比 NeoVim 强在一个致命的关键点上:NeoVim 的学习曲线在你身上,Pi 的学习曲线在 Agent 身上。

你不需要花几年时间查文档、抄配置、折腾插件管理器。你只需要用自然语言跟 Pi 说一句”我要做一个 XX 功能”,它自己就去读文档、写代码、热重载了。整个流程跟”给同事提需求”没什么区别。

他的日常工作流长这样:

  • 终端用 CMux——Cmd+1/2/3 在多个项目之间秒切,同一个项目内 Cmd+D 分屏,左边开好几个 Pi 标签页,右边跑 dev server。一个搞后端、一个搞前端,几个 Agent 并行干活,互不打扰。这在传统的”一个 IDE 一个项目”范式里是很难做到的。
  • 模型用 GPT-5.5 low reasoning——跑得快、稳、聪明。因为 Pi 的 pi-ai 层统一了多 provider 的 API,切换模型就是一句话的事,不用改任何配置。
  • 会话管理极其激进——任务一完成就 /copy 抓最后一条消息当上下文,然后 /new 开个干净会话粘进去继续。想回头看历史就 /resume,想看 Agent 干了什么就 /tree 树状展开所有工具调用。Session 是树结构而不是线性的聊天记录,这意味着你可以在分支里让 Agent 读目录、总结内容,然后回到主对话把总结带回来继续工作——本质上就是可控的 sub-agent。

这种用法的精髓在于:手动、精细地管理上下文。 既享受 Agent 帮忙干活的速度,又不会”vibe coding”到完全失控。而 Pi 的树状 session 结构、透明的上下文管理,正好为这种用法提供了基建级别的支持。


四、让 Agent 自己写自己的扩展——以及一个让你意外的生态

这可能是 Pi 最”反直觉”也最”降维打击”的地方。

Pi 全局安装时自带了一批手写的 markdown 文档,通过默认 system prompt 暴露给模型。所以你打开一个全新的 Pi 实例,直接说:“帮我写一个自定义扩展。“Agent 第一件事就是去读文档,读完就知道怎么写了。

更关键的是,Pi 的架构是完全热重载的。Agent 写完扩展文件,你输入 /reload,不用重启,新命令立即可用。整个过程跟”给同事提需求”没什么区别。

来看看 GoldenSpider 自己写的那些扩展有多实用:

  • /yeet:做完一波修改,输入 /yeet "fix: button alignment",Agent 自动 git add、commit、问你要不要 push、要不要建 PR。一键发车,真正的丝滑
  • /diff:列出上一回合改过的所有文件,回车直接在外置编辑器里打开 diff。Review Agent 的改动比翻终端舒服一百倍。
  • /firecrawl-search + /firecrawl-scrape:弥补 Pi 默认没有网络搜索的能力。接上 Firecrawl,一个负责搜、一个把网页扒成 LLM 友好的 markdown。
  • /tx9:把当前项目 snapshot → 收集 prompt → 推给远程 Mac mini → 启动后台 Agent 干活。回来再触发一次就能 review、pull、follow-up。
  • /copy-all:把整个会话的对话内容复制到剪贴板,方便当作上下文塞进另一个会话。
  • TPS tracker:TUI 底部实时显示 token 生成速度,GPT-5.5 low 大概 140 t/s,靠这个直观判断今天网络和模型状态。

而另一位开发者 Dylan Moroy 公开的 Pi 配置里,他的扩展列表和 GoldenSpider 的几乎完全不重合——他有自定义 todo 工具、MCP 集成、/update 自动检测更新、/ephemeral 让某些 skill 只在显式调用时才注入 context(完美解决”MCP server 太多撑爆 context”的问题)。

这就完美印证了 Pi 最核心的那句话:“他的 Pi 和我的 Pi,长得完全不一样,而这就是 Pi 的意义。”

更值得关注的是 pi-skills 生态。这是 Mario 维护的一个开源技能仓库,专门为 Pi 编码 Agent 提供可复用的 skill——但它真正厉害的地方在于,这些 skill 同时兼容 Claude Code、Codex CLI、Amp 和 Droid。也就是说,你在 Pi 里写的 skill,拿到 Claude Code 里一样能用。

pi-skills 已经有 1,900 个 Star,目前包含的技能像 Brave 搜索、Chrome 浏览器自动化、Google Calendar/Drive/Gmail CLI、语音转写、YouTube 字幕抓取、VS Code 集成等等。Mario 的野心显然不只是做一个 Pi 的专属生态——他在试图建立一套跨 Agent 框架的 skill 标准。

另外值得一提的是社区的创造力。有开发者用 5 分钟就在 Pi 里复刻了 Claude Code ships,而且功能更多;有人搞出了 pi-messenger,让多个 Pi Agent 在一个聊天室里互相通信、还能实时观察它们的行为;甚至有人在 Agent 运行的时候顺手在 TUI 里嵌入了一个 NES 模拟器——对,就是在编码 Agent 里打游戏。

虽然说这有点不正经,但它证明了一件事:Pi 的扩展机制的灵活性,几乎没有上限。


五、怎么开始?别一上来就规划所有扩展

很多人一接触可定制系统,第一反应就是:“我要把所有可能用到的功能一次性全配好。“——这恰恰是当年 NeoVim 劝退人最大的原因。

Pi 的正确打开方式完全相反:

  1. 从空白开始。 顶多装个主题,别的什么都不加。
  2. 遇到痛点再加。 比如你第三次手动让 Agent 执行”commit、push、建 PR”这套流程的时候,停下来,告诉 Pi:“帮我把这个流程做成一个扩展。“半分钟后,你永远拥有它了。
  3. 重复 3-4 次的操作就值得做成扩展。
  4. 慢慢地,你的 Pi 会长成你的形状。

这不是一句鸡汤。因为在 Pi 里,定制不需要提前规划——定制本身就是一句话的事。

如果你想看别人怎么配的、找点灵感,可以去 pi.dev 翻翻文档,或者加入 Discord 社区看看大家分享的配置。GoldenSpider 也开源了他全套 Pi 配置,但他自己都说:“我不建议你直接 clone,Pi 的精髓是你自己的那套,不是别人的。“


写在最后

Mario 在演讲里说过一段话,我觉得是这个阶段最好的总结:

我们现在正处于”一边瞎折腾一边看结果”的阶段,没人知道完美的编程 Agent 到底该长啥样。有人走极简路线,有人走”宇宙飞船”路线,搞 Agent 集群、完全自治。行业标准还没出现,大家都在摸索。但我们需要更好的”折腾”方式——编程 Agent 必须是可自修改、可塑性极强的。

Pi 是不是 Coding Agent 的终极形态?大概率不是。但考虑到 Pi 的极简理念和它完全不投喂 GUI 的”高傲”,这个数字传递了一个清晰的信号:开发者正在用行动表明,他们想要的不是更多功能,而是更多掌控。

在 AI 工具大爆发的 2026 年,这种”把掌控权还给开发者”的设计哲学,可能比堆一百个功能都更有价值。

如果你也在各种 Agent 之间反复横跳、总觉得少了点什么——去 pi.dev 看看,装上试试。然后慢慢把它变成只属于你的样子。


如果觉得有帮助,欢迎转发给同样在折腾编码 Agent 的朋友。