迈向具身智能体的驾驭

26年8月来自宁波东方理工大学的论文"Towards the Harness of Embodied Agents"。

编码智能体的成功确立了"驾驭"作为一种范式的地位:智能体的成就不仅取决于模型本身,还取决于其周围的基础设施。其提出这样一个问题:同样的范式是否也适用于物理世界中的具身智体?Thea,一个驾驭,其中智体循环协调机器人的各项能力,每项能力都被封装成一个可调用的工具。它继承了编码智体的核心组件,并根据物理世界的需要进行了修改。然而,现实世界却无法提供软件所拥有的两项能力:读取世界状态和判断动作的结果。为了弥合这些差距,Thea引入了"场景图作为上下文"(Scene Graph as Context),它是对世界的持久化符号化表示;以及"评估作为退出代码"(Evaluation as Exit Codes),它能够检测动作何时应该终止,判断动作是否成功,并在失败时诊断原因。它们共同构成了智能体与物理世界之间的闭环。丰富的行为由此从工具的组合中涌现,而闭环则能够将长期任务在真实环境中顺利完成。


如图 1 所示,最终系统 Thea 展现出以下特性:

可扩展性。功能围绕工具组织。添加工具即可扩展智能体,新增策略也作为工具之一,复杂的行为源于工具的自由组合,而非手工设计。

可移植性。模型和实体即插即用。不同的模型或不同的实现方式无需专门重新设计,因为架构中没有任何内容是针对特定模型或实体的。

用户与世界之间的桥梁。对用户而言,智能体是一个自然的界面。指令、问题和解释都通过对话进行。对世界而言,它自主地运行经典的感知-行动循环,一轮又一轮地进行。智能体连接着两者,将用户的意图转化为物理世界中流畅的执行。


原则上,编码智体的范式可以迁移到物理世界。每个机器人能力都成为一个可调用的工具,语言模型通过智体循环来协调它们12。本文目标是构建一个能够实现这种迁移的驾驭。然而,该驾驭仅涉及协调,而不涉及组件本身。通过该驾驭调用的同一策略,在任何一次尝试中都会产生相同的结果分布。如果没有任何单个组件的成功概率增加,那么整个系统为何会提高呢?

考虑一个 n 步任务,其中步骤 i 的成功概率为 p_i。在开环执行下,只有当每个步骤都成功时,任务才成功。其中每个小于 1 的因子都会增加损失;乘积随 n 呈几何级数衰减。

现在假设该驾驭将每个步骤封装在一个检测重试循环中,允许每个步骤最多尝试 k 次。每次尝试后,评估器会以准确率 α 将结果分类为成功或失败:它以概率 α 返回正确判断,以概率 1 − α 返回错误判断。无论评估器报告的判断是否正确,只要报告失败,就会触发重试,重试的概率为 r_i = p_i (1 − α) + (1 − p_i) α。要求的是 p∗_i(α, k),即步骤 i 在 k 次尝试内获得真正成功的概率。如果之前所有 j-1 次尝试都触发了重试(概率为 r(j-1)_i),并且第 j 次尝试真正成功(概率为 p_i α),则该步骤在第 j 次尝试(j = 1, ..., k)时成功。这些事件互斥,因此:

将所有步骤的乘积代入,即可得到该驾驭下的任务可靠性:

开环乘积中的每个因子 p_i 现在都乘以一个每步乘数 α · (1-rk_i)/(1-r_i);即使在适中的 α 值下,增益也相当显著,如图 2 所示。

该公式明确了驾驭应提供的功能:可靠的评估 (α → 1)。每次额外的重试都会产生几何改进幅度较小,且极限直接由 α 决定。在软件中,α ≈ 1 被认为是理所当然的;但在物理世界中,它必须被主动构建并最大化,这使其成为设计的主要挑战。另请注意,该公式基于两个简化假设,这两个假设对于设计良好的抓取装置而言都是保守的:

单步重试。假设每次重试都是一次独立的抽取,且每次抽取的 p 值相同。简单地重复执行相同的策略而不进行任何调整可能会导致反复失败,使得重试的效果不如独立抽取。然而,设计良好的抓取装置能够诊断失败的原因并调整下一次尝试,例如通过调整机器人的位置或选择更合适的抓取策略,从而使重试的成功率逐步提高。

