【Dify】プロンプトで定型文の出力ブレを防ぐ方法

Difyで文章生成アプリを作ると、同じ目的のプロンプトでも、敬語が急にくだける、語尾が揃わない、禁止した表現が混ざる、文章の型が変わるといった問題が起こることがあります。
こうした出力のブレは、敬語・トーン・禁止表現・文章の型を「守ってほしいお願い」ではなく、確認できる出力ルールとして指定することで減らせます。
この記事では、Difyで定型文を生成するときのブレに範囲を絞り、よくある原因、固定すべきルール、コピペして使えるテンプレートを解説します。
プロンプト全般の組み立て方は「Lesson2-6:良いプロンプトの書き方」、SYSTEMやメモリなどの操作は「LLMノードの設定方法」、数値・法務・固有名詞の誤りを防ぐ方法は「LLMに任せないほうがいい文章と安全な扱い方」で解説しています。
まずは、現在の出力が「敬語・禁止表現・文章の型」のどこで崩れているかを確認しましょう。

敬語・禁止表現・文章の型がブレる3つの原因
Difyで定型文の出力が安定しないときは、プロンプト全体を書き直す前に、どの部分が崩れているかを切り分けます。
この記事で確認するのは、定型文で特に問題になりやすい「敬語・トーン」「禁止表現」「文章の型」の3点です。
| 起きている症状 | 主な原因 | 確認する項目 |
|---|---|---|
| 敬語やトーンが毎回変わる | 「丁寧に書く」など、複数の解釈ができる表現だけを指定している | です・ます調、一人称、相手の呼び方、語尾、文体の硬さが明記されているか |
| 禁止した表現が混ざる | 禁止語が曖昧、または禁止するだけで代わりの表現を指定していない | 使用しない語句、言い換え表現、例外条件が明記されているか |
| 段落や文章構成が変わる | 見出し、項目の順番、文字数、前置きの可否などを指定していない | 必須項目、出力順、文字数、不要な前置きの禁止が明記されているか |
たとえば「丁寧に案内してください」だけでは、どの程度の丁寧さが必要なのかを一つに決められません。入力内容や会話履歴によって、語尾や文章の硬さが変わることがあります。
また、「強い表現を避けてください」のような曖昧な禁止では、どの言葉が禁止対象なのか、代わりに何と書けばよいのかが分かりません。文章の型を指定していない場合も、見出しや前置きが追加されるなど、期待した形式から外れやすくなります。
まずは現在の出力を確認し、3つのうちどこが崩れているかを特定してください。原因を切り分けたら、次章で敬語・禁止表現・文章の型を確認可能なルールへ置き換えます。
なお、役割・ゴール・出力形式・例示などを含むプロンプト全体の組み立て方は、「Lesson2-6:良いプロンプトの書き方」で解説しています。

