Pi 的完善之路:Package 生态折腾指南
本文记录一条完整的 Pi Package 折腾之路:从 Package 是什么,到子 Agent 与 MCP、上下文压缩、/goal、代码搜索、安全审查、UI 增强、图像生成、操作回退,再到踩过的坑与 Package 总览。
前言
看了很多强调上下文重要性的文章,用 CC 接国模愈发不顺手,总感觉 CC 的上下文屎山是不是越来越大了,于是捡起之前折腾了一半的 Pi。我的想法和作者部分一致——上下文工程是第一要务,准确的控制注入模型的每一个字肯定能获得比黑盒更舒服、更有包裹感(误)。
点进这个帖子的应该或多或少都是听说过 Pi 的,如果不了解请看作者的文章。
总而言之 Pi 是一个极度精简的 Agent——无 MCP、无后台 Bash、无内置 To-do、无 Plan mode、无子 Agent,本体的内置提示词不超过 1000 token,仅内置 4 个工具:read、write、edit、bash。
但是极简的框架意味着极强的可塑性,下文正式开始折腾。
关于 Package 是什么
在 Pi 中,Package 可以是:
- Extension: 注册新命令、工具、事件钩子、UI 组件
- Skill: 带
SKILL.md的技能文档,指导模型使用特定工作流 - Prompt Template: 提示词模板
- Theme: 终端主题 JSON
在 Pi 中,一切都可以由 Package 引入。
子 Agent 与 MCP
pi-subagents、pi-mcp-adapter——没什么好说的,补全其他家都有的功能。不过 MCP 的 Package 我没装,我用到的 MCP 基本都可以做成 Package。
关于上下文压缩
我主要纠结在三个包里:context-mode、DCP、pi-observational-memory。
context-mode 作为 Pi Package 安装量排行榜第一,我自然第一个尝试了,但是效果并不好。用 Mimo 容易出现理解偏差,它把工具输出拦截到沙箱,模型只能看到摘要?要看原文得自己判断是否展开,但模型经常判断错,导致关键信息丢失(猜的流程)。我是觉得没必要省这种上下文,所以最后卸了。
DCP(Dynamic Context Pruning) 就是比较常见的总结形式的工具了,没什么好说的,我现在就在用,具体可以看看项目文档。
pi-observational-memory 可以单独配置模型进行总结,主要用于长会话防偏移,也是总结类的,但是设计比 DCP 复杂一点,还在体验中。
关于 /goal
Codex 的 /goal 很不错,目标完成前不会停止。Pi 的相关 Package 我主要使用 pi-until-done,如果追求 Codex 的感觉可以装 pi-codex-goal。
代码搜索与检索
- pi-ace-tool — 自己写的 ace-tool 插件,用过 MCP 的应该知道有多好用。
- @ff-labs/pi-fff — Rust/SIMD 加速的模糊 find 和 grep,替代原生 find/grep,速度极快,体验不错。
- pi-fast-context — vibe 了一个 fast-context 的插件,用着不错速度挺快的。
搜索与抓取
pi-search — 基于站内的 grok-search-mcp 自己写的,加了 context7 和反检测 fetcher 之类的实用工具,基本搜索相关装这一个就够了。不过我也犯了塞太多的毛病,不想用可以看看 pi-web-access 和 pi-smart-fetch。
安全与审查
- @juicesharp/rpiv-advisor — 请求强模型给第二意见/审查建议,关键决策前多一层校验
- pi-simplify — 审查近期代码改动的清晰度、维护性和一致性
- @narumitw/pi-plan-mode —
/plan只读规划模式,禁止 edit/write/危险 bash,输出 proposed_plan 确认后才恢复写权限
UI 与交互
- pi-nano-context — 紧凑上下文占用条,显示 system/user/assistant/tool/free 各占多少,替代 powerline 的轻量选择
- pi-tool-display — OpenCode 风格工具输出折叠和 diff 渲染,减少 TUI 被大段工具输出刷屏
- pi-markdown-preview — Markdown/LaTeX 预览
- @juicesharp/rpiv-ask-user-question — 结构化提问 UI
思考与辅助
- @feniix/pi-sequential-thinking — 同名 MCP 一个作用
- pi-btw — Claude Code 同款
/btw,并行旁路问题,不污染主对话
图像生成
pi-image-gen — 自己写的 Image2 图像生成/编辑工具,支持文生图、图生图等,优化前端设计场景。我主要用在写前端前的风格、素材等生成。
操作回退
pi-rewind — 依赖 Git 的存档点回退工具,很不错,原生级的回退体验。
踩过的坑
pi-powerline-footer 太重
Powerline 会接管编辑器布局和鼠标滚动,改变了 Pi 原生简洁的 TUI 体验。推荐 pi-nano-context,只做上下文占用显示,干净轻量。
Package 总览
| Package | 链接 | 安装命令 |
|---|---|---|
| pi-subagents | npm | pi install npm:pi-subagents |
| pi-mcp-adapter | npm | pi install npm:pi-mcp-adapter |
| pi-markdown-preview | npm | pi install npm:pi-markdown-preview |
| @juicesharp/rpiv-ask-user-question | npm | pi install npm:@juicesharp/rpiv-ask-user-question |
| @victor-software-house/pi-curated-themes | npm | pi install npm:@victor-software-house/pi-curated-themes |
| pi-ace-tool | GitHub | pi install git:github.com/justhil/pi-ace-tool |
| pi-rewind | npm | pi install npm:pi-rewind |
| pi-image-gen | GitHub | pi install git:github.com/justhil/pi-image-gen |
| pi-search | GitHub | pi install git:github.com/justhil/pi-search |
| pi-btw | npm | pi install npm:pi-btw |
| pi-simplify | npm | pi install npm:pi-simplify |
| pi-dynamic-context-pruning (DCP) | GitHub | pi install git:github.com/complexthings/pi-dynamic-context-pruning |
| @ff-labs/pi-fff | npm | pi install npm:@ff-labs/pi-fff |
| pi-until-done | npm | pi install npm:pi-until-done |
| pi-codex-goal | npm | pi install npm:pi-codex-goal |
| pi-nano-context | npm | pi install npm:pi-nano-context |
| pi-tool-display | npm | pi install npm:pi-tool-display |
| @narumitw/pi-plan-mode | npm | pi install npm:@narumitw/pi-plan-mode |
| pi-observational-memory | npm | pi install npm:pi-observational-memory |
验证与自查
pi list确认已安装包及版本,pi config可管理各包内的扩展、技能、提示词与主题- 按上表安装后,各包的斜杠命令(如
/plan、/btw、/undo)应可正常调用 - 上下文压缩类:长会话中观察 token 占用曲线,确认压缩按预期触发
- 装完新包后先跑一个小任务,确认无工具冲突、TUI 渲染正常
写在最后
Pi 的拓展感觉接口给的很好,但是很多写拓展的都想把自己想到的全塞进去,反而违背 Pi 的创作本意。想找个好用的、独立的、依赖少又完善的拓展真的难。反而用 AI 自己写适合自己工作流的拓展更简单——如果已经在 CC、Codex 有完善的工作流了,可以自己尝试用 AI 写插件迁移。