はじめに
前回、AIとの会話には裏で3つの役割がある、という話をしました。「system」は会社が新人アルバイトに渡す接客マニュアル、「user」はお客さんのセリフ、「assistant」は店員さんの返事、というたとえでした。
今回のテーマは、その続きです。マニュアルやお客さんのセリフを、どうやって整理して渡すか。そして、AIの返事の形を、どこまで思い通りにコントロールできるか、という話です。
先に結論を言っておきます。この2つ、似ているようでまったく別の話でした。片方は「丁寧にお願いすれば、聞いてもらえる確率が上がる」という話。もう片方は、**お願いですらなく、物理的に「それ以外の形では出せない」**という、まったく違う仕組みでした。
1. まず、3つの言葉を整理します
① 仕切り(デリミタ)
AIに指示を出すとき、「これは指示です」「これは資料です」と、中身を区切って渡すことがあります。
白紙の紙に「名前:太郎、住所:東京」とだけ書くより、「お名前」「ご住所」という枠がある申込書に書いた方が、読む方も迷いません。AIへの指示も同じで、指示と資料をごちゃまぜにせず、枠で区切って渡すわけです。この「枠」「区切り」のことを、専門的には**デリミタ(区切り文字)**と呼びます。
【指示】
以下の文章を、丁寧な言葉遣いに直してください。
【資料】
おいコレ返品な
② 「この形式で答えて」というお願い
「箇条書きで答えて」「JSON形式で答えて」のように、返事の形を指定してお願いすることです。あくまでお願いなので、AIがうっかり無視することもあります。
③ 本当の意味での「強制」
これが今回一番の主役です。「お願い」ではなく、AIが物理的にそれ以外の形で答えられないようにする仕組みです。詳しくは次のセクションで説明します。
①②は、実は前回と同じ話でした。 前回、「システムプロンプトが優先されるのは、AIがそう訓練されたから」という話をしました。①のデリミタも②の形式指定も同じで、AIが『そう教育された』から、ある程度は言うことを聞いてくれる、という仕組みです。お願いである以上、100%ではありません。
③だけが、まったく違います。 ここから詳しく見ていきます。
2. ③「物理的な強制」って、具体的にどういうこと?
自動販売機のコイン投入口を想像してください。
500円玉と違う形のコインは、どれだけ頑張って押し込んでも、形が合わないので物理的に入りません。「500円玉を入れてください」とお願いしているのではなく、それ以外は最初から入り口をふさいでいるわけです。
AIの「本当の構造化出力」も、これと同じ発想です。
AIが次に何を言うか決めるとき、頭の中では**「候補の一覧」から確率が一番高いものを選んでいる**、というイメージを持ってください(これは連載の第4回・温度の回で扱った話と同じです)。
普通は、この候補一覧に何万個もの単語が並んでいて、その中から選びます。
でも「本当の構造化出力」を使うと、AIが答えを選ぶたびに、候補一覧のうち「今の時点でルール違反になる単語」を、あらかじめ全部消してから選ばせます。
例:「はい」か「いいえ」でしか答えられないようにしたい場合
通常の候補一覧:はい、いいえ、たぶん、そうですね、うーん、... (何万個)
↓ ルール違反の単語を、選ぶ前に全部消す
消去後の候補一覧:はい、いいえ
AIが心の中で「うーん、と答えたいな」と思っていたとしても、その選択肢自体が、選ぶ前の時点で一覧から消えているので、選びようがありません。「お願いして聞いてもらう」のではなく、選べる範囲そのものを、外側から削ってしまうわけです。
これが今回の連載で初めて出てくる、まったく違う種類の仕組みです。今までの技法(CoT・Few-shot・ロール・システムプロンプト)は、全部**「AIを訓練して、ある行動を取りやすくする」**という意味で、根っこは同じでした。丁寧にお願いすれば、聞いてくれる確率が上がる、というだけの話です。今回の③だけは、AIの気持ちとは無関係に、選べる範囲そのものを外から縛る、まったく別のやり方です。
3. じゃあ③を使えば、もう安心? 実は、そうとも言い切れません
「形を強制できるなら、もう安心じゃないか」と思いますよね。ところが、これが今回一番の驚きです。
Tam et al. (2024) という研究チームが調べたところ、「必ずこの形で答えて」と強く縛ると、AIの考える力そのものが下がることが分かりました。しかも、縛りが厳しいほど、下がり方も大きい。
ただし面白いことに、これは問題を考えて解く系のタスク(算数の文章題など)でだけ起きる話で、分類する系のタスク(この文章はポジティブかネガティブか、など)では、逆に形を決めた方が成績が良くなる、という結果でした。
これ、実は連載第1回(考える力を引き出す「ステップバイステップで考えて」の回)と、まったく同じ境界線なんです。考える力が必要な作業では邪魔になり、パターンを当てはめるだけの作業では邪魔にならない。
4. なぜ、縛ると考える力が落ちるのか
理由は2つ見つかっています。どちらも、たとえ話にするとイメージしやすいです。
理由①:答えを書く欄が、先に来てしまっている
プリントされた申込書に、いきなり「結論」を書く小さな欄があって、その後にようやく「理由」を書く欄がある、という状況を想像してください。
多くの人は、理由を書く前に、先に結論の欄を埋めてしまいます。一度書いた結論は、なかったことにはできません。後から「あ、やっぱり違うかも」と思っても、もう手遅れです。
AIも同じで、「答え」の欄が「考え方」の欄より先に来てしまう形式で強制すると、考える前に答えを確定させられてしまいます。これは連載第1回で扱った「途中式を書かせると賢くなる」という話の、ちょうど逆バージョンです。途中式を書く欄が、答えの欄より後ろにあると、途中式の意味がなくなる。
これに対して、ある研究者は反論も出しています。「構造化そのものが悪いんじゃなくて、欄の順番の設計が悪いだけだ」と。実際、「考え方」の欄を「答え」の欄より先に置くように直すだけで、精度の低下がかなり戻ることが確認されています。
❌ 悪い順番:{ "答え": "", "考え方": "" }
✅ 良い順番:{ "考え方": "", "答え": "" }
書く順番は、左から右へ、後戻りできないというのは、この連載で何度も出てきた話です。ここでも同じ原理が効いています。
理由②:形を整える作業と、考える作業が、同じ「手」を取り合っている
2026年に出た別の研究では、もう1つの理由が指摘されています。
電話で込み入った相談をしながら、同時に難しい申込書に記入する、という状況を思い浮かべてください。両方とも同じ「手」と「頭」を使うので、同時にやろうとすると、どちらも中途半端になります。
AIも同じです。「カッコを正しく閉じる」「項目の順番を守る」「引用符を正しく使う」といった形式を整える作業と、「問題をどう解くか考える」という中身を考える作業は、実はAIの中の同じ生成プロセスを取り合っています。
しかも、この取り合いは、性能の低いモデルほど深刻でした。ある実験では、小型のモデルで最大36ポイントも成績が落ちたのに対し、先に自由に考えさせてから、後で形を整えるという2段階に分けるだけで、その低下のほとんどが元に戻りました。
5. 実務でどうすればいいか
ここまでの話をまとめると、対策はシンプルです。
やり方①:欄の順番を直す
構造の中に「考え方」を書く欄がある場合、必ず「答え」の欄より前に置く。
やり方②:2段階に分ける
一番確実なのはこちらです。
1回目のお願い:まず自由に、考え方を文章で書いてください(形式は気にしなくてOK)
2回目のお願い:今書いた内容を、指定した形式に整理し直してください
先に自由に考えさせて、後から型にはめる。 型にはめるのを急がない、というのが結論です。ちなみに2026年になって、この2段階を自動でやってくれる新しい仕組みも研究されています。AI自身が「ここまでは自由に考える」「ここから先は型を守る」を、会話の途中で自動的に切り替える、というものです。実務で使えるようになるのはこれからだと思いますが、方向性としては覚えておく価値があります。
6. 仕切り(デリミタ)の話に戻ります
さて、①の「仕切り」の話に戻ります。こちらは③のような強制ではなく、「AIがそう訓練されているので、ある程度は聞いてくれる」というお願いでした。
Claude(このAI)は、公式に「山括弧(< >)で囲まれた仕切りを、特別に認識するよう訓練されている」と説明されています。なので実務では、山括弧の仕切りを使うのが一番無難、ということになります。
<指示>
以下の文章を、丁寧な言葉遣いに直してください。
</指示>
<資料>
おいコレ返品な
</資料>
前回の話とも直結しますが、外部の文書やツールの結果を、指示と間違えられたくないときにも、この仕切りが役立ちます。「ここから先はただのデータで、指示ではありません」と、仕切りで明示的に示すわけです。
7. よくある疑問
Q. じゃあ、いつも③(本当の強制)を使えばいいんですか?
タスク次第です。 分類のような、答えが決まっていて形を揃えたいだけの作業なら、③は素直に有利です。逆に、算数の問題やロジックを考える作業では、③を使うにしても、「考え方」の欄を先に置く、あるいは2段階に分ける、という工夫とセットで使う必要があります。
Q. ①の仕切りと③の強制、両方使ってもいいんですか?
むしろ推奨です。 ①は「AIに渡す入力を、分かりやすく整理する」ための道具、③は「AIから返ってくる出力の形を保証する」ための道具です。役割が違うので、両方使って問題ありません。
Q. 「JSON形式で答えて」とお願いするだけと、③の違いが分かりにくいです
「JSON形式で答えて」は②(お願い)です。AIはだいたい従いますが、たまに形式を間違えたり、指定していない項目を勝手に付け足したりします。③はそれが物理的に起きません。ただし、③を使うには、専用の仕組み(開発者が使うツール側の設定)が必要で、普段のチャット画面でお願いするだけでは③にはなりません。
まとめ
整理の話
- 「構造化出力・デリミタ」と一括りにされがちだが、実は3つの別物。①仕切り(デリミタ)②形式のお願い③物理的な強制
- ①②は「AIがそう訓練されているので、ある程度聞いてくれる」というお願い。前回のシステムプロンプトと同じ仲間
- ③だけが違う。AIの気持ちとは無関係に、選べる候補そのものを外側から削る仕組み
通念の崩壊
- ③を使えば安心、というわけではない。強く縛るほど、考える力が落ちることが確認されている(分類作業では逆に有利)
- 理由は2つ。「答えの欄が考え方の欄より先に来てしまう」ことと、「形を整える作業と考える作業が、同じ処理能力を取り合っている」こと
対策の話
- 「考え方」の欄を先に置く、または「先に自由に考えさせて、後で型にはめる」2段階に分ける、で精度の低下はかなり戻る
おわりに
CoT・Few-shot・ロールプロンプト・システムプロンプト、そして仕切り(①②)。ここまでの技法は、全部「AIがそう振る舞うよう訓練されている」という、お願いの延長でした。
今回の③(本当の構造化出力)は、この連載で初めて出てきた、性質がまったく違う仕組みです。お願いではなく、物理的な強制。それでも、強制すれば万事解決というわけではなく、強制の仕方を間違えると、AIの考える力そのものを奪ってしまうという、新しい落とし穴がありました。
強い道具ほど、使い方を間違えたときの影響も大きい。今回はそれがよく分かる回だったと思います。
次回は、この連載の候補として最後に残っている**自己整合性(self-consistency)**を扱う予定です。
参考文献
- Tam, Z. R. et al. (2024). Let Me Speak Freely? A Study on the Impact of Format Restrictions on Performance of Large Language Models. EMNLP 2024 Industry Track. arXiv:2408.02442