步间固定计划。该公式假设计划是固定的(在开环和抓取装置执行下,n 步序列相同)。在实践中,机器人可能会遇到固定计划无法应对的意外情况。预判:规划过程中打开的门现在关闭了,或者某个物体被移动了。安全带在每一步之前读取世界状态,并自适应地重新规划,修正路线,从而有效地提升自身性能。

对于设计良好的安全带而言,这两种效应都对其有利;因此,公式计算的是实际优势的下限。


1. 智能体循环

清单 1 展示了智能体循环。在每个回合中,驾驭收集上下文,模型读取上下文并选择下一个动作,驾驭执行其指定的工具调用并将结果附加到上下文中;如果没有工具调用,则任务结束。这与驱动编码智能体的循环相同:相同的消息累积,相同的终止约定。控制流可以用这几行代码概括。

模型读取的所有内容都存储在 build_context 中,从持久指令到每个回合新收集的物理证据。

与编码智能体一样,每个功能都以工具的形式公开。导航、操作、评估和用户交互都是同一个扁平工具注册表中的条目,循环对它们没有任何特殊逻辑。模型每个回合只发出一个工具调用,因为物理动作及其后果难以预测。这种反应式原则(执行一次工具调用,观察结果,然后决定下一步)使智能体能够适应它无法完全预料的世界。如果没有工具调用,任务就会结束​​,最终文本会报告其结果。

在这种设计下,评估也是一种工具,但它的调用并非由模型自行决定。在智能体编码中,评估是不可见的。shell 命令会返回一个退出代码和一个堆栈跟踪,模型会像读取其他任何工具的输出一样读取结果。物理世界不提供这样的信号,因此 Thea 将评估明确地定义为一种工具,并且驾驭会以结构化的方式触发它。每次操作后,执行后钩子都会调用评估器。

2. 上下文工程

上下文工程负责管理模型读取的内容。上下文窗口是一个有限的、注意力受限的资源,其内容很大程度上决定了智能体的行为13。与编码智能体通常可以通过读取持久文件并保存不断增长的记录来恢复上下文不同,Thea 还必须刷新物理证据,而这些证据的有效性会随着机器人的运动和外部事件而变化。因此,Thea 中的上下文工程为每个模型可见的输入分配了一个表征角色和一个生命周期,使得稳定的操作知识、当前的物理证据和历史痕迹分别占据上下文窗口的不同部分:常驻上下文、刷新上下文和累积上下文。清单 2 解包了清单 1 中的 build_context,表 1 列出了每个生命周期的内容,图 3 展示了它们如何在回合中演变。

常驻上下文包含系统提示、记忆、具身配置文件和工具定义。累积上下文包含指令、任务注释、模型响应和工具结果。这两个生命周期的行为与编码智能体中的行为相同。指令会保留,记录会不断增长。更新后的上下文包含场景图概要和观察结果,这也是上述差异的根源所在。观察结果是指身体当前的传感器读数:摄像头图像和间隙测量值,以及激光雷达检测到的与附近障碍物的距离。这些数据会迅速过期,其持久内容会被提炼到场景图中,场景图是对世界的整体表示,因此决策只需要最新的数据即可。机器人操作中的上下文截断实验也指向了这一点。模型对近期数据的依赖程度远高于对广泛累积历史数据的依赖12

驻留上下文。驻留上下文描述了下一个决策的持久条件。系统提示描述了智能体的角色及其操作规则:每回合调用一次工具,哪些证据来源用于哪些目的,以及何时重新观察而不是依赖过时的上下文。记忆提供了跨会话传递的持久知识,例如偏好、惯例和经验教训,而特定于工具的经验则单独记录。具身配置文件确保模型每次都能获取到相同的人体摄像头、帧和物理边界信息。工具定义是每个工具契约中对模型可见的部分;后置条件永远不会进入模型的上下文,只有评估器才能读取它。当工具积累了一定经验后,系统会在任务开始时将工具经验的简要总结添加到该工具的描述中。

