プロンプト & コンテキストエンジニアリング
技法から思考法まで
「コンテキストは最大の資産」「プロンプトは具体的に」——本ドキュメントでは散らばりがちなノウハウを体系化。7つの基本技法(❌/✅対比)、マルチモーダル&RAG向け入力設計、3大フロンティアモデルの特性比較、インジェクション防御、Tokenコスト最適化、6つの書き換え実例、12の実践テンプレートまで網羅します。
全体像:プロンプトエンジニアリングからコンテキストエンジニアリングへ
2023年に広く語られた「プロンプトエンジニアリング(どう問いかけるか)」は、2026年には コンテキストエンジニアリング(モデルに見せるすべての情報をどう設計・管理するか) へと進化しました。単発の質問への回答から「自律的なタスク遂行」へとAIの役割が変化したためです。
| 項目 | プロンプトエンジニアリング(単発型) | コンテキストエンジニアリング(エージェント時代) |
|---|---|---|
| 最適化対象 | 単一の指示文の表現 | コンテキストウィンドウ全体に何を・いつ投入し・いつ破棄するか |
| 主要制約 | 指示の明確さ | Attention(注意)予算の有限性:トークン過多による注意散漫 |
| 代表的アクション | 例文の追加、フォーマットの指定 | システムプロンプトの階層化、ツールセットの絞り込み、要約・圧縮 |
| 公式定義 | 最小限の高シグナルトークンセットによって、目的の成果物が得られる確率を最大化する(Anthropic Context Engineering 論文より) | |
7大基本技法(❌/✅ 対比)
1. 明確性と具体性 (Be Clear & Direct)
2. Few-shot(具体例の提示)
3. 思考プロセスの明示 (Chain of Thought / CoT)
4. 構造化タグによるコンテキスト分離 (XML/Markdown Tags)
5. 役割とトーンの定義 (Role & Persona)
6. ネガティブ制約(禁止事項の明確化)
7. 出力フォーマットの厳格指定
構造化出力 & フォーマット制御
プログラムによる自動処理を行う場合、JSON Mode や Structured Outputs(Pydantic スキーマ等)を活用し、パースエラーの発生率を物理的にゼロに近づけます。
# Pydantic スキーマによる確実な構造化出力
class CodeAuditResult(BaseModel):
has_vulnerability: bool
severity: Literal["LOW", "MEDIUM", "HIGH", "CRITICAL"]
cve_id: str | None = None
remediation_steps: list[str]
マルチモーダルプロンプトの極意
- UI スクリーンショット: 解像度を適切に保ちつつ、注目すべき領域を赤枠やアノテーションで強調。
- 設計書・PDF: ページ数が多い場合は、該当章を特定して抽出投入し、Attention 散漫を防ぐ。
- OCR テキストとの併用: 画像だけでなく、抽出可能なテキストデータを併せて渡すことで認識精度が飛躍的に向上。
モデル別の指示調整
推論、ツール、構造化出力、複数モダリティの公式説明を確認します。古いモデルのコツを一般化せず、条件をそろえて比較します。
developers.openai.com · prompt-engineering · 2026-09-09
RAG シナリオにおけるプロンプト設計
RAG(検索拡張生成)では、検索されたコンテキストをモデルが「事実」として優先するようプロンプトで制御します:
<system>
以下の <sources> に記載されている情報のみに基づいて回答してください。
資料内に回答が存在しない場合は、一般的な推測を行わず「提供された資料には記載がありません」と明答してください。
すべての主張には [1] のような出典番号を付与してください。
</system>
コンテキストエンジニアリングの核心
「コンテキストウィンドウが大きいからといって、何でも詰め込んでよいわけではない」——これが現代の鉄則です。コンテキスト内の情報量が増えるほど、トークンあたりの Attention 強度は低下 します。
- 高シグナル・低ノイズ: 不要な依存関係ファイルやビルド成果物は除外して投入。
- 位置バイアス(Lost in the Middle): 重要な指示やルールは、コンテキストの最前部または最後尾に配置。
- Context Caching の活用: 静的な仕様書やリポジトリ定義はキャッシュし、コストとレイテンシを削減。
自律型エージェント(Agentic)のコンテキスト管理
長期にわたるタスクをエージェントに任せる場合、コンテキストの肥大化と迷走を防ぐための設計が必要です:
- サブエージェント分割: 調査(Research)、設計(Plan)、実装(Coder)で独立したコンテキストを持たせる。
- 中間成果物の永続化: 思考過程をディスク上の Markdown(
implementation_plan.md等)に書き出し、記憶を外部化。 - コンテキストの定期リフレッシュ: 単一セッションで何十回もやり直さず、キリの良いところで新しい対話を開始。
Token 経済学とコスト管理
・日常のルーティングや軽微な整形には軽量モデル(Flash / Mini)を割り当て。
・過度な会話ログを適宜要約・クリア。
・全タスクに最高額の推論モデルを画一的に使用。
モデルルーティングは評価から
品質による選択、負荷分散、障害時切替を区別し、代表課題で評価します。古い issue や検索結果の不足で機能の不存在を断定しません。
Prompt インジェクション & セキュリティ防御
- 間接的インジェクション対策: 外部 Web ページやユーザー入力テキストを処理する際、プロンプト指示とデータ領域を明確に分離。
- 実行権限のガードレール: コマンド実行やファイル削除を行う前に、インターセプターミドルウェアで危険なパターンを検知・遮断。
書き換え実例集(全6ケース)
複雑なレガシーコードのリファクタリング
500行のスパゲッティコードを関数分割したいケース。
このファイルを綺麗にリファクタリングして。
以下のファイルをリファクタリングしてください。
1. 単一責任の原則に従い、ビジネスロジックと外部API通信を別モジュールに分離。
2. 既存のすべての公開関数シグネチャと戻り値の型は維持。
3. まずリファクタリング計画を箇条書きで提示し、私の承認後にコードを出力してください。
本番用テンプレート集(全12式)
あなたはシニアテックリードです。以下のプルリクエスト差分をレビューしてください。
重点項目:
- セキュリティ脆弱性(SQLi, XSS, 権限チェック漏れ)
- パフォーマンス(N+1問題、メモリリーク)
- 型安全性と例外処理
出力形式:重大度(CRITICAL / WARN / INFO)ごとの箇条書き
評価・反復・バージョン管理
プロンプトは「プログラムコード」と同様に Git でバージョン管理し、回帰テスト用の評価データセット(Eval Suite)を作成して精度を検証します。
アンチパターン図鑑
- 万能プロンプト病: 1つの巨大プロンプトにあらゆる要件を詰め込み、モデルの注意を飽和させる。
- 感情的懇願: 「お願いだから間違えないで」と懇願し、型スキーマや具体的制約を与えない。
- コンテキスト汚染: 過去のエラーログや迷走した会話履歴をクリアせずに引きずり続ける。
Claude Code / Codex における設定階層
| ツール | グローバル設定 | プロジェクト設定 | 実行時コンテキスト |
|---|---|---|---|
| Claude Code | ~/.claude/config.json | CLAUDE.md / .claude/skills/ | ターミナル引数 / /mcp |
| Antigravity / Codex | ~/.antigravity/config | AGENTS.md / implementation_plan.md | Workspace 状態 / サンドボックス |