7月24日、AnthropicのスタッフエンジニアThariq Shihiparが「The new rules of context engineering for Claude 5 generation models」と題した記事を公開した。Claude Codeの実運用を通じて判明した「旧来のベストプラクティスがもはや通用しない」という事実を率直に整理したもので、システムプロンプトを約80%削減できたという具体的な成果を背景に、エージェント開発者が今すぐ見直すべき設計原則が示されている。
コンテキストエンジニアリングとは何か
「コンテキストエンジニアリング」とは、モデルに与えるシステムプロンプト・ツール定義・参照ファイルなどの情報全体を設計・最適化する実践を指す。単なる「プロンプトの書き方」を超え、モデルが推論に使うあらゆる文脈をエンジニアリングの対象として扱う考え方だ。GPT-3・4世代のモデルでは、モデルの推論能力が限定的だったため、開発者が細かいルールや例示を大量に与えて振る舞いを制御する手法が主流だった。しかしClaude 5世代ではモデル自身の判断力が大幅に向上しており、過剰な指示がむしろ性能を損なうという逆転現象が起きている。
最大のポイント:「ルールを与える」から「判断を委ねる」へ
旧来のClaude Codeのシステムプロンプトには、次のような明示的な禁止事項が含まれていた。
In code: default to writing no comments. Never write multi-paragraph docstrings or multi-line comment blocks — one short line max.
これはファイル削除などの最悪ケースを避けるための保険だったが、ドキュメントが必要なケースや複雑なコードへの対応時には逆に邪魔になっていた。新世代モデルではこの記述を削除し、代わりに次の1文に置き換えた。
Write code that reads like the surrounding code: match its comment density, naming, and idiom.
コンテキストに合わせてモデル自身が判断する、というアプローチへの転換だ。旧モデルでは「ルールなしでは破綻する」という前提があったが、Claude 5世代ではその前提が崩れている。
「例示でツールを教える」は逆効果になった
ツール利用のベストプラクティスとして長らく信じられてきた「使い方の例を与える」という手法も見直しが必要だ。記事によれば、最新モデルに例示を与えると探索空間が制約されてしまうという逆効果が確認されている。
代わりに推奨されるのは、ツール設計そのものを磨くことだ。例として挙げられているTodoツールでは、ステータスをpending/in_progress/completedの列挙型として定義するだけで、Claudeは使い方を自律的に理解する。「1つのタスクだけin_progressにする」というルールも、説明文ではなくツールの構造から伝わるよう設計されている。
その他の変更点
プログレッシブディスクロージャー(Progressive Disclosure:必要な情報を必要なタイミングで段階的に提示する設計手法)の活用
システムプロンプトに全情報を詰め込む設計から脱却し、Claude CodeはToolSearchで必要なツール定義を動的に取得する仕組みに移行した。CLAUDE.mdも同様で、「あらゆる知識の集積場」にするのではなく、必要なタイミングで読み込まれるファイルツリー構造が推奨されている。
ツール説明の簡素化
旧モデルではコンテキストウィンドウの末尾に近い指示ほど効きやすい傾向があり、システムプロンプトとツール説明の両方に同じ内容を重複記載する必要があった。新モデルでは重複を排除し、ツールの使い方はツール説明にのみ記載すればよい。
自動メモリ
以前は#キーで手動でCLAUDE.mdに書き込む運用を推奨していたが、現在はClaudeが作業・ユーザーに関連するメモリを自動で保存する。
リッチな参照形式
仕様をMarkdownで書く慣習から、HTMLアーティファクト・テストスイート・別コードベースの関数など、より高精度な参照形式への移行が進んでいる。また、「ルーブリック(rubric:採点基準表を意味する教育用語で、ここではClaudeに好みのスタイルや品質基準を明示的に伝えるための評価軸の提示を指す)」を使ってClaudeに好みのスタイルを伝え、ダイナミックワークフローで検証エージェントを立ち上げるアプローチも紹介されている。
実装ガイドライン
記事では、コンテキストの各要素について以下の方針をまとめている。
- システムプロンプト:製品コンテキストとClaudeの役割定義に集中する。Claude Codeを使う場合はほぼ変更不要。独自エージェントを構築する場合はここに最も時間を使う
- CLAUDE.md:リポジトリの概要を簡潔に記載し、残りのトークンはコードベース固有の「落とし穴」に使う。Claudeがファイルシステムを見れば分かる自明なことは書かない
- スキル:Claude Code固有の概念で、特定タスクや領域に関する手順・知識をまとめた軽量なガイドファイルを指す。Claudeが必要なときに参照し、特定の領域のベストプラクティスや個人・チーム固有の知識を埋め込む場所として最適
- 参照ファイル:コードとして書かれたファイルを優先する。HTMLモックアップはデザインの説明文やスクリーンショットよりも高精度な指示になる
Anthropicは既存の設定を見直すためのコマンドclaude doctorもリリースしている。より高度なモデルのプロンプト設計については、Fable field guideも参照先として挙げられている。
詳細はThe new rules of context engineering for Claude 5 generation modelsを参照していただきたい。