刷新。刷新后的上下文描述了系统当前对世界的感知,分为两个尺度。场景图提供全局尺度:它是从机器人迄今为止观察到的所有信息中提炼出来的结构化摘要,描述了物体的位置。场景图本身存在于系统内部;进入上下文的是它的精简渲染,即场景图的简要版本,在每次模型调用之前,都会使用来源和新鲜度元数据重新生成。观测数据提供局部尺度:当前的摄像头图像和间隙测量值。这些距离报告的是前方、后方、左侧和右侧最近的障碍物,用于局部运动决策,而非到目标的语义距离。两者相辅相成。观察结果是原始的、瞬时的,仅对当前决策有效;而场景图是组织有序且持久的,但它所断言的始终是关于当下的。它们共同作用,使模型能够将世界中的每一个动作都基于其本来面目,而不是基于先前某个工具运行时的状态。

累积。累积的消息保留了会话中发生的一切。当同一会话中收到新指令时,系统会将其附加到现有消息中,而不是打开一个单独的记录。在每次决策之前,系统还会附加任务备注,作为简洁的活动任务工作记录。在循环内部,模型响应会添加模型生成的文本和之前的工具调用,而工具结果会添加已执行工具的精简返回信封。这些条目通过记录尝试过的操作和返回的结果来帮助恢复。压缩操作仅影响当前生命周期。当对话接近模型的上下文窗口时,较早的消息会被总结成较短的记录,而驻留的和刷新的上下文则会被保留13

3. 工具协议

Thea 中的每个功能都是一个工具:一个名称、一个描述和一个输入模式(input Schema),即模型上下文协议的工具定义 14。在调用之前,这个定义包含了模型对工具功能的全部认知,因此,编码智体会像对待为人设计的界面一样谨慎地处理这个智体-计算机接口 15-17。物理世界的变化决定了该接口需要指定的信息量。

契约。编码工具很少需要解释何时会失败,但物理工具会将策略与成功分布封装在一起,因此其描述会说明前提条件(例如"目标在可达范围内,机械臂为空")、底层策略的特性以及失败时要尝试的操作。每个工具文件还会绑定自己的后置条件,即几句话,说明如果此次调用成功,世界应该是什么样子;在评估时,评估器通过工具名称检索它,因此成功标准随工具而非提示一起传递,模型永远不会看到它。实际上,每个工具文件都包含该工具的完整契约:输入模式 (inputSchema) 说明如何调用它,描述说明何时调用,后置条件说明如何判断其结果。清单 3 展示了一个已部署的此类契约的结构。

注册。一行注册语句 server.tool()(pick_up) 将清单 3 中的文件转换为清单 4 中的工具:函数名、文档字符串和签名编译成 .schema 的三个字段(名称、描述、输入模式),而 call() 执行的内容即为主体。清单 4 还显示了每次调用返回的信封;图 4 所示追踪了执行调用的人员以及调用必须经过的钩子。

信封。每个工具都返回相同的信封:一个成功标志、成功时返回的值以及失败时返回的原因。在循环的词汇表中,该值代表模型的下一个观测值;对于策略驱动的工具,它可以像运行句柄一样简单,即正在进行的策略执行(一次运行)的标识符,而实质性证据则在后钩子引入评估器时才出现。失败不会引发异常;失败的调用会返回一个原因,例如"机器人距离目标太远,无法抓取",这是物理动作最接近标准错误输出(stderr)的内容。判决和原因的生成方式是主题;智体如何处理它们是刻意未预先编写的。恢复过程源于模型重新组合相同的工具,而不是来自手工设计的恢复例程。

执行。谁执行调用取决于其权重。轻量级查询在进程内运行(图4所示中的BuiltinTool),而重量级功能(例如导航堆栈、操作策略)则各自在自己的子进程中运行,并使用模型上下文协议14(MCPTool)。注册表将两者呈现为一个扁平列表,模型无法区分它们。这种无差别性正是可移植性的基础。策略后端可以在同一接口下崩溃、重启或升级,协议之上的任何部分都不会察觉;正是由于相同的子进程边界,一个框架才能驱动针对三个不同机器人堆栈编写的后端。

