@ agentproto/ sandbox-e2b 页面存档备份,存于互联网档案馆
页:1 SandboxProvider 页:1 @agentproto/sandbox。启动预建
agentproto-workstation e2b 模板, 在内部启动代理程序守护进程
它,并暴露它的MCP端点作为一个URL——所以
createSandboxAgentSessionHost 可以直接交给
connectDaemonAgentSessionHost (单位:千美元)@agentproto/worktree运行任何
AgentStep 沙盒里面,没有变化.
使用量
import { createSandboxAgentSessionHost } from "@agentproto/sandbox"
import { e2bSandboxProvider } from "@agentproto/sandbox-e2b"
import { runWorkflow } from "@agentproto/workflow-runtime"
import { worktreeAgentWorkflow } from "@agentproto/worktree"
const host = await createSandboxAgentSessionHost({
provider: e2bSandboxProvider,
spec: { provider: "e2b", config: {} },
secrets: { slugs: ["OPENROUTER_API_KEY"] },
})
try {
await runWorkflow({ workflow: worktreeAgentWorkflow, input, agents: host })
} finally {
await host.stop()
}
要求数 E2B_API_KEY 在主机进程环境中.
大小
选择每个产卵的盒子大小 config.size。每个大小都是自己出版的
模板 (agentproto-workstation-<size>,在
templates/workstation/versions.json:
agent_start({ sandbox: { provider: "e2b", config: { size: "large" } } })
| 大小 | 五氯联苯 | 内存( MB) | e2b别名 | 状态 |
|---|---|---|---|---|
nano | 1个 | 第1024号 | agentproto-workstation-nano | 已出版 |
small | 2个 | 2048 (英语) | agentproto-workstation-small | 已出版 |
medium | 2个 | 4096 (英语) | agentproto-workstation-medium | 已出版 |
large (默认) | 页:1 | 8192 (韩语) | agentproto-workstation-large | 已出版 |
x-large | 第8条 | 16384 (英语) | agentproto-workstation-x-large | 无 e2b拒绝: 400: Memory can't be higher than 8192 MiB (if you need to increase this limit, please contact support) |
xx-large | 16个 | 32768 (英语) | agentproto-workstation-xx-large | 无 e2b拒绝: 400: CPU count can't be higher than 8 (if you need to increase this limit, please contact support) |
赤裸裸的 agentproto-workstation 化名(和 agentproto-workstation-dev) 建造于
默认大小, large (4 vCPU / 8192 MB) (中文(简体) ).
- 满
pnpm build+ 键pnpm test用于满足代理原生物需求large或者说 大一点. 更小的盒子 OOM - 杀死会话中建和工作丢失 拿着盒子. - 没有
size没有template赤裸出头agentproto-workstation模板, 默认大小。 明确config.template总是赢 结束config.size。 。 。 . - 未知大小的启动失败 。 标记大小 不可用, 准确错误 e2b 在模板时返回 拒绝(今天:计划封装了8 vCPU / 8192 MB),而不是 开个小盒子.
- e2b没有GPU沙盒,因此没有GPU大小.
建设环境
在4 GiB 交换文件旁边, 它可以在新靴子上, 提供商大小
节点建到框中: pnpm默认每个 vCPU 运行一个软件包构建
每个Tsup DTS工人 都拿Node的默认堆积,所以一个平地 pnpm build 死亡
与 JavaScript heap out of memory 很久以前,RAM就不见了。 在每一个
它从预设的解决大小中获得预算
concurrency = max(1, min(cpu, floor(ram MB / 3072))) 财务报告和审定财务报表
heap = clamp(floor(ram MB * 0.6 / concurrency), 768, 4096) (默认)
4 vCPU / 8192 MB 盒 → 2 在2457 MB 堆积地上建起)—— 并把它作为
NODE_OPTIONS=--max-old-space-size=…, (中文(简体) ), npm_config_workspace_concurrency
财务报告和审定财务报表 TURBO_CONCURRENCY 两种方式: 在守护进程启动时,守护进程
它所产的每一个适配者,都会继承它
/etc/profile.d/agentproto-build.sh,所以每个登录贝壳命令在框中
(代理的击打工具,任何 exec来源也。 明确
config.template 没有记录大小,所以盒子在靴子被探测一次
(单位:千美元)nproc, (中文(简体) ), free -m) (中文(简体) ). 来电者自身的价值总是赢:通过
NODE_OPTIONS 与 --max-old-space-size 一个没有
得到盒子堆成附件。 以
config.buildEnv: { concurrency, heapMb },或以
config.buildEnv: false。 。 。 .
从盒子里推开公关
工作站模板会烤出 GitHub CLI(gh,钉入
templates/workstation/versions.json → tools.gh) (中文(简体) ). 当产卵时
工作空间有一个已注册的远程( o)agentproto workspace remote set <slug> --url <https-url> --token-stdin),守护进程向盒子中注入此符号
两次: AGENTPROTO_GIT_TOKEN,由 git 证书助手读取,作为
GH_TOKEN,读取 gh。这样,代理可以 git push 财务报告和审定财务报表
gh pr create {\fn黑体\fs22\bord1\shad0\3ahbe\4ah00\fscx67\fscy66\2chffffff\3ch808080}只要这个标志 目录: 写入 财务报告和审定财务报表 拉开
请求: 写入 在存储器上 (一个精细的 PAT 范围到那个)
repo是合适的形状).
两个名字都保留下来。 它们只是从守护神那里得到的
工作空间自己的钥匙链 并且他们被剥离 任何呼叫者宣布
env.passthrough, (中文(简体) ), env.auth.state.env 或者说 join.tokenEnv因此,一个打电话者可以
既不遮住标志 也不拉守护魔自己的 GH_TOKEN 进入一个盒子.
该符号从未出现在命令、 URL 或 argv 中 。 还是个普通的地洞
var 在盒子里,所以代理可以读取它: 范围到一个仓库
并且当工作完成时撤销它.
港口接触
每个靴子的沙盒都暴露出一个 expose(port) 返回公众的方法
任何移植的沙盒进程的 URL 听取 :
const host = await createSandboxAgentSessionHost({ provider: e2bSandboxProvider, spec, secrets })
// After booting, expose any app port the sandboxed process is listening on:
const { url } = await host.expose!(3210)
// url → "https://3210-<sandboxId>.e2b.app"
要在启动时预览端口, 请声明 extraPorts 在谱中。 这个
已返回 BootedSandbox.ports 映射(和会话描述器) sandboxPorts
字段)即刻被覆盖,因此管弦乐手可以读取URL而无需读取
单独 expose() 电话 :
const host = await createSandboxAgentSessionHost({
provider: e2bSandboxProvider,
spec: { provider: "e2b", config: {}, extraPorts: [3210] },
secrets: { slugs: ["E2B_API_KEY"] },
})
console.log(host.ports) // { 3210: "https://3210-<sandboxId>.e2b.app" }
环背捆绑在VM内部足够了——e2b的边缘手柄转发. 见
SandboxPortExposureUnsupportedError 内 @agentproto/sandbox 错误
呼叫时抛出 exposePort() 对于不支持接触的提供者.
页:1
- 守护进程本身的来源允许列表默认为
localhost:*; 此提供者 打开它供沙盒自己的公共主机(--allow-origin https://<getHost>) 这样,主机进程就可以到达它了https://<getHost>/mcp。 。 。 .
- 默认
agentproto-workstation模板在templates/workstation/versions.json数字 :@agentproto/[email protected], (中文(简体) ),@agentproto/[email protected], (中文(简体) ),@agentproto/[email protected], (中文(简体) ),@agentproto/[email protected], (中文(简体) ),@agentproto/[email protected], (中文(简体) ),@agentproto/[email protected], (中文(简体) ),@anthropic-ai/[email protected], (中文(简体) ),[email protected], (中文(简体) ),[email protected]启动npm i -g默认仅在模板录入后跳出baked块 显示图像已带有请求的接角; 直至 遗留的靴子安装继续.
- 自定义( 非封存的) 模板可以滞后: 提供者运行
npm i -g @agentproto/cli@<cliVersion>在他们身上启动守护进程之前( a)cliVersion默认为@latest把它插进去spec.config为可复制的靴子。 设定updateCliOnBoot: false内spec.config完全跳过安装.
许可证
麻省理工学院——见 自由主义。 。 。 .