UKA-GYRE 開発記 ― 読み物編 第4回
前回の記事:
この記事は「UKA-GYRE 開発記」 読み物編 第4回 です。
難しい専門的知識は出てきません。
エンジニアでない方も安心してお読みください。
1. AIは「読解力が高いけど空気が読めない」
あなたの周りに、こういう人はいないだろうか。
仕事はできる。資料も完璧、数字にも強い。
でも、クライアントへの伝え方が壊滅的。
プロジェクトが炎上しているとき、正確な原因分析を淡々と報告して場を凍らせる。
「まず謝れよ」と全員が思っているのに、データの話を始める。
悪気はない。
ただただ、空気が読めないのだ。
AIは、まさにこのタイプの「天才」だ。
データを渡せば完璧に分析してくれる。
栄養バランスの偏りも、体重推移の傾向も、瞬時に見抜く。
しかし、その分析結果を どう伝えるか となると、途端に心もとなくなる。
人間同士のコミュニケーションには「察する」という文化がある。
「最近ちょっと食べすぎちゃって...」と言われたら、たいていの人は「あ、ダイエットがうまくいってないんだな」と察する。
でもAIに「察して」は通じない。
「励ましてね」と伝えても、毎回違うテンションで返してくる。
ある日は熱血コーチ、翌日はお坊さんのような説法、その次は自己啓発セミナーの講師。
同じ指示なのに、なぜこうもブレるのか。
UKA-GYREの開発で一番苦労したのは、AIを賢くすることではなかった。
AIに「人間らしく話させる」こと だった。
2. 7層のプロンプト ― AIへの指示書の構造
「プロンプト」という言葉を聞いたことがあるだろうか。
ChatGPTを使ったことがある人なら、あの入力欄に打ち込む文章のことだ、と言えば伝わるだろう。
ただ、UKA-GYREのプロンプトは、ChatGPTの入力欄に一言書くようなシンプルなものではない。
7つの層 が重なった、いわば「7段重ねのミルフィーユ」だ。
上から順に、「AIの役割」→「性格スタイル」→「コーチング方針」→「分析結果」→「生データ」→「過去の知恵」→「念押しの命令」。
それぞれの層は出どころが全く違う。
性格はクライアントごとに変わり、方針はリクエストごとにトレーナーが選び、分析結果はExcelから毎回算出される。
層に分けることで、 MBTIの定義を変えても他の層に影響しない。過去の知恵が変わっても、コーチング方針はそのまま使える。
ここで重要なのが 層の順番 だ。
AIには プロンプトの先頭と末尾を重視し、中間を軽視しやすい という性質がある。
人間の会議と同じで、最初と最後の話が印象に残り、途中は薄れやすい。
だから最も優先すべき 性格スタイルを最上位(第2層) に置いた。
AIの「先入観」にスタイルを刷り込み、その後の全ての情報をスタイルのフィルター越しに処理させる。
そして 念押しの強制命令を末尾(第7層) に置いた。
「参考事例を無視したら不合格」というペナルティ付きの命令だ。
最初と最後で挟み撃ちにするサンドイッチ構造が、AIの注意力の偏りを逆手に取った配置になっている。
各層の技術的な詳細や配置戦略のエビデンスは、技術深掘り編第3回で掘り下げている。
AIはプロンプトの先頭と末尾を重視する。
この7層構造は、その性質を逆手に取った設計だ。
3. AIが暴走した4つの夜
7層のプロンプトを組み上げて、「これで完成だ」と思った。
甘かった。ここからが本当の戦いだった。
開発中、AIは何度も予想外の方向に暴走した。
そのたびにプロンプトを書き換え、防壁を足し、また別の穴が見つかる。
モグラ叩きのような日々。
特に記憶に残っている4つの「事件」を紹介したい。
ISTJなのにポエムを書く。
「データと数字で語れ」と指示しているのに、AIが感情たっぷりの詩的なコメントを生成した。
原因は、ナレッジベースから引っ張ってきたお手本コメントが温かく共感的な文体ばかりだったこと。
AIはルール(教科書)よりも目の前の具体例(カンニングペーパー)を信じた。
存在しない食事を語り始める。
「先週金曜日のラーメンの影響がまだ残っていますね」。
このクライアントはラーメンを食べていない。
AIが「金曜のカロリーが高い」データから勝手にストーリーを創作した。いわゆるハルシネーション(幻覚)だ。
何を食べても「素晴らしいですね!」。
カロリーが毎日500kcalオーバー。体重は右肩上がり。
AIのコメント:「今週も食事の記録をしっかり続けていますね。素晴らしいです!」
...... 褒めるな。そこじゃない。
AIの「クライアントを傷つけてはいけない」という安全バイアスが裏目に出た。
毎週同じことしか言わない。
5週間分のコメントを並べたら、表現は違うのに内容がほぼ同じだった。
「タンパク質を増やしましょう」「脂質に気をつけましょう」。
データは毎週変わっているのに、AIは「安全な一般論」に逃げていた。
4つの事件は、それぞれ症状が違う。
しかし共通する教訓が一つある。
「こうしろ」と1回書くだけでは、AIは言うことを聞かない。
- ルールを書いても、具体例に負ける。
- 禁止しても、別の形で暴走する。
- 指示しても、無難な方に逃げる。
プロンプトの制御は、1重の防壁では絶対に足りなかった。
何重にも重ねて、ようやく機能する。
どの問題も、 プロンプトの「内容」ではなく「構造」で解決した。
何を書くかではなく、どこに置くか、何と組み合わせるか、何重に重ねるか。
これがプロンプトエンジニアリングの実態だ。
4. プロンプトは「育てる」もの
開発初日に書いたプロンプトと、今のプロンプトを並べたら、おそらく同じシステムのものだとは思えないだろう。
プロンプトは「一度書いたら完成」ではない。 日々育てていくもの だ。
クライアントから「この言い回しは違和感がある」というフィードバックが来る。
AIが想定外の出力をする。
特定の状況でだけ品質が落ちる。
そのたびにプロンプトの一行を書き換え、一文を追加し、順番を入れ替える。
UKA-GYREには管理コンソールがあり、プロンプトをリアルタイムで編集できるようにしてある。
コードをデプロイし直す必要はない。
なぜそうしたかというと、プロンプトの調整は「開発作業」というより「運用作業」だからだ。
毎日のように微調整が入る。
4.1. 一行が全てを変える
ここで一つ、背筋が寒くなる事実を共有しておきたい。
プロンプトのたった一行を変えただけで、AIの振る舞いが劇的に変わることがある。
昨日まで安定していた出力が、一文追加しただけで崩壊する。
逆に、ずっと解決できなかった問題が、語順を入れ替えただけで嘘のように解消されることもある。
プロンプトエンジニアリングは、理論ではなく 実験科学 だ。
仮説を立て、プロンプトを書き換え、出力を観察し、また調整する。
その繰り返し。
華やかな名前がついているが、やっていることは泥臭い試行錯誤の連続だ。
コードはバグがあれば論理で直せる。
しかしプロンプトはそうはいかない。
正解がどこにあるか分からないまま、一行ずつ試し続ける。
プログラミングより、人を育てることに近い。そう感じている。
ただ、ここまで語ってきて一つ大事なことを言い忘れていた。
プロンプトをどれだけ磨いても、AIが出すのは「下書き」だ。
最終的にそのコメントを使うかどうかを決めるのは、トレーナーだ。
そしてトレーナーの「選んだ」「直した」という行為が、次のAIの学習データになる。
AIだけでは完結しない。人間だけでも回らない。
この「人間とAIの共同作業」をどう設計したのか。
次回、最終回で語る。
コラム:たった一言が世界を変えた話
1997年、Appleは倒産寸前だった。
復帰したスティーブ・ジョブズが最初にやったことは、新製品の発表ではない。
たった2語のスローガンを掲げたことだ。 「Think Different」。製品スペックには一切触れていない。価格も、性能も、新機能も語っていない。
それなのに、この2語はAppleの「人格」を定義し、会社を再生に導いた。似た話はいくらでもある。
深海に棲む不人気魚「メロ」は、「銀むつ」と名前を変えた途端に高級魚として飛ぶように売れた。
同じ魚、同じ味、同じ栄養。変わったのは「伝え方」だけだ。本文で書いたプロンプトの話と、構造はまったく同じだ。
AIに渡す情報が同じでも、 どう伝えるか で出力が劇的に変わる。
「正確に書いて」と言うのと「ISTJの性格に合わせて、具体的な数字を使って書いて」と言うのでは、AIの振る舞いが別人になる。結局、 相手が人間でもAIでも、「何を言うか」より「どう言うか」が勝負を決める のかもしれない。
次回の記事:
「UKA-GYRE」開発記 シリーズ目次
読み物編 --- エンジニアでなくても楽しめる!
- プロローグ ― UKA-GYRE 開発記
- 読み物 第1回 ― ISTJには数字を、ENFPには共感を ― AIに「性格」を与えた日
- 読み物 第2回 ― 深夜3時はAIの経験値稼ぎタイム ― 「昇華」のメカニズム
- 読み物 第3回 ― カロリーの数字の裏にある物語 ― AIが「今日のあなた」を理解するまで
- 読み物 第4回 ― 「何を書くか」より「どう伝えるか」 ― AIを使った大人の実験科学(この記事)
- 読み物 第5回 ― 「AIが書いた」ではなく「AIと一緒に書いた」 ― Human-in-the-Loopという思想(完結)
- 読み物 番外 ― 自分が作ったAIに食べ過ぎを怒られ続けた話 ― 開発者の裏側
技術深掘り編 --- 設計判断と実装の詳細

