当前位置: 首页 > news >正文

代码作为Harness!UIUC、Meta等剖析代码如何撑起 AI 智能体

Harness 已经是智能体前沿热点技术,人们对其解读各式各样,也在不断进步和深入。

智能体 = Harness + LLM,LLM(大模型)是老熟人了,那 Harness 是如何撑起 AI 智能体的?

UIUC(伊利诺伊大学香槟分校)、Meta 和 Stanford(斯坦福大学)的学者们从一个全新的视角来解读 Harness。

研究者们揭示,代码即是智能体的 Harness ,代码已经成为智能体生存和运作的物理法则。

但这里的“代码”是一个广义概念。核心定义是任何可执行的(executable)或机器可检查的(machine-checkable)工件。

除了我们传统认知里的源代码,它还包揽了智能体运行环境中各种结构化的载体:

  • 常规代码与规则:程序、脚本、配置文件。

  • 严谨的契约:形式化规范、证明脚本、API Schema、工具定义。

  • 环境与评判标准:代码仓库、模拟器、测试用例。

  • 执行过程的伴生物:由可执行系统产生或消耗的执行轨迹(Trace)和日志(Log)。

而物理状态、人类意图和模型推理,可以通过代码被感知、被序列化、被验证或被执行,但它们本身不能和“代码接口”混为一谈。

代码是大语言模型与外部世界打交道时,唯一能够被机器读取、运行、检查并留下状态记录的“结构化实体媒介”。

那代码如何演变成连接模型与现实世界的运行底座的?

代码重塑运行底座

LLM 本身是无状态的。想让它变成一个能持续执行任务的 Agent,需要一套外围软件层来连接模型与环境。这套被称为 Harness 的系统包含了 Tool(工具)、Sandbox(沙盒)、Memory(记忆)、验证器和执行循环。

代码正是构建这个 Harness 的最佳媒介。

与自然语言相比,代码具备三个决定性特质。代码是可执行的,模型的输出能转化为客观可验证的操作。代码是可检查的,中间计算过程会留下结构化的 Trace(执行轨迹)供系统读取和纠错。代码还是有状态的,任务的进展可以被持久化保存并在不同步骤间流转。 代码构成了智能体脚下的“地板”和手里的“方向盘”。大模型只是一个没有记忆的“大脑”,而由代码构成的 Harness,才是让大脑能够真正去执行长周期任务的“肉身”和“环境”。

实世界需要严丝合缝的逻辑,把代码作为基座,实际上是用代码的可执行(Executable)、可检查(Inspectable)和有状态(Stateful),给飘忽不定的 AI 套上了一层“紧箍咒”。

代码能跑通就是跑通了,报错就是报错了,这种客观的验证机制,是智能体能做到自我纠错、安全可控的唯一解。

当智能体系统变得越来越复杂,多个 Agent 之间,乃至 Agent 与人类之间,靠自然语言聊天是说不清、也无法同步复杂状态的。

代码基座充当了所有参与者共同遵守的“契约”和“全局黑板”,大家都在这个透明、可溯源的代码环境里干活、同步进度和验证质量。

研究团队将这种以代码为核心的 Agent 架构进行了系统性分类。

在 Harness 的接口层,代码承担了三种核心角色,分别是用于 Reasoning(推理)、用于 Acting(行动)以及用于环境建模。

用于 Reasoning 的代码将模型内部的逻辑推演转化为可验证的计算过程。早期纯靠文字 Prompt 进行逻辑推理极易出错。现在的 Agent 生成代码程序,交由外部的解释器或符号求解器去执行。推理和计算被分离开来,模型负责提出步骤,Harness 负责严格执行并把结果反馈给模型。

用于 Acting 的代码将高层意图转化为物理或数字世界中的具体操作。Harness 必须将抽象输出映射为符合环境约束的行为,处理硬件限制、API(应用编程接口)和安全规范。代码充当了控制界面,形态可以是一个预定义的 Skill 库,也可以是一段动态生成的控制策略脚本。

