Claude Code・Codexはどう動いている?AIエージェントの仕組みを図解【2026】エージェントループ・ツール・CLAUDE.md/AGENTS.md・権限とサンドボックス・MCP
「バグを直して」と頼むだけで、ファイルを探して読み、コードを書き換え、テストを動かして確認までしてくれる――Claude Code(Anthropic)やCodex(OpenAI)のようなAIエージェントは、中でどう動いているのでしょうか。この記事では、AIエージェントが自分で作業を進められる仕組みを図解します。土台となる生成AI(LLM)の仕組みは生成AIの仕組みで解説しているので、あわせてどうぞ。
- AIエージェントは「LLM(頭脳)+ツール(手足)+ハーネス(体と神経)」の組み合わせ。LLM自体がパソコンを直接操作しているわけではない
- 中心はエージェントループ:LLMが「次にこの道具を使いたい」と申し出る → ハーネスが実行 → 結果をLLMに返す、を完了するまでくり返す
- プロジェクトのルールはCLAUDE.md(Claude Code)/AGENTS.md(Codex)に書いておくと、毎回自動で読み込まれる
- 暴走を防ぐのは承認(許可)とサンドボックス。MCP・サブエージェント・スキル・フックで能力を拡張できる
全体像:AIエージェントは3つの部品でできている
ChatGPTやClaudeのチャットは、質問に文章で答えるのが基本です。一方、Claude CodeやCodexは実際にファイルを書き換えたり、コマンドを実行したりします。この違いは、LLMの周りに次の部品を組み合わせていることから生まれます。
| 部品 | 役割 | たとえ |
|---|---|---|
| LLM(モデル) | 状況を読んで「次に何をするか」を考え、使う道具と内容を決める。Claude CodeならClaude、CodexならOpenAIのGPT系モデル | 頭脳 |
| ツール | ファイルを読む・検索する・編集する・コマンドを実行する・Webを調べる、などの具体的な操作 | 手足と道具箱 |
| ハーネス(実行環境) | LLMの申し出を受けて実際にツールを動かし、結果を返す。権限の確認、会話の記録、ルールファイルの読み込みも担当する。Claude CodeやCodexというアプリ本体がこれ | 体と神経 |
大事なポイントは、LLMは文章(正確には決められた形式のデータ)を出力しているだけだということです。「このファイルを読みたい」という申し出を出すのはLLMですが、実際にファイルを開くのはハーネスです。だからこそ、ハーネス側で「この操作は許可するか」をチェックできるのです。


