长时域机器人任务结合了许多技能,其结果改变了世界。因此,可靠性更多依赖于验证每个后期条件、保持有效部分进展以及从当前状态中选择恢复方案,而非仅仅一次生成长列表。
语言上下文或计划的文字记录不足以作为足够的内存。操作需要结构化的事实、资源、副作用、证据、时间戳和来源,以便重启能够区分已完成的工作与未被观察到的不确定命令。
本指南应与 Nav2 恢复指南 及 故障挖掘指南一起使用。将每一个外部操作视为状态转换,并附有可审计的收据。
将任务表示为闭环状态机
建模目标、前提条件、技能、预期效果、禁止状态和完成条件。每完成一项技能后,观察世界,并从当前证据中选择下一个过渡,而不是假设计划中的效果已经发生。
保持规划、执行、验证和恢复作为明确状态。这使得超时、中断和人工接管行为可测试,而非隐藏在对话历史中。

建立一个带有受保护进展的任务图
子目标图识别依赖关系,并在重新规划过程中必须保留哪些已完成的效果。移动物体、开门或分发材料即使整体任务未完成,也可能成本高昂或不可逆。
标记赔偿行动和不可重复的过渡。新计划必须尊重受保护状态,除非授权追偿故意更改。
| 战绩 | 示例 | 生平 | 缺席则为失败 |
|---|---|---|---|
| 事实 | 物体位于B箱 | 直到被反驳 | 计划错了 |
| 资源 | 工具预留 | 直到发布 | 冲突 |
| 收据 | 指挥与结果 | 审计寿命 | 重复动作 |
| 检查站 | 已验证任务状态 | 恢复寿命 | 重启损失 |
| 判决 | 为什么选择分支 | 审计寿命 | 无法追踪的行为 |
技能回报与观察到的后期状态分离
控制者可以报告成功,因为其轨迹终止时物体随后滑动。定义后事条件,如物体姿态、门状态、库存计数或导航到达,并在可行的情况下通过独立观察进行验证。
将证据和新鲜度与结果一起保存。未经验证的成功应成为不确定状态,而非完成的事实。
为每个副作用写一个执行收据
收据记录命令标识符、参数、尝试、开始和结束时间、控制器结果、观察到的影响、证据、资源变更及恢复状态。它将高层次计划与物理后果联系起来。
重启时,在发出下达下一个命令前,先与世界对账。当机器人行动后但确认到来之前,通信中断时,这一点尤为重要。
尽可能让物理指令成为幂等的
幂零性密钥允许下游服务识别重复请求并返回先前结果,而无需重复操作。物理操作并不总是数学上幂等,因此执行者还必须检查当前状态和动作历史。
保护发药、付款、门开、物品转移及其他副作用,并赋予其独特的操作身份。切勿推断超时意味着什么都没发生。