用于环境建模的代码让外部世界变得透明且可操作。把环境当成黑盒交互很难追踪状态变化。引入代码后,环境的结构和动态变化被具象化为模拟器、代码仓库、Test(测试)用例和执行 Log(日志)。Agent 借此直接查询和评估交互结果。

维持运转的底层机制

确立了接口后,Agent 面对的是复杂的长周期任务。代码在这里不再是输入 Prompt 后的一锤子买卖,运转机制决定了 Agent 能否在出错时自我修正并持续推进。

Planning(规划)机制负责控制任务走向。面对庞大的代码仓库,Agent 如果不提前拆解目标,极易陷入死循环或顾此失彼。

现在的 Planning 已经从简单的文字大纲进化为系统层面的实体控制。有些 Agent 会生成基于依赖关系的任务图谱,有些则会在多种修改方案中进行搜索比对,还有些通过调度不同角色的工作流来完成复杂工程。

Memory 机制解决的是模型 Context(上下文)窗口有限的核心痛点。

真实软件开发会产生海量 Log 和 Test 报告,直接塞进 Prompt 会让模型立刻崩溃。系统必须对状态进行管理,决定哪些线索留在当前工作 Memory 中,哪些代码片段要通过语义搜索提取,哪些历史教训需要固化为长期经验,并将无关的冗长报错压缩归档。

Tool 调用机制极大拓展了 Agent 的能力边界。Agent 不再闭门造车,它们会调用搜索引擎查文档,操作命令行改文件,运行 Test 脚本看结果。优秀的 Harness 会对 Tool 进行严格的生命周期管理,规范参数结构,并在执行危险操作前设置人工拦截网。

这一切共同交织成一个以验证为核心的控制闭环。Planning 变为明确的契约,所有修改在相互隔离的 Sandbox 中执行,编译器、静态分析和 Test 充当了无私的裁判。Harness 化身成系统调配员,决定是继续推进、回滚重试还是请求人类介入。

最前沿的研究甚至开始让 Harness 自我进化。系统收集极其详尽的运行遥测数据,分析时间成本和失败环节,然后由专门的 Meta-Agent(元智能体)去修改检索策略或增删 Tool,让整个架构越来越懂特定环境的脾气。

多智能体协作基石

单打独斗终有极限。面对动辄上万行的工程项目,单个 Agent 既记不住所有细节,也难以兼顾写代码、写 Test 和做 Review(审查)。引入多角色协作,即 MAS(多智能体系统),就成了必然选择。

在 MAS 中,分工变得极为细致。有的专门负责架构拆解,有的钻研具体函数的实现,有的拼命寻找代码里的 Bug(缺陷),有的则像裁判一样把控全局质量。它们之间的交流不再是随意的纯文本聊天,而是基于共同操作的代码仓库和执行 Log 展开。

系统组织架构同样多种多样。有的照搬人类瀑布式开发流程,一个做完丢给下一个。有的采用敏捷迭代,程序员写完测试员测,报错了再打回重写。更前卫的设计甚至能根据报错 Log,自动炒掉不合格的子节点,重构沟通网络。

多角色共事面临的最大隐患是状态不同步。甲拿着昨天的需求,乙看着今天的报错,丙在脑海里凭空修补。

为了解决这个问题,研究者引入了全局 Blackboard 模式和结构化 Context 调度。大家在一个完全对齐、基于执行结果的代码世界里对话,何时大功告成也不再靠蒙,而是由严格的编译结果和安全检测指标说了算。

落地场景与未来挑战

这种以代码为核心底座的思路,已经在真实应用中展现出巨大威力。

编程助手是感知最明显的领域。早期的代码补全已经升级为深度的仓库级协作,助手能在隔离的 Sandbox 环境中读代码、跑 Test、修 Bug。

