カテゴリー / 使い方の基本

Claude Codeの仕組み|agenticループとツール・文脈の全体像

この記事の目次

Claude Codeの仕組みを一言で言うと、Claudeモデルが「文脈を集める、行動する、結果を検証する」の3段階を、依頼に応じて組み合わせて進める構造です。バグ修正のような作業では、この処理の流れをタスクが終わるまで繰り返します。モデルが考え、Claude Codeが用意したツールが実際にファイルを読み書きしたりコマンドを実行したりし、その実行結果がまたモデルに戻って次の一手が決まります。公式ドキュメントは、モデルの周りでツールを提供し、モデルが見る文脈を管理するこの層を「agentic harness」と呼んでいます。

この記事では、その骨格に加えて、コンテキストがいっぱいになると何が起きるか、セッションはどこに保存されるか、巻き戻しで戻せるもの・戻せないものは何か、という境界まで整理します。Claude Codeが何に使う道具なのかを先に知りたい場合はClaude Codeとはを、具体的な作業手順を知りたい場合は使い方ガイドを参照してください。

Claude Codeの仕組みの中心にある「agenticループ」とは何か?

公式の説明では、タスクを渡されたClaudeは gather context(文脈を集める)、take action(行動する)、verify results(結果を検証する) の3段階で作業します。ただしこの3つはきれいに区切られた工程ではなく、混ざり合いながら進みます。ファイルを検索して理解するのも、編集するのも、テストで確かめるのも、すべてツールを通じて行われます。

Claude Codeのループの回り方は依頼によって変わります。

  • コードベースについての質問なら、文脈を集めるだけで終わることがある
  • バグ修正なら、3段階を何度も繰り返す
  • リファクタリングなら、検証に多くの手数を使うことがある

Claudeは直前の手順で分かったことをもとに次の行動を順に決め、数十の行動をつなげながら途中で軌道修正します。「自律的に動く」と言われる理由はこの連鎖にあります。

ユーザーもこのループの一部で、作業の途中でいつでも割り込めます。

  • Esc を押すと、実行中のツール呼び出しが取り消され、Claudeは次の指示を待つ
  • 止めずに訂正を入力して Enter を押すと、メッセージはキューに入り、実行中のツール呼び出しが終わった時点で同じターンの中で読まれる

ループを動かす「モデル」と「ツール」はどう役割を分けているか?

Claude Codeのagenticループは、推論するモデルと、行動するツールの2つで動いています。

モデルは推論する側です。公式は、Sonnetは大半のコーディング作業をうまくこなし、Opusは複雑な設計判断でより強い推論を出す、と説明しています。切り替えはセッション中なら /model、起動時なら次のように指定します。

claude --model <name>

モデルごとの違いはモデルの違いを解説した記事にまとめています。

ツールは、モデルを「文章を返すだけの存在」から「実際に作業する存在」に変える部分です。公式は、ツールが無ければClaudeはテキストで答えることしかできない、と書いています。内蔵ツールはおおむね次の5分類です。

分類 公式が挙げているできること
ファイル操作 ファイルを読む、コードを編集する、新規作成する、リネームや整理
検索 パターンでファイルを探す、正規表現で中身を検索する、コードベースを探索する
実行 シェルコマンド、サーバー起動、テスト実行、git
Web Web検索、ドキュメントの取得、エラーメッセージの調査
コードインテリジェンス 編集後の型エラーや警告の確認、定義へのジャンプ、参照の検索(コードインテリジェンス用プラグインが必要)

Claude Codeにはこのほか、サブエージェントを起動するツールや、ユーザーに質問するツールなど、作業の段取りに使うツールもあります。

公式は「失敗しているテストを直して」と頼まれた場合の流れを例に出しています。

  1. テストを実行して、何が失敗しているかを見る
  2. エラー出力を読む
  3. 関係するソースファイルを検索する
  4. そのファイルを読んでコードを理解する
  5. ファイルを編集して直す
  6. もう一度テストを実行して確かめる

どのツールをどの順で使うかは事前に決まっておらず、各ツールの結果を見てその都度選ばれます。

Claude Codeはどこまで見えていて、何にアクセスできるのか?