保留部分成功作为新的初始状态
如果五项中的三项已排序,从原始计划重新开始可能会再次移动它们或失去计数。提交已验证的子目标,并在保持安全和任务约束的前提下从新状态重新规划。
衡量有用的进展,而不仅仅是二元任务的成功。跟踪已完成的受保护子目标、受损资源和剩余可行目标。
在重试前先对失败进行分类
区分感知、定位、规划、抓握、控制、环境、资源和通信失败。重试应改变相关参数、视角、掌握、路径或技能,而非盲目重复相同条件。
为每个故障类别设定重试预算、冷却时间和升级。当状态恶化、不确定性增加或下一次尝试会重复不安全的机制时,就停止重试。
用事实和限制重新规划,而不仅仅是摘要
自然语言摘要压缩上下文,但可能省略来源、时间戳和例外。为规划器提供结构化的当前事实、未解决的矛盾、可用技能、受保护的进展和禁止行为。
SayCan项目在其报告的移动操作实验中结合了语言模型技能的实用性与技能可供性评分。其项目页面还指出当前阶段环境反馈的限制,促使明确的闭环状态更新。
每项技能后都要利用环境反馈
内在独白论文研究了在评估环境中利用环境反馈进行规划。操作经验是将成功探测器、场景描述和人工反馈输入用于下一步决策,而不仅仅是附加行动名称。
反馈来源可能会有不同看法。保留原始证据,应用置信和冲突规则,而不是让最新文本静默覆盖已验证状态。
中断和软件重启检查点
检查点应包含任务图版本、当前状态、已验证事实、待处理收据、资源锁定、受保护进度、机器人姿态上下文、模型版本和恢复授权。在提交效果后和风险转移前保存。
测试冷重启时,出现网络丢失、进程崩溃和传感器过期。系统必须在从序列状态恢复前对物理现实进行调和。
评估完工度、一致性和恢复成本
报告全部和部分完成、经过验证的后期病症率、重复副作用、矛盾数量、重复尝试、恢复成功率、人工干预、时间和资源成本。单纯按技能成功率汇聚不良,掩盖国家腐败。
Code as Policy在其 报告任务中展示了语言模型生成的机器人程序。任何部署仍需有限制工具、状态验证、回滚和针对特定目标的失败测试。
| 测试 | 断层 | 预期行为 | 度规 |
|---|---|---|---|
| 结果不确定 | 失落的致谢 | 先调和再重复 | 重复率 |
| 部分成功 | 任务中途失败 | 保持有效的进展 | 保留子目标 |
| 感知漂移 | 矛盾事实 | 请求新证据 | 一致性 |
| 进程崩溃 | 冷启动 | 加载并验证检查点 | 履历的成功 |
| 重试疲劳 | 反复失败 | 安全切换 | 升级时间 |
释放可恢复的任务合同
版本任务图、技能模式、后期条件、收据存储、重试规则、检查点、冲突解决和人工交接状态。保留完整的事件跟踪,将每个计划变更与观察到的证据连接起来。
关闭发布审查,需进行以下检查。
评估“长时域机器人任务的记忆与恢复”时,还应保存模型版本、机器人配置、标定文件、测试日期和全部试验记录。把成功、失败、恢复与人工介入放在同一份数据中,才能区分模型能力、系统接口和现场流程造成的差异。
成本评估除了设备与算力,还要记录数据采集、工程调试、安全措施、维护、停机和人员培训。只有把这些持续投入与单位成功任务的价值比较,才能判断方案是否适合扩大。
上线后仍要持续检查分布变化、传感器漂移、机械磨损和人工接管原因。监测结果应能触发降级、停止与重新验证流程,并为下一轮数据采集和模型更新留下可追溯记录。
最终结论应明确写出已知限制、尚未验证的场景和下一项可证伪的实验,使后续团队能够沿着证据继续推进。
实际项目还应指定数据、模型、控制器和安全流程的负责人,并预先定义回滚条件。责任边界、审批记录与变更日志越清楚,故障发生后越容易停止扩散、定位原因并安全恢复。
把任务拆成感知、决策、动作执行和结果确认,可以更准确地定位瓶颈。每一阶段都应有独立指标与失败示例,避免用端到端成功率掩盖偶发但严重的风险。
引用的产品规格、论文结果和监管要求需要记录发布日期与适用版本。资料更新后应重新核对关键结论;无法从一手来源确认的内容,应明确标注为待验证信息。
小规模试点的价值在于提前暴露接口、人员协作和异常处理问题。试点结束后应依据预设门槛决定扩大、修改或停止,而不是因为已经投入资源就默认继续。
所有结论都应能够追溯到原始记录,并可复核。
硬件与软件接口应分别记录单位、坐标系、时钟、延迟和允许范围,并通过自动测试检查不一致。接口定义变化时,旧数据和旧控制参数不能在未经验证的情况下直接复用。
异常测试应覆盖断电、通信丢失、传感器失真、对象滑移和人员进入工作区等情形。系统不仅要发现异常,还应以可预测的方式减速、停止或请求人工确认。
- 代表前提条件、影响和禁止州。
- 从世界核实帖子条件。
- 使用收据和重复保护来应对副作用。
- 保留部分成功并分类重试。
- 演习中断、检查点和人工交接。
常见问题
更大的 LLM 背景能否解决长期机器人任务?
不行。上下文有助于规划,但可靠的执行仍然需要结构化的状态、后置条件证据和恢复语义。
行为树与任务记忆有什么关系?
行为树组织控制流;持久内存存储事实、收据、检查点和跨运行使用的证据。
失败后从头开始最安全吗?
当之前的行动改变了世界;在决定之前,调和并保持有效的进展。
一个技能应该有多少次重试?
根据风险、状态变化和获得的信息设定一个按故障类别设置的预算,当重复不再有用时再逐步升级。
部分成功如何衡量?
跟踪已验证的受保护子目标、剩余可行目标、副作用和康复成本,与完全完成分开。
验证状态与续航边界
长时域机器人的可靠性来自验证的状态转换、持久收据和可恢复的检查点。较长的计划或上下文窗口无法替代关于物理世界的证据。