Pi 编程智能体的最佳模型取决于具体任务:日常编码从 Claude Sonnet 5.5 起步,或选择 GPT-6.1 Sol 作为 OpenAI 方案。高难度调试试试 Claude Opus 5.5,常规工作可对比 MiniMax M3 和 DeepSeek V4.1 Flash,代码必须留在本机时则测试 Qwen3.8 27B。
Pi 是一个可扩展的智能体运行框架,运行在你的终端中。运行框架负责管理对话和工具,而模型决定读取哪些文件、执行哪些命令、修改哪些内容。Pi 允许你在工作流中随时切换模型,因此你可以在同一个仓库上直接对比,而不必参照无关的排行榜来做选择。
模型 ID 和可用性已于 2026年10月14日 对照 Haimaker 目录 核实。以下推荐结合了当前提供商信息和一次小规模的独立 Pi 评估,我们并未在 Pi 中对这些模型运行新的 Haimaker 基准测试。
在 Pi 中应该从哪个模型开始?
先在一个你已经知道如何验证结果的任务上使用 Sonnet 5.5 或 GPT-6.1 Sol。保持工具访问权限和仓库状态不变,再在同一任务上对比一个低成本候选。当更便宜的模型反复采用失败策略或需要过多人工纠正时,再切换到 Opus。
| Pi 工作负载 | 推荐模型 | Haimaker 模型 ID | 权衡 |
|---|---|---|---|
| 日常编辑、测试和仓库操作 | Claude Sonnet 5.5 | anthropic/claude-sonnet-5-5 | 每 token 成本高于低成本选项 |
| 使用 OpenAI 模型进行编码和规划 | GPT-6.1 Sol | openai/gpt-6.1-sol | 需对比推理强度和总 token 消耗 |
| 高难度调试或需求不明确 | Claude Opus 5.5 | anthropic/claude-opus-5-5 | token 费率更高,但可能减少尝试次数 |
| 预算有限的常规编码 | MiniMax M3 | minimax/minimax-m3 | 需测试工具参数准确性和故障恢复能力 |
| 低成本后台任务 | DeepSeek V4.1 Flash | deepseek/deepseek-v4.1-flash | 重试和延迟可能抵消低费率优势 |
| 另一个低成本对比选项 | GLM-5.3 Flash | z-ai/glm-5.3-flash | 需关注长输出场景和总任务耗时 |
| 研究和大型文档输入 | Gemini 3.8 Flash | google/gemini-3.8-flash | 输入容量大,但仍需验证回答质量 |
| 高难度研究和推理 | Gemini 4 Argon | google/gemini-4-argon | 新推出的付费候选,未包含在下方 Pi 评估中 |
Anthropic 的模型概览 介绍了当前 Claude 各层级。OpenAI 的 Sol 文档 说明了其编码和智能体定位,Google 的模型列表 涵盖了 Gemini 系列。这些描述有助于缩小候选范围,但无法直接判定哪个模型最适合你的代码库。
这与我们在 Hermes 模型指南 中采用的基于任务的方法一脉相承。不过 Pi 的配置方式、模型循环机制和思考级别控制各有不同,因此请使用下方的 Pi 专属设置,不要直接照搬 Hermes 的配置。
实际的 Pi 编码对比结果如何?
一次小规模 Pi 评估表明,在假设预算型模型能更快或更便宜地完成任务之前,应先测试 Sonnet、Sol 和 Opus。评估还显示,更多的推理可能增加检查步骤和工具调用次数,但在简单任务上并不会提高完成率。真正有参考价值的对比维度是任务的最终完成情况,包括失败的尝试和审查所花的时间。
Ibragim Badertdinov 的个人编码评估 使用了 10 个任务,每种配置运行 3 次。9月30日的结果如下:
| 模型与推理强度 | 单次尝试任务成功率 | 每任务报告耗时 |
|---|---|---|
| Sonnet 5.5,高 | 100% | 46 秒 |
| GPT-6.1 Sol,中 | 100% | 1 分 7 秒 |
| Opus 5.5,低 | 100% | 37 秒 |
| DeepSeek V4.1 Flash,最大 | 93.3% | 4 分 30 秒 |
| GLM-5.3 Flash,最大 | 96.7% | 7 分 1 秒 |
以上是作者的结果,不是我们的。方法论 中描述了任务来源于作者的实际工作、采用自动化检查和 API 访问。任务本身未公开,且结果基于 Pi 0.85.1,而非当前的 Pi 1.x 版本。相同的通过率也不能证明代码质量相同。
这组对比也说明,除了模型本身,推理强度同样值得单独测试。Opus 在低推理强度下完成这组小型测试套件的速度快于表中其他配置,但这并不意味着低强度足以应对高难度迁移。请在真实约束条件下运行任务,然后检查额外的推理究竟是改变了补丁,还是只增加了重复检查。
在你自己的对比中,建议记录:是否成功完成、工具参数是否正确、重试次数、总耗时和最终账单。我们的编程智能体 API 成本指南 解释了为什么仅看 token 费率可能得出错误结论。
如何将 Pi 连接到这些模型?
使用 Haimaker Connect 连接 Pi,无需手动编写提供商配置。先安装 Pi,然后运行 Connect 来配置原生文件并验证连接。
对于新安装,Pi 的快速入门 使用下方的当前 npm 包,要求 Node.js 22.19 或更高版本:
npm install -g --ignore-scripts @earendil-works/pi-coding-agent
pi --version
推荐:Haimaker Connect
运行设置向导并选择 Pi:
npx -y @haimaker/connect
如果按上文的 Sonnet 推荐配置 Pi,请显式指定两者:
npx -y @haimaker/connect --pi --model anthropic/claude-sonnet-5-5
pi --provider haimaker --model anthropic/claude-sonnet-5-5
Connect 会打开浏览器登录或使用现有的 HAIMAKER_API_KEY。它将 Haimaker 提供商写入 models.json,将密钥存储在 Pi 的 auth.json 中,并验证一次请求。之后 Pi 直接向 Haimaker 发送请求。更多选项详见 Connect 包文档。
如果不指定 --model,Connect 会配置 haimaker/auto。做对比时请使用具名模型,以免路由在请求之间悄悄更换模型。Connect 只写入单个模型条目;如需在 Pi 选择器中保留多个候选,请使用下方的手动配置方式。Connect 会备份现有文件,但会将 models.json 重写为不含注释的 JSON。
使用 Haimaker Connect 配置 Pi,然后在同一仓库任务上对比模型。
将 PI 连接到 HAIMAKER手动配置:在选择器中保留多个模型
在将启动 Pi 的 shell 中设置密钥:
export HAIMAKER_API_KEY=your-haimaker-key
将以下提供商配置添加到 ~/.pi/agent/models.json。如果已有 providers 对象,请合并进去:
{
"$schema": "https://pi.dev/schemas/models.schema.json",
"providers": {
"haimaker": {
"baseUrl": "https://api.haimaker.ai/v1",
"api": "openai-completions",
"apiKey": "${HAIMAKER_API_KEY}",
"models": [
{
"id": "anthropic/claude-sonnet-5-5",
"name": "Claude Sonnet 5.5",
"reasoning": true,
"input": ["text", "image"],
"contextWindow": 1000000,
"maxTokens": 128000
},
{
"id": "openai/gpt-6.1-sol",
"name": "GPT-6.1 Sol",
"reasoning": true,
"input": ["text", "image"],
"contextWindow": 922000,
"maxTokens": 128000
},
{
"id": "minimax/minimax-m3",
"name": "MiniMax M3",
"reasoning": true,
"input": ["text", "image"],
"contextWindow": 1000000,
"maxTokens": 128000
}
]
}
}
}
上述限制描述的是已核实的 Haimaker 目录,可能与提供商直接 API 的限制有所不同。Pi 支持在提供商凭据中使用环境变量插值,详见其模型配置指南。建议先从一个明确范围的小任务开始,再发送大型仓库上下文。
使用两个标识符选择模型:
pi --provider haimaker --model anthropic/claude-sonnet-5-5
在 Pi 中,打开 /model 即可选择另一个已配置的模型。选择器会重新加载 models.json。此示例中省略了自定义定价元数据,因为费率随时可能变化;请查看提供商账单,不要将未配置会话的成本显示当作实测的零成本运行。
已有提供商账户的情况
对于内置提供商,运行 /login 并按照 Pi 的认证流程操作,然后用 /model 选择模型。Pi 的提供商参考 列出了各 API 密钥变量和提供商特定选项。订阅制和按量计费的 API 密钥可能有不同的访问权限和计费方式,请使用你的账户实际支持的连接方式。
如何设置思考级别和切换模型?
把模型选择和思考强度当作两个独立变量来对待。首次对比时在支持的情况下使用中等强度,然后在需要更多推理的任务上提高强度。Pi 会将级别限制在所选模型的能力范围内。选择强度时请对比 token 用量和完成效果;不同提供商对相同级别的解释可能不同。
Pi 的 CLI 参考 支持显式指定模型和强度:
pi --provider haimaker --model openai/gpt-6.1-sol --thinking medium
在交互式会话中,/thinking 用于更改推理强度,/scoped-models 用于设置通过 Ctrl+P 循环切换的模型列表。建议从 2 个模型开始:一个常规工作候选和一个更强的备选。只有当某个模型能解决反复出现的特定失败时,再添加另一个。使用 Ctrl+S 可从模型选择器保存启动默认值。
手动切换模型能让选择保持可见。Haimaker 的 haimaker/auto 在 API 端进行路由。如需在 Pi 内部实现路由,请通过扩展使用虚拟模型路由,并单独配置和测试该扩展。models.json 中的多个条目为你提供可选模型,但列表本身不会自动在它们之间做选择。
Pi 还将编码模型与分类器和图像模型 分开管理。其当前文档将 GPT-6 Luna(通过 Decisions API)列为 Codemode 使用的分类器,而非主对话选择器中的模型。在参考社区推荐时,请确认模型的 API 和角色定位,尤其是基于旧版 Pi 的推荐。
哪些本地模型值得在 Pi 中尝试?
如果你有工作站内存并希望本地推理,可以对比 Qwen3.8 27B、Muse Glimmer 30B 和 Qwen3 Coder 30B。配置较低的机器可考虑 Gemma 4 E4B 或 Qwen3 8B。重点检查本地模型能否正确调用 Pi 的工具,以及在命令失败后能否自行恢复。
Pi 提供了文档化的 llama.cpp 路由器集成,支持 GGUF 格式模型。如果你已经在使用 Ollama,配置其独立的 OpenAI 兼容端点即可。先拉取一个适合机器配置的模型,然后将其精确标签添加到 models.json:
ollama pull qwen3.8:27b
{
"providers": {
"ollama": {
"baseUrl": "http://localhost:11434/v1",
"api": "openai-completions",
"apiKey": "ollama",
"models": [
{
"id": "qwen3.8:27b",
"name": "Qwen3.8 27B local",
"reasoning": true,
"input": ["text", "image"],
"contextWindow": 32768,
"maxTokens": 8192
}
]
}
}
}
占位符密钥让 Pi 能够完成本地提供商的认证解析;Ollama 本身会忽略该值。将此提供商与已有的云端配置合并,然后选择它:
pi --provider ollama --model qwen3.8:27b
Qwen3.8 的 Ollama 页面 显示下载体积约为 18GB,这还不包括上下文状态和运行时缓冲区的开销。24GB 显存的 GPU 或 32GB 以上统一内存的机器是进行限定范围会话的起点。此示例中的 32K 上下文是保守的起始设置,并不保证一定适用。配置较低的机器和其他候选模型,请参阅我们的 Ollama 编码模型指南。
本地推理将模型的提示词保留在你的机器上。但外部工具仍可能将数据发送到别处,带有 cloud 标签的模型会使用托管推理。如果需要保持代码私密,请同时检查端点地址和已启用的工具。
常见问题
能否在不丢失 Pi 会话的情况下切换模型?
可以。使用 /model 在现有 Pi 会话中切换模型。Pi 会记录模型和思考级别的更改,恢复会话时会将其还原。使用 /scoped-models 设置可通过 Ctrl+P 循环切换的模型列表。
为什么我的自定义模型没有出现在 Pi 中?
请检查 Pi 能否解析提供商凭据,以及模型 ID 是否已写入 models.json。启动 Pi 的进程中必须存在对应的环境变量。分类器模型和图像模型使用独立工具,不会出现在主 /model 选择器中。
Pi 是否支持 Haimaker 和本地 Ollama 模型?
支持。使用 npx -y @haimaker/connect —pi 通过 Pi 的原生配置文件接入 Haimaker,或在 ~/.pi/agent/models.json 中手动添加提供商。Ollama 使用位于 http://localhost:11434/v1 的独立本地提供商,需填写精确的本地模型标签。
从一个已验证的仓库任务开始,保持 Pi 的工具和上下文不变,对比两个模型。保留那个能正确完成任务、等待时间和审查工作量更少的模型。当新版本解决了你实际遇到的失败时,再做一轮对比。