心臓部:エージェントループ
AIエージェントが自分で作業を進められるのは、エージェントループと呼ばれるくり返しの仕組みがあるからです。
この①〜④を、LLMが「作業が終わった」と判断するまで何回でもくり返します。簡単な修正なら数回、大きな機能の追加なら数十〜数百回まわることもあります。結果を見てから次の一手を決めるので、エラーが出れば原因を調べて直し、テストが失敗すればまた修正する、という人間の開発者に近い進め方ができるのです。
考え方を示した簡単なコードです。実際のClaude CodeやCodexは、ここに権限の確認、画面表示、長い経過の要約などが加わりますが、骨組みはこのとおりです。
# AIエージェントの骨組み:LLMがツールを申し出る → 実行 → 結果を返す、をくり返す
history = [{"role": "user", "content": "テストが落ちている原因を調べて直して"}]
while True:
# ① 状況(ルール・経過・使えるツール一覧)をLLMに渡し、② 次の一手を決めてもらう
reply = call_llm(system=read_rules_file(), messages=history, tools=TOOL_LIST)
history.append(reply)
if reply.is_finished: # 「完了しました」と言ったら終わり
print(reply.text)
break
for request in reply.tool_requests:
# ③ 危ない操作は人に確認してから実行する
if needs_approval(request) and not ask_user(request):
result = "利用者が許可しませんでした"
else:
result = run_tool(request) # 例:ファイルを読む、テストを実行する
# ④ 実行結果を経過に足して、次の周回でLLMに見せる
history.append({"role": "tool", "content": result})この「ツール一覧を渡し、申し出を実行して結果を返す」仕組みは、AnthropicやOpenAIのAPIで誰でも使えます。自分でエージェントを作る方法はClaude APIでAIエージェントを作るで解説しています。
実例:「バグを直して」と頼んだときの中の動き
たとえば「ログイン画面でエラーが出るので直して」と頼んだとき、エージェントループの中では次のようなことが起きています。
| 周回 | LLMの判断 | ハーネスが実行したこと・結果 |
|---|---|---|
| 1 | まずログイン関連のファイルを探そう | 「login」を含むファイルを検索 → 3件見つかる |
| 2 | 一番怪しいファイルの中身を読もう | ファイルを読み込み、中身を返す |
| 3 | エラーを再現するため、テストを動かそう | テストを実行 → 「メールアドレスが空のときに落ちる」エラーが出る |
| 4 | 空のときの確認が抜けている。ここを直そう | 該当の行を書き換える(設定によっては利用者に確認を求める) |
| 5 | 直ったかもう一度テストしよう | テストを実行 → すべて成功 |
| 6 | 完了。何をしたか報告しよう | 「原因と修正内容、テスト結果」を利用者に表示 |
人間は最初の一言を伝えただけですが、エージェントは検索 → 読む → 試す → 直す → 確かめるを自分で回しています。これが、チャットでコードを教えてもらうのとの一番大きな違いです。
エージェントが使う主なツール
Claude CodeやCodexには、開発作業に必要な道具が最初から組み込まれています。名前や細かい機能はツールごとに違いますが、おおむね次のような種類があります。
| ツールの種類 | できること | 危険度の目安 |
|---|---|---|
| ファイルを読む・探す | フォルダの一覧、ファイルの中身、キーワード検索 | 低い(読むだけ) |
| ファイルを編集・作成する | コードの一部書き換え、新しいファイルの作成 | 中(元に戻せるようGitで管理するのが前提) |
| コマンドを実行する(シェル) | テスト・ビルド・パッケージのインストール・Git操作など、パソコンでできることのほぼすべて | 高い(削除や外部への送信もできてしまう) |
| Web検索・取得 | 公式ドキュメントやエラーの解決策を調べる | 中(外部の文章に悪意ある指示が紛れる可能性) |
| 外部サービス連携(MCP) | GitHub・Slack・Google Drive・データベースなどの操作 | 連携先と権限しだい |
特に強力なのがコマンド実行です。これがあるおかげで、テストを動かして結果を確かめたり、必要な部品をインストールしたりと、開発者がターミナルでやる作業をほぼすべて任せられます。その分、次に説明する安全の仕組みが重要になります。
コンテキスト管理とCLAUDE.md・AGENTS.md
エージェントは「作業メモ」を毎回読み直している
LLMは会話ごとに記憶を持たないため、ハーネスは毎周回、指示・読んだファイル・実行結果などの経過をすべてLLMに渡し直しています。長い作業では、この経過がLLMの読める上限(コンテキストウィンドウ)に近づきます。そこでClaude CodeやCodexは、上限が近づくと古い経過を要約して圧縮し、作業を続けられるようにしています。
ルールファイル:プロジェクトの「取扱説明書」
毎回同じ説明をしなくて済むように、プロジェクトのルールを書いたファイルを置いておくと、作業開始時に自動で読み込まれます。
| ツール | ファイル名 | 書いておくとよいこと |
|---|---|---|
| Claude Code | CLAUDE.md | プロジェクトの概要、テストやビルドのコマンド、コードの書き方のルール、やってはいけないこと、公開前のチェック手順 |
| Codex | AGENTS.md |
このサイトのリポジトリにもCLAUDE.mdがあり、「記事を更新したら、公開前にチェック用のプログラムを3つ実行する」「タイトルは32文字以内」といったルールを書いています。エージェントは毎回これを読んでから作業するので、人が毎回注意しなくてもルールが守られるのです。
# このプロジェクトについて
- 社内向けの在庫管理アプリ(Python + FastAPI)
# 作業のルール
- 変更したら必ず `pytest` を実行し、すべて通してから完了を報告する
- 本番のデータベースには接続しない(テスト用のデータを使う)
- APIキーはコードに書かず、環境変数から読む安全の仕組み:承認とサンドボックス
コマンドを実行できるエージェントは便利な反面、間違えれば大事なファイルを消したり、外部に情報を送ったりもできてしまいます。そこでClaude CodeもCodexも、主に2種類の安全装置を持っています。
① 承認(許可):実行の前に人が確認する
ファイルの変更やコマンドの実行の前に、「この操作を実行してよいですか?」と確認を求める仕組みです。毎回確認するか、特定の操作だけ自動で許可するか、読み取りだけに制限するかを設定で選べます。Claude Codeには、変更を加えずに調査と計画だけを行うモード(プランモード)もあり、計画を人が確認してから実行に移れます。
② サンドボックス:動ける範囲を囲う
サンドボックスは「砂場」の意味で、エージェントが操作できる範囲を囲いの中に限定する仕組みです。たとえば「作業中のフォルダの中だけ書き込める」「インターネットには接続できない」といった制限をOSのレベルでかけます。Codexは、読み取り専用・作業フォルダ内のみ書き込み可・制限なし、といった段階でサンドボックスの強さを選べる作りになっており、Claude Codeもサンドボックス機能や許可・拒否のルール設定を備えています。
能力を広げる仕組み:MCP・サブエージェント・スキル・フック
基本のツールに加えて、エージェントの能力や動き方を広げる仕組みがあります。Claude Codeでは次の4つがよく使われ、Codexにも同じ考え方の機能(MCPへの対応など)があります。
| 仕組み | 何をするもの? | 使いどころの例 |
|---|---|---|
| MCP(Model Context Protocol) | 外部サービスとつなぐ共通の規格。対応した「MCPサーバー」を追加すると、そのサービスを操作するツールが増える | GitHubのIssueを読む、Slackに投稿する、データベースを調べる |
| サブエージェント | メインのエージェントが、別の経過(コンテキスト)を持つ子エージェントに仕事を任せる。結果の要約だけを受け取るので、メイン側の経過がふくらまない | 大量のファイルの調査、複数の作業の並行処理、コードレビュー役 |
| スキル | 特定の作業の手順書や台本をまとめたもの。関係する場面で自動的に読み込まれる | 社内の資料作成ルール、定型のデータ分析手順 |
| フック | 「ツールを使う前」「作業が終わったとき」などのタイミングで、決まったプログラムを必ず実行させる | 危険なコマンドを止める、編集後に自動で整形やチェックを行う |
ポイントは、スキルやルールファイルは「LLMへのお願い」、フックは「ハーネスによる強制」だということです。LLMはお願いを見落とすことがありますが、フックはプログラムなので必ず実行されます。絶対に守らせたいことはフックや権限設定で、柔軟に判断してほしいことはルールファイルやスキルで、と使い分けます。MCPサーバーの作り方はMCPサーバー自作入門で解説しています。


