论文"DYNAHARNESS: A DYNAMIC PHYSICAL HARNESS FOR SELF-EVOLVING ROBOT AGENTS",26年9月来自南洋理工和南京大学。
一、动机
用 VLA(视觉-语言-动作模型,比如 π0.5)给机器人提供动作先验,在长时程操作任务上仍然不够用。现有的"智能体 harness"(在冻结策略外面加一层高层推理和工具调用)有两个没解决的问题:
- 时间尺度不匹配。 VLM 做语义推理很慢,规划是粗粒度的。而接触、进度变化、中间状态的成功往往发生在两次规划决策之间。所以需要一个明确的"执行权威",在动作执行过程中实时管控当前命令。只靠"执行完一步再重新规划"不够。
- 失败归因模糊。 已有的自我改进方法(程序修复、技能获取、扩充技能库等)大多只拿到"整个 episode 成功或失败"这一个信号。但任务失败可能出在规划、grounding(落地)、能力执行、验证、恢复中的任何一层。没有定位就做不了针对性修改,也没有机制判断一次修改能不能被接纳。
二、主要创新
- 物理执行契约(Physical Execution Contract)。 解析技能、恢复技能和冻结的 VLA 都通过同一个契约下发命令,契约有四个属性:
- Grounded:参数和前置条件必须能解析;
- Bounded:受步数预算(budget)、租约(lease)和 50 Hz 安全检查约束;
- Verifiable:以明确的状态结束;
- Attributable:全过程写入证据库。
"拒绝"本身也会被记录下来,这样诊断时能区分"命令没能落地"和"能力执行失败"两种情况。
- 快慢脑协同执行。
- 慢脑:Qwen3-VL-4B,按需调用,只给出"能力名 + 符号参数",不给位姿。
- 快脑:确定性规则,2 Hz,握有执行权,负责把命令落地、监控执行、拒绝无法执行的命令、替换能力、插入恢复、在必要时请求重新规划。
- 底层控制器:20 Hz。
这比"名义上的单步重规划"多了失败响应、能力替换和恢复插入。
- 归因驱动的自我演化。 用执行记录把失败定位到 N 个有序诊断层之一,据此对可复用能力或执行机制做针对性修订,再用成对回归检验(paired gate)决定是否接纳。
如图 2 所示DynaHarness概述:

