惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

U
Unit 42
S
Securelist
小众软件
小众软件
WordPress大学
WordPress大学
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
B
Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
The GitHub Blog
The GitHub Blog
Apple Machine Learning Research
Apple Machine Learning Research
博客园 - 司徒正美
博客园 - Franky
Hugging Face - Blog
Hugging Face - Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
酷 壳 – CoolShell
酷 壳 – CoolShell
O
OpenAI News
Cloudbric
Cloudbric
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
TaoSecurity Blog
TaoSecurity Blog
MongoDB | Blog
MongoDB | Blog
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
V
V2EX
PCI Perspectives
PCI Perspectives
T
Troy Hunt's Blog
Schneier on Security
Schneier on Security
P
Palo Alto Networks Blog
M
MIT News - Artificial intelligence
V2EX - 技术
V2EX - 技术
阮一峰的网络日志
阮一峰的网络日志
Hacker News - Newest:
Hacker News - Newest: "LLM"
G
Google Developers Blog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
The Last Watchdog
The Last Watchdog
The Register - Security
The Register - Security
腾讯CDC
N
News and Events Feed by Topic
C
Check Point Blog
爱范儿
爱范儿
T
Tailwind CSS Blog
Webroot Blog
Webroot Blog
P
Proofpoint News Feed
S
Schneier on Security
MyScale Blog
MyScale Blog
N
News | PayPal Newsroom
Recorded Future
Recorded Future
T
Tenable Blog
I
InfoQ
www.infosecurity-magazine.com
www.infosecurity-magazine.com
Microsoft Security Blog
Microsoft Security Blog
Simon Willison's Weblog
Simon Willison's Weblog
Engineering at Meta
Engineering at Meta

Dejavu's Blog

