Cursor Agent Swarms and Model Economics
Cursor Agent Swarms and Model Economics
Hierarchical Swarms Reduce Cost and Increase Accuracy
Cursor 的研究顯示,代理群集(agent swarms)的層級化分解任務——將高層級規劃與低層級執行分離——能顯著改善軟體工程成果,同時降低運算成本。在一個僅使用文件來在 Rust 中重建 SQLite 的基準測試任務中,新的 "planner-worker" 群集架構在所有模型配置中都優於先前的迭代版本,部分設置在 sqllogictest 套件上達到了 100% 的通過率。
The Planner-Worker Architecture
大型技術任務被結構化為樹狀結構,其中根目標會被遞迴地細分為基本的作業單元。該群集利用兩個不同的角色來管理此結構:
- Planner Agents: 由頂尖模型(frontier models)驅動,這些代理會將目標拆解成碎片並進行委派,而不會親自執行實作。
- Worker Agents: 由速度更快、成本更低的模型驅動,這些代理會執行特定的委派任務。
這種分離可以防止「上下文漂移」(context drift),這是在單一代理系統中常見的失敗模式,即模型在專注於細節時會失去對全局目標的視角,或者在試圖維持大局觀時表現出拙劣的實作。
Solving Coordination at Scale
擴展到數百個並行代理會引入在人類工程團隊中通常不會看到的失敗模式。為了處理每秒 1,000 次提交(commits)的峰值吞吐量,Cursor 開發了一種自定義的版本控制系統(VCS)來實施特定的協調機制:
Managing Design and Conflict
- Split-Brain Design: 為了防止兩個規劃者(planners)以不同的方式實作相同的概念,規劃者會被提示在中心化地做出設計決策,並確保沒有兩個委派的子樹會處理同一個問題。
- Planner Contention: 當規劃者意見不合時,他們會在共享的設計文件中記錄決策。程式碼依賴於這些文件,透過編譯檢查的引用來進行;一個調解器(reconciler)會合併文件以將決策傳播到下游。
- Merge Conflicts: 一個中立的第三方代理充當公正的調解人,以解決工作者代理(worker agents)之間的衝突,類似於合併隊列(merge queue)。
- Megafiles: 為了防止臃腫的文件,工作者代理可以標記過大的文件,觸發外部代理將文件分解為較小的模組。
- Ossification: 為了防止代理避免核心代碼變更,系統「授權有意為之的破壞」。代理可以修補核心代碼並留下推理邏輯的註釋;編譯器接著會強制所有依賴的代理更新其工作以符合新的設計。
Model Economics: Frontier Planning vs. Efficient Execution
實驗數據顯示,頂尖級別的智能主要用於高層級協調、設計決策和消除歧義,而非編碼本身。這允許透過使用混合模型組合來實現巨大的成本節約。
Cost Comparison of Model Mixes
在 SQLite 實驗中,不同配置產生的品質結果相似,但成本差異巨大:
| Model Mix | Role Distribution | Relative Cost |
|---|---|---|
| GPT-5.5 | Planner & Worker | Highest (~$10,565) |
| Opus 4.8 / Composer 2.5 | Planner / Worker | Lowest (~$1,339) |
雖然工作者(workers)佔據了絕大部分的 token,(通常超過 90%),但成本是由規劃者(planner)驅動的。在 Opus 4.8/Composer 2.5 混合模式中,規劃者產生的 token 很少,但卻佔據了成本的 2/3,而工作者集群處理了大部分工作,僅花費了總支出的 1/3。
Results of the SQLite Experiment
為了驗證群集,Cursor 將任務交給它在沒有訪問原始源代碼或互聯網的情況下,使用 Rust 在實作 el 835 頁的 SQLite 手冊。
Performance Gains
將舊的群集框架與使用 Grok 4.5 的新框架進行比較,揭示了效率的顯著差異:
- Commit Volume: 舊的群集在兩小時內產生了 68,000 次提交(commits),(主要為「忙碌工作」或變動量,churn),而新的群集則更具針對性。
- Merge Conflicts: 舊的運行版本中累積了超過 70,000 次衝突;新的運行版本在四小時內記錄了少於 1,000 次衝突。 | Code Efficiency: 在 Fable 5 混合模式中,新的群集使用 9,908 行引擎代碼完成了任務,相比之下,舊的群集使用 64,305 行代碼來達到相同的結果。
Community Perspectives and Critiques
技術同行之間的討論突顯了這種方法的潛可能與局限性:
"I think the concept of integrating is the real challenge. Re-writing code in new languages based on decent docs. is a difficult but less useful measure of how AI can help replace engineers."
批評者指出,SQLite 的源代碼和各種 Rust 重寫版本(例如 Turso 的)可能存在於模型的訓練數據中,這表明實驗可能是在衡量記憶力而非純粹的推理能力。其他人則指出,雖然協調框架非常出色,但建立一個完全獨特的東西——而不是重建現有的軟體,這仍然是代理群集(agent swarms)代理的主要障礙。