钩子。调用永远不会直接从模型发送到工具(图 4所示)。每个调用都会经过框架拥有且模型无法跳过的确定性拦截点:执行前钩子用于预先检查调用(并可能重写或阻止调用),执行后钩子用于触发后续工作;被拦截的调用会像其他任何故障一样通过普通结果通道返回。其中最重要的两个钩子是:在任何基座运动之前读取最新间隙测量值的安全检查以及在每次操作后自动调用评估器的钩子。每个规则的位置由一个学科决定:关于单个工具的规则放在其描述中;模型绝对不能信任其遵循的规则应该放在钩子中;两者都不应该放在系统提示符中,系统提示符应该保持简短且与工具无关。

4. 技能

工具赋予模型能力;技能赋予模型知识。具体来说,技能是一个包含 SKILL.md 文件的目录:该文件是一个 YAML 格式的前置元数据,包含技能名称和自由格式 Markdown 格式的指令主体,以及可选的捆绑资源,例如参考文件或脚本。技能加载遵循编码智能体的渐进式披露机制 18,分为三个层级:每个已注册技能的名称和描述会驻留在上下文中,每个名称和描述需要消耗数十个tokens;指令主体仅当模型判断当前任务与描述匹配时,才会通过 load_skill 函数进入上下文;捆绑资源也仅在指令需要时才会被读取。此机制并非机器人特有,而是直接移植到其他平台。

物理世界凸显了技能和工具之间的界限。工具是一种契约:模式验证、安全检查、权限和评估都在调用边界处附加。技能则是建议:模型读取并可能权衡的文本。在一个没有沙盒和撤销机制的世界里,所有行为都必须基于契约,因此操纵策略总是被包装成工具,而绝不会以技能的形式呈现给模型,使其学习如何调用;在建议方面,保证也无从谈起。技能最终只能承载文本擅长的内容:知识。而知识的种类则通过排除法确定:关于单个工具的规则归入其描述,每次操作所需的行为归入系统提示,系统自行积累的经验归入记忆,剩下的则归入技能。在实践中,这涵盖了从特定设备的操作顺序到特定工作区的内部规则等各种情况。清单 5 展示了 Thea 中部署的一个技能示例:一页关于整理办公桌的边界判断,这种知识属于约定俗成的层面,而非实际操作层面。由于技能仅仅是文本,因此技能系统可以通过编辑文件来扩展:添加新的设备,添加新的内部规则,无需重新训练,也无需修改代码。

5. 记忆

Thea 中的记忆并非单一存储,而是一个生命周期。

任务笔记。在运行的任务中,智能体首先需要一个记事本:一个记录已完成事项和剩余事项的地方,这样长时间运行的任务就不会依赖于模型重新推导自身的进度13。在 Thea 中,这个记事本就是任务笔记,一个简洁的记录,用于保持单个任务内部的连续性。任务在用户发出指令时开始,在模型未返回任何工具调用时结束。任务开始时,系统会重置任务笔记。每次工具返回结果后,系统都会添加一个简短的事件。笔记包含当前目标、阶段和时间线。它们是活动任务的工作记录,而不是会话记录或实时世界状态。如下清单 6 是消减的记忆制品:任务笔记形状、记忆条目和成功/失败工具体验。

持久存储。除了单个任务之外,智能体还需要持久记忆。它学习到的一些内容是通用的:例如用户是谁以及通常的操作方式。另一些内容则特定于某个工具:例如工具的成功和失败原因,这些经验教训有助于改进下一次调用。编码智体几乎没有工具特定的信息:grep 每次调用都完全按照其描述执行,因此工具本身无需学习。封装策略的工具则不同。其描述仅承诺一种趋势,而其实际成功或失败的情况必须通过使用来学习19。因此,Thea 维护两个持久存储:一个是编码智体维护的跨会话记忆文件,另一个是每个工具一个文件。这两个文件都在任务结束时写入,此时框架会整合已完成的任务笔记,并根据条目返回模型的位置进行拆分:跨任务知识写入记忆,工具范围的经验教训写入该工具的经验文件。整合调用会对每个候选结果进行评分,驾驭只会写入置信度高于阈值的结果。评估器判决仅作为跟踪中的证据进入此流程,绝不会直接写入。单个判决是一个假设,智体是否真正从中恢复仅显示在完整的轨迹中。清单 7 显示了整合步骤,图 5 绘制了完整的循环。

