透過背景代理,您可以生成異步代理,在遠程環境中編輯和運行代碼。隨時查看它們的狀態、發送後續指令或接管控制。

如何使用

  1. 按下 開啟背景代理控制面板,以列出代理、產生新代理並查看狀態。
  2. 提交提示後,從列表中選擇您的代理以查看狀態並進入機器。

背景代理需要幾天的資料保留期。

意見回饋

請將意見回饋發送至 我們的 Discord #background-agent 頻道background-agent-feedback@cursor.com。請發送錯誤報告、功能請求或想法。

設定

背景代理程式預設在基於 ubuntu 的隔離機器中運行。代理程式具有網路存取權限,並可以安裝套件。

GitHub 連接

背景代理程式從 GitHub 複製您的儲存庫並在單獨的分支上工作,推送到您的儲存庫以便輕鬆交接。 授予您的儲存庫(以及任何相依儲存庫或子模組)讀寫權限。我們未來將支援其他提供商(GitLab、BitBucket 等)。

基礎環境設定

對於進階情況,請自行設定環境。取得連接到遠端機器的 IDE 實例。設定您的機器,安裝工具和套件,然後建立快照。配置執行時設定:
  • 安裝命令在代理程式啟動前運行並安裝執行時相依性。這可能意味著運行 npm installbazel build
  • 終端機在代理程式工作時運行背景程序 - 例如啟動網頁伺服器或編譯 protobuf 檔案。
對於最進階的情況,使用 Dockerfile 進行機器設定。dockerfile 讓您設定系統層級的相依性:安裝特定的編譯器版本、除錯器,或切換基礎作業系統映像。不要 COPY 整個專案 - 我們管理工作區並檢出正確的提交。仍然在安裝腳本中處理相依性安裝。 輸入您開發環境所需的任何機密 - 它們在我們的資料庫中以加密方式儲存(使用 KMS)並在背景代理程式環境中提供。 機器設定存放在 .cursor/environment.json 中,可以提交到您的儲存庫(建議)或私人儲存。設定流程會引導您建立 environment.json

維護命令

設定新機器時,我們從基礎環境開始,然後運行您 environment.json 中的 install 命令。這個命令是開發者在切換分支時會運行的命令 - 安裝任何新的相依性。 對大多數人來說,install 命令是 npm installbazel build 為了確保快速的機器啟動,我們在 install 命令運行後快取磁碟狀態。設計它可以多次運行。只有磁碟狀態會從 install 命令中持續存在 - 在這裡啟動的程序在代理程式啟動時不會存活。

啟動命令

運行 install 後,機器啟動,我們運行 start 命令,然後啟動任何 terminals。這會啟動在代理程式運行時應該存活的程序。 start 命令通常可以跳過。如果您的開發環境依賴 docker,請使用它 - 在 start 命令中放入 sudo service docker start terminals 用於應用程式程式碼。這些終端機在您和代理程式都可以使用的 tmux 會話中運行。例如,許多網站儲存庫將 npm run watch 作為終端機。

environment.json 規格

environment.json 檔案可能看起來像:
{
  "snapshot": "POPULATED_FROM_SETTINGS",
  "install": "npm install",
  "terminals": [
    {
      "name": "Run Next.js",
      "command": "npm run dev"
    }
  ]
}
正式來說,規格在此定義

模型

只有與 Max Mode 相容的模型可用於背景代理。

定價

了解更多關於 Background Agent 定價

安全性

Background Agents 在隱私模式下可用。我們從不使用您的程式碼進行訓練,僅在執行代理時保留程式碼。了解更多關於隱私模式的資訊 您應該知道的事項:
  1. 為您想要編輯的儲存庫授予我們 GitHub 應用程式的讀寫權限。我們使用此權限來複製儲存庫並進行變更。
  2. 您的程式碼在我們的 AWS 基礎設施中的隔離虛擬機器內執行,並在代理可存取期間儲存在虛擬機器磁碟上。
  3. 代理具有網際網路存取權限。
  4. 代理會自動執行所有終端命令,讓它能夠在測試上進行迭代。這與前台代理不同,前台代理需要使用者批准每個命令。自動執行會帶來資料外洩風險:攻擊者可能執行提示注入攻擊,誘騙代理將程式碼上傳到惡意網站。請參閱 OpenAI 關於背景代理提示注入風險的說明
  5. 如果停用隱私模式,我們會收集提示和開發環境以改善產品。
  6. 如果您在啟動背景代理時停用隱私模式,然後在代理執行期間啟用它,代理會繼續以停用隱私模式的狀態執行,直到完成為止。