返回首頁

代理工具

Pydantic AI 2.40 為即時語音代理補上可校正播放進度的插話中斷

新版讓應用程式在使用者插話時,依實際播放的音訊位元組中止回答並同步對話狀態。它同時新增帶外提示佇列與事件監聽介面,讓即時代理不必把所有控制訊號偽裝成使用者回合。

Diliff · CC BY-SA 3.0 · Image source
zh-Hant

Pydantic AI 2.40.0 集中處理即時語音代理最難隱藏的一組狀態問題:模型產生了多少音訊,不等於使用者實際聽到多少。新版 session 可啟用 handle_barge_in=True,並透過 interrupt(played_bytes=...) 回報播放器已播出的位元組;played_audio_bytes 則讓應用程式追蹤進度。當使用者在回答途中插話時,框架因而能取消後續輸出,並讓保留的會話內容更接近真正播放出去的部分,避免模型在下一輪假設使用者已聽完整段回答。

控制面亦獲得幾個可組合的介面。RealtimeSession.enqueue() 可由程式插入帶外提示,不必把監控、政策或後端事件冒充成人類訊息;send(..., respond=) 可明確決定送出文字後是否要求模型回覆。provider_factory 讓即時模型推斷延後至執行期選擇供應商,@agent.on_event 則提供統一事件監聽點,適合串接稽核、遙測或自訂狀態機。

這次更新也修補多個容易造成語音工作階段卡死或歷史失真的邊界:取消插話的競態、非 bytes 音訊造成的使用者回合回滾、工具失敗後音訊與逐字稿串流無法結束,以及對舊版 gpt-realtime 錯送 reasoning 參數。工程師仍須自行管理播放器緩衝、取樣格式與供應商的取消語意;以位元組換算「聽到哪裡」只有在編碼與播放管線一致時才可靠。此外,Pydantic AI 發版頻繁,正式上線前應鎖定版本並為插話、工具失敗及網路抖動建立端到端測試。

來源

  1. Pydantic AI v2.40.0 release notes
  2. pydantic-ai 2.40.0 package release
  3. Realtime voice assistant example