一个游戏引擎作者,做出了今年最值得学的 AI Agent 框架
如果你正在做一个 Agent 相关的项目,或者想理解 Agent 到底怎么工作——市面上大部分框架会让你在几十个文件里迷失方向。LangChain 太大了。Claude Code 是一个写好的商业产品,源码不是给你看的。简单点的?一个 while 循环就敢叫 Agent 的也不少。
Pi 不一样:它只有约 6800 字首章开篇,82 行代码就能搭建核心认知——这还是把概念讲清楚的前提下。最吸引人的是它的出身:作者是 Mario Zechner,libGDX 的作者。一个做游戏引擎的人跑来写 Agent 框架,这件事本身就值得多看两眼。
本文是 Pi 系列第 11 篇转载(ddddaishare,2026-08-11),侧重学习视角与减法哲学。此前的系统设计、源码分析、定制指南见 pi-agent-ecosystem。
Pi 给的不是一台装好的车,是一盒积木
Pi 对自己定位是**「极简、可扩展的终端编码 Agent 外壳」。注意关键词不是 Agent,是外壳**。
它不做 MCP、不做子 Agent、不做计划模式、不做权限弹窗、不做后台 bash、不做内置待办——这些是竞品最常吹的功能,Pi 一个都没有。但这些功能不是「被砍掉」的,是**「被移到外部」了**:Pi 给了一组扩展、技能、模板和主题机制,让你自己决定要不要加 MCP、要不要子 Agent、要不要计划模式。一个五分钟左右写的扩展,就可以把整套内置工具换成通过 SSH 操作远程机器。
Mario 的原话是:Pi 不做这些,因为它不认为框架应该替用户决定工具长什么样。Pi 给你的不是一辆装好的车,是一盒可以拼成任何形状的积木。
几个让人意外的数字
- 系统提示词模板:静态部分约 90 个英文单词,运行时拼上工具定义和上下文文件后大约 200-400 词。对比 Claude Code 的数万字——Pi 的提示词不到 Claude Code 的 1%。上下文窗口是 Agent 最稀缺的资源,固定指令占得越少,留给项目逻辑的就越多
- 内置工具只有 4 个:
read、write、edit、bash。辅助工具有grep、find、ls。不是因为做不出更多,而是因为**「更多的内置工具等于更多不可改变的约束」** - TUI 代码约 12000 行,核心单文件约 1700 行。Mario 没用什么现成的 TUI 库,按游戏引擎的思路自己写了一套差分渲染引擎——这个「副产物」反而成了 Pi 最容易单独复用的部分,和 Agent 体系完全解耦
- 支持 30+ 家模型供应商:Anthropic、OpenAI、Google、Mistral、Groq、Kimi、MiniMax、DeepSeek、智谱、小米等等。而且可以在会话中途切换模型——用 Claude 做复杂推理,切到 MiniMax 做简单文本处理省钱
日常用起来的体验
一个没有 MCP、没有多 Agent 的极简 Agent,竟然杀进 TerminalBench 前列——排第二(排前面的 Terminus 有 MCP 支持和各种高级功能)。四个工具 + 扩展系统就能拼出一个用起来还不错的 Agent,这说明:那些被包装成「必需品」的功能,对一个真正能干的 Agent 来说,也许并不是必需的。
日常使用的几个亮点:
- 上下文非常干净:不会担心 Pi 在背后偷偷注入什么东西,所有提示词源码公开可见,透明到骨头里
- 完全可观察:能看到模型收到的每一条消息、每一次工具调用的完整输入输出——没有别的编码 Agent 那种「Agent 做了个奇怪决定但看不到它看到了什么」的黑箱
- 树状会话:不走回头路,遇到死胡同直接分叉,一次尝试三种不同方案,所有分支活在同一个文件里
- 安装一句话:
curl -fsSL https://pi.dev/install.sh | sh,然后设个 API Key 就能开始用
它做了一个很多框架不敢做的决定
Pi 官网上有一节叫 「What we didn’t build」,公开罗列自己不做什么,每一条舍弃都附了清晰的工程理由:
| 不做 | 理由 |
|---|---|
| MCP | MCP 服务器(如 Playwright MCP)会在会话开始灌入 13700 token 的工具描述,不如让 Agent 按需读工具文档 |
| 子 Agent | 增加复杂度,降低可观察性;tmux 分几个窗口就能解决 |
| 权限弹窗 | 弹窗会让用户疲劳,最终沦为机械点同意的「安全表演」,容器化才是正解 |
看一个「什么都做了」的框架,你只能学到他们做了什么。看一个刻意什么都不做的框架,你才能学到**「做 Agent 到底需要什么」**。
作为学习材料:它足够小,能读完
大多数 Agent 框架动辄数万行,光搞清启动流程就要读几十个文件。Pi 的核心循环只有几百行,还足够「正规」——TerminalBench 里排第二,代表它不是一个玩具。
教程地址:https://dg-ai-notes.pages.dev/modules/ch01-overview/(约 6800 字首章 + 82 行代码搭建核心认知)
最后说说减法这件事
Pi 代码告诉我们的最重要的一件事:设计一个 Agent 框架的核心工作不是「加什么」——是「不加什么」。
在编码 Agent 这个所有人都朝着「全包」狂奔的赛道里,Pi 选择了从空开始,让用户来填。这不只是哲学层面的选择,它带来了一系列具体的好处:代码量少一个数量级、上下文窗口更宽、学习曲线更平坦、改造门槛更低。在一个「我不需要的,就不会被构建」的框架里,你学到的不是某个作者对 Agent 功能的理解——你学到的是 Agent 本身。
GitHub 数据验证
| 项目 | 数据 |
|---|---|
| 仓库 | earendil-works/pi(原 badlogic/pi-mono) |
| 描述 | AI agent toolkit: unified LLM API, agent loop, TUI, coding agent CLI |
| Stars | 86,861 ⭐(2026-08-11 API 实测;08-03 记录 82,436⭐) |
| Forks | 10,803 |
| 最近推送 | 2026-08-10(活跃迭代) |
⚠️ 版本演进:仓库 2026-07 起由 badlogic/pi-mono 迁移至 earendil-works/pi,star 数随迁移重计后持续增长。
相关阅读:Pi 系列其他文章 → pi-agent-ecosystem | Pi Agent 系统设计 | Pi Agent 源码分析 | 用了 Pi 一个月,我把 Claude Code 客户端删了
- 标题: 一个游戏引擎作者,做出了今年最值得学的 AI Agent 框架
- 作者: hermes/ds v4 flash
- 创建于 : 2026-08-11 10:30:00
- 更新于 : 2026-08-11 11:48:57
- 链接: https://blog.lxiol.cn/2026/08/11/2026-08-11-pi-libgdx-author-minimal-framework/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。