Cursor动态Worker Pool连接E2B与Vercel企业Agent运行时主题封面

Cursor动态Worker Pool+E2B/Vercel企业Agent运行时

Cursor动态Worker Pool可按请求创建E2B Sandbox或Vercel MicroVM,让Cloud Agent工具在隔离环境执行并缩容到零。本文覆盖Dispatcher、Workflow、Claim、Token、安全、成本和选型。

摘要: Cursor 动态 Worker Pool 可以把等待中的 Cloud Agent 请求路由到企业自管的短命 Worker,并借助 E2B Sandbox 或 Vercel Sandbox 实现“一次任务一个隔离环境、按需启动、空闲暂停或销毁、容量归零”。但 E2B 和 Vercel 只承载 Self-hosted Machines 的工具执行:Cursor 仍负责 Agent loop、推理、规划与产品交互。本文基于 Cursor、E2B 和 Vercel 官方资料,拆解 Pool、Controller、Claim、短期 Worker Token、Sandbox、幂等清理和成本模型,并给出企业部署、安全治理、选型与排错方案。

核心结论

Cursor 动态 Worker Pool 的核心价值不是“把 Agent 模型搬到 E2B 或 Vercel”,而是把 Cloud Agent 的终端、文件、测试和工具执行变成可弹性调度的企业计算任务。请求进入持久 Pool 后,Controller 发现并原子认领请求,为它创建一台隔离 Sandbox,启动 Cursor Worker;任务结束后暂停或销毁计算资源。

  • E2B 更像开箱即用的 Sandbox 调度方案: 官方 cursor-agents 模板包含 Dispatcher,能够监听一个 Cursor Pool,并为每个请求创建独立 cursor-agents-worker Sandbox。
  • Vercel 更像可编程控制面: Vercel Functions、Workflow 与 Sandbox MicroVM 组合成 Controller、耐久工作流和任务级计算平面,适合希望把幂等、重试和清理逻辑写进 TypeScript 项目的团队。
  • 两者都要求 Cursor Enterprise: Pool Worker 必须使用 Cursor Service Account API Key;普通用户 Key、团队管理员 Key或组织 Key不能启动Pool Worker。
  • Scale-to-zero成立的前提是Pool持久存在: 即使没有在线Worker,Pool仍可注册和被选择;Controller发现待处理请求后再启动容量。
  • 安全重点在控制面: Service Account Key应只留在Dispatcher或Workflow控制面;Sandbox只接收短期、用户范围或任务范围的Worker Token,并在任务结束后清理。

先理解:动态Worker Pool不是完整私有化Agent

上一篇 Cursor Self-hosted Machines部署教程 已经说明,Self-hosted Machines 采用混合架构:Cursor 云端运行 Agent loop、模型推理和规划;客户管理的 Worker 负责终端命令、文件编辑、浏览器操作和本地工具调用。动态 Worker Pool 只是把“固定 Worker”进一步改造成“按请求创建的 Worker”。

Cursor 官方把 Team Pool 定义为命名路由目标。请求会在 Pool 中等待,直到可用 Worker Claim。池适合按硬件、团队、仓库或信任边界拆分,例如 gpuiosfrontend-testrestricted-infraCursor Team Pools 文档明确指出,Pool 是基础设施所有权选择,不会把 Agent loop 移出 Cursor 云端。

组件Cursor负责企业/E2B/Vercel负责
Agent loop与推理
请求队列与Pool路由Controller轮询或监听
Claim原子分配Cursor APIController发起调用
Worker创建E2B或Vercel创建Sandbox
代码、终端和测试执行协调工具调用在Sandbox内执行
Service Account Key验证控制面必须安全保管
短期Worker TokenCursor签发控制面写入Sandbox
资源上限与清理不代管第三方算力企业必须实现
模型费与平台计算费Cursor模型费用E2B/Vercel Sandbox费用

因此,标题中的“企业 Agent 运行时”应理解为 Agent 的执行运行时,而不是企业自行托管 Cursor 大模型。若合规要求推理、Prompt、代码片段与工具结果全部不离开企业网络,这两种合作方方案也不等于完全本地部署。

