JetBrains Open-Sources KotlinLLM: Smart Macros That Generate Kotlin Source Code at Runtime and Hot-Reload It Through JDI
重點摘要
JetBrains Research 開源 KotlinLLM,這款 IntelliJ IDEA 外掛為 Kotlin/JVM 專案加入 Smart macros 語言功能,可在執行階段產生 Kotlin 原始碼並透過 JDI 熱重載。根據測試,在改寫的 Spring Petclinic 專案中 24 個情境全部成功,熱重載成功率 100%,編譯與重定義僅增加約 1% 執行開銷。此專案屬研究原型,採用 Apache License 2.0,需搭配 IntelliJ IDEA 2025.2.x、JDK 21 與 OpenAI API 金鑰。
JetBrains Research 近日正式開源了一款名為 KotlinLLM 的 IntelliJ IDEA 外掛程式,將大型語言模型帶入 Kotlin/JVM 專案的開發流程中。這款外掛新增了一種名為「Smart macros」的語言功能,開發者可以在 Kotlin 原始碼中直接呼叫 LLM 產生邏輯,而產生的結果不是暫時性的提示文字,而是實際可編譯、可審查、可提交的 Kotlin 原始碼。JetBrains 將此專案定位為研究原型,而非生產環境的正式工具,但其設計方向引發了開發工具圈的高度關注。Smart macros 的核心概念是讓 LLM 生成的程式碼成為程式本身的一部分。
具體來說,Smart macro 就是一個普通的 Kotlin 函式呼叫,但這個函式的主體是由 LLM 動態產生的 Kotlin 程式碼,而不是由開發者事先手寫完成。KotlinLLM 刻意維持極小的公開 API,主要包含兩個關鍵功能:asLlm 與 mockLlm。asLlm 能將某個型別 F 的輸入轉換成型別 T 的輸出,T 可以是 data class、enum、list 或基本型別;mockLlm 則能為指定的介面 T 產生有狀態的實作,其行為會根據呼叫的方法而有所差異,適合用來建立具備真實互動邏輯的測試替身。
開發者實際使用時,不需要撰寫複雜的 LLM 提示詞,只需要在 Kotlin 程式碼中寫下類似這樣的片段:以 asLlm 將 GitHub API 的回應轉換成 List<Issue> 型別,並在 hint 參數中描述想要的結果,例如「回傳該 repository 所有適合初學者的 issue」。KotlinLLM 背後的機制會自動處理 LLM 呼叫、結果解析與程式碼生成。這種寫法讓程式碼看起來就像一般的 Kotlin 函式呼叫,但實際上具備了動態生成與即時演化的能力。KotlinLLM 的執行流程圍繞著一個特殊的 runtime loop 運作。
當專案透過 KotlinLLM 的 run configuration 啟動時,外掛會先掃描專案中所有的 asLlm 與 mockLlm 呼叫,並更新相對應的 bootstrap、provider、parser、mock 等生成檔案。接著,外掛會透過 JDI(Java Debug Interface)啟動應用程式,並在生成的重新生成鉤子上註冊斷點。
當程式執行到某個 LLM 生成的邏輯不符合當下情境時,執行流程會停在中斷點上,外掛會從暫停的執行框架中收集當前的 runtime 數值與型別資訊,交由 LLM agent 提交程式碼更新,最後外掛會編譯這段新程式碼,並在執行緒恢復前重新定義已載入的類別,讓原本的函式呼叫可以用更新後的邏輯重新執行。之所以鎖定 Kotlin/JVM 平台,正是因為這個 runtime evolution loop 高度依賴 JVM 的類別重新定義能力,而 JDI 提供了穩定且成熟的機制來達成這項功能。
JetBrains Research 也提供了一個互動式圖解,逐步展示 Smart macro 的九步 runtime loop,並說明為什麼已經涵蓋的測試情境不會再消耗額外的 LLM 推論呼叫;一旦某個執行路徑被成功生成並驗證過,之後再次走到相同情境時,就直接使用已生成的 Kotlin 程式碼,不再需要 LLM 介入。在實際評估結果方面,JetBrains 研究團隊在改寫過的 Spring Petclinic Kotlin 專案上進行了測試。
該專案包含 18 個 asLlm 呼叫點,在 Smart macro 演化完成後,24 個應用程式情境全部成功執行,熱重載成功率達到 100%,而編譯與類別重新定義所增加的執行時間開銷約僅佔總執行時間的 1%。另外,研究團隊也建置了一個名為「GitHub Beginner Issue Radar」的合成專案,用來解析跨 20 個 repository、超過 3 萬筆 issue 的真實資料,在找出適合初學者的標籤任務上,達到了約 0.89 的 recall。安裝 KotlinLLM 有明確的環境要求,外掛需要 IntelliJ IDEA 2025.2.x 與 JDK 21,並需在目標專案的 .
kotlinllm 檔案中透過 Tools 選單中的 KotlinLLM Settings 設定 OpenAI API key。該專案以 Apache License 2.0 授權釋出,repository 內包含可執行的範例、完整的論文撰寫說明,以及 KotlinConf 2026 演講的錄影。不過,JetBrains 明確強調 KotlinLLM 目前並不適合直接作為生產環境的 runtime 使用。外掛本身是實驗性質的研究原型,但從外掛產生的輸出結果則是可以部署的。
一旦某段行為已經被生成完畢,目標專案就可以在完全不啟動 KotlinLLM、也不再發出任何 LLM 請求的情況下,獨立編譯並執行這段行為。開發者交付的是純粹的 Kotlin 程式碼,而不是一個帶有模型依賴的 runtime,因此其產出可以像一般程式碼一樣進行程式碼審查與版本控管。以公司層級來看,KotlinLLM 最適合的採用者是目前的中大型 Kotlin/JVM 企業中的 R&D 部門或平台團隊,以及可接受原型工具的初創公司。對於受監管產業中的企業,則應將 LLM 生成的原始碼視為可審查的一般程式碼來管理,而這恰好也是 KotlinLLM 儲存結果的方式。
在應用場景上,KotlinLLM 對於維運繁重 JVM/Kotlin 系統的金融科技與銀行業特別具有吸引力,同時也適用於開發者工具、電子商務、物流,以及任何需要解析混亂第三方 API 回應的團隊。典型的使用情境包括將半結構化的 API 回應正規化為型別安全的值、建立隨需求演化的測試替身、適應上游 schema 變動,以及對充滿雜訊的文字欄位進行分類處理。整體而言,KotlinLLM 代表的是一種將 LLM 從程式碼產生工具轉變為程式碼執行基礎設施的實驗性嘗試,其成效與限制仍有待社群的進一步驗證。
Related
相關文章