ターミナルで claude を起動すると、Claude Codeは次のものにアクセスできるようになります。

  • プロジェクト: 起動したディレクトリとその配下のファイル。許可すれば他の場所のファイルも
  • ターミナル: ビルドツール、git、パッケージマネージャーなど、ユーザーがコマンドラインで実行できるもの
  • gitの状態: 現在のブランチ、未コミットの変更、最近のコミット履歴
  • CLAUDE.md: 毎セッション知っておくべきプロジェクト固有の指示や規約を書くMarkdownファイル。リポジトリにAGENTS.mdがあれば、CLAUDE.mdの代わりにそれを読むこともできる
  • auto memory: 作業中にClaudeが自動で保存する学び。MEMORY.mdの先頭200行または25KBの、早く達したほうまでが各セッションの開始時に読み込まれる
  • 設定した拡張: MCPサーバー、Skills、サブエージェントなど

プロジェクト全体が見えているので、複数ファイルを読んでまとめて編集し、テストで確かめる横断的な作業ができます。公式はこれを、今開いているファイルしか見ないインライン型のコード補完との違いとして説明しています。

なお、このループとツールの構成は、ターミナル、デスクトップアプリ、IDE拡張、claude.ai/code など、どの入口から使っても同じです。

長い作業でコンテキストがいっぱいになると何が起きるか?

コンテキストウィンドウには、会話履歴、読んだファイルの中身、コマンドの出力、CLAUDE.md、auto memory、読み込まれたSkill、システムの指示が入ります。作業が進むほど埋まっていきます。

上限に近づくと、Claude Codeはまず古いツール出力を消し、それでも足りなければ会話を要約します(自動圧縮)。

このとき、ユーザーの依頼と重要なコード片は残りますが、会話の序盤に出した細かい指示は失われることがあります。「最初に伝えたルールを途中から守らなくなった」と感じたら、これが原因の候補です。公式の対処は、守らせ続けたいルールを会話ではなくCLAUDE.mdに書くことです。CLAUDE.mdはセッション開始時に全文が読み込まれ、毎回のリクエストに含まれます。

圧縮で何を残すかは、CLAUDE.mdに「Compact Instructions」という節を書くか、焦点を付けて手動で圧縮することで調整できます。

/compact focus on the API changes

何が容量を使っているかは /context で確認できます。MCPのツール定義は既定で遅延ロードされてtool search経由で必要に応じて読み込まれ、Skillの本体は使うときに読み込まれます。また、サブエージェントは別のコンテキストで動いて要約だけを返すなど、容量を節約する作りになっています(後半の表を参照)。

もし1つのファイルやツール出力が大きすぎて、要約してもすぐ満杯に戻る場合、Claude Codeは数回試したあと自動圧縮をやめてエラーを表示します。要約を延々と繰り返すことはありません。コンテキストの詳しい扱いはコンテキストウィンドウの記事、CLAUDE.mdの書き方はCLAUDE.mdの書き方ガイドで扱っています。

セッションはどこに保存され、どう続きから再開するのか?

Claude Codeは作業中のセッション履歴をローカルに保存します。メッセージ、ツールの使用、その結果はすべて ~/.claude/projects/ 配下のプレーンテキストのJSONLファイルに書き込まれ、これが巻き戻し・再開・分岐の土台になっています。

一方で、セッション同士は独立しています。新しいセッションは新しいコンテキストウィンドウで始まり、前のセッションの会話履歴は持ち越しません。セッションをまたいで残したいことは、auto memoryかCLAUDE.mdに置く設計です。

続きから作業する方法は2種類あり、セッションIDの扱いが違います。

操作 コマンド セッションID
再開 claude --continue / claude --resume 同じIDのまま、既存の会話に追記
分岐(フォーク) --fork-session / /branch 履歴を新しいIDにコピーし、元は変更しない

セッションは起動したディレクトリに紐づいていて、/resume の一覧は既定で現在のworktreeのセッションを表示します。ブランチを切り替えると、Claudeが見るファイルは新しいブランチのものになりますが、会話履歴はそのまま残ります。ディレクトリ単位で分かれるので、git worktreeでブランチごとにディレクトリを分ければ、並行してセッションを走らせられます。具体的な手順はworktreeでの並行作業の記事を参照してください。

自律的な操作を制御する仕組みは何か?(チェックポイントと権限)

Claude Codeの安全の仕組みについて公式は、ファイルの変更を元に戻せるチェックポイントと、確認なしに何をしてよいかを決める権限の2つを挙げています。守備範囲が違うので、組み合わせて考えます。

チェックポイントで戻せるもの・戻せないもの

