AI 编码 2.0 分析、思考与探索实践:从 Cursor Composer 到 AutoDev Sketch

news/2025/2/26 17:34:43

在周末的公司【AI4SE 效能革命与实践:软件研发的未来已来】直播里,我分享了《AI编码工具 2.0 从 Cursor 到 AutoDev Composer》主题演讲,分享了 AI 编码工具 2.0 的核心、我们的思考、以及我们的 AI 编码工具 2.0 探索实践。

在这篇文章中,我将分享这次演讲的内容,希望能够给大家带来一些启发。

一、AI 编程工具 2.0 (趋势分析)

我们分析了市面上最受欢迎的 AI 编程工具,如 Cursor、GitHub Copilot Edit、WindSurf、Cline 等,简单总结一下新一代 AI 编程工具的特点:

c5c6bcbbc3c8a94b2a33f34f09c95718.jpeg

AI 编程工具正在从代码补全、代码预测,到更加智能、更耗费 token 的 AI 自动化编码与验证,以及正在发展中的异步 AI 编码。

基于这些特点,我们认为 AI 编程工具 2.0 的核心特点应该是:

  • Agent 驱动。依赖于基础模型的强大推理能力,结合在编程工具中提供更快、更好的获取上下文,可以让 AI 编程工具更好地理解开发者的意图,并编写出更加符合开发者预期的代码。a9148184531d58a9f69312884789bd01.jpeg

  • 开发者体验优先。结合开发者日常活动,更好的满足开发者的心流,诸如编辑预测、自动测试等;诸如 Cursor 结合开发者活动提供了大量机制来降低心智成本,以及应对失败和重试等。c22df218dba882da96c0c09ed440220b.jpeg

  • 自动化校验。即自动化校验 AI 生成代码的质量、业务逻辑正确性、修复幻觉导致的问题,诸如 patch等,从而在机制上减少幻觉带来的影响;诸如 Cursor 集成大量实用的 Lint、Terminal 等工具,提供自动化检验手段。

e2a7366e995d029480d48e45fbc8556b.jpeg

当然了,它们还有其它非常不错的范式:

  • 容错式交互:采用「生成-校验-回滚」的三阶段机制降低心智负担

  • 场景化聚焦:针对代码评审、漏洞修复等场景设计专用交互流

当前主流的 AI 编码 2.0 工具主要集中在 VSCode 平台上,而 VSCode 只是一个编辑器,它的 API 限制了 AI 编码工具的功能扩展,阻碍了更高级功能的实现。我们便开始思考,直接在 IDE 上构建 AI 编码工具会不会是一个更好的选择?

二、我们的 AI 编码工具 2.0 的思考

我们在内部做了一些新一代编码工具收集,发现典型的 Intellij IDEA 用户,会使用 Cursor 来生成代码,然后再回到 IDEA 中进行测试和调试。分析其中的原因,我们发现:尽管 Cursor 能提升开发效率,但是它并没有 IDEA 带来的提升大,即 IDEA 与编辑器的能力差异,使得 IDEA 提升反而更大。

因此,我们开始思考,如何更好的开发 AI 编码工具 2.0?

思考 1:编辑器优势在于体验,IDE 优势在于生态集成

03208e6d4c09edd86c6b678a34861cde.jpeg

我们简要分析了编辑器与 IDE 的优势与劣势:

VSCode

  • 显著优势:可以快速开发功能原型、迭代;

  • 缺点:插件丰富但是质量低,需要重新开发和设计。尽管有 LSP(Language Server Protocol)、DAP(Debug Adapter Protocol)等,MCP(Model Context Protocol)等,但是并不能提供非常好的集成。

Intellij IDEA 系列

  • 显著优势:开箱即用,高质量的官方插件可以提供高质量的上下文

  • 缺点:开发成本高、速度缓慢、文档缺失(AI 无法生成靠谱的代码)

因此,我们认为,AI 编码工具 2.0 应该更多的借助工具生成的能力,

思考 2:借助 IDEA 插件生态,构建端到端自动化

6cd30baddc595f8af163f36d57e30820.jpeg

在现有可参考的工具里,IDEA 是一个非常好的示例,诸如在后端 API 开发场景,它非常好的集成【设计-开发-校验】相关的工具生态。诸如:

  • 设计:Swagger、PlantUML、Mermaid 等工具

  • 开发:HttpClient、Curl、Database 插件等

  • 校验:JUnit、Playwright、SonarLint 等

有了这些插件后,我们可以构建面向 AI 的接口,提供更好的提示词、工具,以及对应的校验机制。

思考 3:构建高质量的上下文,减少幻觉产生示例

2a5593e0a3159f2cfb8fb7712e946355.jpeg

以后端开发为例,我们可以通过三种工程,构建 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

基于我们的分析和思考,我们开始构建我们的 AI 编码工具 2.0:AutoDev Sketch。它的核心应该是:高质量系统提示词 + LLM “推理”能力,获取 IDE 中的关联上下文,渲染为交互式视图(Sketch View)。

84e93b97c15602dcb5f38c88bc99ca3d.jpeg

1. 构建高质量的上下文与工具使用

b5fcb48407f186f0ba998746480b147f.jpeg

