微信扫码
添加专属顾问
我要投稿
探索AI编码工具2.0的进化之旅,洞悉编程未来趋势。核心内容:1. AI编程工具2.0的核心特点与发展趋势2. 编辑器与IDE在AI编码工具2.0中的优势与局限3. 构建新一代AI编码工具的思考与实践
在周末的公司【AI4SE 效能革命与实践:软件研发的未来已来】直播里,我分享了《AI编码工具 2.0 从 Cursor 到 AutoDev Composer》主题演讲,分享了 AI 编码工具 2.0 的核心、我们的思考、以及我们的 AI 编码工具 2.0 探索实践。
在这篇文章中,我将分享这次演讲的内容,希望能够给大家带来一些启发。
我们分析了市面上最受欢迎的 AI 编程工具,如 Cursor、GitHub Copilot Edit、WindSurf、Cline 等,简单总结一下新一代 AI 编程工具的特点:
AI 编程工具正在从代码补全、代码预测,到更加智能、更耗费 token 的 AI 自动化编码与验证,以及正在发展中的异步 AI 编码。
基于这些特点,我们认为 AI 编程工具 2.0 的核心特点应该是:
Agent 驱动。依赖于基础模型的强大推理能力,结合在编程工具中提供更快、更好的获取上下文,可以让 AI 编程工具更好地理解开发者的意图,并编写出更加符合开发者预期的代码。
开发者体验优先。结合开发者日常活动,更好的满足开发者的心流,诸如编辑预测、自动测试等;诸如 Cursor 结合开发者活动提供了大量机制来降低心智成本,以及应对失败和重试等。
自动化校验。即自动化校验 AI 生成代码的质量、业务逻辑正确性、修复幻觉导致的问题,诸如 patch等,从而在机制上减少幻觉带来的影响;诸如 Cursor 集成大量实用的 Lint、Terminal 等工具,提供自动化检验手段。
当然了,它们还有其它非常不错的范式:
容错式交互:采用「生成-校验-回滚」的三阶段机制降低心智负担
场景化聚焦:针对代码评审、漏洞修复等场景设计专用交互流
当前主流的 AI 编码 2.0 工具主要集中在 VSCode 平台上,而 VSCode 只是一个编辑器,它的 API 限制了 AI 编码工具的功能扩展,阻碍了更高级功能的实现。我们便开始思考,直接在 IDE 上构建 AI 编码工具会不会是一个更好的选择?
我们在内部做了一些新一代编码工具收集,发现典型的 Intellij IDEA 用户,会使用 Cursor 来生成代码,然后再回到 IDEA 中进行测试和调试。分析其中的原因,我们发现:尽管 Cursor 能提升开发效率,但是它并没有 IDEA 带来的提升大,即 IDEA 与编辑器的能力差异,使得 IDEA 提升反而更大。
因此,我们开始思考,如何更好的开发 AI 编码工具 2.0?
我们简要分析了编辑器与 IDE 的优势与劣势:
VSCode
显著优势:可以快速开发功能原型、迭代;
缺点:插件丰富但是质量低,需要重新开发和设计。尽管有 LSP(Language Server Protocol)、DAP(Debug Adapter Protocol)等,MCP(Model Context Protocol)等,但是并不能提供非常好的集成。
Intellij IDEA 系列
显著优势:开箱即用,高质量的官方插件可以提供高质量的上下文
缺点:开发成本高、速度缓慢、文档缺失(AI 无法生成靠谱的代码)
因此,我们认为,AI 编码工具 2.0 应该更多的借助工具生成的能力,
在现有可参考的工具里,IDEA 是一个非常好的示例,诸如在后端 API 开发场景,它非常好的集成【设计-开发-校验】相关的工具生态。诸如:
设计:Swagger、PlantUML、Mermaid 等工具
开发:HttpClient、Curl、Database 插件等
校验:JUnit、Playwright、SonarLint 等
有了这些插件后,我们可以构建面向 AI 的接口,提供更好的提示词、工具,以及对应的校验机制。
以后端开发为例,我们可以通过三种工程,构建 Agent 驱动的 AI 编码工具核心:
软件工程的上下文工程。获取项目中的关键上下文:诸如于:依赖信息、数据库信息、框架信息等;示例:This workspace use Gradle+Java+JDK_18;This project use MariaDB;You are working on a project that uses Spring Boot 2.7.10,Spring MVC,JDBC to build business logic.
函数调用工程(OpenAI)。即持续围绕不同的场景,让模型更好的理解不函数如何调用,做更好的集成。
提示词工程(Claude)。面向不同的模型,提供思考过程范例,让模型更好的学习。
更好的上下文,配合上更好的提示词,意味着更少的幻觉。也因此工具的各种指标,诸如可用性、接受度、准确度等,都会有所提升。
基于我们的分析和思考,我们开始构建我们的 AI 编码工具 2.0:AutoDev Sketch。它的核心应该是:高质量系统提示词 + LLM “推理”能力,获取 IDE 中的关联上下文,渲染为交互式视图(Sketch View)。
鉴于我们的思考,我们在 AutoDev Sketch 深度集成了 IDEA 插件,诸如于 Database 组件,提供统一的数据库能力,作为上下文、工具封装,快速帮助开发者进行数据库处理。它可以在三个步骤帮助 AI 更好地与数据库交互:
系统提示词。当用户连接了数据库时,会在系统词中添加:User's workspace context is: This project use MariaDB 11.5.2-MariaDB
工具使用。与此同时,AI 在识别到需求后,可以调用 Database
工具,来获取数据库信息( /database:schema
),以帮助生成对应的代码。
SQL 交互。最后,模型不仅可以生成 SQL 代码,还可以与数据库进行交互,以验证生成的代码是否正确。同时,我们也将在未来提供对应的 SQL 代码校验机制。
除了 Database 组件,我们还提供了其他插件,如:HttpClient、SonarLint 等,以帮助开发者更好地进行开发、测试、校验。
与 Cursor 这一类基于 VSCode 的 AI 编辑器相关,我们加入了更多的 IDE 原生的功能,以提升开发者的体验。如下是 AutoDev Sketch 的工具列表:
诸如: run
、 refactor
、 structure
等,都是 IDE 原生的功能,我们将其封装为工具,以帮助 AI 更好地理解开发者的意图,并生成更加符合开发者预期的代码。
在 AI 针对问题生成代码后,我们将代码渲染为交互式视图(Sketch View),以帮助开发者更好地理解代码,提升开发者的体验。这是就需要充分考虑不同场景下的交互可能性, 如下是 AutoDev Sketch 提供的连续性交互示例:
多种化的 Patch/Diff 处理, 并针对生成代码进行 Lint 检查等
前端应用在启动 dev 服务时, 自动打开 WebView 查看编译正确
生成依赖文件时,可提供依赖的安全检查
等
通常这种连续性,降低了开发者的心智负担,提升总体的开发体验。
我们可以对 AI 编码工具 2.0 的核心特点进行总结:分考虑与研发知识库、工具生态的结合,部署最新模型以刷新认知,关注开发者日常活动
充分利用研发生态:结合研发工具链和知识库,提升 AI 编码工具的智能化。
开发者编码心流:通过持续性自动化修改,提升开发效率。
多种规格 AI 模型支撑:通过规划、理解、补全等不同模型,满足多样化的开发需求。
通过 AutoDev Sketch 的探索,相信大家也知道如何通过高质量上下文、丰富的工具集成和交互式视图,构建下一代 AI 编码工具,提升开发者的效率和体验。
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费场景POC验证,效果验证后签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2025-03-06
2024-09-04
2025-01-25
2024-09-26
2024-10-30
2024-09-03
2024-12-25
2024-10-30
2024-12-11
2024-09-06