读取路径。三个回读箭头返回的内容各不相同。任务注释随任务过期;在此之前,每个快照都会使模型保持其自身进度的最新状态。记忆以驻留上下文的形式返回,因此无需额外调用工具,即可在每次决策中查看持久知识。工具经验以工具标识而非会话或用户为键;该框架会将每个工具文件的摘要附加到该工具的描述中,因此这些经验与工具的前提条件、故障模式和恢复提示并列,模型正是根据这些条件来判断是否调用该工具。描述质量在很大程度上决定了调用质量17,因此记忆生命周期不仅仅是记住信息。它写入和重新加载的内容实际上是模型与其工具之间的接口。智能体会随着使用不断改进自身的接口。

6. 安全性

编码智体通过权限规则和操作系统沙箱来保护自身20:规则告诉智体应该做什么,并在模型底层强制执行拒绝操作;沙箱则限制智体可以做什么。然而,物理世界中并不存在这样的沙箱。没有沙箱包含物理动作(仿真可以满足部分需求,但无法涵盖实际部署的世界),而且许多动作无法撤销。因此,必须在动作执行之前强制执行安全性。

Thea 将安全性构建在机制本身,而不是模型的行为中21。确定性检查存在于钩子和执行管道中,模型既不能跳过也不能绕过这些检查。其中最主要的是针对基础运动的安全过滤器。在模型做出决策之前,该过滤器会将四方向的间隙测量值添加到更新后的上下文中,以便模型在规划时能够看到附近的障碍物。在机器人移动之前,其钩子会获取新的读数,当没有允许的直接方向时阻止导航,并将直接平移限制在允许的距离内。循环本身是保守的:物理动作一次只执行一个,故障预算会在循环失控时将其停止,而不是任其运行,当智能体不确定时,可以停止并询问用户(query_user)。安全性是编码智能体与现实世界中具身智能体之间最根本的区别之一;Thea 做出了初步尝试,但仍有许多问题亟待解决:例如力限制、在人群中安全以及实验室外的部署。

7. 用户交互

编码智体在整个任务过程中保持与用户的连接。模型可以提出阻碍性的澄清问题或显示进度,并通过向用户提供结构化的信息或判断反馈来定义自主性16。Thea 将其实现为两个以人为端点的工具。query_user 会询问并等待:例如,在相似的目标中进行选择、确认一个边缘操作、或在触碰个人物品前获得许可。notify_user 则无需等待即可告知:例如,一个耗时较长的操作即将开始、发生了意外情况、或任务超出了机器人的能力范围。何时调用这两个工具,就像智体循环中的其他工具一样。

在系统框架中,这两个工具与其他所有工具协同工作。由于它们是普通的工具调用,因此任何影响工具选择的因素也会影响它们。提问并非出于本能,而是在查阅场景图和当前观察结果之后才作为最后的手段提出。它可以附加场景图中的候选参考和视图,以便答案能够作为证据,供后续任务参考。技能可以表明何时需要发出通知,而记忆系统会将已确定的答案作为默认偏好保存,从而避免重复提问。让用户随时了解情况,正是具身智能体能够适应未知和意外情况的关键:它既不会猜测,也不会默默失败。


1. 场景图作为上下文

通过两个相互关联的层(图 6所示)恢复世界的可读性。以对象为中心的场景图在回合之间维护一个持久的、符号化的世界状态。面向决策的接口将该状态带入模型的上下文:默认情况下是一个简洁的场景图概要,当需要更多细节时,可以使用对象引用作为键进行查询。

持久的世界状态

编码智体继承了一个命名且可搜索的环境。它可以搜索符号,读取返回的路径,并将相同的路径传递给下一次工具调用。物理智体则不具备这些能力。它的视觉和深度观测只能描述某一时刻的一个视图,机器人状态和工具反馈通过不同的通道到达,而且这些信号都无法将世界组织成循环可以再次引用的实体。然而,为了继续执行任务,循环必须知道它正在追踪哪个实体,该实体最后一次被观察到的位置,以及对该证据的信任程度。因此,将转瞬即逝的信号转化为持久的符号。以对象为中心的场景图将稳定的参考信息与每个对象的粗略位置和新鲜度关联起来,一轮又一轮地进行追踪22-24

