~/yomxxx/posts/2026-10-02-pi-1-0-agent-harness-codemode-workshop.mdx
Workshop

$ cat Pi 1.0 实战:极简 Agent Harness 的进阶用法与 Pi Durable 长时任务

-- 6 min read ·

9 月最后一周,HN 上一条「You said no MCP」拿到近 600 分,讲的是 Earendil 如何顶住生态压力、坚持让模型写脚本而不是背工具清单;10 月 1 日,这个团队一口气发了两篇公告:Pi 1.0 正式版与实验性的 Pi Durable,前者冲上 657 分,后者再拿 188 分。Pi 是一款每周被数十万人使用的极简 Agent harness,这次 1.0 被官方称为「可以被人和企业依赖的稳定版本」。本文带你把它装起来,跑通 Codemode、虚拟模型路由这些新特性,最后看看 Pi Durable 适合接什么活。

一、Pi 是什么,1.0 意味着什么

Pi 的设计哲学只有两条:极简与超可塑。面对每周都在变化的 Agentic 工具生态,团队的态度是不追新:一项能力只有在被证明站得住之后才会被采纳,采纳前还要权衡它带来的固有复杂度。这就是为什么 MCP 生态火热两年,Pi 直到 1.0 才通过 Codemode 提供原生支持——而且是按 Pi 的方式支持。

1.0 版本收进来的特性清单如下:

  • Codemode:原生支持 MCP,以及 Jev 这类非 LLM 决策模型和图像模型
  • 虚拟模型扩展:把多个真实模型组合成一个可路由的对外模型
  • 延迟工具加载:工具定义不再一次性塞满上下文
  • Anthropic 模型缓存预热
  • 中途系统消息:会话进行中动态调整 prompt 与工具集
  • 新 TUI 主题,全屏模式成为默认

安装就一行:

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

Windows 用户走 PowerShell 脚本,代码在 GitHub 上以 MIT 协议开源,文档在 pi.dev。升级覆盖旧版即可,既有配置与会话兼容。

💡 提示:Pi 的 TUI 支持斜杠命令与叹号前缀直跑 shell,首次进入后直接问它「你能做什么」,它会解释自己的特性并查自己的文档——这是最快的上手路径。

二、Codemode:让模型写脚本,而不是背工具

传统 harness 接入 MCP 后,要把每个工具的完整 schema 灌进系统提示,工具一多,上下文开销和模型选错工具的概率同步上涨。Codemode 反其道而行:给模型一个「写代码调工具」的逃生口。

实际体验是这样的:把一周的 git 提交记录交给 Pi,它不会逐个调用提交查询工具,而是现场写一段汇总脚本,脚本执行完直接给出摘要。工具定义只保留概要级描述,具体参数组合由代码表达。三个收益很直接:

  1. 上下文更省:几十个工具的完整 schema 换成一页概要
  2. 编排更准:多步骤任务写进代码里,模型不再靠多轮工具调用「走一步看一步」
  3. 出错更便宜:脚本跑错了重跑一次,比重开一整轮对话便宜得多

对已有 MCP 服务器的团队,迁移成本约等于零:挂上来之后模型自动获得脚本化调用方式,不需要改服务器端的任何东西。

三、虚拟模型实战:Opus 规划,Luna 实现,Jev 掌舵

1.0 的演示里最有趣的一段:Pi 给自己写了一个扩展,定义了一个虚拟模型——规划阶段用 Claude Opus,实现阶段用 GPT-6 Luna,由 Jev 决策模型判断什么时候该切换。整个流程不到两分钟:

  1. 写好扩展,重载会话,模型列表里出现新的 router/auto
  2. 规划请求进来,Opus 产出实现计划
  3. Jev 识别出任务从「规划」转入「实现」,把后续请求切给 GPT-6 Luna
  4. 叹号前缀直接运行产出的脚本
  5. 用 /session 查看本次会话按模型拆分的成本与缓存命中

这里值得注意的是 Jev 的角色:它不是又一个聊天模型,而是专门做「分类、路由、判断」的决策模型,推理是非自回归的,单次判断只要几百毫秒。恰好同一天,Cloudflare 发布了与 Jev API 完全兼容的开源决策模型 Clef(本站另一篇速评有基准细拆),也就是说这套路由玩法里的「掌舵位」很快会有更多开源选项,成本还能继续下探。

自己写一个虚拟模型扩展并不复杂,核心就是在扩展里声明一个模型名,再挂一个路由函数:

# 伪代码:扩展声明一个虚拟模型
class RouterModel(VirtualModel):
    name = "router/auto"

    def route(self, request, history):
        if jev_decide(history) == "planning":
            return call("claude-opus-4-6", request)
        return call("gpt-6-luna", request)

扩展写完放进扩展目录,重载即用。Pi 的扩展本质上是把 harness 的内部接口暴露给你,模型路由、工具集、UI 都是可以动的手。

四、延迟工具加载与中途系统消息

两个容易被忽略但体感很强的改动。

