在半個多月前,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 的基本上下文提示詞:
-
-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 useGradleJava JDK_11
-
-The user's shell is /bin/bash
-
- User's workspace context is:This project useMariaDB11.5.2-MariaDB,You are working on a project that uses SpringBoot2.7.10,Spring MVC,JDBC to build RESTfulAPIs.
-
-Current time is:2025-01-2011:23:59
我們將會獲取系統資訊、工作空間資訊、工具鏈資訊、資料庫資訊、語言環境資訊等等,以幫助你更好地完成你的工作。特別是,當你編寫 CRUD 程式碼時,AutoDev 就會根據你的資料庫資訊,為你生成對應的程式碼。
工具上下文

與使用 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 檢視變更、或者直接應用變更。

由於,我們並沒有能力像 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