【AI Harness工程运行时底层架构】1. 基础模型软件代理的能力差距之谜

过去几年,我们见证了GPT、Claude等大模型在编程领域的惊人表现。它们能写函数、改代码、写测试,甚至能调用各种工具和操作代码仓库。这让人不禁畅想:是不是很快就能实现完全自动化的软件开发?让AI自己完成从需求分析到代码实现、测试验证的全流程?
理想与现实的落差
但实际情况却让人大跌眼镜。这些模型在写单个函数或修复简单bug时表现很好,一旦要它们完成完整的开发任务,就各种翻车。比如:
-
让它修复一个bug,它改对了代码,但改错了文件 -
让它实现一个功能,它写了代码,但没考虑边界情况 -
让它跑测试,它执行了命令,但完全误解了输出结果 -
最离谱的是,有时候代码明明还有问题,它却自信满满地说”完成了”
这不是偶然现象。SWE-bench、AgentBench这些专门测试AI编程能力的基准测试都证实了这一点。模型在简单任务上得分很高,复杂任务上却频频失败。
为什么会这样?
主流观点认为:模型还不够强。编码能力、推理能力、规划能力都还差那么一点。所以解决方案就是训练更强的模型,或者把多个模型组合起来用。
但这个解释忽略了一个关键问题:软件开发不是写代码这么简单。
想想我们人类程序员是怎么工作的:
-
先要理解需求,搞清楚要做什么 -
然后要在代码库里找到相关文件,理解现有代码 -
接着要选择合适的工具和框架 -
写代码时要考虑架构、性能、可维护性 -
写完要测试,发现问题要调试 -
最后还要确保不破坏现有功能
每一步都需要大量的上下文信息、项目知识、工具支持、反馈验证。这些对人类程序员来说是习以为常的,但对AI来说却很难获取。
真正的问题在哪里?
当我们在为人类设计的开发环境中使用AI时,很多支持对AI来说是隐式的、不可见的、不稳定的:
-
人类知道去哪找相关文件,AI不知道 -
人类知道项目用什么框架,AI要猜 -
人类能看懂测试输出,AI经常误解 -
人类知道什么时候算完成,AI没有明确标准
所以人类程序员还是得参与,不是因为他们要写代码,而是因为他们要提供这些缺失的支持:告诉AI看哪个文件,解释测试结果,检查是否真的完成了。
换个角度看问题
这就引出了这篇论文的核心观点:AI编程能力的差距,本质上是运行时支持系统的差距。
与其问”模型够不够强”,不如问”我们给模型提供了什么支持”。就像一个优秀的运动员,没有好的训练环境和教练团队,也发挥不出潜力。同样,一个强大的模型,没有好的运行时支持,也做不好软件工程。
论文提出的新问题是:如何构建一个运行时底层架构,把模型的潜在编码能力转化为可靠的软件工程行为?
这就是AI Harness Engineering要解决的问题。接下来,我们一步步看看这个底层架构是什么样的。
来源:论文《AI Harness Engineering:A Runtime Substrate for Foundation-Model Software Agents》

夜雨聆风