本記事は、Claude Codeの開発に携わるAnthropicのThariq Shihipar(@trq212)氏がXに投稿した内容をもとに作成しています。原文はこちらをご参照ください → https://x.com/trq212
Thariq氏が「死守する」一つの主張
Thariq氏はこの件について、非常に強い言葉を使っています。
「あらゆるエージェントはファイルシステムを使うべきだ。これは絶対に譲れない主張だ。」
なぜそこまで断言できるのか。その理由を一緒に考えていきましょう。
そもそも「コンテキストウィンドウ」とは何か?
まず、コンテキストウィンドウという言葉を整理します。
AIは「一度に把握できる情報量」に上限があります。この上限のことをコンテキストウィンドウと呼びます。たとえば「20万トークン(文字数のような単位)まで」という形で決まっています。
コンテキストウィンドウが大きいほど、長い会話や大量の資料をAIに渡せます。そのため「コンテキストウィンドウが大きくなれば、プロジェクト全体のコードをAIに渡せる→AIが全部覚えてくれる」という発想が生まれがちです。
でも、これは本当に正しいアプローチでしょうか?
プログラマーは「全部記憶」して仕事しているわけではない
Claude Codeを作る過程で、Thariq氏が気づいたことがあります。それは「優れたプログラマーは、コードをすべて記憶してから仕事を始めているわけではない」という当たり前の事実です。
プログラマーが実際にやっていることを見ると:
- 必要なファイルをその都度開く
- 関数の定義をgrepで検索する(grepとはテキスト検索コマンドの一種)
- エラーログを見て原因を調べる
- ドキュメントを必要なときだけ参照する
「すべてを記憶する」のではなく「必要なときに必要な情報を探せる」能力が、プログラマーの本質的なスキルです。
Claude Codeも同じです。何十万トークンものコードを全部コンテキストに詰め込むより、ファイルシステムを使って必要な情報を自分で探しにいける方が、はるかに精度が高く効率的に動けます。
ファイルシステムの最大の強み:「繰り返し試行」ができる
ファイルを使うことの一番の価値は、Claude Codeが「試す→確認する→修正する」のサイクルを自律的に回せることです。
具体例で比べてみましょう。
「今週ライドシェアにいくら使ったか知りたい」という質問
ファイルなしの場合
- メールアプリから100件のメールを取得してAIに渡す
- 100件の中から関連するものをAIが手探りで探す
- 情報が多すぎて見落としが起きやすい
- 「このメールは含めるべきか?」の判断があいまいになりやすい
ファイルありの場合
- メールをファイルに書き出す
- 「ライドシェア」「Uber」「タクシー」でファイルを検索する
- 見つかったものを確認して、検索条件を調整する
- 正確なデータを抽出して計算する
ファイルを使うことでClaude Codeは:
- コードとして処理するので結果が再現できる
- 複数の検索条件を試せる
- 「これで合っているか」を自分で確認できる
- 幻覚(AIが事実を作り上げること)を防ぎやすい
具体的な活用例5つ
1. 記憶の外部化(Memory)
会話の記録や過去の決定事項をMarkdownやJSONファイルとして保存しておきます。
次のセッションでClaude Codeがそのファイルを検索して文脈を取り戻せるため、「前回の続き」をスムーズに始められます。長期にわたるプロジェクトで特に効果的です。
2. Reactコンポーネントの作成
Reactとはウェブのユーザーインターフェースを作るためのフレームワーク(開発の骨組み)です。AIがUIを生成するとき、一発で完璧に書くのは難しいですが、ファイルシステムがあれば:
- まずファイルにコードを書き出す
- リント(構文チェック)スクリプトを実行する
- エラーがあれば修正する
- 再チェックする
この「書く→確認→直す」のサイクルを自律的に繰り返せます。
3. ディープリサーチ
複数のサブエージェント(並行して調査する複数のAI)に、それぞれ異なる角度から調査させ、発見をファイルに書き出させます。
全体を統括するオーケストレーター(まとめ役のAI)がそのファイルを横断的に読み、要約・検証・参照を行います。膨大な情報量を扱う調査では、ファイルシステムがなければ成り立ちません。
4. 計画とメモ帳
複雑な問題を解くとき、計画と中間メモをファイルに残します。複数のサブエージェントが関わるケースでは「自分が担当する前に誰かが何をやったか」がファイルを読めばわかるため、作業の重複が防げます。
5. D&D(ダンジョンズ&ドラゴンズ)のゲームマスター
少し変わった例ですが、「AIが複雑な状態を管理し続ける必要がある」ケースの好例です。
AIのゲームマスターが登場人物・場所・モンスター・秘密などをすべてファイルとして管理します。現在のシーンに関係するファイルだけを読み込めばいい。全部を頭に入れておく必要はなく、「必要なときに読める」仕組みがあれば十分です。
ファイルとコード生成の相乗効果
ファイルシステムの活用は、コード生成と特に相性が良いです。
生成したコードをファイルに書き出してテストを実行し、エラーログを読んで修正する——このサイクルを自律的に回せることが、Claude Codeが複雑な開発タスクをこなせる理由のひとつです。
Thariq氏はこう言っています。「コード生成について今週さらに詳しく書く予定だ。コーディングエージェントだけでなく、様々な問題をコード生成で解決できる」と。コードを書けるエージェントと、ファイルに書き出せる環境の組み合わせは、想像以上に強力です。
ファイルシステムは「責任も大きい」
ファイルを読み書きする権限は強力な能力です。そのためClaude Codeには権限管理の仕組みが用意されています。
権限の評価は次の順番で行われます。
- フック(Hooks): カスタムルールで許可・拒否・保留を判断
- 拒否ルール: 明示的にブロックされた操作を止める
- 権限モード: 全体的な許可レベルを適用する
- 許可ルール: 事前に承認された操作を通す
- ユーザー確認: 上記で判断できなかった場合にユーザーへ確認
特に本番環境のデータや重要なファイルがある環境では、サンドボックス(外部から隔離された安全な実行環境)内で使うことをAnthropicは推奨しています。
まとめ
ファイルシステムはAIの「作業机」です。
机がなければ、すべてのものを手に持ったまま作業しなければなりません。机があれば、必要なものを広げ、整理し、後で参照できます。
コンテキストウィンドウがどれだけ大きくなっても、ファイルシステムを使って作業を外部化することでClaude Codeの能力は格段に上がります。
「すべてを記憶させる」より「必要なときに探せる環境を作る」—— これがClaude Codeを賢く使うための本質的な考え方です。
コメント