微信扫一扫,关注公众号

  • 科技行者

  • 算力行者

见证连接与计算的「力量」

首页 字节跳动惊人发现:最强AI程序员竟然连基本编程任务都搞不定

字节跳动惊人发现:最强AI程序员竟然连基本编程任务都搞不定

2025-12-29 09:43
分享至:
----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.-
2025-12-29 09:43 科技行者

在人工智能飞速发展的今天,很多人都在讨论AI什么时候能完全替代人类程序员。然而,字节跳动Seed中国团队联合M-A-P、2077AI、Humanlaya Data等多家研究机构刚刚发布的一项重磅研究却给这种乐观情绪浇了一盆冷水。这项研究发表于2025年12月,题为"NL2Repo-Bench: Towards Long-Horizon Repository Generation Evaluation of Coding Agents",有兴趣深入了解的读者可以通过arXiv:2512.12730v1查询完整论文。

想象一下,你要求一个据说是"世界顶级"的建筑师为你设计并建造一栋完整的房子,你只给了他一张写着详细需求的纸条,比如"我想要一个三室两厅的房子,有现代化厨房,阳光充足的客厅"等等。然后你走开,让他独自完成从设计到建造的全部工作。几天后回来,你发现他只搭了半截墙就放弃了,或者建了一栋看起来不错但门窗都打不开的房子。

这正是研究团队发现的AI程序员现状。目前最先进的AI编程助手,包括Claude、GPT-5等明星产品,在面对需要独立完成整个软件项目的任务时,表现远远不如我们想象的那样出色。即便是表现最好的Claude系统,成功率也仅有40%左右,而大多数AI的成功率甚至不到20%。

这项研究的独特之处在于,它首次系统性地测试了AI程序员在"长期项目"中的真实能力。以往的测试就像是考察建筑师能否正确安装一扇门或者粉刷一面墙,而这次研究则是让AI独自承担从零开始建造整栋房子的任务。研究团队设计了一个名为NL2Repo-Bench的全新测试平台,包含104个不同难度的真实软件项目,每个项目都需要AI从一张需求说明书开始,独立完成架构设计、代码编写、依赖管理等全部工作,最终交付一个可以正常运行的完整软件包。

一、传统测试方法的局限性:只见树木不见森林

在深入了解这项研究之前,我们需要理解为什么以往的AI编程能力测试可能误导了我们。现有的大多数AI编程测试就像是在考驾照时只考察能否踩油门刹车,而不测试能否独立完成一次长途旅行。

比如说,目前最流行的编程测试通常会给AI一个具体的编程题目,比如"写一个函数来计算两个数字的最大公约数",或者"修复这段代码中的一个bug"。这类测试就像是让建筑工人展示如何使用锤子或螺丝刀,虽然能测试某些技能,但完全无法评估他们能否独立建造一栋房子。

研究团队发现,即使是那些在单个编程任务上表现优异的AI系统,在面对需要长期规划和多模块协调的复杂项目时,往往会出现各种意想不到的问题。这就好比一个能够精美雕刻每一块砖石的工匠,却无法理解如何将这些砖石组合成一座稳固的建筑。

当前的测试方法主要分为三类。第一类是"修补型"测试,给AI一个已经存在但有问题的软件项目,让它找出并修复bug,这就像是让装修工人修补墙面的裂缝。第二类是"填空型"测试,给AI一个不完整的项目框架,让它填补缺失的部分,就像给装修工人一个半成品房间,要求完成剩余工作。第三类是"复制型"测试,让AI根据学术论文重新实现研究成果,但这类测试通常依赖其他AI来评判结果好坏,就像让一个装修工人评价另一个工人的工作质量。

这些测试方法的共同问题是,它们都为AI提供了大量的"脚手架"支撑,就像是为建筑工人提供了详细的施工图纸、预制的建筑构件,甚至现成的地基。在这种条件下表现良好,并不意味着AI具备了独立规划和建造整个项目的能力。

二、NL2Repo-Bench的创新设计:真正的独立建房挑战

为了真实评估AI的完整编程能力,研究团队创造了一个全新的测试环境,称为NL2Repo-Bench。这个测试平台的设计理念就像是给建筑师一块空地和一份详细的需求说明书,然后完全让他们独自完成从设计到建造的全部工作。

