Pi Coding Agentに最適なモデルは、やるべき作業によって変わります。日常のコーディングなら Claude Sonnet 5.5、OpenAI系でいきたいなら GPT-6.1 Sol から始めるのがおすすめです。難しいデバッグには 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 | 低予算モデルよりトークン単価が高い |
| OpenAIモデルでのコーディングと計画 | GPT-6.1 Sol | openai/gpt-6.1-sol | reasoning effortと総トークン数を比較 |
| 難しいデバッグや不明確な要件 | Claude Opus 5.5 | anthropic/claude-opus-5-5 | トークン単価は高いが、試行回数が少なくて済む場合がある |
| 低予算での定型的コーディング | 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は構成方法・モデルのローテーション・thinking制御がHermesと異なるため、Hermesの構成をそのまま流用せず、以下のPi向けセットアップを使ってください。
実際のPiコーディング比較からわかること
小規模なPi評価の結果から、低予算モデルが速く・安く完了すると決めつける前に、まずSonnet・Sol・Opusをテストすべきであることがわかります。また、推論量を増やしてもチェックやツール呼び出しが増えるだけで、簡単なタスクの完了率は変わらないケースもあることが示されています。本当に意味のある比較とは、失敗した試行やレビュー時間も含めた、完了した仕事全体で判断することです。
Ibragim Badertdinov氏の 個人コーディング評価 では、10タスク×構成あたり3回の実行 が行われました。9月30日時点の結果は以下のとおりです。
| モデルとeffort | 1回試行でのタスク成功率 | タスクあたりの報告時間 |
|---|---|---|
| Sonnet 5.5, high | 100% | 46秒 |
| GPT-6.1 Sol, medium | 100% | 1分7秒 |
| Opus 5.5, low | 100% | 37秒 |
| DeepSeek V4.1 Flash, max | 93.3% | 4分30秒 |
| GLM-5.3 Flash, max | 96.7% | 7分1秒 |
これらは著者自身の結果であり、当社のものではありません。方法論 によると、著者の実務から明確に定義したタスクを使い、自動チェックとAPIアクセスで測定しています。タスク内容は非公開です。また、使用されたのは Pi 0.85.1 であり、現在のPi 1.xリリースではありません。パスレートが同じでも、コードの品質が同等とは限りません。
この比較が示唆するのは、モデルだけでなくreasoning effortもテスト変数に含めるべきだということです。Opusはlow effortで、表中の他の構成よりもこの小規模スイートを速く完了しました。ただし、これが難しいマイグレーションでもlow effortで十分という意味ではありません。実際の制約条件下でタスクを回し、推論量を増やすとパッチの内容が変わるのか、それとも繰り返しのチェックが増えるだけなのかを見極めましょう。
自分で比較する際は、正常完了したかどうか・不正確なツール引数・リトライ回数・経過時間・最終請求額を記録してください。コーディングエージェントAPIコストガイド で、トークン単価だけでは誤った結論に至る理由を解説しています。
これらのモデルに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 に保存し、リクエストを1件送信して接続を検証します。以降、Piはリクエストを直接Haimakerに送ります。オプションの詳細は Connectパッケージドキュメント を参照してください。
--model を指定しない場合、Connectは haimaker/auto を構成します。モデル比較を行う際は、リクエスト間でモデルが切り替わらないよう、名前付きモデルを指定してください。Connectはモデルエントリを1つだけ書き込みます。Piのピッカーに複数の候補を並べたい場合は、以下の手動構成を使ってください。既存ファイルはバックアップされますが、models.json はコメントなしのJSONとして書き換えられます。
Haimaker ConnectでPiを構成し、同じリポジトリタスクでモデルを比較しましょう。
PIをHAIMAKERに接続する手動構成:ピッカーに複数のモデルを保持する
Piを起動するシェルでキーを設定します。
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はプロバイダー認証情報での環境変数補間に対応しています。詳細は モデル構成ガイド を参照してください。大規模なリポジトリコンテキストを送る前に、まず範囲を限定したタスクで試しましょう。
モデルはプロバイダーとモデルIDの両方で指定します。
pi --provider haimaker --model anthropic/claude-sonnet-5-5
Pi内で /model を開くと、構成済みの他のモデルを選択できます。ピッカーは models.json を再読み込みします。カスタム価格メタデータはレートが頻繁に変わるため、この例では省略しています。未構成のセッションコスト表示を実際のコストゼロとは見なさず、プロバイダーの請求額を確認してください。
既存のプロバイダーアカウントを使う場合
組み込みプロバイダーの場合は、/login を実行してPiの認証フローに従い、/model でモデルを選択します。Piの プロバイダーリファレンス にAPIキー変数やプロバイダー固有のオプションがまとめられています。サブスクリプションと従量制APIキーではアクセス権や課金体系が異なる場合があるため、自分のアカウントが実際に対応している接続方法を使ってください。
thinkingレベルの設定とモデルの切り替え
モデルの選択とthinking effortは、別々の変数として管理しましょう。最初の比較では、対応していれば中程度のeffortから始め、より多くの推論が必要なタスクで段階的に上げてください。Piは選択中のモデルが対応するレベルに制限をかけます。effortを選ぶ際はトークン使用量と完了率をセットで比較してください。同じレベル名でもプロバイダーによって解釈が異なります。
Piの CLIリファレンス では、モデルとeffortを明示的に指定できます。
pi --provider haimaker --model openai/gpt-6.1-sol --thinking medium
インタラクティブセッション中は、/thinking でeffortを変更し、/scoped-models で Ctrl+P による切り替え対象のモデルを選択します。最初のサイクルは 2モデル から始めましょう。定型的作業向けの候補と、より高性能な代替モデルの2つです。繰り返し発生する失敗を解決できるモデルが見つかったときだけ、3つ目を追加してください。モデルピッカーから Ctrl+S を押すと、起動時のデフォルトを保存できます。
手動で切り替えることで、どのモデルを使っているかが常に明確になります。Haimakerの haimaker/auto はAPI側でルーティングを行う仕組みです。Pi内でルーティングしたい場合は、拡張機能による 仮想モデルルーティング を使ってください。この拡張機能は別途構成・テストが必要です。models.json に複数のエントリがあると選択可能なモデルが増えますが、リスト自体がモデル間の選択を自動で行うわけではありません。
Piはコーディングモデルと 分類器モデル・画像モデル を分けて管理しています。現在のドキュメントでは、Codemodeが使用する分類器としてDecisions API経由のGPT-6 Lunaが挙げられており、メインの会話ピッカーには含まれていません。コミュニティの推奨を参考にする際は、特に古いPiバージョンに基づく情報である場合、モデルのAPI種別と役割を必ず確認してください。
Piで試す価値のあるローカルモデル
ワークステーションクラスのメモリがあり、ローカル推論をしたい場合は、Qwen3.8 27B・Muse Glimmer 30B・Qwen3 Coder 30B を比較してみてください。スペックが限られたマシンでは Gemma 4 E4B や Qwen3 8B が現実的な選択肢です。ローカルモデルがPiのツールを正しく使えるか、コマンドが失敗した後に復旧できるかを確認しましょう。
PiにはGGUFモデル向けの llama.cppルーター統合 がドキュメント化されています。すでにOllamaを使っている場合は、そのOpenAI互換エンドポイントを別途構成してください。マシンに収まるサイズのモデルをpullし、正確なタグを 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はモデルとthinkingレベルの変更を記録し、再開時に復元します。/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 にある個別のローカルプロバイダーを使用し、正確なローカルモデルタグを指定します。
まずは検証済みのリポジトリタスクを1つ選び、Piのツールとコンテキストを固定したまま2つのモデルを比較してみてください。待ち時間とレビューの手間が少なく、正しく完了できるモデルを採用しましょう。実際に遭遇している失敗に対処する新リリースが出たら、同じ比較を繰り返してください。