AI
約9分
更新

業務効率を上げるプロンプトエンジニアリングの基本

執筆・編集Malake株式会社
まず押さえたいこと

プロンプトエンジニアリングとは、AIから意図した回答を引き出すために、指示(プロンプト)の前提・制約・出力形式・例外時の扱いを設計することです。

この記事の要点

同じ結果を得やすいプロンプトには、目的・制約・入力・出力形式と、情報が足りないときの扱いを書きます。出力を他システムへ渡す場合は、文章で形式を頼まずスキーマで指定する構造化出力を使います。長い資料は先に置き、指示を最後に書き、根拠となった箇所を示させます。テンプレートは最終確認日と管理者を決めて共有し、モデルの更新時は同じ入力で結果を比較してから移行します。

この記事でわかること

  • 業務プロンプトが失敗する理由(曖昧・長文・責任不在)
  • 基本テンプレ(コピペ可)
  • 品質を上げる技法(例:役割、制約、出力形式)
  • 出力を機械的に扱う:構造化出力
  • 長い資料を渡すときの組み立て方
  • 思考の手順を指定する / モデルごとの作法
  • 例外処理とHuman-in-the-loop(レビュー設計)
  • 部門展開(テンプレの運用・教育)
  • よくあるNGと改善例
  • チェックリスト(安定運用)

業務プロンプトが失敗する理由(曖昧・長文・責任不在)

AIから期待した回答を得られるかどうかは、指示がどれだけ具体的かに大きく左右されます。期待した回答が得られないプロンプトには、次のような共通点があります。

  • 曖昧な指示:「いい感じにまとめて」と頼むと、AIは何を優先すればよいかが分かりません。
  • 文脈の欠如:「このメールに返信して」だけでは、誰の立場で、どのような調子で書くのか、断るのか引き受けるのかが伝わりません。
  • 条件の後出し:「要約は300文字以内で」「箇条書きにしてほしかった」と後から条件を足すと、やり直しが重なり、自分で書いたほうが早かったという結果になりがちです。

こうした抜けや後出しは、次の基本テンプレートを使うと減らせます。

基本テンプレ(コピペ可)

次の形式をテンプレートとして登録し、案件ごとの情報を埋めると、指示の漏れと担当者による出力差を減らせます。

① 汎用:作業を依頼する型

# 命令
あなたはプロの[役割を入れてください]です。
以下の[制約条件]を守り、[入力文]を元に、[目的]を達成する成果物を作成してください。

# 制約条件
- 文字数:[xxx]文字程度
- トーン:[丁寧 / 親しみやすく / 論理的]
- 出力形式:[Markdown箇条書き / プレーンテキスト]
- 禁止事項:[専門用語を使わない / 推測を含めない]

# 入力文
[ここにメール本文や議事録をペースト]

# 出力文

② 要約:議事録や文書を整理する型

# 命令
以下のテキストは[会議の文字起こし]です。
内容を要約し、決定事項と次の対応を抽出してください。

# 出力形式
## 会議の概要(3行)
[ここに概要]

## 決定事項
- [決定したこと]
- [決定したこと]

## 次の対応(担当者・期限)
- [タスク]: [担当名] ([YYYY/MM/DD])

# 入力テキスト
[ここにテキストをペースト]

品質を上げる技法(例:役割、制約、出力形式)

出力の質を上げるために、よく使われる書き方には次のようなものがあります。

  • 役割を与える:「あなたは熟練のマーケターです」のように、AIの立場を決める方法です。言葉の選び方や説明の細かさは変わりますが、事実の正確さが上がるとは限りません。正確さは、後で説明する根拠の提示や確認で補います。
  • 例を示す(Few-Shot):してほしいことの例を1〜2個見せます。「Aと聞かれたらBと答える」のように示すと、説明を重ねるより早く意図が伝わることがよくあります。
  • 出力の形式を指定する:「CSV形式で」「表にしてコードブロックに入れて」と指定すると、Excelへ貼り付けやすくなります。