甲骨文 ARM 实例部署 Gemma 4 模型 Headscale + Tailscale 组建虚拟专用网 在 Linux 上使用 Yubikey OpenPGP 应用 BuyVM VPS 块存储挂载教程 Alpine Linux 服务器配置指南 Alpine Linux 安装 Cloudflared Docker 多容器共享中心数据库 安装 Komari 服务器监控工具 Scaleway VPS 安装 Debian Linux Debian 13 下部署 AsmBB 论坛 使用 Kopia 自动化备份服务器数据 给 Docker 启用 IPv6 支持 Netcup 服务器安装自定义 ISO 镜像 烽火 HG5582A 光猫开启桥接模式 Docker 自托管 Shlink 短链服务 部署 Obsidian LiveSync 实时同步服务指南 我的 2025 年不完全回顾 Linux 下 Intel 核显驱动配置与硬件加速 Fedora Linux 安装配置记录 2025 年优雅地自托管 RSS 服务 Woodpecker CI 和 Gitea 实现 Hugo 自动部署 Gitea/Forgejo 集成 Woodpecker CI/CD 在 Blinko 中使用 Ollama 作为 AI 供应商 Docker 部署 Gitea/Forgejo Plausible CE 启用城市级地理位置识别 Blinko 开源 AI 知识库 Docker 部署指南 Netcup 免税账号注册及购买服务器全记录 Docker 自托管 Cloudreve Pro 私有网盘服务 GiffGaff SIM 卡使用体验和注意事项 简体中文互联网在变得糟糕吗? 如何低成本申请 S/MIME 证书用于个人邮件服务 迁移到 NameCrane Mail 域名邮箱套件服务 香烟与咖啡 在 Windows 中使用 Yubikey 的 OpenPGP 应用 Windows 11 IoT LTSC 养老指南 巧用浏览器生成 HAR 文件批量下载所需网页资源 聊聊静态网站的评论系统 在 Hugo 站点中优雅地展示实况照片 使用 snac 部署一个简洁优雅的 ActivityPub 实例 当 25 岁来临的时候 断网的这两年 从 Bitwarden/Vaultwarden 到 KeePassXC 也许是 Android 上最好的本地播放器 - 椒盐音乐 2023 半年小结 写一个好玩的 Hugo 货币汇率转换短代码 写一个 Hugo 短代码将不同类别的总字数统计转换为书名显示 海信 Touch Lite 墨水屏音乐阅读器的简单体验 从 Debian 11(bullseye) 无感升级到 Debian 12(bookworm) 使用 GitHub Actions 自动提交 URL 到 IndexNow 批量重写 Git 历史提交记录 使用 cgit 托管小小的也很可爱的 Git 服务器 在 Debian 上使用 stagit 和 Nginx 的简单 Git 服务器 托管简单 Git 服务器的一些尝试 使用 stagit 自托管纯静态 Git 存储库 使用 Docker 快速部署单人 Fediverse 实例 我是如何建立自己的个人博客的? 简单、隐私友好的谷歌分析替代品,Plausible 自托管部署指南 服务器使用 Cloudflare CDN 的最佳实践 甲骨文服务器分配并启用 IPv6 地址 Git 版本控制学习笔记(二) Cloudflare WAF 防护策略简易指南 Mastodon 服务器批量导入自定义表情 低成本自托管 Mastodon 实例简明指南 自托管服务指南──有了服务器可以做什么? 使用 Miniflux + RSSHub 打造个人 RSS 阅读器 构建支持多种 CPU 架构的 Docker 镜像 一个可自托管的静态短链接应用 别了,二〇二二! Duplicacy CLI 进阶使用指南 Duplicacy CLI 备份工具的基本使用 初探 Cloudflare 零信任 - 通过 Docker 部署 Bitwarden 密码管理器 Yubikey 转运日志及上手指南 初探 Cloudflare 零信任 — 通过 Cloudflare Tunnel 搭建 SSH 聊天室 初探 Cloudflare 零信任 - 通过 Cloudflare Tunnel 访问服务 某科学的 PGP 算号指南 2022 年的 MacBook Air M1 使用体验及应用推荐 使用 Vercel 和 Supabase 自托管 Cusdis 评论系统 为什么你的搜索引擎不好用? 个人在 Windows 上常用软件清单 macOS 基础开发环境设置指南 在 macOS 上使用 Canokey 的 OpenPGP 应用 提取 Windows UWP 应用商店的安装包以供离线安装 Git 版本控制学习笔记(一) 使用 Notion 管理 GitHub Star 项目 使用 Vercel 免费部署 Giscus 评论系统 将博客评论从 Utterances 无缝迁移到 Giscus Canokey 签名和认证应用指南 Canokey 的基本使用指南 Canokey Pigeon 揽件日志及简单开箱 关于 Google Play 保护机制和 DRM 安全等级的那些事 记录一次捡垃圾装机 GitHub 使用 GPG 密钥提交签名认证 使用 Scoop 管理 Windows 下的软件和开发环境 Windows Terminal+PowerShell 7 打造 Windows 下最好用的终端 一个好用的 Telegram 文件批量上传/下载工具 Clash for Windows 优雅地使用 TUN 模式接管系统流量 全平台搭建 Hexo 静态博客指南 尝试将 Manjaro 作为主力操作系统使用 Hexo 进行 SEO 优化的基本指南 使用本地代理给 Git 和 NPM 加速
「译」设置并使用 Pi 编码代理
Dejavu Moe · 2026-06-15 · via Dejavu's Blog

本文已获得原作者的电子邮件书面许可翻译并发布,版权所有归属原作者。

原文: Setting Up and Using the Pi Coding Agent
作者: DeepakNess
原文链接: https://deepakness.com/blog/pi-agent-setup/

我用 AI 编码工具已经有一段时间了。写本文时,我订阅了 Cursor 和 OpenAI Codex。它们各有所长,我在大部分主要项目中都使用它们工作。

但在两周前,我偶然遇见了 Pi ——又一个开源的终端编码代理。它的核心很小,允许你通过扩展和包添加功能,而不是一开始就把所有东西都塞进去。我很喜欢这个想法,所以我决定配置它,看看它适合什么地方。

我还在摸索最佳平衡点,不过 Pi 已经在我的业余项目和实验中找到了位置。在本文中,我将分享我是如何安装、配置它,以及我目前的真实体验。

my-setup.webp