图结构。场景图将世界状态组织成节点、边和图元数据,遵循将语义实体与空间结构绑定的三维场景图表示25。对象节点携带一个参考信息,例如 cup_2,该参考信息由节点的标签和 ID 推导而来;在参考信息背后,节点存储着一个粗略的三维边框、置信度、新鲜度以及指向视觉证据的链接。容器(例如橱柜或抽屉)将其状态和追踪的内容保存在同一个节点上,而机器人节点则追踪姿态和持有状态。边编码对象、容器和机器人节点之间的"在......之上"、"在......之内"、"持有"和"靠近"关系;例如,近边记录了端点之间的测量距离。图元数据记录了来源、坐标系和更新时间。清单 8 显示了一个已记录的对象节点。

图维护。必须保持持久图像的真实性,而影响图像的有两种变化:机器人所看到的和机器人所做的。感知后端根据视觉和深度信息提供观察导出的状态,刷新对象节点、粗略位置、置信度、新鲜度和空间关系,这与现实世界对象导航系统中使用的动态场景图构建和结构化表示相呼应 26--28。执行导出的更新记录了物理动作的变化,例如抓取物体或打开容器;同样,动作条件化的场景图也利用交互来揭示先前隐藏的结构 29。在系统中,这种输入是经过门控的。工具完成后,评估器会检查其后置条件,只有确认的结果才能编辑图。例如,确认拾取操作会将机器人标记为已持有该物体并将其从原位移除;确认打开柜子操作会将柜子记录为已打开。系统会将这两个输入与物体引用进行匹配,并将它们合并到一个单一的场景图中。它们共同维护场景图,使其能够实时反映世界状态。

访问世界状态

场景图概要。完整的场景图信息量过大,无法在每次操作中都提供给模型。上下文窗口是一个有限的、注意力受限的资源,而且大多数场景图细节与下一个决策无关。因此,系统会在刷新后的上下文中渲染一个场景图概要,其中常用信息默认显示,其余信息按需获取。几乎每个决策都必须知道世界中存在哪些物体、每个物体的位置以及对这些信息的信任程度,因此概要会列出每个物体引用及其大致位置、置信度和新鲜度。机器人自身的姿态和持有状态会影响每个动作的选择,而跟踪到的容器内容则使已知但未看到的物体可寻址,因此两者都会被添加到概要中。只有特定决策才会涉及的细节,例如对象的范围、关系边和存储的图像,会保留在图中,并可通过 ref 检索。由于简述选择的是字段而不是节点,因此它很简洁;边界无需精确,因为任何省略的内容都只会导致一次额外的查询,而不是失败。该框架会在每次调用之前重新生成简述,同时在调用之间保留图,因此模型可以读取当前的全局视图,而无需从累积的消息中重建世界状态 13。清单 9 显示了一个简化的简述。

基于 ref 的查询。简述中省略的内容,由模型自行获取。一组小型查询工具可以根据需要读取完整的图,并以 ref 为键,因此每个答案都附加到图中已命名的实体,而不是引入新实体。返回 ref 的类型化关系,并返回存储在其节点上的视觉证据。例如,该图以类为单位命名对象,因此当用户询问"红色杯子"而简述中列出了三个杯子时,没有引用能够直接确定名称;模型会调用 get_image 函数对候选对象进行处理,并从其存储的视图中读取颜色信息,这是它做出此决策所需的证据,而不是作为上下文信息。类似地,像"桌子旁的杯子"这样的空间线索也会通过 get_object_relations 函数进行解析。设计止于工具部分;接下来是模型自身的行为。它会选择发出哪个查询以及何时发出查询,并在没有收集到的证据确定用户意图时通过 query_user 函数进行询问。它将空查找视为缺乏证据,而不是对象不存在,并在得出对象不存在的结论之前获取新的观察结果或检查可能的容器。通过这些操作,模型将模糊的短语解析为符号实例,并将其引用传递给下一个操作工具 navigate_to(target="cup_2")。绑定机制会通过评估和重试不断指定同一实体,直到新的证据打破它。

已确认的参考点决定了机器人追随哪个实体以及接近的位置;它并不保证从当前姿态即可进行操作。这一判断取决于后续的证据。在物体附近,新的观察结果确定了可见性和对齐方式,每次动作后,评估器都会对结果做出判断。场景图提供标识和粗略位置,仅此而已。它使世界变得可读且可寻址,但不会成为准备就绪或成功的预言机。