出力を機械的に扱う:構造化出力

出力を別のシステムへ渡す場合は、形式を文章で頼まず、スキーマ(項目名と型の定義)で指定します。主要なAIサービスのAPIには、出力を指定したJSON構造に従わせる機能(Structured Outputs、JSONモードなど)があります。

{
  "type": "object",
  "properties": {
    "company_name": { "type": "string" },
    "inquiry_type": { "type": "string", "enum": ["見積", "サポート", "採用", "その他"] },
    "urgency":      { "type": "string", "enum": ["高", "中", "低"] },
    "summary":      { "type": "string" }
  },
  "required": ["company_name", "inquiry_type", "urgency", "summary"]
}

「JSONで出力してください」と文章で頼む方法との違いは、受け取る側が形式を検証できる点にあります。項目の欠けや、想定外の値(enumにない分類)が混ざるのを防げるため、後続の処理でのエラーを減らせます。分類の選択肢を先に決めることは、業務の側で集計の切り口を決めることにもなります。

ただし、形式が正しくても、内容が正しいとは限りません。構造化出力で保証されるのは、urgencyが3つの選択肢のいずれかになることまでで、その判定が妥当かどうかは保証されません。重要な判断には人の確認工程を残します。

長い資料を渡すときの組み立て方

規程や仕様書など長い資料を読ませる場合は、指示の書き方に加えて、資料と指示をどこに置くかも結果に影響します。

  • 資料を先、指示を後に置く:長い資料を渡すときは、資料本文を先に入れ、最後に「上記の資料に基づいて〜してください」と指示を置きます。指示が資料に埋もれるのを防げます。
  • 資料の区切りを明示する:複数の文書を渡すときは、XMLタグ(<document title="就業規則">…</document>)などで区切ります。AIがどの記述をどの資料から引いたか判別しやすくなります。
  • 引用箇所を書かせる:「回答の根拠となった箇所を、資料名と該当文とともに示してください」と指示します。根拠を示せない回答は、資料に書かれていない推測である可能性が高いと考えられます。
  • 全文を毎回貼らない:同じ資料を繰り返し参照する運用なら、都度貼り付けるよりRAG(検索拡張生成)で必要箇所だけを渡す構成に切り替えます。

資料が長くなるほど、途中の記述が結果に反映されにくくなる傾向があります。重要な条件は、資料の本文に加えて末尾の指示にも書いておくと、結果が安定しやすくなります。

資料の確認から返信案の文書づくりまでを、AIエージェントに1つの作業として任せる場合の依頼文の例は、AIエージェントの始め方と活用例で紹介しています。

思考の手順を指定する / モデルごとの作法

判断を伴う作業では、結論だけを求めるより手順を分けて指示するほうが安定します。「まず条件を列挙し、次に各条件への適合を確認し、最後に結論を述べてください」のように、確認の順序を書き出す方法です。

ただし、この書き方の効きはモデルの種類によって変わります。

モデルの種類 プロンプトの書き方
標準的な対話モデル 手順を明示的に指定すると精度が上がりやすい。例示(Few-Shot)も有効。
推論に特化したモデル 内部で手順を組み立てるため、細かい手順指定は不要な場合が多い。目的と制約、完成条件を簡潔に伝えるほうが結果が良いことがある。

モデルは更新されるため、特定モデル向けに作り込んだプロンプトは移行時に作り直しが必要になります。プロンプト本文には業務上の条件だけを書き、モデル固有の書き方は最小限にとどめると、乗り換えの負担を抑えられます。切り替えの際は、過去の入力と期待する出力を数件用意し、同じ入力で結果を比較してから移行します。

例外処理とHuman-in-the-loop(レビュー設計)

業務のプロンプトで書き忘れやすいのが、分からないときにどうするかの指示です。

情報が不足していて回答できない場合は、無理に答えず「情報不足」と答えてください。

