HexaShell:编码智能体写工具操控机器人,粗活能过、精密活过不去
同一个 GPT-6-Astra:RoboProbe 协议下直发运动目标 22.5%,seed-0 十个新布局冻结复测写工具后 39.7%(两者评测协议不同,不可直接相减)
HexaShell 做的事情一句话能说完:把一个不改一行代码、不训练任何策略的前沿编码智能体直接接到双臂机器人前面,只给它一层很薄的命令转换层和一套它自己写的工具,就能在 RoboDojo 的 42 个仿真任务上拿到 39.7% 成功率与 48.0 进度分。基座是 Codex CLI 加 GPT-6-Astra medium reasoning effort,从头到尾没有更新过权重。名字里的 Hexa 来自评测平台 ARX X5 双臂机械臂,Shell 指那层薄壳。
要理解 39.7% 意味着什么,得先看参照系的两端。RoboDojo 包含 42 个仿真任务与 18 个真机任务,仿真侧跑在 Isaac Sim 上,按 Generalization、Memory、Precision、Long-Horizon、Open 五个能力维度组织,榜单协议是每个任务 3 个 seed、每个 seed 50 次试验。人类专家遥操作的仿真基线是 80.42 分 / 76.03% 成功率,而论文冻结榜单时排名第一的 VLA 只有 13.07 分 / 8.80%RoboDojo。
另一端是同一个模型的裸跑成绩。RoboProbe 把 GPT-6-Astra 直接当策略用,不接任何预训练运动策略,只给它两个工具,一个是请求运动目标,一个是放弃。在这种设定下,它在同一套 RoboDojo 官方协议上跑了 2,100 次试验,拿到 22.48% 成功率 / 28.97 分,排在当时 43 个在榜条目的第一位RoboProbe。这个 22.48% 是整篇文章的对照基线。需要说明的是,它来自 RoboProbe 的官方协议(全 42 任务、每任务 50 episodes、单 seed);后文 HexaShell 的 39.7% 来自 seed-0 十个新布局(layout 10–19)上的工具冻结复测,两者的评测协议不同,不能直接换算成同一协议下的提升。

图注:RoboProbe 给出的两种把观测变成动作的方式。上排是分工式控制,语言模型只做语义规划,动作交给预训练的 VLA 或 WAM 执行;下排是 LLM-as-policy,同一个语言模型既规划又直接选出运动目标,中间只有非学习的后处理,没有任何预训练运动策略。
关键在于,这个基线失手的地方很有规律。RoboProbe 报告的能力剖面是极化的:Generalization 33.36 分、Open 34.36 分都不弱,但 Precision 只有 12.65 分、Long-Horizon 21.45 分RoboProbe。模型读懂任务、理解语义没有问题,卡住它的是要把物体精确碰到一起的那部分。同团队的前序工作 URAI 已经在 5 个 RoboDojo 任务上把直接控制 18.0% 提到 53.0%URAI,但那是小规模验证。HexaShell 要回答的是更大的问题:既然缺的不是智力,那把经验固化成工具之后,这条上限能被顶到哪,又会在哪停下。
薄壳只翻译命令、不做决策
HexaShell 的中间层之所以叫薄壳,是因为它只做两件事:把智能体的命令翻译成关节运动,以及从架构上切断智能体接触真值的通路。决策、记忆和判断全部推给智能体和它自己写的工具。
论文给薄壳定了四条原则,可以直接背下来。它只翻译命令、从不做决策;真值由架构隔离,智能体的容器里没有 simulator,也没有任务与评分代码;成功与否只由基准自带的判定器说了算,作者不改它的判定器;那页手册只声明接口,策略一律写在工具代码里HexaShell。

