線性思維,非線性成本
編碼智慧體簡化了AI工作流的構建,但掩蓋了成本的非線性增長。經典最佳化技術如記憶化、剪枝和動態規劃對於避免重複工作和高額成本至關重要。
許多AI智慧體系統在達到技術上令人印象深刻之前,經濟上就已變得不可持續。團隊通常關注模型選擇、提示設計、工具呼叫和編排,但這些只是系統設定的一部分。更深層的問題是,像Claude Code、Codex和Jules這樣的編碼智慧體使得智慧體工作流更易於生成,但當實現被抽象化後,底層機制就變得難以看清。過去糟糕的工程導致程式碼執行緩慢,現在則產生既昂貴又緩慢的系統。
在設計智慧體系統時,必須記住成本是非線性擴充套件的。單個使用者請求很少只觸發一次模型呼叫,而是擴充套件為路由、檢索、推理、反思、護欄檢查、工具呼叫和合成。每一步都可能重複共享上下文、重新載入狀態、重新計算規劃器決策或重試失敗的路徑。一個看似智慧的工作流實際上可能表現為遞迴的、有狀態的計算,包含重疊的子問題。這聽起來像回溯、動態規劃和記憶化,沒錯,正是如此。
最佳化此類系統的方法已存在,但編碼智慧體使系統更易生成而非更易最佳化。除非認識到底層機制,否則可能永遠不會要求智慧體應用那些能保持系統可行性的最佳化模式。
當使用編碼智慧體生成架構時,很容易止步於“追蹤看起來合理”。工具可以生成路由器、檢索器、規劃器等,它也可能知道快取、剪枝、記憶化和狀態建模,但除非明確要求最佳化層,否則不會自動實現。即使有智慧體指令,若專案檔案未包含對重複上下文、記憶化、快取失效、剪枝和每次請求成本的約束,生成的系統可能在功能上正確,但經濟上浪費。程式碼可透過審查,單元測試可透過,架構看起來合理,而賬單才是隱藏計算最終顯現的地方。
成本乘數首先表現為延遲。使用者看不到路由、重試、反思迴圈,只覺得智慧體太慢。在傳統應用中,失敗操作會丟擲錯誤或超時;在智慧體工作流中,失敗可能看起來像是為提高可靠性所做的努力。例如,若某步驟成功率為60%,透過重試逼近99%需5次重試:1 - (1 - 0.60)^5 ≈ 0.99。但這假設每次重試是獨立試驗,而LLM並非如此。模型從相同分佈中抽取,改變溫度無法修復底層狀態。重響應提供結構化反饋,說明前次嘗試為何失敗,並改變提示、工具選擇等有意義的內容。
記憶化將重複計算轉為查詢,適用於規劃器對相同狀態做決策時。剪枝處理不應進一步探索的分支,當工具反覆返回無新資訊或反思迴圈無改進時,應停止。動態規劃適用於不同分支解決重疊子問題,如研究智慧體在多個文件中詢問類似問題。這些模式——記憶化減少重複決策,剪枝減少重複失敗,動態規劃減少重複子問題求解——構成了許多生產環境智慧體架構缺失的最佳化層。
最佳化需遵循拓撲:集中式編排器應優先對規劃器記憶化;去中心化應快取共享上下文並剪枝冗餘交換;獨立/群體中,記憶化和剪枝是承載負載的;混合式在叢集內用動態規劃,叢集間用記憶化。編碼智慧體使生成形狀容易,但工程工藝在於洞見形狀。