この一行を加えると、資料に書かれていない内容を推測で埋める動きを抑えられます。ただし、推測が完全になくなるわけではないため、根拠の提示とあわせて使います。

AIの出力は、そのまま社外に出さないようにします。Human-in-the-loopの考え方に沿って、人が確認して必要な修正をする工程を、業務の流れに組み込みます。

部門展開(テンプレの運用・教育)

個人で使って効果を確かめられたら、チームに広げます。

  • プロンプト集の共有:うまくいったプロンプトを、Notionや社内Wikiにまとめて共有します。
  • 書き換える箇所の明示:どこを書き換えればよいかを、[ ]や{ }で分かるようにします。
  • 品質の定義:「AIが作るのは下書きまでで、事実確認と最終判断は人が行う」という前提をテンプレートに書き、AIに期待することを利用者の間でそろえます。
  • 更新の担当を決める:モデルの更新や業務の変更で、テンプレートは古くなります。プロンプト集に最終確認日と管理者を記載し、定期的に見直します。

よくあるNGと改善例

曖昧な指示を、確認可能な条件へ書き換える例です。

× NG例

この障害について社内向けの報告文を書いて。

→ 宛先、書く範囲、原因が分かっていない点の扱いが決まっていない。資料にない事実を推測で補われるおそれがある。

◎ 改善例

以下の障害記録をもとに、全社向けの第一報を400字以内で作成してください。含める項目は「影響範囲」「現在の状況」「次の連絡予定時刻」の3点です。原因が特定できていない項目には「調査中」と記載し、記録にない内容は追加しないでください。

→ 宛先、文字数、項目、未確定情報の扱いが指定されている。出力を確認する基準も明確になる。

チェックリスト(安定運用)

業務のプロンプトを作るときに確かめる項目です。

押さえておきたい点

プロンプトは、AIへ渡す業務指示書として管理します。目的、入力条件、期待する形式、判断できない場合の処理を具体的に記述すると、担当者が変わっても同じ手順を再利用しやすくなります。

自社の状況を確認する

  • □ AIの役割(「あなたは◯◯です」)を決めたか
  • □ 読み手と、使う場面を伝えているか
  • □ 守る条件(文字数、文体など)を書いたか
  • □ してはいけないこと(禁止事項)を書いたか
  • □ 出力の形式(表、箇条書きなど)を指定したか
  • □ 情報が足りないときの対応(「分かりません」と答えるなど)を指示したか
  • □ 具体的な例(Few-Shot)を含めているか
  • □ 複雑な作業は一度に頼まず、手順に分けて指示しているか
  • □ 個人情報や機密情報を入力しないよう注意書きを入れたか
  • □ 出力を人が確認する工程を設けているか

よくある質問

Q. 同じプロンプトなのに日によって回答が変わるのはなぜですか?

LLM(生成AI)は、次に来る語を確率にもとづいて選びながら文章を作るため、同じ入力でも出力が変わることがあります。ばらつきの大きさは、Temperatureなどの設定によっても変わります。回答を安定させたい場合は、例(Few-Shot)を増やしたり、出力の形式を細かく指定したりします。

Q. システムプロンプトとユーザープロンプトの違いは何ですか?

システムプロンプトは、AIの役割や守るルールなど、やり取り全体の前提を決めるものです。ユーザープロンプトは、そのつど頼む具体的な作業や入力データを指します。両者の役割を分けて書くと、結果が安定しやすくなります。

AIを、管理できる業務として運用します。

対象業務、入力データ、人による確認、評価方法から設計します。

AI導入・業務組み込みの支援内容を見る

この分野の全体像

生成AIを業務へ組み込む方法:対象業務の選定から運用まで

この分野の全体像と判断の順序をまとめた記事です。

全体像を読む

IT課題を、
優先順位から整理します。

Malakeは外部IT責任者として、現状の確認から実装・運用まで支援します。