Temporal 多框架 AI 集成正式可用:Workflow/Activity 负责重放,流式功能仍为预览
Temporal 于 10 月 30 日宣布,多种 AI 框架与其持久化执行平台的集成达到正式可用。本站在 11 月 1 日技术刊期报道该更新。公告所指的是框架集成包的发布状态,不意味着所有相关功能都已经 GA:用于传输 token 的 Workflow Streams 仍被单独标为 Python 和 TypeScript 的公开预览。
Temporal 于 10 月 30 日宣布,多种 AI 框架与其持久化执行平台的集成达到正式可用。本站在 11 月 1 日技术刊期报道该更新。公告所指的是框架集成包的发布状态,不意味着所有相关功能都已经 GA:用于传输 token 的 Workflow Streams 仍被单独标为 Python 和 TypeScript 的公开预览。
原文列出的范围相当具体。Google ADK 对应 Python、Go、TypeScript;OpenAI Agents SDK 对应 Python 和 TypeScript,其中 Python 此前已 GA;AWS Strands 对应 Python 和 TypeScript;LangGraph 对应 Python;LangSmith 对应 Python 和 TypeScript;Vercel AI SDK 对应 TypeScript;Gemini SDK 对应 Python。一个“集成已经 GA”的概括不能消去语言与包的边界。打算采用的团队应从相应语言的仓库目录确认安装包和导入方式,而不是假设所有 SDK 都具备同一实现。
Temporal 的设计把长时间运行的协调逻辑放在 Workflow,把模型调用、API 请求、数据库访问等外部副作用放在 Activity。框架集成负责把代理的操作映射到这个边界。以 Google ADK 的 Python 示例为例,`TemporalModel` 代替普通模型名,使每次模型调用成为 Activity;客户端和 Worker 注册 `GoogleAdkPlugin`,让循环能够安全重放。其他框架有自己的接入点,例如 OpenAI Agents SDK 的 `OpenAIAgentsPlugin`,不是照抄 ADK 示例就能完成迁移。
失败恢复的关键是事件历史。若 Worker 重启或部署中断,Temporal 依据记录重建 Workflow;重放已完成的 Activity 时使用此前保存的结果,不再次向模型或工具发送相同调用。这减少了因重新执行带副作用步骤而造成重复操作的风险,但只有正确划分 Workflow/Activity 并使用对应集成才有这个属性。原公告还提醒框架自己的重试循环需要关闭或按文档调整,以免与 Temporal 的重试和超时策略叠加;客户端与凭据应留在 Worker 中。
长期任务可以等待人工批准或其他外部输入,而不需要为了等待一直占用一个 Worker 进程。流式输出则通过 Workflow Streams 处理,不过它的预览状态与集成包的 GA 状态必须分开写。系统的可观察性也涉及跨进程传递 trace 上下文,以及重放时避免重复导出 span。把这些条件统称为“断点续跑”会漏掉重试、凭据和遥测的实际边界。
落地时,应选定与应用语言匹配的包,读该集成的示例和 release notes,给当前 Workflow 做一次中断与重启演练,再检查是否发生重复模型调用或副作用。已有运行中 Workflow 的升级尤其要看破坏性变更和 Worker Versioning 的要求。公告展示的是 Temporal 提供的集成能力,不是本站已在生产代理上测得的恢复率。其意义是让不同框架共享持久化执行机制,同时保留每个框架自身的接入细节与预览功能边界。
持久化执行的保证依赖对事件边界的精确定义。Workflow 中的确定性协调逻辑可以依据历史重放;网络请求、模型抽样、写数据库和发送消息等操作具有外部副作用,应该由 Activity 执行并由记录的完成结果供重放复用。若开发者绕过 Activity 在 Workflow 中直接调用模型,Worker 恢复时仍可能发出重复请求,不能仅凭“使用了 Temporal”便声称恰好一次执行。对于长任务还须设定 Activity 的超时、重试及幂等键,以处理调用已完成而确认未写入的边界情况。
迁移现有代理时,先绘制每个框架的调用链,标出工具调用、人工批准、流式输出、凭据获取和遥测产生的位置。按对应集成包的示例逐项替换,而不是把一段 ADK 代码照搬到 OpenAI Agents SDK 或 LangGraph。对同一输入做中断演练时,记录中断前后的外部请求 ID、Event History 和最终输出;若重试使副作用增加,应回到 Activity 边界与框架内部循环排查。
发布状态要写在具体功能上。集成包 GA 说明这些包已经正式可用,却不能推导出 Workflow Streams 的 Python 与 TypeScript 流式传输也已 GA。预览功能可能有不同的稳定性和接口变化风险;需要流式 token 的团队应单独读其预览文档,并为客户端断连、重连和部分输出制定处理方式。这里描述的是 Temporal 的设计及公告范围,本站未在生产代理上测量恢复成功率或重复调用率。
更具体地说,不能只检查最终答案是否看起来正确;还要核对中断前后的调用次数和外部状态。一次模型调用如果已由提供商执行,但本地未收到确认,重试可能再次计费或再次触发工具。Activity 的重试配置、业务幂等键和外部系统的去重能力,应一起测试并留证。
Sources
FAQ
哪些 Temporal AI 框架集成 GA,流式功能也是 GA 吗?
Temporal 宣布七组指定语言集成 GA,涵盖 Google ADK、Strands、LangGraph、Gemini 等框架;适用语言按原表核对。传 token 的 Workflow Streams 仍是公开预览,不能把包的 GA 状态扩展到流式功能。
Workflow 与 Activity 的边界如何避免重复模型调用?
Workflow 管协调,模型与 API 请求放入 Activity。Worker 重启时,Temporal 依据 Event History 重建 Workflow;已完成 Activity 的结果在重放时复用。放对副作用并测试;只安装包不会自动避免重复调用。
升级现有代理时应按什么步骤验证?
按语言选包,配置 Client、Worker、插件和重试。用受控中断测试恢复,核对 Event History 与外部请求,确认副作用不重复。升级前读 release notes,核查导入变化和 Worker Versioning,再受控部署。