Pi 是由 Mario Zechner 创建的开源终端编码代理。运行在终端里,它默认给 AI 大模型提供四个工具——readwriteeditbash——以便处理你的代码库。

它没有内置的计划模式、子代理、MCP,也没有权限弹窗。这些功能需要通过扩展 (extensions)、技能 (skills) 和包 (packages) 来添加。保持核心精简,允许你构建完全符合自身需求的环境。

Pi 支持很多 AI 提供商——Anthropic、OpenAI、DeepSeek、Google Gemini、Groq、xAI、OpenRouter、Kimi 等等,你可以使用 API 密钥或现有订阅登录。

我是怎样把 Pi 和其他工具搭配使用的

目前,我会针对不同类型的工作切换不同的工具:

  • OpenAI Codex 用于主要项目里的复杂任务
  • Cursor 用于这些项目中更简单的日常编码工作
  • Pi 用于业余项目、实验和一次性任务,我将其与 DeepSeek、Kimi、Cursor (通过 pi-cursor-sdk) 或者与任何适合任务的模型搭配使用

Pi 很适合业余项目,因为它非常快速、轻量,因此我可以放心使用更便宜的模型,而不必消耗昂贵的订阅额度。

举个例子:我最近用 Pi 搭配 DeepSeek v4 Flash,从一个网站抓取了 28.5 万个 URL。整个任务跑了大约 1.5 小时,使用 DeepSeek 官方 API 只花了 1 美元。我还用 pi-codex-goal 扩展来跟踪这个长时间运行的任务,过程非常顺利。你可以 在 X 上了解更多细节

scraping-using-pi.webp

安装 Pi

安装 Pi 只需要一条命令:

curl -fsSL https://pi.dev/install.sh | sh

安装完成后,在终端输入 pi 即可启动。不过在此之前,你至少需要配置一个 AI 提供商和 API Key。

配置 DeepSeek 为提供商

Pi 内置的 /login 命令,配置任意提供商都很方便。我是这样做的:

  1. 在终端里输入 pi 运行它
  2. 输入 /login,然后选择「使用 API key」
  3. 在提供商列表中选择 DeepSeek
  4. 根据提示输入我的 DeepSeek API Key

就这样,Pi 会保存密钥,你就可以开始用了。登录后,再用 /model 选择模型——我选的是 deepseek-v4-pro,并把思考强度设为 xhigh

model-selector.webp

我默认使用 xhigh 思考模式,因为我希望模型在动手修改前先进行充分思考。对于像 URL 抓取这类更轻的任务,我会切换到更快、更便宜的 deepseek-v4-flash 模型。

使用 Ctrl+L 打开模型选择器,Ctrl+P 在可用的模型之间循环切换,Shift+Tab 用于调整思考等级。

我还会根据任务使用 Kimi K2.7 Code 和其他模型,更多详情请参见下面的型号列表。

我的模型阵容

我启用了多个模型,并根据不同类型的任务来切换:

模型我用它做什么
DeepSeek v4 Pro大多数业余项目的默认选择——质量和成本间良好的均衡
DeepSeek v4 Flash轻量级、重复性任务,例如数据抓取或批量文件操作——快速且成本低廉。
Kimi K2.6 / K2.7 Code需要第二意见,或者碰到速率限制时的备选方案
Cursor (通过 pi-cursor-sdk)能在 Pi 里直接使用现有的 Cursor 订阅,无需额外的 API Key
OpenAI Codex (GPT-5.5)偶尔当一项任务受益于更大型的推理模型时使用

切换是实时的——Ctrl+L 打开模型选择器,Ctrl+P 在可用的模型之间循环切换。

界面和自定义页脚

打开 Pi 后,界面很干净:编辑器在底部,对话在中间,页脚会显示当前工作目录、Git 分支、当前模型、思考等级以及上下文窗口的使用情况。

我最开始自定义的一项内容是页脚。默认页脚显示的信息比我需要的更多,所以我让 Pi 自己帮我制作里一个极简页脚。我描述里我的需求——当前路径、带脏标记的 Git 分支、模型名、思考等级、pi-codex-goal 的当前目标,以及一个紧凑的上下文栏——它就直接帮我写好了 TypeScript 扩展。

