部署DeepSeek模型,进群交流最in玩法!
立即加群
发布
社区首页 >专栏 >AutoDev Composer:您身边的 Intellij 平台 Cursor、WinSurf 平替方案(预览版)

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

作者头像
Phodal
发布2025-01-20 21:02:13
发布2025-01-20 21:02:13
21200
代码可运行
举报
文章被收录于专栏:phodal
运行总次数:0
代码可运行

在半个多月前,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 系统提示词

项目上下文

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

代码语言:javascript
代码运行次数:0
复制
- 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 就会根据你的数据库信息,为你生成对应的代码。

工具上下文

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

代码语言:javascript
代码运行次数:0
复制
<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 的提示词生成方案,引入了思考过程:

代码语言:javascript
代码运行次数:0
复制
# 第一步. 创建 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 查看变更、或者直接应用变更。

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

Terminal Sketch 模式

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

Mermaid、PlantUML Sketch 模式

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

其它

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-01-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 phodal 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 视频 Demo
  • 解密 AutoDev Composer 系统提示词
    • 项目上下文
    • 工具上下文
    • 思考过程
  • AutoDev 开发者体验:Sketch 模式
    • Diff Sketch 模式
    • Terminal Sketch 模式
    • Mermaid、PlantUML Sketch 模式
  • 其它
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档