通过后台代理,您可以生成异步代理,在远程环境中编辑和运行代码。查看它们的状态、发送后续指令或随时接管控制。

如何使用

  1. 按下 打开后台代理控制面板,以列出代理、生成新代理并查看状态。
  2. 提交提示后,从列表中选择您的代理以查看状态并进入机器。

后台代理需要几天的数据保留。

反馈

请将反馈发送至我们的 Discord #background-agent 频道background-agent-feedback@cursor.com。请发送错误报告、功能请求或想法。

设置

后台代理默认在基于 ubuntu 的隔离机器中运行。代理具有互联网访问权限并可以安装软件包。

GitHub 连接

后台代理从 GitHub 克隆您的仓库并在单独的分支上工作,推送到您的仓库以便轻松交接。 授予对您的仓库(以及任何依赖仓库或子模块)的读写权限。我们将来会支持其他提供商(GitLab、BitBucket 等)。

基础环境设置

对于高级情况,请自行设置环境。获取连接到远程机器的 IDE 实例。设置您的机器,安装工具和软件包,然后创建快照。配置运行时设置:
  • 安装命令在代理启动前运行并安装运行时依赖项。这可能意味着运行 npm installbazel build
  • 终端在代理工作时运行后台进程 - 如启动 Web 服务器或编译 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 定价 的信息。

安全性

后台代理在隐私模式下可用。我们从不使用您的代码进行训练,仅在运行代理时保留代码。了解更多关于隐私模式的信息 您应该了解的内容:
  1. 为您想要编辑的仓库向我们的 GitHub 应用授予读写权限。我们使用此权限来克隆仓库并进行更改。
  2. 您的代码在我们的 AWS 基础设施中的隔离虚拟机内运行,并在代理可访问期间存储在虚拟机磁盘上。
  3. 代理具有互联网访问权限。
  4. 代理会自动运行所有终端命令,让它能够在测试上进行迭代。这与前台代理不同,前台代理需要用户批准每个命令。自动运行会带来数据泄露风险:攻击者可能执行提示注入攻击,诱骗代理将代码上传到恶意网站。请参阅 OpenAI 关于后台代理提示注入风险的解释
  5. 如果禁用隐私模式,我们会收集提示和开发环境以改进产品。
  6. 如果您在启动后台代理时禁用隐私模式,然后在代理运行期间启用它,代理将继续在禁用隐私模式的状态下运行,直到完成。