作为开发人员和工程师,我们见证过各式各样旨在简化软件开发流程的工具。早在学生时代,我们曾用 Scratch 搭建模块化管道,实现 if-this-then-that 逻辑场景。后来,出现了无代码工具,可以帮助想法丰富但技术薄弱的用户开发应用。而如今,语言模型带来了应用开发领域的全新突破,它们能够解读自然语言指令(如“开发一个带 React 前端的 Quarkus 应用,用于显示股票行情”),自动完成项目搭建、代码生成、测试运行等任务。这一趋势称为“氛围编程”,由代理式 AI 驱动。它已融入当代开发环境中,但氛围编程究竟意味着什么?它是否弊大于利?

代码辅助技术的演进

氛围编程是指通过与 AI 提示词交互来生成可用代码的行为,即便使用者不具备独立编程的技术能力也能实现。近年来,代码编辑器领域发生了重大变革。例如,GitHub CoPilot 于 2021 年 10 月推出(甚至早于公共 GPT 风格语言模型服务的发布),并迅速成为广泛采用的自动补全代码工具。例如,当您输入 System.out.print 时,GitHub CoPilot 可能会自动补全为 System.out.println(“Hello World!”);,但即便如此,您仍需掌握一定程度的代码编写基础,才能为 Copilot 提供可补全的上下文。

随着依托 AI 的集成开发环境(IDE)Cursor 的发布,编程的入门门槛得以降低。与此同时,围绕氛围编程的讨论开始在行业内受到广泛关注,OpenAI 创始成员 Andrej Karpathy 等行业领军人物也纷纷参与讨论,并首次提出了“氛围编程”这一术语。

Cursor 以广受欢迎的 Visual Studio Code IDE 为基础而构建,初看之下与许多其他代码编辑器并无显著差异。但正如 Karpathy 所描述的,借助“氛围编程”,您只需用自然语言描述项目的预期成果或对代码的更改需求,然后模型后端便能据此提供建议,或自主进行更改。这或许是代理式 AI 最常见的用例,在这类用例中,模型拥有自主性或能调用工具来拓展自身功能。对于这些 AI 辅助编码工具,这可能包括读取和写入文件、在线访问文档和网页、通过终端运行测试等。 

IDE with additional AI features

然而,实现这一功能的关键在于语言模型的上下文窗口的显著扩展。其单次处理的词元数量已从数百个扩展至数百万个,这使得氛围编程能够将整个代码库用作语言模型的上下文。例如,Llama 2 支持 4,096 个词元的上下文窗口,Llama 3 初版提供了 8,192 个词元的窗口,Llama 4 则原生支持最高达 1,000 万个词元的上下文。对热衷于氛围编程的开发人员和用户而言,上下文窗口越大,其用途就越广泛。

关于尝试氛围编程的重要须知 

并非所有人都是经验丰富的开发人员。然而,我们中的许多人都对技术非常感兴趣,并渴望将创意转化为现实,而不一定执着于语法规则、分号使用这类细致琐碎的细节。正是 Cursor 这类工具,让许多人燃起了打造实用应用的希望。下面我们来看看氛围编程用户的典型使用体验,以便更好地理解它的优势所在、不足之处,以及用户如何利用这种技术来改进自己的工作流。 

我从 Cursor 官网下载了这款工具,该网站提供了适用于 Linux、Mac 和 Windows 系统的预编译安装程序。由于不确定如何上手,我将 Cursor 启动界面的截图上传给 AI 助手以寻求指导。根据助手的指示,我创建了一个文件夹来存储所有项目文件,然后使用 Open project 按钮将其打开。  

 machine over SSH

 

Cursor 的界面与 VS Code 类似,不同之处在于右侧新增了一个聊天窗口。该界面的左侧是工作环境和打开的活动文件,右侧是聊天窗口,这种布局简化了工作流,无需为了与 AI 系统聊天而频繁按 Alt+Tab 在不同窗口间切换。聊天功能已直接集成到代码编辑器中。

dashboard for Cursor

 

红帽鼓励并支持持续学习,无论是学习有关容器、Kubernetes 和 GitOps 的红帽培训与认证课程,还是参与开源项目。受此启发,我决定开发一款能在本地运行的记忆辅助工具,以便自行托管并与他人分享。 

我的第一个提示是:创建一个可以在浏览器中运行的闪卡应用,需要支持卡片翻转与“收藏”功能。

我的请求由基于云的模型处理,随后 Cursor 生成了三个代码文件: 

  • index.html:主页面结构
  • style.css:样式与布局
  • script.js:功能实现 

