记录第一次使用Pi Agent,以及插件怎么选

Pi 是一个极简的 agent harness,原生只有四个工具,其余能力全靠插件拼装。这篇文章记录我把它从零装起来、配好模型、挑插件。刚开始token消耗量极低,等插件配置完毕,token量飙升,一个你好,直接增加1万6上下文。

前言:Pi 的优势是什么

先把结论放前面。Pi 和 Claude Code、Codex 这类工具最大的差别,不在功能多少,而在取舍方向。

核心足够小。 官方对自己的定位是 minimal agent harness,装完之后内置工具只有四个:read 读文件(文本和图片都行)、bash 执行 shell 命令、edit 做精确的多段编辑(一次调用完成多处不连续替换)、write 创建或覆盖文件。sub-agent、plan mode、权限弹窗、内置 todo、后台 bash 这些,官网专门列了一节叫「What we didn't build」,理由是它们都能用扩展实现,不该写死在核心里。

扩展是一等公民。 扩展就是 TypeScript 模块,可以拿到工具、命令、快捷键、事件,甚至整个 TUI。官方在 examples 目录里放了五十多个扩展示例,从权限门到 sandbox 到 SSH 执行都有。你也可以直接让 Pi 自己写一个扩展,写完 /reload 接着用。

上下文可控。 这是我最看重的一点。系统提示足够小,AGENTS.md 和 SYSTEM.md 可以按项目定制,上下文压缩策略也能通过扩展替换。装什么不装什么,直接决定每一轮要烧多少 token,后面有实测数据。官网把这件事叫 context engineering。

模型自由。 官网列了 15 家以上 provider,Anthropic、OpenAI、Google、Azure、Bedrock、Mistral、Groq、Cerebras、xAI、Hugging Face、Kimi、MiniMax、NVIDIA、OpenRouter、Ollama 都在里面,认证支持 API key 和 OAuth,也能用 models.json 加自定义厂商。会话中按 /model 或 Ctrl+L 直接换模型,Ctrl+P 收藏轮换。本文用的是小米 MiMo。

还有两个用起来很舒服的细节。会话按树状存储,/tree 能跳回任意历史节点继续分支,整棵树只存一个文件;/export 导出 HTML,/share 传到 GitHub gist 直接给链接。

安装

官网在 pi.dev/,首页直接给了各包管理器的安装命令。Windows 下我用 PowerShell 装:

powershell 复制代码
powershell -c "irm https://pi.dev/install.ps1 | iex"

配模型

装完启动,第一步是登录。输入 /login。

接着选认证方式。Pi 支持账号登录,也支持直接填 API key,我用的API,这里选第二条。

然后输入厂商名,我填的是 Xiaomi,按回车进入密钥输入。

密钥填完,Pi 会把该厂商下可用的模型列出来。这里能看到 mimo-v2.6-flash、mimo-v2.6-pro 等几档,回车选中,按 Ctrl+S 可以设成默认。

最后发一条消息验证:

到这里基础环境就通了。不过这个时候的 Pi 还只有四个内置工具,真正的能力要装插件才有。

插件安装

Pi 的包生态叫 Pi packages,官网目录页收录的插件里绝大多数类型是 extension。安装命令统一是 pi install npm:<包名>,也可以 pi install git:<仓库> 从源码装。

我按自己的使用场景挑了两组。

通用能力三件套

pi-subagents 把工作委派给专注的子代理。

bash 复制代码
pi install npm:pi-subagents

包自带几个开箱可用的角色:scout 做本地代码侦察,researcher 做带来源的联网调研,evidence-auditor 独立核对调研结论是否被来源支持,worker 负责实现改动,reviewer 做代码审查,oracle 在你动手前给第二意见。装完不用写配置,直接说「用 reviewer 审一下这个 diff」就行,Pi 自己决定调不调、调哪个。前台的子代理直接在会话里流式输出,后台的会挂在一个独立进程里继续跑,之后可以回来查。

pi-hermes-memory 负责跨会话记忆。

