在傳統的軟體開發生命週期中,我們編寫的程式碼與描述它的文件之間,經常會出現日益擴大的差距。我們建置新功能、修復錯誤、重構架構,但 README 文件、設計文件和內部維基經常跟不上腳步。這種「文件債」對人類開發者和我們合作的 AI 代理都構成了重大障礙。

然而,隨著 AI 的代理能力越來越強,我們正進入一個軟體能在非常真實的意義上實現自我改進的新時代。

代理式 AI 擁有一種雙重能力,從根本上改變了我們維護軟體的方式:

這創造了一個持續的迴圈。當一個 AI 代理實施一項新功能時,它的最終任務不僅僅是「提交程式碼」。相反地,作為持續對齊(Continuous Alignment)流程的一部分,該代理的最後一步是反思所做的變更,並相應地更新專案的知識庫。

在此模型中,文件不再是靜態的產物;它是系統的活躍部分,與程式碼一同演進。軟體透過確保其內部表述和外部文件始終準確來「改進」自身,從而使下一個迭代更加有效率。

當我們聽到「自我改進軟體」這個詞時,我們的思緒經常會直接跳到科幻小說。我們會聯想到《魔鬼終結者》中的天網(Skynet)或《電子世界爭霸戰》中的主控程式(MCP)——這些擁有自己議程並超越人類控制的失控人工智慧。

但現在是時候面對現實了:我們所談論的自我改進類型,要實際得多,也危險得多。

AI 是在你的指示下運作,並跟隨你的領導。雖然它在執行任務時是自主的,但它不太可能失控。它沒有自我意志、自我決定能力,也沒有接管世界的秘密計畫。它是一種高度複雜的工具,旨在自動化人類開發者已經在使用的那種迭代流程。

我們一直致力於持續改進和記錄我們的系統。我們使用 CI/CD 管道來自動化測試和部署。自我改進軟體只是下一個合乎邏輯的步驟:知識維護的自動化。

透過讓 AI 編寫和維護自己的文件,我們極大地縮短了迴圈。

當你與代理開始一項新任務時,它不必根據一年前的 README 去猜測一個複雜模組如何運作。它可以依賴由前一個代理(甚至它自己)在幾小時前更新的文件。這減少了每個新子代理的「導入時間」,並最大限度地減少了因過時資訊導致的幻覺風險。

這種自我文件化是持續對齊的一個關鍵面向——讓 AI 與我們的設計以及我們希望系統演進的方向保持同步。它確保了人類與 AI 之間的共同理解始終基於程式碼庫的最新實際情況。

自我改進軟體並非要創造一個數位神祇;而是要建立一個更具韌性、更易於維護且更易於理解的系統。透過閉合程式碼與文件之間的迴圈,我們為更複雜的協作奠定了基礎。

在本系列的下一部分,我們將探討如何將這些相同的代理能力應用於軟體工程中最具挑戰性的領域之一:處理舊有程式碼庫。代理如何幫助我們收回一個存在多年技術債務和文件缺失的系統?