LLM结对编程能提升代码质量,还是仅仅提高编码速度?

LLM结对编程能提升速度,但可能降低代码质量,尤其在安全性方面。证据表明,其效果因任务类型和用户技能水平而异。

直接答案

LLM结对编程在某些情境下能提升代码质量,但往往为了速度而牺牲安全性和正确性。例如,一项研究发现,使用AI助手的用户编写的代码安全性显著低于未使用的用户[4],而另一款采用双LLM协作的工具对Python质量问题的修复率达到59.2%[1]。其效果高度取决于用户技能、具体任务以及LLM的使用方式——并非简单的“是”或“否”所能概括。

5篇文献引用

本文由 WisPaper 驱动的搜索和论文分析生成。

LLM 结对编程会让代码更不安全吗?

是的,至少在一项重要研究中确实如此。2023年的一项用户研究发现,使用AI代码助手的参与者编写的代码安全性显著低于未使用的参与者[4]。更令人担忧的是,使用助手的参与者更倾向于相信自己的代码是安全的,这表明该工具会让人对有缺陷的代码过度自信[4]。这是一个关键的限制条件:如果你的首要任务是安全性,那么LLM助手可能会主动削弱它。

然而,同一项研究也指出,AI助手提升了编码速度[4]。因此,这种权衡确实存在:你或许能更快完成任务,但会引入更多安全漏洞。这一发现对从事安全敏感型应用开发的开发者尤为重要。

LLM 真的能修复代码质量问题吗?

是的,但只有在精心设计的情况下才能实现。CORE工具采用了一对大型语言模型(一个负责提出修复方案,另一个负责排序),成功修改了59.2%的Python文件,使其同时通过静态分析和人工审查[1]。这是一个显著成果,但需要双LLM架构和排序步骤来过滤掉引入意外修改的修订——排序器将误报率降低了25.8%[1]

这表明,如果只是简单直接地使用单个大语言模型,可能无法可靠地提升代码质量。而CORE方法则表明,通过恰当的框架设计,大语言模型能够达到甚至超越基于规则的自动修复工具(在Java文件上修复率分别为76.8%和78.3%),且所需工程工作量大幅减少[1]。因此,答案取决于你如何部署大语言模型——单独的聊天机器人,与结构化的多智能体系统,效果截然不同。

用户的技能水平重要吗?

当然。2023年一项关于人类结对编程的研究发现,不同的协作模式对快节奏与慢节奏学生的影响存在差异[2]。例如,“引导式”和“探究式”模式能显著提升慢节奏学生的编程表现,但对快节奏学生效果不明显[2]。这表明,无论是人类还是大语言模型参与的结对编程,其益处都取决于个体差异。

一项2025年关于大语言模型结对编程的研究发现,人类往往成为“意图的协调者”,而大语言模型则在执行者与创意协作者等角色间切换[5]。这意味着输出质量很大程度上取决于人类编写优质提示词和引导交互的能力。如果你是新手,可能比能有效引导大语言模型的专家获得更差的结果。

关于这些来源

该回答基于5篇经同行评审的研究构建而成——发表于2023年至2026年间,其中3篇为2024年及以后发表,1篇发表于Q1期刊,总被引次数达181次——这些研究是从5篇通过质量筛选的文献中选出的最具相关性的成果,而该5篇文献又源自一个包含超过5亿篇论文的数据库中所检索到的39篇论文。

本文引用的文献

1

CORE:利用大语言模型解决代码质量问题

CORE工具利用一对大语言模型(提议者与排序器),对59.2%的Python文件进行了修订,使其同时通过静态分析和人工审查,并通过排序器将误报率降低了25.8%。在Java文件上,该工具实现了76.8%的修复率,与专用程序修复工具(78.3%)相当,但工程投入大幅减少。

2

结对编程中的协作对话模式及其对编程自我效能感与编码表现的影响

在一项针对46名研究生结对编程的研究中,出现了四种对话模式。“引导”和“探究”模式显著提升了节奏较慢学生的编程表现,但对节奏较快的学生效果不明显,这表明结对编程的益处取决于学习者的节奏。

3

从“有帮助”到“可信赖”:面向结对编程的LLM智能体

本博士研究提出对多智能体大语言模型结对编程进行系统性研究,通过外化意图并利用自动化反馈进行验证,旨在提升大语言模型输出的可信度与可审计性。目前尚未报告实证结果。

4

用户在使用AI助手时会编写更多不安全的代码吗?

在一项用户研究中,能够使用AI代码助手的参与者编写的代码安全性显著低于未使用该工具的参与者,并且他们更倾向于认为自己的代码是安全的,这显示出过度自信。这是这些论文中被引用次数最多的一篇(137次引用)。

5

开发者与大语言模型的结对编程:关于角色动态与基于提示的协作的实证研究

一项关于开发者与大型语言模型协作的实证研究发现,双方角色具有动态性:人类充当协调者,而大语言模型则在执行者、解释者和创意协作者之间灵活切换。提示词设计逐渐成为实现高效协作的关键技能。