曝字節訓10億參數大模型,或超Mythos 5,張一鳴、梁汝波先後發聲
字節跳動正在訓練一個參數量高達10萬億的AI模型,規模可能超越Anthropic的Mythos 5。創辦人張一鳴在內部會議中強調編程的關鍵地位,並反對模型蒸餾,認為這只能複製而非超越對手。字節跳動在AI領域持續加大投入,同時在產品端與訓練端採取雙線進攻策略。

AI 需求擠爆雲計算,消息稱 AWS 要求工程師關閉閒置服務器減少資源浪費
因AI需求導致算力緊缺,亞馬遜AWS要求工程師關閉閒置的EC2實例,以減少資源浪費。數據顯示約65%的EC2實例在30天內平均CPU利用率低於20%,AWS因此升級計算優化器自動標記低使用率虛擬機。此外,AWS過去一年新增3.8吉瓦電力容量,仍難以應對GPU雲端實例的龐大需求。

六巨頭定AI插件新標準,撞臉Claude,Anthropic沒上桌
六大科技巨頭(AWS、Anysphere、GitHub、微軟、OpenAI、Vercel)聯合發布AI智能體插件統一開放規範Agent Plugins 1.0.0,旨在統一插件打包格式,減少開發者重複勞動。該規範的結構與Anthropic的Claude Code插件系統高度相似,但Anthropic並未參與制定,而是繼續經營自己的封閉生態。

DeepSeek重啟融資,三年市值對齊騰訊?
DeepSeek重啟第二輪融資,以5000億元人民幣估值尋求籌集80億美元,但網傳一份由小型醫藥私募發起的專項基金募資材料引發網友質疑,後經DeepSeek員工證實部分數據屬實。該公司近期宣布API大幅漲價,可能打破其以低價換規模的估值邏輯,面臨客戶流失風險。市場關注其能否從「價格屠夫」轉型為價值提供商,以及三年內市值能否對齊騰訊等巨頭。

可靈AI核心技術骨幹王鑫濤被曝離職
快手可靈AI核心技術骨幹王鑫濤被曝離職,去向未知,快手官方與本人均未回應。王鑫濤是圖像與視頻生成領域知名開源項目主要作者,被視為可靈從0到1的關鍵推手。其離職發生在可靈完成獨立融資、估值180億美元的關鍵階段,可能影響研發進度與競爭優勢。

AI短劇、漫劇、戀綜、電影、藝人都有了,AI觀眾也不遠了
2026年AI影視內容全面爆發,從短劇、長劇到電影、綜藝,AI製作的作品大量湧現,衛視也開始播出AI短劇。AI演員如方桃子迅速走紅,商業變現能力驚人,廣告報價甚至超過許多真人網紅。AI短劇市場規模已突破220億元,用戶超過6億,但同時也引發了對真人演員就業和內容品質的擔憂。