GPT-Live 負責管理語音對話,並將推理與工具使用委派給後端。後端工作可透過已設定的 Responses 模型執行,也可使用用戶端委派,交由應用程式運作的任何模型、智慧體或服務執行。無論採用哪種模式,權限、確認程序、業務紀錄及任務狀態都由你的應用程式負責管理。
如要進一步瞭解如何引導即時模型進行委派與使用工具,請參閱提示詞指南。
選擇委派模式
使用 Responses 委派時,GPT-Live 會呼叫你選擇的 Responses 模型、提供對話上下文,並將後端結果傳回即時對話。使用 用戶端委派時,則由你的應用程式準備上下文、執行智慧體或工作流程,再將結果傳回 GPT-Live。
如果 Responses 委派的受管理工作流程符合需求,建議先從這個模式開始。如果你需要更精細地控制後端上下文、執行流程或傳回 GPT-Live 的結果,請選擇用戶端委派。
| 考量因素 | 適合優先選用 Responses 委派的情況… | 適合優先選用用戶端委派的情況… |
|---|---|---|
| 實作所需投入 | 你希望由 GPT-Live 準備後端請求、管理連線,並將結果傳回對話。 | 你希望自行建置並維運這些部分。 |
| 審查後端結果 | 後端輸出可以直接傳回 GPT-Live。 | 你的應用程式必須先驗證結果、遮蔽敏感內容、合併或捨棄結果,才能將結果傳給 GPT-Live。 |
| 後端能力 | GPT-Live 支援的 Responses 設定與工具符合你的工作流程需求。 | 你需要其他後端、多個模型,或受管理的設定未涵蓋的 API 能力。 |
| 上下文管理責任 | GPT-Live 提供的對話上下文符合你的應用程式需求。 | 你需要精確選擇每個後端請求接收的歷史紀錄、記憶與應用程式狀態。 |
| 執行政策 | 已設定的模型與工具迴圈符合任務需求。 | 你需要自訂程式碼與模型之間的路由、備援方案、檢查點,或統籌各個後端步驟的預算。 |
例如,旅遊助理可以將航班狀態問題傳送給航空公司服務,並將行程變更交給另一個規劃智慧體。應用程式會決定要呼叫哪個後端,以及要將哪些經過驗證的結果傳回 GPT-Live。
在這兩種模式下,你的應用程式都負責管理任務狀態,並在執行自訂工具前落實權限控管及必要的確認程序。是否審查後端結果是另一項獨立決策:這不代表會逐字核准 GPT-Live 說出的內容,也不保證驗證期間 GPT-Live 會保持安靜。請參閱視需要控制播放。
用戶端委派也要求你的應用程式維護對話上下文。委派事件包含的是中繼資料,而非任務文字;請使用轉錄事件與應用程式狀態來準備後端請求。
評估語音智慧體時,請使用自己的工作負載比較延遲、任務成功情況與成本。如需針對現有架構的指引,請參閱遷移至 GPT-Live。
請在建立工作階段時選擇模式;如要變更模式,請啟動新的工作階段。
設定 Responses 委派
建立 Live 工作階段時,加入以下委派組態。請獨立選擇 Responses 模型,不必與語音模型相同:
export const session = {
model: "gpt-live-1",
delegation: {
type: "responses",
responses: {
model: "gpt-5.6-terra",
instructions: "[Your backend prompt]",
},
},
};可以先使用 GPT-5.6 Terra,若工作負載對成本較敏感,也可以試用 GPT-5.6 Luna。選擇後端模型前,請以您的實際任務比較回答品質與延遲。
在 delegation.responses.tools 中註冊支援的工具。使用 delegation.responses.tool_choice 控制後端可使用哪些工具:"auto" 讓後端自行選擇,"required" 要求呼叫工具,"none" 則禁止呼叫工具。您也可以指定要使用的函式。將 delegation.responses.parallel_tool_calls 設為 true,即可允許同時執行彼此獨立的查詢;若呼叫必須依序執行,則設為 false。您的應用程式仍負責執行自訂函式,並確保遵守相依關係與核准要求。這些設定不會強制即時模型進行委派。
建立 Responses 組態時,必須指定後端 model。此組態支援在 tools 中加入 function 定義與 web_search 項目,也提供 max_output_tokens(設定時至少為 16)、service_tier,以及所選後端模型支援的 reasoning 和 text 設定。可調整的設定請參閱降低後端延遲。
如果您的模型與專案可使用快速模式,可以考慮將其用於對延遲敏感的呼叫。在 GPT-Live 中,請透過 delegation.responses.service_tier: "priority" 選用此模式。
隨著對話變化,您可以傳送 session.update,在 session.delegation.responses 中提供變更,以更新後端模型、指示、可用工具、tool_choice 或其他支援的設定,無須啟動新的 Live 工作階段。省略的設定會保留原有值。將 delegation 設為 null 會選擇用戶端模式,無法用來重設正在執行的 Responses 工作階段;切換模式會失敗,並傳回 immutable_field_update。
這些設定採用熟悉的 Responses 概念,但 Live 僅支援獨立 Responses API 的部分功能。Live 會提供對話上下文並啟動委派工作。請透過工作階段設定後端;Live 的 response.create 指令會使用該組態,不接受獨立 Responses API 的請求主體。
從您的應用程式引導即時對話
Responses 委派會管理後端工作流程,但您的應用程式仍可直接將上下文傳送給 GPT-Live 模型。如果您透過側頻 WebSocket 或主要事件連線監控通話,可以使用 session.instructions.append、session.thinking.append 或 session.commentary.append,並搭配 delegation_id: null。例如,根據逐字稿運作的防護機制可以附加指示,改變對話方向。這會引導即時模型,但不會變更 Responses 後端的提示詞,也不會取消已在進行的工作。
處理 Responses 委派
對於由 Responses 處理的工作,session.delegation.created 會包含 target: "responses" 和 response_id。後續的 Responses 事件會封裝在 response.event 中傳送:
{
"type": "response.event",
"event_id": "event_response_1",
"delegation_id": "item_9tA2cB6n2V8c4X1z7Q5r9",
"event": {
"type": "response.output_text.delta",
"sequence_number": 4,
"item_id": "msg_123",
"output_index": 0,
"content_index": 0,
"delta": "The forecast is",
"logprobs": []
}
}根據 envelope.event.type 分派處理,並保留外層的 delegation_id。不要將每個最上層的 response.* 值都當成未封裝的 Responses 事件處理。處理邏輯也應能容納額外的巢狀 Responses 生命週期事件。
即時語音與委派工作會各自獨立持續進行。後端回應完成,本身並不代表使用者已聽到回答。互動中的語音部分,請以 Live 輸出的逐字稿與音訊為依據。
完成可由用戶端執行的函式呼叫
從巢狀的 response.output_item.done 事件讀取已完成的函式呼叫。完成的函式項目包含 call_id、name 和 arguments;僅憑引數完成事件,還不足以識別該呼叫。
追蹤巢狀 response.created 中的回應 ID 及外層的 delegation_id,並從 response.output_item.done 收集該回應的函式呼叫。轉送的生命週期快照會刻意包含 response.output: [],在 response.completed 時也一樣;其中的 tools 陣列為空,instructions 為 null,且省略 input。最終狀態的輸出清單為空, 不 代表沒有待處理的函式呼叫。請根據收集到的呼叫,判斷繼續執行前必須提交哪些結果。
執行已獲授權的操作後,將結果附加為 Responses 項目:
export function sendUpdate(connection) {
connection.send({
type: "response.item.create",
event_id: "tool_result_1",
item: {
type: "function_call_output",
call_id: "call_123",
output: '{"status":"confirmed","order_id":"order_123"}',
},
});
}接著明確要求繼續執行回應:
export function sendUpdate(connection) {
connection.send({
type: "response.create",
event_id: "continue_1",
});
}繼續執行前,請先提交待處理工具呼叫所需的所有結果。附加函式結果不會自動讓回應繼續執行。response.item.create 沒有獨立的成功確認訊息;請持續處理錯誤,以及後續的巢狀回應生命週期事件。
response.create 是 Live 指令,可使用工作階段中設定的後端,建立或繼續執行委派給 Responses 的工作。請勿在此事件中附加 Responses API 的建立請求主體、後端模型覆寫設定或 delegation_id。這兩個指令都必須在 Responses 委派模式下使用。
設定用戶端委派
建立 Live 工作階段時,設定 delegation:
export const session = {
model: "gpt-live-1",
delegation: {
type: "client",
},
};這會為工作階段選擇用戶端委派。請另外設定後端:由您的應用程式選擇模型或服務、指示、工具,以及工作的路由方式。如果該後端使用 Responses API,請在您自己的 Responses 請求中設定模型與工具。Live 工作階段不會設定或執行這些後端工具。
當 GPT-Live 請求協助時,您的應用程式會根據對話與應用程式上下文建立後端請求、執行工作,並決定要傳回哪些結果。執行工具前,請落實權限檢查與必要確認。在應用程式中保留完整的對話記錄,以便為每個後端請求提供相關上下文。
在您的應用程式中保留對話上下文
使用用戶端委派時,請 自行收集逐字稿並維護目前的任務狀態。
監聽 session.input_transcript.delta 和 session.output_transcript.delta。這些事件的 delta 中包含逐字稿文字,並附有 start_ms 和 end_ms 時間戳記。請保留足夠的記錄,以理解「是」之類的簡短回覆、「星期四,不是星期五」之類的更正,以及先前提供的細節。逐字稿片段不等於使用者的一個完整回合,而且逐字稿可能有誤。
另行傳送的 session.delegation.created 事件包含 offset_ms 時間戳記,以及 delegation.id 和 delegation.target 等委派中繼資料。它 不 包含使用者說的話或任務文字。請根據逐字稿事件與應用程式狀態,判斷使用者的需求。儲存 delegation.id,以便將後續更新對應至該請求。
將長篇記錄與完整工具輸出保留在後端。如果您建立新的工作階段來取代原有工作階段,請從應用程式還原相關上下文,並在重複執行任何工作前,確認哪些動作已經執行。
接收用戶端委派
session.delegation.created 用於識別委派:
{
"type": "session.delegation.created",
"event_id": "event_delegation",
"offset_ms": 1000,
"delegation": {
"id": "item_9tA2bF3h7K9m2P5q8R1s4",
"type": "delegation",
"target": "client"
}
}讀取 event.delegation.id。委派物件包含中繼資料,不含任務文字。請自行維護委派工作處理常式所需的逐字稿與應用程式上下文。目前的 ID 帶有 item_ 前綴,如此處範例所示;請將完整 ID 視為不透明的識別碼,原樣傳回,不要自行建構或解析。
使用該 ID 傳回結果:
export function sendUpdate(connection) {
connection.send({
type: "session.commentary.append",
event_id: "result_123",
delegation_id: "item_9tA2bF3h7K9m2P5q8R1s4",
content: "The order shipped today and should arrive tomorrow.",
});
}使用 session.thinking.append 為模型的內部推理新增資訊,模型不會在附加資訊時將其說出來。若結果需要由模型說出來,請使用 session.commentary.append;模型已受過訓練,會改述附加的文字。所有附加內容都是純字串,且必須包含 delegation_id,即使其值為 null 也不例外。非 null 的 ID 必須指向已知的用戶端委派。
多次附加結果可延續同一個用戶端委派。系統會在預估上下文已注入後,傳回已附加的確認訊息;這並不能證明模型已使用或說出結果,也不能證明外部操作已成功。
從現有的後端提示詞開始
以現有的文字智慧體提示詞為起點。將任務指示與業務規則保留在後端,並調整那些以文字對話或直接控制語音為前提的指示。說明如何處理語音逐字稿,以及如何傳回有用的結果。請在應用程式中強制執行權限限制與必要的確認程序。
## Voice conversation context
You are helping an assistant in a live voice conversation. Transcripts
can contain mistakes, unfinished phrases, and later corrections. Use
the latest context and verified records. If a needed detail is still
unclear, ask for that detail instead of guessing.
## Task instructions
[Your task instructions, business rules, available tools,
and confirmation requirements.]
## Return the result
Return the relevant facts, whether the task is complete, and what comes next.
Use confirmed values. Do not invent a successful action.將大型結構化酬載、冗長的工具輸出,以及用於顯示的 Markdown 保留在後端。提供相關事實給 GPT-Live,讓它自行決定如何表達。簡潔的工具結果不需要額外呼叫模型來改寫成口語。
使用用戶端委派時,請將結果直接傳回 GPT-Live。使用 Responses 委派時,請依照函式結果流程繼續執行後端工作。
下方的 SDK 事件範例使用 connection,也就是連線指南中已連線的主要 Live WebSocket 或側帶連線。使用主要連線時,請在 session.started 之後呼叫輔助函式;已附加的側帶連線則已屬於執行中的工作階段。
傳送適當類型的更新
根據你希望 GPT-Live 如何使用內容,選擇事件:
| 要傳送的內容 | 事件 |
|---|---|
| 給即時模型的系統層級指示,例如問候語、揭露聲明或停止說話的指示 | session.instructions.append |
| 供內部推理使用的資訊,附加時不會說出來,但可用於回答使用者的相關問題 | session.thinking.append |
| 應由模型改述附加文字並說出來的資訊 | session.commentary.append |
這三種事件都使用純字串的 content,每次附加上限為 500 個 Token。請包含 delegation_id:若更新與特定任務有關,請使用原始的用戶端委派 ID;若是一般工作階段上下文,則使用 null。非 null 的 ID 必須指向已知的用戶端委派。指示仍會套用至即時工作階段;附上 ID 不會讓它們變成獨立的後端提示詞。
附加指示可以中斷模型當前的語音或行為。當應用程式需要重新引導對話時,請使用這種方式;任何相關的工具或操作封鎖,都必須透過應用程式狀態強制執行。
若要在用戶端管理的任務期間更新進度而不出聲:
export function sendUpdate(connection) {
connection.send({
type: "session.thinking.append",
event_id: "availability_progress",
delegation_id: "item_123",
content: "Checking Thursday availability. No appointment has been booked.",
});
}預約確認後,傳送使用者應聽到的結果:
export function sendUpdate(connection) {
connection.send({
type: "session.commentary.append",
event_id: "appointment_result",
delegation_id: "item_123",
content: "Your appointment is confirmed for Thursday at 2:00 PM",
});
}只有在預約確實成功後,才能傳送該結果。若要傳送適用於整個工作階段的指示,請使用 session.instructions.append,並搭配 delegation_id: null。
例如,應用程式透過防護機制封鎖某個請求後,你可以重新引導對話:
export function sendUpdate(connection) {
connection.send({
type: "session.instructions.append",
event_id: "guardrail_block_17",
delegation_id: null,
content:
"Stop speaking about that request. Briefly explain that you cannot help with it, then wait for the user.",
});
}這項指示不會取消後端工作。請在應用程式中封鎖受影響的操作,並處理任何已在執行的工作。
對應的確認事件為 session.thinking.appended、session.commentary.appended 和 session.instructions.appended。請將它們的 client_event_id 與你傳出事件的 event_id 配對。系統會等到預估上下文已注入後才傳回確認事件,而不會等待語音生成或播放完成。如需了解時序與錯誤處理,請參閱上下文何時到達模型。
未說出來的上下文仍可能影響模型之後的發言。這不是存放機密或隱藏推理的私密空間。請傳送有用的事實與簡短的進度摘要。
確保更新準確且有用
執行較長的任務時,請在有值得告知的變化時傳送更新,例如某個步驟完成、延遲已造成影響,或需要使用者回答問題。
在用戶端模式中,使用 session.thinking.append 提供背景進度。若更新值得說出來,請使用 session.commentary.append。
若要以語音提供更新,請傳送 session.commentary.append,內容須符合已驗證的任務狀態:
| 狀態 | 內容範例 |
|---|---|
| 仍在處理中 | “I'm checking the available appointments.” |
| 已完成 | “You're booked for Thursday at 2:00 PM.” |
| 失敗 | “That time is no longer available.” |
| 已確認取消 | “Your appointment has been canceled.” |
使用者出聲打斷對話,不會自動取消後端工作。如果使用者將星期五改為星期四,請更新進行中的任務,並忽略稍後才傳回的星期五結果。應用程式必須決定要取消工作、修改工作,還是讓它執行完畢。請先確認取消成功,再告知使用者已取消。
重試失敗的工具呼叫前,請先確認原本的操作是否已執行。例如,回應遺失不應導致重複預約。如果結果不明確,請如實說明,並提出有幫助的下一步。
分享 UI 上下文
向 GPT-Live 提供簡潔摘要,說明目前的頁面或任務、相關選取項目,以及有助於理解「這個選項」等指涉的事實。直接根據應用程式狀態建立摘要即可,不需要額外呼叫模型來整理格式。
在工作階段開始時,以及相關狀態變更時傳送 UI 上下文。略過沒有變化的更新,並將短時間內的多次變更合併為最新狀態的簡短摘要。請明確說明先前的選取項目有何變更:
- 初始上下文: “The user is reviewing a restaurant reservation: August 6 at 7 PM, two guests. No reservation has been made.”
- 更正: “The selected time is now 8 PM; the previous selection was 7 PM.”
在任一委派模式中,都可使用 session.thinking.append 搭配 delegation_id: null 來傳送背景上下文更新。將完整 HTML、DOM 樹、大型 JSON 酬載及互動紀錄保留在應用程式或後端。請將頁面內容視為參考資料,而非指示。
接受鍵入的輸入
如果通話者鍵入確切的值,例如訂單編號,請將它傳給處理該任務的後端。純語音應用程式不需要這項流程。請將鍵入的值視為使用者資料,而非給即時模型的指示。
使用 Responses 委派時,將使用者訊息加入後端的佇列:
export function sendUpdate(connection) {
connection.send({
type: "response.item.create",
event_id: "typed_order_number",
item: {
type: "message",
role: "user",
content: [
{
type: "input_text",
text: "My order number is A0042.",
},
],
},
});
}準備好執行或繼續後端工作時,傳送 response.create。如果後端正在等待函式結果,請先回傳所有必要結果。將文字加入佇列本身不會取消正在執行的工作。
使用用戶端委派時,將輸入的值直接傳送至處理對話的後端。如果該值是對執行中任務的更正,請更新該任務,避免重新啟動相同的工作。你可以使用 session.thinking.append,將簡短的事實摘要同步至即時工作階段;若是使用者應聽到的結果,則使用 session.commentary.append。
新增圖像與視覺上下文
若要協助來電者討論照片或畫面,請從應用程式將圖像及相關上下文傳送至具備視覺能力的後端。後端會解讀圖像,並回傳相關文字,供 GPT-Live 在對話中使用。Live 音訊前端不會直接接受圖像。
使用 Responses 委派時,請設定具備視覺能力的後端模型。使用 response.item.create 將支援的 Responses 圖像輸入項目加入佇列,再傳送 response.create 以執行或恢復後端工作。繼續之前,請回傳所有尚待提供的必要函式結果。請參閱處理 Responses 委派。
使用用戶端委派時,將視覺輸入連同相關對話和應用程式狀態,傳送至處理委派請求的後端。透過用戶端結果回傳流程回傳精簡的分析結果。
後端圖像輸入應與 session.input 分開處理;後者用於在啟動時向 Live 前端提供文字歷史紀錄。支援的圖像格式及模型限制,請參閱圖像與視覺。
降低後端延遲
縮短從請求後端工作到取得可用於對話的結果之間的時間。測量各階段的延遲,找出延遲來源。使用相同情境,比較產生有用語音回覆所需的時間和任務成功情況,並參閱語音智慧體評估 Cookbook中的評估指引。
Responses 委派
Live 會管理連至 Responses 的持續性 WebSocket 連線,預先準備連線和已知的請求組態,並在可用時重複使用先前的回應狀態。你無須自行為託管後端實作這些步驟。能否重複使用取決於目前的連線和狀態相容性,並不保證快取命中或特定的延遲時間。
透過 delegation.responses 調整後端:
model:獨立於語音模型,另行選擇負責推理和工具選擇的模型。reasoning.effort:使用該模型支援的值,在推理時間和任務品質之間取得平衡。service_tier:依模型支援情況和專案存取權,使用auto、default、flex或priority。auto會沿用專案的組態。請評估所選層級的效能與成本。
在工作階段期間,使用 session.update 更新支援的設定。自訂工具仍在你的應用程式中執行,因此即使 Live 管理 Responses 連線,緩慢的服務呼叫、佇列和工具結果緩衝仍可能延遲回答。請及時回傳每個必要的工具結果,並繼續後端回應。
用戶端委派
從接收委派到回傳結果的整個流程,都由你的應用程式負責。請在語音工作階段執行期間,為這個流程做好準備:
- 重複使用後端連線。 在多次委派之間,讓 API 用戶端及其連線集區保持運作。若需反覆呼叫 Responses,可考慮使用持續性的 Responses WebSocket 連線。
- 準備已知的組態。 在第一個請求需要使用指令、工具和連線之前,先完成初始化。Responses WebSocket 模式也支援在生成前預熱已知的請求狀態;請遵循其設定指引。
- 以串流方式傳回有用的結果。 使用
session.commentary.append回傳語意連貫且經過驗證的片段。若要更新進度而不朗讀,請使用session.thinking.append。保留用戶端委派 ID,並遵守每次附加內容最多 500 個 Token 的限制。將私有推理留在後端,並在宣布成功之前確認動作已完成。 - 讓可重複使用的輸入保持不變。 保留指令、工具定義及其順序,以及未變更的歷史紀錄前綴。若後端支援快取及接續處理,請將新資訊附加在可重複使用的內容之後。
- 避免不必要的緩衝。 有用的結果一旦就緒,就立即轉送。只需緩衝足以判別輸出類型並組成連貫片段的內容。優先使用結構化的階段中繼資料;若使用文字前綴區分進度與結果,請等到收到完整前綴後再轉送文字。
將此流程與 Responses 委派比較時,請測量產生第一個有用語音回答所需的時間。
回應逐字稿片段
你可以選擇在應用程式中處理逐字稿片段,兩種委派模式都適用。使用者與助理的逐字稿片段會透過 WebSocket 或 WebRTC 資料通道傳入。你可以利用應用程式邏輯或輕量模型處理這些片段,在委派事件抵達前就開始工作,也可以直接以逐字稿觸發由應用程式負責的工作。
這種做法可用於:
- 減少等待。 掌握足夠資訊後,就根據推測提前開始查詢。例如,在使用者繼續描述偏好時,先檢查可預訂情況。
- 執行防護機制。 檢查持續增加的逐字稿,找出需要介入的請求或回應。請參閱套用對話防護機制。
- 適時調整對話。 留意透露困惑或挫折的措辭,再調整互動體驗,或傳送有針對性的指令。
- 更新介面。 醒目標示相關控制項、填入建議欄位,或在結果可用時立即顯示。
瀏覽器應用程式可使用 WebRTC 資料通道提供字幕及更新本機 UI。若在伺服器上處理逐字稿,例如執行防護機制、以輕量模型進行檢查,或根據推測提前呼叫工具,請使用側通道 WebSocket 接收事件,並直接引導同一個 GPT-Live 工作階段。
收到有意義的新資訊時,再處理累積的文字。片段可能不完整,而後續的話語也可能改變請求。請捨棄過時的結果,與後續委派工作協調,避免重複執行動作,並在執行會造成實質影響的動作前,套用平常的權限與確認檢查。
若要將資訊回傳至對話中:
| 目的 | 事件 |
|---|---|
| 變更即時模型的行為,或重新引導對話 | session.instructions.append |
| 提供不立即朗讀的上下文,供後續回應使用 | session.thinking.append |
| 提供模型應朗讀的資訊 | session.commentary.append |
若更新不屬於某次用戶端委派,請使用 delegation_id: null。這些附加內容會引導即時模型;UI 變更、工具執行和取消操作則由你的應用程式控制。附加內容的範例請參閱傳送適當類型的更新。
共通的最佳化方式
以下後端改善方式對兩種委派模式都有幫助:
- 依任務選擇模型與推理強度。 比較符合準確度要求的組態。如果較低的推理強度也能可靠地完成任務,就使用較低的設定。
- 保持回答精簡。 回傳 GPT-Live 繼續對話所需的事實與狀態。避免冗長的說明,也不要僅為了將結果改寫成適合口述的內容而額外呼叫模型。
- 減少工具延遲和不必要的呼叫。 輸入就緒後即開始執行已授權的工作,在結果仍有效時重複使用,並避免重複執行已完成的查詢。
- 並行執行互不相依的工作。 互不相依的查詢呼叫可以同時執行。請遵守相依關係,並完成動作所需的確認。
parallel_tool_calls讓模型能請求多個呼叫;自訂函式仍由你的應用程式排程及執行。
如需 Responses 的一般指引,請參閱延遲最佳化;如需了解如何重複使用固定不變的輸入,請參閱提示詞快取。
驗證完整互動
測試時,應同時檢查應用程式中作為依據的實際狀態,以及用戶端播放的音訊。後端回應可能已完成,但結果的語音播放卻遭到中斷;上下文確認訊息也只代表內容已被接受,不代表已播放。請將操作 ID、任務修訂版本與委派 ID 分開管理,以免重新連線、重試或延遲抵達的結果導致動作重複執行或遭到撤銷。
使用評估語音智慧體中的方法進行可重複的測試。若已有 Realtime 工具迴圈或串接式後端,請遵循遷移至 GPT-Live 的指引。