
这些天我的技术群和几个独立开发者社群里高频出现同一个问题“为什么越来越多人放弃 Claude Code 转而用 Pi”说实话我第一次看到这个讨论的时候也有点懵因为 Claude Code 在我看来已经算得上是一个标杆级的 AI 编程助手了。直到我自己把一套已有项目从 Claude Code 整体迁移到 Pi才真正体会到“放弃”这个词背后的复杂原因不是 Claude Code 不好而是在不少日常场景里Pi 这种更开放、更轻、更省钱的方案太能打了。先说清楚这里的 Pi 不是树莓派Raspberry Pi而是一个开源编程代理工具社区里一般叫 Pi Agent也可以直接叫 Pi。它和 Claude Code 做的事情很像在终端里读你的项目代码、自动改文件、执行命令、跑测试甚至可以负责任务拆解和编排。但它和我习惯的 Claude Code 在模型接入、费用结构、工作流灵活度上有明显差异。这篇内容我就把我自己从 Claude Code 切到 Pi 的经历、原因、具体操作以及中间踩过的坑完整记录下来希望对那些同样在犹豫要不要切换的人有些参考价值。1. 先搞清楚Claude Code 和 Pi 分别解决什么问题1.1 我对 Claude Code 的理解和使用感受Claude Code 是 Anthropic 推出的命令行 AI 编程工具直接跑在终端里核心能力是读取仓库上下文、生成和修改代码、调用命令行工具还能通过 Skills 机制给模型挂上自定义技能。我大概用了小半年最初体验确实惊艳它不像普通聊天式 AI 那样只能给你一段代码而是真的在项目目录里“干活”。你让它修一个 bug它会先看相关文件改完代码再跑测试然后把 diff 展示给你。但用着用着就发现问题开始积累。首先是费用。Claude Code 按背后调用的模型 token 计费我用的是比较高阶的模型写一个中等规模功能动辄几美元。可能有人不在乎这点钱但对我这种每天要开十几个会话的独立开发者来说一个月下来账单确实肉疼。其次是模型绑定Claude Code 默认只能用 Anthropic 的模型虽然社区有各种接入方案但总归不原生、不稳定。第三是权限和封闭性它的某些行为和 API 使用策略经常更新今天能跑的配置明天可能就提示不兼容很多时候被迫去追新版本。当然我依然认为 Claude Code 是优秀工具它的 Agent 执行质量尤其是长链路任务拆解能力至今仍算第一梯队。但“优秀”和“适合我”不是一回事。当一个开源工具的灵活度可以覆盖掉那部分差距的时候切换就是顺理成章的事了。1.2 Pi 是什么为什么它能进入视野Pi 最早是在几个 GitHub 开源项目上被刷到的后来看到有人拿它和 Claude Code、其他编码代理做横向对比才慢慢注意到。简单说Pi 是一个开源的编程代理工作台它的定位不是某个公司的封闭产品而是一个让你自己配模型、自己定工作流、自己加技能的工具框架。它支持多个模型提供方你可以用 DeepSeek可以用本地模型也可以继续用 Claude 的 API只要自己能拿到 key。Pi 的形态和 Claude Code 很接近但有几个额外加分项有 Web 界面pi web不用只怼着终端有 Harness 概念相当于一套流程编排层可以控制 Agent 在哪个环节调用什么工具有 CLI方便脚本化集成。换句话说它既保留了 Claude Code 那种“干活型 Agent”的效率又加入了开源社区常见的“什么东西都敢让你改”的 DIY 气质。对我这种喜欢折腾配置的人来说这个吸引力是致命的。2. 为什么会越来越多的人放弃 Claude Code 转用 Pi2.1 账本上的差异token 费用不是一个数量级先算一笔很现实的账。Claude Code 的计费基础是消费模型 token模型越强输入输出 token 越贵。一个复杂的编码任务常常要来回几十轮工具调用每轮都要带上代码片段、文件内容和指令token 消耗非常快。我做过一个统计当时让 Claude Code 重构一个模块前后花了差不多 3 万 token 的输入和 7000 token 的输出换算成费用大概是小几美元。一天下来如果频繁使用费用很容易到几十美元。Pi 本身是开源工具不收软件授权费你只需要支付所用模型提供方的 token 费用。如果你接的是价钱更低的 DeepSeek 或者本地模型成本一下就降到原来的十分之一甚至更低。我自己把主力环境切到 Pi 一个高性价比模型后一个月的 API 总支出比原来用 Claude Code 时的零头还少。纯粹从成本角度“越来越多的人放弃 Claude Code”一点都不奇怪因为大多数个人开发者对价格敏感度很高。当然我这里说的“放弃”不是指的完全卸载而是主力工具不再选它。我身边很多朋友的做法是重要复杂架构仍用 Claude Code日常功能迭代、批量修改、重构搬去 Pi毕竟省钱这件事放着眼前的不选也是不划算的。2.2 模型自由我想用哪个模型自己做主Claude Code 最强的能力来自 Claude 系列模型这是它的招牌也同时是它的限制。如果你所在团队刚刚采购了其他模型 API或者公司合规部门要求数据不能出内网那 Claude Code 基本没法适配。Pi 则把这一步彻底解耦了。在 Pi 里模型是可插拔的配置里写清楚 provider 和 model 就行。你可以给不同任务指定不同模型简单的代码解释用便宜的模型复杂重构用更强的大模型。甚至可以配置多个模型做路由某些文件类型走 A 模型某些任务走 B 模型。我在实际项目中就把代码补全类任务指向低延迟模型把架构分析和长链路 bug 排查指向高能力模型运行成本和体验都兼顾了。这种“模型自由”带来的不只是省钱还是一种安全感。依赖单一模型厂商意味着把它中断、乱改接口、调整价格都只能被动接受而用 Pi 这类多 provider 方案随时可以把底座换掉项目语义和 Agent 逻辑都不受影响。对长期维护的项目来说这种可替代性是特别重要的。2.3 工作流可编排从“智能助手”到“你的助手”Claude Code 的 Skills 机制已经很强了但本质上还是一个预定义好的工具链你可以在里面塞技能却很难重新定义 Agent 的核心行为流程。Pi 给我最大的冲击是它的 Harness 概念。你可以把它理解成一条流水线Agent 每一步做什么、在什么条件下调用什么工具、如何传递上下文都由你的配置来控制。比如我的一个仓库里代码规范检查和单测是分开跑的我原来在 Claude Code 里只能让它“先检查再测试”但 Pi 里我可以把这两个动作显式做成两个 stage前一个 stage 没通过后一个 stage 根本不会启动。这种能力在处理多模块、多步骤交付时特别有用因为 Agent 不会自行跳步执行过程也肉眼可见。再加上 Pi 支持 Web 界面和命令行两种入口我在 SSH 到服务器的时候用 CLI在本地开发的时候开 Web两者共享同一套配置和会话历史体验比单独一个终端工具完整很多。这种工作流自由度是社区驱动的开源项目才会认真做的东西商业产品往往更倾向把行为固定下来方便维护。3. 迁移实操把 Claude Code 的老工作流搬到 Pi3.1 安装 Pi 的最小步骤Pi 的安装方式比较常规前提是机器上已经有 Node.js我用的是 18 版本和 Git。直接在终端里跑npm install -g pi-agent装完之后先初始化目录pi init这条命令会在当前目录生成一个配置文件通常是pi.config.*或放在.pi目录里。初始化完成以后再用 CLI 配置模型提供方pi config set provider deepseek pi config set model deepseek-chat pi config set api_key your-key-here如果你不想每台机器都手工填 key也可以用环境变量的方式传比如PI_API_KEY、PI_MODEL。这样做的好处是配置不进仓库避免把密钥提交上去。我建议从第一天就用环境变量而不是把 key 写在配置文件里。作为对比Claude Code 的安装需要 npm 包名不同同时要确保有对应 CLI 权限第一次启动还有登录授权流程。Pi 明显更轻没有绑定厂商账号init 完直接配置 provider 就能干活。3.2 把 Claude Code 里的 Skills 迁移成 Pi 技能我在 Claude Code 里配置过几个 Skills包括自动生成 commit message、按指定框架生成模块、日志分析等。迁移到 Pi 时其实思路完全一致Pi 也支持类似技能机制只是目录结构和触发词定义不同。以自动生成 commit message 为例。Claude Code 的 Skills 一般放在项目.claude/skills或用户目录下每个技能一个文件夹里面有SKILL.md描述用途和指令。Pi 里我一般是放到.pi/skills/commit-msg然后写一个skill.md--- name: commit-msg description: 根据 git diff 自动生成规范化的 commit message --- 分析当前 git 仓库的暂存区 diff提取变更类型生成符合 conventional commits 规范的 message。 只输出最终 commit message不需要解释过程。迁移之后要重新载入技能然后直接对 Pi 说“用 commit-msg 技能生成提交说明”它就会读取git diff并输出结果。这个过程中我踩过一个小坑Claude Code 对技能描述里的黑话理解得更顺而 Pi 对 description 的清晰度要求更高如果 description 写得泛它经常不主动触发技能。解决办法就是把 “description” 写得像触发词组合比如明确写“commit, message, 提交说明, git diff”。3.3 配置多模型和 Harness 工作流Pi 让我最满意的还是多模型配置。我在pi.config里可以定义多个 model profile profiles: fast: provider: deepseek model: deepseek-chat heavy: provider: anthropic model: claude-sonnet-4-0 api_base: https://api.anthropic.com然后在会话里可以随时切换pi --profile fast pi --profile heavy对于 Harness我的工作流配置大概是这样的一个 stage 负责“代码格式化”一个 stage 负责“静态检查”最后一个 stage 负责“单测”。Pi 会按顺序执行每个 stage 的输出会作为下一个 stage 的上下文。这样做的好处是 Agent 不会被一句“帮我改好”带偏而是严格经过质量流水线。具体实现上我参考社区里一个模板在pi.harness.yml里写了类似结构harness: stages: - name: format command: [prettier, --write, .] - name: lint command: [eslint, .] - name: test command: [pytest, -q]配置好了以后只要让 Pi 修改代码它跑完后会自动触发流水线。如果中间某个 stage 失败Pi 会停下来分析日志并尝试修复这个修复动作又会带来新一轮 token 消耗但整体上比我手动指挥它一步步跑要节约得多。4. 常见问题与排查技巧实录4.1 “malformed response” 是最大的新手拦路虎很多初次接触 Pi 的人都遇到过这样一串报错pi error: the response stream was malformed and no response was produced. try again.我第一次遇到时直接懵了以为是装坏了。后来排查下来发现这个错误背后的主要原因通常是流式响应数据不完整或被截断。换句话说模型服务端没有干净地结束输出客户端只收到了一半内容却没法解析出一个完整响应。常见场景有三种一是请求内容太长模型在生成过程中超时二是模型提供方在长输出时连接中断三是某些接入模型并不完全兼容 Pi 的请求格式响应被框架判定为 malformed。处理办法比较实用先检查请求长度把超大上下文拆小再去模型提供方那边看入口配置的 token 上限和流式开关是否开启最后确认当前用的模型是否在 Pi 的 provider 支持列表里。实测下来我用本地模型最容易出这个问题换成 API 服务后基本不出现。如果偶尔出现重启一次会话或者切换模型 profile也能恢复。4.2 用 Pi 时的几个避坑点第一不要把 API key 直接写进 YAML 配置。因为 Pi 项目文件通常是跟着仓库走的一旦提交到 Git 远程仓库密钥等于裸奔。我就是因为在测试时贪方便后来差点泄露幸好及时发现并 revoke 了旧 key。第二Web UI 和 CLI 的会话状态不是天然互通的。我一开始以为在两个入口之间来回切换会自动同步历史记录结果发现配置共享但历史话题上下文并不一定延续。所以如果有一个任务需要长对话连续性尽量固定在同一个入口完成。第三token 消耗仍然存在只是费用变低了。不要因为 Pi 便宜就无限堆长对话尤其是接本地模型时无限上下文会让内存和显存直接拉满。我自己会定期执行/compact类的会话压缩操作或者手动开启新会话让上下文始终保持在可控范围。第四Harness 里尽量别写带交互的命令比如需要输入确认的npm install或等待用户输入的脚本。一旦 Agent 卡在那个环节整个流水线会死等。最好把交互式命令改成非交互参数比如npm install --no-audit --no-fund或者用yes提前应答。4.3 说实话Claude Code 也不是不能留写到这里可能会给人一种“Claude Code 已经被彻底淘汰”的错觉其实不是。我现在的日常已经切换到 Pi 为主但在两类情况下我还是会打开 Claude Code。一类是特别复杂的整体重构任务它的长上下文理解能力确实更稳另一类是 Anthropic 模型最新能力还没被其他工具完全适配的时候比如某些新出的函数调用行为Claude Code 原生支持总是最快。所以我更愿意把这次迁移理解成一个“差异化共存”的选择而不是“取代”。开源工具胜在灵活、便宜、可定制商业工具胜在稳定、即时、能力上限高。两者并行使用反而可以互补。如果你预算充足并且只用一个模型生态那继续用 Claude Code 也没问题如果你像我一样追求性价比和自由度那 Pi 值得你投入一个周末去体验。5. 个人体会切换之后我到底得到了什么5.1 心态上的变化我可以自己掌控整套开发流程之前用 Claude Code我的心态是“在使用一个工具”它强我就享受它出问题我就等更新。切到 Pi 之后我的心态变成了“我在组装自己的工具链”模型可以换流程可以改界面不满意可以自己写插件。这种感觉很难量化但对长期从事技术工作的人来说掌控感本身就是一种效率。5.2 给新人的一条建议先别急着大动干戈如果你刚听说 Pi也想跟风切我建议不要直接删除 Claude Code也不要一次性迁移所有项目。先在某个小项目里装上 Pi配一个便宜的模型把类似 commit message、单元测试、日志分析这类小任务跑两三天。等熟悉了配置项和工作流逻辑再逐渐把高频任务搬过来。等你真的体验到“省钱、灵活、还不耽误事”之后大概率就会理解为什么越来也多的人选择站到 Pi 这边了。