AIエージェント・ストラテジスト › Web参考書 › 第4章

コンテキストエンジニアリング概論:LLMに何を・どの順で渡すか、原因切り分けの順序

第4章 自動化レベルとワークフロー設計 / 節 4

シラバスのキーワード: コンテキストエンジニアリングプロンプトエンジニアリングLost in the Middleノイズ情報の欠落Select構造化の原則鮮度の原則原因切り分け

本文を読んだあと、覚えているか確認してください。

答えが悪いとき、モデルを変える前に見るもの

AI の答えが期待より悪い。多くの人はまず「もっと高性能なモデルに変えよう」と考えます。でも、出力品質の問題は、ほぼすべて**「渡している情報の問題」**に帰着します。必要な情報が欠けている、関係ない情報が混ざっている、指示が曖昧。モデルを変える前に、ここを確認します。

コンテキストエンジニアリングは、LLM に渡す文脈情報を体系的に設計・管理する技術です。「何を、どの形式で、どのタイミングで、どの順序で渡すか」を設計します。元 OpenAI の研究者 Andrej Karpathy が、LLM を新しい種類の OS に、コンテキストウィンドウを CPU に対する RAM(作業メモリ)にたとえて広めました。

プロンプトエンジニアリングとの関係

プロンプトエンジニアリングは、指示文そのものの書き方を工夫する技術です。コンテキストエンジニアリングは、指示文に加えて、参照文書、会話履歴、使えるツールの情報など、回答の前提になる情報全体を設計します。だから、プロンプトエンジニアリングはコンテキストエンジニアリングの一部です。試験では「どちらが上位概念か」が問われます。

解決する4つの課題

  1. 入力できる量の限界: 長く動かすと、ツールの実行結果・検索結果・対話履歴が溜まって上限に達する。超えた分は処理されず、重要な情報が落ちる。
  2. 認識の限界(Lost in the Middle): スタンフォード大学の研究によると、LLM はコンテキストの先頭と末尾を参照しやすく、中間部分を見落としやすい。配置する位置が出力品質を左右する。
  3. コンテキスト汚染: ハルシネーションが一度コンテキストに混入すると、後の判断に悪影響が出る。自分の出力を次の入力に使うため連鎖的に広がる。
  4. コンテキスト混乱: 無関係・矛盾する情報が混ざると推論が阻害される。関連性・時系列・矛盾を管理する設計が要る。

LLM に渡す7種類の情報

試験では「AI が参照したこの情報は7種類のどれか」が問われます。

種類 中身
システムプロンプト すべての対話に共通する役割・前提・制約・行動指針。土台であり、最初に最も時間をかけて設計する「ぶれない軸」
ユーザープロンプト 都度の指示や質問。エージェント環境では内部で生成される中間的なタスク指示も含む
短期メモリ いまのセッション内の対話履歴と状態。古い情報は除き、重要な決定事項は保持する
長期メモリ セッションをまたいで保持される情報。手続き記憶(どう対応すべきか)、エピソード記憶(過去に何があったか)、意味記憶(事実)の3種類
外部知識(RAG) ナレッジベースから検索・取得した情報。全部足せばよいわけではなく、関連度・鮮度・量のバランスを考える
ツールの情報 使えるツールの定義と使い方。説明が曖昧だと誤ったツールを呼ぶか、ツールを使わずに自分の知識だけで答えようとする
構造化出力 応答形式の指示(JSON、表、テンプレート)。別システムに渡るため、形式がぶれると解析エラーになる

「過去の対話で得た情報」は会話の記憶、「ナレッジベースを検索して得た情報」は外部知識(RAG)です。

4つの手法

4つの設計原則

  1. 必要十分の原則: 「関係するかもしれない」で足さない。「この情報がなければ正しい出力ができないか」を問う。
  2. 構造化の原則: 重要な制約はシステムプロンプトの冒頭に。参照情報と指示文を区別し、番号付きリストや見出しで構造化する。人に読みやすい文書と AI が処理しやすい構造は違うことがある。
  3. 鮮度の原則: LLM は後半(最新の部分)をより強く参照するので、重要な指示や直近の状況は後半に置く。
  4. 反復検証の原則: 情報を1つ足す・引くという小さな変更で出力の変化を試しながら改善する。

情報を過剰に与えると、応答が遅くなり、トークンが増えてコストが上がり、重要な情報が埋もれる、という3つの問題が出ます。「何を渡すか」と同じくらい「何を渡さないか」を設計します。 RAG で多数ヒットしても全部渡さず、類似度の高い上位数件に絞る方が出力品質は上がります。

原因切り分けの順序

出力品質が期待を下回ったら、この順で疑います。

  1. 情報の欠落: 必要な情報が渡っているか。
  2. ノイズの混入: 関係ない情報が混ざっていないか。
  3. フォーマットや指示の粒度: 構造や指示が曖昧でないか。
  4. それでも解決しないとき、初めてモデルの変更やアーキテクチャの見直しを検討する。

たとえば「出力の口調が業務にふさわしくない」という問題なら、モデルを変えるのではなく、システムプロンプトの口調の指定を具体化するのが改善アプローチです。

