2319 字
12 分钟
Pi Coding Agent:极简而可扩展的终端编程助手
2026-07-23 15:39:21

Pi Coding Agent:把 AI 编程助手带回终端#

现在的 AI 编程工具越来越多:有的深度集成编辑器,有的提供完整的图形界面,还有的直接替你设计好一整套工作流。Pi Coding Agent 选择了另一条路——保持核心足够小,把决定权交还给使用者。

官方将 Pi 定义为一个 minimal terminal coding harness,也就是“极简的终端编程代理框架”。它不是只会聊天的命令行工具,而是能读取文件、修改代码、执行命令,并围绕真实项目持续工作的 AI 编程助手。

更重要的是,Pi 并不试图规定你应该怎样使用 AI。它提供可靠的基础能力,再通过 Prompt Templates、Skills、Extensions 和 Pi Packages 让你搭建自己的工作流。

为什么 Pi 值得关注?#

第一次接触 Pi 时,它给人的感觉可能是“功能不多”。但使用一段时间后会发现,这种克制正是它最有特点的地方。

1. 终端优先,工作路径足够直接#

进入项目目录后运行:

Terminal window
pi

接下来就可以直接描述任务,例如:

分析这个项目的目录结构,告诉我如何运行测试。

默认情况下,Pi 会给模型提供四个工具:

  • read:读取文件
  • write:创建或覆盖文件
  • edit:精确修改文件
  • bash:执行 Shell 命令

也就是说,模型不只是给出建议,还能真正检查仓库、修改代码并运行验证命令。整个过程都发生在当前终端中,不需要在多个窗口之间来回切换。

2. 不绑定单一模型#

Pi 支持多个模型提供商,可以通过 /login 使用已有订阅,也可以通过环境变量配置 API Key。

例如使用 Anthropic API Key:

Terminal window
export ANTHROPIC_API_KEY=sk-ant-...
pi

进入 Pi 后,可以使用 /modelCtrl+L 切换模型,也可以调整模型的 thinking level。对于 Ollama、LM Studio、vLLM 等本地或 OpenAI 兼容服务,还可以通过 ~/.pi/agent/models.json 添加自定义模型。

这种设计很适合希望根据任务切换模型的人:简单检索可以使用更快、更便宜的模型,复杂重构则可以切换到推理能力更强的模型。

3. 会话不是一条直线,而是一棵树#

Pi 会自动保存会话。除了继续上次工作,它还支持从历史节点分支:

  • /resume:恢复以前的会话
  • /tree:在当前会话树中跳转
  • /fork:从过去的用户消息创建新会话
  • /clone:复制当前分支到新会话
  • /compact:压缩较早的上下文

/tree 是我认为非常实用的功能。假设你先让 AI 使用方案 A,后来发现方向不对,就可以回到之前的节点尝试方案 B,而不必丢掉原来的讨论。不同尝试会保留在同一个会话树中,既方便比较,也减少了重复说明背景的成本。

Pi 的核心哲学:少内置,多扩展#

很多 AI 编程工具会直接内置计划模式、子代理、待办列表、权限弹窗和 MCP。Pi 的核心版本却有意不提供这些功能。

这并不代表 Pi 做不到,而是它认为这些能力没有唯一正确的实现方式:

  • 想要计划模式,可以把计划写进文件,也可以用 Extension 实现;
  • 想要子代理,可以启动多个 Pi 实例,或安装相应的第三方扩展;
  • 想要命令确认,可以用 Extension 拦截危险操作;
  • 想接入外部工具,可以写 CLI、Skill,或者自行添加 MCP 支持。

这种思路可以概括为:核心只提供通用机制,具体工作流由用户选择。

它的优点是透明、灵活,不容易被某套固定流程限制;代价则是,想获得高度定制的体验,需要愿意花一点时间配置。

四层定制方式#

Pi 的扩展体系不是只有“写插件”这一条路,而是从简单到复杂提供了几个层次。

第一层:AGENTS.md#

最简单的定制方式,是在项目中添加 AGENTS.md

# Project Instructions
- 修改代码后运行 `pnpm check`
- 不要在本地执行生产环境迁移。
- 保持回答简洁。

Pi 启动时会从全局、父目录和当前目录加载 AGENTS.mdCLAUDE.md。这很适合记录项目规范、常用命令和禁止事项,让每次会话都自动获得一致的上下文。

第二层:Prompt Templates#

如果某段提示词会反复使用,可以把它保存为 Markdown 模板。

例如创建 ~/.pi/agent/prompts/review.md