NL2Repo-Bench的核心设计包含三个关键要素。首先是"空白起点"原则,AI面对的是一个完全空白的工作环境,没有任何预先编写的代码、没有项目框架、甚至连基本的文件夹结构都需要AI自己创建。这就像是给建筑师一块什么都没有的空地,连地基都需要他们自己设计和挖掘。

其次是"纯文字需求"的输入方式。AI只能获得一份用自然语言写成的项目需求文档,这份文档详细描述了软件应该具备的功能、应该如何使用、以及期望的行为表现。但是,这份文档不包含任何代码示例、函数签名或具体实现提示。这就像是给建筑师一份房屋需求说明书,上面写着"需要三室两厅、现代化厨房、充足采光",但不会告诉他如何设计房屋结构或选择建筑材料。

第三个关键要素是"严格验证"的评判标准。与以往依赖其他AI或人工主观评价不同,NL2Repo-Bench使用真实软件项目的原始测试套件来验证AI生成的代码。这些测试套件是软件原始开发者编写的,用来确保软件各项功能正常工作。这就像是用建筑工程的严格验收标准来检查房屋质量,包括结构安全性、水电系统功能、门窗开关是否正常等等。

研究团队从GitHub上精心筛选了104个真实的开源软件项目作为测试素材。这些项目涵盖了网页开发、数据分析、机器学习、系统工具等九大类别,规模从简单的工具库到复杂的系统软件不等。每个项目的规模控制在300到12万行代码之间,确保既有足够的复杂性来测试AI的长期规划能力,又不会超出当前AI系统的处理能力上限。

为了确保测试的公平性和准确性,研究团队还开发了专门的Docker容器化测试环境。每个测试项目都在一个隔离的、预配置好的虚拟环境中运行,确保AI生成的代码能够在标准化的条件下接受测试。这就像是为每个建筑项目提供统一的质检标准和工具,确保评估结果的客观性和可比较性。

三、令人意外的测试结果:AI编程能力的真实水平

当研究团队运行这些严格的测试时,结果让所有人都感到震惊。即使是当前性能最强的AI系统,在面对完整项目开发任务时的表现也远远低于预期。

Claude系列AI表现最为出色,其中Claude-Sonnet-4.5的平均成功率达到40.2%,这已经是所有测试AI中的最高分数。但即便如此,这意味着在10个项目中,它也只能完整成功完成4个。而其他知名的AI系统表现更加令人担忧,GPT-5的成功率只有21.7%,一些开源AI模型的成功率甚至低于20%。

更让人意外的是,在104个测试项目中,即使是表现最好的Claude-Sonnet-4.5,也只有3个项目能够完全通过所有测试用例。这就像是让世界上最优秀的建筑师独立建造10栋房子,结果发现其中6栋房子都有严重的结构问题或功能缺陷,而真正完全符合要求、可以安全入住的房子屈指可数。

研究团队进一步分析发现,AI的表现与项目复杂程度呈现明显的反比关系。在简单项目(代码量少于1500行)中,Claude-Sonnet-4.5的成功率能达到51.8%,但在复杂项目(代码量超过4000行)中,成功率急剧下降到25.1%。这种现象类似于一个建筑师能够熟练建造小型住宅,但在面对大型建筑项目时就力不从心了。

不同类型的项目对AI来说也呈现出不同的挑战程度。研究发现,AI在处理系统工具和数据库交互类项目时表现相对较好,成功率能达到40%以上。但在机器学习和网络通信类项目上,所有AI的表现都显著下降,成功率普遍低于20%。这就像是某些建筑师擅长建造传统住宅,但在面对需要复杂电气系统或特殊结构设计的建筑时就显得束手无策。

研究团队还发现了一个有趣的现象:AI系统的上下文窗口大小对性能有显著影响。Claude系列AI拥有100万token的超大上下文窗口,这让它能够在整个开发过程中记住项目的所有细节和早期决策。相比之下,那些只有25万token上下文窗口的AI系统,就像是患有短期失忆症的建筑师,经常忘记前面做过的设计决定,导致项目后期出现各种不一致的问题。