custom-extension.webp

把扩展放在 ~/.pi/agent/extensions/minimal-footer.ts,Pi 每次启动时都会自动加载它。我把代码放到 GitHub Gist 上了——只要把它放进扩展目录,然后重启 Pi 就行。虽然只是个小改动,但体验一下子变得个性化了。在这个过程中,我对 Pi 扩展的工作机制也有了一些了解。

我安装的包

Pi 的包是把扩展、技能、提示词和主题打包在一起的 npm 包或者 git 包。你可以用 pi install 命令来安装。下面是我在使用的:

1. pi-web-access

这个包让 Pi 能够搜索网页、抓取页面内容、提取 YouTube 视频字幕,以及浏览 GitHub 仓库。你可以在 pi.dev/packages/pi-web-access 找到它。

pi install npm:pi-web-access

它开箱即用地支持 Exa 搜索,不需要 API Key;也可以按需接入 Perplexity、Exa 或 Gemini 的 API Key,以获得更强的控制。通过创建 ~/.pi/web-search.json 文件,我把默认搜索提供商设成了 Exa:

{
  "provider": "exa",
  "allowBrowserCookies": false,
  "summaryModel": "deepseek/deepseek-v4-flash",
  "workflow": "none",
  "curatorTimeoutSeconds": 20
}

有了这个包,Pi 就能直接在终端里完成网页搜索、文档阅读、YouTube 内容理解,以及 GitHub 仓库的克隆和浏览。

2. pi-codex-goal

这个包给 Pi 增加了目标跟踪能力,由 Mitch Fultz 开发。它给模型新增了三个工具——get_goalcreate_goalupdate_goal——可以用来创建长时间运行的任务并跟踪进度。

pi install npm:pi-codex-goal

凡是跨越多个提示词的大任务,我都会用它。这样我不用每次都重复上下文,只需要先创建一个目标,Pi 就会帮我记住接下来要做什么。它在 28.5 万个 URL 的抓取任务里特别有用——即使会话拉得很长,目标也能让任务一直保持在轨道上执行。

3. pi-vision-proxy

DeepSeek 不能看图——它没有视觉能力。pi-vision-proxy 这个包通过把图片转发给另一个具备视觉能力的模型,解决了这个问题。

pi install npm:pi-vision-proxy

我把 Kimi K2.6 设置为视觉模型。现在,每次我把图片粘贴进 Pi,它都会先把图片和一些上下文发给 Kimi,然后 DeepSeek 再根据 Kimi 看见的内容继续完成任务。对于我偶尔丢进去的截图或设计参考,这个流程很好用。

在底层,它会尽可能把多张图片批量处理,并用感知哈希缓存重复截图,这样同一张图就不会被重复分析。它还支持几种 grounding (落地) 格式1,方便在需要时精确定位坐标。你可以 在 X 上阅读 更多关于这套配置的内容,我也在那条帖子里附了一个简短的视频。

4. pi-agent-browser-native

这个包给 Pi 在终端里提供了一个真正的浏览器。它可以打开页面、截屏、生成快照、点击链接、填写表单、执行 QA 检查、提取页面内容——全都不用离开终端。

pi install npm:pi-agent-browser-native

我会把它和 pi-web-access 一起用。网页搜索负责找信息,浏览器负责和真实页面交互、阅读需要 JavaScript 的文档、以及进行视觉检查。它还增加了 agent_browser_web_search 工具,这是一种比打开完整浏览器页面更快的网页搜索方式。

5. pi-cursor-sdk

如果你已经付费订阅了 Cursor,这个包可以让你在 Pi 里直接用它,这样无需额外付费。

pi install npm:pi-cursor-sdk

我订阅了 Cursor,所以这个包很自然地就用上了。安装后,cursor/auto 会出现在模型选择里,我可以像使用其他提供商一样使用它。这个包也同样是由 Mitch Fultz 开发的,他也是 pi-codex-goal 的作者。在 Cursor 负责订阅模型、DeepSeek 负责便宜而重的活、Kimi 作为备选的组合下,我的覆盖面已经很好了,而且没有增加更多的 API 费用。我在 原始笔记 里写过更多通过这个 SDK 使用 Composer 2.5 模型的内容。

