只有 4 个工具的 Pi,是怎么帮我写出 Vizruna 的
Pi 是一个极简的编程 Agent:默认只给模型 read、write、edit、bash 四个工具,其他能力全靠按需安装。我用它写出了 Vizruna。这篇讲为什么“少”反而好用:更轻、更省 Token,而且每一样能力都由你自己决定。
市面上的编程 Agent 越做越“全”:内置几十个工具、各种集成、一键连接一切。
我现在每天写代码用的却是一个反方向的工具:Pi。它默认只给模型四个工具:
| 工具 | 做什么 |
|---|---|
read | 读文件 |
write | 写文件 |
edit | 改文件 |
bash | 执行命令 |
就这四个。没有内置 MCP,没有一大堆预装插件。我的本地 Agent 工作台 Vizruna,就是用它一行一行写出来的。
四个工具,其实够用了
第一次看到“只有四个工具”,我也怀疑过:这能干什么?
后来想明白了:有了 bash,模型就能调用电脑上的一切命令行工具。 跑测试、查 Git 历史、装依赖、搜代码、打包发布,一个 bash 全包了。再加上读、写、改文件,写代码时绝大多数的动作都覆盖了。
其他 Agent 里那些专门的“搜索工具”“Git 工具”“测试工具”,在 Pi 里只是一行命令。模型本来就会用命令行,何必再给它包一层?
轻,是真的轻
工具少,带来的第一个好处是轻。
每一次和模型对话,Agent 都要把“你有哪些工具、每个工具怎么用”的说明一起发过去。工具越多,这段说明越长,而且每一轮都要发。
Pi 的工具说明只有四段,系统提示词也很短。省下来的上下文,全部留给真正重要的东西:你的代码、你的需求、它刚刚读到的文件。
省 Token,就是省钱,也是省注意力
对长时间写代码的人来说,Token 不是抽象的数字:
- 省钱:每一轮少发一大段工具说明,长时间写下来,差别很明显;
- 省注意力:上下文里无关的内容越少,模型越不容易被干扰,越能专注在你的代码上;
- 跑得更久:同样大小的上下文窗口,能装下更多真正有用的对话,不用那么早就压缩或者重开。
Pi 的界面底部会实时显示这次会话用了多少输入、输出和缓存 Token,花了多少钱。看得见,才会有意识地省。
按需定制,是程序员的终极浪漫
Pi 最打动我的,不是它“少”,而是它允许你一点一点把它变成你自己的样子。
它把扩展的方式分得很清楚:
- Skills:一份说明书,教 Agent 用某个命令行工具或者按某个流程做事;
- Extensions:用 TypeScript 写的扩展,可以加新工具、新命令、快捷键,甚至替换掉内置工具;
- Prompt Templates:常用的提示词模板;
- Pi Packages:把上面这些打包起来,用 npm 或 git 分享和安装。
需要什么,就装什么;不需要的,一样都不带。
别人给你的工具,总有一些你用不上、又关不掉的东西。而在 Pi 里,每一个能力都是你自己选的,甚至是你自己写的。用着顺手的工具,是自己一点点调出来的。按需定制,是程序员的终极浪漫。
连“不内置 MCP”,都是一种选择
Pi 不内置 MCP。作者的想法是:与其给 Agent 接一个又一个 MCP 服务,不如写一个带说明文档的命令行工具,再配一份 Skill 告诉 Agent 怎么用。真需要 MCP,也可以自己写一个扩展把它加上。
我一开始觉得这有点“固执”,用久了反而认同:命令行工具可以单独运行、单独测试、单独维护,出了问题一眼就能定位。Agent 只是它的一个使用者,而不是唯一的使用者。
用它写出来的 Vizruna
Vizruna 是一个把 Pi 变成可视化工作台的项目,目标是让不熟悉终端的人,也能看清 Agent 在做什么、管得住它能做什么。
它不是从零写的:我以开源的 pi-app(MIT 许可)固定在某一个版本作为起点,在它的基础上做了中文界面、多 Agent 并行、会话保护、Agent 版本管理、运行证据这些东西。上游是谁、从哪个版本开始、许可证怎么处理,在项目的公开文档里都写得清清楚楚。
从 2026 年 7 月底开始,到 9 月初,Vizruna 发布了 10 个公开 Alpha 版本。现在项目里有大约 7.6 万行 TypeScript 代码和 100 多个测试文件。写它的,主要就是 Pi 和那四个工具,加上我按需装的几个扩展。
这里面最重要的,不是 Agent 写了多少行代码,而是我怎么告诉它要写什么、怎么确认它写对了。这是下一篇要讲的内容。
适合谁,不适合谁
说实话,Pi 不适合所有人:
- 适合:熟悉命令行、喜欢自己调工具、在意成本和上下文、想让 Agent 融进自己工作流的开发者;
- 不太适合:希望开箱即用、不想碰配置、完全不用终端的人。对这部分人来说,一个带界面的工作台会更友好,这也是我做 Vizruna 的原因之一。
如果你的团队也想用 Agent 写代码,但不知道该用什么工具、怎么定制、怎么控制风险,可以看看我的 Skill / Agent 定制服务。