第2章 コンテキスト設計の基本
コンテキスト設計は「文章力」の問題ではない
生成AIの活用において、よくある誤解のひとつが次の考え方である。
良い結果が出ないのは、文章の書き方が悪いからだ。しかし実際には、問題の多くは文章力ではなく設計不足にある。
AIは人間のように空気を読んだり、暗黙の前提を補完したりする存在ではない。
- 目的が曖昧
- 成功条件が定義されていない
- 守るべき制約が伝えられていない
こうした状態では、どれだけ丁寧な文章を書いても結果は安定しない。
コンテキスト設計とは、「きれいな指示を書くこと」ではなく、
AIが判断を誤らないための情報構造を用意することである。
設計の起点は「目的の明確化」
すべての設計は、目的の明確化から始まる。
ここでいう目的とは、
- ユーザーに見せる文章を生成したいのか
- 社内資料の下書きを作りたいのか
- 構造化データを出力したいのか
- 判断や分類をさせたいのか
といった最終成果物の役割である。
重要なのは、
- 質問に答えてほしい
- 説明してほしい
といった曖昧な目的ではなく、
- 誰が使うのか
- どの工程で使うのか
- その後に何が行われるのか
までを含めて考えることである。
これが曖昧なままでは、AIは「それっぽいが使えない出力」を返しやすくなる。
役割(ロール)の明示は設計の基本
コンテキスト設計において、AIに「どの立場で振る舞うか」を伝えることは非常に重要である。
これは単なる演出ではなく、判断基準を固定するための設計要素である。
例えば、
- 専門家として振る舞うのか
- 初心者向けに説明するのか
- 批評者として問題点を指摘するのか
- 仕様書を書くエンジニアなのか
役割が明確であれば、語調・粒度・前提知識の扱いが安定する。
逆に役割が指定されていない場合、AIは文脈ごとに立場を変えやすくなり、出力の一貫性が失われる。
制約条件を明示しないと、AIは自由に振る舞う
生成AIは、制約を与えられなければ「できるだけ幅広く」答えようとする。
これはモデルの性質であり、良し悪しの問題ではない。
そのため、実務では以下のような制約を意識的に言語化する必要がある。
- 文字数・分量
- 使用してよい/禁止する表現
- 対象読者の知識レベル
- 出力形式(箇条書き、表、JSONなど)
- 推測してよいか、事実のみか
制約はAIの自由を奪うものではなく、判断を正しく導くためのガイドラインである。
入力と出力はセットで設計する
コンテキスト設計では、
- 何を入力するか
- 何を出力させるか
を必ずセットで考える。
入力だけを工夫しても、 出力の形式や用途が曖昧であれば結果は安定しない。
特に重要なのが、
- 「人が読む文章」なのか
- 「システムが処理するデータ」なのか
という点である。
後者の場合、自然文ではなく構造化された出力を最初から指定する方が安全である。
Zero-shotとFew-shotは「魔法」ではない
よく知られている手法として、
- Zero-shot(例なし)
- Few-shot(例あり)
がある。
これらは有効な手法だが、万能ではない。
例を与える目的は、
- 曖昧さを減らす
- 出力の型を固定する
- 判断基準を共有する
ことであり、単に例を増やせば良くなるわけではない。
重要なのは、なぜこの例を与えるのかを設計者自身が理解していることである。