2. 作为退出代码的评估

在智能体编码范式中,环境本身会告诉智能体其上一个动作的执行情况:命令返回退出代码,测试失败并返回堆栈跟踪,智能体根据这些信号进行调试30。物理世界并不提供这样的基础设施。一个刚刚尝试抓取的机器人不会收到任何信号来告诉它任务是否仍在进行中、是否已经成功或失败,更不用说失败的原因了:抓取失误和碰撞都不会被报告。提供这一缺失的判决既非可选项也非易事。可靠性分析表明,评估器的准确率 α 直接决定了端到端任务的成功率:一个驾驭的可靠性取决于其评估者的可靠性。这种难度在不同领域之间也存在差异。在编码智体中,单个步骤即可自我评估,而真正的难题仅出现在整个轨迹的层面;在物理世界中,即使仅评估一个动作本身就是一个开放性问题。

因此,Thea 将评估作为驾驭的一个显式模块。评估器会判断每个动作的结果,并返回包含结构化失败原因、退出代码和堆栈跟踪的判决,而这些信息在现实世界中是无法获得的。设计评估器可以归结为三个问题,这些问题将在下文中依次解答,并在图 7 中进行说明:何时进行评估,因为即使是动作的结束也不会发出信号;由谁进行评估,因为自我报告的成功不能作为判决;以及判决包含什么信息,因为一个简单的布尔值无法为重新规划提供任何依据。

时机。何时进行判断取决于工具背后的策略类型。对于端到端模型10, 31,没有信号标记(marks)完成,因此评估器在线判断运行情况,在每个动作段边界处进行判断:成功表示运行应继续,成功表示后置条件已满足,失败表示执行应停止,并以步数预算作为后备措施。对于编码即策略(CaP)32方法,生成的程序会自行终止并通过控制流报告其进度,因此相同的契约退化为两种终止状态。

独立性。由谁进行判断由结构决定。该驾驭将评估器作为工具执行后的独立组件,由后置钩子触发,而不是由模型的显式调用触发。其输入仅限于两点:当前观察结果和每个工具的后置条件(成功调用后世界应有的状态)33。它既不读取模型的推理过程,也不读取模型的自我报告,这种推理过程------Anthropic 将其应用于自身动作分类器的盲目纪律------就是一个不可靠的评判者34。一个模型对其自身工作进行评分是不可靠的35,而且带有偏见36

判决。判决所包含的信息决定了后续的恢复措施。仅提供状态信息即可完成闭环,但只是盲目地:智能体可以重试,但无法进行调整。例如,如果抓取动作失败,智能体需要知道失败的原因是由于未能到达目标、错过物体、物体被遮挡,还是抓取后物体掉落;每种原因都需要不同的恢复措施。因此,除了状态信息之外,评估器还会返回证据和失败原因;清单 10 显示了针对此类抓取失败返回的合约。这种划分是刻意的37, 38。评估器只判断结果并解释失败原因,而下一步该做什么则留给智能体,智能体掌握着评估器永远无法看到的完整上下文。下游,成功会阻止动作后的场景图更新,失败原因会为任务结束时整合的工具经验提供信息。

3. 具身特征描述

编码智体无需被告知一个身体的具体信息。它通过 shell 和文件系统运行,这是一个处处通用的接口,如有疑问,只需询问即可。而机器人的身体则不然,它没有统一的标准。形态、感知几何结构、移动性和活动范围因平台而异,这些因素共同决定了哪些证据可用、如何解读空间测量结果以及哪些动作可行。具身特征描述以简洁、可替换的文档形式,明确地阐述了这些身体特有的信息。部署时,驾驭会加载为当前激活的身体特征选择的描述,并在整个会话期间保持该描述。替换描述会改变身体特征的整体上下文,而任务指令则保持不变。这使得一个驾驭可以跨多个具身特征移植。将具身特征信息定位到一个文档中,可以确保决策的一致性,并使适配过程更易于检查、维护和验证。

具身特征描述将稳定的身体特征信息组织成三个互补的部分,如表​​ 2 所示。

