OpenAI最新的创新成果 Codex AI 代理,采用了一种新颖的编码方法 —— 一种由类似 ChatGPT 的界面驱动的 “vibe-coding” 环境。虽然这个概念起初可能看起来有些花哨,但新的 Codex 代理的功能却令人印象深刻。
OpenAI 已将 Codex 标记为研究预览版,表明它仍在积极开发中。目前,ChatGPT Pro、Enterprise 和 Team 级别的订阅者可以访问它,并计划在不久的将来将其可用性扩展到 Plus 和 Edu 用户。
根据 OpenAI 的公告,Codex 这个名称自 2021 年以来一直与不断发展的编码工具相关联。在本文的讨论中,“Codex” 指的是新宣布的版本。
Codex 驻留在 OpenAI 的服务器上,并与 GitHub 存储库集成。演示表明,Codex 充当团队中的另一位程序员。
可以指示它解决一系列错误并相应地执行任务。它还会寻求代码修改的批准,尽管它似乎有能力自主修改代码。
Codex 可以分析和修改代码,识别特定问题,查明需要改进的领域,并执行其他编码和维护任务。每个任务都会启动一个新的虚拟环境,使 AI 能够处理从概念和设计到单元测试的所有事情。
编码范式的转变
这标志着编码范式发生了真正的转变。早期的 AI 编码辅助主要涉及自动完成功能,根据现有代码自动生成行或代码块。
该技术已发展到 AI 可以编写或调试小段代码的程度。这正是我一直特别感兴趣的 ZDNET 编程测试的方面。
AI 的另一个作用是分析整个系统。最近,我探索了一种新的 Deep Research 工具,它可以解构整个代码库并提供代码审查和建议。
Codex 现在达到了可以将整个编程任务委托给云中的 AI 的程度,类似于将任务委派给团队中的其他程序员或学习代码维护的初级程序员。
OpenAI 将此描述为“Agent-native 软件开发,其中 AI 不仅在您工作时为您提供帮助,而且可以独立承担工作。”
发布视频演示了 Codex 同时管理多个任务的能力,每个任务都在一个单独的、隔离的虚拟环境中运行。
程序员将任务分配给代理,然后代理独立执行工作。完成后,代理提供测试结果并建议代码更改。
演示展示了 Codex 执行错误修复、扫描错别字、提供任务建议以及执行项目范围的重构(修改代码以改进结构而不更改行为)。
高级开发人员和设计师熟悉表达需求和审查他人的工作。使用 Codex 不会给他们带来重大变化。但是,缺乏强大的需求表达和审查技能的开发人员可能会发现管理 Codex 具有一定的挑战性。
尽管如此,如果该工具像演示的那样执行,Codex 将使小型团队和个人开发人员能够完成更多工作,减少重复性任务,并更有效地响应问题报告。
潜在的陷阱和缓解策略
早期使用 ChatGPT 的编码功能的经验表明,它倾向于失去焦点或偏离预期的方向。虽然这对于单个代码块来说并不是灾难性的,但如果允许编码代理在有限的监督下运行,可能会导致意想不到的和成问题的后果。
为了解决这个问题,OpenAI 训练 Codex 遵守 AGENTS.md 文件中概述的说明。该文件位于存储库中,使程序员和团队能够指导 Codex 的行为。它可以包括有关命名约定、格式规则以及整个编码过程中所需的任何其他一致性指南的说明。它本质上将 ChatGPT 的个性化设置扩展到以存储库为中心的团队环境。
此外,OpenAI 还引入了一个名为 Codex CLI 的 Codex 版本,该版本在开发人员的计算机上本地运行。与基于云的 Codex 异步运行并在完成后提供报告不同,本地版本通过程序员的命令行运行并同步运行。
从本质上讲,程序员输入一条指令并等待 Codex CLI 进程返回结果。这使程序员能够离线工作,从而利用其活动开发机器的本地环境。
具有广阔前景的研究原型
演示令人印象深刻,但开发人员强调,他们所展示和发布的是一个研究原型。虽然它提供了他们所谓的“神奇时刻”,但它仍然需要大量的开发。
我一直在尝试了解这项技术对开发的未来和我自己的开发过程的具体影响。我的主要产品是一个开源 WordPress 插件,带有专有的附加插件。Codex 可能会分析开源核心插件的公共存储库。
但是,Codex 是否可以作为一个整体项目的一部分来管理公共存储库和多个私有存储库之间的关系?当测试不仅涉及我的代码,还涉及启动整个附加生态系统(WordPress)来评估性能时,它的表现如何?
作为一名独立程序员,我认识到像 Codex 这样的工具的潜在好处。即使每月 200 美元的 Pro 订阅也可能是值得的。雇用一名人类程序员的成本要高得多,前提是我能从中获得有形的、可货币化的价值。
作为一名经验丰富的团队经理和沟通者,我觉得可以将任务委派给像 Codex 这样的东西。它与通过 Slack 与团队成员沟通没有显着差异。
与简单地允许 Codex 在我的代码中自由操作相比,Codex 提供建议、起草版本并等待我的批准这一事实提供了一种安全感。这为新的开发生命周期开辟了有趣的可能性,即人类定义目标,AI 起草潜在的实现方式,然后人类要么批准,要么将 AI 重定向以进行另一次迭代。
未解答的问题和未来影响
根据我以前使用 AI 进行编码的经验,Codex 可能会减少维护时间并加快向用户交付修复程序的速度。但是,它根据规范文档添加新功能的有效性仍不清楚。同样,在 Codex 实施后修改功能和性能的难度还有待确定。
值得注意的是,AI 编码正在多家公司以相似的速度发展。我很快将发表另一篇关于 GitHub Copilot 的 Coding Agent 的文章,它与 Codex 具有一些相同的功能。
在那篇文章中,我表达了对这些编码代理可能会取代初级和入门级程序员的担忧。除了对人类工作的影响之外,如果我们将开发人员职业生涯的中间阶段委托给 AI,还存在可能失去的关键培训机会的问题。
软件行业的“驶入未知”
迪士尼的《冰雪奇缘 2》中有一首歌叫做“驶入未知”,由伊迪娜·门泽尔演唱。 这首歌反映了主角在维持现状和冒险“进入未知”之间的内心冲突。
借助代理软件开发,而不仅仅是 AI 编码,整个软件行业都在踏上“进入未知”的旅程。 随着我们越来越依赖基于 AI 的系统来开发我们的软件,熟练维护人员的数量可能会减少。 只要 AI 继续有效运行并保持可访问性,这是可以接受的。 但是,我们是否允许基本技能萎缩,并为了委派给一个尚未具有意识的、基于云的基础设施的便利性而牺牲高薪工作岗位?
时间会揭示答案,希望这种揭示不会发生在我们没有时间的时候。
您会考虑将真正的开发任务委派给像这样的工具吗? 您认为长期影响将是什么对软件团队或个人开发人员?您是否担心随着代码生命周期的更多部分委托给 AI,会失去关键的技能或角色?