Claude Sonnet 5 · 外部编辑器 · RPC · v0.80.3 —— 全能 AI 编程助手 Pi 在最新版同时扩展了模型选择边界、编辑器集成深度和远程调用能力。
Pi:AI 编程助手的全能工具箱
Pi(earendil-works/pi)是一个 TypeScript 编写的 AI agent 工具包,
66K+ Stars。它不是一个简单的「AI 编码助手」——它更像一个能装进任何场景的
agent 运行时。核心分为四层:
• pi-ai:统一多供应商 LLM 接口,支持 OpenAI、Anthropic、Google 等十余家
• pi-agent-core:带工具调用的 agent 运行时
• pi-tui:差分渲染终端 UI
• pi-coding-agent:交互式编码 CLI
四个包可以独立使用,也可以组合成一个具备会话管理、上下文压缩、分支摘要和 扩展系统的完整环境。它兼容 Node ≥ 22.19,支持 OAuth 订阅 (ChatGPT/Claude Pro/GitHub Copilot)和 API Key 直连两种鉴权模式。
三个场景,一次升级全部覆盖
用 AI 编程工具的人通常有这三类痛点。
模型选择焦虑。 Claude Sonnet 性能好但限量,GPT-5.5 发布后也想试试, 切换工具的成本让人望而却步。
编辑器偏好。 不是所有开发者都喜欢在终端里写长提示——有人习惯 Vim、
有人喜欢 VS Code 里 Ctrl+G 跳出去编辑,而 Pi 之前的 Ctrl+G 只能靠
$VISUAL / $EDITOR 环境变量兜底,不够灵活。
自动化与集成。 RPC 模式提供 JSONL 协议的头less 调用,但此前只能 发起 prompt、查状态,拿不到完整的会话快照和历史记录,限制了构建外围工具 (比如 CI 流程、自动化脚本、IDE 插件)的能力。
v0.80.3 一次性回应了这三个痛点。
一版三新:模型、编辑与远程操作的落地方式
Claude Sonnet 5 即开即用。 Pi 的 provider 系统自带继承机制——Anthropic
和 Bedrock provider 在发布后自动获得了 Sonnet 5 的模型元数据,用户只需在
交互模式中用 /model 切换或通过 --model anthropic/claude-sonnet-5 指定
即可。自适应思考(adaptive thinking)也一并继承,预算 token 可按
thinkingBudgets 配置项自定义。对于想尝鲜 Anthropic 最新模型又不愿换工具
的开发者,这几乎是零成本切换。
externalEditor 配置项打破终端边界。 在 settings.json 中添加
"externalEditor": "code --wait" 后,Ctrl+G 会直接打开 VS Code 等待编辑
完成。设置优先级高于 $VISUAL / $EDITOR 环境变量,且可跨项目覆盖。
Windows 用户默认 fallback 到 Notepad,其他平台默认 fallback 到 nano。
这个改动虽然小,但对习惯图形编辑器的大型代码修改场景,省去了
「在终端里艰难滚动」的体验。
RPC 新增两条会话操作命令。 get_entries 返回会话中的全部 Entry 列表
(含工具调用、用户消息、系统通知等),get_tree 则提供了会话树状快照——
每个节点的模型、tokens、状态一目了然。结合已有的 prompt、stop、resume
等命令,现在可以构建一个「能够理解会话全貌」的外部 Client。Pi 还新增了
./rpc-entry 导出包,支持在代码中直接启动 RPC 模式,而无需走子进程。
其他实用改进。 outputPad 控制用户消息、助手消息和思考块的横向内边距,
对主题美化和信息密度有要求的用户可以自行调优。Azure OpenAI Responses
provider 也更新了对现代 Microsoft Foundry 端点的支持。
继承式 Provider 架构与扩展系统
Pi 的 provider 层没有用硬编码模型表。核心在 packages/ai 中的 models.ts
和继承逻辑——每个 provider 定义基础能力(端点、鉴权、支持的参数),模型元数据
则通过「继承」机制从上游 provider 获取。这意味着 Anthropic 发布 Sonnet 5 后,
Pi 的 Anthropic-compatible provider 会自动匹配其模型 ID、context window 大小、
定价和参数约束。v0.80.3 中对 Sonnet 5 的「adaptive thinking」支持也是通过
这一层注入的:在 Anthropic 和 Bedrock provider 的请求构建中加入 thinking
字段和 clear_thinking 标记,确保推理内容能被正确序列化并在后续请求中参与
provider 缓存。
RPC 的新增能力则得益于 session-manager.ts 和 agent-session.ts 中对会话
Entry 类型的结构化设计。每条 Entry 自带 type、timestamp、关联 message,
在 UI 层之外维护了一份可序列化的副本。get_tree 只是把会话树形索引公开到
JSONL 协议中,背后并没有新增数据结构。
扩展系统的 session_info_changed 事件则展示了 Pi 对插件生态的持续投入。
扩展可以通过监听这个事件,在会话重命名时做同步操作
(如更新标题栏、写入外部日志),无需轮询。
关于修复。 本版最大的结构修复在 compaction 侧:修复了 「预压缩后立即继续执行」导致上下文指针错位的问题,以及扩展 tool 变更在 agent 运行中未正确生效的错误。这些修复对长期使用 Pi 做复杂任务的用户很 重要——减少了因压缩逻辑瑕疵引发的「幻觉式重复」或语义断裂。
整体来说,v0.80.3 是一个「广度升级」——不聚焦单一特性,而是同时拓宽模型选择、 编辑器集成和远程控制三个维度的能力。开发者升级后能感知到的变化比较分散, 但每个改动都指向一个具体的使用场景。如果你已经在用 Pi 做日常编码,这个版本 值得花几分钟升级并体验一下 Ctrl+G 跳转到 VS Code 的顺畅感;如果你还没试过 Pi,现在接入 Claude Sonnet 5 和 GPT-5.5 的门槛比以往更低。
夜雨聆风