どこで動く?ローカルとクラウド
AIエージェントのハーネスは、自分のパソコンで動かすこともクラウドで動かすこともできます。LLM自体はどちらの場合も各社のサーバーで動いており、変わるのは「ツールを実行する場所」です。
| 実行場所 | 主な使い方 | 向いている作業 |
|---|---|---|
| ローカル(自分のPC) | ターミナル(CLI)、VS Codeなどのエディタの拡張機能、デスクトップアプリ | 手元のファイルや設定を使う作業、画面を見ながら一緒に進める作業 |
| クラウド | ブラウザやスマホから依頼すると、各社が用意した使い捨ての作業環境にリポジトリを取り込んで作業する(Claude Code on the web、Codexのクラウド版など) | PCを閉じても進めたい作業、複数の作業の並行実行、GitHubでのPR作成まで任せる作業 |
クラウドで動かす場合は、作業環境がGitHubのリポジトリを取り込んで作業し、結果をプルリクエスト(変更の提案)として返すのが一般的です。人がそれを確認してから取り込むので、安全に任せやすい形です。GitHubとの連携方法はClaude Code×GitHubで詳しく紹介しています。
Claude CodeとCodexの比較
どちらも仕組みの基本(エージェントループ・ツール・承認とサンドボックス)は同じです。違いは、使うモデル、契約の形、ルールファイルの名前、細かな機能の作り込みにあります。
| 項目 | Claude Code | Codex |
|---|---|---|
| 提供元 | Anthropic | OpenAI |
| 使うモデル | Claudeのモデル | OpenAIのGPT系モデル(コーディング向けに調整されたものを含む) |
| 主な使い方 | ターミナル、エディタ拡張、デスクトップアプリ、Web(クラウド実行) | ターミナル(CLI)、エディタ拡張、ChatGPTから使うクラウド版 |
| ルールファイル | CLAUDE.md | AGENTS.md |
| 安全の仕組み | 許可・拒否のルール設定、プランモード、サンドボックス、フック | 承認の段階設定、サンドボックスの段階設定 |
| 拡張 | MCP、サブエージェント、スキル、フック、プラグイン | MCPなど |
| 使える契約 | Claudeの有料プラン、またはAPIの従量課金 | ChatGPTの有料プラン、またはAPIの従量課金 |
当サイトの運用では、Claude Codeで実装し、Codexにレビュー(チェック)させるといった組み合わせ方もしています。違うモデルに見てもらうと、片方だけでは気づかない見落としが見つかることがあります。モデルそのものの特徴はChatGPT・Claude・Geminiのモデル比較をご覧ください。
仕組みから分かる限界と上手な使い方
| 仕組みから来る弱点 | 対策・上手な使い方 |
|---|---|
| 頭脳はLLMなので、もっともらしい間違いをすることがある | 「テストを実行して確かめてから完了報告して」と指示し、結果で確認できる形にする |
| 経過が長くなると圧縮され、細かな指示が抜けることがある | 大事なルールは会話ではなくCLAUDE.md・AGENTS.mdに書く。大きな作業は小分けにする |
| 知らないプロジェクトの事情(なぜその作りなのか)は分からない | 目的・背景・やってはいけないことを最初に伝える。プランモードなどで計画を先に確認する |
| コマンド実行で何でもできてしまう | Gitで変更を管理し、承認やサンドボックスを使う。本番環境や認証情報には触らせない |
| 外部の文章に紛れた命令にだまされる可能性 | 信頼できない情報源を読ませる作業では、権限を読み取り中心に絞る |
プログラミングの経験がなくても、仕組みを理解して「確かめられる形で頼む」「ルールはファイルに書く」「権限は小さく渡す」の3つを守れば、AIエージェントはぐっと頼れる相棒になります。実際に作ってみたい方はAIエージェントで開発してみようロードマップから始めてみてください。
よくある質問
Claude CodeとCodexはどちらを使えばいい?
基本の仕組み(LLMがツールを使いながら作業をくり返す)は同じです。普段使っているAIの契約(ClaudeかChatGPTか)、使いたいモデル、チームの開発環境で選ぶのが現実的です。両方を使い、片方で実装してもう片方にレビューさせる使い分けも有効です。機能や料金は頻繁に変わるため、最新情報は各公式サイトで確認してください。
プログラミングを知らなくても使える?
日本語で指示すれば作業は進めてくれるため、簡単なWebページや作業の自動化なら非エンジニアでも作れます。ただし、AIが実行しようとしているコマンドや変更の意味が分からないまま承認し続けるのは危険です。最初は読み取りや提案だけを任せ、ファイルやGitの基本を少しずつ覚えながら使うのがおすすめです。
AIエージェントにパソコンを操作させて安全なの?
Claude CodeもCodexも、ファイルの変更やコマンド実行の前に確認を求めたり、作業できる範囲をサンドボックスで制限したりする安全の仕組みを持っています。そのうえで、重要なデータのバックアップ、Gitでの変更管理、パスワードやAPIキーを渡さない、本番環境への書き込み権限を与えないといった使う側の対策を組み合わせることが大切です。
まとめ|「考える頭脳」と「動く体」をループでつないだのがAIエージェント
Claude CodeやCodexは、LLM(頭脳)がツールの使用を申し出て、ハーネスが実行し、結果を返すというエージェントループを完了までくり返すことで、自分で作業を進めています。プロジェクトのルールはCLAUDE.md/AGENTS.mdに書き、承認とサンドボックスで安全を確保し、MCP・サブエージェント・スキル・フックで能力を広げる――これが2026年のAIエージェントの基本構造です。
頭脳であるLLMそのものの仕組みは生成AIの仕組み、AIエージェントの歴史や業務での使いどころはAIエージェントとは?歴史と仕組みで解説しています。
AIエージェントを使いこなす次の一歩
AIエージェントに仕事を任せられる人は、これからますます重宝されます。基礎から体系的に学びたい方に役立つ記事です。
- AIエージェント時代のIT基礎ロードマップ【2026】:Web〜クラウドまで全7章
- AIエージェントで開発してみようロードマップ:初級〜高度まで
- IT業界地図2026(姉妹サイト・転職業界研究所):AIを扱う仕事の全体像と、未経験からの入り方