生成AIの指示を安定させるプロンプト設計の基本

生成AI(ChatGPT、Claude、Geminiなど)を使っていて、「思った通りに出力してくれない」「毎回結果が違う」「ちょっと変えると全く違う挙動になる」といった経験はありませんか? その原因の多くは、プロンプト(AIへの指示)の設計にあります。
プロンプト設計は「AIとのコミュニケーションの設計」です。ただ単に「こうしてほしい」と伝えるのではなく、AIが確実に理解し、再現可能な形で指示を組み立てる必要があります。本記事では、実務で即活用できるプロンプト設計の基本テクニックを、具体例とともに解説します。
特に、役割指定、出力形式の固定、制約条件の書き方、例示の入れ方、曖昧表現の避け方、レビューしやすいプロンプトの作り方の6点に焦点を当て、安定した出力を得るための方法をステップバイステップで紹介します。
なお、本記事は「安全設計」(セーフティガード、有害性フィルタリング)や「最新のモデル動向」には立ち入りません。あくまで「同じ指示で同じ品質の出力を確実に得る」という実務的な観点に絞ります。
1. 役割指定:AIに明確な立場を与える
最初にやるべきことは、AIに「どのような役割で応答してほしいか」を明確に指定することです。役割指定により、AIの応答スタイル、専門性、トーンが決まります。
1.1 基本的な役割指定の書き方
役割指定は、プロンプトの冒頭に簡潔に書きます。例:
あなたは経験豊富なソフトウェアエンジニアです。コードレビューの専門家として、以下のコードの問題点を指摘し、改善案を提示してください。
このコードをチェックして。
悪い例では、AIは「コードをチェックする」ことは理解しますが、どのような観点で、どの深さで、どの形式で出力すべきかが不明確です。その結果、出力が浅くなったり、的外れになったりします。
1.2 役割指定で変わる出力の具体例
同じ「要約」タスクでも、役割によって出力が変わります。
- 役割なし:「この文章を要約して」→ 単純な短縮版が生成される。
- 役割あり:「あなたは大学教授です。学生向けに、この学術論文の要点をわかりやすく要約してください」→ 専門用語をかみ砕き、教育目的に合わせた説明が加わる。
役割指定は、AIの「コンテキストウインドウ内での振る舞い」を方向付ける強力な手法です。必ず最初に明記しましょう。
2. 出力形式の固定:期待する形を先に伝える
出力形式を事前に指定しないと、AIは自由な形式で応答します。テキスト、箇条書き、表、JSON、XMLなど、望む形式を明確に指示しましょう。
2.1 形式指定の基本パターン
以下のように、具体的なフォーマットを例示します。
以下の商品リストについて、商品名、価格、在庫あり/なしの3列からなるマークダウン表を作成してください。
商品リストを表にして。
悪い例では、表の列や行が不明確で、出力が毎回変わる可能性があります。
2.2 構造化データの出力指示
プログラムで処理しやすいようにJSON形式で出力させるときは、スキーマを指定します。
次の情報をJSON形式で出力してください。 キーは "title" (文字列), "tags" (文字列の配列), "word_count" (整数) とします。
このようにスキーマを定義することで、AIは確実にその構造で出力します。また、出力形式を固定することで、後続の自動処理(パース、表示など)が容易になります。
3. 制約条件の書き方:やってほしいこと、やってほしくないことを明確に
制約条件とは、出力に含めてほしい要素、避けてほしい要素、長さ、スタイルなどの条件です。これを明文化しないと、AIは一般的な常識に従って出力するため、特定の要件を満たさないことがあります。
3.1 積極的制約(Do)と消極的制約(Don't)
- 積極的制約:「専門用語は必ず解説を付ける」「各項目は3行以内で説明する」「結論を最初に述べる」など。
- 消極的制約:「挨拶文は省く」「主観的な意見は入れない」「〜という表現は使わない」など。
両方を組み合わせると効果的です。
以下のテキストを要約してください。
【制約】
- 要約は200字以内とする。
- 専門用語は括弧内に平易な説明を追加する。
- 「〜と考えられる」「〜かもしれない」といった不確かな表現は使わない。
- 見出しは「要点」「背景」「結論」の3つとする。
3.2 数値による明確な制約
「短く」「詳しく」などの曖昧な表現ではなく、数値で指定します。
- 曖昧: 「短い要約を」
- 明確: 「要約は150字以内で」
数値による制約はAIが解釈の余地を持たないため、出力のぶれを大幅に減らせます。
4. 例示の入れ方:具体例が最も強力な指示
いくら言葉で説明しても伝わらない場合は、具体例(1つ以上)をプロンプトに含めます。AIは例からパターンを学習し、同じ形式・同じ質で出力します。
4.1 例示の効果的な書き方
「以下の例のように出力してください」と前置きし、入力と出力のペアを示します。
以下の例のように、商品名とその特徴を簡潔に紹介する文章を生成してください。
【例】
入力: 「エコバッグ、軽量、折り畳み可能」
出力: 「このエコバッグは軽量で折り畳み可能なため、買い物時にサッと持ち出せます。環境にも優しい素材を使用しています。」
---
入力: 「LEDデスクライト、調光可能、USB充電式」
出力:
例を1つ示すだけでも出力の質が向上します。可能なら2〜3の例を示すと、よりパターンが明確になります。
4.2 フェーズを分けた例示
複雑なタスクでは、段階ごとに例を示します。
ステップ1: 記事のアウトラインを作成 ステップ2: 各セクションを詳細化 ステップ3: タイトルとメタ説明を生成 【ステップ1の例】 入力: 「生成AIのプロンプト設計」 出力: 1. はじめに 2. 役割指定の重要性 3. 出力形式の固定 4. 制約条件の書き方 5. まとめ
このように、タスクを分解して例示することで、AIは各ステップで何をすべきか明確に理解できます。
5. 失敗しやすい曖昧表現の避け方
人間同士の会話では通じる曖昧な表現も、AIには解釈の余地が大きすぎます。以下によくある曖昧表現とその改善例を示します。
5.1 曖昧な表現リスト
| 曖昧表現 | 問題点 | 明確な表現 |
|---|---|---|
| 「適切に」 | 何をもって適切とするか不明 | 「専門家向けに詳細に」「初心者向けに平易に」 |
| 「きれいに」 | 視覚的か、コード的か、文章的なのか | 「コードはPEP8に従ってフォーマット」「文章は段落ごとに空行を入れる」 |
| 「詳しく」 | どの程度の詳細さか | 「各項目について3つの具体例を挙げる」「背景、原因、対策の3点で説明する」 |
| 「簡潔に」 | 短さの基準がない | 「要約は100字以内」「箇条書きで最大5項目」 |
| 「面白く」 | 面白さの定義が主観的 | 「比喩を2つ入れる」「意外な事実を1つ紹介する」 |
5.2 比較表現の明確化
「以前のものより改善する」といった表現も曖昧です。「以前のバージョンより実行速度を20%向上させる」「ユーザビリティテストのスコアを5点上げる」など、測定可能な基準を設定します。
曖昧表現を避けるコツは、「誰が読んでも同じ解釈になるか」を自問することです。もし解釈が分かれる余地があるなら、より具体的な表現に置き換えます。
6. レビューしやすいプロンプトの作り方
実務では、プロンプトをチームで共有・レビューすることがあります。他人が読んで理解できる、メンテナンスしやすいプロンプトを書くことが重要です。
6.1 プロンプトの構造化
長いプロンプトはセクションに分け、見出しをつけます。以下は構造化の例です。
# 役割 あなたはベテランの編集者です。 # タスク 与えられた原稿をチェックし、誤字脱字、表現の改善、論理の飛躍を指摘してください。 # 出力形式 - 指摘は箇条書きで - 各指摘は「ページ番号: 行番号 | 問題点 | 改善案」の形式 - 最後に総合評価を5段階で # 制約条件 - 指摘は最大10個まで - 専門用語は解説不要 - 肯定的なフィードバックも1つ含める # 例 入力: (例示の原稿) 出力: (例示の出力)
このように構造化することで、各セクションの目的が明確になり、修正も容易になります。
6.2 コメントの活用
プロンプト内にコメント(説明文)を入れることで、なぜその指示をしているのかを伝えられます。
# 以下の制約は、出力が法律文書としての厳密さを保つために必要です。
- 「できるだけ」などの曖昧な表現は使用しない。
- すべての条件を網羅的に列挙する。
コメントがあれば、レビュアーや将来の自分がプロンプトを修正する際に意図を汲み取りやすくなります。
6.3 バージョン管理と変更履歴
プロンプトをファイルとして管理し、変更履歴を残すことをお勧めします。シンプルな方法は、プロンプトの先頭にバージョンと変更内容を記録することです。
# プロンプトID: summarization_v2 # 作成日: 2026-04-20 # 変更履歴: # v1: 初版 # v2: 出力形式をJSONからマークダウン表に変更、文字数制約を追加
これにより、どのプロンプトがどのような結果を生んだか追跡でき、改善のサイクルが回しやすくなります。
まとめ:安定した出力を得るためのプロンプト設計チェックリスト
最後に、実務でプロンプトを設計する際に確認すべきチェックリストをまとめます。
- 役割指定はあるか? – AIがどの立場で応答するか明確か。
- 出力形式は固定されているか? – テキスト、表、JSONなど、期待する形式を指定しているか。
- 制約条件は具体的か? – 数値や具体例で曖昧さを排除しているか。
- 例示は十分か? – 特に複雑なタスクでは入力出力の例を示しているか。
- 曖昧表現がないか? – 「適切に」「きれいに」などの曖昧な言葉を使っていないか。
- レビューしやすい構造か? – 他人が読んで理解できるようにセクション分けやコメントがあるか。
生成AIは「指示通りに動く」のが基本ですが、その指示の質が出力の質を決めます。プロンプト設計を軽視せず、これらの基本テクニックを実践することで、AIからの出力を安定させ、業務での活用効果を最大限に高められるでしょう。
次回は、これらの基本を踏まえた「応用プロンプトパターン」や「プロンプトのテスト・評価方法」について解説する予定です。
※本記事は生成AI(DeepSeek‑Reasoner)を利用して作成されましたが、内容は実務経験に基づくものです。実際のプロンプト設計にお役立てください。
同じテーマの記事を続けて読むと、比較しやすくなり、必要な情報を短時間で集めやすくなります。
関連記事
気になるテーマがあれば、同じカテゴリの記事も続けて読むと理解が深まりやすくなります。