AIコーディングエージェント比較【2026年9月】運用軸で選ぶClaude Code・Codex・OpenCode
朝の cron が止まっていました。原因を調べると、モデルの指定が新バージョンへ解決される alias のままで、job が想定しないモデルで動いて失敗していたのです。人が見ている時間の対話と、誰も見ていない時間の自動実行では、ツールに求める条件が変わります。
ターミナルで動くコーディングエージェントの候補は 3 つに絞れます。Claude Code、OpenAI Codex、OpenCode。この記事では 2026 年 9 月時点の情報で、精度・コスト・モデル固定・無人実行の権限・失敗からの復旧という 5 つの運用軸で比較し直しました。エディタ統合が主戦場なら Cursor のような候補もありますが、ここではターミナルと定期実行を前提に絞った 3 つを比べます。
3つのエージェントの概要
| ツール | 開発元 | 無人実行の入口 | モデルの選び方 |
|---|---|---|---|
| Claude Code | Anthropic | claude -p | Claude 系モデルに最適化 |
| Codex | OpenAI | codex exec | OpenAI 系モデルに最適化 |
| OpenCode | Anomaly | opencode run | 任意のプロバイダに接続可能 |
どれも対話と非対話の両方で動きます。違いが出るのは、人がいない時間にどこまで制御できるかです。
精度:ベンチマークは「モデル×ハーネス」の組で読む
コード生成の精度を測る指標として、実在の GitHub Issue を解く SWE-bench Verified がよく使われます。
以前この記事では 72.7% と 69.1% という数字を並べていましたが、これは 2025 年のモデル世代の値で、今のモデルでは参考になりません。ベンチマークの数値はモデルが変わるたびに古くなるので、単独の数字でツールを選ぶべきではないというのが最初の結論です。
2026 年 9 月時点で確認できる公開リーダーボードとして、Red Hat の coding_agent_bench(SWE-bench Verified、pass@1、500 問)を引きます。
| モデル | エージェント | スコア | 500 問あたりの費用 |
|---|---|---|---|
| Opus 4.8 | Claude Code | 86.8% | $395 |
| Opus 4.8 | OpenCode | 83.4% | $320 |
| GPT 5.5 | Codex | 79.8% | $443 |
| Sonnet 4.6 | Claude Code | 79.6% | N/A |
注目したいのは、同じ Opus 4.8 でもハーネスが違うと 86.8% と 83.4% に分かれる点です。精度はモデル単体ではなく、ツール側のコンテキスト管理や再試行の作り込みでも変わります。
ベンチマークの題材は公開リポジトリの Issue なので、自分のコードベースでの手応えとは別物です。あくまで「この組合せが今どの辺りにいるか」の目安として読んでください。
コスト:定額と従量のどちらで回すか
料金体系は頻繁に変わります。2026 年 8〜9 月時点で確認した構造だけ押さえ、細かい金額は公式の価格ページで確認してください。
- Claude Code。Pro($20/月)または Max($100/月・$200/月)のプランに含まれる。API キーを使えばトークン従量課金にもできる。
- Codex。ChatGPT のプランに同梱される(Plus $20/月、Pro $100/月・$200/月など)。API キーでの従量課金も選べる。
- OpenCode。ツール自体は無料で、接続するモデル側の課金だけがかかる。
構造上の違いは「定額の枠を人と共有するか、従量で積み上げるか」です。定額プランは 5 時間窓や週単位の上限を対話の利用と共有するため、夜中の長い job が日中の作業枠を食いつぶす事故が起きます。無人実行が増えたら、その job だけ従量課金に切り分けて支出上限を別途設けるほうが、止まり方を制御しやすいです。
モデル固定:alias は黙って浮く
定期実行で一番厄介なのがモデルのドリフトです。バージョン名ではなく alias で指定していると、提供側の推奨が変わった瞬間に job の挙動も変わります。
- Claude Code。
sonnetやopusは alias で、時間とともに新しいバージョンへ解決されます。固定するにはclaude-opus-4-8のようなフル名を--modelフラグ、環境変数ANTHROPIC_MODEL、または settings.json のmodelに書きます。組織で選べるモデルを絞るavailableModelsという仕組みもあります。 - Codex。
config.tomlのmodelにモデル名を書きます。--profileで設定ファイルを切り替えられるので、job ごとに別プロファイルを当てる運用が作りやすいです。 - OpenCode。
-m provider/model、または opencode.json のmodelでプロバイダごと固定できます。モデルの切り替え自体を日常の運用にするなら、この自由度が最大の利点です。
逆に言えば、pin していない job は「静かに変わる」前提で設計します。job 単位の pin と全体のデフォルト値を分ける手順は、cron でモデルを固定する記事にまとめています。
無人実行の権限:聞けない相手に聞かせない
対話中なら承認プロンプトに答えられますが、午前 3 時に答える人はいません。無人実行では「広く許可する」か「許可せず止まる」かのどちらかに寄せる必要があり、3 ツールとも非対話の入口と制限の仕組みを持ちます。
- Claude Code。
claude -pで非対話実行します。--permission-modeや設定ファイルのpermissionsで、自動承認する操作をコマンド単位で絞れます。 - Codex。
codex execが非対話実行の入口です。approval_policy = "never"で承認待ちをなくし、sandbox_modeや権限プロファイル(:read-only、:workspaceなど)で書き込み範囲を制限します。以前あったuntrustedポリシーは廃止済みで、on-failureも非推奨です。 - OpenCode。
opencode runに--autoを付けると、明示的に禁止していない操作を自動承認します。permission設定で allow / ask / deny をツールやパターン単位で書け、deny は auto モードでも必ず守られます。
考え方はどのツールでも同じで、deny で制限を積み、必要な分だけ allow を足す設計が基本です。書き込み範囲・ネットワーク・Git 操作を製品別に比較した詳細は、無人エージェントの権限設計を参照してください。
失敗からの復旧:止まった後に何が残るか
無人実行は必ず止まります。問いは「止まらないか」ではなく、「止まったときに会話と変更がどこまで残るか」です。
- Claude Code。
--continueで直近のセッション、--resumeで過去のセッションを引き継げます。編集をメッセージ単位で巻き戻すチェックポイントもあります。 - Codex。
codex exec resume --lastで直近の非対話ジョブを同じディレクトリから再開できます。mcp_servers.<id>.required = trueにすると、依存する MCP サーバーの初期化に失敗した時点で job 自体を落とせます。半端な状態で走り続けるより安全です。 - OpenCode。
-cで直近のセッション、-sでセッション ID を指定して再開できます。--forkを付けると元の会話を残したまま枝分かれできます。
ツールが用意するのは再開の入口までです。止まったことに気付く仕組み、終了コードの記録、出力ログの保管は自分で作る必要があります。
あわせて読みたい
この記事の各軸は、別記事で個別に掘り下げています。
- 無人で動かすAIコーディングエージェントの権限設計。書き込み範囲・ネットワーク・承認・Git 操作を製品別に整理しています。
- Hermes Agentのモデル選び。高性能モデルを常用せず、仕事ごとの精度と失敗時の逃げ道を決める考え方です。
- Hermes Agentのcronでモデルを固定する。job 個別の pin と全体デフォルトを分ける具体的な手順です。
用途別の選び方
- 複雑なマルチファイル修正を対話中心で回す → Claude Code。現世代のベンチマークでもトップの組です。
- ChatGPT 契約を活かして非対話ジョブを回す → Codex。
codex execとプロファイル分割が定期実行に向きます。 - モデルやプロバイダを固定されたくない → OpenCode。フロントを統一したまま裏のモデルを替えられます。
- エディタ統合が主戦場 → Cursor 系の選択肢を別途検討してください(本記事の範囲外)。
どれもターミナルから動き、同じような役割を担います。差が出るのは人がいない時間の挙動なので、選ぶ軸はベンチマークより運用です。
今週やる一手
比較記事を読み終えて「全部試す」は、だいたい何も決まらない終わり方です。今週やることは 1 つだけに絞ってください。
すでに cron や定期実行で回している job を 1 本選び、その job だけモデルをフル名で pin します。
- Claude Code なら、job の環境に
ANTHROPIC_MODEL=claude-opus-4-8のようにバージョン名を書く。 - Codex なら、job 用プロファイルの
config.tomlにmodelを指定する。 - OpenCode なら、
opencode runの-m provider/modelを job に直接書く。
あわせて、止まったときの再開コマンド(claude --continue、codex exec resume --last、opencode run -c)をスクリプトのコメントに 1 行残しておきます。固定と復旧の 2 点だけでも、夜中の失敗を調べる時間は大きく変わります。
各ツールの設定項目は更新が早いので、細部は公式ドキュメントで確認してください。