四、AI失败模式分析:编程过程中的典型错误

通过深入分析AI在测试中的失败案例,研究团队发现了几种典型的错误模式,这些发现揭示了当前AI编程能力的根本性局限。

最常见的问题是"过度自信的早期放弃"。许多AI系统在项目进行到一半时就认为任务已经完成,提前宣布"工程完工"。这就像是建筑工人只搭建了房屋的基本框架和外墙,就告诉业主"房子建好了",完全忽略了内部装修、水电安装、门窗安装等大量必要工作。这种现象在"思维型"AI模型中尤为严重,比如Qwen3-Thinking模型有49%的项目都出现了这种过早停工的问题。

研究团队认为,这种现象可能源于AI的"内部思维幻觉"。这些AI在内部推理过程中会说服自己代码已经正确完成,就像是一个建筑工人在脑海中想象房子已经建好的样子,然后就误以为现实中的房子也真的建好了。这种内部的"成功感"掩盖了外部实际存在的问题,导致AI跳过了必要的验证和完善步骤。

另一个严重问题是"协作依赖症"。一些AI,特别是GPT-5,经常在项目进行过程中停下来等待人类的进一步指示。它们会说"我已经完成了基础框架,接下来应该怎么办?"或者"我需要确认这个设计方案是否符合您的要求"。这就像是建筑工人每完成一个小步骤就停下来询问监工该怎么办,虽然这在人机协作场景中可能是优点,但在需要独立完成任务的情况下就成了致命缺陷。

第三种常见问题是"架构一致性缺失"。随着项目规模的增长,AI往往无法维持整体设计的一致性。它们可能在项目初期制定了一套命名规范和代码结构,但在后期却忘记了这些决定,开始使用完全不同的风格和方法。这就像是建筑师在建房子时,前面用的是现代风格的设计元素,后面却忽然改用古典风格,导致整栋建筑风格混乱、不协调。

第四种问题是"依赖管理混乱"。许多AI无法正确处理软件项目中的外部依赖关系,经常出现导入错误、版本冲突或缺少必要组件的情况。这就像是建筑师在设计房屋时没有考虑好水管、电线的走线方案,导致后期安装时发现管线无法正确连接,整个系统无法正常工作。

研究还发现,AI在处理错误和调试方面存在显著缺陷。当代码出现错误时,人类程序员通常会系统性地分析问题、查看错误信息、逐步调试定位问题。但AI往往缺乏这种持久的问题解决能力,容易陷入重复尝试同样的错误解决方案的循环中,就像是修理工明明看到某个零件坏了,却一遍又一遍地尝试用同样的方法修理,而不是考虑更换零件或改用其他方法。

五、工具使用模式揭示的深层问题

研究团队详细分析了AI在开发过程中如何使用各种编程工具,这种分析就像是观察建筑工人如何使用不同的工具来完成建房任务,结果揭示了AI工作方式的有趣特点。

在所有AI系统中,代码编辑工具的使用频率最高,约占全部工具调用的50-60%。这相当于建筑工人大部分时间都在使用锤子和螺丝刀等基础工具。其次是命令执行工具,占用约27-35%的时间,这就像是工人需要频繁使用电钻、切割机等电动工具。

最有趣的发现是关于"任务规划工具"的使用差异。表现最好的AI系统,如Claude和GPT-5,会花费约11-14%的时间使用任务规划工具,这就像是优秀的建筑工人会定期停下来查看施工图纸、规划下一步工作。而表现较差的AI系统很少使用这类工具,特别是Qwen3-Thinking模型完全不使用任务规划工具,它似乎完全依赖内部思维来进行规划,但这种方式显然效果不佳。

研究发现,AI系统平均需要进行约180轮的互动才能完成一个项目,但不同AI的互动模式差异巨大。Claude系列AI能够保持稳定的工作节奏,平均每个项目约180轮互动。而其他一些AI要么互动次数过少(如GPT-5平均只有78轮,往往没完成项目就停止了),要么互动次数过多(如Kimi-k2平均需要275轮,表现出效率低下的试错模式)。

