TL · 工具实测

只有 4 个工具的 Pi,是怎么帮我写出 Vizruna 的

Pi 是一个极简的编程 Agent:默认只给模型 read、write、edit、bash 四个工具,其他能力全靠按需安装。我用它写出了 Vizruna。这篇讲为什么“少”反而好用:更轻、更省 Token,而且每一样能力都由你自己决定。

约 4 分钟

市面上的编程 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 定制服务。