![]()
去年Q3,Storytel的工程師團隊做了個實驗:讓AI接手一個中等復雜度的微服務重構。結果代碼交付速度提升40%,但3個月后維護工單暴漲217%。
負責AI落地的Staff Engineer Tobias Sandelius在復盤時發現,AI生成的代碼像一份沒有配料表的預制菜——你知道它能吃,但不知道里面放了什么,更不敢隨意加熱。
這個發現直接催生了DLD(Decision-Linked Development),一個試圖把「決策痕跡」焊進代碼里的開源框架。
從「氛圍編程」到決策考古
Sandelius的實驗路徑很有代表性。2024年初,他和多數開發者一樣,從「vibe coding」(氛圍編程)入手——描述需求,讓AI自由發揮,人類負責鼓掌。
這種模式在原型階段確實爽快。他內部記錄的一個案例:用Claude 3.5 Sonnet花4小時搭完一個推薦系統的MVP,同等工作量過去需要3天。
但快感在代碼交接時戛然而止。
接手項目的后端工程師在Slack里吐槽:「這坨代碼能跑,但我不知道它為什么這樣跑。改一行可能崩,不改又滿足不了新需求。」Sandelius把這類反饋歸類為「決策真空」——AI寫代碼時做了無數微觀選擇,但這些選擇的上下文在提交(commit)瞬間就被抹掉了。
他試過強制要求團隊寫詳細注釋,但很快發現這是和人類本性作對。另一個極端是spec-driven開發:先寫冗長規格文檔,再讓AI按圖施工。結果文檔撰寫時間吞噬了AI節省的工時,「像為了用洗碗機先手洗一遍碗」。
![]()
DLD的核心設計:把「為什么」寫進語法樹
DLD的解法不是讓AI多說話,而是讓代碼結構本身攜帶決策信息。
框架要求每個代碼變更必須綁定三類元數據:決策動機(為什么改)、約束條件(當時不能做什么)、替代方案(考慮過但放棄的路徑)。這些信息以結構化格式嵌入代碼倉庫,而非游離在外的文檔。
Sandelius打了個比方:傳統注釋是便利貼,可能掉、可能過時;DLD是把決策刻進代碼的「分子結構」里,改代碼必須先讀到之前的「分子式」。
技術實現上,DLD用Git的notes機制和自定義的AST(抽象語法樹)標注層。AI agent在修改代碼前,框架強制它先解析關聯的決策鏈。如果某段代碼的決策依據是「當時Redis集群不穩定,所以用本地緩存兜底」,agent讀到這條就不會在沒有確認基礎設施變化的情況下貿然回退方案。
關鍵約束:DLD不試圖記錄所有信息,只捕捉「如果缺失會導致誤操作」的決策點。
Sandelius在文檔里強調,過度記錄會重蹈spec-driven的覆轍。框架內置了一套啟發式規則,自動標記高風險變更區域——比如涉及并發控制、數據一致性、或依賴外部服務的代碼塊。
3個月實測:速度換可維護性的賬怎么算
2024年Q4,Storytel的一個8人后端團隊在真實項目中試點DLD。
![]()
數據呈現有趣的 trade-off:首次開發周期比純AI模式慢15-20%,但代碼審查時間縮短35%,后續迭代的速度在第二、第三次修改時反超對照組。更關鍵的是,因「誤改歷史決策」導致的生產事故歸零。
Sandelius在內部匯報中引用了團隊的原話:「現在改代碼像看聊天記錄,知道對面(之前的開發者或AI)當時在想什么,而不是對著一堵墻猜。」
但他也坦承局限。DLD對「探索性編碼」——即連人類都還沒想清楚的混沌階段——幫助有限。框架的價值在代碼進入「需要長期維護」狀態時釋放,這恰好是多數AI生成代碼的薄弱環節。
另一個意外發現:DLD讓人類開發者的角色發生了微妙位移。他們花更多時間定義決策邊界和約束,而非直接編寫實現代碼。一位參與試點的工程師形容:「以前我是寫手,現在我是編輯兼事實核查員。」
開源后的反饋與未解問題
DLD在2025年1月開源后,GitHub兩周內收獲1,200星。Sandelius梳理的issue和討論里,有兩類聲音最集中。
一類是工具鏈整合訴求:希望DLD能嵌入Cursor、Windsurf等主流AI IDE的agent工作流,而非作為獨立框架存在。另一類是質疑決策記錄的權威性——如果最初的決策就是錯的,DLD會不會讓錯誤傳承得更牢固?
Sandelius的回應很直接:「DLD不負責判斷決策質量,只負責防止無意識覆蓋。錯誤的決策至少應該被有意識地修改,而不是在無知中撞毀。」
他目前正在探索的下一步,是讓AI agent在讀取決策鏈時,能主動標記「此決策的前提條件可能已變化」的預警。這需要框架與運行時監控、基礎設施狀態打通,復雜度躍升一個量級。
Storytel內部還有一個未公開的實驗:把DLD的決策記錄喂給專門訓練的模型,試圖讓AI不僅能讀取歷史決策,還能評估其當前有效性。早期結果參差——模型對技術約束的判斷準確率約70%,但對業務邏輯的時效性判斷經常翻車。
如果AI coding agent的終極形態是「能獨立維護長期項目」,那么決策鏈的可解析性可能是比代碼生成能力更基礎的瓶頸。DLD的實驗至少證明了一點:在讓AI寫更多代碼之前,我們可能需要先教會它閱讀代碼的「記憶」。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
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.