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.5anthropic/claude-sonnet-5-5每 token 成本高于低成本选项
使用 OpenAI 模型进行编码和规划GPT-6.1 Solopenai/gpt-6.1-sol需对比推理强度和总 token 消耗
高难度调试或需求不明确Claude Opus 5.5anthropic/claude-opus-5-5token 费率更高,但可能减少尝试次数
预算有限的常规编码MiniMax M3minimax/minimax-m3需测试工具参数准确性和故障恢复能力
低成本后台任务DeepSeek V4.1 Flashdeepseek/deepseek-v4.1-flash重试和延迟可能抵消低费率优势
另一个低成本对比选项GLM-5.3 Flashz-ai/glm-5.3-flash需关注长输出场景和总任务耗时
研究和大型文档输入Gemini 3.8 Flashgoogle/gemini-3.8-flash输入容量大,但仍需验证回答质量
高难度研究和推理Gemini 4 Argongoogle/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 的工具和上下文不变,对比两个模型。保留那个能正确完成任务、等待时间和审查工作量更少的模型。当新版本解决了你实际遇到的失败时,再做一轮对比。