图片来源:豆包AI
导读:AI 驱动的编码代理如今终成现实,且已经投入实际使用。尽管仍有这样那样一些缺陷,但它仍然在迅速流行。本文便是一些最有前景的AI代理之介绍。
一年前,几乎没有人听说过编码代理(AI Agent),即使听说过,也是在尚未发挥作用的技术背景下。
而2025这一年的变化真大啊。
现如今,编码代理无处不在,触及软件开发生命周期的方方面面。目前的编码代理产品包括 Amazon Q Developer、Cline、Cursor、Devstral、GitHub Copilot、Google Jules、Lovable、OpenAI Codex、Solver、Sourcegraph Amp、Windsurf Cascade 和 Zencoder。
在本篇文章中,我们将调查当今的编码代理可以做什么,并简要介绍每种产品。
AI代理具有推理能力,通常通过AI大语言模型实现。它们需要访问其他程序,并通过连接器实现。它们亦受益于短期和长期记忆存储。使用多个AI代理需要协义,将所有这些结合起来意味着需要实现一个运行时层。
是的,允许这些不同的组件交互需要协议。目前,MCP(模型上下文协议)正在逐渐成为主流。
MCP 是由 Anthropic提出的一项开放标准,它为 AI 模型提供了一种访问外部数据和工具(例如浏览器或任何具有 API 的应用程序)的通用方式。
另一个重要的开放协议是 Google 的 Agent2Agent ( A2A ) 协议,该协议允许代理与其他代理连接并进行团队协作。
IBM 的代理通信协议 ( ACP ) 是另一个用于代理互操作性的开放标准。它定义了一个支持同步、异步和流式交互的 RESTful API,并在BeeAI中实现了它。
除了模型和协议之外,代理还需要一定权限才能对其他程序和资源采取行动。最后,代理需要数据来实现多种目的。
如上所述,除了代码训练之外,对编码代理还有一些特殊考虑。他们需要能够使用软件存储库,了解整个项目,理解内部风格,编写单元测试(以及其他十几种可选的测试),找到合适的位置添加新代码,运行代码,测试代码,调试代码,根据测试修改代码,编写提交消息,签入工作代码,生成拉取请求等等。
一个更重要的是,编码代理需要人类批准或不批准对代码库提出的更改。
2024年的秋天,Amazon Q Developer支持两个代理:一个用于生成代码 (/dev),一个用于将旧 Java 项目转换为更新的 Java 版本的 (/transform)。2024 年 12 月,亚马逊又增加了三个代理:一个用于在代码库中生成文档 (/doc),一个用于执行代码审查以检测和解决安全性和代码质量问题 (/review),以及一个用于自动生成单元测试并提高测试覆盖率 (/test)。
Amazon Q Developer 可以为提示语提供五种上下文:工作区、文件夹、文件、选定代码和已保存提示。无论是否启用代理编码,都可以使用这些上下文。
Amazon Q Developer 目前提供五种代理:/dev、/test、/review、/doc 和 /transform。
Cline 支持几十家 AI 供应商,只要你能提供 API 密钥即可,但它目前与 Anthropic Claude 配合使用效果最佳。与大多数 VS Code AI 插件不同,Cline 不会监视你的 VS Code 编辑会话并尝试完成代码。相反地,你可以在聊天窗口中引导它,为其分配任务并响应澄清并许可请求。
Cline 可以生成完整的项目并代表你执行操作。这里它创建了一个新的项目文件夹,并生成了一个简单网页。
Cursor 的代理模式可以实现端到端地完成任务。使用自定义检索模型,Cursor 可以理解代码库。默认情况下,它可以自动编写和运行终端命令,前提是需要你的明确批准。Cursor 可以自动检测 Lint 错误并应用修复。代理模式可以运行你已安装的任何 MCP 模型。
后台代理是异步代理,可以在远程环境中编辑和运行你的代码。你可以随时查看其状态、发送后续操作或接管。后台代理和隐私模式是互斥的,在隐私模式下,你的任何代码都不会被 Cursor 或任何第三方存储。
最大模式可通过模型选择器中的开关启用,允许模型使用更大的上下文窗口,进行更多无需确认的工具调用,并能够从文件中读取多行。
Cursor 的代理模式可以理解代码库、编写和运行终端命令、检测和修复 lint 错误以及运行你安装的任何 MCP 模型。
据 Devstral 称它足够轻量,可以在一台 Nvidia GeForce RTX 4090 显卡或配备 32GB 内存的 Mac 上运行。事实上,我在一台配备 24GB 内存的 Mac 上使用 Ollama 运行它,速度也算可以接受。
我在本地测试了 Devstral,题目是“编写一个 C++ 程序,将圆周率计算到 20 位小数”。Devstral 的第一个程序使用了高斯-勒让德算法,这个算法还不错,但计算时使用的是 C++ double 类型。我指出:“难道不需要使用多精度浮点计算才能达到 20 位精度吗?” Devstral 说:“你说得对。标准 C++ double 类型通常提供大约 15-17 位小数的精度,因此要将圆周率精确到 20 位小数,需要一个支持任意精度运算的库。”
然后,Devstral 使用 GMP(GNU 多精度运算库)生成了一个程序。这应该可以运行,但至少可以说支持的位数很长。我提示它:“MPFR 不是可以让代码更简单吗?” 它同意了,但坚持使用高斯-勒让德算法,这又有点冗长。我又提示它:“为什么不使用 mpfr_const_pi?” 它接受了这个提示,最终生成了我自己可能编写的代码。
我很想知道 Devstral 是否知道MPFR在幕后做了什么:“mpfr_const_pi 使用什么算法?” 它没有查看 C++ 代码或文档,而是给了我一个 BS 答案,包括“一种常用的高精度计算 Pi 的算法是 **Chudnovsky 算法**”。 的确如此,但 MPFR 实际上使用的是 Brent-Salamin 公式,如MPFR 算法中所述。 在允许网络搜索的环境中运行 Devstral 可能会让它表现得更好。
GitHub Copilot 编码代理于2025 年 5 月发布,并在微软的“Microsoft Build” 大会上进行演示。
当你将 GitHub 问题分配给 Copilot 或在 VS Code 中提示它时,编码代理便会开始工作。该代理会启动一个由GitHub Actions支持的开发环境。从那里,它会将提交推送到草稿拉取请求,你可以通过代理会话日志进行跟踪。在运行任何CI/CD工作流之前,代理的拉取请求都需要人工批准。Copilot 完成后,它会标记你以供审核,你可以留下评论,要求它进行修改。
GitHub Copilot 还提供了一个代码审查代理,它有两种模式。你可以突出显示选定的代码并要求“初步审查”,也可以请求对拉取请求中的所有更改进行“深入审查”。代码审查代理将在评论中提供反馈,并建议你只需点击一下即可实施的更改。如果我们愿意,可以配置一个存储库,使其自动向 Copilot 请求所有新的拉取请求进行代码审查。
GitHub Copilot 在 VS Code 中运行的编码代理模式。
Jules是一个实验性的 AI 代理,它使用 Gemini 2.0 异步执行 Python 和 JavaScript 编码任务。我们可以在 GitHub 代码库中安装并运行它。
你可以从 GitHub 存储库调用 Google Jules 来修复错误、添加功能、编写文档或几乎任何你可以编写拉取请求的操作。
Lovable
Lovable 是一个充满氛围的编码网站,用户无需任何编码专业知识,只需用简单的英语描述需求,即可创建全栈 Web 应用程序。它包含 AI 编码工具、实时协作(Beta 测试)和项目共享功能。
Lovable成立仅八个月,年度经常性收入(ARR)就已突破1亿美元。这使其成为有史以来最快实现这一里程碑的软件公司,超过了Cursor和Wiz等公司的历史性快速增长速度。
Lovable 提供两种 AI 模式:编辑和聊天。聊天模式具有代理功能,可帮助你制定计划。当你要求聊天执行计划时,Lovable 会切换回编辑模式并生成代码。
在代码模式下,你可以使用 Lovable 项目编辑器查看和编辑 Lovable 项目的完整代码库;Lovable 项目编辑器是一款 React 应用。你可以使用 Builder.io 插件从 Figma 导入设计,前提是正确构建了 Figma 文件的结构。
Loveble的原型应用程序(右)是根据提示“创建一个仪表板,其中包含用户登录信息、折线图中的月销售额以及饼图中的客户人口统计数据”(左)生成的。
Codex 可以并行执行多项任务,例如编写功能、解答代码库相关问题、运行测试以及提交拉取请求以供审核。每个任务都在其专属的安全云沙盒中运行,并预加载了你代码库和相应的运行时环境。
OpenAI Codex 主屏幕。请注意,所有三个任务都在不同的虚拟环境中同时运行。
OpenAI Codex 解释了 Gorilla WebSocket 代码库结构并提供了指针和后续步骤。
OpenAI Codex 发现并修复了代码库中的一个重要错误。请注意,如果您愿意,可以针对该错误修复生成拉取请求 (pull request)。
OpenAI Codex 识别并提出针对拼写错误、错误、文档和测试的修复。
Solver
2025 年 2 月,我第一次接触Solver
带有选项的求解器应用程序弹出。
Sourcegraph Amp
Amp是一款由 Sourcegraph(Cody 的开发者)开发的代理式编码工具。
Amp 可以作为 VS Code(以及兼容的分支,例如 Cursor、Windsurf 和 VSCodium)的插件运行,也可以作为命令行工具运行。它支持 Playwright 等 MCP 服务器,并连接到 GitHub 和 Slack 等其他程序。Amp 可以“读取”屏幕截图、生成 Mermaid 图表、执行构建、运行代码并修复错误。它还支持团队协作。
Amp 的理念与 Cody 以及大多数其他编码代理不同。
首先,你可以使用任意数量的代币,只需按使用量付费,无需支付固定的月费。其次,Amp 使用目前最好的模型,即 Claude Sonnet 4,用于大多数任务。
最后,Amp 的设计初衷就是为了改变。
我要求 Amp 查找并修复https://github.com/meheller/websocket中一个重要部分的一个 bug ,这也是我交给 Codex 的任务之一。
Amp 和 Codex 分别修复了不同的 bug。
Cascade是 Windsurf 的编码代理,即在用户界面的右侧有一个聊天界面。Windsurf 声称 Cascade 具有完整的上下文感知功能,可以建议和运行命令,可以从上次中断的地方继续操作,并可以执行多文件编辑。它可以搜索网页,使用图像作为参考,使用持久内存,并使用模型上下文协议 (MCP)。
Cascade 目前支持多达 16 种型号,具体取决于用户的订阅计划和提供的密钥,包括其自有的 SWE-1 型号。
此外,它还提供了一个可供安装的 MCP 服务器库。
Zencoder利用其对代码库的理解,帮助你修复代码、生成完整的单元测试并实时解决问题。
目前,Zencoder有四个预定义代理,外加一个包含20多个自定义代理的库。 评测自定义代理的定义及其允许使用的工具是一项很有趣的练习。
我们在界面左侧可以看到专为代码审查而设计的 Zencoder 自定义代理的定义。
结语
正如各位朋友所见,编码代理现在已经真实可用,而且高达有十几种。
你可能会问,我应该用哪一种?AI顾问通常会回答“视情况而定”。然而,我们甚至还没做好准备。我现在的答案是“等几个月,看看情况如何?”
作者:洛逸
本文为 @ 21CTO 创作并授权 21CTO 发布,未经许可,请勿转载。
内容授权事宜请您联系 webmaster@21cto.com或关注 21CTO 公众号。
该文观点仅代表作者本人,21CTO 平台仅提供信息存储空间服务。