bash 复制代码
pi install npm:pi-hermes-memory

它把知识分成三层:MEMORY.md 存环境和项目约定,USER.md 存用户偏好和沟通风格,SKILL.md 存「这件事怎么做」的流程。历史会话用 SQLite FTS5 建索引,可以直接问「我们之前讨论过 auth 的什么」。记忆分 failure、correction、insight、preference、convention、tool-quirk 几类,用户纠正过一次「用 pnpm 不用 npm」这类事会被单独记下来。所有写入都会过一遍密钥扫描,避免把 API key 存进去。

pi-web-access 提供联网能力。

bash 复制代码
pi install npm:pi-web-access

三个工具:web_search 支持 40 多家搜索源,零配置就能用(默认走 Exa MCP),不填任何 key 也行;fetch_content 抓内容,网页转 Markdown、GitHub 仓库直接克隆到本地、PR 和 Issue 渲染成结构化文档、YouTube 视频能出画面描述加转录加章节、PDF 也能转 Markdown;source_check 针对某个结论收集证据并给原文引用,返回 supported、contradicted、unclear 三种状态。它同时还能当本地 MCP server,给 Claude Code、Cursor 这些客户端复用。

编程质量与安全

pi-lens 负责写代码时的实时反馈。

bash 复制代码
pi install npm:pi-lens

挂上 LSP 之后,改动一落盘就补诊断,还会做联动检查:改了这个文件,把依赖它的相关文件也一起扫一遍。语言级的 linter、类型检查、格式化、ast-grep 结构规则都在里面,另外提供 symbol_search 这类给 agent 用的导航工具。它带的 read-guard 会拦住「没读就先改」的编辑,git-guard 会压住「还有未解决诊断就 commit 或 push」。

pi-simplify 审查刚改动的代码。

bash 复制代码
pi install npm:pi-simplify

/simplify 会用 git diff 找出改动范围,只审改动过的行。四条原则:不改功能、遵循项目里的 CLAUDE.md 和 AGENTS.md 约定、去冗余提清晰度、不要过度简化。逐文件改,每改完跑一次测试确认没弄坏,最后给一份汇总。

cc-safety-net 在执行前拦截危险操作。

bash 复制代码
pi install npm:cc-safety-net

它在工具调用真正跑起来之前解析命令语义,git reset --hard、git push --force、指向危险目标的 rm -rf 会被挡下,藏在 bash -c 或 python -c 里的也一样。同时对密钥文件做保护,SSH key、.env、~/.aws,以及各家 coding CLI 自己的凭据,从 shell 和 agent 的文件工具两条路都拦。规则可以用 npx cc-safety-net gui 在图形界面里调,官方还给了 Terraform、AWS、gcloud、Azure 的规则包。需要说明的是它不是沙箱,不隔离进程、不设文件权限、不看网络出口。

@juicesharp/rpiv-todo 给你一份能看见的任务清单。

bash 复制代码
pi install npm:@juicesharp/rpiv-todo

装完 Pi 就有了 todo 工具和 /todos 命令,编辑器上方会出现一个面板,显示哪些做完、哪个在做、哪些排队。任务状态是从对话本身重建的,所以 /reload 和上下文压缩之后依然在。任务依赖会在写入前校验,悬空 id、自依赖、循环都会被拒。

@narumitw/pi-plan-mode 提供只读的 /plan 模式。

bash 复制代码
pi install npm:@narumitw/pi-plan-mode

理念是「改代码之前先把计划定下来」。进入 plan 模式后,修改类工具被禁掉,shell 命令走的是一份失败即关闭的白名单,只放常见检查类命令,MCP 工具和自定义工具默认拒绝。规划过程中它可以用结构化问题澄清歧义,计划最多五万字符。计划定了之后,可以选择在当前会话直接实施、开新会话只带计划过去、保存或者导出成 Markdown。


主题

界面也能换皮肤,最喜欢pi-style这个。

