AI News HubLIVE
站內改寫1 分鐘閱讀

我們如何設定雲代理環境 · Cursor

Cursor 為他們的單體倉庫開發了一個雲代理環境,包括將雲環境與本地開發匹配、透過 anydev CLI 簡化介面、透過 Cursor Cloud MCP 實現自愈,以及改善代理體驗。最終,雲代理現已負責超過一半的合併 PR。

Cursor 團隊在決定讓雲代理能夠自主測試程式碼變更後,首先著手最佳化自身程式碼庫的測試環境。他們發現,開發環境本身就是一個產品,只不過其使用者是代理。為了讓雲代理高效工作,必須使雲環境與本地開發環境一致,讓程式碼庫足夠清晰以便代理無需隱性知識即可執行和測試程式碼,並且隨著程式碼庫的變化保持環境健康。

最初,Cursor 的開發者主要在 Mac 上工作,而云虛擬機器執行 Linux,因此團隊將各種開發工具和設定指令碼適配到 Ubuntu 虛擬機器,並建立了專用的 Dockerfile 作為雲代理的起始映象。同時,安全團隊新增了網路出口限制、代理 Git 遠端訪問、提交和提交訊息中的秘密掃描以及工具結果中的秘密編輯等功能,確保秘密安全。

即便環境就緒,代理仍然不擅長執行程式碼。為此,團隊開發了名為 anydev 的命令列工具,代理可透過它啟動所有服務。anydev 提供了多重幫助選單,幷包含一個監控程序,可自動重啟長時間執行的構建命令,從而減輕模型負擔。代理因此能夠可靠地執行程式碼,並透過 screen 錄製功能在 Slack 或 PR 中分享演示,工程師無需本地檢出分支即可合併和部署程式碼。

為了維護環境健康,Cursor 構建了 Cursor Cloud MCP,提供動態可發現的工具介面,使代理能夠檢測和修復環境問題。基於 MCP,團隊設定了 Cloud Doctor 自動化程式,定期檢查故障,進行根因分析,並自動開啟 PR 修復高置信度問題。此外,Cloud Doctor 還透過檢查代理軌跡來改進技能和工作流,從而不斷提升代理的開發體驗。

透過這一系列努力,雲代理在 Cursor 單體倉庫中的採用率大幅提升:2024 年 12 月,代理撰寫了約十分之一的合併 PR,而現在這一比例超過一半。團隊總結道,環境是關鍵,並建議其他團隊從三個問題入手:代理是否擁有與開發者相同的工具和資料?代理是否能找到記錄實際工作方式的技能?代理是否能測試和驗證核心工作流?