AI 開発

AI Coding Agent がソフトウェア開発を変える:Claude Code と GPT Agent は JSON でどうツールを呼び、コードを実行するか

約 15 分

2026 年のソフトウェア開発は、「人が IDE で補完を叩く」姿にだんだん似ていない。Claude Code は端末でリポジトリを読み、ファイルを直し、テストを走らせる。GPT Agent / Codex はセッションでサンドボックスを開き、パッチを書き、結果を返す。製品の殻は違う。骨格は同じだ:モデルは JSON を埋めるだけ、実行するのは宿主。本稿はその呼び出し鎖を開き、日常の開発がどう書き換わるかを書く。

読む前の速覧

概念 一句 落ちる先
Coding Agent リポジトリを読み、ファイルを直し、コマンドを走らせるランタイム Agent loop
Claude Code 端末のローカル Coding Agent tool_use JSON
GPT Agent セッション / サンドボックスでのコーディングとコンピュータ利用 tool_calls / code
JSON 名前・引数・結果の契約 Schema / payload

分担を先に覚える:モデルがオブジェクトを埋め、宿主が実行し、ループがパッチとテストを連続させる。銘柄を換えても、この JSON 呼び出し鎖は変わらない。

Coding Agent は「コードを書くチャット枠」ではない

補完モデルは次の一行を埋める。チャットモデルは関数を説明する。Coding Agent は第三のものだ:モデルをループに入れるランタイム——リポジトリ状態を観察し、次の一手を提案し、外部ツールを呼び、結果を消化し、続けるか、止まるか、人に渡すかを決める。

2026 年に納品できる Coding Agent は、たいてい三点セットだ:

  • モデル:テキストか構造化オブジェクトだけを出す。ディスクには触れない。
  • ツールカタログ:読む、直す、走らせる、探す。時にはブラウザや MCP。
  • 宿主:JSON を解析し、門をかけ、本当に実行し、結果を次のターンへ書き戻す。

まだ Agent、Tool Calling、Function Calling を一つの語に畳んでいるなら、先に AI Agent 完全ガイド を読むこと。本稿が扱うのは一つの製品形だけだ:本物のリポジトリに向かって働く Coding Agent。

変わったのはエディタではなく、ループだ

十年、IDE 補完は打鍵を短くした。二年、チャット窓は欠陥を近くした。Coding Agent が変えるのは第三のこと:最初の実行可能なパッチを誰が書くか。

典型的な一日は、もはや「人が書き終わり、CI が検証する」ではない。より多いのは:

  1. 人が意図を書く:この失敗テストを直す、この API にフィールドを足す。
  2. Agent がループを回す:リポジトリを読み、記号を探し、ファイルを直し、テストを走らせ、軌跡をツール呼び出しとして残す。
  3. 人が diff と軌跡を審る:すべてのキーをゼロから叩かない。型、テスト、権限は残る。

「AI が仕事を代わりにする」話ではない。初稿がループから出るようになった。人が形と副作用の門に立つ。ツールとワークフローを Schema に収める話は JSON Schema と AI Agent ワークフロー。

ループがすることは一つ:JSON を埋め、JSON を読む

製品ページは「自律的にコードを書く」と書く。工学では、1 ターンはたいてい四跳びだ:

  1. 観察:ワークスペース、テスト出力、前回のツール結果がコンテキストに入る。
  2. 提案:モデルはツール名と引数オブジェクトを出す。open() は自分ではしない。
  3. 実行:宿主が検証し、コマンドを走らせ、ファイルを直す。副作用はここで起きる。
  4. 書き戻し:stdout、パッチ、終了コードが次の可視オブジェクトになる。

四跳びから門を一つ欠けば、JSON は命令だ。四つ揃えば、再生できる開発セッションになる。なぜ AI に JSON Schema が要るか はすでに書いた:Schema は口径であり、プロンプトの「JSON を返して」ではない。

Claude Code:端末のツール面

Claude Code は Anthropic のローカル Coding Agent だ。端末で、今のリポジトリに向かって話す。モデル側は Messages API のコンテンツブロック。工学上、毎日見るのは一連の tool_use だ。