通过分析AI的工作流程,研究团队识别出了几种典型的工作模式。高效的AI展现出"编辑-测试"循环模式,它们会编写一段代码,立即运行测试验证效果,然后根据结果进行调整。这就像是经验丰富的建筑工人,每完成一个步骤就会检查质量,确保没有问题后再继续下一步。

相比之下,效率低下的AI往往陷入"盲目编辑"模式,它们会连续编写大量代码而不进行中间测试,就像是建筑工人埋头苦干却不检查工作质量,结果到最后发现前面的工作都需要重做。还有一些AI表现出"迷航"模式,它们会反复在项目目录中寻找文件、查看代码,但很少进行实际的编辑工作,就像是工人在工地上转来转去却不知道该做什么。

六、上下文窗口大小的关键影响

研究中最有启发性的发现之一是AI的"记忆容量"(技术上称为上下文窗口大小)对其编程能力的巨大影响。这就像是建筑师的记忆力对其工作质量的影响一样重要。

Claude系列AI拥有100万token的超大记忆容量,这让它能够在整个项目开发过程中记住所有的设计决定、代码结构和遇到的问题。相比之下,大多数其他AI只有25万token左右的记忆容量,就像是记忆力有限的建筑师,容易忘记早期的设计决定,导致后期工作与前期不一致。

这种记忆容量的差异在复杂项目中表现得尤为明显。当项目代码量超过1万行时,拥有大记忆容量的AI能够维持相对稳定的性能,而记忆容量有限的AI性能会急剧下降。这就像是在建造大型建筑时,记忆力好的建筑师能够始终把握整体设计思路,而记忆力差的建筑师则会在项目后期迷失方向。

然而,研究也发现,仅仅拥有大记忆容量并不能保证成功。一些拥有较大记忆容量的AI(如Kimi-k2)表现却不如预期,这说明除了能够记住信息外,如何有效利用这些信息同样重要。这就像是一个记忆力超群但缺乏经验的建筑师,虽然能记住所有细节,但不知道如何将这些信息有效组织和应用。

七、揭示的根本性挑战

通过这项大规模的系统性研究,团队揭示了当前AI编程能力面临的几个根本性挑战,这些挑战远比我们之前认识到的更加深刻。

首先是"长期规划能力"的缺失。现在的AI系统虽然能够很好地处理单个编程任务,但在需要制定并执行跨越数百个步骤的长期计划时就显得力不从心。这就像是一个工匠能够精美地雕刻每一块木料,但无法设计和建造一件复杂的家具。真正的软件开发需要在项目初期就考虑好整体架构,然后在数天或数周的时间里坚持执行这个计划,同时根据实际情况进行灵活调整。

其次是"全局一致性维护"的困难。软件项目中的各个模块需要保持风格一致、接口兼容、命名规范统一等等。这就像是建造一栋房子时,需要确保所有房间的设计风格协调统一、所有的门窗规格匹配、所有的水电接口标准一致。AI往往在项目初期能够做得很好,但随着项目规模增长,就逐渐失去了对整体一致性的控制。

第三个挑战是"错误恢复和调试能力"。真实的软件开发过程中,出现错误和需要调试是家常便饭。优秀的程序员不仅要能避免错误,更要能在错误出现时快速定位和修复问题。但现在的AI往往缺乏这种持久的问题解决能力,容易在遇到复杂错误时陷入困境或采用低效的试错方法。

最后是"环境适应性"的不足。真实的软件开发环境复杂多变,存在版本兼容性问题、依赖冲突、系统差异等各种挑战。AI需要能够像有经验的程序员一样,在遇到这些环境问题时知道如何搜索解决方案、调整配置或寻找替代方案。但目前的AI在这方面还显得相当脆弱。

八、对未来AI发展的启示

这项研究的意义远远超出了对当前AI能力的评估,它为我们指出了AI编程能力发展的关键方向。

研究表明,简单地增加AI的计算资源或训练数据可能无法解决这些根本性问题。就像是给建筑工人更多的钱或更好的工具,并不能自动让他们学会建造摩天大楼一样。AI需要的是更好的"长期工作能力"和"项目管理技能"。