三、方法要点
慢脑
- 输入:指令、场景描述、当前观测、带时间戳的历史。
- 输出:结构化建议 z_j=(m_j, alpha_j),其中 m_j 是能力库 L 里的一项能力,alpha_j 是符号参数。
快脑
- 落地/过滤。 部分映射 gamma_k = G(z_j,c_j) in Gamma U {},其中 gamma = (m, theta, B, tau) 分别是能力、物理参数、步数预算、租约。解析不了时返回 ⊥,并附带拒绝原因。
- 监控。 读取进度、停滞和风险信号。完成判定是"锁存"的:v_k = v_{k-1} v V b_t,用来保住只出现一瞬间的成功事件。例子:关炉子任务里,成功状态只持续约 0.55 秒。不锁存时成功率 25%,锁存后 95%。
- 决策。 继续执行、恢复、换成其他合格能力、交给
vla_act,或者请求慢脑重新规划。
能力库
- 解析技能:几何的、确定性的,负责接近、下降、搬运、放置等。
- 恢复技能:重抓、重新放置、回到关键帧等。
vla_act:调用冻结的 π0.5。
三类能力共享同一套预算、租约和终止规则。如果一个能力在剩余预算内做不完,会在开始前就拒绝执行。
失败归因
- 公式:lambda_i=A_N(E_i)=min{j: d_j(E_i)=1},即按层序取第一个匹配的诊断层,上游优先。
- 实验配置为 N=13 层,覆盖基础设施、上下文、规划、grounding、下发、执行、验证、恢复。
演化闭环:归因 → 探测 → 修订 → 成对门控 → 入库
- 探测:在 harness 自己把机械臂带到的那个状态下复现故障,而不是从重置后的场景开始。
- 修订:用物理量来表述(如铰链半径、手掌跨度),不按任务 ID 写分支。
- 门控(式 5),四个条件:
- 总成功数不下降;
- 归因于 harness 的失败数不上升;
- 裸策略原本能做成的格子不退化;
- 零污染。
此外还需要更大范围的回归检验。没通过的修订直接回滚,不打补丁。
关键结果
- LIBERO-Pro 开发集:74.25%。同样配置下,冻结 π0.5 为 16.2%,PhyAgentOS 为 20.3%。
- 系统冻结后新采样 800 个初始状态:75.2%,π0.5 为 17.5%。四个快照的排名保持不变。
- 同一能力库下的执行方式对比:完整动态执行 74.0%,名义单步重规划 63.9%,冻结序列 63.8%。
- 去掉 7 个解析接触技能后掉到 16.6%。
- 真机 4 个任务,成功率 70--90%。
四、存在的问题
- "自我演化"的自动化程度有限。 论文局限部分承认,自动化的只有归因和成对接纳这两步,故障探测和针对性修订(比如抽屉把手的 15.4 mm 闭合限位、手腕斜坡调整)看起来主要靠人工完成。"self-evolving"这个说法有夸大之嫌。
- 性能主要来自手工解析技能。 去掉 7 个解析接触技能后成功率接近裸策略(16.6% 对 16.2%)。770 个成功控制 episode 里有 570 个根本没调用 VLA。这本质上是一个精心工程化的技能库,VLA 和 VLM 的作用都比较次要。
- 仿真里的 grounding 用的是特权信息。 LIBERO 中的几何输入直接取自仿真器状态,完成判定直接用基准的成功谓词,现实中都拿不到。真机需要另外设计完成判定接口和场景描述,而真机实验只有 4 个任务、每个 10 次,也没有基线对比。
- 泛化评估的范围窄。
- "新状态"只是同样 40 个任务格子里的新初始状态,没有测新任务族或新领域。
- 开发过程是在 LIBERO-Pro 上反复迭代(39 轮以上),存在对基准过拟合的风险。
- 不演化的初始 harness 甚至比裸策略还差(13.9% 对 17.1%)。
5. 成对门控本身不够。 有一个通过了门控的候选修订,在 5 个灶台格子上损失了 79 次成功。这说明局部门控挡不住跨任务的副作用,必须做全量回归,代价很高。
6. 归因是启发式的。 按固定层序取第一个匹配,得到的只是"诊断假设",不是因果结论。N=13 是手工设定的,没有做敏感性分析。
7. 基线比较的公平性存疑。 Harness VLA 和 Zetta 换成 Qwen3-VL-4B 后只有 6.0% 和 0.0%,可能没有为小模型调优。和已发表结果的对比,设置也不一致。
8. 仍有明显短板。
-
- 抽屉、炉子、微波炉相关失败占了大头:207 个失败里分别有 97、43、30 个。
- 7 个格子仍然是 0 成功。
- 能检测出"无效执行"(失败 episode 在最后一次进展之后平均还空耗 173 步),但用替代动作去接管并没有显著收益(p=0.24)。
9. 其他。
-
- LIBERO-Plus 每个任务只跑了 1 次,也没有冻结策略的对照。
- 学习型快脑只是探索性的。
- 换成 Claude Sonnet 作慢脑的试验只有 40 个 episode,延迟约为 Qwen 的 5.9 倍,token 用量约为 20.9 倍。
DynaHarness 的核心贡献是用一个统一的执行契约,把"执行时的物理管控"和"离线可追溯的能力修订"连了起来。工程上很扎实,但成绩主要来自人工打磨的解析技能库和仿真特权信息,"自我演化"和泛化能力的说法需要谨慎看待。