整个过程中,我几乎无需思考,直接点按 accept 以接受每个文件及其代码建议。 

最终,我获得了一个指向闪卡应用的链接。但遗憾的是,它还无法正常运行。 

我不得不稍微动动脑筋,在聊天窗口里说明遇到的问题。由于 Cursor 和许多现代模型均支持图文混合处理,我附上了屏幕截图,并用自然语言解释了卡滞的位置。经过几轮沟通后,应用终于能正常运行了。 

flashcards application

 

Cursor 生成了一个功能齐全的应用,其中包含可编辑的卡片、流畅的翻页动画、PreviousNext 按钮以及持久存储功能。我打开 index.html 文件,应用便立即运行起来。尽管它并不完美,比如没有后端支持、无法跨设备同步且需更多专业知识才能扩展功能,但考虑到我仅通过一条指令就完成了整个开发过程,仍令人倍感神奇。

如果您从未编写过一行代码,那么仅靠 Cursor 或类似平台将难以开发出功能齐全的应用。缺乏概念性理解的 AI 代码往往脆弱不堪。当您尝试在生产环境中部署代码、管理基础架构或排查问题时,会遇到层出不穷的问题。没有编程基础知识,在现实场景中尝试扩展应用功能、保障应用安全或维护应用性能必将举步维艰。

不过我认为,无论您的经验水平如何,它都值得一试。对于新手来说,这可能会很棘手,因为完成同一任务有多种路径,而且若不熟悉终端基本操作(例如输入密码时无法看到输入内容,或按 Y 键确认操作),很容易陷入困境。我对初学者的建议是,当难以用语言描述卡壳问题时,可将截图直接上传至 Cursor;同时借助其他聊天机器人,解释 Cursor 默认您已掌握的知识,并帮助您明确需要提出的具体问题。这种情况如今已十分普遍,甚至催生了一个专门术语来描述向 AI 提出需求的技巧:提示词工程,即掌握如何有效地构思向模型提出的问题或请求,以获得期望的结果。 

氛围编程的现实状况

AI 编程工具和氛围编程技术将持续推动编程的普及化。与学习任何其他技能、从事任何行业或职业一样,试错过程有着极高的价值。许多开发人员都清楚地记得调试场景,比如处理 Python 或 Java 版本冲突、SDK 配置问题,或是步骤执行中的差错。生成代码是一回事,但生成优质代码又是另一回事。由于当前语言模型的训练方式限制,其数据集中可能包含不准确的响应、不良代码或过时代码,而普通用户无法自行重新训练模型

解决这一问题的关键在于自我投资。红帽不仅提供 AI 领域的实训,还提供 Linux 和 Kubernetes 等基础技术培训。在 AI 领域,氛围编程有着广阔的发展前景,而通过传统编程来增强 AI 能力也是一大趋势。这好比“橡皮鸭调试法”,这是开发人员常用的一种技巧,即通过向橡皮鸭口头阐述问题或思路,迫使大脑以客观视角分析问题。而如今的不同之处在于,AI 这位“橡皮鸭”能与您实时对话、给出反馈!

产品试用

红帽企业 Linux AI | 产品试用

一个基础模型平台,可用于开发、训练、测试和运行适用于企业级应用的 Granite 系列大语言模型(LLM)。

关于作者

Legare Kerrison is a Technical Marketing Manager and Developer Advocate working on Red Hat's Artificial Intelligence offerings. She is passionate about open source AI and making technical knowledge accessible to all. She is based out of Boston, MA.

Cedric Clyburn (@cedricclyburn), Senior Developer Advocate at Red Hat, is an enthusiastic software technologist with a background in Kubernetes, DevOps, and container tools. He has experience speaking and organizing conferences including DevNexus, WeAreDevelopers, The Linux Foundation, KCD NYC, and more. Cedric loves all things open-source, and works to make developer's lives easier! Based out of New York.

UI_Icon-Red_Hat-Close-A-Black-RGB

按频道浏览

automation icon

自动化

有关技术、团队和环境 IT 自动化的最新信息

AI icon

人工智能

平台更新使客户可以在任何地方运行人工智能工作负载

open hybrid cloud icon

开放混合云

了解我们如何利用混合云构建更灵活的未来

security icon

安全防护

有关我们如何跨环境和技术减少风险的最新信息

edge icon

边缘计算

简化边缘运维的平台更新

Infrastructure icon

基础架构

全球领先企业 Linux 平台的最新动态

application development icon

应用领域

我们针对最严峻的应用挑战的解决方案

Virtualization icon

虚拟化

适用于您的本地或跨云工作负载的企业虚拟化的未来