返回资讯中心
外部精选
软件工程
#开发者实时流

Thoughtworks专家谈长周期智能体的持久化执行机制

来源标题:Long-horizon agents and durable execution

Thoughtworks数据与AI总监Kiran指出,长周期智能体可自动完成耗时数天甚至数周、需多次与人和外部系统交互的复杂任务,但期间可能遭遇进程崩溃、网络故障等意外。持久化执行模式让运行时记录每个与外部世界交互步骤的结果,故障后重跑时跳过已完成步骤并重建程序状态,从而帮助智能体从失败中恢复并继续推进目标。这种机制改变了以往围绕人类注意力稀缺性设计业务的经济逻辑。

Hacker News 最新bpedro2026/11/10 · 今天30 分钟阅读

以下正文由 AI 翻译自 Hacker News 最新(原文版权归原站所有),可能存在偏差,重要内容请以原文为准。

长周期智能体能够自动完成耗时数天甚至数周、需要与人和外部系统进行多轮交互的复杂任务。在这段时间里,许多环节都可能出问题,包括进程崩溃、网络故障以及现实世界中难以预料的行为。持久执行(durable execution)是一种新兴模式,可帮助智能体从这些故障中恢复并朝着目标推进。在这种编程模型中,运行时(runtime)会记录每一个与外部世界交互的步骤的结果;这样一来,当故障发生时,程序重新运行,已完成的步骤会被跳过,程序状态则根据记录重建。

Kiran 是 Thoughtworks 的数据与 AI 总监。作为极限编程的忠实实践者,他对应用 AI、数据平台和微服务架构充满热情。他的工作将技术与可衡量的业务价值和客户成果连接起来。

几十年来,企业的运营设计都围绕着人类注意力的稀缺性展开。如果一项任务需要某人投入数周时间,只有当回报足以覆盖成本时才会去做。长周期智能体<sup>1</sup>从根本上改变了这一经济逻辑,使原本不划算的工作变得可行。

1:这里的“长周期”并非指智能体能够在没有中断的情况下持续处理一项任务多久,而后者是前沿模型常用的基准指标之一。

想想那些因为无人协助完成上手流程而流失的客户;长周期智能体可以耐心地引导他们完成整个流程,提供过去只有高价值客户才能享有的个性化帮助。想想在销售、法务和采购之间的缝隙中流失的收入:智能体可以推动这些交易穿越各种依赖关系直至完成。想想那些因为医疗机构缺乏人力来引导个人完成行政流程而得不到充分照护的患者;智能体可以通过跟踪转诊、预约、改期和提交文书来提供帮助。如今的企业中充满了这样的机会。

传统软件可以自动化可预测的流程,但这些任务恰恰是不可预测的。长周期智能体现在可以自动化地追求这类场景下的结果,即便通往这些结果的路径是不可预测的。

在最简单的形式中,智能体接收用户输入、决定一个动作、执行该动作,然后回应用户。可以将这视为一个单轮(turn)。长周期智能体通常会在较长的时间跨度内使用许多这样的轮次来达成目标。例如,一个从供应商处订购库存的智能体可能会先获取供应商报价,等待两天让经理审批价格,然后下单,再等待三周货物到达。其中大部分时间都花在等待人员和外部系统上,而在此期间很多事情都可能出错。智能体的进程可能会重启,供应商调用可能会失败,消息可能会延迟、重复或丢失。

持久执行是一种新兴模式,可帮助智能体从这些故障中恢复并追求其目标。

SKU(stock-keeping unit,库存单位):库存中保留的一种独立物品,例如特定尺寸的零件。

安全库存(safety stock):为应对需求和供应商交货时间的变化而保留的储备库存。当库存低于该水平时,就该重新订货了。

采购订单(PO,purchase order):买方向供应商下的订单,包含物品、数量、价格和交货日期。

我们贯穿全文的示例是 Stock Replenisher,即上文提到的库存订购智能体,它负责维持制造商的零件库存。当某个零件低于其安全库存时,智能体会尝试补货。它会获取报价、选择供应商、请采购经理审批价格、下单,并跟踪订单直至货物到达。

这个过程在实际时间上可能需要数天或数周。其中大部分时间涉及等待经理审批、供应商回复以及货物交付。与此同时,情况会发生变化:供应商可能在下单后提高价格、提出问题,或者完全不回复。智能体必须在每种情况出现时加以处理。

以下是一次补货从缺货到货物到达的实际运行过程。长段是等待时间;智能体的步骤是其间短暂的爆发。点击标记可查看发生了什么,或使用右上角的箭头逐步浏览整个运行过程。

大多数智能体,从 Claude Code 这样的编码智能体到 OpenClaw 这样的个人助理,都围绕同一个循环构建,通常称为智能体循环(agentic loop)。它包含四个部分:

在每一轮中,模型选择一个工具,其外围代码运行该工具并用结果更新状态。这段代码通常被称为 harness;例如,Claude Code 就是围绕 Claude 的一个 harness。当智能体达到目标或放弃时,循环结束。当智能体需要来自人员或外部来源的输入时,它会发出请求并等待答复。

图 1:循环的两轮:一轮调用工具,一轮等待

以下是 Stock Replenisher 循环的代码。(所有代码示例均使用 Python。)

每一轮中,一个分类模型(此处为 TypeSafe 的 Jev)从 allowed_tools 中选择下一个工具。分类模型更快、更便宜,非常适合决策步骤。一个生成模型(此处为 Claude)阅读供应商的邮件并起草回复。

GOAL = ("Bring stock back above safety stock: order from a suitable " "supplier, get every price approved by the manager before money " "is committed, and see the order through to delivery.") MAX_TURNS = 30 TOOLS = [ GetQuotes(), DraftPurchaseOrder(), RequestApproval(), WaitForApproval(), PlaceOrder(), WaitForSupplierReply(), ReadSupplierReply(), WaitForGoods(), ClosePurchaseOrder(), Done(), ... class Replenish: async def run(self, stock: StockLevel) -> ReplenishmentResult: state = State(stock.sku, stock.on_hand, stock.safety_stock) for turn in range(MAX_TURNS): allowed_tools = [t for t in TOOLS if t.allowed(state)]

(原文较长,此处译出前 6000 字,完整内容请点「打开原文」。)

正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。

打开原文
去社区讨论 →