0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Claude Codeはなぜ"自律的に動く"のか ── エージェントループを図解して理解する

0
Last updated at Posted at 2026-03-17

はじめに

「AIにお願いしたら、勝手にファイルを読んで、テストを実行して、バグまで直してくれた」

Claude Codeを使い始めると、こんな体験をすることがあります。「賢いAI」で片付けてしまいがちですが、内側では明確な仕組みが動いています。

この記事では、Claude Codeの核心にあるエージェントループという仕組みを、図を使って丁寧に解説します。仕組みがわかると、「なぜこういう使い方が効果的なのか」が腑に落ちます。


1. チャットとエージェントは何が違うのか

まず、普通のチャットとの違いから整理します。

普通のLLMチャット

GPT-4やClaudeのWebチャットを使うとき、やり取りの単位は「1往復」です。

ユーザー:「〇〇のコードを書いて」
AI:「はい、こちらです。(コード)」

AIはテキストを受け取り、テキストを返す。それだけです。ファイルを自動で書き換えたり、コマンドを実行したりはしません。

エージェント

Claude Codeは違います。1回の指示で、次のようなことが起きます。

  1. 「このバグを直して」と頼む
  2. Claude Codeがソースコードを読む
  3. 問題箇所を特定する
  4. テストコードを確認する
  5. コードを修正する
  6. テストを実行して確認する
  7. 「直しました」と報告する

これは1往復ではありません。複数のステップが連鎖して、タスクが完了するまでループするのです。これが「エージェント」の本質です。

image.png


2. エージェントループの構造

では、ループの内側はどうなっているのでしょうか。

image.png

ポイントは 「終了条件」 です。Claudeが「ツール呼び出しを含まないテキスト応答」を出力した瞬間、ループは自然に終了します。言い換えると、「まだやることがある」と判断している間は、Claudeが自分でループを回し続けます。

ループの中で何が積み上がるのか

ループが回るたびに、 会話履歴(コンテキスト) にログが積み上がっていきます。

[ユーザーの指示]
[Claude: ファイルを読む、とツール呼び出し]
[ツール結果: ファイルの中身]
[Claude: テストを実行する、とツール呼び出し]
[ツール結果: テスト結果]
[Claude: コードを修正する、とツール呼び出し]
...
[Claude: 完了しました、とテキスト応答] ← ここでループ終了

Claudeはこの積み上がった履歴を見ながら「次に何をすべきか」を判断しています。チャットと同じ言語モデルなのに自律的に見えるのは、ループとツールとコンテキストの3点セットがあるからです。


3. ツールがエージェントを「エージェント」たらしめる

ループの仕組みだけでは、まだテキストを生成しているだけです。エージェントを強力にしているのは、 ツール(Tools) です。

Claude Codeには、主に次の4種類のビルトインツールがあります。

ツール できること
ファイル読み書き コードの読み込み、ファイルの作成・編集
コマンド実行 テストの実行、ビルド、lintなど
コード検索 プロジェクト内の関数・変数の検索
Git操作 diff確認、コミット、ブランチ操作

ツールはLLMが「呼び出す」ものです。Claudeはテキストとして「このファイルを読みたい」という意思を示し、ランタイムが実際の処理を行い、結果をClaudeに返します。

重要なのは、ツールの結果もコンテキストに追加されるという点です。「ファイルの中身」「テスト結果」「エラーメッセージ」がすべて記憶として積み上がり、次の判断材料になります。


4. コンテキストウィンドウという「記憶の制約」

しかし、ここに限界があります。

LLMが一度に参照できるテキスト量には上限があります。これをコンテキストウィンドウと呼びます。ループを回すほど、会話履歴が積み上がり、コンテキストが圧迫されていきます。

Claude Codeはこれに対応するため、 自動圧縮(Summarization) を行います。コンテキスト使用率が一定を超えると、古い会話履歴を要約して圧縮し、スペースを確保します。

[コンテキスト使用率が高まる]
         ↓
[古い会話履歴を自動要約]
         ↓
[圧縮された要約 + 最新の会話でループ継続]

これが「長い作業をClaudeに任せると、途中から精度が落ちる」という現象の構造的な理由です。圧縮によって細かい文脈が失われることがあるのです。

実務的な対策

  • 1つのタスクを大きくしすぎない(ループを長引かせない)
  • CLAUDE.md に重要なルールを書く(毎回読み込まれる「常に残る記憶」として機能する)
  • Plan Mode で作業計画を確認してから実行する

5. 仕組みを知ると、使い方が変わる

エージェントループを理解すると、次のことが自然に理解できます。

なぜ曖昧な指示はうまくいかないのか
Claudeは「次に何をすべきか」を自分で判断します。判断材料が曖昧なままだと、意図とは異なる方向にループが進んでしまいます。

なぜ CLAUDE.md が効くのか
ループが始まるたびにシステムプロンプトとして読み込まれるため、「チームのルール」を毎回明示できます。コーディング規約、禁止操作、プロジェクトの概要などを書いておくと、ループ全体の方向性を制御できます。

なぜ権限管理が重要なのか
エージェントはツールを自律的に呼び出します。許可する操作の範囲(ファイルの読み取りのみ可、コマンド実行は確認必要、など)を設計することが、実務での安全な利用につながります。


おわりに

Claude Codeの「自律性」の正体は、特別な魔法ではありません。

  • ループ:タスクが終わるまで繰り返す仕組み
  • ツール:テキストの外側の世界(ファイル・コマンド・コード)に触れる能力
  • コンテキスト:ループの中で積み上がる「記憶」

この3つが組み合わさることで、「チャットボット」が「エージェント」になります。

この構造は Claude Code 固有のものではありません。LangChain、AutoGen、OpenAI Agents SDK など、現在普及しているエージェント系フレームワークはいずれも同じループの考え方を基盤としています。「ループ・ツール・コンテキスト」という3つの概念を押さえておくと、新しいAIツールに触れたときも、すぐに内側の仕組みを想像できるようになります。


参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?