キャラクターチャットボットが返信のたびに質問で終わるのを防ぐには?
架空のキャラクターチャットボットがほぼすべての発言を質問で終えている場合、質問のノルマを設けるのではなく、最後の1行の「目的」を見直してみてください。まず、その返信がユーザーの実際の発言にしっかり答えているかを確認します。次に、思考が自然に完結している場合は完全な平叙文のままにしておき、その答えが意味のある次のステップにつながる場合や、特定の物語上の選択を促す場合にのみ追加の質問をします。時には、キャラクターが単に沈黙・一息置くだけでも構いません。この行単位の編集を行うことで、返信をぶっきらぼうにすることなく、会話が型にはまった印象になるのを防ぐことができます。
なぜ末尾の質問は単調に感じられ始めるのか?
質問は相手に明確な次の行動を与えるため、会話を継続させるのに役立ちます。しかし、賞賛、冗談、直接的な質問、訂正、ストーリーの展開の後など、どんな場面でもキャラクターが同じ手を使い続けると、その結びはその瞬間に適切に応答しなくなります。会話そのものの変化に比べ、表層的な形式のバリエーションが乏しくなってしまうのです。
対話における質問に関する研究は、重要な限界を含みつつも有益な背景情報を提供しています。Komataniらの研究では、語彙知識の獲得を目的とした対話において、異なる質問タイプに対するユーザーの印象を調査しました。その結果、質問内容が正しくても、同じ質問タイプを繰り返すとユーザーは不快感を抱き、印象が悪化することが報告されています。ただし、この知見は彼らのタスクおよび実験設計に関するものであり、架空のキャラクターに対する普遍的なルールを確立したり、本記事の編集アプローチを検証したりするものではありません。([Komatani et al., 2022](https://aclanthology.org/2022.dnd-13.4/))
Seeらは、複数ターンの会話に対する人間の評価を用い、PersonaChatにおける制御可能な属性(繰り返し、応答の関連性、質問の投げかけなど)を調査しました。彼らの研究は、質問の投げかけを単独の品質基準としてではなく、複数の対話属性の1つとして扱うアプローチを裏付けています。特定のキャラクターが発言の最後を平叙文や沈黙で終えるべきかどうかを検証したものではありません。([See et al., 2019](https://aclanthology.org/N19-1170/))
キャラクター設計者にとっての実践的な教訓は控えめなものです。各ターンの結びがその場に合っているかを点検すること。これらの論文は、質問の割り当てノルマや確実な改善策、あるいは架空の対話に対する既成のルールを提供するものではありません。
返信の末尾を1行ずつ点検する方法
直接的な質問、感情的な反応、冗談、訂正、物語の展開、単なる相づちなど、代表的な対話ターンのセットを網羅して見直します。各返信について、最後の文を評価する前に、ユーザーのメッセージと返信全体の文脈をしっかり読み通してください。
返信がメッセージに答えているか確認する
こう自問してみてください。「もし最後の質問を削除したら、この返信は依然としてユーザーが言ったことに対応しているだろうか?」ユーザーがキャラクターにどこで地図を見つけたのか尋ねたなら、返信はその場所を伝えるべきです。「どこで見つけたと思う?」で終わるのは茶目っ気があるように聞こえるかもしれませんが、ユーザーが求めた答えをはぐらかしているとすれば、本当の問題は句読点ではなく応答性にあります。
点検時のメモとして有用なのは、「回答済み / 一部回答 / はぐらかし」という分類です。末尾を整える前に、まずはぐらかしを修正してください。一部しか答えていないメッセージについては、足りない詳細が本当に不明な設定なのか、それともキャラクターが単にその場ですぐ提供できるものなのかを判断します。
最後の1行の役割を言語化する
結びの横に短いラベルを付けてみましょう。「明確化」「選択肢の提示」「物語への誘い」「重要な詳細の確認」「思考の完結」「間(余白)を置く」などです。「ユーザーに話を続けさせる」というラベルしか当てはまらない場合は、その行を再考してください。そのラベルは会話の引き延ばしの意図を表しているだけで、会話が必要としている情報ではないからです。
質問の答えをテストしてみる
キャラクターが何かを尋ねる場合、もっともらしい答えを想像してみてください。その答えによって、キャラクターが次に言うことや行うことが変化するでしょうか? ユーザーに有意義な選択肢を与えたり、シーンに関連する詳細を明らかにしたり、ユーザーが語りたがっている物語を引き出したりするでしょうか? もしそうでないなら、その質問は削れる可能性があります。もしそうなら、なぜそれが尋ねられているのかユーザーに伝わるよう、焦点を絞り込んでください。
結びの流れを連続して読む
単一の洗練された例を見るだけでなく、連続する複数の返信を確認してください。「どう思う?」「あなたはどう?」「(直前のターンを言い換えただけの質問)」など、繰り返されるパターンに印を付けます。バリエーションを出すとは、毎回新しいありきたりな質問に差し替えることではありません。シーンに合っているなら、完全な平叙文、観察、具体的なお誘い、あるいは一呼吸置く間(ポーズ)などを試してみてください。
これは編集上の診断であり、採点システムではありません。目的は、その場の役割を果たしていない結びを見つけることであり、質問と平叙文の比率を固定値にすることではありません。
お決まりの質問に代わる有効な選択肢とは?
現在のやり取りを適切に完結させる選択肢を採用してください。以下の例は架空のものであり説明用です。測定された結果ではなく、可能な編集例を示しています。
平叙文にするからといって、シーンに必要な質問まで避けるべきではありません。道の選択の例では、キャラクターは有用な背景情報を伝えた後に、具体的な選択肢を尋ねることができます。「橋と塔、どちらを先に見たい?」この質問は、答えによって次のシーンが決まるため、明確な機能を持っています。まだ選択が必要でないなら、キャラクターは情報提供で発言を終え、次の行動を相手に委ねることができます。
間(ポーズ)は、最後のプロンプトを追加せず、返信をすっきりと終わらせることで表現できます。テキスト上では、キャラクターの完全なセリフの後に発言を止めるだけで十分な場合もあります。意味のあるアクションを伴うシーンであれば、観察や仕草で終えることもできます。「彼女はランタンをテーブルに置き、じっと待った。」沈黙を相手に返答を強要する手段として扱わないようにしてください。それは単に利用可能なターンの結び方の1つです。
キャラクターはどんな時に追加の質問をすべきか?
足りない情報が次の返答に影響を与えるときに質問してください。例えば、ユーザーが「そこで会おう」と言って場所が不明な場合、確認のための質問は有用です。ユーザーが思い出を語り始め、その話題を広げたがっているような場合は、「その駅で一番覚えていることは何?」といった物語への誘いが効果的です。キャラクターが次に何を起こすかをユーザーに選んでもらう必要がある場合、選択肢の提示も役立ちます。
質問は、ユーザーが直前に提示した内容と常に関連づけておきましょう。相手が答えたら、その答えを活用してください。無関係なテンプレートの質問を続けてはいけません。相手のメッセージがすでに完結しており、相づち以上の返答を求めていない場合は、無理に話を広げさせようとするよりも、地に足の着いた平叙文を返す方が自然です。
文法的には関連していても、不要な質問というものもあります。「やっと雨が上がったね」に対して「雨は好き?」と返すのはトピックとしては合っていますが、キャラクターにとってその答えは必ずしも必要ではないかもしれません。関連性があることは前提にすぎず、重要なのは「目的」があるかどうかです。
キャラクターの対話に対する実践的な編集ステップ
既存の会話サンプルを用意し、直前のユーザーメッセージとともに、各ターンの最後の文をチェックシートに書き出します。それぞれの文について、次の4つの判断を素早く下してください。
次に、編集したターンを声に出して、または通して読んでみます。必要な情報を省いたせいで平叙文がぶっきらぼうになっていないか、質問が定型プロンプトではなくキャラクターらしい口調になっているかを確認します。質問であっても効果的に機能している結びは残し、習慣で出てきただけのものを修正します。
普遍的な質問のノルマなど存在しません。活発なやり取りであれば意味のある質問が何回も連続することがありますし、静かなシーンであればしばらく質問がなくても構いません。基準はその場その場の文脈です。ユーザーに応答し、考えを完結させ、理由があって問いかけ、会話が自然な区切りに達したときは間(余白)を許容することです。
これはキャラクターの対話向けに導き出された編集手法であり、引用された研究のいずれかで直接検証されたルールではありません。引用された研究は特定の対話タスクや評価に関するものであり、特定のキャラクターの声に対してすべての受け手がどのように反応するかを決定づけるものではありません。