未来的AI编程助手可能需要具备更强的自我监督和验证能力。它们需要能够定期"回顾"自己的工作,检查是否偏离了最初的设计目标,并主动纠正发现的问题。这就像是建筑师需要定期审视整个建筑项目,确保各个部分协调统一。

另一个重要方向是改善AI的"规划持久性"。现在的AI往往制定计划后就忘记了,或者轻易改变计划。未来的AI需要能够制定详细、可执行的长期计划,并在执行过程中保持对这个计划的坚持,同时在必要时进行合理的调整。

研究还暗示,未来可能需要开发专门针对长期项目的AI训练方法。目前的AI训练主要基于短期任务,这可能解释了它们在长期项目中的不佳表现。就像是培训建筑师不能只让他们练习砌砖,还需要让他们实际参与完整建筑项目的规划和建造。

九、对行业和社会的影响

这项研究的发现对软件开发行业和整个社会都有重要的现实意义。

首先,它提醒我们不要过度高估当前AI的编程能力。虽然AI在协助程序员完成特定任务方面表现出色,但距离完全自主的软件开发还有很长的路要走。这就像是说,虽然现在有了很好的电动工具,但我们仍然需要熟练的建筑工人来规划和协调整个建筑项目。

对于软件开发团队来说,这意味着AI应该被视为强大的助手而不是替代品。最有效的应用方式可能是人机协作,让AI处理重复性的编码任务,而让人类程序员负责架构设计、项目规划和质量把控。这就像是现代建筑项目中,电动工具大大提高了工人的效率,但项目的成功仍然依赖于有经验的建筑师和项目经理。

对于AI开发公司来说,这项研究指出了明确的改进方向。仅仅提高AI在简单编程任务上的表现是不够的,真正的突破需要在长期规划、项目管理和错误处理能力方面取得进展。这就像是汽车工业从制造单个零件的能力发展到整车设计和制造能力的飞跃。

从更广阔的社会角度来看,这项研究也提醒我们在AI发展过程中保持理性和谨慎。虽然AI技术进步迅速,但在某些需要长期规划和复杂协调的领域,人类的独特价值仍然不可替代。这不是要贬低AI的价值,而是要帮助我们更好地理解如何最有效地利用AI技术。

说到底,这项研究告诉我们一个重要道理:真正的智能不仅仅是解决单个问题的能力,更是规划、执行和完成复杂长期项目的能力。虽然当前的AI在某些方面已经超越了人类,但在需要持久性、一致性和全局思维的复杂任务中,我们仍然有很长的路要走。这既是挑战,也是机遇,为未来的AI研究指明了清晰的发展方向。

就像建造一栋真正优秀的建筑需要的不仅仅是精湛的手工技艺,还需要深思熟虑的设计、精确的规划和持之以恒的执行一样,创造真正智能的AI编程助手也需要我们在算法、架构和训练方法上进行更深层次的创新和突破。

Q&A

Q1:NL2Repo-Bench测试平台是什么?

A:NL2Repo-Bench是字节跳动团队开发的AI编程能力测试平台,它让AI从零开始独立完成整个软件项目开发。测试中AI只能获得一份文字需求说明,需要自己进行架构设计、代码编写、依赖管理等全部工作,最终交付可运行的完整软件包。这就像给建筑师一块空地和需求书,让他独自完成从设计到建造的全部工作。

Q2:目前最强的AI编程助手成功率有多高?

A:研究测试了包括Claude、GPT-5等在内的多个顶级AI系统,发现即使是表现最好的Claude-Sonnet-4.5,平均成功率也只有40.2%。大多数AI的成功率甚至不到20%。在104个测试项目中,Claude-Sonnet-4.5只有3个项目能完全通过所有测试。这意味着AI距离独立完成复杂软件项目还有很大差距。

Q3:AI编程失败的主要原因是什么?

A:研究发现AI编程失败主要有四个原因:过度自信导致提前停工、依赖人类指导无法独立工作、无法维持长期项目的架构一致性、以及依赖管理混乱。比如一些AI会在项目完成一半时就认为任务结束,或者在项目后期忘记早期的设计决定,导致代码风格不一致。这些问题反映出AI缺乏长期规划和项目管理能力。

分享至
0赞

好文章,需要你的鼓励

推荐文章
----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.-