如今,越来越多的代码是由人工智能编写的。据谷歌首席执行官桑达尔·皮查伊称,截至2024年底,谷歌超过25%的代码是由人工智能编写的。 Robinhood的首席执行官表示,该公司目前发布的大部分代码都是由人工智能编写的。 "氛围编程"(由安德烈·卡帕西在推文中推广)这一术语已进入公众词汇:指完全沉浸于编程的"氛围"中,让人工智能接管并为你编写代码。
Cursor、Lovable 和 Replit 等初创公司正致力于消除编程的入门门槛:这意味着入门编程变得如此简单,以至于公司里的任何人都能编写代码,甚至在完全不懂 Python 或 React 的情况下,也能制作出功能齐全的网站或应用程序。
2025年StackOverflow开发者调查揭示了这一趋势已变得多么普遍。84%的开发者正在或计划在开发工作流中使用AI工具,其中51%的专业开发者每天都在使用AI工具。这标志着整个行业在代码编写方式上发生了重大转变。
然而,这项调查也揭示了在这个人工智能辅助开发时代所面临的成长阵痛。尽管52%的开发者表示人工智能工具对他们的生产力产生了积极影响,但对人工智能工具的积极态度已从70%以上降至2025年的60%。在经历了与这些人工智能生成工具初期的探索性“蜜月期”后,开发者如今似乎对它们的态度更加中立。
这种挫败感的来源颇具深意:66% 的开发者对“几乎正确但又差一点”的 AI 解决方案感到沮丧,45%的开发者认为调试 AI 生成的代码比预期的更耗时。仅有 3% 的开发者“高度信任”AI 工具的输出结果,而 46% 的开发者则对 AI 工具的准确性持怀疑态度。
这形成了一个有趣的悖论:开发者越来越依赖人工智能编写代码,却并不完全信任其生成的结果。正如调查所指出的,75%的开发者当“不信任人工智能的答案”时,仍会向人类寻求帮助,从而将自己定位为“质量与正确性的最终裁决者”。西蒙·威利森表示,除非亲自审查过每一行代码,否则“他不会在计划发布的项目中使用AI生成的代码。这不仅存在‘幻觉’的风险,而且聊天机器人为了讨好用户,可能会将不可行的方案说成可行。这对我们这些不懂如何修改代码的人来说是个特别的问题。我们可能会因此开发出存在内在缺陷的软件。”
尽管人工智能生成的代码已成为常态,但在某些情况下,确认代码是否由人类编写仍然很有必要。
在招聘过程中,招聘软件开发人员时,必须评估该程序员是否具备在无需人工智能辅助的情况下编写高质量代码的能力。此外,还需评估其对代码的理解程度,以确保其能够在工作中成功调试和诊断由人工智能生成或辅助生成的存在缺陷的代码。
在教育领域,教导学生如何在不依赖人工智能辅助的情况下进行编程至关重要。 如果过度依赖人工智能辅助,学生可能会忽略基础概念,从而跳过学习成为优秀软件工程师所必需的技能。尽管正如 StackOverflow 开发者调查所暗示的那样,这些学生在工作中很可能接触到人工智能辅助,但如果没有扎实的基础,他们将无法修正人工智能生成的错误代码,甚至无法理解问题出在哪里。
合规与安全。许多合规框架认为,由于可能出现“幻觉”和漏洞,AI生成的代码风险更高。此外,还存在重要的许可和版权问题——AI模型可能会无意中复制了许可条款不兼容的代码,从而导致合规违规。另外,关于AI生成的代码是否可被视为专有或受版权保护,目前仍存在争议。
代码溯源与追踪。在人工智能出现之前,借助 git blame 等工具,我们可以轻松追踪每行代码的作者以及修改原因。随着人工智能生成海量代码,开发人员越来越难以记住每行代码背后的上下文和逻辑依据。 能够检测和追踪AI生成的代码,有助于代码维护、调试和资源管理。CTO和工程负责人可以利用这些信息评估不同AI模型的有效性,并确保团队使用的是最合适的工具。
总体而言,Pangram 能够以保守的方式检测出大部分由 AI 生成的代码,尤其是当代码长度超过 40 行时。Pangram 的检测方式较为保守,因为它很少将人工编写的代码误判为 AI 生成的代码,但会漏检约 8% 的 AI 生成的代码,将其错误地判定为人工编写。
在分析所有代码片段时,Pangram 会遗漏约 20% 的 AI 生成的代码,因为大多数短小的 AI 代码片段要么是难以与人类编写的代码区分的模板代码,要么就是信号不足而无法被检测到。
| 公制 | 得分 |
|---|---|
| 准确性 | 96.2%(22,128/22,997) |
| 假阳性率 | 0.3%(39/13,178) |
| 假阴性率 | 8.5% (830/9,819) |
| 公制 | 得分 |
|---|---|
| 准确性 | 89.4%(41,395/46,319) |
| 假阳性率 | 0.4%(99/25,652) |
| 假阴性率 | 23.3%(4,825/20,667) |
我们使用 GitHub 数据集来进行此项分析。对于 AI 代码,我们采用一个简单的两阶段合成镜像阶段:
我们使用 GPT-4o、Claude Sonnet、Llama 405b、Mistral 7B、Gemini 1.5 Flash 和 Gemini 1.5 Pro 来构建数据集。
与AI生成的文本相比,AI生成的代码更难被识别,因为其自由度要低得多:与作家相比,程序员在编写代码时可自由选择的风格要素要少得多。 我们在观察到的误判案例中发现,许多文件本身就缺乏创造性或灵活性,例如自动生成的模板代码或配置文件。C语言、汇编语言以及编译器代码等低级语言在语法上也更为严格,因此能用来判断代码是否由AI生成的特征信号更少。
如果您想识别由人工智能生成的代码,我们建议您采取以下措施:

布拉德利是一位人工智能研究员,也是工业领域深度学习产品开发的专家。他最近曾领导生成式人工智能药物发现公司Absci的深度学习研究团队,此前曾是特斯拉Autopilot核心计算机视觉团队的成员。
在攻读研究生期间,布拉德利曾与斯坦福视觉实验室合作,在深度学习研究领域发表了多篇论文。他拥有斯坦福大学物理学学士学位和人工智能硕士学位。除了人工智能,他还对教育和哲学充满热情,并且是一名狂热的高尔夫球手。