既定のツール面は狭い。狭いから審れる:

  • Read / Glob / Grep:先に見て、それから直す。
  • Edit / Write:正確な置換か、ファイル全体の書き込みでリポジトリを変える。
  • Bash:テストを走らせ、依存を入れ、スクリプトを実行する。
  • MCP:外部システムを同じ JSON ツール表に入れる。詳細は MCP Tool Schema vs Function Calling。

モデルが送るのは「このファイルを直して」という散文ではない。検証できるオブジェクトだ:

{
  "type": "tool_use",
  "id": "call_read_1",
  "name": "Read",
  "input": {
    "path": "src/billing/refund.py"
  }
}

宿主が仕事を終えると、戻すのもオブジェクトだ。stdout は長くてよい。入口はなお tool_result であり、チャットの泡ではない:

{
  "type": "tool_result",
  "tool_use_id": "call_bash_4",
  "content": {
    "stdout": "12 passed, 1 failed",
    "exit_code": 1
  }
}

auto-mode と確認門が、「この跳びは人を待つか」を決める。門を切れば、ループは Bash を自分で走り切る——開発が速くなった理由であり、事故半径が広がった理由でもある。安全面は Claude 事件とツール JSON と AI Agent の安全と JSON 検証。

GPT Agent:セッション、サンドボックス、Function Calling

OpenAI 側は名前が多い:ChatGPT Agent、Codex、Responses API、GPT-6 Astra。殻は違う。呼び出し形はなお Function Calling だ。tools[] で宣言し、tool_calls で提案し、arguments に文字列化したオブジェクトを入れる。

コーディング関連の呼び出しは、こう見える:

{
  "tool_calls": [{
    "id": "call_7f2a",
    "type": "function",
    "function": {
      "name": "run_code",
      "arguments": "{\"language\":\"python\",\"code\":\"from pathlib import Path\\nprint(Path('src').exists())\"}"
    }
  }]
}

Claude との差は「コードが書けるか」ではない。ツール面の組み立て方だ:

  • コードインタプリタ / サンドボックス:多段の計算を一度の run_code や python に畳み、往復を減らす。
  • コンピュータ利用:ブラウザとデスクトップ操作は、別の構造化動作になる。
  • Codex / CLI:リポジトリ級の Coding Agent に近い。表は再び、読む・直す・走らせるになる。

GPT-6 Astra ガイド は同じ規律をすでに書いた:「ツールを選ぶ → 呼ぶ → オブジェクトを返す」をより安定して走らせ切る。開発者にとって、パッチとテスト出力は JSON 軌跡から再建できるべきだ。「直しました」という一文では足りない。

コードは本当にどこで走るか。モデルの中ではない

いちばん書き誤りやすい一句だ。大規模モデルは Python を実行せず、プロセスも spawn しない。出すのは:

  • ツール名:Bash、Read、python、apply_patch。
  • 引数オブジェクト:command、path、old_string、code。
  • 時にはパッチ本文:まずフィールドとして現れ、宿主がディスクへ落とす。

本当にコードを走らせるのは宿主だ:ローカルプロセス、コンテナ、あるいはクラウドのサンドボックス。ファイルシステムとネットワーク権限は宿主の方針であり、モデルの重みではない。引き締めたツール Schema はこうなる:

{
  "name": "Bash",
  "description": "Run a shell command in the workspace",
  "inputSchema": {
    "type": "object",
    "properties": {
      "command": { "type": "string" },
      "timeout_ms": { "type": "integer", "maximum": 120000 }
    },
    "required": ["command"],
    "additionalProperties": false
  }
}

additionalProperties: false は潔癖ではない。広い object は、モデルに標的ホストや余分なスクリプトを足させる。秘密、Cookie、内部ベースは宿主に残す。引数オブジェクトへ入れない。

Claude Code と GPT Agent:買っている殻は同じではない

どちらが賢いかではない。ループをどこに掛けるかだ:

