コンテキストエンジニアリング
コンテキストエンジニアリングとは、LLMを用いるAIエージェントにおいて、「LLMの限られたコンテキスト長の制約の下で、タスク遂行に最大限有用な情報を詰め込むためにはどうすれば良いのか」 という問題にアプローチするための 枠組みを指します。
Claude CodeもLLMを用いたAIエージェントなので、使いこなすためにコンテキストエンジニアリングの知識は知っていて損はないでしょう。
例えば、Claude Codeのコンテキスト長は、内部で使用しているClaudeモデルの制約に依存します。この制約に対処するコンテキストエンジニアリングの一環として、ファイルの読み書きなどを行ってきた結果、コンテキスト長が一定のしきい値を超えると、下図のように自動圧縮(auto-compaction)する機能が備わっています。
©株式会社ジェネラティブエージェンツ / はじめてのClaude Code ※引用画像は本サイト利用規約に基づく自由な使用、複製、翻案等の対象外です。
AIエージェントの世界において、コンテキストエンジニアリングは非常に重要な技術です。ソフトウェア開発AIエージェント「Devin」を開発するCognition社のブログでは、「コンテキストエンジニアリングこそがエージェント開発者の第一の仕事である」 とまで述べられています(Don’t Build Multi-Agents)。
また、汎用AIエージェント「Manus」を開発するManus社のブログでは、「コンテキストをどのように形作るかが、エージェントの動作、実行速度、エラーからの回復力、スケーラビリティを最終的に定義する」 と述べら れています(AIエージェントのためのコンテキストエンジニアリング:Manus構築から得た教訓)。
本ドキュメントを読んでいる皆さまが、実際にAIエージェントそのものを開発する機会は少ないかもしれませんが、まだ発展途上のAIエージェントを使いこなすためには、コンテキストエンジニアリングの知識が重要です。
コンテキストエンジニアリングの実践的な設計・実装方法
それでは早速、コンテキストエンジニアリングについて具体的な中身を見ていきましょう。
プロンプト設計とコンテキスト構築
プロンプト設計の基本は、明確で一貫性のある指示をモデルに与えることです。
AIエージェントへ与える言葉に矛盾があると、性能が大きく落ちます。これは直接投入するプロンプトだけでなく、後述する短期記憶、長期記憶全体を通して無矛盾な状態にする必要があることを示しています。
AIエージェントの場合は、システムプロンプト(CLAUDE.mdやサブエージェント定義のプロンプト)から始まり、ツール一覧や使用方法、現在までの対話履歴、最新のユーザ要求という形でコンテキストが構成されます。
このとき重要なのは、モデルに不要な混乱を招く情報や変動要素を極力排除し、安定したコンテキストが提供されるようにすることです。
例えば、システムプロンプトの冒頭に毎回異なるタイムスタンプを含めてしまうと、現在広く用いられている自己回帰型のLLMでは、その1トークンの違いで以降のキャッシュが全て無効化されてしまいます。
また、AIエージェントではコンテキストの大部分が「過去のやりとり」で占められる点も特徴的です。ユーザ入力に応じたツール実行→観察結果→次のアクション、というループが繰り返されるため、各ステップでログ(アクションと結果)がコンテキストに追記されていきます。その結果、出力(エージェントの発話)は比較的短くとも、入力コンテキストはどんどん肥大化します。
肥大化が発生することによって起こる問題は、入力トークン量が多くなることによるコストの増大と、コンテキストロット(Context Rot)と呼ばれる現象による品質の低下です。Context Rotとは入力トークン量によってLLMの性能が変化する現象をさし、入力トークンが肥大化すると性能が低下する傾向にあります(参考:Context Rot / Chroma Technical Report 2025.7.14)。
Claude Codeを利用する上でクリティカルに影響するのは、性能の低下でしょう。このような現象を避けるために、Claude Codeではコンテキストを自動圧縮するようにされていますが、自動圧縮によって、いくらか情報は失われてしまいます。情報が失われることによるタスク遂行率の低下と、Context RotによるLLMの性能低下のトレードオフという、難しい問題があります。
記憶(メモリ)の管理
人間のように、AIエージェントにも短期記憶と長期記憶の両面があります。短期記憶とは、現在のセッション内で保持される一時的なコンテキスト(対話の流れや作業中の情報)であり、長期記憶とはセッションを超えて永続化される知識(ユーザの好みや過去のタスク経験など)を指します。AIエージェントにおける記憶管理は、この短期と長期の両者を、いかに統合し、活用するかがテーマとなります。