上下文即程式碼
隨著語法變得廉價且豐富,架構控制成為稀缺資源。有效治理始於上游,在生成開始前,意圖、約束和威脅模型塑造智慧體的工作上下文。目標並非更好的提示,而是在構建時邊界防止結構無效的程式碼進入系統。
隨著AI驅動的程式碼生成變得普遍,語法本身不再是稀缺資源。架構控制——確保系統結構完整性的能力——成為新的瓶頸。本文作者提出,有效的治理必須在程式碼生成之前開始:在構建時定義意圖、約束和威脅模型,而不是依賴事後審查。
文章描繪了一幅令人警醒的圖景:“弗蘭肯斯坦工廠”。這些暗工廠(丹·夏皮羅語)正在運轉:令牌透過三迴圈飛馳,功能一夜之間上線,程式碼庫在早餐前遷移完畢。速度是真實的,但理解債務(阿迪·奧斯馬尼提出的術語)在其背後悄然累積。生成引擎如此高效地產生工作語法,以至於它們工業化了架構不可控系統的建立。交付日,創造物看似令人印象深刻、功能完備,但當需要治理時,危機降臨。治理系統意味著讓其對設計邊界負責——能夠可靠地說明它為何工作、什麼允許接觸什麼,並在禁止的狀態變化發生前加以阻止。維克多的災難不在於創造行為,而在於缺乏治理框架。
對於快速原型開發或功能交付,無約束的生成是強大工具。但對於企業支付系統、保險核保引擎、物流編排器和受監管平臺,問題不是“程式碼是否交付”,而是“當它做錯事時誰承擔責任?”在這裡,對每個功能請求自動說“是”並不能解決問題,反而將其工業化。考慮一個標準的Jira工單:“支付成功後新增郵件通知。”初級開發者可能試圖將郵件傳送邏輯直接塞入PaymentProcessor類。資深架構師在程式碼審查中阻止:“不,向訊息匯流排觸發PaymentSuccessEvent。”這種人為摩擦——架構上的“不”——保持了系統的可維護性。無約束的AI代理缺乏這種決斷力,它們預設為終極“唯唯諾諾者”。將同一工單交給標準編碼代理,它不會爭論限界上下文,而是生成300行語法完美的程式碼,將SMTP庫直接匯入計費域核心,然後提交拉取請求。測試透過,CI變綠,但系統在結構上已淪為災難。
這不是惡意,而是代理迴圈的構建方式所致。沒有顯式的架構約束,系統的湧現行為是滿足即時使用者意圖。代理被編排為交付功能,而非保衛架構。理解債務是結構性後果:AI生成語法的速度超過人類閱讀或治理的速度。期望機率模型自行強制執行結構完整性是範疇錯誤。沒有治理框架,代理總是選擇通往“是”的最小阻力路徑。你不能透過僱傭更多人閱讀程式碼或加快生成迴圈來解決程式碼過量生產。唯一可擴充套件的答案是在放水前建造混凝土河床。當前時代自動化了“是”字,我們應該自動化“不”字。
保護執行時環境防止怪物逃跑,但要防止其被建造,我們必須回到IDE和CI/CD管道,治理生成。“偉大的軟化”:風險從構建時轉向執行時。編譯器從未保證軟體正確,但它們確定性地治理了特定層的結構風險——語法有效性、型別相容性、連結規則和執行可行性。透過強制執行硬約束,編譯器充當自動化邊界,在開始執行前消除了一整類低階結構故障。這種風險委託是軟體工程的悄然勝利。隨著時間推移,我們為了速度故意軟化某些邊界:動態語言、更豐富的執行時、反射和日益抽象的框架。如今,透過代理AI,我們比以前更徹底地軟化邊界。自然語言已成為軟體生成的高階控制平面,模糊了資料和指令之間的分離。在推斷上下文中,系統提示、檢索文件、使用者訊息、工具輸出和外部內容都流經相同的權重,沒有硬特權邊界。現代模型可能抗拒幼稚的攻擊,但仍易受到偽裝成合法操作上下文的間接注入。不可信文本可以塑造控制流,這是真正的軟化。
結論很簡單:AI生成程式碼能執行不再是系統正確性的有意義的代理。語法豐富,執行容易,結構治理缺失。我們將邏輯編寫外包給機器,但沒有構建治理機器允許生成什麼的確定性邊界。如果我們想要恢復控制,不能依賴人類以機器速度進行程式碼審查,必須重建構建時大門。
從依賴膨脹到定製架構:幾十年來,行業對複雜性的預設響應是透過積累抽象——單體框架、龐大的依賴樹和越來越厚的間接層。當開發時間和認知頻寬是稀缺資源時,匯入50兆位元組的庫以避免重複樣板是合理權衡。對於AI代理,這種權衡發生變化。問題不在於抽象,而在於不透明性。當核心業務邏輯隱藏在專有裝飾器、內部框架或自定義編排層後面時,執行變成黑箱。代理無法安全推理它無法追蹤的程式碼,需要直接可見的因果關係。隱藏的流將推理降級為猜測,猜測悄然變成架構漂移。同時,AI將過程化程式碼成本推向零。樣板不再昂貴,清晰度才是。設計問題從“我們可以抽象掉多少?”變為“為了安全推理,必須保留多少顯式性?”答案是定製架構:薄基礎設施、顯式領域邏輯、硬邊界和窄範圍元件,帶有可見契約。價值不再在於你避免寫多少程式碼,而在於系統多麼清晰地宣告其邊界。
這種不透明性也破壞了驗證。AI審查可以捕獲區域性缺陷、風險模式和實現錯誤,但對架構漂移和缺失的業務意圖視而不見,除非這些約束被顯式編碼。上下文編譯模式:在IDE和CI/CD管道中治理生成,在單行語法上合理的程式碼到達人類審查者之前。這不是提示工程,而是構建時治理:兩層防禦在LLM推理觸發前組裝。第一層是結構化上下文注入(從優先順序工件組裝提示),第二層是生成後靜態驗證(確定性AST檢查強制執行沒有機率模型能覆蓋的規則)。確定性構建時治理不是迴歸正式軟體規範(如UML),也不是偽裝成Markdown的提示工程。它是對生成空間的機械約束,使顯式宣告的邊界違規在設計上可拒絕。上下文編譯不消除架構審查或取代工程判斷,而是確保代理在定義的結構不變性河床內操作。工程在隱式規則變為顯式宣告時演變。應用程式開發正在跨過這一邊界。高階工程師的新工作是宣告性邊界工程:顯式宣告系統絕對禁止做的事情。失敗不在於框架,而在於過程:將無約束的AI代理指向充滿隱形魔法的程式碼庫,期望為人類生成程式碼設計的CI/CD管道捕捉錯誤。答案是構建代理上下文的編譯器。上下文編譯模式是使這具體化的階段化管道。