コンテキストエンジニアリング
LLMプロダクトにおいてパーソナライズや高品質な出力を実現するための核心的概念。「何をLLMに与えるか(コンテキストの設計)」を体系的に行うエンジニアリング手法。Tomoki Yoshida(DeNA)が社内LLM勉強会で特に重要なトピックとして位置付けた。
定義
「データを活用してパーソナライズを実現するには、コンテキストエンジニアリングが重要」
LLMの出力品質は、モデル自体の性能だけでなく、モデルに渡す情報(コンテキスト)の質と設計によって大きく左右される。コンテキストエンジニアリングとはこの「何を・どのようにモデルに渡すか」を設計・最適化する技術体系。
プロンプトエンジニアリング(業務効率化)との関係
| 観点 | プロンプトエンジニアリング | コンテキストエンジニアリング |
|---|---|---|
| スコープ | プロンプトの文言・構造の設計 | プロンプト全体に何を含めるかの設計 |
| データ活用 | 主に静的な指示 | 動的なデータ挿入を含む |
| 関心事 | 指示の書き方 | 知識・文脈・ユーザー情報の注入設計 |
コンテキストエンジニアリングはプロンプトエンジニアリングを包含・拡張する概念。
主な実装パターン
1. RAG(検索拡張生成)
関連ドキュメントをベクトル検索で取得し、プロンプトに動的挿入する。詳細はRAG(検索拡張生成)参照。
2. ユーザー履歴・プロファイルの注入
ユーザーの過去行動・設定・嗜好をプロンプトに含めることでパーソナライズを実現。
3. Tool Calling(ツール連携)
外部APIやDBを呼び出して結果をコンテキストに取り込む。リアルタイム情報の活用。
4. マルチターン文脈管理
会話履歴の適切な圧縮・選択により、長い対話でも関連コンテキストを維持。
Agent Skillsとの接続
Agent Skillsの「段階的開示(Progressive Disclosure)」もコンテキストエンジニアリングの一形態。スキルのメタデータ→SKILL.md→補助ファイルの3段階でコンテキストウィンドウを効率的に利用する設計。
プロンプト管理の原則
DeNA勉強会では保守運用・チューニング観点として以下を強調:
- プロンプトに指示を足し続けるのではなく、全体を見直す
- 局所的な追記が積み重なると全体の整合性が失われる
- 定期的なプロンプト全体の棚卸しが品質維持に不可欠
関連概念
- RAG(検索拡張生成) — コンテキストエンジニアリングの最重要実装パターン
- LLMプロダクト開発 — コンテキストエンジニアリングが活きるプロダクト設計の文脈
- Agent Skills — 段階的開示によるコンテキスト効率化(コンテキストエンジニアリングの一形態)
- AIエージェント開発入門プロセス — エージェント設計でもコンテキスト管理が重要
関連エンティティ
- Tomoki Yoshida — DeNA勉強会でコンテキストエンジニアリングをLLMプロダクト開発の核心として位置付けた