Claude Code とは何か
Claude Code は、指示を受けると、ファイルを読み、コマンドを実行し、コードを書き換えるところまでを、自分で進める AI のツールです。このページでは、Claude Code がどのように作業を進めるのかを整理します。あとのページで扱う、権限、スキル、サブエージェントなどの機能は、ここで説明する仕組みの上に成り立っています。
この記事で分かること
- Claude Code が作業を進める流れ(エージェントのループ)
- 作業を支える 2 つの要素(モデルとツール)
- Claude が扱えるものと、作業が行われる場所
- セッションと、コンテキストウィンドウの考え方
- 変更を元に戻す仕組みと、操作を制限する仕組み
用語の整理
| 用語 | 意味 |
|---|---|
| エージェント(agent) | 目標を与えられると、必要な手順を自分で考えて、実行する AI |
| モデル(model) | 文章やコードを理解して、次に何をするかを考える、AI の本体。Claude Code では、Claude のモデルを使う |
| ツール(tool) | モデルが、実際の操作を行うための道具。ファイルを読む、コマンドを実行する、など |
| ハーネス(agentic harness) | モデルにツールを与え、モデルが見る情報を管理する、モデルの周りの仕組み。Claude Code そのものが、これにあたる |
| コンテキストウィンドウ(context window) | モデルが、一度に扱える情報の量。会話の履歴や、読んだファイルの内容などが、ここに入る |
| セッション(session) | Claude Code との、1 つの会話のまとまり |
| 圧縮(compaction) | コンテキストウィンドウがいっぱいになったときに、古い内容を要約して、空きを作ること |
| チェックポイント(checkpoint) | Claude がファイルを書き換える前に保存される、元の内容の記録 |
| 権限モード(permission mode) | Claude が、確認なしで実行できる操作の範囲を決める設定 |
Claude Code とは
Claude Code は、エージェントとして動く、作業の支援ツールです。得意なのはコーディングですが、コマンドでできることであれば、ドキュメントの作成、ビルドの実行、ファイルの検索、調べものなどにも使えます。
コードの入力中に続きを提案するだけのツールとは、扱える範囲が違います。そうしたツールが見ているのは、主に今開いているファイルです。Claude Code は、プロジェクト全体を見て、複数のファイルにまたがる作業を進められます。たとえば「この不具合を直して」と頼むと、関係するファイルを探し、複数のファイルを読んで状況を理解し、必要な箇所をまとめて書き換え、テストで確かめる、というところまでを行います。
作業の進め方:エージェントのループ
Claude は、作業を 3 つの段階で進めます。
あなたの指示
↓
┌─→ ① 状況を調べる(gather context)
│ ファイルを探す、読む、コマンドの結果を見る
│ ↓
│ ② 実行する(take action)
│ ファイルを書き換える、コマンドを実行する
│ ↓
│ ③ 結果を確かめる(verify results)
│ テストを実行する、出力を確認する
│ ↓
└── まだ終わっていなければ、① に戻る
↓
作業の完了この 3 つは、きれいに分かれているわけではなく、混ざり合いながら進みます。また、頼んだ内容によって、形が変わります。
| 頼んだ内容 | ループの形 |
|---|---|
| コードについての質問 | ① の「状況を調べる」だけで終わることが多い |
| 不具合の修正 | ①〜③ を、何度も繰り返す |
| 大きな書き直し | ③ の「結果を確かめる」に、多くの手間をかける |
Claude は、前の手順で分かったことをもとに、次に何をするかを決めます。数十の操作を続けて行い、途中で方針を修正しながら進みます。
人も、ループの一部
Claude は自律的に作業を進めますが、人はいつでも割り込めます。途中で止めて方向を変える、情報を追加する、別のやり方を試すように頼む、といったことができます。
ループを動かす 2 つの要素
エージェントのループは、考える役のモデルと、実行する役のツールの 2 つで動いています。
モデル
モデルは、コードを理解して、作業について考えます。どの言語のコードも読めて、部品同士のつながりを理解し、目標を達成するために何を変える必要があるかを判断します。込み入った作業では、作業を手順に分けて実行し、分かったことに応じて調整します。
モデルには複数の種類があり、得意なことと、速さや費用が違います。公式ドキュメントでは、多くのコーディングの作業には Sonnet が向いていて、込み入った設計の判断には、より強い推論力を持つ Opus が向いている、と説明されています。
このサイトの説明で「Claude が判断する」「Claude が決める」と書くとき、考えているのは、このモデルです。
ツール
ツールがなければ、モデルは文章で答えることしかできません。ツールがあることで、コードを読む、ファイルを書き換える、コマンドを実行する、といった実際の操作ができるようになります。ツールを使った結果は、モデルに返されて、次の判断の材料になります。
最初から備わっているツールは、大きく 5 つに分けられます。
| 分類 | できること |
|---|---|
| ファイルの操作 | ファイルを読む、コードを編集する、新しいファイルを作る、名前を変えて整理する |
| 検索 | 名前のパターンでファイルを探す、内容を検索する、コード全体を調べる |
| 実行 | コマンドを実行する、サーバーを起動する、テストを実行する、Git を使う |
| Web | Web を検索する、ドキュメントを取得する、エラーメッセージを調べる |
| コードの解析 | 編集したあとの型のエラーや警告を見る、定義の場所に移動する、使われている箇所を探す(専用のプラグインが必要) |
このほかに、サブエージェントを起動するツールや、人に質問するツールなどもあります。
例:「失敗しているテストを直して」
公式ドキュメントでは、この指示を受けたときの動きの例として、次の流れが挙げられています。
- テストを実行して、何が失敗しているかを見る
- エラーの出力を読む
- 関係するソースファイルを探す
- そのファイルを読んで、コードを理解する
- ファイルを編集して、問題を直す
- もう一度テストを実行して、直ったことを確かめる
1〜4 が「状況を調べる」、5 が「実行する」、6 が「結果を確かめる」にあたります。どのツールを、どの順番で使うかは、人が指定するのではなく、Claude が決めます。
Claude が扱えるもの
あるフォルダーで Claude Code を起動すると、Claude は次のものを扱えるようになります。
| 扱えるもの | 内容 |
|---|---|
| プロジェクト | そのフォルダーと、その中のフォルダーにあるファイル。それ以外の場所のファイルは、許可があれば扱える |
| ターミナル | 人が実行できるコマンドは、Claude も実行できる。ビルドの道具、Git、パッケージの管理ツールなど |
| Git の状態 | 現在のブランチ、まだコミットしていない変更、最近のコミットの履歴 |
| CLAUDE.md | プロジェクトのルールや約束ごとを書いておくファイル。Claude は、毎回のセッションでこれを読む |
| 自動メモリ(auto memory) | 作業の中で、Claude が自分で保存する覚え書き。利用者の好みなどを、次のセッションに引き継ぐ |
| 追加した機能 | 外部のサービスにつなぐ MCP サーバー、手順をまとめたスキル、作業を任せるサブエージェントなど |
「それ以外の場所のファイルは、許可があれば」という点は、確認の画面が出るかどうかに関わります。詳しくは「03. 権限モードと、確認を減らす方法」で扱う予定です。
作業が行われる場所と、操作する画面
エージェントのループと、ツールの働きは、どこで Claude Code を使っても同じです。違うのは、コードが実行される場所と、人が操作する画面です。
コードが実行される場所
| 場所 | コードが動くところ | 向いている場面 |
|---|---|---|
| ローカル | 自分の PC | 標準の使い方。自分のファイル、道具、環境を、そのまま使える |
| クラウド | Anthropic が用意した環境など | 作業を任せて手を離したい。手元にないリポジトリで作業したい |
| Remote Control | 自分の PC。ブラウザーなど、別の画面から操作する | 実行とファイルは自分の PC に置いたまま、別の画面から使いたい |
操作する画面
ターミナル、デスクトップアプリ、VS Code などの拡張機能、Web(claude.ai/code)、スマートフォンのアプリなどから使えます。画面が違っても、裏で動いているループは同じです。
それぞれの違いと使い分けは、「02. Claude Code を使う場所」で扱う予定です。
セッション
Claude Code との 1 つの会話のまとまりを、セッションといいます。
会話は、自分の PC に保存される
Claude Code は、会話の内容を、作業を進めながら自分の PC に保存します。メッセージ、ツールの使用、その結果が、~/.claude/projects/ の下のファイルに、1 行ずつ書き込まれます。この記録があるので、あとで会話を再開したり、途中の状態に戻したりできます。
セッションは、互いに独立している
新しいセッションは、空のコンテキストウィンドウから始まります。前のセッションの会話の履歴は、引き継がれません。
セッションをまたいで覚えておいてほしいことは、次の 2 つに入れます。
| 入れる場所 | 内容 |
|---|---|
| CLAUDE.md | 人が書く、プロジェクトのルール |
| 自動メモリ | Claude が自分で保存する、覚え書き |
セッションは、フォルダーに結び付いている
セッションは、起動したフォルダーに結び付いています。そのため、過去のセッションを開き直すときは、基本的に、同じフォルダーのセッションが一覧に表示されます。
ブランチを切り替えると、Claude が見るファイルは新しいブランチのものに変わりますが、会話の履歴はそのまま残ります。
再開と、分岐
| 操作 | 動き |
|---|---|
| 再開(resume) | 同じセッションを開き直して、続きを書き足す |
| 分岐(fork) | 会話の履歴を新しいセッションに複製する。元のセッションは変わらない |
コンテキストウィンドウ
コンテキストウィンドウは、モデルが一度に扱える情報の量です。ここに、次のものが入ります。
- 会話の履歴
- 読んだファイルの内容
- コマンドの出力
- CLAUDE.md と、自動メモリ
- 読み込まれたスキル
- システムからの指示
作業を進めると、コンテキストウィンドウは埋まっていきます。
いっぱいになると、どうなるか
上限に近づくと、Claude Code が自動で空きを作ります。
- まず、古いツールの出力を消す
- それでも足りなければ、会話を要約する(圧縮)
人の依頼と、重要なコードの部分は残されます。一方で、会話の初めのほうで伝えた、細かい指示は、失われることがあります。
そのため、ずっと守ってほしいルールは、会話の中で伝えるだけでなく、CLAUDE.md に書いておくことが勧められています。
使われ方を確かめる、節約する
| 方法 | 内容 |
|---|---|
/context | 何がコンテキストウィンドウを使っているかを表示する |
/compact | 手動で圧縮する。「〜を中心に」と、残したい内容を指定できる |
| スキル | 必要なときにだけ読み込まれる。最初に読み込まれるのは、短い説明だけ |
| サブエージェント | 別のコンテキストウィンドウで作業して、結果の要約だけを返す。途中のツールの出力は、元の会話に入らない |
スキルとサブエージェントは、あとのページ(06、14)で扱う予定です。どちらも、「コンテキストウィンドウを節約する」という面を持っています。
安全のための 2 つの仕組み
変更を元に戻す:チェックポイント
Claude は、ファイルを書き換える前に、元の内容を保存します。問題が起きたら、前の状態に戻せます。
ただし、戻せるのはファイルの変更だけです。データベース、外部のサービス、公開の処理など、外部に影響する操作は、元に戻せません。こうした操作は、次の権限の仕組みで管理します。
操作を制限する:権限
権限モードによって、Claude が確認なしで実行できる操作の範囲が決まります。また、特定のコマンドを、あらかじめ許可しておくこともできます。
詳しくは、「03. 権限モードと、確認を減らす方法」と「04. 設定ファイルの仕組み」で扱う予定です。
うまく使うための考え方
公式ドキュメントで勧められている考え方です。
| 考え方 | 内容 |
|---|---|
| Claude に、使い方を聞く | 「フックは、どう設定するのか」のように、Claude Code 自体の使い方を、Claude に尋ねられる |
| 会話として進める | 最初から完璧な指示を書く必要はない。まず頼んで、結果を見て、直していく |
| 途中で止めて、方向を変える | 違うと思ったら、最初からやり直さずに、その場で伝える |
| 細かく指図せず、任せる | 状況と方向を伝えたら、どのファイルを読むか、どのコマンドを使うかは、Claude に任せる |
実際にやってみる
このサイト(study-lab)のリポジトリで、ここまでの内容を確かめました。
エージェントのループを、実際の作業に当てはめる
このサイトでは、記事の「最終更新」の日時が、どの記事も同じ日時になる不具合がありました。この修正を、3 つの段階に当てはめると、次のようになります。
| 段階 | Claude が行ったこと |
|---|---|
| ① 状況を調べる | 公開されているサイトに埋め込まれた日時を取得した。Git の履歴から、各記事を実際に最後に変更した日時を調べた。2 つを比べて、どの記事も「最後に公開した日時」になっていることを確かめた。公開の処理の設定ファイルを読んだ |
| ② 実行する | 公開の処理が、変更の履歴を最新の 1 件しか取得していないことが原因だと判断した。設定ファイルに、履歴をすべて取得する指定を加えた |
| ③ 結果を確かめる | 手元で、履歴が 1 件だけの場合と、すべてある場合を再現して、サイトを作り直した。履歴が 1 件だけだと誤った日時になり、すべてあると正しい日時になることを確かめた。公開したあとに、公開サイトの 7 ページの日時が、実際の日時と一致することを確かめた |
人が伝えたのは、「最終更新の不具合を直してほしい」ということだけです。どの日時を比べるか、どのファイルを読むか、どう再現するかは、Claude が決めました。
この例で大事なのは、**③ の「結果を確かめる」**です。設定を直しただけで終わらせずに、直す前の状態で不具合が再現することと、直したあとに解消することの、両方を確かめています。
セッションの記録を確かめる
会話が自分の PC に保存されていることを、確かめました。
ls ~/.claude/projects/フォルダーごとに、記録を入れる場所が作られていました。名前は、作業したフォルダーのパスをもとに付けられています。
このサイトのリポジトリのセッションについて、記録のファイルを調べた結果です。
| 項目 | 結果 |
|---|---|
| ファイルの形式 | 1 行に 1 件の記録が並ぶ、テキストのファイル(JSONL という形式) |
| 記録の件数 | 約 4,000 行 |
| ファイルの大きさ | 約 11 MB |
| 記録の種類 | Claude の応答、利用者の入力、添付された情報、など |
長いセッションでは、記録がかなり大きくなることが分かります。この中には、会話の内容、読んだファイルの内容、コマンドの出力が含まれています。記録のファイルは、取り扱いに注意が必要なデータだと分かります。
プロジェクトのルールのファイルを確かめる
ls CLAUDE.mdこのサイトのリポジトリには、まだ CLAUDE.md がありませんでした。ここまでの作業で決めたルール(用語は最初に説明する、公式の情報で確認してから書く、など)は、会話の中で伝えたものと、自動メモリに保存されたものだけです。
上の「コンテキストウィンドウ」の節で見たとおり、会話の中で伝えた指示は、失われることがあります。ルールを CLAUDE.md に書き出す作業は、「05. CLAUDE.md とメモリ」で行う予定です。
まとめ
- Claude Code は、エージェントとして動く。作業を、「状況を調べる」「実行する」「結果を確かめる」の繰り返しで進める。
- ループを動かすのは、考える役のモデルと、実行する役のツールである。Claude Code は、その周りで、ツールを与え、情報を管理する仕組みにあたる。
- Claude は、プロジェクト全体を見て、複数のファイルにまたがる作業を進められる。
- セッションは互いに独立していて、新しいセッションは、空のコンテキストウィンドウから始まる。引き継ぎたいことは、CLAUDE.md と自動メモリに入れる。
- コンテキストウィンドウがいっぱいになると、古い内容が要約される。会話の初めの細かい指示は、失われることがある。
- ファイルの変更は、チェックポイントで元に戻せる。外部に影響する操作は、元に戻せないので、権限の仕組みで管理する。
確認の記録
| 項目 | 内容 |
|---|---|
| 最終確認日 | 2026 年 10 月 11 日 |
| Claude Code のバージョン | 2.1.295(macOS のデスクトップアプリ) |
| 検証の状況 | 「仕組み」にあたる節は、公式ドキュメントの内容と照合した。「実際にやってみる」は、このサイトのリポジトリと、macOS のデスクトップアプリで確かめた結果 |
| 確かめていない内容 | /context、/compact、セッションの再開と分岐は、公式ドキュメントの説明をもとに書いている。このページを書く中では、実際に操作していない |