ChatGPTに指示を出して、「なんか違うな」と感じた経験はありませんか?
その原因はAIの性能ではありません。
プロンプトの書き方にあるかもしれないのです。
Redditのプロンプトエンジニアリング・コミュニティで、高い評価を得た投稿がありました。
そこに、興味深いフレームワークが紹介されていたのです。
本記事では、その投稿内容とコミュニティの有益な議論をもとに、プロンプト設計の考え方を整理してみます。
「Google検索のように書いている」という問題
多くの人がChatGPTに指示を出すとき、検索エンジンにキーワードを打ち込む感覚で書いています。
「マーケティングのメール書いて」とか「ブログ記事を作って」といった具合です。
でも実際はそうじゃないんですよね。
AIへのプロンプトは検索クエリではありません。
プロジェクトの企画書に近いものです。
何を、誰が、どういう背景で、どんな形式で、何を避けて作るのか。
ここまで伝えて初めて、AIは期待通りの成果を出せるようになります。
Redditで紹介されていたフレームワークは、この考え方を5つの層に分解したものでした。
5つの層:ROLE → CONTEXT → TASK → FORMAT → CONSTRAINTS
第1層:ROLE(誰として振る舞うか)
「あなたは専門家です」だけでは不十分です。
どの分野で、どんな経験を持ち、どんなスタイルの専門家なのか。
ここまで指定する必要があります。
たとえば「マーケティングの専門家」と書く代わりに、次のように書きます。
DtoC EC向けのダイレクトレスポンス・コピーライターで、15年の経験がある。 高コンバージョンのメールシーケンスを専門としている
ここまで具体的に指定すると、AIが使う語彙や文章構成が明らかに変わります。
論理の組み立て方にも違いが出てくるのです。
第2層:CONTEXT(状況の説明)
AIはあなたの状況を知りません。
背景情報を省略した瞬間、出力の質は大幅に下がります。
たとえば、こんな文脈を与えるとどうでしょう。
49ドルのオーガニック美容液を販売している。 ターゲットは28〜42歳の女性。 合成成分を使った製品に不満を持っている層だ。 ブランドの声は温かく、自信があり、科学的根拠に基づいている
これだけの情報があれば、AIは的外れな方向に進みにくくなるわけです。
第3層:TASK(具体的な成果物の定義)
「メールを何通か書いて」では曖昧すぎます。
何通のメールなのか。
各メールの目的は何か。
どんな構成にするのか。
ここを痛いほど具体的に書くことが求められます。
5通のウェルカムシーケンスを書いてほしい。 1通目はブランド紹介。2通目は価格に対する主要な反論への対処。 3通目は顧客の変化のストーリー。 4通目は限定オファーによる緊急性の演出。 5通目はソーシャルプルーフを使った最後のプッシュ
このレベルまで分解すると、出力の精度は段違いになります。
第4層:FORMAT(出力の構造指定)
成果物の見た目と構造も明示的に伝えましょう。
各メールに件名、プレビューテキスト、冒頭の1文フック、本文100〜150語、CTAを1つ含める。 段落は2文以内
こうした構造指定がなければ、AIは毎回異なるフォーマットで出力してしまいます。
第5層:CONSTRAINTS(制約条件)
ここが、ある意味で最も重要な層かもしれません。
"革命的"や"画期的"という言葉を使わない。 メールの冒頭を質問形式にしない。 感嘆符は1通につき1回まで。 中学2年生が読める文章レベルで書く
こうした制約を設けることで、AIが陥りがちな定型的・汎用的な出力を防げます。
なぜ「制約」がここまで効くのか
コミュニティの議論の中で、技術的に興味深い指摘がありました。
制約が効く理由は、AIモデルの出力確率分布に直接働きかけるためだというのです。
「この単語を使うな」と指示すると、その単語周辺の出力確率が下がります。
すると、モデルは別の表現へ注意を振り分けるようになります。
つまり、制約はAIに「怠けた出力」を選ばせない仕組みとして機能しているのです。
制約を加えたプロンプトの出力が「プロっぽく」感じられる理由は、まさにここにあるでしょう。
さらに、制約には単純な禁止ワード以外にも種類があるとの指摘もありました。
相互排他条件(AならBは使わない)、バイナリ検証ゲート、否定要件など。
複数の制約を組み合わせることで、出力の精度はさらに向上するとのことです。
フレームワークを超えた視点
このフレームワーク自体は有用です。
しかし、コミュニティではより広い視点からの議論も展開されていました。
いくつか紹介します。
プロンプトの順序は出力に影響する。
あるコメントでは、ROLE → TASK → CONSTRAINTS → CONTEXT → FORMAT の順序のほうが安定するという意見がありました。
モデルは直近の明示的な指示に重みを置く傾向があります。
そのため、指示(TASK)を先に、文脈(CONTEXT)を後に置くほうが合理的だというのです。
LLM自身にプロンプトを書かせる。
自分のアイデアをざっくりとLLMに投げ込みます。
そして「この内容と望む成果に基づいてプロンプトを作ってくれ」と依頼する。
実際、AIはこの5層構造に近い形で自動的にプロンプトを構成するケースが多いそうです。
プロンプトが長くなりすぎたら「もっと簡潔にして」と頼めば、トークンの節約にもなります。
異なるLLMを掛け合わせる。
プロンプトの作成に別のLLMを使うアイデアもありました。
たとえばGeminiでプロンプトを作成し、それをChatGPTに投入する。
こうすることで、特定のLLMに起因するバイアスを軽減できるとのことです。
コーディング用途ではPRD(製品要件定義書)が有効。
開発プロジェクトでは、この5層フレームワークの延長線上にPRDの活用があるとの指摘もありました。
まずLLMにPRDを作成させます。
そのPRDをClaude CodeやCodexに渡してコーディングを進めるのです。
PRD作成時にLLMが投げかける20〜30の質問に丁寧に答えれば、かなり大規模なプロジェクトでも高い精度で成果を出せるといいます。
プロンプトだけでは品質管理に限界がある。
ある開発者はこう指摘していました。
プロンプトレベルの品質管理は、AIが従ったり無視したりと一貫性に欠けると。
その解決策として紹介されていたのが、ESLintルールに品質基準を組み込む方法です。
「”we’re thrilled”が含まれていたらビルド失敗」というルールを設け、リントエラーをAIへのフィードバックとして返す。
数ラウンド繰り返すと、AIが自己修正を始めるそうです。
このフレームワークは本当に新しいのか
正直に言えば、この5層構造自体は目新しいものではありません。
コミュニティでも「Googleが無料で公開している70ページのPDFと同じ内容だ」という指摘がありました。
でも、大切なのは新しさではなく実用性です。
プロンプトを書くたびにこの5層を意識する。
それだけで、出力品質の底上げが期待できます。
フレームワークとして名前がつくことで、毎回のプロンプト作成時にチェックリストとして機能するのです。
また、ユーザーの入力プロンプトはシステム全体の一部でしかないという視点も重要です。
システムプロンプト、ドメイン知識、MCPサーバー、ワークフロールール、コンテキスト管理、そしてモデル自体の特性。
こうした要素すべてが出力品質に影響を与えます。
5層フレームワークは有用な出発点ですが、そこで完結する話ではありません。
まとめ
ChatGPTの出力品質を上げるには、AIの性能に頼るだけでは足りません。
入力の質を高める必要があります。
ROLE、CONTEXT、TASK、FORMAT、CONSTRAINTSの5層でプロンプトを構成する。
特に制約(CONSTRAINTS)は、AIの出力確率分布に直接働きかけます。
そのため、汎用的な表現を防ぐ強力な手段となるのです。
加えて、LLM自身にプロンプトを書かせたり、異なるLLMを掛け合わせたりもできます。
コーディング用途ならPRDとの組み合わせも有効です。
応用の幅は広いといえるでしょう。
まずは次のプロンプトで、5つの層を意識して書いてみてください。
「メールを書いて」と「15年経験のDtoCコピーライターとして、この条件でこの形式で、この制約のもとでメールを書いて」。
この差は、試せばすぐにわかるはずです。