项目约束 (使用 AGENTS.mdAPPEND_SYSTEM.md)

Pi 给模型下指令有两种方式:AGENTS.md 用于项目特定的上下文约束,APPEND_SYSTEM.md 用于全局行为规则。

AGENTS.md(项目上下文约束)

Pi 启动时会加载 AGENTS.md 文件,并把它们注入系统提示词里。它会按三个位置查找:全局位置 ~/.pi/agent/AGENTS.md,然后向上遍历父目录,最后是当前目录;这些内容会全部拼接起来。

我把全局的 AGENTS.md 保持得很精简,只描述我通常使用的技术栈:

# 全局 Pi 指令

- 项目通常使用 Laravel(PHP/Inertia/React)、Next.js(TypeScript/Tailwind)或 Astro。
  请检查项目根目录下的 AGENTS.md 是否有针对技术栈的规则;
  如果没有框架,就先问我。

「如果没有框架,就先问我」这一点很重要。当我在纯 HTML/CSS/JS 文件夹里,或者其他技术栈里工作时,代理不会强行把某个框架套到我头上——它只会先问清楚。

我大多数项目都有自己的 AGENTS.md,里面写着框架相关规则,不过我很少手写这些文件。它们通常由框架工具生成,比如 Laravel Boost,会带上这个项目准确的包版本和约定。

APPEND_SYSTEM.md(全局行为规则)

AGENTS.md 负责描述项目上下文,但有些规则与技术栈无关,而应该在所有项目里生效。这就是 APPEND_SYSTEM.md 的用途。它位于 ~/.pi/agent/APPEND_SYSTEM.md,并且会直接追加到系统提示词里——也就是说,这里的规则优先级比 AGENTS.md 更高。

这是我写进去的内容:

- 如果默认提供商没有视觉能力,就用 pi-vision-proxy 处理图片。
- 当代码库里已经有答案时,优先阅读相关本地文件;如果没有,再通过 pi-web-access 在线检索。在基于在线研究结果做出重大修改前,先和我确认。
- 在执行有风险的文件编辑或破坏性命令之前,先解释清楚。
- 写作要简洁。避免 AI 味太重的语言——不要堆砌花哨形容词、无必要的副词,或过于正式的措辞。
- 使用短破折号(–),不要用长破折号(—)。

关于这些规则,有几点需要说明:

  • 视觉代理规则现在不绑定具体提供商。我可能会把 Kimi、DeepSeek 或其他模型设为默认模型,所以这里不再硬编码某个提供商名称,而是检查当前模型是否具备视觉能力。
  • 第二条规则比我之前写得更明确。它不只是说「别去搜索你已经知道的东西」,而是要求代理先读本地文件,只在必要时上网检索,并且在根据线上研究做出重大改动之前先进行确认。
  • 短破折号规则只是一个很朴素的机械偏好,它能让我的写作风格在所有会话里保持一致。

我常用的快捷键和命令

Pi 有很多快捷键。下面是我最常用的:

快捷键作用
Ctrl+L打开模型选择器
Ctrl+P在作用域内的模型之间循环切换
Shift+Tab调整思考等级
Ctrl+C (按两次)退出 Pi
Escape取消或中止当前操作
Enter作为引导消息发送(会中断当前工作)
Alt+Enter作为后续消息发送(会在工作完成后送达)

EnterAlt+Enter 的区别需要一点时间适应。如果我希望 Pi 在工作中途改变方向,我会按 Enter。如果我只是想补一条备注,让它在完成后再看,我就用 Alt+Enter

下面这些是我常用的命令,通常是在编辑器里输入 / 调出来:

  • /model – 不用记快捷键,直接切换模型
  • /settings – 调整思考等级、主题和其他设置
  • /resume – 从上一个会话继续
  • /new – 开始一个新会话
  • /tree – 查看完整会话历史,并跳转到任意节点
  • /compact – 压缩旧消息,释放上下文
  • /session – 显示当前会话信息,比如 token 和成本