出力ブレを減らす「固定ルール」の作り方
敬語・禁止表現・文章の型を安定させるには、「丁寧に書く」「適切な表現にする」といった曖昧なお願いを、出力後に確認できるルールへ変えます。
最初から多くの条件を追加すると、どのルールが効いているのか分かりにくくなります。まずは、ブレると困る項目だけを固定してテストします。
最初に固定する3項目
最初に確認するのは、次の3項目です。
| 固定する項目 | 曖昧な指定 | 確認できる指定の例 |
|---|---|---|
| 敬語・トーン | 丁寧に書いてください | 文体は「です・ます」で統一する。一人称は「私」、相手は「お客様」と表記する |
| 禁止・必須表現 | 強い表現は避けてください | 「絶対」「必ず成功する」は使用しない。「利用できます」の代わりに「利用できる場合があります」と書く |
| 文章の型 | 分かりやすくまとめてください | 「結論→理由→次にすること」の順で書く。不要な前置きや見出しは追加しない |
固定する項目は、実際に発生している問題に合わせて選びます。敬語だけが変わる場合に、文字数や段落数まで一度に変更する必要はありません。
また、禁止表現を指定するときは、使用しない言葉だけでなく、代わりに使う表現も決めておくと確認しやすくなります。
曖昧な指示を確認できるルールに変える
固定ルールを作るときは、次の点を確認します。
- 一つのルールに一つの条件を書く
- 「丁寧に」「自然に」など、人によって判断が変わる言葉だけで終わらせない
- 使用しない表現には、可能な範囲で言い換え例を用意する
- 文体、呼称、文章の順番など、出力後に確認できる形で指定する
- 複数のルールが矛盾していないか確認する
たとえば、「短く、詳しく説明する」という指定は、どちらを優先するか判断できません。「300字以内で、結論と理由を一つずつ説明する」のように、文字数と必要項目を分けて指定します。
ルールを追加した後は、入力内容を変えて複数回テストしてください。固定ルールを設定しても、利用するモデルや入力内容によって表現が変わる可能性があります。完全に同じ文章を出すことではなく、敬語・禁止表現・文章の型が許容範囲に収まることを確認します。
なお、役割・ゴール・例示などを含むプロンプト全体の組み立て方は「Lesson2-6:良いプロンプトの書き方」、SYSTEMやUSERなどの設定項目は「LLMノードの設定方法」で解説しています。
【コピペ可】敬語・トーン・禁止表現を固定するテンプレート
ここでは、既存のプロンプトへ追加して使える、文体・トーン・禁止表現の固定ルールを紹介します。
このテンプレートは、アプリの目的や処理内容を指定するものではありません。文章の印象や表記を揃えるための補助ルールとして使用してください。
既存のプロンプトに追加する固定ルール
次のテンプレートをコピーし、利用する場面に合わせて角括弧内を変更してください。
# 文体・トーン - 文体は「です・ます」で統一する - 「だ・である」調は使用しない - 丁寧で落ち着いた口調にする - 一人称は「私」とする - 相手は「[お客様/利用者/担当者名]」と表記する - 馴れ馴れしい表現や過度に感情的な表現は使用しない - 本文以外の前置きや解説は追加しない # 使用しない表現 - 次の表現は使用しない:[禁止する表現を記入] - 禁止表現が必要になる場合は、次のように言い換える: - 「[禁止表現]」→「[言い換え表現]」 # 出力前の確認 - 文体が「です・ます」で統一されているか確認する - 禁止表現が含まれていないか確認する - 不要な前置きが追加されていないか確認する
禁止表現は増やしすぎず、実際に混ざると困る言葉から設定します。単に禁止するだけでなく、代わりに使う表現も指定すると、修正後の文章を確認しやすくなります。
また、「丁寧に」「自然に」といった抽象的な言葉だけで終わらせず、文体・呼称・使用しない語句を具体的に指定してください。
ユーザー入力の口調に合わせないルール
利用者がくだけた文章や強い口調を入力すると、生成結果の文体も影響を受けることがあります。
入力文の口調にかかわらず一定の文体を維持したい場合は、固定ルールへ次の一文を追加します。
ユーザー入力の口調や文体を模倣せず、このプロンプトで指定した文体・トーンを維持する。
このルールを追加した後は、丁寧な入力、くだけた入力、強い口調の入力など、複数のパターンで出力を確認してください。利用するモデルや入力内容によって結果が変わるため、一度の出力だけで判断しないようにします。
このテンプレートをSYSTEMとUSERのどちらへ設定するかなど、LLMノードの各項目については「LLMノードの設定方法」で解説しています。
まとめ:定型文を安定させる3つのポイント
Difyで定型文の出力が安定しないときは、プロンプトへ条件を追加し続ける前に、どこが崩れているかを確認します。
今回のポイントは、次の3つです。
- 敬語・禁止表現・文章の型のうち、どこがブレているかを特定する
- 曖昧なお願いを、出力後に確認できる固定ルールへ変える
- 入力内容を変えて複数回テストし、問題のあるルールを一つずつ調整する
固定ルールを設定しても、利用するモデルや入力内容によって表現が変わる可能性があります。毎回まったく同じ文章を生成することではなく、敬語・禁止表現・文章の型が許容範囲に収まっているかを確認してください。
役割・ゴール・例示などを含むプロンプト全体の組み立て方は、「Lesson2-6:良いプロンプトの書き方」で解説しています。
SYSTEMやUSERなどの設定項目は「LLMノードの設定方法」、数値・法務・固有名詞などの事実誤認を防ぐ方法は「LLMに任せないほうがいい文章と安全な扱い方」を確認してください。
