在半个多月前,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 的基本上下文提示词:
我们将会获取系统信息、工作空间信息、工具链信息、数据库信息、语言环境信息等等,以帮助你更好地完成你的工作。特别是,当你编写 CRUD 代码时,AutoDev 就会根据你的数据库信息,为你生成对应的代码。
工具上下文
与使用 FunctionTool 不同的是,我们一直相信 DSL(领域特定语言)这一类基于语言的方案,才是最好的生成式 AI 方案。因此,我们在 AutoDev 中采用的 是基于 DevIns DSL 工具调用方案:
由于工具的说明本身是代码、测试代码的一部分,因此,可以生成准确可靠的提示词。
思考过程
考虑到 AutoDev DSL 工具的复杂性,我们参考了 WindSurf 的提示词生成方案,引入了思考过程:
以便于添加更多的示例给 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