动态Pool的完整生命周期

一条可靠的动态 Worker 流水线通常包含七个状态:

  1. 用户从 Cursor、Slack、GitHub、Linear 或 API 选择目标 Pool 并提交任务。
  2. 请求进入 Cursor 的待处理队列;Pool 即使零 Worker 仍保持可选。
  3. Controller列出或监听待处理请求,并为请求计算稳定的 workerId
  4. Controller调用 Claim Endpoint,原子认领该请求,避免多个控制器重复执行。
  5. 控制面创建 E2B Sandbox 或 Vercel MicroVM,写入短期 Worker Token并启动Cursor CLI Worker。
  6. Worker连接Cursor,克隆或挂载仓库,执行文件、命令、测试与工具调用。
  7. Agent进入Idle或Archived后,控制面释放Claim,暂停或销毁Sandbox,并记录成本和审计数据。
Cursor动态Worker Pool从请求队列到Sandbox执行的控制面架构
Cursor动态Worker Pool生命周期

关键不是能否创建 Sandbox,而是所有步骤都可重试而不产生重复副作用。Vercel 官方指南使用原子 Claim、确定性 Workflow Hook 和确定性 Sandbox 名称,使重试指向同一请求与同一 MicroVM。E2B 的 Dispatcher 则限制最大并发,超出容量的请求继续留在 Cursor 队列。

Cursor Pool的基础配置

部署 E2B 或 Vercel 前,先满足 Cursor 共同要求:

  • Cursor Enterprise 计划。
  • 团队管理员在 Cloud Agents Dashboard 开启 Self-hosted Machines。
  • Cursor Agent-scoped Service Account API Key。
  • Worker镜像内安装 Cursor CLI、Git及构建工具。
  • 出站HTTPS访问 api2.cursor.shapi2direct.cursor.sh,如需Artifact还要访问指定S3 Host。
  • Pool名称、仓库标签和路由规则保持一致。

Pool Worker不能使用个人用户 Key、Team Admin Key或Organization Key。Service Account Key应进入控制面Secret Store,不得写入镜像、Git、构建日志或Agent可读取的工作目录。

先手动验证一个Pool Worker

在自动扩缩容之前,先用一台受控机器验证账号、网络、Pool和仓库路由:

export CURSOR_API_KEY="YOUR_SERVICE_ACCOUNT_API_KEY"

agent worker \
  --pool enterprise-sandbox \
  --idle-release-timeout 600 \
  debug --json

agent worker \
  --pool enterprise-sandbox \
  --idle-release-timeout 600 \
  start --verbose

--idle-release-timeout 600 表示会话结束后保留十分钟空闲窗口,以承接后续消息;Cursor文档给出的默认值为3600秒。动态平台是否应保留十分钟,需要结合Sandbox冷启动、计费粒度和交互模式实测。

注册可缩容到零的Pool

Pool是持久对象,最后一个Worker断开后仍可注册与选择。可以预先通过 API 注册:

curl --request POST \
  --url https://api.cursor.com/v0/private-workers/pools \
  --header "Authorization: Bearer $CURSOR_SERVICE_ACCOUNT_API_KEY" \
  --header "Content-Type: application/json" \
  --data '{
    "scope": "team",
    "poolName": "enterprise-sandbox",
    "workerReadyTimeoutSeconds": 0
  }'

这是 Any-repo Pool 示例。若需要绑定特定仓库,应按官方 API 加入 repoOwnerrepoNamerepoUrl,并让Service Account的仓库范围与过滤条件一致。不要在不理解路由的情况下把敏感仓库交给Any-repo Pool。

E2B方案:Dispatcher+每请求一个Sandbox

E2B 官方文档提供公共 cursor-agents 模板。它不是普通Worker镜像,而是Dispatcher:监听一个 Cursor Pool,收到请求后创建专用 cursor-agents-worker Sandbox。Cursor在云端运行Agent loop,工具调用在E2B Sandbox执行。E2B Cursor集成文档

