Pi vs Aider / Claude Code / OpenHands
最后更新:2026-10-10
选编码代理,没有「唯一正确答案」,只有「合不合你的约束」。下面把 Pi 和另外三款常见工具放在一张表里客观对比,重点说清各自的取舍,而不是简单踩一捧一。
一张表看懂
| 维度 | Pi | Aider | Claude Code | OpenHands |
|---|---|---|---|---|
| 开源 / 许可 | 开源 MIT,可自托管 | 开源(APACHE-2.0) | 闭源,Anthropic 托管 | 开源(MIT) |
| 多模型支持 | 统一(pi-ai)多供应商 | 支持多模型但配置偏手工 | 绑定 Claude 模型 | 支持多家模型 |
| 扩展方式 | 运行时加载工具 / 扩展 / 资源 | 主要靠仓库脚本与配置 | 官方插件 / 子代理 | 容器化动作与工具 |
| 会话可审计性 | JSONL 会话树,可回放分支 | 聊天历史文件 | 会话记录(托管) | 轨迹日志 |
| 供应链加固 | --ignore-scripts + 沙箱 | 取决于使用方式 | 由厂商保障 | 容器隔离 |
| 离线开发 | 内置 MockModel | 需真实模型 | 需联网调用 | 需模型 |
| 典型形态 | 编码运行时 + CLI + TUI | 命令行 diff 式改码 | 托管 CLI 代理 | Web / 容器自动化代理 |
Pi 的差异化优势
- 开源可自托管:整套工具集 MIT 开源,数据与控制权都在你手里,不依赖任何厂商云服务。
- 统一多模型(pi-ai):一份代码屏蔽 OpenAI / Anthropic / Google / Bedrock / Vertex / Copilot 的差异,换供应商不必改业务代码,详见 模型供应商。
- 运行时自我扩展:Agent 能在运行中加载工具、扩展与资源,不必重新发布内核就能获得新能力——这是 Pi 名字「可自我扩展」的由来。
- 透明 JSONL 会话树:所有交互以会话树保存,可在任意节点回放、分支与审计,方便复盘和合规。
- 供应链加固:依赖精确锁定,安装默认
--ignore-scripts,并在 Gondolin / Docker / OpenShell 沙箱中运行代理,详见 运行与调试。 - MockModel 离线开发:没有真实 key 也能跑通核心循环与工具逻辑,本地调试零成本。
逐工具分析
Aider
Aider 是经典的「diff-based」编码助手:你让它改代码,它生成差异并应用,轻量、上手快、社区成熟。它的强项是简单直接的代码修改场景。相对不足在于:扩展性偏弱、多模型切换与统一抽象不如 Pi 的 pi-ai 顺滑,复杂工具链或统一运行时能力需要自己拼装。适合想要「开箱即用、改两行代码」的用户。
Claude Code
Claude Code 由 Anthropic 托管,能力很强、体验完整,尤其在与 Claude 模型深度协同时表现突出。代价是闭源且绑定其服务:你无法自托管、无法完全审计内部实现,也要接受厂商的可用性与定价。适合信任并愿意绑定 Anthropic 生态的团队。
OpenHands
OpenHands(原 OpenDevin)偏向Web / 容器化的自动化任务代理:在隔离环境里完成端到端任务,强调「给个目标,它在沙箱里自己干」。它开源、可自托管,和 Pi 在价值观上接近。与 Pi 的差异在于:OpenHands 更偏「自动化任务执行」,Pi 更偏「可自我扩展的编码运行时」与透明会话树。两者可按场景互补。
怎么选
- 想要自托管 + 统一多模型 + 可审计会话 + 可扩展:选 Pi。
- 只想轻量、马上改代码:Aider 很顺手。
- 信任 Anthropic 生态、接受托管:Claude Code 体验好。
- 想做容器里的端到端自动化:OpenHands 更对口。
常见问题(FAQ)
Pi 是闭源还是要付费?
Pi 由 earendil-works 以 MIT 协议开源,可免费自托管,不绑定任何厂商云服务;你需要自行准备模型 API key(或本地模型)。
Pi 和 Aider 哪个更适合新手?
Aider 更轻量、开箱即用,适合简单的 diff 式改代码;Pi 适合想要统一多模型、可扩展工具链与可审计会话树的开发者。两者定位不同。
Claude Code 比 Pi 更强吗?
Claude Code 由 Anthropic 托管,能力很强但闭源且绑定其服务。Pi 在可自托管、可审计、可离线开发(MockModel)方面更有优势。选哪个取决于你是否接受厂商锁定。
OpenHands 和 Pi 有什么不同?
OpenHands 偏向 Web / 容器化的自动化任务代理,强调在隔离环境里完成端到端任务;Pi 更偏「可自我扩展的编码运行时」,强调运行时加载工具/扩展与透明会话树。
Pi 的供应链加固具体指什么?
指依赖精确锁定、以 lockfile 为真相源、安装时默认使用 npm install --ignore-scripts 禁用不可信生命周期脚本,并在沙箱(Gondolin / Docker / OpenShell)中运行代理。