OpenAIとPerplexity、Realtime APIでvoice agentを量産運用した教訓を共有

OpenAIとPerplexityが共有した内容

OpenAI Developersは2026年3月30日、PerplexityがRealtime APIでvoice agentを大規模運用した際の知見をまとめたケーススタディを公開した。公式記事である OpenAI Developersブログ によると、PerplexityはPerplexity CometやPerplexity Computerのような製品でRealtime-1.5をproduction利用しており、現在は月間数百万件のvoice sessionを処理している。記事はvoiceを付加機能ではなく、ユーザーが仕事を自然に委任するための主要インターフェースとして捉えている。

この事例が興味深いのは、単なるlaunch紹介ではなく運用上の摩擦を具体的に書いている点だ。Perplexityが直面した問題は、speech inputとaudio outputをつなぐこと自体よりも、contextが長くなり、クライアントごとにnative audio bufferが異なり、ユーザーがnoisy environmentでinterruptionやhesitationを伴って話す状況でもagentを安定動作させることだった。

Productionで見直した点

もっとも具体的なのはcontext managementだ。Perplexityは当初、大きなtranscript更新を一度に投入していたが、この方式は失敗すると一気に壊れたという。たとえば10,000-tokenの更新を入れようとして、モデルに残っている余地が5,000 tokenしかない場合、以前のhistory全体をまとめて失う可能性があった。そこでチームは、より小さい2,000-token単位で段階的に投入する方式へ切り替え、少しのオーバーヘッドと引き換えにtruncationを穏やかにし、対話を安定させた。

もう一つの重要点はmessage semanticsだ。閲覧中ページの情報をすべて user role として入れると、モデルはユーザーがページ中の断片を全部読み上げたかのように振る舞った。一方、あまりに多くを system に入れると、元から持つ知識、与えられたcontext、現在の質問の境界が曖昧になったという。Perplexityは自然なvoice interactionを作るうえで、このrole設計がtoken数の管理と同じくらい重要だったと述べている。

audio pipelineも大きな論点だった。Swift、TypeScript、Rust、C++の各クライアントが異なるnative audio bufferを送ると性能差が広がり、そこで製品横断でaudioを標準化したとしている。さらに、background noise、ユーザーの割り込み、turn-takingの乱れがある現実環境に合わせてモデルを調整する必要があったと説明する。

なぜ重要か

このケーススタディは、production voice agentが実際にはどこで壊れやすいかを示している。問題はモデル品質だけではない。context chunking、role labeling、audio normalization、noisy environmentへの適応といった地味な設計が、最終的な使い勝手を決める。良いdemoと日常的に信頼できるvoice systemの差はそこにある。

開発者にとっての示唆は、voiceがすでにインフラ層になりつつあることだ。Perplexityが扱うような規模では、chunk size、roleの切り分け、tool選定は単なる実装詳細ではなく、製品アーキテクチャそのものになる。リアルタイムmultimodal agentを次の主要インターフェースと考えるチームにとって、かなり実務的な参考例と言える。