@ agentproto/ sandbox (英语)
AIP-36号 SANDBOX.md 参考执行。 用于定义 sandbox 字段 — 提供者、 配置、 命令掩码、 网络进取、 资源限制 — 对于任何为代理签发的 shell 命令命名计算环境的显示。 姊妹原始到STORAGE.md (AIP-35);内置或参考,与AIP-17 RUNNER和AIP-19 SECRETS相映.
状态:0.1.0-α. 生成者
scripts/scaffold-aip.mjs—— 说build()财务报告和审定财务报表validate()尸体是TODO的.
谱: https://agentproto.sh/docs/aip-36 (中文(简体) )
使用量
import { defineSandbox } from "@agentproto/sandbox"
const x = defineSandbox({
id: "my-sandbox",
description: "Short purpose.",
// ...
})
在沙盒内运行代理步骤
createSandboxAgentSessionHost 任何转动 SandboxProvider 变成
AgentSessionHost (单位:千美元)@agentproto/workflow-runtime)——接缝 runWorkflow
每张 AgentStep它把请求的秘密解开
地图, 将沙盒与那个洞连接
connectDaemonAgentSessionHost (单位:千美元)@agentproto/worktree{\fn黑体\fs22\bord1\shad0\3ahbe\4ah00\fscx67\fscy66\2chffffff\3ch808080}去沙盒那边
曝光代理程序守护进程 – 重用同一守护进程支持的会话主机 a
当地运行将使用,不变.
import { createSandboxAgentSessionHost } from "@agentproto/sandbox"
import { e2bSandboxProvider } from "@agentproto/sandbox-e2b"
const host = await createSandboxAgentSessionHost({
provider: e2bSandboxProvider,
spec: { provider: "e2b", config: {} },
secrets: { slugs: ["OPENROUTER_API_KEY"] },
})
try {
// await runWorkflow({ workflow, input, agents: host })
} finally {
await host.stop()
}
启动时自动安装适配器
盒子的启动时间 npm i -g @agentproto/cli 替换全局安装并
丢失模板封存 @agentproto/adapter-* 软件包。 提供商
接受 config.installPackages (e2b,框) 安装这些条目于 SAME
npm 引用作为 CLI 更新; 当在运行时间产入时
(单位:千美元)spawnAgentSession),适配器即将发射——加
@anthropic-ai/claude-code 联 合 国 claude-code 适配器 - 被注入到那里
自动(呼叫者宣布的接针总是获胜,没有注射用于
非沙盒产卵.
对于被带去的BEYOND 产出适配器, 声明语义性流涕而不是
原始 npm 规格 : config.installAdapters: ["hermes", "claude-code"]每发子弹
扩展至 @agentproto/adapter-<slug>@latest (加上适配器已宣布)
额外靴子,例如:. @anthropic-ai/claude-code合并为
config.installPackages 与去杜佩相接——同名的呼叫者明确指针
软件包总是赢。 未知的弹片仍然会扩展( 盒子的 npm 安装为
; 空出字段不会改变任何东西.
Billing-auth 自动通道( opt- in)
设定 env.autoPassthrough: true 在沙盒光谱上,运行时间添加
产卵体的活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活活化活化活化活化活化活化活活化活化活活化活活活活活化活化活化活活活活活化活化活活活化活活活活. ANTHROPIC_API_KEY改为:
env.passthrough 在盒子靴子之前——所以新框继承主机认证
没有呼叫者命名 vars。 仅输入姓名; 值行走
通过正常的通关机制(主机秘密经纪人-盒内),并且是
从来没有读过国旗。 仅计费凭证(无) GITHUB_TOKEN; 计 数
通话明确 env.passthrough 条目保存并去除。 否时
证明性解决了,或者东道主不能解决 var 问题
注射和产卵收益:旗帜是一种方便,而不是契约.
寿命:在会话工作期间重新武装
供货箱有寿命(e2b: timeoutMs,45分钟默认,1小时
账户上限)。 它从最后的再武装,而不是从靴子。 虽然其
会话正在运行中, 运行时间会以相同的持续时间重新武装它 :
在每次快速发送时,在串行的盒子事件上(最多每分钟一次)
每10分钟一转 飞行中,甚至一个流无
长期(单长工具呼叫). 闲置的盒子没有更新
按时到期.
在它知道的最后5分钟前 代理机构就行动过一次 再来 如果转弯还在飞行中,它尝试最后一次续航。 如果会议 闲置,或更新失败, 它运行一个最后的检查点 而盒子的 仍然可以到达文件系统。 一个可拆卸的框( 主机- 守护程序重新启动) 遵循它自己的规则:要求它从拆分时刻起1小时.
寿命周期: 暂停是默认的拆解
默认关闭会话 pause({ keepMemory: true })(中文(简体) )
而不是杀死它 任何封闭的盒子都通过
sandbox.reuse 编号 : agentproto sandbox attach。一个被暂停的盒子仍然会死
拥有 timeoutMs (默认为45分钟),所以暂停框不会累积
无限期; 声明 lifecycle.destroy_on 近距离杀人.
许可证
麻省理工学院——见 自由主义。 。 。 .