Claudeはファイルを編集する前に、その時点の内容をスナップショットとして残します。チェックポイントはターンを始めるプロンプトごとに作られ、1セッションで直近100個分のスナップショットが保持されます。戻したいときは /rewind を実行するか、入力欄が空の状態で Esc を2回押すと巻き戻しメニューが開きます。チェックポイントはgitとは別の仕組みで、会話を再開したあとも使えます。

ただし、戻せる範囲には明確な境界があります。

  • 追跡されるのは、Claudeのファイル編集ツールで直接加えた変更だけ。Bashコマンド(rm、mv、cp など)で変わったファイルは巻き戻せない
  • データベース、API、デプロイなど、外部のシステムに影響する操作はチェックポイントの対象外

巻き戻しメニューの各項目や使い分けは巻き戻し(rewind)の記事で扱っています。

戻せない操作は権限で止める

チェックポイントで戻せない操作は、権限モードと権限ルールで制御する、というのが公式の整理です。権限モードは Shift+Tab で切り替えます。

モード 動き方
Auto 分類器がバックグラウンドで大半の操作を審査し、危険なものは確認を求める代わりにブロックする
Manual ファイル編集とシェルコマンドの前に確認する
Accept edits ファイル編集と mkdir・mv などの一般的なファイル操作は確認なしで行い、それ以外のコマンドは確認する
Plan 探索して計画を提案するが、ソースファイルは編集しない

Autoは、Claude Code v2.1.283以降では対話型のターミナルとVS Codeのセッションで最初に選ばれるモードで、それより前のバージョンではPro、Max、Teamプランでだけ最初に選ばれるモードです。特定のコマンドを毎回確認させたくない場合は、.claude/settings.json で許可しておけます。公式は npm test や git status のような信頼できるコマンドを例に挙げています。各モードの選び方は権限モードの記事にまとめています。

MCP・Hooks・Skills・サブエージェントは仕組みのどこに載るのか?

内蔵ツールが土台で、拡張機能はその上に載る層だと公式は説明しています。ループそのものを置き換えるものではありません。違いは「何を足すか」と「文脈にどう載るか」です。

拡張 何を足すか 文脈への載り方
Skills 手順や知識、繰り返す作業のやり方 開始時は説明文、使うときに本体
MCP 外部サービスへの接続 ツール定義は既定で遅延ロード(tool search経由で必要に応じて読み込み)
Hooks イベントで起動するスクリプトなど イベント発生時。会話の外で動く
サブエージェント 別のコンテキストで動く作業者 自分のコンテキストで動き、結果は要約で返る

CLAUDE.mdは毎回読まれるぶん容量を使うため、公式は200行未満に抑え、参考資料は必要なときに読み込まれるSkillへ移すよう勧めています。

それぞれの設定方法はMCP、Hooks、Skills、サブエージェントの各記事で扱っています。

仕組みを踏まえると、うまくいかないときはどこを見ればよいか?

ここまでの構造から、よくある詰まりの原因はある程度切り分けられます。

  • 途中から最初の指示を守らなくなった: 自動圧縮で序盤の指示が落ちた可能性がある。/context で使用状況を見て、守らせたいルールはCLAUDE.mdへ移す
  • 巻き戻したのにファイルが戻らない: その変更がBashコマンド経由だった可能性がある。チェックポイントでは戻せないため、Gitに記録済みの内容など戻せる記録があればそこから戻す
  • 前日の話を覚えていない: 新しいセッションは前の会話を持たない。claude --continue か claude --resume で元のセッションを開く
  • 確認が多すぎる、または少なすぎる: 権限モードを Shift+Tab で見直すか、.claude/settings.json で特定コマンドを許可する
  • インストールや設定自体がおかしい: /doctor でセットアップを診断する

まだCLAUDE.mdが無いなら、/init でプロジェクト用のひな形を作れます。ここまでで扱った挙動は、2026年10月18日に取得した公式ドキュメント3ページの記述に基づいています。権限モードの既定やバージョン条件のように更新されやすい箇所は、使っているバージョンの公式ドキュメントと照らし合わせてください。エラーが出たときの具体的な対処はエラー・トラブルシューティングの記事にまとめています。

仕組みを理解したうえで実際に手を動かしながら学びたい場合は、月額1,980円から参加できる学習コミュニティ「AI駆動ラボ」(lab.no-wave.jp)でカリキュラムを自分のペースで進められます。