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

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 發版頻繁,正式上線前應鎖定版本並為插話、工具失敗及網路抖動建立端到端測試。