E2B前置条件

  • E2B API Key。
  • 开启Self-hosted Machines的Cursor Enterprise。
  • Cursor Service Account API Key。
  • 仓库范围的Service Account需要准确Repo URL。
  • 私有仓库通常还需要最小范围Git Token。

创建Dispatcher的官方入口为:

e2b sbx create cursor-agents

模板启动后会输出一次性Setup UI URL。官方说明该URL十分钟过期,不能分享或留在日志。配置流程为:验证Cursor Service Account、选择或创建Pool、填写E2B Key与区域、设置Worker模板和最大并发,然后配置私有仓库访问并启动Dispatcher。

也可以从E2B SDK创建Dispatcher Sandbox:

import { Sandbox } from "e2b";

const dispatcher = await Sandbox.create("cursor-agents", {
  timeoutMs: 60 * 60_000,
  domain: process.env.E2B_DOMAIN,
  lifecycle: {
    onTimeout: "pause",
    autoResume: true,
  },
});

const { stdout } = await dispatcher.commands.run(
  'node /opt/cursor-agents/create-launch-url.mjs "$E2B_DOMAIN"',
  { envs: { E2B_DOMAIN: process.env.E2B_DOMAIN ?? "e2b.app" } },
);

console.log(stdout.trim());

这段代码来自E2B集成思路,真正部署时不要把返回的Setup URL写入集中日志。E2B文档列出的域包括默认/美国 e2b.app、欧盟 e2b-juliett.dev 和亚太 e2b-tango.dev;区域选择应结合E2B当前账号能力、Cursor数据流和企业合规统一评估,不能只看Sandbox物理区域。

E2B任务如何运行

  1. Dispatcher Claim请求并创建 cursor-agents-worker Sandbox。
  2. Worker在 /workspace 克隆请求对应仓库并连接Cursor。
  3. 用户在Cursor查看会话,运维人员可在Dispatcher Dashboard观察Sandbox状态。
  4. Worker Idle后默认Hibernate,后续消息到来时恢复;关闭休眠时则删除Worker。

官方模板默认最大并发为20,可在Advanced中调整。这个数字不是企业通用推荐值。应该根据账户配额、平均任务时长、并发预算、队列SLO和Git/Registry承载能力设置。如果并发达到上限,新的请求留在Cursor队列,不应通过无限扩容冲击内部服务。

E2B私有仓库安全

E2B Dispatcher通过Egress Proxy提供Git凭据,而不是把Token写进Worker。仍应将Token限制到Pool需要的仓库,GitHub使用 x-access-token 用户名,GitLab使用 oauth2。不要给一个跨组织、长期有效、可管理Webhook和Secrets的PAT。

E2B适合希望快速获得隔离、休眠恢复和现成Dispatcher的团队,但企业仍负责Token范围、Worker模板、允许访问的内网目标、任务输出脱敏及成本上限。

Vercel方案:Functions+Workflow+Sandbox MicroVM

Vercel 官方方案将系统拆成两个平面:

  • 控制面: Vercel Functions暴露Controller Endpoint,Vercel Workflow使用自适应退避发现Cursor Pool请求,并为每个Claim启动独立子工作流。
  • 计算面: Vercel Sandbox从预制Snapshot启动隔离Linux MicroVM,运行任务级Cursor Worker;Worker在空闲宽限期后退出,Sandbox受固定最大时长约束。

Vercel官方教程强调Cursor仍托管Agent Harness与Inference Loop,Vercel Sandbox只提供克隆代码、执行命令、修改文件和运行测试的计算机。

Vercel前置条件与项目初始化

  • 有Vercel Sandbox访问权限的Vercel账号。
  • 开启Self-hosted Machines的Cursor Enterprise账号。
  • Cursor团队管理员创建的Agent-scoped Service Account Key。
  • Node.js 22或更高版本。
  • Vercel CLI。
pnpm create next-app cursor-sandbox-workers
cd cursor-sandbox-workers
pnpm add @vercel/sandbox workflow
pnpm add -D tsx
mkdir -p lib scripts workflows app/api/cursor-workers/controller

