Re Reference AI

技術

コンテキストエンジニアリングとは

Context Engineering

限られたコンテキストウィンドウ内でLLMやエージェントが最大の性能を発揮できるよう、渡す情報全体(指示・例・ツール定義・検索結果・記憶等)を設計する実践

LLM入力設計

ひとことで言うと

AIに渡す情報全部(指示文だけでなく、参考資料やツールの説明なども含む)を、限られた枠の中でうまく整理して見せる工夫のこと。

概要

コンテキストエンジニアリングとは、LLMやAIエージェントへ入力として渡す情報全体を、限られたコンテキストウィンドウの中で最大の性能を引き出せるように設計する実践を指す。 プロンプトエンジニアリングが1回の指示文言の書き方・表現を主に扱うのに対し、コンテキストエンジニアリングはシステム指示、少数例、ツール定義、検索で取得した文書、会話履歴や記憶など、入力に含まれる情報全体の取捨選択・構成・優先順位付けを扱う点で対象範囲が広い。 コンテキストウィンドウには上限があり、詰め込みすぎるとコストが増えるだけでなく、関連情報が埋もれて精度が落ちる現象も起きるため、何を含め何を削るかの設計が性能に直結する。 AIエージェントが複数のツール呼び出しや検索結果を扱う構成が一般化するにつれて、プロンプト単体の工夫を超えた実践として注目されるようになった。

背景

AIエージェントやRAGを組み込んだシステムでは、システム指示・ツール定義・検索結果・過去の会話履歴など、LLMに渡す情報の種類と量が増える。 これらを無秩序に詰め込むとコンテキストウィンドウの上限に達しやすく、また関連性の低い情報が紛れることで出力精度が下がるため、渡す情報全体を意図的に設計する必要性が生じた。

利点

  • 限られたコンテキストウィンドウの中で本当に必要な情報を厳選するため、無関係な情報によるノイズを減らし出力精度を高めやすい
  • システム指示・ツール定義・検索結果・記憶など、入力の構成要素ごとに何を含めるか設計できるため、エージェントの挙動を安定させやすい
  • 詰め込む情報量を抑えられるため、推論コストとレイテンシの削減にもつながる

欠点

  • 何を含め何を削るかの最適な設計はタスクやエージェントの構成ごとに異なり、体系化されたベストプラクティスがまだ確立していない
  • 情報を絞り込みすぎると、エージェントが判断に必要な文脈を欠いたまま動作してしまうリスクがある
  • システム指示・ツール定義・検索結果・記憶など対象が多岐にわたるため、設計と検証にかかる工数が増えやすい

比較

  • プロンプトエンジニアリングプロンプトエンジニアリングが指示文言そのものの書き方を扱うのに対し、コンテキストエンジニアリングは指示・例・ツール定義・検索結果等を含む入力全体の構成を扱う、より広い実践
  • ハーネスエンジニアリングコンテキストエンジニアリングが1つのコンテキストウィンドウ内の情報構成を扱うのに対し、ハーネスエンジニアリングは複数のセッションやウィンドウを跨いだ環境全体の設計を扱う
  • ループエンジニアリングコンテキストエンジニアリングが1回の入出力に渡す情報の質を高めることに焦点を当てるのに対し、ループエンジニアリングはエージェントが試行・検証・修正を繰り返すシステム全体の設計を扱う
  • コンテキストウィンドウコンテキストウィンドウはLLMが一度に参照できる情報量の上限そのものを指し、コンテキストエンジニアリングはその上限内に何をどう含めるかを設計する実践を指す

関連用語

プロンプトエンジニアリングハーネスエンジニアリングループエンジニアリングコンテキストウィンドウRAGサブエージェント

よくある質問

プロンプトエンジニアリングとの違いは?

プロンプトエンジニアリングは1回の指示文言の書き方・表現の工夫を指すことが多いのに対し、コンテキストエンジニアリングはシステム指示・少数例・ツール定義・検索結果・記憶など、入力に含まれる情報全体の取捨選択と構成を扱う、より広い概念として使われる。

コンテキストエンジニアリングは具体的に何をするのか?

システム指示の簡潔化、少数例の取捨選択、ツール定義の絞り込み、検索結果の要約・並べ替え、会話履歴や記憶の圧縮など、LLMに渡す情報の中身と量をタスクに応じて調整する作業を指す。サブエージェントに調査作業を委譲してコンテキストを節約する構成も、実践の一例とされる。

参考文献

関連Zenn記事