图注:论文 Figure 3 的薄壳双层结构。上排是一次 episode 之内,命令从 coding agent 经 harness server 送到 RoboDojo simulator;下排是两次 episode 之间,episode log 经 optimizer agent 变成工具,写进 tool library,再被下一轮加载。图中共六个方框与五个编号箭头,对应命令、反馈、观测、失败触发与工具加载。
落到具体,智能体是原样的 Codex CLI,跑在一个带出口代理的容器里。它能看到的只有 obs/ 目录下的三张 640×480 RGB 图像、各自的内外参、关节角度,再加一页约 60 行的手册。手册列出一组运动与观测的基础命令,每个 episode 有 60 条命令预算。工具的形态是一个目录,里面是 tool.py 加一份 interface.md。工具不能 import simulator,不能读物体的真值位姿,不能把物体位置写死;取深度会拿到空值;interface.md 只描述接口,不许点名任务或物体,这条由 delivery check 强制HexaShell 代码仓库。
薄壳不是唯一配方,它是一片设计空间。同样把编码智能体接到机器人上,OpenRUA 连工具库都不提供,只给一个终端和机器人原生的 ROS 2 接口,让智能体自己现写现用OpenRUA。HexaShell 选择预先给一层翻译层加一套可冻结的工具,换来的是能力涨跌都能归因到工具,而不是归因到中间层。
它不用深度图
三台标定过的 RGB 相机加三种几何约束,就能给出厘米级可用的三维位置,不需要任何深度网络。这是 HexaShell 最反直觉的一处设计。
它的几何前提只有一句话:一个像素配上相机标定就是一条世界坐标下的射线,再补一个约束,射线就收敛成一个点。三种约束对应三类场景。第一种是已知平面,桌面高度由 table_plane 工具用 plane sweep 测得,做法是在所有候选高度下把一张图 warp 到另一张图,重合度最高的高度就是桌面高度,三对相机给出的结果一致到 1 毫米以内,落在 0.7646 到 0.7656 米之间。第二种是已知高度的水平面,方块顶面、碗沿、盒内凹槽测一次高度之后,头部相机的射线就能直接和它求交。第三种是第二个视角,两台相机看到同一个点时,该点就在两条射线的交点上;头部看不清时,机器人主动移动腕部相机去拿这第二个视角。
图注:本章自绘的几何示意,不是论文原图。一条像素射线加一次标定就确定了方向,再叠加任意一种约束即可求出三维位置,分别是与已知平面求交、与已知高度的水平面求交,或与第二台相机看同一像素得到的第二条射线求交。
这么做的收益可以用一次干净的对照说明。在同一套薄壳、同一个闭环、同一个模型、同一批冻结布局下,三角定位比 Depth Anything V2 在榜单口径上高 8.7 分,成功率 38.3 对 29.6,进度分 43.6 对 35.4,配对 McNemar 检验 p 值小于 0.001HexaShell。原因也不神秘:深度网络在头部相机上对物体像素的中位误差是 41 毫米,腕部约 100 毫米,而抓取和放置需要的是厘米级精度,几何方法没有这种误差下限。
代价藏在预算里。多看一个视角不是免费的,它要从任务的时间预算里扣。在 420 次重测里,三角定位把 3.6% 的已执行步用于观察,深度网络只有 0.7%。付得起代价的任务收益最大,比如乐器类任务用 17% 的步数换来从 0 到 6 个布局的翻盘,push T 用 8% 换来 4 到 10;付不起代价的直接失败,蛋盒类任务花掉 40% 的步数去看,全部失败。这道取舍预告了后面的墙在哪里。
失败不留白
HexaShell 的学习发生在两次 episode 之间,沉淀物是代码而不是权重。所以换到没见过的新布局它不会忘,但它也只记得住被明确写成程序的东西。
闭环的每一步都落在具体的动作上。acting agent 先在一个布局上真的试一次,失败之后,同一个模型切换到 optimizer 角色,读命令日志、每条命令对应的相机帧,以及当前的工具代码,然后把诊断和修复写成新工具或修改旧工具;改完要过 delivery check,再重启模拟器,在同一个布局上重试。每个布局最多允许五次编辑。这和一个软件工程师修一个失败的测试是同一套节奏:先让它真的失败一次,再读日志定位、改代码、重跑同一个用例。

