Pi 是什么
Pi 是什么:一个可塑形的终端 Coding Agent
Pi 的官方定义很克制:a minimal terminal coding harness。翻译成人话就是:Pi 不是一个预设了全部工作流的“超级 IDE”,而是一个在终端里运行的 AI 编程代理底座。它负责把模型、工具、会话、终端 UI、配置和扩展机制连接起来,让你可以把自己的开发方式搭在上面。
Pi 解决什么问题?
传统 AI 编程工具通常会把很多功能内置进去:计划模式、权限弹窗、任务列表、MCP、子代理、后台命令、状态栏等。这样开箱即用,但也会带来一个问题:工具越“完整”,用户越难按自己的习惯改造它。
Pi 选择了相反路线:
小内核:模型调用 + Agent Loop + 基础工具 + 会话 + TUI
│
├─ Skills:按需加载的工作流说明
├─ Prompt Templates:复用提示词
├─ Extensions:TypeScript 扩展点
├─ Themes:终端主题
└─ Pi Packages:把上面这些打包分享所以 Pi 的核心价值是:让 Coding Agent 适配你的工作流,而不是让你适配工具作者预设的工作流。
Pi 默认给模型哪些能力?
默认情况下,Pi 给模型四个基础工具:
| 工具 | 用途 |
|---|---|
read | 读取文件内容 |
write | 创建或覆盖文件 |
edit | 用精确文本替换修改文件 |
bash | 执行 Shell 命令 |
另外还有可启用的只读工具:grep、find、ls。这些工具构成了 Coding Agent 的“手脚”:模型通过它们观察代码库、修改文件、运行测试,再根据结果继续下一步。
Pi 的运行模式
Pi 不只是一套交互式 CLI,它支持四种典型使用方式:
| 模式 | 命令 | 适用场景 |
|---|---|---|
| 交互模式 | pi | 日常结对编程、调试、重构 |
| Print 模式 | pi -p "..." | 一次性总结、生成、检查 |
| JSON 事件流 | pi --mode json | 给外部工具消费结构化事件 |
| RPC 模式 | pi --mode rpc | 被 IDE、桌面端或其它语言程序嵌入 |
这让 Pi 同时可以是“终端里的助手”和“自动化系统里的 Agent 子进程”。
Pi 的核心设计哲学
1. 核心保持小
Pi 主体不内置 MCP、子代理、权限弹窗、计划模式、后台 Bash、Todo 系统等高层工作流。官方文档明确把这些能力留给扩展或第三方包。
这种设计不是功能缺失,而是刻意留白:
- 核心更容易维护;
- 用户不必为不用的功能付复杂度成本;
- 不同团队可以安装不同扩展,形成自己的“Pi 发行版”。
2. 扩展优先
Pi 的 TypeScript Extensions 可以做很多事情:
- 注册自定义工具;
- 拦截或修改工具调用;
- 增加 Slash Commands;
- 替换编辑器、状态栏、Footer;
- 自定义权限策略;
- 自定义 Provider / OAuth;
- 自定义上下文压缩;
- 接入远程执行、沙箱、子代理。
这就是 Pi 与“固定功能型 CLI Agent”的最大区别。
3. 会话是树,不只是列表
Pi 的会话保存为 JSONL,并通过 id / parentId 形成树结构。这意味着你可以在一个会话中分叉探索不同方案:
/tree:在当前会话树里跳转;/fork:从历史用户消息创建新会话;/clone:复制当前活跃分支;/compact:压缩过长上下文。
这对于 Coding Agent 很重要,因为真实开发经常需要“试一条路,发现不对,再回到之前”。
Pi 与其它 Coding Agent 的差异
| 维度 | Pi | 典型一体化工具 |
|---|---|---|
| 核心功能 | 小而稳定 | 内置大量工作流 |
| 扩展方式 | TypeScript Extension / Skills / Packages | 通常较受限 |
| 子代理 | 通过包安装,例如 pi-subagents | 可能内置 |
| 权限系统 | 通过扩展实现 | 通常内置固定弹窗 |
| 计划模式 | 通过扩展实现 | 常内置 |
| 自动化集成 | SDK + RPC + JSON mode | 视工具而定 |
如果你喜欢开箱即用、少折腾,Pi 可能需要更多配置;但如果你希望把 AI 编程工具塑造成自己的系统,Pi 的可塑性非常高。
一个推荐的心智模型
把 Pi 想成三层:
┌──────────────────────────────────────────────┐
│ 个人工作流层:subagents、web、permission 等包 │
├──────────────────────────────────────────────┤
│ 扩展机制层:Extensions / Skills / Prompts │
├──────────────────────────────────────────────┤
│ Agent Harness:模型、工具、会话、TUI、SDK │
└──────────────────────────────────────────────┘学习 Pi 不应该只学命令,而应该理解:
- Agent Loop 如何让模型持续“思考 → 调工具 → 观察 → 再思考”;
- 会话与上下文 如何让长任务可恢复、可分支;
- 扩展系统 如何把安全、协作、搜索、状态展示等能力拼上来;
- 包机制 如何让个人配置迁移到其它机器。
下一篇我们从最实用的角度开始:把当前个人机器上的 Pi 配置迁移成一套可复刻的安装方案。
下一篇:安装与个人配置迁移