像 Claude Computer Use 这样的 GUI/OS Agent,能直接将肉眼看到的 Web 和桌面环境翻译成精确的执行脚本,替人点击和输入。

在科研探索中,大把的假设、文献、实验室机械臂指令都被浓缩进一条条执行图谱,系统能在后台自主完成化学材料模拟筛选甚至试管分配。

即便是个人推荐系统和 Embodied Agent(具身智能体)控制,底层也是一套不断更新的偏好 Memory 模块和物理执行 Skill 库。

强大的执行能力也带来了棘手的新难题。

当 Agent 能够疯狂操作 Tool 时,仅看最终任务成败已经不够了,亟需能精准评估其安全合规性和执行效率的评测新标准。

另外还要警惕虚假的正确感,Test 全部变绿并不代表代码逻辑完美,可能只是检查器太宽容。

当大量自主决策权交出,如何在系统内部设立不容逾越的权限红线,让关键的不可逆操作强制停下等待 Human-in-the-loop(人类介入循环),这仍是工程师们需要攻克的高地。

参考资料:

https://arxiv.org/pdf/2605.18747

https://github.com/YennNing/Awesome-Code-as-Agent-Harness-Papers

http://www.cnnetsun.cn/news/2873706.html

相关文章:

  • MATLAB直接读取MindWave专注度数值的串口控制三件套
  • 工业级嵌入式处理器选型与硬件设计实战:以MPC7410THX为例
  • 索引优化深潜(下):索引合并、ICP 与索引设计的实战法则
  • DLSS Swapper:智能游戏DLSS版本管理专家
  • I2C总线缓冲器应用与SMD焊接:解决电容负载与热插拔难题
  • SQLines数据库迁移工具:从Oracle到PostgreSQL的完整迁移实战指南
  • 免费开源网络速度测试工具OpenSpeedTest™:3分钟搭建专属测速站
  • Android Studio中文界面终极配置指南:3步告别英文困扰
  • 2026企业架构实战:ERP单据异常智能排查与日志联动分析,如何靠实在Agent破解集成僵局?
  • 【七境·司马法】仁本第一 · 以仁固本术——团队离心修复实战包
  • Poppins字体终极指南:如何免费使用这款强大的多语言字体
  • QEM网格简化C/C++工程包:含可执行程序、完整源码与算法论文
  • 实战USG5500防火墙安全域与策略配置:从零构建Trust-DMZ-Untrust访问模型
  • STM32G070十六通道ADC+DMA循环采集Keil工程(含CubeMX配置)
  • Waymo斥资2.2亿美元收购苹果自动驾驶测试场
  • MATLAB结合nctoolbox高效解析grib2气象数据
  • Aurora、Chip2chip、Ethernet IP的GT共享时钟实战(一)
  • 2026 年,AI 智能体如何在企业落地?
  • 3分钟掌握Sketch MeaXure:设计标注效率提升70%的终极指南
  • Composio:开源AI智能体工具集成平台深度解析
  • Navicat重置试用期:3种智能方案解决14天限制问题
  • Java毕业设计-基于SpringBoot的植物销售管理系统的设计与实现springboot花卉销售平台(源码+LW+部署文档+全bao+远程调试+代码讲解等)
  • 硫酸钠溶液纯化,离子交换树脂工艺
  • # 打车票根卡片 UI 重构:从 Circle 挖洞到 clipShape PathShape,再到 100% 自适应
  • 5分钟搞定Windows虚拟手柄驱动:ViGEmBus终极指南
  • redis-为什么redis速度快?
  • Python数据分析利器:Pandas与NumPy深度解析
  • 微信读书笔记神器WeReader:三步快速实现高效笔记管理
  • NanaZip完整指南:为什么这个现代化7-Zip替代品是Windows用户的终极选择
  • PCAL9539A GPIO扩展器深度解析:Agile I/O特性与嵌入式系统实战应用