この考え方を広げたものがハーネスエンジニアリングです。ハーネスは馬を正しい方向に導く手綱のことで、AI が正しく動ける環境全体の設計を指します。範囲はコンテキスト設計、データ品質管理、出力の自動チェック(期待した形式・内容・品質を満たすかを自動検証し、問題のある出力が後続に流れる前に検出する)、Human-in-the-Loop の設計、の4領域です。自動化レベルで言えば、Lv.2 ではシステムプロンプトとナレッジの設計、Lv.3 では各アクションに渡すコンテキストの設計、Lv.4 では自律的な判断を積み重ねるほど各ステップの設計精度が成果を規定します。

試験で問われる観点

この節の練習問題(3問)

答えを見る前に選んでから開いてください。同じ問題は章別演習でランダム出題されます。

  1. 問1
    コンテキストエンジニアリングとプロンプトエンジニアリングの関係の説明として、最も適切なものはどれか。
    1. 1コンテキストエンジニアリングはプロンプトの文字数を減らしてトークン消費を抑える技術であり、プロンプトエンジニアリングの一手法として位置づけられる下位の概念である
    2. 2両者は同じ技術の別名であり、提唱者と広まった時期が異なるだけで、扱う情報の範囲や設計の対象に違いはなく、どちらの用語を使っても同じ作業を指す
    3. 3プロンプトエンジニアリングは人間向けの指示文の書き方を扱い、コンテキストエンジニアリングはAIエージェント同士が通信するための規約を設計する技術である
    4. 4プロンプトエンジニアリングは指示文そのものの工夫に焦点を当て、コンテキストエンジニアリングは指示文に加えて参考文書、ツール、会話履歴など回答の前提となる情報全体を設計する上位の概念である
    答えと解説

    正解: 4

    コンテキストエンジニアリングは、LLMに渡す文脈情報を「何を、どのフォーマットで、どのタイミングで、どの順序で渡すか」まで体系的に設計・管理する技術です。指示文の工夫に焦点を当てるプロンプトエンジニアリングはその一部にあたります。コンテキストウィンドウをCPUに対するRAM(作業メモリ)と位置づけた比喩とともに広まり、導入の成否を分ける最重要の技術領域とされます。

  2. 問2
    提案書生成AIの出力品質が期待を下回っている。改善に向けた原因の切り分けの順序として最も適切なものはどれか。
    1. 1必要な情報が欠落していないか → 無関係な情報やノイズが混入していないか → フォーマットや指示の粒度は適切か、の順に確認し、それでも解決しなければモデルの変更を検討する
    2. 2まずより高性能なモデルに切り替えて出力品質を底上げし、それでも不十分な場合に初めて、渡している情報の欠落やノイズ、指示の曖昧さを一つずつ見直していく
    3. 3出力品質は主にモデルの推論能力で決まるため、渡している情報や指示の見直しは行わず、エージェントのアーキテクチャ全体をゼロから再構築することを最初に検討する
    4. 4渡す情報が多いほど品質は上がるため、関係しそうな社内資料をすべて追加してから改善効果を確認し、それでも不足なら指示文の書き方や出力形式を見直していく
    答えと解説

    正解: 1

    出力品質の問題はほぼすべて「渡している情報の問題」に帰着するため、モデルを変更する前に、必要な情報が正しいフォーマットで渡されているかを確認します。切り分けは情報の欠落、ノイズの混入、フォーマットや指示の粒度の順で、それでも解決しない場合に初めてモデル変更やアーキテクチャの見直しを検討します。「関係するかもしれない」情報を詰め込むと、応答速度の低下、コスト上昇、重要な情報が埋もれる問題が生じます。

  3. 問3
    RAGで多数の関連チャンクがヒットする提案書生成AIについて、コンテキストの設計として最も適切なものはどれか。
    1. 1コンテキストの量や配置は出力品質に影響しないため、順序は考慮せず取得した順にそのまま渡し、必要ならモデルを高性能なものに替える
    2. 2ヒットしたチャンクを全部渡すのではなく類似度の高い上位数件に絞り、重要な制約はシステムプロンプトの冒頭に、直近の状況や重要な指示は後半に配置する
    3. 3ヒットしたチャンクはすべて渡し、LLMが中間部分も均等に参照できるように、重要な制約は文脈の中央に配置して先頭と末尾には補足情報を置く
    4. 4情報の欠落を防ぐため、チャンクに加えて社内の関連資料をできる限り多く含め、どの情報を使うかの選択はLLMの判断に任せて設計者は絞り込まない
    答えと解説

    正解: 2

    LLMはコンテキストの先頭と末尾を参照しやすく中間を見落としやすい(Lost in the Middle)ため、配置が出力品質を左右します。重要な制約は冒頭に置く構造化の原則、直近の状況や重要な指示は後半に置く鮮度の原則に従い、関連性の低い情報を渡すことは渡さないことより悪い場合があるという選択(Select)の考え方で上位数件に絞ります。何を渡さないかの設計が、何を渡すかと同じくらい重要です。