---
description: 审查当前代码变更
---
请审查当前 Git 变更,重点检查:
- 逻辑错误
- 安全问题
- 异常处理
- 缺失的测试

之后在 Pi 中输入 /review,模板就会展开成完整提示词。它适合固定格式的代码审查、提交总结、测试修复等任务。

第三层:Skills#

Skill 是一个带有说明、脚本和参考资料的能力包。Pi 启动时只加载 Skill 的名称与描述,任务匹配后再读取完整的 SKILL.md,这是一种“渐进式披露”机制,可以避免把所有说明一次性塞进上下文。

Skill 适合封装比较完整的专业流程,例如:

  • 安全审计
  • 浏览器自动化
  • PDF 或表格处理
  • 项目发布流程
  • 团队内部的代码审查规范

项目级 Skill 可以放在 .pi/skills/,全局 Skill 可以放在 ~/.pi/agent/skills/

第四层:Extensions#

如果 Prompt 和 Skill 还不够,就可以使用 TypeScript 编写 Extension。Extension 能够:

  • 注册新的模型工具和斜杠命令;
  • 监听会话、模型和工具调用事件;
  • 拦截或修改危险命令;
  • 自定义终端 UI、状态栏和快捷键;
  • 接入外部服务;
  • 实现计划模式、沙箱、子代理等更复杂的工作流。

例如,一个 Extension 可以在执行 rm -rf 前弹出确认,也可以阻止模型修改 .env 等敏感文件。相比把所有能力写死在核心中,这种事件和工具 API 给了用户更大的组合空间。

最后,还可以把 Extensions、Skills、Prompt Templates 和 Themes 打包成 Pi Package,通过 npm 或 Git 分发给其他人。

安装与第一次使用#

Pi 可以通过 npm 全局安装:

Terminal window
npm install -g --ignore-scripts @earendil-works/pi-coding-agent

然后进入项目目录并启动:

Terminal window
cd /path/to/project
pi

第一次使用可以运行:

/login

选择可用的订阅或 API Key 提供商。完成认证后,可以从一个范围明确的任务开始:

先阅读 README 和 package.json,总结项目结构,不要修改文件。

确认它对项目的理解正确后,再继续:

修复当前测试失败的问题,完成后运行相关测试,并总结修改内容。

我更推荐这种“先理解,再修改,最后验证”的节奏,而不是一开始就让 AI 大范围重构。

不只是一款终端应用#

除了交互式 TUI,Pi 还支持其他运行方式:

Terminal window
# 一次性执行
pi -p "总结这个代码库"
# 输出 JSON 事件流
pi --mode json
# 通过 JSONL 协议进行进程集成
pi --mode rpc

对于 Node.js / TypeScript 项目,还可以直接使用 SDK 创建 AgentSession,把 Pi 嵌入自定义应用、自动化流水线或自己的界面中。

因此,Pi 更像是一个可以直接使用的编程助手,同时也是一个构建其他 Agent 工具的基础设施。

使用时要注意什么?#

Pi 的模型可以执行 Shell 命令并修改当前目录中的文件,因此使用时仍然需要基本的安全意识:

  1. 在 Git 仓库中工作,修改前确认工作区状态,方便比较和回滚;
  2. 先给范围明确的任务,避免让模型在目标不清楚时大改代码;
  3. 认真审查第三方 Pi Package,Extension 拥有当前用户权限,Skill 也可能引导模型执行脚本;
  4. 谨慎信任项目级配置,Pi 会在加载 .pi 资源前进行项目信任检查;
  5. 重要操作仍由人确认,尤其是删除、部署、迁移和密钥相关操作。

Pi 核心不提供统一的权限弹窗,所以更适合在 Git、容器、虚拟机或其他可回滚环境中使用。如果团队有固定的安全要求,也可以通过 Extension 实现自己的确认与拦截规则。

总结#

Pi Coding Agent 最吸引人的地方,不是“开箱即用的功能最多”,而是它把最重要的基础能力做成了一个清晰、可观察、可扩展的终端框架。

如果你希望 AI 编程助手直接替你决定工作方式,Pi 可能需要一些配置;但如果你喜欢终端、在意模型选择,希望掌控上下文、工具和自动化流程,那么 Pi 很值得尝试。

它的设计可以用一句话概括:

不强迫你适应工具,而是让工具适应你的工作流。

相关链接#

Pi Coding Agent:极简而可扩展的终端编程助手
https://fuwari.wisansiiz.top/posts/pi-coding-agent/
作者
Wisansiiz
发布于
2026-07-23
许可协议
CC BY-NC-SA 4.0