AIの返事を単調さから救う「枠」の設計:ナラテーブルにおける制約の工夫
AIと物語を進めるチャットツール「ナラテーブル」の開発過程において、大きな壁となったのが「AIの返事が単調になる」という問題でした。指示を出すだけでは制御できないAIの特性を、どのようにシステム的な「枠」で解決したのか。その具体的な工夫について解説します。
- 一度決まった出力形式が固定されてしまうモデルの特性
- 文言での長さ指定が機能しないことへの対策
- 演出家AIによる「型」の選択と生成上限の個別設定
- 話題の負担を分散させるための工夫

一度決まった形を繰り返すAIの特性
AIモデルには、直前までの自分の出力を手本にするという特性があります。このため、一度特定の形式で回答してしまうと、その後のやり取りもずっと同じ形式が続いてしまう現象が発生します。実際の検証では、11回の試行のうち11回すべてにおいてこの現象が確認されました。
これでは物語に変化が生まれず、会話の質を維持することが難しくなります。
- AIは直近の出力を参照して次を出力する特性がある
- 実測の結果、一度決まった形が継続する現象が頻発した
「文字数制限」という指示の限界
AIに対して「20文字以内で答えてください」といった文言による制約を課しても、期待通りには機能しませんでした。実際の検証では、そのような指示を出したにもかかわらず、平均で107文字も書き続けられるという結果が出ています。
つまり、言葉によるお願いだけではAIの出力長を正確にコントロールすることは困難であるといえます。
- 「短く書く」といった文言での指示は効きにくい
- 指示を無視して長く出力されるケースがあるため、別の手法が必要になる
解決策:6つの型と生成上限の個別設定
この問題を解決するために、AIの返し方を以下の6つの「型」に分類しました。
・普通 ・言葉が先に出る ・素っ気ない ・行動で示す ・まくし立てる ・探りを入れる
そして、これらの型を場面に合わせて選定する役割として「演出家AI」を導入しました。さらに重要なのは、各型ごとに生成トークン数(num_predict:一度に生成される情報の単位の最大数)の上限を個別に設定したことです。
これにより、短い言い捨てと長いまくし立てが実際の会話の中に適切に混ざるようになり、単調さが解消されました。ただし、「素っ気ない型」に関しては例外的な処理を行っています。この型は余裕を持って書かせてから完結した最初の1文で切る方が確実に短くなることが分かりました。実際に26文字分しか渡さない設定では途中で文章が終わってしまうためです。
- 演出家AIが場面に応じて6つの型から選択する
- 型ごとに生成トークン数の上限を個別に設定することで長さを制御する
- 「素っ気ない型」は余裕を持って書かせて一文で切る手法を採用する
会話の質と体験の向上
以前は、重み付き乱数(確率の設定)を用いて型を選んでいました。しかし、これでは「サイコロの結果で短くなった」という機械的な印象をプレイヤーに与えてしまう懸念がありました。今回の手法のように、演出家AIが判断し、システム的に上限を縛ることで、より自然な変化を生み出すことが可能になります。
また、会話の質に関する改善も行いました。以前の検証では、32発言のうち疑問で終わったのはわずか7件でした。これは話題を作る負担がすべてプレイヤー側に乗っていたことを意味します。そこで「相手を探る型」を加えることで、AI側からも話題を広げる役割を持たせ、よりスムーズな対話を実現しました。
- 重み付き乱数ではなく演出家AIによる選択で自然さを追求
- 「探りを入れる型」の追加により、プレイヤー側の話題作成負担を軽減
- 会話全体の質と多様性が向上した
- AIを活用した物語制作に興味がある方
- AIの挙動を制御する技術的な工夫を知りたい方
- ナラテーブルの開発プロセスを追いたい方
- AIに関する専門知識を深く求めている方
- 具体的なプログラムのソースコードを探している方
よくある質問
Q. なぜ「20文字以内」と指示しても無視されるのですか?
公式の情報ではありませんが、AIのモデル特性上、文言による制約よりも直前の出力傾向や生成トークンの上限設定(num_predict)の方が強く影響することがあるためです。
今回の改善では、言葉での指示に頼らず、演出家AIによる「型」の選択と、システム的な「生成上限」の制御を組み合わせることで、AIの単調な出力を解決しました。これにより、自然な長さの変化と話題の多様性が両立されています。
続きはThreadsで。新しいAIの実測と、仕事で使えた使い方を毎日投稿しています。
@shachiku_tech_lab をフォロー関連記事
画像から3DキャラをAIで作る|Hunyuan3D-2.1でVRChatアバターに挑戦した失敗と対策
画像生成AIで描いた設定画を Hunyuan3D-2.1 で3Dモデルにし、VRChat アバターを目指す挑戦の記録。横顔が崩れる理由、3D化AIのあるある失敗6つ、自動リギング(SkinTokens)の結果、次の作戦をまとめました。

AI麻雀道場 第2回:判断はエンジン、言語化はLLM
ローカルAIを活用して麻雀を学ぶツール「AI麻雀道場」の開発秘話。なぜLLMにすべてを任せてはいけないのか、正確な解説を実現するための「役割分担」の仕組みについて詳しく解説します。

AIコーチがリアルタイムで教える!ブラウザで動く「AI麻雀道場」の仕組み
Threadsに投稿された『AI麻雀道場』の紹介内容をもとに、初心者の方にも分かりやすく解説したブログ記事です。ローカルLLMを活用して、自分の打牌に対してAIがリアルタイムに添削してくれる仕組みを詳しく紐解きます。
新しいモデルの実測や解説を毎日投稿しています
Threadsでフォロー以上、本日の業務日報でした。