计算机操作¶
每个 cloud agent 都在自己隔离的虚拟机中运行,并配备完整的桌面环境。这些 Agent 可以使用鼠标和键盘控制桌面和浏览器,使它们能够像人类开发者一样与自己构建的软件交互。
这意味着 Agent 可以启动开发服务器,在浏览器中打开应用,逐步点击完成 UI 流程,并在推送 PR 之前验证其更改是否正常工作。更多内容请参见公告博文。
演示和工件¶
agents 会生成截图、视频和日志引用等工件,用来展示其工作成果。这些工件会附加到 PR 上,这样你无需在本地检出该分支就可以快速验证更改。
GitHub 中的工件¶
你可以通过在 云端代理 仪表盘中启用 Allow posting artifacts to GitHub 设置,选择让 云端代理 将工件直接嵌入 GitHub PR 描述中。
GitHub 的图片代理要求使用公共 URL,因此 PR 描述中的工件会使用较长且难以猜测、无需身份验证即可访问的 URL。作为参考,在 2023 年 5 月之前,GitHub 对所有 issue 和 PR 附件都使用公共 URL。
远程桌面控制¶
你可以接管智能体的远程桌面,直接与智能体正在构建的软件交互。你可以随时将控制权交还给智能体,让它继续工作。
云端代理运行在远程 VM 中,并且可以完整配置你的仓库、依赖项、工具链和设置脚本。这样一来,无需在本地机器上检出分支,你就能直接在智能体的 VM 中测试更改。
MCP 工具¶
Cloud agents 可以使用为你的团队配置的 MCP (Model Context Protocol) 服务器。这样一来,agents 在运行时即可访问外部工具和数据源,例如数据库、API 和第三方服务。
在 cursor.com/agents 中通过 MCP 下拉菜单添加并启用个人 MCP 服务器。团队管理员可在 Dashboard -> Integrations & MCP 下配置共享服务器。
管理员可以将共享的团队 MCP 服务器关联到默认团队 marketplace。关联后,这些服务器会继续对 云端代理 可用,也可供团队成员在代理窗口、IDE 和 CLI 中安装和配置。
Cloud agents 支持需要 OAuth 的 MCP 服务器。OAuth 按用户生效,即使是团队级别共享的 MCP 服务器也如此。
自定义 MCP 服务器¶
可以使用 HTTP 或 stdio 传输方式添加自定义 MCP 服务器。不支持 SSE 和 mcp-remote。
MCP 配置在持久化存储时会被加密。敏感字段会被隐藏,保存后任何用户都无法再读取其内容:
env— 用于 stdio 服务器的环境变量headers— 用于 HTTP 服务器的请求头CLIENT_SECRET— 用于 HTTP 服务器的 OAuth 客户端密钥
HTTP vs stdio¶
- HTTP (推荐) — 服务器配置绝不会出现在云端代理的 VM 环境中。该代理无法访问刷新令牌、请求头或其他凭证。工具调用会通过后端代理。
- Stdio — 服务器在云端代理的 VM 内运行,因此该代理可以访问服务器的配置和环境变量。这与 stdio MCP 在 Cursor IDE 中的工作方式类似。
Stdio 服务器依赖 VM 环境来执行。在启动云端代理之前,我们无法验证 stdio 服务器是否能成功运行。我们建议尽可能使用 HTTP MCP;如果你使用 stdio 服务器,请正确配置你的 environment setup。
Cursor Cloud MCP¶
Cursor Cloud MCP 是一个内置的诊断服务器,可在云端代理运行期间使用。智能体可以查看当前运行,浏览同一环境中的相关运行,并获取会话记录、diff 元数据、环境详情、运行事件和设置日志,而无需手动收集链接和文件。
团队管理员可以在团队设置的 MCP 配置 中为其团队禁用 Cursor Cloud MCP。有关 MCP 管理控制的更多信息,请参阅团队仪表盘。
访问和权限¶
云端代理对话可能包含提示词、代码、工具输出和机密信息。所有工具都会对每个请求执行访问检查。
| 角色 | 你可以访问的内容 |
|---|---|
| 团队管理员 | 对于其已拥有访问权限的仓库和环境,可列出并查看团队内云端代理运行的详细信息 (包括会话记录) |
| 非管理员 | 只能访问你自己的运行和会话记录。你无法通过此 MCP 查看其他团队成员的对话 |
即使是在共享环境中列出运行时,非管理员也只能看到由自己启动或拥有的智能体。服务账户遵循与其运行所在用户或团队上下文相同的规则。
可查看的内容¶
| 类别 | 示例 |
|---|---|
| 当前运行 | 运行 ID、URL、仓库、分支、模型、所有者、生命周期状态,以及运行的启动位置 (Cursor、Slack、GitHub、API 等) |
| 事件 | 运行仪表盘中显示的设置、PR、工件和 MCP 身份验证结果。对于当前运行,请使用 get-events;对于其他运行,请使用带有 include_events 的 batch-fetch-details。请参阅工具下的事件类型。 |
| 相关运行 | 同一环境中的其他云端代理,或在未附加已保存环境时,同一代码仓库中的其他云端代理 |
| 环境 | 环境版本、完整的环境配置、仪表盘 URL,以及生效的出站网络策略 |
| 会话记录 | 用户与智能体的完整对话,包括可用时的工具调用 |
| diff 元数据 | 智能体是否修改了代码、修改了多少,以及是否创建了 PR |
| 设置日志 | 环境设置和镜像构建步骤中的原始日志 |
工具¶
根据你使用的 MCP 客户端,工具名称可能会包含服务器前缀 (例如 cursor-cloud-run-info) 。底层工具包括:
| 工具 | 用途 |
|---|---|
run-info |
获取当前运行的标识信息、元数据和 URL。从这里开始。 |
environment-info |
获取当前运行的环境版本、配置、仪表盘 URL 以及生效的出站策略。 |
get-events |
列出当前运行仪表盘中的事件,按时间从早到晚排列。 |
list-cloud-agents |
浏览你在此环境中可见的云端代理运行。可按来源、状态、日期、代码更改、PR 创建情况和归档状态进行筛选。 |
batch-fetch-details |
获取特定运行 ID (bcId) 的详细信息。可选择通过 include_events 包含会话记录、diff 元数据、设置日志、环境信息和运行事件 (每个运行写入 events.json;每批最多 50 个运行) 。 |
get-automation |
通过其 ID 获取自动化的详细信息,例如名称和所有者。 |
list-environment-builds |
列出当前环境最近的 构建,并查看其状态。 |
environment-build-logs |
下载构建的安装和设置日志。 |
trigger-environment-build |
使用当前配置或建议的安装和启动命令运行测试构建。 |
propose-environment-json |
在保存环境前,展示安装和启动命令供你审核。 |
take-environment-snapshot |
智能体验证环境设置后,为机器创建快照。 |
check-environment-snapshot |
检查环境快照是否已就绪。 |
request-environment-setup-actions |
请求会阻塞环境设置的用户操作,例如添加机密信息。 |
get-events 以及启用 include_events 的 batch-fetch-details 返回的仪表盘事件 kind 值如下:
kind |
含义 |
|---|---|
setup_started |
环境设置已开始。 |
setup_completed |
环境设置已完成。 |
setup_failed |
环境设置失败。 |
pr_created |
PR 已创建。 |
pr_creation_failed |
PR 创建失败。 |
artifact_created |
演练工件已上传。 |
mcp_auth_error |
MCP 服务器身份验证失败;其工具已跳过,运行继续进行。 |
典型的诊断流程是 run-info → get-events → environment-info → list-cloud-agents → batch-fetch-details (需要其他运行的仪表盘事件时,设置 include_events) 。
订阅¶
智能体任务很少会在最后一次提交后就结束。CI 必须通过。审阅人会留下评论。队友可能需要在 Slack 中回答问题。订阅功能让云端代理能够等待这些事件,并在事件发生后继续工作,无需你再次提供提示词。
智能体订阅事件源后,会结束当前轮次,并在收到匹配事件时被唤醒。事件会作为同一对话中的后续消息送达,因此智能体可以在完整上下文中继续工作:
- 创建 PR,然后响应评审评论和 CI 失败,直到合并
- 在 Slack 中提问,并在有人回复后继续
- 使用计时器跟进长时间运行的任务
要订阅,请在提示词中说明等待条件。例如,“创建 PR 并保持 CI 通过,直到合并”或“在 #releases 中提问并等待批准”。你也可以调用内置的 /subscribe 技能,其工作方式相同:告诉它要监控什么,智能体会选择合适的订阅。
智能体可以订阅以下集成的事件:
| 集成 | 事件 |
|---|---|
| GitHub | 单个 PR、整个仓库或某位作者的 PR 的 PR 活动 (评论、评审和生命周期更改) ,以及分支上的 CI 结果。使用 GitHub 集成。 |
| Slack | 线程中的回复、频道中的消息,以及新建的公开频道。使用 Slack 集成。 |
| Linear | 新建的问题、状态发生变化的问题,以及问题上的新评论。使用 Linear 集成。 |
| 计时器 | 某个时间点:延迟后的单次提醒,或定期执行的 cron 计划。循环执行也可通过内置的 /loop 技能实现。 |
订阅的工作方式¶
- 订阅属于单个智能体对话。事件会以后续消息的形式唤醒该智能体。
- 短时间内集中到达的多个事件会合并处理,可能只唤醒智能体一次;智能体会在执行操作前重新读取来源 (PR、线程或 问题) 。
- 订阅最多持续 180 天。等待结束后,智能体也会自行取消订阅。
修复 CI 失败¶
云端代理会自动尝试修复它们创建的 PR 中的 CI 失败。目前仅支持 GitHub Actions。
如果出现以下情况,云端代理会跳过自动 CI 后续处理:
- 你已向该分支推送了新的提交;云端代理不会自动修复人工提交中的 CI 失败。
- 你已向智能体发送了后续消息。
- 同一检查在该 PR 的基准提交中已经失败。
- 该 PR 已经有过 10 次 CI 失败后续处理。
要在你所有个人 云端代理 上禁用此功能,请前往 Cursor Dashboard → Cloud Agents → My Settings 并禁用 “Automatically fix CI Failures” 选项。
要在某个特定 云端代理 PR 上禁用此功能,你可以在该 PR 中评论 @cursor autofix off。若要重新启用,请评论 @cursor autofix on。
如果你希望 云端代理 修复你自己 PR 中的 CI 失败,只需像平常一样在评论中 @Cursor 提出请求即可。例如,@cursor please fix the CI failures,或 @cursor fix the CI lint check failure。
自动修复 CI 失败目前仅适用于 Teams;对非 Teams 账户的支持即将推出。
与此同时,如果你想要类似的行为,可以明确要求 云端代理 监控并修复该 PR 上的 CI
失败。
OIDC 身份令牌¶
由 Cursor 管理的 云端代理 VM 可通过本地套接字签发短期有效的 OIDC JWT。agents 使用这些令牌来承担云端角色或调用内部 API,无需存储长期密钥。请参阅 OIDC 令牌。
智能体元数据¶
同一套接字还提供智能体元数据。agents、钩子和脚本可以将智能体 ID、所有者、当前轮次和工作区作为纯文本读取。