Pydantic AI 于 2026-09-25 发布 2.50.0:新增 DecisionModel 基类(TypeSafeModel 实现之),按路由名询问 Decision、可选 decision_route_threshold,并补齐 Gemini 3.8 Live 实时语音、durable 上下文标记与音频秒级计费。

核心要点速览 (Key Takeaways)

  • ✓协议:新增 `DecisionModel`,`TypeSafeModel` 成为其实现;可用**路由名**询问走哪条路(#8733)
  • ✓兼容:工具调用偏置改为可选 `decision_route_threshold`;`ModelSelectionContext.messages` 以当前请求结尾并新增 `.prompt`(#8737、#8739)
  • ✓实时:支持 `gemini-3.8-live` / `gemini-3.8-live-extended-thinking`;`RequestUsage.audio_seconds` 覆盖按时长计费语音(#8393、#8427)
  • ✓可观测:每次 DecisionModel 请求发出 `decide` span(#8698);`RunContext.in_durable_context` 标记持久化工作流钩子(#8723)
  • ✓升级:`pip install -U 'pydantic-ai==2.50.0'`;对照 v2.50.0 Release 与 docs
🔬

深度技术解析与实战评估

核心背景与行业痛点

多模型 Agent 常要把「选哪条路由 / 是否交接」硬编码成工具调用或脆弱 prompt;TypeSafe/Jev 决策模型需要统一协议,才能在路由名、阈值阈值与可观测 span 上对齐。Pydantic AI 在 v2.50.0 把 Decision 协议一等公民化,并跟上 Gemini 3.8 Live 实时通道。

架构亮点与底层机制

新增 [DecisionModel](https://github.com/pydantic/pydantic-ai/pull/8696) 作为 Decisions 协议基类,TypeSafeModel 成为其实现。可按路由名询问走哪条路(每路由一个 label,#8733);路由字段可在 premise 下带嵌套 context,工具调用后进入 done(#8749)。原「工具调用偏置」改为可选 decision_route_threshold(#8739)。ModelSelectionContext.messages 以被路由请求结尾,并暴露 .prompt(#8737)。每次 Decision 请求发 decide span(#8698)。另支持 gemini-3.8-live / extended-thinking、OpenAI service_tier 细节与 RunContext.in_durable_context。

权威 Benchmark 与实测跑分对比

官方未公布独立 SWE/编码榜单;可核对的工程约束来自 changelog:Anthropic 1 小时缓存写入按 1h 价而非 5min 价计价(#8666);实时图像按图像价;语音按时长用 audio_seconds。相对 v2.49.0 的公开 compare 见 release 页 Full Changelog;本版亦把不可填 output_type 提升为可并列的 UnfillableRoute(#8744),便于决策与交接同框。

开发者实战落地与开箱指南

  • 升级:pip install -U 'pydantic-ai==2.50.0',读 Release Notes 与 AI docs。

  • 迁移 Decision:检查是否依赖旧 tool-call lean;需要阈值门控时显式设 decision_route_threshold。

  • Live:试用 gemini-3.8-live;语音计费核对 RequestUsage.audio_seconds。

  • 持久化工作流:在 hook 里读 RunContext.in_durable_context 区分 durable 路径。

  • 观测:在 tracing 后端过滤 decide span,核对路由名与阈值阈值是否符合预期。