什么是氛围编码?

“氛围编码”是一种应用开发方法,它高度依赖大型语言模型 (LLM) 来生成代码。

学习目标

阅读本文后,您将能够:

  • 描述氛围编码的含义
  • 了解 LLM 如何支持应用开发
  • 列举氛围编码的优点和缺点

复制文章链接

什么是氛围编码?

氛围编码是一种大量使用大型语言模型 (LLM) 来生成代码的软件开发方法。“氛围编码”这个术语的意思是 AI 辅助编码,它由 OpenAI 联合创始人 Andrej Karpathy 于 2025 年 2 月在 X 社交平台上的一篇帖子中提出:

我把一种新的编码方式称为“氛围编码”,也就是说,让人完全沉浸于氛围,拥抱指数级增长,甚至忘记代码的存在。这可能是因为 LLM(例如Cursor Composer w sonnet)正变得越来越强大...代码越来越长,超出了我通常的理解能力范围,我不得不花一段时间仔细阅读。有时,LLM 无法修复某个错误,我就需要设法解决或要求随机更改,直到它消失为止……对于一次性的周末项目来说,这还不算太糟糕,但仍然相当有趣。

尽管 Karpathy 定义了这个术语,但随着 ChatGPT 和 Copilot 等 LLM 的公开发布,许多开发人员已经开始尝试类似的 AI 辅助方法。

氛围编码的目标是更快速地启动可运行的应用和新功能。过去,编码是一项非常精确的活动;而氛围编码则让开发人员能够向 LLM 提供通用的高级指令,然后 LLM 生成精确指令,包含在可运行的代码中。

氛围编码的工作原理是什么?

与 LLM 的其他用例类似,氛围编码需要向模型提供提示词,然后模型做出响应并生成内容(在本例中,是生成代码)。LLM 是生成式 AI 模型:经过海量示例训练后,它们能够识别、解读并生成语言。LLM 能够使用日常人类语言和编程语言做到这一点。这种能力让 LLM 能够在几秒钟内生成可用的代码。

氛围编码开发人员必须向 LLM 提供正确的提示词,以便 LLM 创建正确的功能或应用。通常,这些提示不必特别精确,尽管 LLM 可能需要多次尝试才能生成符合开发人员预期的代码。

LLM 生成代码后,进行测试和调试。这涉及识别错误和安全问题。然后,可以提示 LLM 解决这些错误,或者如 Karpathy 所述,“设法解决或要求随机更改,直到它消失为止”(这种方法可能有效,也可能无效,具体取决于错误类型)。

有哪些热门的氛围编码工具?

许多广泛使用的 LLM 均可供开发人员尝试用于氛围编码。Copilot、Cursor、Codeium、Qodo、CodeWhisperer 和 Replit 都是 LLM 辅助软件开发的热门工具。

氛围编码有哪些优缺点?

氛围编码的优点包括:

  • 近乎即时的原型设计:开发团队可以使用氛围编码,快速构建新产品或功能创意的测试版本并试用。
  • 减少不必要的手动操作:在氛围编码中,LLM 可以自动生成样板文件和低级代码(复制样板代码在开发中一直是一种很常见的做法)。
  • 加快开发和发布速度:编写新的应用或功能可能很耗时,但氛围编码可以在几秒钟或几分钟内生成必要的代码,尽管可能需要进一步的提示词才能使特定的应用或功能正常运行。

一些缺点可能包括:

  • 失去对代码库的理解:开发团队如果在经过极少的审核情况下发布了使用氛围编码创建的功能,则可能会对代码库不熟悉。这会导致更加难以修复错误或漏洞。
  • 合规挑战:有时,氛围编码生成的结果是不受信任的代码。例如,开发人员可能无法追踪应用如何处理个人数据,进而可能导致合规问题。

氛围编码是否存在安全隐患?

漏洞:任何应用都可能存在漏洞或安全风险。由于氛围编码可以显著加快编写和发布新功能的速度,因此,存在的风险是可能产生更多安全问题,并逃脱检查进入生产阶段。此外,如果开发团队不熟悉问题代码,则可能更加难以解决这些安全问题。

数据丢失:在业务环境中使用任何 LLM 都会带来风险,即:输入可能包含将在外部环境中共享的知识产权信息。为了保护内部数据,开发人员需要了解 LLM 如何在后端对其数据进行分段。

进一步了解 LLM 的工作原理