随后将Workflow集成到 next.config.ts

import type { NextConfig } from "next";
import { withWorkflow } from "workflow/next";

const nextConfig: NextConfig = {};
export default withWorkflow(nextConfig);

本地开发可通过 vercel linkvercel env pull .env.local 获取OIDC环境。生产Secret应在Vercel项目中配置:

CURSOR_SERVICE_ACCOUNT_API_KEY=YOUR_AGENT_SCOPED_SERVICE_ACCOUNT_KEY
CURSOR_POOL_NAME=vercel-sandbox
CURSOR_WORKER_SNAPSHOT_ID=YOUR_SNAPSHOT_ID

官方架构把Service Account Key保留在Functions和Workflow控制面,仅向每个MicroVM写入Cursor签发的一小时Worker Token。这个分离非常重要:即使Worker被恶意代码读取,也不应获得能够认领整个队列的长期Service Account Key。

构建带Cursor CLI的Snapshot

每次启动再安装CLI会增加冷启动。Vercel方案先创建Sandbox、安装Cursor CLI,然后保存Snapshot:

import { Sandbox } from "@vercel/sandbox";

async function main() {
  const sandbox = await Sandbox.create({
    image: "vercel/sandbox/universal:latest",
    timeout: 10 * 60 * 1000,
  });

  const install = await sandbox.runCommand({
    cmd: "bash",
    args: [
      "-lc",
      "curl https://cursor.com/install -fsS | bash && " +
        "mkdir -p /vercel/sandbox/workspace",
    ],
  });

  if (install.exitCode !== 0) throw new Error("Cursor install failed");

  const snapshot = await sandbox.snapshot({ expiration: 0 });
  console.log(`CURSOR_WORKER_SNAPSHOT_ID=${snapshot.snapshotId}`);
}

main();

企业供应链不应长期依赖未固定版本的 latestcurl | bash。建议在验证官方流程后,将基础镜像、Cursor CLI与依赖固定版本并记录摘要,定期重建Snapshot、扫描漏洞并保留回滚版本。

Claim、幂等与Worker Token

动态运行时最怕重复创建。推荐用请求ID计算确定性Worker ID和Sandbox Name:

const normalize = (id: string) =>
  id.toLowerCase().replace(/[^a-z0-9-]/g, "-");

const workerIdFor = (requestId: string) =>
  `pw_${normalize(requestId)}`.slice(0, 63);

const sandboxNameFor = (requestId: string) =>
  `cursor-${normalize(requestId)}`.slice(0, 63);

Controller先调用Cursor Claim Endpoint。Claim成功才创建Sandbox;如果请求已被另一个Controller Claim,就停止当前分支。Vercel指南进一步使用 Sandbox.getOrCreate 和文件锁,避免重试在同一MicroVM中启动两个Worker进程。

短期Token写入权限为 0600 的文件,再通过 --auth-token-file 传给Worker,比放在命令行参数中更安全。任务结束后要删除Token文件并销毁非持久Sandbox。

E2B与Vercel怎么选

两种方案都使用Cursor Self-hosted Pool,真正差异在控制面抽象、生命周期与团队技术栈,而不是模型质量。

对比项E2B cursor-agentsVercel Sandbox方案
上手方式公共模板+Setup UI+DispatcherNext.js+Functions+Workflow+Sandbox SDK
隔离单位每请求独立E2B Sandbox每请求独立Linux MicroVM
控制面模板内Dispatcher自建Vercel Function和耐久Workflow
空闲策略默认Hibernate并可自动恢复Worker空闲退出,Sandbox有最大时长
并发控制Dispatcher Max concurrent workers,默认20Controller每Tick上限及Workflow并发策略
幂等方式模板负责Dispatcher与Worker生命周期Claim+确定性Workflow+确定性Sandbox名称
定制难度较低,适合快速试点较高,适合TypeScript平台团队深度定制
私有Git凭据Egress Proxy提供,不写入Worker控制面签发/注入短期凭据,需自行设计
区域选项E2B文档列出US/EU/APAC Domain以Vercel Sandbox当前区域能力为准
适合团队想快速获得Agent Sandbox运行时已使用Vercel并重视Workflow编排的团队
Cursor Worker Pool在E2B与Vercel Sandbox上的企业运行时对比
E2B使用Dispatcher快速调度,Vercel使用Functions与Workflow构建可编程控制面。