鉴于我们的思考,我们在 AutoDev Sketch 深度集成了 IDEA 插件,诸如于 Database 组件,提供统一的数据库能力,作为上下文、工具封装,快速帮助开发者进行数据库处理。它可以在三个步骤帮助 AI 更好地与数据库交互:

  1. 系统提示词。当用户连接了数据库时,会在系统词中添加:User's workspace context is: This project use MariaDB 11.5.2-MariaDB

  2. 工具使用。与此同时,AI 在识别到需求后,可以调用 Database 工具,来获取数据库信息( /database:schema),以帮助生成对应的代码。

  3. SQL 交互。最后,模型不仅可以生成 SQL 代码,还可以与数据库进行交互,以验证生成的代码是否正确。同时,我们也将在未来提供对应的 SQL 代码校验机制。

除了 Database 组件,我们还提供了其他插件,如:HttpClient、SonarLint 等,以帮助开发者更好地进行开发、测试、校验。

2. 丰富的工具构建自动采纳的最后一公里

与 Cursor 这一类基于 VSCode 的 AI 编辑器相关,我们加入了更多的 IDE 原生的功能,以提升开发者的体验。如下是 AutoDev Sketch 的工具列表:

63a67ebd8029d839907c24445b9a621a.jpeg

诸如: run、 refactor、 structure 等,都是 IDE 原生的功能,我们将其封装为工具,以帮助 AI 更好地理解开发者的意图,并生成更加符合开发者预期的代码。

3. 多样化 Sketch 视图构建开发者心流的连续性

d1a7d19109af15d0ea9e40a6875225cb.jpeg

在 AI 针对问题生成代码后,我们将代码渲染为交互式视图(Sketch View),以帮助开发者更好地理解代码,提升开发者的体验。这是就需要充分考虑不同场景下的交互可能性, 如下是 AutoDev Sketch 提供的连续性交互示例:

  • 多种化的 Patch/Diff 处理, 并针对生成代码进行 Lint 检查等

  • 前端应用在启动 dev 服务时, 自动打开 WebView 查看编译正确

  • 生成依赖文件时,可提供依赖的安全检查

通常这种连续性,降低了开发者的心智负担,提升总体的开发体验。

AI 编码工具 2.0 总结

26f9e01d9b984d72c1e7c0743c8b7231.jpeg

我们可以对 AI 编码工具 2.0 的核心特点进行总结:分考虑与研发知识库、工具生态的结合,部署最新模型以刷新认知,关注开发者日常活动

  1. 充分利用研发生态:结合研发工具链和知识库,提升 AI 编码工具的智能化。

  2. 开发者编码心流:通过持续性自动化修改,提升开发效率。

  3. 多种规格 AI 模型支撑:通过规划、理解、补全等不同模型,满足多样化的开发需求。

通过 AutoDev Sketch 的探索,相信大家也知道如何通过高质量上下文、丰富的工具集成和交互式视图,构建下一代 AI 编码工具,提升开发者的效率和体验。


http://www.niftyadmin.cn/n/5868992.html

相关文章

docker安装etcd:docker离线安装etcd、docker在线安装etcd、etcd镜像下载、etcd配置详解、etcd常用命令、安装常见问题总结

官方网站 官方网址:etcd 二进制包下载:Install | etcd GitHub社区项目:etcd-io GitHub GitHub社区项目版本历史:Releases etcd-io/etcd GitHub 一、镜像下载 1、在线下载 在一台能连外网的linux上执行docker镜像拉取命令…

【PGCCC】PostgreSQL 的弊端(第一部分):临时表

PostgreSQL 是世界上最强大的数据库系统之一。我一直对它的强大功能充满热情,尤其是它的现代 SQL 语言功能。 然而,这并不意味着一切都很好。有些地方还是很麻烦。新手用户如果不知道这个问题,可能会遇到麻烦,而且我发现这种情况…

【含文档+PPT+源码】基于微信小程序的农产品自主供销商城系统

项目介绍 本课程演示的是一款基于微信小程序的农产品自主供销商城系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的 Java 学习者。 1.包含:项目源码、项目文档、数据库脚本、软件工具等所有资料 2.带你从零开始部署运行本套系统 3…

基于RISC-V内核完全自主可控国产化MCU芯片

国科安芯MCU芯片采用开放、灵活的RISC-V指令集架构,RISC-V的开源特性不仅大幅降低研发成本,更赋予芯片设计高度定制化能力。例如,国科安芯的AS32S601抗辐照MCU基于32位RV32IMZicsr指令集,主频达180MHz,内置2MB Flash与…

使用 Containerd 通过 HTTP 协议拉取 Harbor 私有镜像仓库的镜像

在 Kubernetes 1.24及以上版本环境中,docker不再被支持,主要使用Containerd 是常用的容器运行。默认情况下,Containerd 使用 HTTPS 协议与镜像仓库通信。然而,在某些场景下(如测试环境或内部网络)&#xff…

【TVM教程】为 NVIDIA GPU 自动调度神经网络

Apache TVM 是一个深度的深度学习编译框架,适用于 CPU、GPU 和各种机器学习加速芯片。更多 TVM 中文文档可访问 →https://tvm.hyper.ai/ 作者:Lianmin Zheng 针对特定设备和工作负载的自动调优对于获得最佳性能至关重要。本文介绍如何使用 auto-sched…

python与C系列语言的差异总结(3)

与其他大部分编程语言不一样,Python使用空白符(whitespace)和缩进来标识代码块。也就是说,循环体、else条件从句之类的构成,都是由空白符加上冒号(:)来确定的。大部分编程语言都是使用某种大括号来标识代码块的。下面的…

android 新增native binder service 方式(二)

接上篇文章,实现binder service 的第二种方式,这种在系统里面比较常见 先看下整体目录结构,整体差别不大。 一 android.bp 编译aidl 文件 aidl_interface {name: "libserviceaidl",srcs: ["aidl/com/test/IService.aidl&qu…