「この資料、なんかしっくりこない」
「AIに書かせたはずなのに、自分の言いたいことが出てこない」
——生成AIを使い始めた頃、私はよくこう感じた。指示は出しているのに、返ってくる文章が他人の意見のままで、自分の判断が乗っていない。
あなたはどうだろう。プロンプトは毎回その場で考える派? それとも、型を決めておいて再利用する派?
私は後者に寄せている。出力に自分の意思を取り込むには、プロンプトでルール作りをしておくのが近道だと思っている。今回は、その型のひとつである「GCAO」について整理する。
プロンプトに「理論」を入れる理由
生成AIのプロンプトには、ときどき理論を入れると効く。
LLMには世の中の大抵のことが学習データとして残っている。「A理論」みたいに、書籍やフレームワークとして流通している考え方を名前で渡すと、その枠組みの中で推論してくれる。答えの方向をコントロールしやすくなるわけだ。
GCAOも、その理論のひとつだ。議題(アジェンダ)があるなら、Goal・Context・Action・Output Formatの4つを意識したほうが、AIも迷いにくい。
GCAOとは?
GCAOは、プロンプトを4つの要素に分けて考えるフレームワークだ。
- Goal — 何を達成したいか
- Context — どんな前提・背景で考えるか
- Action — 具体的に何を実行するか
- Output Format — どんな形式で返すか
順番に見ていく。
Goal:目標を言語化する
Gは「目標をどこに設定するか、何をしたいのか」だ。
ここが一番ブレやすい。質問する側が、自分でも言語化しきれていないことが多い。だからこそ、プロンプトに「まず私の目的を確認してから答えて」と書いておく手もある。AIに質問を促させて、思考を整理しながらゴールを固める——逆利用もできる。
「要約して」だけでは弱い。「この記事を、初めてこのテーマに触れる人向けに3段落で要約して」まで落とすと、Gがはっきりする。
Context:文脈と「言葉の裏」を決める
Cは「文脈とか言葉の裏を、どう処理するか」だ。
必要以上の推測をさせるか、それ以下でも許容するか。質問者の意識の外にあるものまで、AIに補完させるかどうか——ようは、その問題だ。
例えば「ブログ記事を書いて」とだけ言えば、AIは一般的なブログの型で書く。でも「ですます調は使わない」「一人称は私」「段落は空行で区切る」とCを足せば、出力の温度が変わる。
Cが薄いと、便利な汎用回答が返る。Cが厚いと、あなたの文脈に寄った回答になる。
Action:実行内容を具体化する
Aは「実行」だ。GとCで概ねの方向性が定まっていれば、ここでやることを明確にできる。
とはいえ、複数の思考や視点が必要な場面もある。AIが便利なのは、A/BテストではなくA〜Zテストを一気に出しやすいことだ。
「案を3つ出して」「賛成派・反対派・中立の視点で整理して」とAに書けば、私はその中から選ぶだけで済む。複数の答えを並べてもらうことで、出力への納得度が上がる。
Output Format:出力先を固定する
Oは出力フォーマットだ。ファイル形式や構造を指定する。
テキストならtxtやMarkdown、表ならCSVやExcel形式、資料ならスライド構成——必要としている書類の形式に沿った出力を指定したほうが、AIも迷わない。
「パワポの資料を作って」と指示するだけで、それっぽいアウトラインが返ってくる。コードなら言語とファイル名、記事なら見出しレベルと文字数——Oで先に決めておくと、後から整形する手間が減る。
特に、出力したいコードや文章については、アウトプット先を固定するのは重要だ。「どんなフォーマットにしよう」と悩むクッション時間がなくなる。
GCAOの実例
たとえば、ブログ記事の下書きを頼むとき、私はだいたいこんな感じで組む。
【Goal】
このテーマについて、読者が「自分ごと」として考えられる記事の下書きを作る。
【Context】
- 読者は生成AIを触ったことがあるが、プロンプト設計は未経験
- ですます調は使わない。一人称は「私」
- 専門用語は初出で短く説明する
【Action】
1. リード(問いかけ+私の立場)を書く
2. 本論を3つの見出しで展開する
3. 各見出しの下に具体例を1つずつ入れる
4. 反論になりそうな点を1つ拾い、短く応答する
【Output Format】
Markdown。見出しは ## と ### のみ。箇条書きは最小限。
GCAOと名前は付けていなくても、中身はこの4ブロックに収まっていることが多い。
このプロンプトは頑張るべきか
GCAOは、まあまあ基本的な内容だ。私は意識しているわけではないが、だいたいこの通りにプロンプトを組んでいる。いつも通りでやれば、それなりにいい感じになる。
もしGCAOを名前として覚えていないなら、ロジックを登録しておくのが手堅い。Cursorのルール、Claudeのプロジェクト指示、Obsidianのテンプレ——環境ごとに「GCAOで組め」と短文で書いておけば、毎回フルで説明しなくても動きやすくなる。
頑張りすぎる必要はない。ただ、出力がしっくりこないときに「Gのどこが曖昧だったか」「Oを指定し忘れていないか」と振り返るチェックリストとして使う価値はある。
まとめ:型で自分の意思を載せる
生成AIの出力に自分の意思を取り込むには、プロンプトでルールを先に決めておくのが近道だ。GCAOはそのためのシンプルな型で、Goal・Context・Action・Output Formatの4つを埋めていけばいい。
理論やフレームワークを名前で渡すと、LLMはその枠の中で考えてくれる。毎回ゼロから指示を考えるより、型を再利用したほうが、選ぶ時間に集中できる——私はそう考えている。