无需重放历史:持久化执行的新范式

Durable execution without history replay

无需重放历史:持久化执行的新范式

大多数持久化执行系统依赖重放历史来恢复,但这在长运行任务中效率低下。我构建并评估了一种新机制:Transparent Continuation Checkpointing(TCC)。它不再重放历史,而是直接检查点化程序的延续状态。测试显示,当持久化边界深度从10增加到1000时,TCC恢复时间稳定在0.6到0.9毫秒,而基于Temporal的重放方案则从61毫秒激增至1.7秒。虽然将原型转化为生产级基础设施仍面临诸多挑战,如可移植延续表示和版本控制,但TCC为长运行AI Agents等动态软件提供了更高效的执行底层。

一个执行了一万次操作但保留的活跃延续状态很小的程序,不应仅仅因为其过去很长而变得难以恢复。
  1. weitendorf

    模型设计得很棒。任何真正想训练模型或设计智能体系统的人,都应该这么做。

    我们公司最初就是围绕这个问题起步的,因为它是训练编程模型以及可靠部署 LLM 以执行特定任务的基础。这让我建立了对 LLM 更完善的心理模型,因为我亲眼看到了在“聊天”场景之外,它们实际上是多么反复无常、不一致和挑剔——而在聊天场景中,它们往往给人一种拥有一致人设或稳定知识/能力的错觉。

    起初,我将其视为一种针对特定任务完成能力的提示词搜索,但现在我认为,对于大多数用户而言,其速度、可靠性以及运维层面的优势(例如:能否在不降低性能的情况下切换模型?)带来的收益甚至更大。

    这里有个小“秘密”,因为各大实验室正让以这种方式使用它们的模型变得愈发困难,而这一点需要被更广泛地理解:分布感知的重放/重采样(distribution-aware replay/re-sampling)是 LLM 后训练中的关键技术。但它也能让你自动识别出最适合你部分任务的模型,从而帮你省下不少钱。

  2. orbital-decay

    持久化执行(Durable execution)听起来总体上有点像行业黑话。如果你的状态定义在执行图中,那它只是对一组现有算法和模式的统称。如果状态未定义,那你恢复到的状态是什么?崩溃前一刻的快照很可能导致再次进入未定义状态,这种情况下你只是在持久化地自动化崩溃(或者更糟,自动化未被捕获的错误行为)。

  3. alex_hirner

    对程序进行快照(Snapshotting)也是 https://github.com/pydantic/monty 所启用并致力实现的功能。

    顺便一提,我认为我们将看到更多面向 AI 的解释器兴起。在某种意义上,我喜欢它作为附带效应,对传统的微服务架构提出了挑战。

同日更多故事

2026-09-13