来源:互联网 更新时间:2026-06-10 12:44
过去两年,大模型写代码这件事已经不算新鲜了。从代码补全到 GitHub issue 修复,从竞赛编程到仓库级软件工程,人们习惯用一个简单标准来评判 coding agent:代码能不能写对?测试能不能通过?

但Claude Code、Codex这类系统的出现,把讨论的焦点不知不觉往下沉了一层。真正强的coding agent,并不只是“会写代码”那么简单。它还要能在较长时间窗口内做这些事情:读仓库、做计划、改文件、跑命令、看报错、修故障、维护上下文,并在多轮反馈中持续推进任务。
这套让模型长期可靠“跑起来”的执行系统,就是Agent Harness。很多关于harness的讨论,关注的仍然是模型外面该包什么:工具、API、沙箱、记忆、权限边界、验证器、反馈循环。它们回答的是“一个可用的Agent需要哪些系统组件”。
但来自伊利诺伊大学香槟分校(UIUC)、Meta和斯坦福(Stanford University)的102页综述《Code as Agent Harness》往前追问了一步:
论文标题:Code as Agent Harness
论文:https://arxiv.org/pdf/2605.18747
GitHub仓库:https://github.com/YennNing/Awesome-Code-as-Agent-Harness-Papers
注意,这里的“代码”不只是模型最终生成的那段程序,也不是说Agent框架本身是由代码写成的。它指的是Agent在harness中不断生成、运行、修改、保存和共享的一系列代码化中间物:Plan.md、测试脚本、shell命令、patch、执行日志、workflow、技能库、仿真器、验证器,甚至共享仓库状态。
传统代码生成里,代码通常是模型最后交付的产物;
换句话说,这篇综述把代码视为Agent系统中的可执行、可检查、有状态媒介,并从接口、机制、多Agent扩展三个层次展开了论述。
一个纯粹的大语言模型本质上是无状态的。它可以根据上下文生成下一段文本,但不会天然保存任务进度,也不会自动维护外部世界的状态变化。Harness的作用,就是把模型接入真实的执行环境。
代码之所以适合成为harness的核心载体,是因为它有自然语言不具备的三个属性:
可执行,意味着模型的意图可以变成真实操作。一个计划不只是“我将修改文件”,而是可以落地为shell command、patch或测试脚本。
可检查,意味着执行过程会产生客观反馈。编译错误、运行时错误、测试结果、日志和trace,都能告诉系统当前发生了什么,而不只是依赖模型自我解释。
有状态,意味着任务进度可以被持久保存。仓库、文件系统、配置、测试、commit history、skill library都能记录Agent已经做了什么、失败在哪里、下一步应该接着哪里做。
所以,这篇survey和一般harness综述最大的不同,不是又列一遍工具、记忆和沙箱,而是把代码放在了中心位置:
这篇综述的第一层是Harness Interface:代码如何成为模型和外部世界之间的接口。
首先,
其次,
第三,
代码在接口层连接了reasoning、acting和environment modeling,让Agent的推理、行动与环境状态进入同一个可执行闭环。
(代码作为接口层的发展路线图。)
真实任务很少一步完成。修复一个bug,可能要多次定位、修改、测试和回滚;操作一个网页系统,可能要跨多个页面和工具;做一个科学实验,可能要提出假设、运行模拟、分析数据,再根据结果调整下一步。
这时,关键不只是模型更强,而是Agent的每一步是否能被组织进一个可控的执行循环。
最核心的是
规划、记忆、工具使用和执行反馈共同构成了代码中心Harness架构,支撑Agent长程运行。
当任务复杂到单个Agent无法完成,多Agent协作就成为一个自然的方向。一个Agent做manager,一个做planner,一个写代码,一个写测试,一个做reviewer。
但多Agent的真正难点不是“多叫几个模型一起讨论”,而是它们如何共享同一个世界状态。
如果多个Agent只靠聊天记录协作,很容易出现状态发散:每个Agent都以为自己理解了当前进展,但它们对代码到底被改成什么样、测试失败在哪里、哪些修改已经生效,可能并没有共同的认知。
代码在这里提供了更稳定的共享基底。仓库、测试、PR、issue、CI log、review comment、执行trace,都可以成为多个Agent共同读写和验证的对象。真正的协作不是“互相说服”,而是围绕共享程序状态不断收敛。
(在多Agent系统中,共享仓库、测试、执行状态和workflow构成协作基底。)
Code as Agent Harness最先在coding agent中变得明显,这并不意外。软件世界天然可执行、可测试、可回滚、可记录,因此最适合作为Agent落地的样板间。
但这个趋势并不止于写代码。在GUI/OS Agent中,网页和操作系统正在被转化为可编程环境,DOM tree、accessibility tree、Playwright脚本都让界面操作变成可执行的状态转移。在机器人领域,语言意图需要变成技能库、控制脚本和仿真反馈,抽象目标只有落到可执行代码里,才能被物理约束检查。在科学发现中,假设、实验、模拟、数据分析和实验记录可以被组织成代码流水线,Agent不只是生成想法,而是通过可执行的pipeline推进发现过程。
因此,未来很多Agent不一定都叫coding agent,但它们很可能都会运行在某种code-centric harness之上。
(Code as Agent Harness从代码助手扩展到GUI/OS、机器人、科学发现、个性化系统等场景。)
当Agent变成长期执行系统,评测方式也必须随之改变。过去的benchmark主要看最终结果:答案对不对、测试过没过、任务完成没有。但对于code-harnessed agent,这远远不够。
一个Agent可能最终通过了测试,但过程中做了大量危险修改、污染了共享状态,或者引入了隐藏的regression。另一个Agent可能没有完成任务,但执行轨迹清晰、失败原因明确、状态可恢复。在真实部署场景中,后者未必更差。
论文因此提出了几个开放问题:如何做harness-level evaluation,不仅评估最终输出,也评估计划、工具调用、状态转移和反馈使用;如何处理incomplete feedback,因为测试通过不代表程序真正正确;如何实现regression-free self-evolution,避免harness在自我优化时引入新的失败模式;如何解决多Agent共享状态中的语义冲突;以及如何把human-in-the-loop变成可记录、可追责、可验证的系统状态。
过去,代码是模型的考题。
现在,代码正在成为Agent的操作系统。
《Off Campus》第二季官宣:这对CP还在,但不再是主角
和平精英如何做到压枪稳-和平精英怎样才能压枪稳
客单价碾压宝马奥迪!极氪5月交付新车34377辆:连续4个月双增长
免费影视剧APP推荐
HBO 奇幻剧《龙之家族》第三季定档 6 月 22 日,最终预告片曝光喉道海战
儿子穿新中式现身大会堂 马斯克罕见用中文回应:他正在学习普通话
DOTA2 TI时隔七年重返上海!门票6月10日开抢,国服享受优先购买!
抖音最火沙雕男生网名(精选100个)
网络热词聊污是什么意思
帅气继父网名女生可爱英文(精选100个)
金铲铲之战s17六暗星卡莎阵容玩法构筑指南
我的末日校园海斗手游上线时间是哪天
阿里发布Qwen3.7-Max大模型,全球第五、国产第一
SpaceX狂揽AI人才,马斯克亲自面试且不看简历背景
免费看电影的软件推荐
蒙古上单是什么梗
韦一敏是什么梗
晨字沙雕网名大全女生(精选100个)
帅到极致的网名女生霸气(精选100个)
短剧《情绪超市》剧情介绍
手机号码测吉凶
本站所有软件,都由网友上传,如有侵犯你的版权,请发邮件haolingcc@hotmail.com 联系删除。 版权所有 Copyright@2012-2013 haoling.cc