图注:HexaShell 论文首页的五步闭环:acting agent、薄壳、机器人 rollout、optimizer agent、可复用工具,右侧标注了这一闭环在工具冻结后的重测中从 22.5% 到 39.7% 的变化,并列出工具帮上忙的四类场景与失手的接触密集型柔体任务。
这套闭环的规模不小。整个开发过程跑了 769 次 optimizer 轮次,每个任务中位数 17 次;失败后单轮中位耗时 6.3 分钟;留下的工具共 227 个,其中 163 个被启用,合计 327 条命令;所有工具代码加起来约 78,000 行 PythonHexaShell 代码仓库。仓库把工具冻结版本和接口契约放了出来,但薄壳本身,也就是 server、executor、agent 容器和演化闭环,并没有开源。
评测协议是全篇最容易被误读的一处。HexaShell 只在单个 seed 的前 10 个布局上开发工具,跑完就冻结,然后在同一个 seed 的另外 10 个全新布局上、不再启动 optimizer 地测一次,得到 39.7% / 48.0;作为对照,在开发用的那 10 个布局上重测是 38.3% / 43.6。榜单协议完全不同,是每任务 3 个 seed、每个 seed 50 次试验,另有隐藏布局校验防止对公开布局过拟合。所以 39.7% 不能和榜单数字直接相减。
| HexaShell | RoboDojo 榜单 | |
|---|---|---|
| 布局 | seed-0,10 个开发加 10 个新布局 | 每个任务跨 3 个 seed |
| 每任务试验数 | 新布局上 10 次 | 50 次 × 3 seed |
| 工具状态 | 开发后冻结,新布局上不再变动 | 模型权重固定 |
| 反作弊 | 无隐藏布局校验 | 有 hidden-layout verification |
一个诚实的注脚:swap_blocks 第一次开发只拿到 0/10,原因是模拟器的按钮复位有 bug,修好之后重新开发工具才拿到 3/10。至少有一次失败来自环境而不是工具本身。
推箱子 92.5%、精密插入 8.3%
HexaShell 的成败不跟随任务要想多少,而跟随任务要碰得多准。成功率从推动类一路掉到紧凑插入,梯度非常干净。
按任务类型拆开,推动类 92.5%、记忆类 65.0%、开放类 50.0%、精度类 31.3%、泛化类 28.3%、长程类 23.8%,其中紧凑插入只有 8.3%。换成按接触类别看更清楚:推动 92.5%、刚体 50.0%、移动物体 40.0%、柔体 33.3%、关节物体 7.5%、紧凑插入 8.3%。

