Agent 别从头跑:长循环运行时该怎么选1×0:005:270:08事件播报1:06技术背景2:36工程拆解4:15落地建议4:51结尾0:08主持一个 Agent 跑了四十分钟,已经查完资料、调过十几个工具、等过一次人工批准,最后一步写文件失败了。最糟糕的处理方式,是从第一步重新跑一遍。你不只是多花一次模型费用,还可能重复调用外部接口,把已经发生过的业务动作再做一次。今天要讲的是 ZenML 七月七日发布的一篇长文:它把 Inngest、Temporal 和 Kitaru 放在一起,比较它们作为长循环 Agent 运行时的差别。提醒一句,这篇文章来自 Kitaru 的发布方,所以它不是中立榜单,更适合作为一份工程问题清单来读。0:45主持这篇文章问的不是「哪个工具最强」,而是:长时间运行的 Agent,应该被建模成事件驱动函数、确定性工作流,还是一条可以回放的执行轨迹。一旦进入生产环境,失败恢复、等待、审计和副作用控制就会变成系统边界,不是几行 retry 能补上的细节。1:06主持先看 Inngest。ZenML 文章把它归为事件和函数模型,适合从产品事件、定时任务、webhook 或后台 job 开始的流程。你把工作拆成 step,运行时记录哪些 step 完成了,哪里该重试,哪里可以等待下一次事件。Inngest 自己的 Checkpointing 文档也说,TypeScript 第四版 SDK 默认启用 checkpointing,用来保存 step 之间的执行进展,降低实时 AI workflow 的延迟;遇到失败时,再回到标准编排来处理重试。1:38主持Temporal 的起点不同。Temporal 官方文档说,每个 Workflow Execution 的进展都会追加到 Event History 里。这个历史记录既是审计日志,也是 durable execution 的基础:worker 崩了,流程可以靠持久化的事件历史恢复状态,继续往下走。代价也明确,workflow 代码要遵守确定性约束,真正会访问网络、文件、模型或者数据库的动作,通常要放进 activity。2:07主持Kitaru 的叙事更贴近 Agent。它的产品页说,Kitaru 会把模型调用、工具调用,以及你通过 primitive 或 adapter 暴露出来的步骤记录成可回放 checkpoint。你可以从某个 checkpoint 开始 replay,换一个模型,替换一次工具返回值,或者模拟超时,再看后面的执行会怎样变化。它的边界也清楚:它偏 Python Agent,不是面向所有语言和所有后台流程的通用工作流平台。2:36主持三个模型真正的分水岭,是恢复单位。Inngest 的恢复单位像 step,Temporal 的恢复单位是 workflow 状态和 activity 结果,Kitaru 的恢复单位是 Agent checkpoint。团队先问一句:我们最怕重复执行的那一步,长什么样?如果它是工单创建、支付回调这类产品事件,Inngest 会顺。如果它是一条跨服务、跨语言、可能跑几天的业务流程,Temporal 更稳。如果它是一段 Python Agent,下一步工具由模型临场决定,checkpoint 运行时会少改一些代码。3:12主持第二个分水岭,是等待发生在哪里。生产 Agent 经常要等人批准、等 webhook、等外部系统生成结果。事件驱动系统擅长等事件,Temporal 擅长在 workflow 里建模 signal 和 timer,Kitaru 把 wait 放进 Agent 执行本身。等待本来就是产品事件,就接成 event;等待是合规流程的一环,就让 workflow 管状态和审计;等待发生在 Agent 中途,就尽量别把整条执行轨迹拆碎。3:41主持第三个分水岭,是你要调试什么。普通日志只能告诉你某个请求失败了。长循环 Agent 的问题更细:失败前它看到了什么上下文,选了哪个工具,工具返回值怎样改变下一步,哪一次模型调用花了多少钱。Temporal 的 Event History 是强审计基础,但 LLM prompt、token、模型名和工具产物需要团队自己接进去。Kitaru 在自己的材料里强调会把这些放进执行记录。这个差别提醒我们,Agent 观测不是只看 trace 漂不漂亮,而是失败后能不能定位到可改的恢复点。4:15主持落地时,先写一张小表:关键步骤是什么,有没有外部副作用,失败后能不能安全重跑,需要保存哪些状态,要不要人工批准。写完这张表,运行时选择会清楚很多。能安全重跑的模型思考,不一定需要重型事务保护;会发邮件、扣款、改生产库的动作,就必须有幂等键、checkpoint 或 activity 边界。如果你还停留在一个 HTTP 请求里跑完整 Agent,那就该尽快拆。请求超时只是表面问题,更大的坑是丢状态、重复副作用和无法审计。4:51主持ZenML 这篇对比文给我们的提醒是:长循环 Agent 的核心资产,不是最后那段自然语言答案,而是中间每一次可以恢复、可以解释、可以验证的执行记录。下一次评估一个 Agent 系统,别只问它能不能完成任务。先问一句:如果它在倒数第二步失败,系统知道从哪里继续吗?如果答案是「不知道」,那这个循环还没有真正进入工程状态。