この記事の音声は準備中です。
音声の一覧・再生リストへプロンプトエンジニアリングの上級パターン
この記事の目的
基礎技法で名前と使いどころを掴んだ技法を、なぜ効くか(仕組み)・どう設計するか(詳細)・どう検証するかまで掘り下げます。難しいタスクのプロンプトを設計し、うまくいかないプロンプトを原理から診断できる状態がゴールです。
対象読者
- 基礎技法では足りない複雑なタスク(長文書・厳密な形式・揺れる判断)のプロンプトを設計するエンジニア
- 「動いているが理由が説明できない」プロンプトを、根拠のある設計に作り直したい人
前提知識
- プロンプトエンジニアリングの基礎技法 — 技法の名前と使いどころ(本記事はその詳解)
- LLM はどうやってテキストを生成するか / 注意機構とコンテキストウィンドウの仕組み — 「なぜ効くか」の根拠として全編で参照します
本文
概要: 基礎技法との分担
| 層 | 正本 | 本記事 |
|---|---|---|
| 名前と使いどころ | 基礎技法 | — |
| 技法の詳細設計と検証 | 本記事 | 構造化・例示・思考・出力・長文・頑健性の 6 領域 |
| システムプロンプト(長期間・多状況) | Agent 向けプロンプト設計 | — |
| モデル別の具体的な推奨 | Claude / OpenAI / Gemini の特化ガイド | 本記事はモデル中立の原理まで |
構造化の詳解: 配置には 3 つの力学がある
プロンプトの構造(何をどの順で置くか)は、キャッシュの仕様と、配置を変えたときの品質を合わせて決めます。以下は比較実験を始めるための 3 つの観点で、すべてのモデルに共通する最適配置ではありません。
図を元の大きさで表示
図の中をスクロールして読めます。キーボードでは図の領域へ Tab で移動し、矢印キーを使います。読み終わったら、この見出しをもう一度選ぶと閉じます。
- レイヤ構造: 役割・制約・手順(固定)→ 例(半固定)→ 資料(タスクごと)→ ユーザー入力(可変)は、前方一致方式のキャッシュを利用しやすい配置例です(注意機構とコンテキストウィンドウの仕組み)。長文内の位置で品質が変わることは Lost in the Middle でも報告されていますが、末尾が常に最良とは限りません。資料の前後に置いた指示を比較評価します
- 区切りの設計: 領域(指示・資料・例・出力欄)を開始・終了が明確なタグで囲み、対応関係を示します。資料側に同じ区切りが含まれる場合のエスケープも設計します。タグは認可や信頼境界の強制手段ではありません。記法の効果は利用中モデルで確認します
- 役割・視点の設計: 役割の付与は語彙・粒度・前提の選択を条件付けます(生成の条件が変わる、という 10 章の原理そのもの)。効かせ方の要点は「肩書き」ではなく判断基準と読者像を与えることです(「あなたは専門家」より「◯◯の観点で、△△な読者向けに」)。過剰な人格設定は口調にばかり効いて判断品質に効かないことが多く、トークンの無駄になります
例示(few-shot)の詳解: 例は第 2 の仕様書
- 選択: 例セットは「分布の代表 + 境界例 + 否定例」を候補にします。「該当なし」「回答を拒否すべき入力」も対象に含め、常に肯定的な結果を出す偏りがないか確認します。分類では例のラベル比率を変えた場合の誤判定も測ります
- 順序: 例の順序だけで性能が大きく変わる結果が Lu らの原論文 で報告されています。最後の例が出力形式を決めるという一律の規則ではありません。順序を入れ替えて比較し、指示の明文化・例の選択・モデル差を切り分けます
- 形式の伝染: 例の長さ・文体・構造は内容と独立に出力へ伝染します。これは意図的に使えば強力な形式制御(スタイルを例で示す)であり、無自覚だと事故(例が全部短いので出力も短くなる)になります
- 動的選択: 入力に類似した例を検索して差し込む方式は、多様な入力分布で精度を上げますが、(1) 例がプロンプトの可変部分になるためキャッシュと衝突する(後方に置く)、(2) 検索品質が新たな故障点になる、という代償があります。静的な例で足りるかをまず検証します
思考の制御: モデルと検証手段で使い分ける
- 中間成果を使うか評価する: 通常の生成モデルでは、計算結果や検証可能な中間ステップを先に生成する方式が候補になります。内部で推論するモデルには同じ手順を強制せず、目標と成功基準を指定します。画面に出る説明の順番だけから、内部で推論したかや回答の正しさは判断できません
- 自己検証をさせる: 生成後に「上の回答を次のチェックリストで検証し、問題があれば修正版を出力」と続ける 2 段構成は、形式ミスや明白な矛盾に有効です。ただし根拠のない自己修正は改善を保証しません — 検証器ループの中でモデルの出力・行動の正しさを確かめる仕組み。決定的検証(テスト・lint・スキーマ)・モデル検証(judge)・人による検証(HITL)の 3 種があり、安くて確実なものから順に配置する。(テスト・照合)なしの「もう一度考えて」は、正解を不正解に変えることもあります。自己検証には検証可能な基準を渡します
- 推論モデル応答の前に中間の思考(推論トークン)を生成してから答える LLM。多段推論・検証可能な問題で精度が上がる一方、単純タスクでは遅く高くなる(overthinking)。思考量は努力パラメータ等で制御する。では公式ガイドを確認する: 例えば OpenAI の推論モデル向けガイド は、明示的な思考手順の指示を不要としています。目標・制約・成功基準・出力仕様を渡し、対応するモデルでは推論量のパラメータも評価します(基礎技法)。パラメータの有無・範囲は API に依存します
出力の制御: 「お願い」を物理的な制約に近づける
- 応答の書き出し指定(prefill): アシスタント応答の冒頭を開発者側で与えてから続きを生成させる技法です。前置きの除去(いきなり JSON から始めさせる)・形式の強制・役割の維持に効きます。生成は与えた書き出しの続きとして条件付けられるため、指示より強い形式制御になります(対応可否・作法はモデルにより異なります)
- 停止シーケンス: 「ここで止まる」を文字列で指定し、余計な続きを構造的に断ちます。区切り記法と組にすると安定します
- 構造化出力LLM の出力を JSON Schema などの機械可読なスキーマに従わせる技術。後続の処理がコードである出力(分類・抽出・スコア)に使う。との併用: 機械処理する形式は構造化出力(構造化出力)で強制するのが正本です。プロンプト側の仕事は「フィールドに何を入れるか」の内容品質に集中させます
- 長さの制御: 最大トークン数は「打ち切り」であって長さ指定ではありません(LLM はどうやってテキストを生成するか)。長さは指示(「3 点、各 1 文」)と例で制御し、上限はあくまで安全弁にします
長文・大量データのパターン
- 配置と引用: 資料と指示の位置を変えて品質を比較します。該当箇所を引用して回答と対応させる方式は、根拠を検査しやすくする候補です。引用自体の正確性と回答を支持するかも検証し、引用させるだけで見落としや誤答が減るとは仮定しません
- 分割 + 統合(map-reduce): 資料を分割して個別に処理し、結果を統合します。失敗モードは境界での文脈喪失(チャンクまたぎの情報)と、統合段での重複・矛盾です。分割時に重なり(オーバーラップ)を持たせ、統合プロンプトに矛盾解決の基準を書きます
- 逐次精緻化(rolling refinement): 要約を持ち回りながら順に読み進める方式は、長い時系列に強い一方、初期の誤りが増幅されるドリフト運用中に入力分布・対象環境・モデルの挙動等が想定から変化すること。緩やかな変化と急な変化があり、必ず品質劣化を意味するわけではない。品質指標・入力分布・構成変更を照合し、再評価や対応の必要性を判断する。が弱点です。節目でのリセット(全体見直し)を挟みます
- そもそも「全部渡す」が正しいかはコンテキスト設計の問題です(コンテキストエンジニアリング)
頑健性: きれいな入力を前提にしない
- 言い換え耐性: 同じ意図の別表現(パラフレーズ)でテストします。特定の言い回しにだけ効くプロンプトは、実ユーザーの前で崩れます
- 崩れた入力への振る舞い: 不完全な JSON・誤字・複数言語の混在・空入力に対する挙動を明示的に指定します(「解析できない場合は
parse_errorを返す」)。指定がなければモデルは推測で補い、静かな失敗エラーを出さずに完走しながら、誤った結果を返す・誤った副作用を残す失敗。技術メトリクスに現れないため、品質シグナルによる検知設計が必要になる。になります - 指示とデータの分離の徹底: 処理対象データの中の命令文(「これまでの指示を無視して…」)を実行しない、という振る舞いはプロンプトでも明示しますが、これは防御の 1 層にすぎません。境界の設計と構造的な防御は プロンプトインジェクションが正本です
パターンの検証方法
上級技法ほど「効いた気がする」に陥りやすいため、検証の規律が本体です。
- 変更の寄与を分ける: 最初は 1 変更ずつ比較します。複数を組み合わせた場合は、要素を外す比較実験で個別の効果と組み合わせの効果を確認します
- ペア比較 + 複数回実行: 変更前後を同じ評価セットで、非決定性を踏まえ複数回比較します(Agent 評価の基礎)
- 説明と証拠を分ける: 10 章の仕組みは仮説作りに使います。「なぜ効いたか」の説明がもっともらしくても因果関係の証明にはなりません。未使用の判定セットやモデル更新後の再評価で効果が残るか確認します
- 記録: 採用したパターンと検証結果を資産として残します(プロンプト資産の管理とバージョニング)
実務での注意点
アンチパターン
- 技法を足し算で盛り込む → 役割 + 例 8 個 + 思考指示 + 制約 30 行…と積むほど干渉し、どれが効いているか不明になる → 最小構成から 1 変更ずつ検証して足す
- 例を増やせば精度が上がると考える → 効くのは数ではなく選択(代表・境界・否定例)と一貫性。増えた例はコストと干渉になる → 例セットを設計し、順序シャッフルで頑健性を確認する
- 検証器のない自己検証で品質を保証する → 「もう一度考えて」は正解を壊すこともある → 自己検証には検証可能な基準(チェックリスト・照合手段)を渡す
- prefill・区切り記法を別モデルへ無検証で移植する → 対応・効き方はモデル依存で、静かに無効化される → 移行時に公式ガイド確認 + 回帰評価を行う(バージョニング・デプロイ・モデル更新追従)
- きれいな入力だけでテストする → 実入力の言い換え・崩れで一気に劣化する → パラフレーズ・破損入力をテストセットに含める
チェックリスト
- プロンプトがレイヤ構造(固定 → 半固定 → 可変)になっており、配置の理由を説明できる
- 例セットに境界例・否定例が含まれ、ラベル分布を確認した
- 考察と結論の生成順序が、品質要求と整合している
- 機械処理される出力は構造化出力 + プロンプトは内容品質、と分担している
- 長文処理の方式(全文・分割統合・逐次)を資料の性質から選んだ
- パラフレーズ・崩れた入力での挙動を検証した
- 採用パターンごとに「なぜ効くか」と検証結果が記録されている
関連トピック
- プロンプトエンジニアリングの基礎技法 — 入口(名前と使いどころ)
- プロンプト最適化(評価駆動の改善と自動化) — 本記事のパターンを「どう改善に回すか」
- Agent 向けプロンプト設計 — システムプロンプトへの適用
- 構造化出力 — 形式制御の強制側
- 注意機構とコンテキストウィンドウの仕組み — 配置の力学の理論
- コンテキストエンジニアリング — プロンプトの外側(何を渡すか)の設計
- モデル間の違いと移行(横断比較) — 本記事の原理を各モデルの具体に落とす際の差分(各社の特化ガイドへの入口)
参考資料
- Lu et al. — Fantastically Ordered Prompts and Where to Find Them — 少数例示の順序への感度とモデル間での違い(アクセス日: 2026-09-10)
- Liu et al. — Lost in the Middle — 長文中の関連情報の配置を変える実験(アクセス日: 2026-09-10)
- Huang et al. — Large Language Models Cannot Self-Correct Reasoning Yet — 評価対象の推論タスクで、外部フィードバックのない自己修正が失敗・悪化する場合を報告(アクセス日: 2026-09-10)
- OpenAI — Reasoning best practices — 内部推論を行うモデルへの指示の実例。全ベンダーの一律の仕様ではありません(アクセス日: 2026-09-10)