当前位置: 首页 > article >正文

AutoDev Composer:您身边的 Intellij 平台 Cursor、WinSurf 平替方案(预览版)

在半个多月前,DeepSeek V3 发布之后,我们为 Shire 引入了多文件编辑的能力。在我们多次测试之后,我们发现 DeepSeek V3 在编程场景下的表现非常出色, 尤其是在多文件编辑场景下。

于是,我们开发在久久未更新新特性的 AutoDev 上引入了 AutoDev Composer 的功能,我们 还借鉴了大量的成熟工具的方案:

  • Shire 上的出色 Sketch 渲染机制

  • Cursor、WindSurf 等复杂的系统提示词

  • Continue 那充满 bug 的 StreamDiff 模式

  • ……

现在,你不用再切换到类 VSCode IDE 上编写提示词,回到 Intellij IDEA 进行 debug。而是可以直接在 Intellij IDEA 上就可以完成所有的工作。

作为一个业余项目,我们也是很努力地~。

视频 Demo

解密 AutoDev Composer 系统提示词

f544a169fae3360072eb4f246560328d.png

项目上下文

在 Composer 模式上,你依旧可以体验对我们对于软件工程的理解,以及在软件成分分析的丰富经验。如下是 AutoDev Composer 的基本上下文提示词:

- The USER's OS version is Mac OS X 15.2 x86_64
- The absolute path of the USER's workspaces is: /Users/phodal/IdeaProjects/untitled
- This workspace use Gradle  Java JDK_11
- The user's shell is /bin/bash
- User's workspace context is: This project use MariaDB 11.5.2-MariaDB, You are working on a project that uses Spring Boot 2.7.10, Spring MVC,JDBC to build RESTful APIs.
- Current time is: 2025-01-20 11:23:59

我们将会获取系统信息、工作空间信息、工具链信息、数据库信息、语言环境信息等等,以帮助你更好地完成你的工作。特别是,当你编写 CRUD 代码时,AutoDev 就会根据你的数据库信息,为你生成对应的代码。

工具上下文

6ffb8b43fd7c08c0488e454f7a5e749b.png

与使用 FunctionTool 不同的是,我们一直相信 DSL(领域特定语言)这一类基于语言的方案,才是最好的生成式 AI 方案。因此,我们在 AutoDev 中采用的 是基于 DevIns DSL 工具调用方案:

<tool>name: file, desc: Read the content of a file by project relative path, example:
<devin>
找到指定文件(需该路径下存在文件)
/file:.github/dependabot.yml#L1C1-L2C12
根据文件名全局搜索(大小写敏感,不带路径)
/file:PythonFrameworkContextProvider.kt
</devin>

由于工具的说明本身是代码、测试代码的一部分,因此,可以生成准确可靠的提示词。

思考过程

考虑到 AutoDev DSL 工具的复杂性,我们参考了 WindSurf 的提示词生成方案,引入了思考过程:

# 第一步. 创建 routes.py
我已经创建了 routes.py 来定义 "/upload" 和 "/query" 端点。此外,我还添加了 "/" 作为 main.html 的端点。
# 第二步. 创建 main.js
我已经创建了一个专用的 main.js 文件来存储所有的交互式前端代码。它定义了显示窗口和按钮的 UI 元素,并为这些按钮创建了事件监听器。

以便于添加更多的示例给 AI 模型,事实也证明 AI 模型学习得相当的不错。

AutoDev 开发者体验:Sketch 模式

尽管,AutoDev 现在变成了一个业余项目,但是我们一直相信理解开发者体验才是 AI 辅助研发的核心。因此,我们在 AutoDev Composer 上引入了 Shire 智能体语言采用的 Sketch 模式。你可以通过 Sketch 将 Code 转换为 everything。

简单来说,就是将 markdown 使用不同的 UI 进行渲染,以便更好进行交互。

Diff Sketch 模式

通过 Diff Sketch 模式,你可以快速理解 AI 变更的代码,来决定如何处理这些变更:查看源文件、diff 查看变更、或者直接应用变更。

58cfe287141524fdb3a9cc77eec33b6c.png

由于,我们并没有能力像 Cursor 一样,提供 diff model,所以我们提供了 repair 模型,即当无法准确识别 patch 时,会再调用模型进行修复。

Terminal Sketch 模式

600c69162b098a24924d8f23462b1acf.png

在 AutoDev 中,你可以在 Terminal Sketch 模式中执行脚本,或者将 Terminal 弹出(参考 Cursor),方便于你在系统中执行命令,查看运行结果。

Mermaid、PlantUML Sketch 模式

dda4ccd4bdca6f2aceffa38a25a4ebb2.png

当你安装了 Mermaid 或者 PlantUML 插件之后,你可以通过 Mermaid、PlantUML Sketch 模式,将你的代码转换为流程图、时序图等等。

其它

下载和体验:https://github.com/unit-mesh/auto-dev/releases


http://www.kler.cn/a/514242.html

相关文章:

  • 网络安全(渗透)
  • E-Prime2实现List嵌套
  • 光谱相机在智能冰箱的应用原理与优势
  • 游戏引擎学习第80天
  • C语言内存之旅:从静态到动态的跨越
  • 【计算机体系结构、微架构性能分析】core 与 uncore 分别是哪一些部分?区分 core 和 uncore
  • 项目开发实践——基于SpringBoot+Vue3实现的在线考试系统(八)
  • redis 分布式方案
  • 介绍下常用的前端框架及时优缺点
  • Assembly语言的物联网
  • Java设计模式 八 适配器模式 (Adapter Pattern)
  • ROS2测试仿真
  • 开源视频生成 Pyramid Flow 本地部署实测
  • AI 新动态:技术突破与应用拓展
  • Python爬虫与1688商品详情API接口:开启数据获取新境界
  • 【排查案例】无认证集群空白分区创建元凶排查记录
  • linux平台RTMP|RTSP播放器如何回调SEI数据?
  • HTML根元素<html>的语言属性lang:<html lang=“en“>
  • Webrtc (1) - Windows 编译
  • 实操演练第003讲-数据通途:客户端连接SQL Server的完美攻略
  • vue+高德API搭建前段经济页面
  • 1170 Safari Park (25)
  • Unity预制体未即时刷新
  • 【SpringCloud】黑马微服务学习笔记
  • 备战春招—数字IC、FPGA笔试题(2)
  • Docker Load后存储的镜像及更改镜像存储目录的方法