/tree 这个命令尤其有用。你可以把整段对话历史看成一棵树,跳到任意分支,然后从那里继续。想尝试不同方向、又不想丢掉之前思路的时候,这个功能特别好用。我第一次接触它,是因为看到了 Dillon Mulroy 分享的 那段 Pi 会话 。后来我把从那次会话里学到的内容都记到了 原始笔记 里。

我在使用 Pi 过程中学到的一些东西

长会话会把上下文窗口塞满。Pi 有自动压缩功能,在空间不够时会自动压缩旧消息的上下文并进行总结。你也可以手动执行 /compact。另外我很喜欢 pi --continue 这个命令,它会直接打开当前仓库或文件夹里的上一段聊天记录。

我还很喜欢它的 steering (转向) 机制。当 Pi 正在工作时(比如在执行 bash 命令、编辑文件等),你可以直接输入新消息并按 Enter。这样系统会把这条引导消息排队,等当前工具执行完再送进去。我会在发现 Pi 中途跑偏、想快速纠正方向时用这个方法。有时候,我也会用 Option+Enter,它会在前一段输出完全生成完之后再发送消息。

你也可以在 Pi 里使用 OpenAI Codex 订阅、通过 pi-cursor-sdk 使用 Cursor 订阅,或者通过 API 接入 OpenRouter、xAI、Claude 等数百个模型。

我喜欢 Pi 的地方

用了几周之后,下面这些点最突出:

  1. 简洁快速:终端界面很明了,没有 Electron,没有 UI 界面卡顿。
  2. 可自定义:我能做出自己想要的页脚,选择需要的包,其余部分都保持极简。
  3. 兼容任意 AI 提供商:我经常用 DeepSeek 和 Kimi,切换它们只需要一个快捷键。使用 Pi 的过程中我也学到了很多——你会更接近事情实际是怎么工作的,这一点和那些把一切都藏起来的更精致工具不一样。
  4. 会话树很出色:可以把对话分叉,并回到任何一个节点,这种体验是我在其他工具里最怀念的。
  5. 开源(MIT 协议):我喜欢不会由某家公司来决定我能拿到什么功能、或者我该付多少钱。
  6. 压缩上下文很好用:我不需要时刻盯着上下文窗口限制。Pi 在后台把这件事处理掉了,而且做得比别人更快、更好。

最后的想法

我现在还是会用 Cursor 和 Codex 来处理主要项目的工作,而且我觉得短期内这不会改变。它们是很成熟的工具,确实把自己的事情做得很好。

但 Pi 已经在我的业余项目和实验里占据了一个固定位置。它速度很快,成本很低,尤其是配合 DeepSeek 和 Kimi 使用之后;到目前为止,Pi 加上几款精挑细选的包,整体体验非常稳定。

这是我当前的配置:

  • DeepSeek v4 Pro,使用 xhigh 思考模式(默认)
  • DeepSeek v4 Flash,用于更轻量的任务
  • Kimi K2.6 / K2.7 Code,作为替代模型
  • pi-web-access,通过 Exa 做网页搜索和内容提取
  • pi-codex-goal,用于跟踪更长时间的任务
  • pi-vision-proxy,通过 Kimi K2.6 处理图片
  • pi-agent-browser-native,用于在终端里执行浏览器任务
  • pi-cursor-sdk,让我在 Pi 里使用 Cursor 订阅
  • APPEND_SYSTEM.md,记录写作风格和行为规则
  • 一个自定义的极简页脚扩展

就这些,我试过更多包,但最后只保留了真正会用到的那些。

如果你平时就习惯在终端里工作,也喜欢「一个极简、可扩展的代理」这个思路,不妨 试试 Pi 。从基础功能开始,需要的时候再逐步添加包。

我已经用了 Pi 几个星期了,目前这套系统很稳定。我卸掉了几个没有带来足够价值的扩展。系统越简单,通常越好。

等我发现 Pi 的新内容,我还会继续更新这篇文章。