操作范围记录了身体在运动和操作方面的稳定极限。基座是指承载身体的任何物体,例如轮式底盘或人形机器人的腿部,其条目记录的是基座能够做什么,而不是如何做。感知配置描述了模型可获得的证据,例如彩色图像和间隙测量值。基座相对位置记录了感知和操作界面相对于基座中心的位置。总而言之,操作范围限制了可行动作,感知配置确定了可用于决策的证据,而基座相对位置则将这些证据和操作界面定位在活动身体上。


1. 任务设置

实验涵盖三种不同构造的机器人。主要的定量实验在 Astribot S1 上运行,这是一款轮式双臂人形机器人,它结合了可驱动的头部和躯干、全方位移动底座以及两个抓取末端执行器,总共具有 25 个自由度。此外,还探索了 AgileX Cobot Magic(它将两个手臂与一个移动底座相结合)和 Unitree G1(它配备了 BrainCo Revo 2 灵巧机械手,每只手具有六个自由度)上的 Thea 功能。这些部署旨在测试同一套装置是否能够整合不同物理接口所提供的功能。

为了评估 Thea 和基线系统在不同难度任务中的表现,将实验分为三个级别:L1 至 L3,如表 3 所示。L1 是一个简单的抓取放置任务,它隔离了固定桌面上的一个操作周期。L2 保留了固定桌面环境,但扩展了任务范围。智能体必须反复定位、抓取并将桌面上的每个物体放入篮子中,同时跟踪多个操作周期中的进度。L3 是最具挑战性的任务,它将导航与操作相结合,需要在两个工作空间之间切换,完成从目标位置到目标位置的移动、识别并取回目标物体、导航到目标位置以及完成交付等一系列操作。在不同的任务中,改变了物体的类别和放置位置。对于每种方法,在 L1 和 L2 上分别进行了 20 次独立试验,在 L3 上进行了 15 次独立试验。

将 Thea 与以下系统进行比较:端到端策略 10, 39, 40、编码即策略(CaP)基线以及基于 SayCan 41 的分层规划方法。编码即策略基线利用执行轨迹和描述初始场景、后续视觉变化和任务完成情况的结构化文本,在多个回合中不断修正其机器人控制程序。这遵循 CaP-X 32 中的 CaP-Bench M3 设置。用 GPT-5.5(推理难度设置为高)作为 Thea、CaP-X 和 SayCan 的决策模型。在感知方面,Thea 基于 Astribot S1 SDK 和 SysNav 28 构建。每个端到端策略都使用每个任务收集的 200 个演示进行训练或微调。编码即策略和分层规划方法使用与 Thea 相同的工具和底层实现。对于编排基线32, 41,此设置控制底层机器人的能力,并隔离每种架构如何选择和组合工具,以及在工具发生故障时如何恢复。两个端到端基线,ACT 和 𝜋0.5,与 Thea 的操作工具所采用的策略相同。因此,报告的差异反映的是每种架构编排的完整性,而不是底层策略的能力。

相关推荐
Akiyama_Mio-Kon1 小时前
Copilot Code Review 的 Lite / Balanced 已 GA:用风险路由代替每个 PR 都深度审查
人工智能·机器学习·devsecops·code review·github copilot·ai agent
俊哥V1 小时前
每日 AI 研究简报 · 2026-08-23
人工智能·ai
zhaodezhu16881 小时前
四维技术全域赋能 一网推重构企业数字营销增长新范式
安全·架构·泰兴geo优化·可靠公司·苏州geo技术·四维技术·全域赋能
FriendshipT1 小时前
DeepSeek Harness 使用 Ollama 本地部署的 AI 大模型(以Qwen3.8-27B为例)
人工智能·pytorch·深度学习·ollama·deepseek
龙山云仓1 小时前
人工智能+工业软件不是简单的在原来系统上堆砌AI辅助
人工智能
_codeOH1 小时前
Tool Use 设计模式:如何让 LLM 优雅地调用工具
人工智能·ai编程
richard_first1 小时前
第4章 Transformer Block
人工智能·深度学习·transformer
XR1234567881 小时前
高校AI智算中心网络:RoCE优化与一体化交付怎么选
网络·人工智能
老衲の少女心1 小时前
【AI项目】AI辅助小说创作系统:规则引擎与LLM双校验的长文本一致性工程实践
人工智能