次元 Claude Code GPT Agent / Codex
入口 ローカル端末、リポジトリに向かう セッション、サンドボックス、または CLI
呼び出し形 tool_use / tool_result tools[] / tool_calls
既定ツール Read、Edit、Bash、Grep、MCP 関数、コードインタプリタ、コンピュータ利用
実行世界 自分の機械、または掛けるサンドボックス ベンダーのサンドボックス、またはローカル Codex
何を保守するか 権限門、MCP、セッション軌跡 ツール Schema、Responses 軌跡

銘柄を換えても、ループは変わらない。安定させるべきはツール契約と実行世界であり、誰かのチャットの皮ではない。DeepSeek は宿主を取り替え可能なインフラにした。DeepSeek Harness と Coding Agent インフラ を見よ。

開発者が見るべきは軌跡であり、泡ではない

Agent がコードを書いたあと、審る対象は同僚の PR と同じであるべきだ:diff、テスト、権限。増える一層はツール軌跡だ。

  • tool_use / tool_calls を 整形 し、名前と引数が思った跳びかを見る。
  • JSONPath 抽出 で name、command、path を抜く。散文を目で掃かない。
  • 先週通った軌跡と JSON Diff する。ループが漂ったら、モデルを責める前にツール表と引数の形を見る。
  • 失敗テストの stdout は軌跡に入れる。「直した」だけでは記録にならない。
  • 本番の秘密、顧客ダンプ、内部 URL を公開フォーマッタに貼らない。JSONSort はブラウザローカルで動き、アップロードしない。こうしたオブジェクトを見るのに合う。

軌跡が再建できてこそ、セッションは振り返れる。それが Coding Agent をチームの流れに入れる前提であり、飾りではない。

よくある誤解

  • Coding Agent をより賢い補完だと思う。補完は一行を直す。Agent はループを直す。
  • モデルが自分でコードを実行したと思う。実行権は宿主にある。
  • ツール JSON を審らず、最後のファイル diff だけを見る。コマンドはすでに走っているかもしれない。
  • Bash に白紙小切手を渡す。cwd、タイムアウト、ネットワーク門がなければ、ループは本番事故だ。
  • prompt で Schema を代用する。口径は検証できなければならない。
  • セッションをチャットの泡として保存する。tool_result がなければ、再生できる開発記録はない。

FAQ

チームには Claude Code と GPT Agent のどちらが合うか?

実行世界を見る。リポジトリが自分の機械にあり、MCP とローカルテストが要るなら、Claude Code か Codex CLI が近い。セッション内のサンドボックス計算やコンピュータ利用なら、GPT Agent / Responses。先にツール Schema を固め、それから殻を選ぶ。

モデルは、私が認めていないコマンドを隠れて走らせるか?

モデルは提案できるだけだ。走るかどうかは、宿主の確認門、allowlist、ネットワーク隔離による。auto-mode は、ある種の JSON をあらかじめ認めた、という意味だ。

普通の Function Calling と何が違うのか?

形は同じ、半径が違う。サポートの照会はたいてい読み取りだけだ。Coding Agent のツールはディスクを変え、プロセスを走らせる。だから Schema、タイムアウト、監査はより厳しくする。

なぜ prompt ではなく JSON を強調するのか?

副作用はオブジェクトを解析したあとに起きる。prompt はモデルが何を埋めるかに影響する。Schema と宿主が、何を実行してよいかを決める。デバッグでは、形容詞よりオブジェクトの方が高い。

Agent に本番へ直接 push させてよいか?

よくない。枝を切らせ、テストを走らせ、軌跡を残させる。マージと公開は、なお人の戦略門だ。ループは起草し、門が送り出す。

結論

AI Coding Agent がソフトウェア開発を変える仕方は、エディタが次の一行をより上手に当てることではない。「リポジトリを読む → ツール JSON を埋める → 宿主が実行する → 結果を書き戻す」を既定のループにすることだ。Claude Code と GPT Agent は、二つの殻にすぎない。

今日から、どのモデルがより上手にコードを書くかを争うのを減らす。先にツール Schema、実行世界、セッション軌跡をリポジトリへ書く。モデルは代わる。この JSON 呼び出し鎖を先に安定させるべきだ。

関連記事

更新記録: 初回公開