第 10 章 自主背景编码代理 自主背景编码代理
本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com
作为人工智能编码工具的下一个发展阶段,自主后台编码代理正在迅速崛起。 与我们熟悉的 "副驾驶 "助手(在你输入代码时向你推荐代码)不同,这些代理的操作更像是后台初级开发人员,你可以派遣他们异步处理整个任务。代码会在一个为代理运行的隔离环境中生成,测试可以运行,结果通常会以完整的拉取请求形式返回,供您审查。
在本节中,我将探讨什么是后台编码代理、它们如何工作、当前的工具(OpenAI Codex、Google Jules、Cursor、Devin 等),以及它们与传统IDE助手的比较。我还将研究它们的能力、局限性,以及它们对软件工程未来的实际影响。
从副驾驶到自主代理:什么是后台编码代理?
传统的人工智能编码助手(如 Cursor、GitHub Copilot 或 VSCode 扩展(如 Cline))是受监督的编码代理--交互式助手,可对开发人员的提示或内联上下文做出响应。它们本质上是类固醇自动完成工具,能在聊天或写作时生成建议,但每一步都由人类开发人员主导。
相比之下,自主后台编码代理的独立性要强得多。你可以给他们一个高级任务或目标,然后 "派他们去",让他们自己解决问题,而不需要持续的监督。这些代理将读取并修改你的代码库,制定计划,执行代码(甚至运行测试或命令),并产生结果(通常是提交或拉取请求)--所有这一切都在异步工作流中进行。
想想副驾驶员和自动驾驶员的区别:副驾驶员(就像 GitHub 副驾驶员)总是在驾驶舱里,等待你的输入;而自动驾驶员(后台代理)可以暂时独立驾驶飞机。这种自主性意味着,当你专注于其他方面时,后台代理可以处理多步骤编码任务。 使用像 Codex 和Jules 这样的异步代理,,就像扩大了你的认知带宽:你可以向人工智能发送任务,然后在任务完成前忘掉它。与人工智能之间不再是单线程的来来回回,你突然拥有了一个多线程的工作流程:代理与你并行工作,就像一个在后台工作的称职的初级开发人员。
最重要的是,后台代理在隔离的开发环境(通常是 Cloud 虚拟机或容器)中运行,而不是直接在你的编辑器中运行。它们通常会将你的版本库克隆到沙箱中,安装依赖项,并提供构建和测试项目所需的工具。为了安全起见,这些沙箱是受限制的(有 "除非明确允许,否则不得访问互联网 "等规则),而且是短暂的。代理可以运行编译器、测试、衬砌器等,而不会对本地机器造成任何风险。任务完成后,代理会输出代码变更(差异)和工作总结。通常会以拉取请求(包含代码差异、提交信息,有时还有解释)的形式提交,然后你就可以对其进行审查和合并。
总而言之,后台编码代理是一个人工智能驱动的自主编码器,它能理解你的意图,在沙盒环境中通过读写代码和测试完成整个任务,然后将结果提交给你审核。它不仅能提出一两行建议,还能处理更大范围的任务:
-
在代码库中编写新功能 X。
-
重构模块 Y 以提高效率。
-
升级此项目的依赖关系。
这是我们将人工智能融入开发工作流程的一个重大转变,从辅助性建议转变为委托实际执行工作。
自主编码代理如何工作?
在引擎盖下,大多数后台代理都遵循类似的运行模式:计划、执行、验证和报告。让我们来了解一下这些步骤及其功能。
计划
当你向代理下达任务时(通常是通过提示或命令描述你想要什么),代理首先会解析请求并制定攻击计划。 有些代理会在执行任务前明确向你展示该计划。例如,谷歌的朱尔斯(Jules) ...