三个月,Harness 从编程 Agent 的借词变成了具身智能的显学
——Harness
目录
01 Harness 是什么:把一次次模型调用接成完整任务
这个词不是新造的
02 从软件走到机器人,哪些条件变了?
现场只能被看见一部分
执行结束,不等于目标达成
03 它怎样工作:让每一步的结果改变下一步
04 它与传统机器人系统,究竟差在哪里?
闭环早就有,缺的是接口
同一个名字,不代表同一套架构
05 Harness 在具身智能系统里是否真的有用?
最近几个月,Harness 接连出现在具身智能的论文和机器人项目里。从 Thea、RoboHarness 到 NavGPT-3 和 Cortex,它们都在用同一个词,讨论的系统却各不相同。
▲图1 | 近期,多项具身智能论文与机器人项目将 Harness 作为明确的研究或产品主题,围绕模型之外的运行机制展开探索。
要理解这些工作,先得回答一个更基础的问题:大模型已经能理解指令,机器人也已经有动作能力,为什么把两者接在一起之后,还需要一层 Harness?
01 Harness 是什么:把一次次模型调用接成完整任务
具身智能里的 Harness,可以先理解为围绕基础模型来组织任务执行的一套机制:
它准备模型需要看的信息,把模型选定的操作交给执行系统,再把结果带回下一轮决策。
为了方便理解,可以按职责来区分:
- 模型负责提出下一步,比如“先打开柜门”;
- 操作策略和控制器负责让机械臂真正动起来;
- Harness 则组织两者之间的往返,记录已经发生的事,并决定下一轮该带上哪些信息。
这里说的是职责划分,具体项目未必把它们拆成相同的软件层。
这样的区分,也为传统机器人系统留出了位置:定位、运动规划、控制和执行监控早已各有成熟方法,Harness 会直接调用这些能力。
它真正要处理的,是基础模型如何在这些能力之上持续参与任务,而不是每次只给出一个孤立的回答。
一次模型调用能读取一批输入并生成输出,但任务不会在输出生成后自动完成。还需要有程序去执行这条指令、等待结果、处理异常、保存进度,再组织下一次输入。
假如模型建议“重新抓一次”,系统还得知道上一次抓取改变了什么、是否适合重试。
这些动作之间的连接,正是 Harness 要落实的工作。
这个词不是新造的
这个词在软件工程中早有使用。test harness 指的是围绕被测程序或组件组织测试的工具与环境。
比如在基于模型的软件与系统开发中,可以把一个组件放进单独的测试环境,给它已知的输入,再观察输出是否符合预期。
▲图2 | 软件与系统测试中的 Harness,会在被测组件周围搭好输入和输出环境。图中左侧提供已知测试信号,中间是单独取出的被测组件,右侧观察其响应,使开发者可以集中检查这一部分的行为。
大模型领域的 evaluation harness 延续了组织评测的用途,Agent Harness 则关注模型如何反复调用工具、利用返回结果推进任务。
这些用法目标不同,但都指向同一点:核心模型或组件之外,还需要一套适合它工作的输入、输出与运行环境。
编程 Agent 处理长任务的实践,提供了一个直观的例子:把进度保存在文件里,用测试确认修改,用执行记录帮助下一次会话接着干。
Anthropic 在 2025 年 11 月介绍过这类做法;OpenAI 在 2026 年 2 月的 Harness Engineering 一文中,也强调了环境、约束和反馈的设计。
这里可以借鉴的是一条思路:模型的下一次判断,应当建立在上一次执行之后的新证据上。
当调用的工具开始驱动机器人时,这条思路依然成立,只是证据的获得和行动的后果都变得更复杂。
02 从软件走到机器人,哪些条件变了?
现场只能被看见一部分
编程 Agent 往往可以重新打开文件,确认代码现在是什么样。
机器人面对的现场却只能被部分观测:相机看不到柜门后面,机械臂可能挡住目标,先前看到的物体也可能已经被人挪走。
存下一条“杯子在柜子里”的记录,并不等于下一次行动时还掌握着杯子的位置。
所以,具身系统需要把任务记忆和当前状态区分开。
- 任务记忆回答的是“刚才做过什么、接下来还要做什么”;
- 当前状态回答的是“现在看见什么、身体在哪里、哪些信息已经过时”。
前者帮任务保持连续,后者则要随着运动和环境的改变不断刷新。
▲图3 | 机器人无法像读取文件一样一次看清完整现场,因此需要把零散观测组织成可更新的世界状态。图中物体、空间关系与上次观测时间共同影响一条信息能否支持当前动作;整理后的场景摘要进入模型,新的感知和已确认的动作结果又回过头来更新它。
用场景图来保存物体关系,是实现这种区分的一种办法
当前图像、状态摘要和按需查询,也可以各自承担一部分职责。重点不在于固定采用哪种数据结构,而在于让模型清楚自己依据的是什么证据。
图中的 Thea 场景图,就同时组织了物体关系、机器人状态和信息的新鲜程度。
执行结束,不等于目标达成
另一个变化发生在执行结束时。
软件工具通常能返回退出码或错误信息;物理动作却需要额外判断目标是否真的达成。夹爪闭合,只说明夹爪做了闭合这个动作,不能就此断定杯子已经拿稳。任务级的反馈,必须从现场观察和执行状态中构建出来。
而且,物理世界不会等高层模型想完再变化。
机器人可能正在移动,新的障碍物已经出现;上一条指令可能还在执行,下一次推理却已经开始。系统因此要处理信息的新旧、动作的先后,以及何时该中断、何时该交还控制权。许多动作还有不可逆的后果,失败后不能总指望“回到上一步”来解决。
这几种差异最后汇到同一点:机器人需要不断重新确认当前行动的前提。
把软件 Agent 的循环直接接上机械臂还不够——循环中的信息、调用和反馈,都要对物理执行负责。
03 它怎样工作:让每一步的结果改变下一步
下面用一个例子,把整个过程走一遍:
任务:机器人收到指令,“从柜子里拿一个杯子,放到桌上”。
- 步骤一:先把现场搞清楚
任务一开始,系统先整理目标和现场:杯子要放到哪里,柜子有没有找到,机器人现在离柜子多远,手里是不是拿着东西。
模型拿到的上下文,就是这些和当前决策有关的材料。它不必一次读入全部历史,但需要知道哪些条件还没确认(比如杯子的具体位置仍藏在柜门后面)。
- 步骤二:把「打开柜门」落实成一次可执行的调用
假设模型据此选择了“靠近柜子并打开柜门”。
执行之前,还要把这个意图落实成可调用的操作,并检查必要条件:当前是否可达、操作对象是否明确、这条调用是否符合接口要求。
这里有一条分界:必须强制执行的限制,应由调用路径上的程序来检查;写在提示词里的提醒,只能影响模型的判断。
随后,操作交给相应的策略和控制器去完成。Harness 不必替它们计算每一个电机指令,但需要跟踪这次执行是怎么结束的:正常完成、超时、中断,还是返回失败?
模型提出了什么、执行系统实际做了什么,都要在这里对应起来。
- 步骤三:拿回新证据,才推进到下一步
现场变化:柜门操作结束后,新的图像显示门已经打开,杯子也进入了视野。
系统据此更新现场记录,把任务推进到“选择并抓取杯子”。这一步看似平常,却避免了一个常见问题:后续决定仍然依据开门之前的画面,或者把“已发送开门指令”误当成“门已经打开”。
这一轮的关键是:新证据先落地,任务状态才跟着改。
- 步骤四:一次失败怎样改变下一轮
现场变化:第一次抓取没成功——机械臂已经抬起,杯子却仍在柜内。
此时最有价值的返回信息,是“目标没有离开原位”这类可核验的结果,以及能支持下一次判断的观测。把这些信息送回模型后,它才有依据去重新观察、调整位置、再次抓取,或者请求帮助。
▲图4 | 一次操作需要回答两个不同的问题:工具是否完成执行,物理目标是否真正达成。图中的执行后检查把后一种判断连同原因送回模型,使失败能够改变下一轮计划;若缺少这条返回路径,后续步骤就可能一直建立在“已经成功”的旧假设上。
这里的分工是:执行机制负责取得并传回结果,模型根据结果选择后续行动。
恢复过程可以是重新组合已有能力,不必为每一种失败都预先写死完整脚本;与此同时,哪些动作不允许做、什么时候必须停下来,仍然需要明确的执行约束。
Thea 在真实机器人操作后自动触发独立评价,就是把“检查结果”固化到系统结构中的一个例子。
- 步骤五:两项能力之间,还要有人交接
现场变化: 经过调整,杯子终于被拿起。任务转入搬运。
但“先抓取、后搬运”在文字上顺理成章,并不代表两项策略就能直接接续。
前一项策略留下的机械臂姿态,可能不在后一项策略熟悉的起始范围内。系统还要判断,是否需要先调整身体状态,再交给下一项能力。
▲图5 | 任务的文字顺序成立,并不代表两个控制策略能够直接接续。图中检索出的轨迹用于估计下一策略熟悉的状态,过渡动作再把当前机器人带向这一区域;这把“下一步由谁做”,进一步落实成“从什么状态开始做”。
这类交接,可以利用执行经验来改善。
RoboHarness 的真机柜内取积木与搭建任务,就借助历史轨迹来估计下一项策略适用的状态,并用过渡动作改善衔接。
这里的记忆保存了与身体姿态、动作条件有关的经验,能直接影响实际执行。
- 步骤六:搬运途中出现意外,谁来停止
继续搬运时,系统仍在获得新的观测。高层可以检查路线和剩余任务,底层执行则按自己的节奏推进。
一旦前方突然出现障碍,停止机制应当及时中断运动,而不是等普通推理回合结束。停下以后,还要阻止已经失效的旧指令重新生效,重新确认现场,再决定是否继续。
导航研究中对推理、执行和监测做异步协调,处理的就是这类问题;NavGPT-3 把这部分职责明确交给了运行时调度。
如果自主能力解决不了卡点,也可以在清楚交接控制权后由人来协助,再根据干预后的状态恢复。Cortex 的远程接管展示了这条路径,但其中的人类帮助应当如实计入任务表现。
- 步骤七:确认目标达成,这一轮循环才算闭合
现场变化:杯子确实被放到了指定位置。
直到此刻,系统才有依据判断目标完成。
至此,指令、模型选择、实际动作和结果反馈,接成了一个连续的过程。
Harness 发挥作用的地方,正是这些环节之间:让每一轮都能接上前一轮留下的现场,而不是机械地重复最初那份计划。
04 它与传统机器人系统,究竟差在哪里?
闭环早就有,缺的是接口
理解了这条过程,也就更容易看清它和传统机器人技术的关系。机器人原本就在根据感知做决策,再利用反馈调整执行。
- 早在 2002 年的 4D/RCS 架构中,就已经有了分层、多时间尺度决策和世界模型;
- 今天的 Nav2 行为树,也能组织规划、控制、重试、恢复和暂停继续。
▲图6 | 传统导航系统已经把任务组织与具体执行分开:BT Navigator 根据行为树协调规划、控制和行为等服务,地图与传感器数据为这些模块提供依据。下方的速度平滑与碰撞监控继续约束送往机体的指令,说明机器人原有体系本来就负责把任务意图落实为受约束的运动。具身 Harness 需要与这套能力衔接,而非取代整条执行链。
所以,具身 Harness 延续了大量已有的系统思想。
它不要求把定位、规划和控制重做一遍,也不意味着机器人此前缺少闭环。真正需要重新设计的,是基础模型加入之后,它与这些能力之间的交互方式。
比如,机器人内部可能已经维护了地图和状态估计,那么:
高层模型该看到整张地图、一个局部摘要,还是通过工具按需查询?
机械臂可能已经有抓取策略,但怎样让模型知道它适用于哪些对象和条件?
调用失败后,模型是只收到一个错误标签,还是同时得到原因和新的现场证据?
这些选择都会影响下一次决策。
这种变化也有研究上的延续:
SayCan 和 Code as Policies 早在 2022 年就探索过语言模型与机器人技能、可执行接口的连接;
近期的 Harness 工作把更多注意力放在持续任务中的信息组织、执行验证和协作机制上,形成了一批可以继续比较和优化的问题。
同一个名字,不代表同一套架构
这里并不存在一条所有项目都遵循的统一边界。
有的 Harness 覆盖较完整的任务循环,有的只研究上下文构建,还有的项目把实时调度单独称为 runtime。因此在进行区分时,应回到实际职责,而不是把同一个名称当成相同架构的证明。
一个比较实用的理解是:机器人原有能力负责把动作做好,基础模型提供灵活的任务理解与选择;而围绕二者的工作机制,则要确保信息能被理解、调用能够落实、后果能够回到后续决策中。
这几部分既要一起设计,也要分别验证。
05 Harness 在具身智能系统里是否真的有用?
目前已经有一些支持它的研究结果,但这些结果更适合被理解为早期证据。
关键要看的是:在模型和底层能力不变的情况下,改善信息组织、执行反馈或运行机制,能否让机器人更可靠地完成任务。
- 第一类,来自对任务编排的比较。
Thea 与 CaP-X、SayCan 的部分真机对照,采用了相同的高层模型和底层工具,让实验更集中地检验场景信息、结果评价与任务组织的作用。
这类设计的意义,在于尽量把“模型更强了”和“系统把模型用得更好了”区分开。
- 第二类,来自对执行机制的比较。
在 NavGPT-3 的 Unitree Go2 真机实验中,作者固定了模型、工具、路线证据和激光雷达检测,对比推理与执行的不同组织方式。相比串行执行、排队处理事件,重叠执行加优先处理把停车延迟的第 95 百分位从 1840 毫秒降到了 180 毫秒;但最终配置仍有 1/30 次接受了过期命令。
这说明协调方式确实能改变这一设置下的物理响应,也说明降低延迟还不等于拿到了完整的安全保证。
▲图7 | NavGPT-3 将高层任务判断与较快的动作执行连接起来:模型可以调用空间工具,也可以把一段导航交给 VLA,再根据返回证据修正路线。中部的异步协调进一步让推理、执行和监测按各自节奏工作,异常事件能够打断运动;右侧 RxR-CE 仿真对比则展示完整系统在特定基准中的表现,需要与真机和消融结果结合理解。
- 第三类,来自把模型之外的部分当作优化对象。
SHAPER 固定规划模型和执行器的参数,根据仿真运行的反馈来改进文字技能和上下文构建代码。它提供了一条不必每次重新训练模型的改进路径,但真机验证仍属于未来工作,不能据此推断真实机器人已经具备可靠的持续自我进化能力。
这些工作让 Harness 不再只是一个泛泛的工程说法:信息怎样提供、能力怎样调用、结果怎样返回,都可以成为单独设计、对照验证的变量。
不过,不同研究对 Harness 的范围划分不同,评测任务和实验条件也差异很大——有的是仿真测试,有的是有限场景下的真机实验,产品展示又采用了不同的人类干预条件。
因此,目前还很难把它们合并成一套通用的能力结论。
判断这层机制的实际价值,还要落到完整任务和使用成本上:
它是否减少了重复失败,能否从异常状态中恢复,完成同一件事需要多少时间和人工帮助。更多的上下文、评价器或调度逻辑,也可能带来额外的延迟和故障点,具体收益得用实验、而不是模块数量来说明。
它的能力边界同样清楚。编排能让已有策略在更合适的条件下工作,却补不出策略库里没有的本领;增加结果检查,也无法消除评价器本身的误判。涉及物理安全的限制,仍然要靠执行系统中的约束和专门验证。
所以,把它看作一条正在形成的研究方向,比过早当成通用解决方案,更符合目前的进展。
Harness 本身的问题,到这里基本说完了:它在系统里做什么、和传统机器人系统差在哪、目前的证据能支持到哪一步。
但它不是孤立的一层。
前面反复出现的能力:VLA、WAM,各自怎么形成动作、和 Harness 又怎么分工?下一篇我们会往下把三者放进同一个任务里,看各自负责哪一段,彼此的区别与联系。
Ref
OpenJDK:JavaTest / jtreg FAQ(https://github.com/openjdk/jtreg/blob/master/src/share/doc/javatest/regtest/faq.md)
The Language Model Evaluation Harness,2024(https://arxiv.org/abs/2405.14782)
Anthropic:Scaling Managed Agents: Decoupling the brain from the hands,2026-04-08(https://www.anthropic.com/engineering/managed-agents)
Anthropic:Effective harnesses for long-running agents,2025-11-26(https://www.anthropic.com/engineering/effective-harnesses-for-long-running-agents)
OpenAI:Harness engineering: leveraging Codex in an agent-first world,2026-02-11(https://openai.com/index/harness-engineering/)
Thea:论文(https://arxiv.org/abs/2608.11246)、系统架构(https://eit-hai.github.io/thea/system.html)、物理世界接口(https://eit-hai.github.io/thea/gaps.html)、实验(https://eit-hai.github.io/thea/experiments.html)
NIST:4D/RCS: A Reference Model Architecture for Intelligent Unmanned Ground Vehicles,2002(https://www.nist.gov/publications/4drcs-reference-model-architecture-intelligent-unmanned-ground-vehicles)
Nav2:行为树(https://docs.nav2.org/rolling/getting_started/nav2_behavior_trees/)、专用节点与恢复机制(https://docs.nav2.org/behavior_trees/overview/nav2_specific_nodes.html)
SayCan:Do As I Can, Not As I Say,2022(https://arxiv.org/abs/2204.01691)
Code as Policies: Language Model Programs for Embodied Control,2022(https://arxiv.org/abs/2209.07753)
RoboHarness: Memory-Driven Orchestration of Heterogeneous Robot Policies for Long-Horizon Planning,2026-07-20,本文使用 v1(https://arxiv.org/html/2607.18060v1)
SHAPER:Self-Evolving Embodied Agents via Skill-Harness Evolution,2026-08-11,本文使用 v1(https://arxiv.org/html/2608.11350v1)
NavGPT-3: Harnessing Context in a Hierarchical Navigation Runtime,2026-10-07(https://arxiv.org/html/2610.10787v1)
Cortex:Introducing Cortex Harness,2026-10-06(https://cortexrobot.ai/research/introducing-cortex-harness/)