対話型AIデザイン:音声エージェントのための設計ガイド

Rene, Kabir Goel 
対話型AIデザイン:音声エージェントのための設計ガイド

対話型AIデザインとは、AIエージェントが何を、いつ話し、会話がうまくいかないときにどうするかを決めることです。このテーマのガイドの多くはチャットボット向けに書かれています。このガイドは音声エージェント向けです。電話の相手は前に戻れず、どんな間も聞こえてしまい、音声認識はときどき「十五」を「五十」と聞き間違えます。

Cartesiaは音声エージェントが動く音声モデルとエージェント基盤を作っているので、このガイドでは問題ごとに対応するCartesiaの設定も紹介します。考え方自体はどのスタックにも当てはまります。要点は、タスクのために設計し、耳で聞く前提で書き、物事がうまくいかない瞬間に一番力を注ぐことです。「すみません、聞き取れませんでした」を3回続けて聞いて喜ぶ人はいません。

音声とチャットは別の設計課題

対話設計のアドバイスには、チャットにも音声にも通用するものが多くあります。通用しないものも同じくらいあります。

チャット音声
読み方読み返し、流し読み、スクロールで戻れる一語ずつ、一度だけ、順番に聞く
長さ箇条書き付きの段落でも問題ない2文でも長いターン
選択肢ボタンやリンク選択肢を覚えておく必要がある
沈黙2秒待たせても誰も気づかない1秒の間で回線が切れたように感じる
入力の誤り打ち間違いは本人に見える認識の誤りはエージェントが復唱するまで見えない
割り込みまれ頻繁で、エージェントは話すのをやめる必要がある

ユーザビリティ研究はこのことを以前から指摘しています。Nielsen Norman Groupが2018年に音声アシスタントをテストしたところ、うまく機能したのは短い答えで済む単純な質問だけでした。LLMによってエージェントが質問を理解する力は大きく向上しました。しかし、人が聞きながら頭に留めておける量は変わっていません。

キャラクターではなくタスクから始める

あいさつ文を書いたり声を選んだりする前に、エージェントが完了すべき2〜3のタスクと、それぞれの「完了」の定義を書き出します。「予約の変更」は、新しい日時がカレンダーに入り、相手がその復唱を聞いた時点で完了です。「請求に関する質問に答える」はタスクではありません。「前回の請求書の項目を説明し、二重請求なら返金を提案する」はタスクです。

タスクごとに、エージェントに必要な情報、その出どころ(相手、CRM、ツール)、エージェントがしてはいけないことを書き出します。このリストがそのままエージェントへの指示とツールの説明になります。キャラクターは後からで構いません。注文を見つけられない感じのいいエージェントは、やはり間違ったエージェントです。

耳で聞く前提で書く

話し言葉の応答には、書き言葉とは違う習慣が必要です。

  • 1ターンに1つの質問。 「生年月日とアカウントの郵便番号を教えてください」と聞くと、答えは半分しか返ってきません。一つずつ尋ねます。
  • 答えを先に。 「ご注文は火曜日に発送され、金曜日に届きます」のほうが、追跡情報から始めて最後に日付が出てくる文より伝わります。
  • 選択肢は少なく。 目安は最大3つです。4つ目を聞く頃には、1つ目を忘れています。それ以上ある場合は自由回答の質問にして、答えの解釈は言語モデルに任せます。
  • 書式は使わない。 マークダウン、箇条書き、絵文字は読み上げられるか消えてしまいます。音声用に書いていることをモデルに伝えます。

数字、コード、名前には特に注意が必要です。Sonicは、$19.99のような価格、04/20/2025のような日付、(415) 555-1212のような電話番号など、一般的な表記をそのまま正しく読み上げます。1文字ずつ読む必要がある確認コードは<spell>タグで囲みます。製品名や地名の発音を間違える場合は、プロンプトのたびに直そうとせず、発音辞書に一度登録します。Cartesiaのプロンプトのコツには、LLMが書く音声向けテキストのためのシステムプロンプトのひな形があり、これらのルールを網羅しています。自分のプロンプトの最初の下書きとして使えます。