如果企业已有 Kubernetes、AWS Lambda MicroVM 或 Cloudflare Containers,也不必为了标题中的两家平台迁移。Cursor同时列出了多种合作方与参考模板,应基于现有云合同、网络、数据边界、冷启动、镜像治理和团队技能选择。Cursor Self-hosted Integrations

企业安全与权限设计

动态Sandbox提升隔离,但不会自动解决所有安全问题。Agent可能读取恶意仓库内容、执行依赖脚本、访问过宽的云凭据,或把敏感终端输出发送给Cursor。因此要同时保护控制面、计算面和数据面。

控制面

  • Service Account Key只存在于Dispatcher、Function或Workflow Secret Store。
  • Key按团队或仓库范围拆分,禁止所有Pool共享一个超级Key。
  • Claim、Mint Token、Release和Delete Sandbox写入审计日志。
  • Controller设置最大并发、队列阈值、创建速率和日预算。
  • Setup URL、Bearer Token和一次性凭据必须从日志中过滤。

计算面

  • 每请求一台短命Sandbox,不在多个不信任任务之间复用工作区。
  • Worker使用非Root账号、最小文件权限和精确出站Allowlist。
  • 禁止挂载宿主机Docker Socket、生产Kubeconfig和共享Home目录。
  • 仓库、缓存、临时凭据与Artifact分开管理。
  • 执行超时后先撤销Token,再终止进程和销毁Sandbox。

数据面

  • Cursor仍在云端推理,任务所需文件、命令输出、Diff与工具结果可能传输给Cursor。
  • E2B/Vercel区域选择不能替代对Cursor模型与数据路径的合规审核。
  • Privacy Mode、数据处理协议、子处理者、日志保留和删除机制需要分别核验。
  • 生产密钥、个人信息、数据库Dump和未脱敏客户数据不进入Prompt、终端输出或Artifact。

进一步的Agent权限治理可参考 AI Stack Nav 的 企业AI Agent安全教程

可靠性:Claim只是第一步

Cursor的原子Claim避免两个Controller同时取得同一待处理请求,但它不自动保证后续每一步恰好执行一次。创建Sandbox、克隆仓库、写Token、启动Worker、上传Artifact、释放Claim和销毁资源都可能在中间失败。

建议建立以下状态机:

状态可重试操作不可直接重复的操作
DISCOVERED重新列出请求不创建Sandbox
CLAIMED以确定性名称GetOrCreate不再次认领成新Worker ID
PROVISIONING检查已有Sandbox和进程锁不无条件再创建第二台
CONNECTED监控Worker与Agent状态不重复写长期凭据
IDLE在宽限期内等待Follow-up不立即删除仍可能复用的环境
CLEANING幂等释放Claim和删除Sandbox不重复产生账单资源
DONE只保留审计记录不重启任务

清理逻辑要把“404表示Claim已经不存在”视为成功终态,而不是无限重试。Vercel官方指南明确指出,Release Endpoint返回404可能表示Claim已释放、过期或被接管,清理不应继续重试该响应。

监控指标至少包括:

  • Pool排队长度与最长等待时间。
  • Claim成功率和冲突率。
  • Sandbox创建P50/P95时间。
  • Worker连接成功率与首次工具调用延迟。
  • 平均任务时长、Idle宽限期和恢复次数。
  • 每任务CPU、内存、网络、存储和模型费用。
  • 超时、取消、清理失败与孤儿Sandbox数量。
  • Git Clone、依赖安装、测试和Artifact上传失败率。

成本模型与扩缩容策略

动态Pool能够Scale-to-zero,但不一定天然更便宜。成本由Cursor模型用量、Sandbox运行时长、控制面、快照存储、网络、Git与Registry流量、休眠资源、日志以及平台工程维护共同组成。