延迟工具加载:过去打开一个会话,所有工具定义立即占据上下文;现在工具按需加载,会话开头只放概要,模型真正要用时才展开。对挂了大量 MCP 服务器的用户,这直接改善了首 token 延迟和长会话后半程的上下文质量。

中途系统消息:允许在会话进行中更换系统提示与工具集。典型用法是「研究阶段只给搜索和抓取工具,写报告阶段切换成文件写入工具」,一次会话里完成阶段切换而不用重开。transcript 感知意味着切换时模型仍看得见前面的对话,不会失忆。

加上 Anthropic 模型的缓存预热,长会话的重复前缀成本被压到了比较低的水平。/session 里能看到按模型与缓存拆分的账单,多模型混用时这本账非常关键。

五、Pi Durable:极简哲学的第二次出发

如果说 Pi 1.0 是把终端里的编码 Agent 打磨到稳定,Pi Durable 则回答了另一个问题:怎么把这种极简可塑的能力带到终端之外、带到长时任务里。

Pi Durable 是一个独立的实验性包,定位是「构建长时运行 Agent 应用的底座」。它延续了 Pi 的两条原则,但把可塑性延伸到新维度:应用可以从不同入口触达,会话可以跨小时、跨天推进,使用者可以对底层智能做细粒度的干预与转向。安装:

npm install @earendil-works/pi-durable @earendil-works/pi-ai @earendil-works/chord

适合的场景大概三类:持续巡检的服务型 Agent、需要人随时介入纠正的长研究任务、多入口(终端、Web、消息渠道)共享同一智能核心的应用。需要提醒的是它明确标注 experimental,API 会变,拿来做生产关键路径前先想清楚。

六、事件背景:Figma 白名单与 harness 的独立性

就在 Pi 1.0 发布同日,Figma 宣布把 MCP 访问限制在白名单客户端内,而 Pi 不在名单上,这条消息拿到 171 分。两件事放在一起看很说明问题:harness 层与工具供给方的博弈正在公开化。对开发者来说,Codemode 这类「模型写脚本编排」的模式反而显出优势——它对工具暴露方式的要求更宽松,客户端被白名单拦住时,脚本化路径的适配成本通常更低。

选 harness 时不妨把「当工具方收紧访问时你的迁移成本」列为一个正式评估项。Pi 的答案是把控制权留在模型与用户手里,这个立场如今有了 1.0 的工程质量背书。

写在最后

Pi 1.0 值得一试的理由不是「功能多」,而是它示范了一条克制的产品路线:等生态里真正站得住的东西出现,再用极简的方式收进来。Codemode 与虚拟模型是当下 Agentic 工程里性价比最高的两个模式,Pi 把它们都做成了原生能力。如果你正在给自己的团队选一个能长期改造的 harness 底座,这个 657 分的发布值得花一个下午。

Frequently asked questions

Pi 1.0 和 Claude Code、Codex CLI 这类编码 Agent 有什么区别?
Pi 的定位是极简且可深度改造的 harness:核心只保留经过验证的能力,工具调用、模型路由、UI 都可以由用户写扩展接管。Claude Code 与 Codex CLI 是厂商一体化的产品,开箱即用但可定制面窄。如果你想要一个能按自己工作流改造的底座,Pi 更合适;如果只想开箱即用,前者更省心。
Codemode 是什么,和直接接 MCP 有什么不同?
Codemode 的思路是不让模型逐个学习几十个 MCP 工具的调用方式,而是让模型现场写一段脚本来编排这些工具,脚本在受控环境里执行后返回结果。这样上下文里只需要工具的概要,token 消耗和出错概率都更低。Pi 1.0 把它做成了原生能力,MCP 服务器挂上来之后模型自动获得脚本化调用方式。
虚拟模型(virtual model)能解决什么实际问题?
实际项目里规划、实现、审查往往适合不同模型。虚拟模型让你把多个真实模型组合成一个对外的模型名,比如规划走 Claude Opus、实现走 GPT-6 Luna,由 Jev 这类决策模型判断何时切换。对用户来说它就是一个普通模型,但成本和质量都能按阶段优化,官方演示里一个会话的成本拆解清晰可见。
Pi Durable 适合什么样的场景,现在能上生产吗?
Pi Durable 面向长时运行、多会话、可被多入口访问的 Agent 应用,例如持续巡检的服务机器人、跨天推进的研究助理。它目前是实验性包,官方明确标注 experimental,API 还可能变动,适合先在个人项目和小工具里试用,把反馈提回社区,暂不建议直接承载关键业务。
从旧版 Pi 升级到 1.0 需要改配置吗?
官方定位 1.0 为稳定版本,安装脚本覆盖旧版即可,既有会话与配置兼容。新增特性里默认行为变化的主要有两处:全屏模式成为默认 UI、TUI 主题更换,偏好旧界面的用户可以在配置里关掉全屏。延迟工具加载与缓存预热默认开启,一般无需手动干预。
// next.txt ›

Some outbound links in this post are affiliate links — see disclosure.