実際に相手が聞く文字列でテストしてください。あいさつは見事に読めるエージェントでも、「残高は$1,204.50、期日は11/03です」はうまく読めないことがあります。

タイミングを設計する

会話では、人は約200ミリ秒で話者を交代します(Stivers et al., 2009)。相手が話し終えたと確信するまで丸1秒待つエージェントは遅く感じられます。間があるたびに話し出すエージェントは、まだ考えている人の話を遮ります。

この判断は固定の無音タイマーではなく、ターン検出の役割です。Cartesiaの音声認識モデルInkは、音声だけでなく発話の意味からターンを検出します。相手がおそらく話し終えた時点で早めのシグナルを出せるので、エージェントは返答の準備を始められます。相手が話を続けた場合、そのシグナルは取り消されます。詳しくは音声区間検出とターン検出のガイドをご覧ください。

タイミングに関する判断のうち、さらに2つはエンジニアリングではなく設計の問題です。

  • 時間のかかる処理の前に一言話す。 ツールの呼び出しに3秒かかるなら、3秒の沈黙は故障に聞こえます。「ご注文を確認しますね」という短い一言で、エージェントが聞いていたことが伝わります。Managed Agentsのツールには、そのためのpre_tool_speech設定があります。
  • 何を割り込み可能にするか決める。 相手は頻繁に割り込みます。たいていの場合、エージェントは話を止めて聞くべきです。例外は法的な告知や支払金額の復唱で、これは最後まで言い切ってから質問を受けます。

大事なことだけを確認する

すべてを確認すると退屈です。何も確認しないと、エージェントは歯医者の予約を違う火曜日に入れてしまいます。情報ごとに、間違えたときの代償で分類します。

  • 代償が小さい: あいさつでの相手の名前、電話の用件。使うことで暗黙的に確認します。「かしこまりました、ご注文の件ですね」
  • 代償が大きい: 日付、金額、住所、口座番号など、取り消せない操作につながるもの。復唱して「はい」を待ちます。「10月8日木曜日の午後2時30分でよろしいですか。予約しますか?」

認識の誤りは、製品名、通りの名前、アカウントコードなど、同じ単語に集中します。事前に分かっているなら、それらをkeytermsとして認識モデルに渡し、最初から正しく聞き取れるようにします。誤った文字起こしを後から直すより、防ぐほうが簡単です。

どの失敗にも次の一手を用意する

設計作業の大半は、うまくいかないケースにあります。公開前に次のケースを計画しておきます。

状況エージェントがすべきこと
聞き取れなかった質問をより具体的に言い換える。一字一句同じ言い方は繰り返さない。
2回聞き取れなかった人や別の窓口を案内する。3回目の「もう一度お願いします」で、相手は0を連打し始めます。
沈黙一度だけ声をかけ、その後は折り返しを提案するか丁寧に終える。
対応範囲外何なら手伝えるかを伝え、引き継ぎを提案する。
ツールが失敗したシステムが使えないことを伝え、次の手順を示す。答えをでっち上げない。
相手が指示を無視するよう求めた断ってタスクを続ける。公開前にテストする。

「2回まで」のルールは、エージェントへの指示に明記してください。LLMは無限に辛抱強く、電話での無限の辛抱強さは罠のように感じられます。

人への引き継ぎを分かりやすくする

どのエージェントにも人につながる手段が必要で、相手はいつでもそれを求められるべきです。Managed Agentsでは、transfer_to_numberシステムツールが通話を電話番号またはSIPアドレスに転送します。転送先ごとに「The caller has a billing or payment question」のような自然な言葉で条件を書けます。

