Claude Code の仕組み
agentic ループ、組み込みツール、Claude Code がプロジェクトとどのように相互作用するかを理解します。
Claude Code はターミナルで実行される agentic アシスタントです。コーディングに優れていますが、コマンドラインからできることなら何でも支援できます。ドキュメント作成、ビルド実行、ファイル検索、トピック調査など、様々なタスクに対応します。
このガイドでは、コアアーキテクチャ、組み込み機能、および Claude Code を効果的に使用するためのヒント について説明します。ステップバイステップのウォークスルーについては、一般的なワークフロー を参照してください。スキル、MCP、フックなどの拡張機能については、Claude Code を拡張する を参照してください。
agentic ループ
Claude にタスクを与えると、3 つのフェーズを通じて作業します。コンテキストの収集、アクションの実行、結果の検証 です。これらのフェーズは相互に融合します。Claude はツールを使用して、コードを理解するためのファイル検索、変更を加えるための編集、作業を確認するためのテスト実行など、様々な場面で活用します。
ループは、あなたが何を求めるかに応じて適応します。コードベースに関する質問は、コンテキスト収集だけで済むかもしれません。バグ修正は 3 つのフェーズすべてを繰り返し循環します。リファクタリングは広範な検証を伴うかもしれません。Claude は前のステップから学んだことに基づいて各ステップが何を必要とするかを判断し、数十のアクションを連鎖させ、途中で軌道修正します。
あなたもこのループの一部です。任意の時点で中断して Claude を別の方向に導いたり、追加のコンテキストを提供したり、別のアプローチを試すよう求めたりできます。Claude は自律的に動作しますが、あなたの入力に対して応答性を保ちます。
agentic ループは 2 つのコンポーネントによって駆動されます。推論する モデル と、アクションを実行する ツール です。Claude Code は Claude の周りの agentic ハーネス として機能します。言語モデルを有能なコーディングエージェントに変えるツール、コンテキスト管理、実行環境を提供します。
モデル
Claude Code は Claude モデルを使用して、コードを理解し、タスクについて推論します。Claude は任意の言語のコードを読み、コンポーネントがどのように接続されているかを理解し、目標を達成するために何を変更する必要があるかを判断できます。複雑なタスクの場合、作業をステップに分割し、実行し、学んだことに基づいて調整します。
複数のモデル が異なるトレードオフで利用可能です。Sonnet はほとんどのコーディングタスクをうまく処理します。Opus は複雑なアーキテクチャ上の決定に対してより強力な推論を提供します。セッション中に /model で切り替えるか、claude --model <name> で開始します。
このガイドで「Claude が選択する」または「Claude が決定する」と言う場合、モデルが推論を行っています。
ツール
ツールは Claude Code を agentic にするものです。ツールがなければ、Claude はテキストで応答することしかできません。ツールがあれば、Claude はアクションを実行できます。コードを読み、ファイルを編集し、コマンドを実行し、ウェブを検索し、外部サービスと相互作用します。各ツール使用は情報を返し、ループにフィードバックされ、Claude の次の決定に情報を与えます。
組み込みツールは一般的に 5 つのカテゴリに分類され、それぞれが異なる種類のエージェンシーを表します。
| カテゴリ | Claude ができること |
|---|---|
| ファイル操作 | ファイルの読み取り、コード編集、新規ファイル作成、名前変更と再編成 |
| 検索 | パターンでファイルを検索、正規表現でコンテンツを検索、コードベースを探索 |
| 実行 | シェルコマンド実行、サーバー起動、テスト実行、git 使用 |
| ウェブ | ウェブ検索、ドキュメント取得、エラーメッセージ検索 |
| コード インテリジェンス | 編集後の型エラーと警告を表示、定義にジャンプ、参照を検索(コード インテリジェンス プラグイン が必要) |
これらが主な機能です。Claude には subagent の生成、質問、その他のオーケストレーションタスク用のツールもあります。完全なリストについては、Claude が利用可能なツール を参照してください。
Claude はプロンプトと学んだことに基づいて、どのツールを使用するかを選択します。「失敗しているテストを修正して」と言うと、Claude は以下のようなことを行うかもしれません。
- テストスイートを実行して、何が失敗しているかを確認
- エラー出力を読む
- 関連するソースファイルを検索
- それらのファイルを読んでコードを理解
- ファイルを編集して問題を修正
- テストを再度実行して検証
各ツール使用は Claude に新しい情報を与え、次のステップに情報を与えます。これが agentic ループの実際の動作です。
基本機能の拡張: 組み込みツールが基盤です。スキル で Claude が知ることを拡張し、MCP で外部サービスに接続し、フック でワークフローを自動化し、subagent にタスクをオフロードできます。これらの拡張は、コア agentic ループの上に層を形成します。ニーズに合った拡張を選択するためのガイダンスについては、Claude Code を拡張する を参照してください。
Claude がアクセスできるもの
このガイドはターミナルに焦点を当てています。Claude Code は VS Code、JetBrains IDE、その他の環境でも実行されます。
ディレクトリで claude を実行すると、Claude Code は以下にアクセスできます。
- プロジェクト。 ディレクトリとサブディレクトリ内のファイル、および許可を得た他の場所のファイル。
- ターミナル。 実行できるあらゆるコマンド。ビルドツール、git、パッケージマネージャー、システムユーティリティ、スクリプト。コマンドラインからできることなら、Claude もできます。
- git の状態。 現在のブランチ、コミットされていない変更、最近のコミット履歴。
- CLAUDE.md。 プロジェクト固有の指示、規約、Claude が毎回のセッションで知っておくべきコンテキストを保存するマークダウンファイル。
- 自動メモリ。 作業中に Claude が自動的に保存する学習。プロジェクトパターンと設定など。MEMORY.md の最初の 200 行または 25KB のいずれか先に達した方が、各セッションの開始時に読み込まれます。
- 設定した拡張機能。 外部サービス用の MCP サーバー、ワークフロー用の スキル、委譲作業用の subagent、ブラウザ相互作用用の Claude in Chrome。
Claude はプロジェクト全体を見ることができるため、プロジェクト全体で作業できます。「認証バグを修正して」と Claude に求めると、関連ファイルを検索し、複数のファイルを読んでコンテキストを理解し、それらを横断して調整された編集を行い、テストを実行して修正を検証し、求めればコミットします。これは現在のファイルのみを見るインラインコードアシスタントとは異なります。
環境とインターフェース
上記で説明した agentic ループ、ツール、機能は、Claude Code を使用するあらゆる場所で同じです。変わるのは、コードが実行される場所とそれとの相互作用方法です。
実行環境
Claude Code は 3 つの環境で実行され、各環境はコード実行場所に対して異なるトレードオフを持ちます。
| 環境 | コード実行場所 | ユースケース |
|---|---|---|
| ローカル | マシン | デフォルト。ファイル、ツール、環境への完全なアクセス |
| クラウド | Anthropic 管理 VM | タスクをオフロード、ローカルにないリポジトリで作業 |
| リモートコントロール | マシン、ブラウザから制御 | ウェブ UI を使用しながらすべてをローカルに保つ |
インターフェース
Claude Code には、ターミナル、デスクトップアプリ、IDE 拡張機能、claude.ai/code、リモートコントロール、Slack、CI/CD パイプライン を通じてアクセスできます。インターフェースは Claude の表示方法と相互作用方法を決定しますが、基盤となる agentic ループは同じです。完全なリストについては、Claude Code をどこでも使用する を参照してください。
セッションで作業する
Claude Code は作業中にローカルで会話を保存します。各メッセージ、ツール使用、結果が保存され、巻き戻し、再開、フォーク セッションが可能になります。Claude がコード変更を行う前に、影響を受けるファイルのスナップショットも作成されるため、必要に応じて元に戻すことができます。
セッションは独立しています。 各新規セッションは、前のセッションの会話履歴なしで、新しいコンテキストウィンドウで開始されます。Claude は 自動メモリ を使用してセッション間で学習を保持でき、CLAUDE.md に独自の永続的な指示を追加できます。
ブランチ間で作業する
各 Claude Code 会話は、現在のディレクトリに結び付けられたセッションです。再開すると、そのディレクトリからのセッションのみが表示されます。
Claude は現在のブランチのファイルを見ます。ブランチを切り替えると、Claude は新しいブランチのファイルを見ますが、会話履歴は同じままです。Claude はブランチ切り替え後も、議論したことを覚えています。
セッションはディレクトリに結び付けられているため、git worktree を使用して並列 Claude Code セッションを実行できます。これは個別のブランチ用に別のディレクトリを作成します。
セッションを再開またはフォークする
claude --continue または claude --resume でセッションを再開すると、同じセッション ID を使用して中断したところから再開します。新しいメッセージは既存の会話に追加されます。完全な会話履歴が復元されますが、セッションスコープの権限は復元されません。それらを再度承認する必要があります。
元のセッションに影響を与えずに別のアプローチを試すために分岐するには、--fork-session フラグを使用します。
claude --continue --fork-session
これは会話履歴をその時点まで保持しながら、新しいセッション ID を作成します。元のセッションは変更されません。再開と同様に、フォークされたセッションはセッションスコープの権限を継承しません。
複数のターミナルで同じセッション:複数のターミナルで同じセッションを再開すると、両方のターミナルが同じセッションファイルに書き込みます。両方からのメッセージがインターリーブされます。同じノートブックに 2 人が書き込むようなものです。何も破損しませんが、会話がごちゃごちゃになります。セッション中、各ターミナルは独自のメッセージのみを見ますが、後でそのセッションを再開すると、すべてがインターリーブされた状態で表示されます。同じ開始点から並列作業する場合は、--fork-session を使用して各ターミナルに独自のクリーンなセッションを与えます。
コンテキストウィンドウ
Claude のコンテキストウィンドウは、会話履歴、ファイルコンテンツ、コマンド出力、CLAUDE.md、自動メモリ、読み込まれたスキル、システム指示を保持します。作業を進めると、コンテキストが満杯になります。Claude は自動的にコンパクト化しますが、会話の早い段階からの指示が失われる可能性があります。永続的なルールを CLAUDE.md に入れ、/context を実行してスペースを使用しているものを確認してください。
対話的なウォークスルーについては、コンテキストウィンドウを探索する を参照してください。
コンテキストが満杯になったとき
Claude Code はコンテキストウィンドウの制限に近づくと、自動的にコンテキストを管理します。古いツール出力をクリアし、必要に応じて会話を要約します。リクエストと主要なコードスニペットは保持されます。会話の早い段階からの詳細な指示は失われる可能性があります。会話履歴に依存するのではなく、永続的なルールを CLAUDE.md に入れてください。
コンパクト化中に保持されるものを制御するには、CLAUDE.md に「Compact Instructions」セクションを追加するか、/compact をフォーカス付きで実行します(例:/compact focus on the API changes)。
/context を実行してスペースを使用しているものを確認してください。MCP ツール定義はデフォルトで遅延され、ツール検索 を通じてオンデマンドで読み込まれるため、Claude が特定のツールを使用するまで、ツール名のみがコンテキストを消費します。/mcp を実行してサーバーごとのコストを確認してください。
スキルと subagent でコンテキストを管理する
コンパクト化を超えて、他の機能を使用してコンテキストに読み込まれるものを制御できます。
スキル はオンデマンドで読み込まれます。Claude はセッション開始時にスキル説明を見ますが、完全なコンテンツはスキルが使用されるときのみ読み込まれます。手動で呼び出すスキルの場合、disable-model-invocation: true を設定して、必要になるまで説明をコンテキストから除外します。
Subagent は独自の新しいコンテキストを取得し、メイン会話から完全に分離されます。それらの作業はコンテキストを膨張させません。完了すると、要約を返します。この分離が長いセッションで subagent が役立つ理由です。
各機能のコストについては コンテキストコスト を参照し、コンテキスト管理のヒントについては トークン使用量を削減する を参照してください。
チェックポイントと権限で安全に保つ
Claude には 2 つの安全メカニズムがあります。チェックポイントはファイル変更を元に戻すことができ、権限は Claude ができることを制御します。
チェックポイントで変更を元に戻す
すべてのファイル編集は可逆的です。 Claude がファイルを編集する前に、現在のコンテンツのスナップショットを作成します。何か問題が発生した場合、Esc を 2 回押して前の状態に巻き戻すか、Claude に元に戻すよう求めてください。
チェックポイントはセッションに対してローカルで、git とは別です。ファイル変更のみをカバーします。リモートシステム(データベース、API、デプロイメント)に影響するアクションはチェックポイントできません。これが Claude が外部の副作用を持つコマンドを実行する前に求める理由です。
Claude ができることを制御する
Shift+Tab を押して権限モードをサイクルします。
- デフォルト:Claude はファイル編集とシェルコマンドの前に求めます
- 自動受け入れ編集:Claude はファイルを編集するよう求めず、コマンドは求めます
- Plan Mode:Claude は読み取り専用ツールのみを使用し、実行前に承認できるプランを作成します
- Auto mode:Claude はバックグラウンド安全チェック付きですべてのアクションを評価します。現在は研究プレビューです
.claude/settings.json で特定のコマンドを許可することもできます。これにより、Claude は毎回求めません。これは npm test や git status などの信頼できるコマンドに便利です。設定は組織全体のポリシーから個人的な設定までスコープできます。詳細については、権限 を参照してください。
Claude Code を効果的に使用する
これらのヒントは Claude Code からより良い結果を得るのに役立ちます。
Claude Code に助けを求める
Claude Code はそれの使用方法を教えることができます。「フックをセットアップするにはどうすればいいですか?」や「CLAUDE.md を構造化する最良の方法は何ですか?」などの質問をすると、Claude が説明します。
組み込みコマンドもセットアップをガイドします。
/initはプロジェクト用の CLAUDE.md を作成するプロセスをウォークスルーします/agentsはカスタム subagent を設定するのに役立ちます/doctorはインストールの一般的な問題を診断します
会話です
Claude Code は会話的です。完璧なプロンプトは必要ありません。何を望むかで始めて、その後改善します。
ログインバグを修正して
[Claude が調査し、何かを試す]
それは完全には正しくありません。問題はセッション処理にあります。
[Claude がアプローチを調整]
最初の試みが正しくない場合、最初からやり直す必要はありません。反復します。
中断して操舵する
任意の時点で Claude を中断できます。間違った道を進んでいる場合は、修正を入力して Enter を押すだけです。Claude は何をしているかを停止し、入力に基づいてアプローチを調整します。完了を待つか、最初からやり直す必要はありません。
最初から具体的に
最初のプロンプトがより正確であるほど、必要な修正が少なくなります。特定のファイルを参照し、制約を述べ、例のパターンを指摘します。
チェックアウトフローは期限切れのカードを持つユーザーに対して壊れています。
src/payments/ で問題を確認してください。特にトークン更新。
最初に失敗するテストを書いて、その後修正してください。
曖昧なプロンプトは機能しますが、より多くの時間を操舵に費やします。上記のような具体的なプロンプトは、最初の試みで成功することが多いです。
Claude が検証するものを与える
Claude は独自の作業を確認できるときにより良いパフォーマンスを発揮します。テストケース、期待される UI のスクリーンショット、または望む出力を含めます。
validateEmail を実装します。テストケース:'user@example.com' → true、
'invalid' → false、'user@.com' → false。その後テストを実行します。
ビジュアル作業の場合、デザインのスクリーンショットを貼り付けて、Claude に実装と比較するよう求めます。
実装する前に探索する
複雑な問題の場合、研究とコーディングを分離します。Plan Mode(Shift+Tab を 2 回)を使用してコードベースを最初に分析します。
src/auth/ を読んで、セッション処理方法を理解してください。
その後、OAuth サポート追加のプランを作成してください。
プランを確認し、会話を通じて改善し、Claude に実装させます。このフェーズアプローチは、コードに直接ジャンプするよりも良い結果を生成します。
指示するのではなく委譲する
有能な同僚に委譲することを考えてください。コンテキストと方向を与え、Claude が詳細を理解することを信頼します。
チェックアウトフローは期限切れのカードを持つユーザーに対して壊れています。
関連するコードは src/payments/ にあります。調査して修正できますか?
どのファイルを読むか、どのコマンドを実行するかを指定する必要はありません。Claude がそれを理解します。