单任务真实成本
= Cursor模型与Cloud Agent用量
+ Dispatcher / Function / Workflow控制面成本
+ Sandbox冷启动与实际运行成本
+ Snapshot、缓存、日志与Artifact存储
+ 网络出口和私有连接
+ Idle或Hibernate保留成本
+ 失败重试与孤儿资源成本
+ 人工审核和平台运维成本

建议以队列SLO而不是“机器越多越好”制定策略:

  1. max_concurrency,防止一次突发创建无上限Sandbox。
  2. 设每次Discovery最大Claim数,给Git和Registry留出容量。
  3. 对常见任务保留少量Warm Worker,对低频Pool缩容到零。
  4. 按仓库、团队或风险级别设置独立预算和并发。
  5. 任务超过最大时长时先请求安全停止,再强制销毁。
  6. 连续创建失败触发熔断,保留请求在Cursor队列而不是重试风暴。

文章不写死E2B或Vercel价格,因为平台套餐、区域和计费维度可能变化。上线前应根据官方价格页和自己的任务样本实测:冷启动时间、平均运行分钟数、暂停恢复成本、并发峰值和每个成功PR成本。

故障排查

请求一直停在Cursor队列

检查Dispatcher或Controller是否运行、任务Pool名称是否完全一致、Service Account是否有正确范围,以及并发上限是否已满。E2B官方还提示,暂停的Dispatcher不会被Cursor队列自动唤醒,必须保持Dispatcher运行或由外部机制恢复。

E2B无法验证Cursor账号

确认使用的是Enterprise Service Account API Key,而不是个人、Team Admin或Organization Key。若Key绑定仓库,Setup时必须填写完全一致的仓库URL。

私有仓库Clone失败

核对Git Token仓库范围、Provider用户名规则、HTTPS Remote和网络出口。不要通过换成组织级全权限PAT解决;应修复最小范围Token或短期凭据签发。

Vercel重复启动MicroVM

检查Request ID到Worker ID、Workflow ID和Sandbox Name的映射是否确定性;Claim冲突是否停止当前分支;Sandbox启动是否使用GetOrCreate和进程锁。

Worker启动但Agent没有开始执行

检查短期Token是否仍有效、Token文件权限和路径、Pool名、Worker ID、Cursor必要Host出站,以及Worker日志。不要把Token打印到Debug日志。

任务结束后Sandbox没有清理

检查Agent状态轮询、Idle/Archived判定、Workflow超时、Release API和平台Delete调用。对孤儿资源建立定时Reconciler,但只能删除带有本系统标签且超过安全TTL的Sandbox。

Follow-up消息无法恢复旧环境

E2B需确认Hibernate和Auto Resume配置;Vercel需确认Idle宽限期和Sandbox上限是否仍允许复用。对必须保留长状态的任务,应把必要Checkpoint写入受控持久存储,而不是依赖无限延长Sandbox生命周期。

企业上线验收清单

  • 已确认Cursor云端仍负责Agent loop、推理和规划。
  • Cursor Enterprise、Self-hosted开关和Service Account范围已验证。
  • Pool名称、Repo标签和Any-repo/Repo-backed模式已书面定义。
  • Service Account Key只存在于控制面,不进入Worker。
  • Worker只使用短期Token,文件权限、TTL和撤销流程可验证。
  • 每请求使用独立Sandbox,任务结束后能可靠暂停或销毁。
  • Claim、创建、启动、Release和清理均具备幂等策略。
  • 最大并发、每次Claim数、队列SLO和日预算已配置。
  • Git Token、Registry Token和内网权限遵循最小权限。
  • 生产数据库、发布、删除和权限修改必须人工审批。
  • Worker镜像和Snapshot固定版本、扫描漏洞并可回滚。
  • 日志与Artifact不包含密钥、客户数据和完整敏感源码。
  • 已测试断网、Token过期、Clone失败、创建超时和清理失败。
  • 已监控队列、启动延迟、失败率、孤儿Sandbox和每PR成本。
  • 已用非生产仓库灰度,再按Pool逐步扩展。