自分の転送がどの種類かを把握しておきましょう。コールド転送では、通話はそのまま転送先につながり、エージェントは抜けます。ウォーム転送では、相手が加わる前に、電話を受ける人へ誰かが事情を説明します。Cartesiaが現在ドキュメント化している転送はコールド転送で、SIPトランキングのドキュメントではSIP REFERによる転送と説明されています。それを前提に設計しましょう。エージェントには、誰にどんな理由でつなぐのかを相手に伝えさせます。電話を受ける人に背景情報が必要なら、転送の前にWebhookツールで短い要約をCRMに書き込み、「それで、ご用件は?」と聞き直さずに済むようにします。

実際の通話でテストする

書いたチーム自身が読み上げる台本は、必ずテストに通ります。実際の利用者は台本どおりには話しません。本番のトラフィックを流す前に、次のことを行います。

  • 自動化するキューから実際の録音や文字起こしを20〜50件集め、エージェントに通します。
  • 難しいケースも含めます。背景の雑音、なまり、文の途中で考えを変える人、最初の5秒でオペレーターを求める人などです。
  • 印象ではなく結果を採点します。Managed Agentsでは、完了した通話をカスタムメトリクスで評価できます。これは自分で定義するLLMの評価者です(「相手の問題は解決したか?」)。また、すべての通話で、エージェントの最初のターンの音声の最初のバイトまでの時間も記録されます。
  • 公開後は毎週、自分でサンプルを聞きます。文字起こしでは、口調、長い間、相手の話にかぶせた発話が分かりません。

AIコールセンターの試験導入ガイドでは、これを1つのキュー向けの評価シートにまとめています。このようにテストできるエージェントを作るには、Managed AgentsとCartesiaのプレイグラウンドの無料アカウントから始めてください。

関連ガイド

よくある質問

対話型AIデザインとは何ですか?

対話型AIデザインとは、AIエージェントが何を、いつ話し、何を尋ね、会話がうまくいかないときにどうするかを決めることです。エージェントへの指示、言い回し、情報の確認方法、誤解からの立て直し方、人に引き継ぐタイミングが含まれます。音声エージェントではタイミングも対象です。いつ話し始めるか、割り込みにどう対応するか、数字やコードをどう読み上げるかを決めます。

音声エージェントの設計はチャットボットの設計とどう違いますか?

電話の相手は前に戻ることも、流し読みすることも、ボタンを押すこともできません。すべてが一度で、順番どおりに、リアルタイムで伝わる必要があります。音声エージェントには、短いターン、一度に一つの質問、コードや数字の明示的な復唱、そしてテキストのチャットボットでは起きない音声認識の誤りや割り込みへの備えが必要です。沈黙も重要です。電話での1秒の間は戸惑いに聞こえますが、チャット画面では誰も気づきません。

会話デザイナーは何をするのですか?

会話デザイナーは、エージェントが完了すべきタスクを整理し、質問と応答を書き、情報の確認方法とエラーからの立て直し方を決め、人へ引き継ぐルールを定め、実際の会話で結果をテストします。LLMベースのエージェントでは、すべてのセリフを書く仕事から、モデルの発言を制約する指示、ツールの説明、テストケースを書く仕事へと重心が移ります。

対話型AIデザインの原則は何ですか?

相手が電話してきた目的のタスクを中心に設計します。ターンは短く、一度に一つだけ尋ねます。間違えると代償の大きい情報だけを確認します。どの失敗にも次の一手を用意し、誰もループに閉じ込めません。人につながる道を分かりやすくします。それを書いたチームが読む台本だけでなく、実際の録音と実際の利用者でテストします。

音声エージェントはどれくらいの速さで応答すべきですか?

会話では、人は約200ミリ秒の間隔で話者を交代します。そのため、エージェントは相手が話し終えてから1秒よりかなり前に話し始めるべきです。ツールの呼び出しに時間がかかる場合は、先に短い一言(「ご注文を確認しますね」)を言わせ、聞こえていることを相手に伝えます。