このガイドはヒントの一覧ではなく、一つの手順です。7 つのステップを順に踏めば、タスクを明記し、適切な文脈を備え、予測できる形式で返し、実際の入力で検証されたプロンプトが完成します。
全体を通した例は、顧客のフィードバックを製品レポートに変えるプロンプトです。
ステップ 1:目的を 1 文で書く
成果を表す命令形の文を 1 つ書きます。書けないなら、タスクがまだ定まっていません。
Classify each piece of customer feedback by product area and sentiment.
動詞で始めましょう。分類する、要約する、抽出する、作成する、比較する、レビューする。素材を説明するだけのプロンプト(「これがフィードバックのデータです」)では、モデルはそれをどうしてほしいのかを推測するしかありません。
ステップ 2:モデルに足りない文脈を加える
有能な新しい同僚が知っておくべきことを挙げます。出力は誰のためか、製品の領域は何か、何をネガティブとみなすか。
The feedback comes from in-app surveys for a project management tool.
Product areas: Boards, Timeline, Reports, Integrations, Billing.
The report is read by product managers who decide what to fix next.
答えを変える文脈だけを含めます。出力に影響しない背景は、トークンを消費し、指示を薄めます。
ステップ 3:要件と制約を書く
期待を短いリストにします。サイズが関わる箇所には数値を使い、判断に迷うケースでの対応も書きます。
Requirements:
- Assign exactly one product area per item. Use "Other" if none fits.
- Sentiment is one of: positive, neutral, negative.
- Quote the phrase that justifies the sentiment, 12 words at most.
- If an item is not in English, classify it and add "language": "<code>".
避けることより、することを伝えましょう。「専門用語を使わない」より「平易な言葉を使う」のほうがうまくいきます。禁止は、なくしたいものを名指しするだけで、代わりの案を示さないからです。
ステップ 4:出力形式を定める
コードが回答を読むなら、形式を正確に指定します。人が読むなら、構造と長さを指定します。
Return a JSON array. Each element:
{"id": string, "area": string, "sentiment": string, "evidence": string}
Return only the JSON, with no commentary.
出力形式の欠落は、結果が安定しない最も一般的な原因の一つです。スキーマと検証については構造化出力のプロンプトのガイドで扱っています。
ステップ 5:指示とデータを分ける
変動する入力を区切りの中に置いて、モデルが指示と取り違えないようにします。これは最も単純な形のプロンプトインジェクションも防ぎます。
<feedback>
{{feedback_items}}
</feedback>
ステップ 6:必要なら例を加える
ルールを簡単に書けるなら、例は省きます。「ニュートラル」とは何かのように、タスクが判断に依存するなら、境界上のケースをカバーする 2〜3 組の入出力ペアを示します。選び方はゼロショット、ワンショット、フューショットプロンプティングを参照してください。
ステップ 7:テストし、測定し、見直す
実際の使い方を代表する入力でプロンプトを実行します。空の入力、非常に長い入力、混在した言語、敵対的なテキストなど、扱いにくいものも含めます。失敗を書き留め、1 つだけ変えて、もう一度実行します。このループは反復的なプロンプト最適化とプロンプト評価で扱っています。
モデルでテストする前に、モデルがなくても見つけられる問題を取り除きましょう。PromptFlowEngine のプロンプトアナライザーは、目的の欠落、あいまいな表現、数量化されていないサイズ、矛盾する指示、形式の欠落、区切りのない変数をチェックします。
完成したプロンプト
You are a product analyst.
## Task
Classify each piece of customer feedback by product area and sentiment.
## Context
The feedback comes from in-app surveys for a project management tool.
Product areas: Boards, Timeline, Reports, Integrations, Billing.
The report is read by product managers who decide what to fix next.
## Requirements
- Assign exactly one product area per item. Use "Other" if none fits.
- Sentiment is one of: positive, neutral, negative.
- Quote the phrase that justifies the sentiment, 12 words at most.
## Output format
Return a JSON array. Each element:
{"id": string, "area": string, "sentiment": string, "evidence": string}
Return only the JSON.
## Input
<feedback>
{{feedback_items}}
</feedback>
手元に置いておくチェックリスト
| 質問 | 答えが「いいえ」の場合 |
|---|---|
| 最初の行で何をするかが分かるか。 | 目的を追加する。 |
| 新しい同僚にとって十分な文脈があるか。 | 対象読者、分野、定義を追加する。 |
| サイズは数値で示されているか。 | 「短い」「いくつか」を置き換える。 |
| 出力形式は指定されているか。 | 形式と長さを追加する。 |
| 入力は指示から分離されているか。 | 変数をタグで囲む。 |
| 難しい入力で実行したか。 | 小さなテストセットを作る。 |
これらのチェックをすでに通過している出来合いの出発点は、プロンプトテンプレートを参照してください。各ステップの背景にある習慣については、プロンプトエンジニアリングのベストプラクティスに進んでください。