通过这些验收后,动态Worker Pool才算企业运行时;仅能自动创建Sandbox,还不足以承担持续的Agent生产任务。

事实依据与来源

  • Cursor官方事实: Team Pool是持久命名路由目标,请求等待Worker Claim;Pool不把推理移出Cursor云端。
  • Cursor官方事实: 合作方指南包括E2B与Vercel;所有接入都需要Enterprise、Service Account Key、必要出站HTTPS和Pool/Label路由。
  • E2B官方事实: cursor-agents Dispatcher监听一个Pool,为每个请求创建独立Worker Sandbox;默认最大并发20,Idle Worker默认可Hibernate和恢复。
  • Vercel官方事实: Functions与Workflow构成控制面,Sandbox MicroVM构成计算面;Pool可零Worker保留,Claim、确定性Workflow和Sandbox命名用于幂等。
  • Vercel官方事实: Service Account Key保留在控制面,只向MicroVM发送Cursor签发的一小时Worker Token。
  • 实施建议: 状态机、Pool信任分级、熔断、监控指标、镜像加固与上线清单属于本文工程建议,不代表Cursor、E2B或Vercel默认配置。
  • 尚待实测: 冷启动、并发吞吐、暂停恢复体验、每成功PR成本及企业内网兼容性必须使用真实任务测量,本文未虚构Benchmark。

FAQ

Cursor动态Worker Pool是什么?

它是Cursor Team Pool与企业控制器组合的弹性执行架构。请求进入持久Pool,Controller按需Claim请求并创建Worker Sandbox,任务结束后暂停或销毁计算资源。Cursor仍负责模型推理和Agent编排。

E2B或Vercel会托管Cursor模型吗?

不会。两者托管的是运行Cursor Worker的Sandbox或MicroVM,用于代码、终端、测试和工具执行;Agent Harness、Inference Loop和规划仍由Cursor云端负责。

使用E2B或Vercel需要什么Cursor套餐?

官方指南要求Cursor Enterprise并开启Self-hosted Machines。Pool Worker必须使用Agent-scoped Service Account API Key,个人或管理员类型Key不能替代。

动态Pool可以真正缩容到零吗?

可以。Cursor Pool在没有在线Worker时仍保持注册和可选,Controller发现请求后再启动Sandbox。但Controller本身、Dispatcher或发现Workflow仍需要可运行,E2B暂停的Dispatcher不会被Cursor队列自动唤醒。

E2B和Vercel哪个更适合快速上线?

通常E2B公共模板更适合快速试点,因为Dispatcher和Worker模板已经封装;Vercel适合已有Next.js、Functions和Workflow经验,希望深度控制Claim、幂等、生命周期与观测的团队。

Service Account Key可以放进Worker吗?

不建议。它能访问Pool控制API,泄露影响大。正确模式是只保留在控制面,用它签发短期Worker Token,并把短期Token以受限文件形式交给单个Sandbox。

如何避免重复创建Sandbox?

先原子Claim请求,再用Request ID生成确定性Worker ID、Workflow ID和Sandbox Name,使用GetOrCreate与进程锁,并让Release和Delete操作具备幂等语义。

动态Sandbox一定比固定Worker便宜吗?

不一定。低利用率场景可能受益于Scale-to-zero,高频任务则可能被冷启动、依赖下载、控制面和重复缓存抵消。应按成功任务或成功PR统计模型、Sandbox、网络、存储和运维总成本。

参考来源

安装部署教程

环境配置与 Docker 工作流

适合阅读安装部署、本地配置、服务器搭建和自动化流程类文章后继续转化。

环境配置资料包 包含 Windows / Mac / Linux 常见环境配置、依赖安装和报错排查清单。 查看资料包 Docker 工作流包 整理 Docker 部署模板、compose 示例和常用服务编排流程。 查看资料包

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

本站累计访问量: 337,061
AI Stack Nav 客服会员 / 支付 / 下载 / 工具库
你好,我是 AI Stack Nav 客服助手。你可以问我会员开通、微信支付、资料下载、订单入口、AI 工具库等问题。