图注:论文 Figure 9 把 54 个任务变体按 HexaShell 的成功率从高到低排序,每个变体并排三根条,分别是 HexaShell、VPP2 与 PhysicalRSI,图中 rand 表示杂乱布局。可以看到成功率随所需接触精度下降,右端的 VPP2 在插入与柔体任务上反而更强。其中 HexaShell 的条来自 seed-0 十个新布局(layout 10–19)上的工具冻结重测,VPP2 与 PhysicalRSI 的条来自榜单协议,两者口径不同,不能直接比大小。
这组数字还揭示了一件不该被忽略的事:两条路线的能力剖面是互补的,不是一好一坏。VPP2 在插入类 28.1%、柔体类 49.4%、关节物体类 21.6% 上强于 HexaShell,而后者在语义、记忆和推动类上大幅领先。笼统地说谁更强没有意义。
下表两列都写成成功率 / 进度分的形式,其中无工具基线一列是把 RoboProbe 报告的分数与成功率按同一顺序重排后的结果。
| 能力维度 | HexaShell 新布局 | 同模型无工具基线 |
|---|---|---|
| Overall | 39.7 / 48.0 | 22.48 / 28.97 |
| Memory | 65.0 / 69.2 | 38.67 / 43.04 |
| Open | 50.0 / 53.6 | 31.00 / 34.36 |
| Precision | 31.3 / 41.4 | 4.00 / 12.65 |
| Long-Horizon | 23.8 / 40.6 | 8.25 / 21.45 |
两列的评测协议并不相同,无工具基线来自官方榜单协议,HexaShell 是 seed-0 加十个新布局的自定义口径,所以只能看形状,不能看差值。
失败模式进一步说明了墙的性质。268 个失败 episode 里,57% 是预算耗尽,30% 是智能体宣称完成却被 checker 否决,13% 主动放弃。在柔体、关节物体与刚体这三类里,60% 到 77% 属于看得见失败但做不出动作,也就是预算耗尽的那些;记忆类则有一半是自以为成功了。前者是运动控制问题,后者才是感知精度问题。
边界必须说清楚。评测只在仿真里做,用的是 Isaac Sim,没有迁移到真实的 ARX X5;只跑了一个模型;泛化只跨布局,没有跨 seed、跨机械臂、跨相机配置;薄壳本身也没有开源。而且 HexaShell 并没有出现在 RoboDojo 的官方实时榜单上,截至 2026 年 10 月 20 日的快照里榜单共 59 个模型,其中没有它RoboDojo 榜单。
放回路线里看,它站在编码智能体操控机器人这条线的中段。CaP-X 给出了一条抽象层级谱系,成功率随人类脚手架的密度单调上升,其中 CaP-Agent0 在 7 个任务里有 4 个零训练接近人类水平CaP-X。AGP 让同一个基座直接驱动真实双臂,在 8 个配置上拿到 57/62AGP,走的是程序就是策略的另一极。这些工作和 HexaShell 的任务集合不重叠,数字不可直接对比。
最后补一句第三方视角。AIWeekly 在论文发布三天后独立复述了 39.7%、92.5%、65.0% 与 8.3% 这几个数字,并把这套设计概括成一层薄壳,让 VLM 自己写和修代码工具AI Weekly。它的编辑按语认为瓶颈已经从智能体的推理转移到接触的物理,还提出一个可验证的猜想:如果加入触觉或力觉后紧凑插入的数字上升,就说明接触而非推理这个框架成立。这是编辑的解读,不是论文的结论,但它指出了这条路线下一步最值得下的注。
HexaShell 的意义不在于它把某个数字刷到了多高,而在于它把编码智能体操控机器人这件事拆成了可以逐项归因的实验:工具写得好不好、几何算得准不准、多看一个视角值不值、哪些任务根本不值得用这条路线。它给出的答案是,粗活已经能过,精密活还过不去。
想深入可以读原文:HexaShell: A Thin Harness for Exploring the Limits of VLM Agents as Robot Coding Agents — arXiv:2610.23479
参考文献
- HexaShell: A Thin Harness for Exploring the Limits of VLM Agents as Robot Coding Agents — 锚定论文
- RoboDojo: A Unified Sim-and-Real Benchmark for Comprehensive Evaluation of Generalist Robot Manipulation Policies — 评测基准与协议
- RoboProbe: An Unexpected Robot Policy — Early Evaluations of GPT-6 Astra on RoboDojo and Beyond — 同模型无工具基线
- URAI: Make Code as Policy Great Again: Frontier Agents Write, Call, and Evolve Robot Tools — 同团队前序
- AI Weekly: HexaShell hits 39.7% on RoboDojo, finds contact is the wall — 第三方数字交叉验证
- AGP: Agent as Policy for Robotic Manipulation — 真机平行路线
- OpenRUA: Robot-Use Agents Are Zero-Shot Visuomotor Policies — 零抽象薄壳平行路线
- CaP-X: A Framework for Benchmarking and Improving Coding Agents for Robot Manipulation — 方法谱系
- HexaShell GitHub Repository (HexaFuture/HexaShell) — 配套代码与接口契约
- RoboDojo Benchmark & Leaderboard — 官方实时榜单