前言
軟件工程領(lǐng)域因為大模型的賦能正在發(fā)生一場革命性的變化。代碼智能體(Coding Agent)不再是人類開發(fā)者的助手,而是全新的軟件合成引擎。這意味著代碼智能體不再止于生產(chǎn)力工具,而是具有端到端的軟件交付能力,孕育著萬億美元的商業(yè)價值。
但反觀市場上的代碼智能體,都是基于已有的開發(fā)者工具和大模型結(jié)合來調(diào)教生成代碼;這是因為已有的開發(fā)者工具,都是在大模型時代之前為人機(Human Computer Interface)交互設(shè)計的,對于這樣一場革命性的變化:【只有從底層設(shè)計一整套原生的 AI 開發(fā)者工具(Agent Devtools Interface),并與大模型垂直整合,才能更好的發(fā)揮大模型的潛能,生成更高效,更可靠的代碼?!?/p>
MoonBit Pilot 正是在這一愿景下誕生的——從底層設(shè)計一整套 AI 原生的開發(fā)者工具,包括編程語言的設(shè)計、編譯器、調(diào)試器、包管理等,并在各個環(huán)節(jié)給予大模型最有效的反饋。
這類顛覆式創(chuàng)新,往往意味著在早期階段需要付出巨大的研發(fā)投入,而要在此基礎(chǔ)上構(gòu)建生態(tài)體系,更是一場長期的耐力賽。然而,MoonBit Pilot 已經(jīng)在現(xiàn)有大模型能力之上展現(xiàn)出強大潛力:不僅能自動高效地生成完整軟件庫,并附帶結(jié)構(gòu)化文檔與高質(zhì)量測試用例,還在軟件工程中最關(guān)鍵的環(huán)節(jié)之一「大規(guī)模代碼重構(gòu)」中展現(xiàn)出領(lǐng)先優(yōu)勢。在這一點上,它的表現(xiàn)甚至超過了“主流編程語言 + 最強大模型”的組合。
團隊預(yù)計接下來半年時間,將通過 MoonBit Pilot 來完成 MoonBit 語言生態(tài)的自舉,這樣一個閉環(huán)的應(yīng)用場景,也將為 MoonBit Pilot 提供海量的訓(xùn)練語料合成積累大量的經(jīng)驗,最終實現(xiàn)軟件合成的“圣杯” -- L4 級別的軟件自動交付。
零干預(yù)合成高質(zhì)量軟件庫
下面我們用 MoonBit Pilot一鍵生成 TOML 語法解析器作為示例來展示其軟件合成能力:
TOML 是一種配置文件格式,設(shè)計初衷是簡單易讀、易寫,并且能清晰表達嵌套的數(shù)據(jù)結(jié)構(gòu)。它常用于項目配置文件,特別是在 Rust 生態(tài)中被廣泛使用。
讓我們打開 VSCode 運行下測試:
我們注意到,大模型最初生成代碼時,因缺乏 MoonBit 語料,未能直接輸出正確結(jié)果。但在自動調(diào)用 MoonBit 自研工具鏈并獲取精確反饋的過程中,模型無需人工干預(yù)便完成了修復(fù)與優(yōu)化,最終成功輸出了正確代碼,并自動添加了有效測試,整個過程耗時僅約 6 分鐘。
不只是 TOML,MoonBit Pilot 在很短時間零人工干預(yù)合成了 ini-parser(https://github.com/bobzhang/ini-parser),lisp 解釋器(https://github.com/bobzhang/lisp-machine-MoonPilot)等更多示例,而這些合成的軟件庫也將用于下一代基模的訓(xùn)練,更好的提升 MoonBit Pilot 的軟件合成能力。
支持超大規(guī)模代碼重構(gòu),提升代碼質(zhì)量
AI 生成的代碼一個普遍的痛點就是缺乏可維護性,而提升代碼可維護性的一個最重要的方法就是安全重構(gòu)。這里以一個簡單的函數(shù)重命名作為示例。
假設(shè)我們需要將標(biāo)準(zhǔn)庫 Core 中的 Array::length() 改名為 Array::len(),我們先發(fā)出 prompt 指令:
can you add 'Array: :len' which is the duplicate of 'Array:: length' and deprecate the latter
Prompt: can you add 'Array: :len' which is the duplicate of 'Array:: length' and deprecate the latter
可以看到,MoonBit Pilot 短時間內(nèi)即可正確的完成任務(wù):
MoonBit Pilot 正確的完成任務(wù)
不同于傳統(tǒng)智能體依賴 grep 等基于正則的代碼查找方式,MoonBit Pilot 提供了原生的語義查找工具,能夠一鍵精確定位代碼定義。這不僅提升了交互體驗,更重要的是顯著減少了 token 浪費,從本質(zhì)上降低了推理成本,是 Coding Agent 系統(tǒng)中少有的“具備實際節(jié)省支出能力的模塊”。在完成了代碼變化以后,因為 length 這個函數(shù)被海量的使用,觸發(fā)了大量的警告,我們看下 MoonBit Pilot 如何修復(fù)這些問題。
分段編碼,快速的高并發(fā)重構(gòu)
傳統(tǒng) Agent 在執(zhí)行此類修復(fù)任務(wù)時效率極低,往往需要反復(fù)調(diào)用構(gòu)建系統(tǒng)獲取警告信息,并以串行方式逐一調(diào)用大模型修復(fù),每次調(diào)用可能耗時十幾到幾十秒,完整修復(fù)過程可能持續(xù)數(shù)十分鐘。同時,這類 Agent 缺乏對警告的結(jié)構(gòu)化處理,導(dǎo)致上下文信息冗雜、重復(fù),進一步干擾大模型的判斷與執(zhí)行效率。
MoonBit Pilot 充分利用底層的 Subagent 機制以及 MoonBit 語言自身提供的分段機制,避免并發(fā)提交和驗證中的競爭和隔離問題,確保并發(fā)后的結(jié)果能有效合并。
在 MoonBit Pilot 中,只需要簡單一句提示就可以觸發(fā)為 MoonBit 高度優(yōu)化的工具,嘗試進行并發(fā)的警告修復(fù)工作,并且最終實現(xiàn)從代碼到文檔的全面修改替換:
Prompt: fix all deprecation warnings
該工具以單一源代碼文件的某一分段為基本單位,在啟動 Subagent 修復(fù)子任務(wù)的同時,將任務(wù)范圍限定在該基本單位內(nèi),并實現(xiàn)了獨立于其他子任務(wù)的驗證功能:從而實現(xiàn)了真正意義上的多 Agent 并行修復(fù)能力,相比傳統(tǒng) Agent 工作流可以實現(xiàn) 5 至 10 倍的效率提升。
速度遠遠快于Open AI (Codex)、Cursor,且更可靠
在實際修復(fù)一個包含 126 條警告的 MoonBit 大型項目時,MoonBit Pilot 僅用市面主流代碼助手 Cursor 和 Codex 所需時間的 1/5,顯著領(lǐng)先于當(dāng)前行業(yè)標(biāo)準(zhǔn)。
Codex CLI :35 分鐘后仍然沒有完成所有警告的修復(fù)工作,并且需要中途加入額外的對話內(nèi)容才能繼續(xù)任務(wù)。
Cursor :16 分鐘后會因為觸發(fā)最大工具調(diào)用次數(shù)而中止,此時剩余警告數(shù)并不為 0,在相同提示詞的情況下同樣會觸發(fā)串行的警告修復(fù)任務(wù)。
相比之下,MoonBit Pilot 僅用約 7 分鐘即完成了上述 126 條警告的全部修復(fù)任務(wù)。
值得注意的是,大部分 Agent 和語言工具鏈的組合往往只能完成代碼的修正工作,但得益于 MoonBit 語言對 Markdown 格式的特殊支持,MoonBit Pilot 也能確保 .mbt.md 文檔中代碼的正確性。
另一種范式:云端異步編程, 零人工干預(yù)
上述兩個 Demo 均需在用戶本地環(huán)境運行,需要用戶的頻繁交互,很難做到一個高并發(fā)的運行(同時啟動十幾個任務(wù)),如果能夠脫離用戶的電腦在云端運行,只需要關(guān)注效果和代碼審查,生產(chǎn)力會得到極大的提升。
也正是 MoonBit Pilot 這樣一套完全 AI 原生的工具鏈設(shè)計,使得 MoonBit Pilot 不同于以往基于 VSCode 的 AI 智能體,其反饋機制不再依賴傳統(tǒng)的 LSP(Language Server Protocol),而是一套內(nèi)部高度定制的(Agent Server Protocol),這樣 MoonBit Pilot 可以脫離 VSCode 等 GUI,高效的部署在云端,并取得完全一樣的效果。
以下是使用 Web 端版本的 MoonBit Pilot 在一個真實 MoonBit 項目 (https://github.com/moonbit-community/cmark.mbt)中進行自動警告修復(fù)的例子。在進入任務(wù)總覽視圖后,可以點擊“新建按鈕”創(chuàng)建一個新任務(wù)。在新建任務(wù)頁面,我們可以指定目標(biāo)倉庫,并在提示詞中說明我們的意圖,即修復(fù)項目中的所有警告:
稍等一段時間之后,我們便可以看到任務(wù)已經(jīng)變?yōu)橥瓿蔂顟B(tài)。
點擊任務(wù)卡片可以查看本次任務(wù)的用時、對話歷史、控制臺輸出等詳情:
在對話歷史的末尾,可以看到 MoonBit Pilot 已經(jīng)成功創(chuàng)建了與修復(fù)內(nèi)容相對應(yīng)的 GitHub Pull Request:
此 Pull Request 描述和內(nèi)容完整,CI 檢查順利通過,可以直接合并。
CI 檢查順利通過,可以直接合并
未來展望: 基于 MoonBit Pilot 的軟件合成工廠
MoonBit Pilot 不僅僅是一個編程助手,更是未來實現(xiàn)“軟件合成工廠”愿景的重要基石。
傳統(tǒng)軟件開發(fā)模式依賴大量人力投入,效率低下且開發(fā)周期漫長。在 AI 迅速崛起的時代,雖然大模型和 AI 輔助編程工具都在快速發(fā)展,但由于缺乏與語言層面的深度協(xié)同,彼此孤立發(fā)展,難以發(fā)揮整體優(yōu)勢。
MoonBit 社區(qū)則基于 MoonBit 的語義基礎(chǔ)和 Agent 的智能協(xié)作機制,正致力于從單純的‘寫代碼’邁向高效的‘構(gòu)建軟件’新范式:
1. 從代碼生成到軟件級合成
Agent 的目標(biāo)不僅局限于輔助補全若干行代碼,而是通過 prompt 驅(qū)動、大模型推理與 MoonBit 語言工具鏈的高效聯(lián)動,真正實現(xiàn)工業(yè)級軟件的自動化構(gòu)建。
2. 從交互式 Agent 到流水線式合成引擎
借助 MoonBit 工具鏈對及先進的 Segment 并發(fā)機制,MoonBit Pilot 已經(jīng)進化成一個支持多任務(wù)并行、具備狀態(tài)感知的流水線式 Agent 系統(tǒng)。每個子 Agent 如同生產(chǎn)線上的一臺精密機器,圍繞用戶需求并行協(xié)作,快速完成復(fù)雜的任務(wù)。
3. 構(gòu)建自動化工具鏈合成接口
MoonBit Pilot 進一步提供開放 API 接口,輕松連接第三方系統(tǒng)(如 CI/CD、IDE 插件、AutoCoder、代碼審查系統(tǒng)等),極大降低系統(tǒng)接入門檻,使開發(fā)者和企業(yè)能以極低的成本快速享受類 Devin 式的自動化開發(fā)體驗。
總結(jié)
我們相信,軟件開發(fā)正迎來一次范式的轉(zhuǎn)變:
從“寫代碼”到“構(gòu)建軟件”,從以人驅(qū)動的開發(fā)工具,到以智能體主導(dǎo)的系統(tǒng)合成流程。
而隨著 MoonBit 語言生態(tài)的不斷成熟,我們有信心推動這套架構(gòu)成為一種全新的工業(yè)標(biāo)準(zhǔn),真正邁入軟件自動生成、自動驗證、自動部署的流水線時代。
體驗方式:doc.mbt
目前,MoonBit Pilot 面向所有用戶支持桌面端一鍵安裝體驗:重新執(zhí)行官網(wǎng)安裝命令(https://www.moonbitlang.com/download#moonbit-cli-tools),即可通過 moon pilot 啟動 MoonBit Pilot 的命令行版本。
云端 Web 版本目前是定向邀請制開放,完成任務(wù)立即體驗 。
如希望獲得體驗資格,請發(fā)送申請至:jichuruajian@idea.edu.cn,并在郵件中備注 Github ID,以便開通訪問權(quán)限。
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.