AIエンジニアが今知るべき設計原則 / プロンプトからコンテキストへ
結論:何が変わったのか
- 「プロンプトエンジニアリング」から「コンテキストエンジニアリング」へ。これは単なる言葉の言い換えではありません。
- プロンプトエンジニアリングは「完璧な呪文を探す行為」でした。コンテキストエンジニアリングは「LLMが仕事をするために必要な情報を動的に組み立てるシステム設計」です。
- エージェントの失敗の大半は、モデルの失敗ではなくコンテキストの失敗です。
1. LLMの本質を理解する
LLMは「予測エンジン」です
LLMはデータベースから答えを検索しているのではありません。入力テキストの「最も確率的に自然な続き」を生成しています。したがって開発者の仕事は、モデルが予測する「続き」がユーザーの意図する「正解」と一致するように、確率空間を制約することにあります。
出力を制御する3つのパラメータ
| パラメータ | 役割 | 論理タスク | 創造タスク |
|---|---|---|---|
| Temperature | ランダム性の調整 | 0〜0.1 | 0.7以上 |
| Top-K | 候補トークン数の制限 | 1〜20 | 40以上 |
| Top-P | 累積確率による動的フィルタ | 0.9 | 0.95 |
- 重要: Temperature=0は最強の制約です。これを設定すると、Top-KやTop-Pの効果は無効化されます。
- 論理的推論(CoT)にはTemperature=0が必須です。
2. コンテキストの構成要素
「コンテキスト」とは、モデルが応答を生成する前に「見る」すべての情報を指します。
| Context Window | 内容 |
|---|---|
| System Prompt | モデルの振る舞い、ルール、例示 |
| User Prompt | 直接的なタスクや質問 |
| Conversation | 会話履歴(短期記憶) |
| Long-term Memory | 過去の会話から学んだ情報 |
| RAG Data | 外部DBやAPIからの最新情報 |
| Tools | 呼び出し可能な関数の定義 |
| Output Schema | 期待する出力形式(JSON等) |
重要な認識: これは「一度書いたら終わり」のテンプレートではありません。リクエストごとに動的に組み立てるシステムの出力です。