AI编码助手爆雷!效率不增反降19%!

近年来,随着人工智能技术的飞速发展,我们的数字世界正经历着一场深刻的变革。其中,AI编码助手无疑是科技领域一个引人注目的焦点。这些智能工具,例如由OpenAI、Anthropic以及谷歌等科技巨头推出的产品,已经能够长时间地投入到软件项目中,从编写完整的应用程序,到运行测试,再到修复代码中的缺陷,它们在人类的适度监督下,展现出强大的生产力。
然而,我们必须清醒地认识到,这些AI工具并非“魔法”,它们在带来便利的同时,也可能使软件项目变得更加复杂。作为开发者或技术爱好者,深入理解它们的工作原理,知晓其背后的逻辑与局限,对于我们何时以及如何有效地利用这些工具,避免潜在的“坑”,至关重要。
AI编码助手的“智慧之源”:大型语言模型
要理解AI编码助手,首先要从其核心技术——大型语言模型(LLM)说起。这些LLM,你可以想象成一个经过海量数据“喂养”而变得无比“博学”的智能大脑。它是一种特殊的神经网络,通过学习巨量的文本数据,当然也包括数不清的编程代码,从而掌握了语言和代码的内在模式。
本质上,LLM是一个强大的模式识别机器。当我们给它一个“提示”(prompt)时,它会从其庞大的知识库中,“提取”出经过压缩的统计学表征,然后根据这些模式,生成一段貌似合理且连贯的输出。在这个“提取”和生成过程中,LLM能够在不同的领域和概念之间进行“联想”和“推断”。当它表现出色时,就能产生非常有用的逻辑推理;而当它表现不佳时,则可能出现“胡编乱造”(confabulation)的错误。
为了让这些基础模型更加“听话”和“好用”,工程师们还会采用一系列精细化的技术进行“打磨”。比如,“微调”(fine-tuning)就是通过精心筛选的案例来进一步训练模型,让它更好地遵循特定的指令。而“人类反馈强化学习”(RLHF)则是在模型生成输出后,由人类提供反馈,从而不断优化模型的表现,使其能生成更实用、更符合预期的内容。
在过去几年里,全球的AI研究人员一直在不断探索LLM的不足之处,并积极寻找克服这些不足的方法。其中一项重要的创新便是“模拟推理模型”。这种模型能够生成类似推理过程的文本作为上下文,从而扩展原始提示,帮助LLM更准确地找到目标输出。而“代理”(agent)应用的出现,更是将多个LLM巧妙地连接起来,让它们能够协同工作,同时执行多项任务,并对彼此的输出进行评估,这无疑是向前迈出了一大步。
AI编码助手的“内部协作”:巧妙的结构设计
从某种意义上说,每一个AI编码助手都可以被看作是一个将多个LLM整合起来的程序“外壳”。通常,这里会有一个“监督型LLM”,它扮演着“项目经理”的角色,负责理解人类用户提出的任务指令,然后将这些任务分配给多个“并行型LLM”。这些并行型LLM则像一个个“专业工程师”,它们可以调用各种软件工具,按照指令执行具体的任务。
监督型LLM不仅会分配任务,它还能随时介入下属LLM的工作,评估子任务的执行结果,从而掌握整个项目的进展。正如Anthropic公司的工程文档所描述的,这种模式可以概括为“收集上下文、采取行动、验证工作、重复循环”——这正是高效项目管理的精髓所在。
当这些编码助手通过命令行界面(CLI)在本地运行时,用户需要给予它们有条件的权限,让它们能够在本地机器上创建文件(无论是代码还是其他必要文件),执行一些探索性的命令(比如用“ls”命令查看目录文件列表),抓取网页内容(通常通过“curl”命令),下载软件,或者将文件上传到远程服务器。这种方式固然提供了极大的灵活性,但也蕴藏着潜在的风险,因此在使用时必须格外谨慎。
与此形成对比的是,当用户通过网页版平台(比如Codex和Claude Code的网页版本)启动任务时,系统会为用户提供一个沙盒化的云端容器。这个容器预先加载了用户的代码仓库,编码助手可以在这个隔离的环境中自由地读取和编辑文件,运行命令(包括测试框架和代码检查工具),并独立执行代码。特别值得一提的是,Anthropic公司的Claude Code还利用了操作系统层面的功能,为代理创建了文件系统和网络边界,使得代理能够在受控的范围内更加灵活地开展工作,这在安全性和隔离性方面提供了更强大的保障。
编码助手的“阿喀琉斯之踵”:上下文的困境
所有的大型语言模型都有一个“短期记忆”的限制,我们可以称之为“上下文”(context)。这就像人的工作记忆一样,它能处理的数据量是有限的,一旦超过这个限制,模型就会“忘记”之前正在做的事情。
每当我们向监督型代理提交一个响应时,实际上都是在修改一个庞大的“超级提示”。这个提示包含了之前所有的对话历史,所有已生成的代码,以及模型为了“思考”问题而生成的模拟推理标记。随后,AI模型会根据这个巨大的提示来生成输出。这是一个计算成本极其高昂的过程,因为LLM在处理提示时,需要将每一个“标记”(token,即数据的最小单元)与提示中的所有其他标记进行对比。这意味着,随着提示大小的增加,计算成本会呈二次方增长。
Anthropic的工程团队将上下文比作一种有限的资源,其收益是递减的。多项研究已经揭示了所谓的“上下文腐蚀”(context rot)现象:随着上下文窗口中标记数量的增加,模型准确回忆信息的能力反而会下降。每一个新增加的标记都在消耗模型的“注意力预算”。这个上下文限制自然而然地约束了LLM一次能够处理的代码库大小。如果我们向AI模型输入大量巨大的代码文件(而且这些文件每次发送响应时都需要LLM重新评估),它会迅速耗尽标记使用量或计算资源限制,导致成本飙升。新媒网跨境了解到,这对于追求成本效益的企业来说,是一个需要认真考量的因素。
智能“魔术”:规避限制的巧妙策略
为了克服这些固有的限制,AI编码助手的开发者们采取了多种巧妙的策略。
首先是“任务外包”。AI模型被精细地训练,能够将某些活动“外包”给其他软件工具。例如,它们可能会编写Python脚本来从图像或文件中提取数据,而不是将整个文件都通过LLM处理。这样做不仅节省了宝贵的标记资源,还能避免因LLM直接处理复杂文件而导致的错误。Anthropic的文档指出,Claude Code也采用了这种方法来对大型数据库进行复杂的数据分析:它会编写有针对性的查询语句,并利用Bash命令,如head(查看文件开头)和tail(查看文件结尾),来分析大量数据,而无需将整个数据对象加载到LLM的上下文之中。从某种程度上看,这些AI助手更像是半自主的工具使用程序,它们在智能引导下完成任务,这无疑是2023年初我们首次看到的AI概念的重大扩展。
另一个关键突破是“动态上下文管理”。尽管专有编码模型的具体实现细节并未完全公开,但我们知道其中最重要的一项技术就是“上下文压缩”。当一个编码LLM接近其上下文限制时,这项技术会通过对历史上下文进行摘要式压缩。虽然在这个过程中会丢失一些细节,但它能将历史记录浓缩为关键信息。Anthropic的文档将这种“压缩”描述为以高保真方式提炼上下文内容,保留架构决策、未解决的错误等关键细节,同时丢弃冗余的工具输出。这意味着AI编码助手在每次压缩发生时都会“忘记”大部分正在做的事情,但与旧的基于LLM的系统不同的是,它们并不会完全对过去发生的事情一无所知。它们可以通过阅读现有代码、文件中留下的书面注释、变更日志等方式,迅速重新定位和调整。
为了更好地辅助这个过程,Anthropic的文档建议使用CLAUDE.md文件来记录常用的bash命令、核心文件、实用函数、代码风格指南以及测试说明。而AGENTS.md,现在已经成为一个多公司通用的标准,是指导代理在上下文刷新之间采取行动的另一个有效方式。这些文件就像外部的备忘录,让代理在处理复杂任务时能够追踪进度,并保留原本可能丢失的关键上下文。
对于需要长时间工作的任务,许多公司都采用了“多代理架构”。根据Anthropic的研究文档,其系统采用了一种“协调者-工作者模式”(orchestrator-worker pattern),其中一个“主代理”负责协调整个过程,并将其任务委派给多个“专业子代理”,这些子代理可以并行操作。当用户提交查询时,主代理会对其进行分析,制定策略,然后生成子代理去同时探索问题的不同方面。这些子代理就像智能过滤器,它们只会将相关信息(而非全部上下文)返回给主代理。然而,这种多代理方法会快速消耗标记。Anthropic的文档指出,代理通常比聊天机器人交互使用约四倍的标记,而多代理系统使用的标记量更是普通聊天交互的约15倍。因此,从经济可行性的角度考虑,这些系统更适合那些价值足够高、能够抵消其高昂成本的任务。新媒网跨境认为,权衡效率与成本,是企业在引入此类先进技术时必须审慎思考的问题。
人类开发者的“智慧指南”:与AI协作的最佳实践
虽然AI编码助手在一些编程圈子里仍然存在争议,但如果你选择将它们应用于项目开发,那么掌握良好的软件开发实践,将是避免未来麻烦的关键。例如,熟练运用版本控制,定期进行增量备份,一次只实现一个功能并进行充分测试后再进行下一步,这些都是作为开发者应有的基本功。
那些所谓的“感觉式编程”(vibe coding),即在不完全理解AI生成代码的情况下就直接使用,对于生产环境而言,无疑是极其危险的。在生产环境中部署未经自己彻底理解和验证的代码,可能会引入安全漏洞,造成难以发现的bug,甚至会开始积累技术债务,随着时间的推移像雪球一样越滚越大,最终难以收拾。
独立AI研究员西蒙·威利森(Simon Willison)最近曾强调,即便开发者使用了编码助手,他们仍然有责任去证明自己的代码是真正有效可行的。他写道:“现在几乎任何人都可以通过LLM生成一个上千行的补丁并提交进行代码审查。但这已经不再有价值了。真正有价值的是那些经过验证、确实能够工作的代码。”这番话深刻揭示了人类在AI时代的角色——从单纯的编码者,转变为更高级的代码架构师、验证者和责任承担者。
事实上,人类的规划能力才是关键。Claude Code的最佳实践文档推荐了一套针对复杂问题的特定工作流程:首先,要求代理阅读相关文件,并明确指示它暂时不要编写任何代码;接着,再要求它制定一个详细的计划。文档警告称,如果缺少了这些研究和规划步骤,Claude的输出往往会直接跳到编写解决方案。在缺乏规划的情况下,LLM有时会为了满足当前目标而寻求快速解决方案,这可能会在项目扩展时导致问题。因此,对模块化程序良好架构的理解,以及对程序未来可扩展性的考量,将有助于指导LLM生成更持久、更健壮的代码。
正如前面提到的,这些代理并非完美无缺,也有些人选择完全不使用它们。新媒网跨境获悉,非营利研究机构METR在2025年7月发布的一项随机对照试验结果显示,经验丰富的开源开发者在使用AI工具时,完成任务的时间反而平均延长了19%,尽管他们自己主观上感觉工作效率更快了。该研究的作者也指出了一些需要注意的限制条件:参与测试的开发者对他们的代码库非常熟悉(平均有五年经验,贡献了1500次提交),代码仓库规模庞大且成熟,而且当时使用的模型(主要是通过Cursor的Claude 3.5和3.7 Sonnet)在发布后已被更强大的版本所取代。因此,更新的模型是否会产生不同的结果,这仍然是一个悬而未决的问题。但这项研究至少提醒我们,AI编码工具并非总能普遍提高效率,特别是对于那些已经非常熟悉自己代码库的开发者而言。
鉴于这些潜在的风险,目前来看,AI编码助手的理想用途可能更侧重于概念验证(POC)演示和内部工具的开发。由于AI模型并没有真正的“主观能动性”(despite being called agents),它们也并非能为错误承担责任的“人”,因此,人类的监督和最终责任是不可替代的。新媒网认为,只有将人类的智慧、经验和责任心与AI的效率、算力相结合,才能最大程度地发挥出AI编码助手的价值,推动软件开发领域迈向更健康、更高效的未来。
新媒网(公号: 新媒网跨境发布),是一个专业的跨境电商、游戏、支付、贸易和广告社区平台,为百万跨境人传递最新的海外淘金精准资讯情报。
本文来源:新媒网 https://nmedialink.com/posts/ai-code-fail-19-pct-efficiency-drop.html


粤公网安备 44011302004783号 











