上下文即代碼
隨着語法變得廉價且豐富,架構控制成為稀缺資源。有效治理始於上游,在生成開始前,意圖、約束和威脅模型塑造智能體的工作上下文。目標並非更好的提示,而是在構建時邊界防止結構無效的代碼進入系統。
隨着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管道捕捉錯誤。答案是構建代理上下文的編譯器。上下文編譯模式是使這具體化的階段化管道。