bash 复制代码
pi install npm:@quandev104/pi-style

pi-style 是一套统一视觉样式包,覆盖状态栏、编辑器、启动界面、消息渲染几个区域。状态栏是响应式分段布局,能显示模型、思考状态、路径、Git、上下文用量、费用、时间和扩展状态;编辑器有 compact、boxed、dock 几种样式。它自带 titanium 主题,装完在 TUI 里会自动应用。

bash 复制代码
pi install npm:better-claude-code-ui

better-claude-code-ui 是把 Claude Code 的视觉识别整套搬进 Pi,包括六套 CC 主题(真彩的暗色和亮色、给不支持真彩终端的 ANSI-16 版本、以及色盲友好版本)、欢迎横幅、状态栏、spinner、每轮的耗时费用页脚,还有 CC 风格的工具渲染。装它之后建议在 ~/.pi/agent/settings.json 里加上 "quietStartup": true,把 Pi 自带的启动头关掉,免得两块横幅叠在一起。

装完之后

插件装齐,让 Pi 把能力清单列了一遍,翻成中文大概是这些:

核心工具

  • read 读文件,文本和图片都行
  • bash 执行 shell 命令
  • edit 精确的多段编辑,一次调用完成多处不连续替换
  • write 创建或覆盖文件

导航与分析

  • project_report 快速理解一个项目,找枢纽文件和入口
  • module_report 读之前先看模块轮廓
  • read_symbol 和 read_enclosing 只读某个函数或类的主体
  • symbol_search 按标识符定位文件
  • lens_diagnostics 对改动过的文件跑 LSP 诊断
  • ast_grep_search 和 ast_grep_replace 做语义级搜索与替换,可能要先用 pi_lens_activate_tools 激活

联网

  • web_search 多查询并行搜索
  • source_check 为某个结论收集来源与原文引用
  • fetch_content 抓取网页、视频、仓库内容

记忆与技能

  • memory_add、memory_replace、memory_remove、memory_search 组成跨会话持久记忆
  • session_search 搜索历史对话
  • skill_manage 创建和更新可复用流程

工作管理

  • todo 任务清单,增删改查都有
  • subagent 把活派给子代理,或跑并行流程
  • bg_wait 等后台任务

Pi 专属

  • plan_mode_question 和 plan_mode_complete 只有显式开了 /plan 模式才出现
  • pi_lens_activate_tools 按需启用工具
  • effective_config 解释 LSP 和工具的解析结果

从四个工具涨到几十个,代价马上就来。

这里做一个无聊的测试,仅供参考

每个插件大概要吃掉多少上下文?

工具定义是要进上下文的。装得越多,第一轮还没开始干活,token 就已经花出去了。

测法很简单:同一个目录,每次新建会话,发同样的一句「你好」,看状态栏右下角 X/1.0M 的数字。截图都是卸载插件之后重新截的。

插件全装,首轮上下文 15.8K:

然后一个一个卸,每卸一批就重开一个会话再发一次「你好」。每一步都截了图,数字汇总如下。

阶段 动作 剩余扩展 首轮上下文
1 插件全装 7 个 15.8K
2 卸载 cc-safety-net 6 个 15.6K
3 卸载 pi-subagents 5 个 14.0K
4 卸载 pi-hermes-memory 4 个 9.0K
5 卸载 pi-web-access 3 个 6.9K
6 卸载 pi-lens 和 pi-simplify 只剩 pi-style 2.8K
7 卸载主题 pi-style 无 2.0K

每一步的截图和对应的状态栏数字:

卸载 cc-safety-net 之后,首轮上下文降到 15.6K:

卸载 pi-subagents 之后,首轮上下文 14.0K:

卸载 pi-hermes-memory 之后,首轮上下文 9.0K:

卸载 pi-web-access 之后,首轮上下文 6.9K:

卸载 pi-lens 和 pi-simplify 之后,只剩 pi-style 一个扩展,首轮上下文 2.8K:

卸载主题 pi-style 之后,回到裸机,首轮上下文 2.0K:

