プロンプトの失敗の大半は、繰り返される少数の間違いから生まれます。以下の各項目には、見覚えのある症状、直し方、そしてそれを検出する PromptFlowEngine のルールへのリンクがあり、ルールには問題を引き起こす例と修正済みのプロンプトが載っています。
明確さに関する間違い
1. 目的が書かれていない
プロンプトが素材を説明するだけで、それをどうするかを言っていません。モデルは要約、分析、書き直しのどれかを推測します。
直し方: 成果を表す命令形の動詞で始めます。参照:目的の欠落。
2. あいまいな表現
「何か」「いろいろ」「など」といった語は、モデルに具体的な内容を作らせます。
直し方: 実際の項目を挙げます。一覧が決まっていないなら、範囲を限定します(「このうち最大 3 つ」)。参照:あいまいな表現。
3. ぼかした指示
「できれば」「可能なら」「たぶん」は要件を提案に変え、モデルはそれを任意として扱います。
直し方: 要件として書くか、適用される条件を正確に書きます。参照:曖昧にぼかした指示。
4. 否定の制約だけ
「〜しない」という記述だけのプロンプトは、避けることは伝えますが、何を出力するかは伝えません。
直し方: 各禁止事項に、望む動作を組み合わせます。参照:否定だけの制約。
具体性に関する間違い
5. 数値のないサイズ指定
「短い」「いくつか」「詳しい」は実行のたびに変わり、レイアウトやパーサーを壊します。
直し方: 「150 語以内」のように数値と単位を使います。参照:数量化されていないサイズ。
6. 出力形式がない
形式がないと、モデルは散文、箇条書き、表のどれかを選び、毎回違うものを選びます。
直し方: 構造を指定し、コードが結果を読むならスキーマも指定します。参照:出力形式の欠落と長さの指示がない。
7. 存在しないものへの参照
「上のバグを直して」「添付ファイルを使って」と書いてあるのに、そのどちらもプロンプトに含まれていません。
直し方: 素材を含めるか、挿入される場所を示します。参照:不明確な参照。
一貫性に関する間違い
8. 矛盾する指示
「短く、でも詳しく」。複数人が編集した長いプロンプトにはこうした矛盾がたまります。モデルは自分で、予測できない形で衝突を解決します。
直し方: 優先順位を決めて書きます。「簡潔に。簡潔さと正確さが衝突する場合は正確さを優先する」。参照:矛盾する指示。
9. 繰り返し
強調のために 2 回言うとトークンを消費します。少し違う言い回しで 2 回言うと、どちらが有効なのかがあいまいになります。
直し方: 各指示は、それが属するセクションで 1 回だけ書きます。参照:重複した指示とほぼ重複した指示。
構造に関する間違い
10. 文字の壁
タスク、文脈、ルール、入力が混ざった 1 つの長い段落。途中に埋もれた指示は重みが下がり、次に編集する人は何も見つけられません。
直し方: タスク、文脈、要件、出力形式、入力に分けます。参照:文字の壁。
セキュリティに関する間違い
11. 区切りのないユーザー入力
テンプレート変数を指示の中に直接置くと、ユーザーが入力したものが指示の一部のように読まれます。
Translate this to French: {{user_text}}
直し方: 変数をタグで囲み、タグの中身はデータだとモデルに伝えます。参照:区切りのないテンプレート変数。背景:プロンプトインジェクション。
12. プロンプト内の秘密情報や個人データ
貼り付けた設定内の API キー、ログ内のパスワード、チケット内の顧客のメールアドレス。送信した時点で、第三者のシステムに渡ります。
直し方: 送信前にマスクし、認証情報はプロンプトファイルに入れません。参照:プロンプト内の機密データ。背景:プロンプト内の PII とシークレットの検出。
ルールでは検出できないプロセスの間違い
- 1 つの入力だけでテストする。 あなたの例でうまくいくプロンプトも、実際のトラフィックでは失敗することがあります。小さなテストセットを作りましょう。プロンプト評価を参照してください。
- 一度に複数のことを変える。 結果が変わっても理由が分かりません。1 回の反復では 1 つだけ変えましょう。
- プロンプトをバージョン管理しない。 プロンプトがチャットウィンドウにしかなければ、元に戻せません。プロンプト管理を参照してください。
- コンテキストウィンドウを詰め込む。 文脈は多ければ良いとは限りません。トークン最適化を参照してください。
自分のプロンプトで見つける
プロンプトを PromptFlowEngine のプロンプトアナライザーに貼り付けてください。上記のルールをすべて実行し、各指摘のきっかけになったテキストを引用して、修正案を示します。ルール一覧にすべてが載っています。