代理框架
Pydantic AI 2.31 將 AG-UI 執行識別移入事件流,延遲輸入也能先建立串流
新版允許在尚未取得 `run_input` 時建立 `UIEventStream`,並讓 `AGUIEventStream` 自行持有 thread 與 run ID。它亦修正 Temporal 沙箱相容性及備援模型的 tracing 歸屬,減少長時代理流程中的診斷盲點。

Pydantic AI 2.31.0 調整了代理後端與前端事件協定之間的生命週期。`UIEventStream` 現在毋須在建構時立即取得 `run_input`;對由佇列、排程器或外部工作流稍後才交付輸入的系統而言,伺服器可以先配置串流與訂閱者,再於真正執行代理時接上輸入,不必建立假的初始請求或重建連線。
更重要的是,`AGUIEventStream` 現在自行保存 `thread_id` 與 `run_id`。兩者分別識別持續對話及單次執行,若過去只從呼叫端輸入推導,重連、背景續跑或同一 thread 的並行 run 容易失去穩定對應。把識別碼放在事件流物件上,可讓每個 token、工具呼叫與狀態事件在沒有原始輸入的階段仍帶有一致上下文;但 release note 未宣稱它已提供 exactly-once 傳送或持久化保證,工程端仍須自行處理重播與去重。
2.31.0 也修正兩項營運問題。首先,`FallbackModel` 失敗時的 tracing span 會歸到真正報錯的模型,而非籠統標在 `fallback:` 包裝器上;這會直接改善供應商故障率、延遲與成本告警的可判讀性。其次,套件會把 `openai` 模組列入 Temporal workflow sandbox 的 pass-through 範圍,避免代理工作流因受限匯入環境而失敗。PyPI 顯示 wheel 與原始碼皆於 8 月 15 日透過 Trusted Publishing 上傳;升級前仍應用既有 AG-UI 重連、並行 run 與 Temporal replay 測試驗證語意。