把上面的差值翻过来,就是每个插件的上下文成本。

插件 增量上下文
pi-hermes-memory 约 5.0K
pi-lens 加 pi-simplify 约 4.1K
pi-web-access 约 2.1K
pi-subagents 约 1.6K
@quandev104/pi-style 主题 约 0.8K
cc-safety-net 约 0.2K
Pi 大概基线 2.0K

几个结论。

大头是记忆和 lens。 pi-hermes-memory 一个插件占 5K(实际情况有波动),因为它要带一整套记忆工具的 schema 和策略说明;pi-lens 加上 pi-simplify 合计 4.1K,lens 那边工具最多,symbol_search、lens_diagnostics、ast-grep 那一串都算钱。

Pi 的大概基线只有1-2K多。四个内置工具的系统提示压到 2.0K,这是它能做到上下文可控的前提。同一个 harness 装与不装,差将近八倍。

其中 cc-safety-net 只花 0.2K,挡的却是 rm -rf 这种危险操作,性价比最高。反过来,memory 这类插件是不是必须,取决于你要不要跨会话记忆。如果每个会话都是独立任务,卸掉它省下的 5K 很实在。

怎么选:按需装,别一次装满

按我的取舍顺序排一遍。

  • 一定要装:cc-safety-net。成本较低,收益是「不会手滑删库」。
  • 干开发活:pi-lens 加 pi-simplify。4.1K 不便宜,但换来的是落盘即诊断和只审改动行的精简建议。如果只是偶尔改改脚本,可以先不装。
  • 需要查资料:pi-web-access。2.1K 换一整套联网能力,而且零配置。
  • 长线项目:pi-hermes-memory。单价最贵,但跨会话记忆和失败记录对长期维护的项目确实有用,项目一多、会话一长,这 5K 就摊薄了。
  • 复杂重构:pi-plan-mode。改之前先看计划,比改错了再回滚便宜。
  • 多步骤任务:pi-subagents 加 rpiv-todo。前者并行干活,后者让你看得见进度。
  • 主题:纯看心情。

以上数据都是「首轮上下文」,也就是还没开始干活时已经付掉的固定成本。技能、历史记忆、项目里的 AGENTS.md 都会在此基础上继续往上加。

所以先装最小集,用一段时间,发现哪一步卡住了再补对应的插件。Pi 的安装和卸载都是一行命令,没必要一次装满。


验证环境

  • Pi:@earendil-works/pi-coding-agent,Windows 11、PowerShell 安装
  • 模型:小米 MiMo(mimo-v2.6-flash)
  • 文中截图来自本机实测,token 数字取自状态栏的首轮上下文计数
相关推荐
从小白到软工2 小时前
4-1 指针
c语言·开发语言·数据结构·经验分享·ai编程
威哥爱编程2 小时前
HarmonyOS 7 Agent 开发实战 03:Tool Calling 让 AI 查实时订单与库存
agent·harmonyos
挖掘狂人2 小时前
AI 写代码越来越快,我们的代码能力却在悄悄退化
人工智能·程序员·ai编程
前端双越老师2 小时前
程序员 1v1 访谈系列第三期:先不要想在工作中有突破
前端·ai编程·全栈
威哥爱编程2 小时前
HarmonyOS 7 Agent 开发实战 02:Agent 工程脚手架与对话 UI 骨架
agent·harmonyos
大模型真好玩2 小时前
DeepSeek Harness 进阶——认识DeepSeek Harness插件机制,并从0到1实现一个插件
人工智能·agent·deepseek
codigger2 小时前
AI 写代码越来越快,我们的代码能力却在悄悄退化
程序员·编程·ai编程·#人工智能
濮水大叔3 小时前
CabloyJS 的 AI 时刻:从 TypeScript 全栈框架到 AI 规范驱动开发
typescript·ai编程·全栈
乘风gg3 小时前
AI Coding 时代最值钱的东西,软件工程(上)
前端·ai编程·claude