AIコーディングエージェント比較【2026年9月】運用軸で選ぶClaude Code・Codex・OpenCode

朝の cron が止まっていました。原因を調べると、モデルの指定が新バージョンへ解決される alias のままで、job が想定しないモデルで動いて失敗していたのです。人が見ている時間の対話と、誰も見ていない時間の自動実行では、ツールに求める条件が変わります。

ターミナルで動くコーディングエージェントの候補は 3 つに絞れます。Claude Code、OpenAI Codex、OpenCode。この記事では 2026 年 9 月時点の情報で、精度・コスト・モデル固定・無人実行の権限・失敗からの復旧という 5 つの運用軸で比較し直しました。エディタ統合が主戦場なら Cursor のような候補もありますが、ここではターミナルと定期実行を前提に絞った 3 つを比べます。

3つのエージェントの概要

ツール開発元無人実行の入口モデルの選び方
Claude CodeAnthropicclaude -pClaude 系モデルに最適化
CodexOpenAIcodex execOpenAI 系モデルに最適化
OpenCodeAnomalyopencode 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.8Claude Code86.8%$395
Opus 4.8OpenCode83.4%$320
GPT 5.5Codex79.8%$443
Sonnet 4.6Claude Code79.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 を付けると元の会話を残したまま枝分かれできます。

ツールが用意するのは再開の入口までです。止まったことに気付く仕組み、終了コードの記録、出力ログの保管は自分で作る必要があります。

あわせて読みたい

この記事の各軸は、別記事で個別に掘り下げています。

用途別の選び方

  • 複雑なマルチファイル修正を対話中心で回す → 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 点だけでも、夜中の失敗を調べる時間は大きく変わります。

各ツールの設定項目は更新が早いので、細部は公式ドキュメントで確認してください。

この記事をシェア