dcode过程)在您的本地机器上运行,但智能体工具调用(read_file、write_file、execute等)会靶向远程沙盒,而非本地文件系统。要将文件导入沙盒,请使用设置脚本或供应商的文件传输API(参见文件操作)。
要深入了解沙盒架构、集成模式和安全最佳实践,请参考沙盒。
Install provider dependency
每个内置供应商均作为可选附加组件提供。在会话中通过 要一次性安装所有内置供应商支持,使用
/install 安装,或在shell中通过 dcode --install 安装。第三方供应商如E2B通过添加--package标志安装为软件包:- LangSmith
- AgentCore
- Daytona
- Modal
- Runloop
- Vercel
- E2B
随
deepagents-code安装时已包含,无需额外安装。all-sandboxes附加组件:在会话中执行 /install all-sandboxes,或在shell中执行 dcode --install all-sandboxes。all-sandboxes附加组件不包含第三方供应商如E2B。Set provider credentials
- LangSmith
- AgentCore
- Daytona
- Modal
- Runloop
- Vercel
- E2B
Run Deep Agents Code with a sandbox
- LangSmith
- AgentCore
- Daytona
- Modal
- Runloop
- Vercel
- E2B
沙盒标志和示例
每个提供程序在沙盒内会暴露默认工作目录。设置脚本和
execute 命令将从该目录执行(除非显式覆盖):
示例:
因为
--sandbox 接受可选值,保留裸形式的 last 在命令行。否则后续参数(如 dcode --sandbox agents)会被当作标志值。显式指定提供程序名称可避免歧义可插拔提供程序
内置提供程序并非唯一选项。Deep Agents Code 会从三个来源发现沙盒提供程序,因此您可以使用其他包提供的提供程序或自行声明,而无需修改 Deep Agents Code:- 内置提供程序 — LangSmith, AgentCore, Daytona, Modal, Runloop, 和 Vercel,随
deepagents-code(默认 LangSmith,其他作为扩展包)附带 - 第三方提供程序 — 通过 Python 入口点发布的其他已安装包
- 配置声明提供程序 — 定义在
~/.deepagents/config.toml中的提供程序
第三方提供程序
包可通过deepagents_code.sandbox_providers 入口点组 发布沙盒提供程序。安装此类包后,其提供程序会自动成为 --sandbox 可用——无需配置:
langchain-e2b 包发布了一个 e2b 提供程序(参见sandbox 整合)。安装该包、设置凭证后即可选择使用
--sandbox 名称,Deep Agents Code 会列出可用的提供者并说明如何安装或配置缺失的提供者。
Publishing a sandbox provider
Publishing a sandbox provider
要使用户在安装您的包后能够运行 实现 若省略
dcode --sandbox <name>,需实现 SandboxProvider 子类并将其注册在 deepagents_code.sandbox_providers 入口点组下。重写 metadata 属性,使 Deep Agents Code 可以暴露工作目录和能力标志(无需实例化提供者):get_or_create 和 delete;异步调用由基类处理。然后将入口点注册在您的包的 pyproject.toml 中:metadata 属性,则使用通用默认值(/workspace,无快照支持)。配置声明的提供者
对于不想打包的内部或本地提供者,在~/.deepagents/config.toml 的 [sandboxes.providers] 中声明它。这与任意模型提供者类似,并使用相同的 class_path 信任模型。
string
required
格式为
module.path:ClassName 的提供者类全限定名。Deep Agents Code 导入并实例化此类作为提供者。string
optional
沙箱内的默认工作目录。默认为
/workspace。string
optional
当提供者依赖缺失时,错误信息中建议的包名。
boolean
optional
是否允许
--sandbox-id 重连。默认为 true。boolean
optional
是否允许
--sandbox-snapshot-name。默认为 false。object
optional
传递给提供者的
get_or_create() 的额外关键词参数。配置脚本
使用--sandbox-setup 在沙箱创建后运行 shell 脚本。此功能适用于代码仓库克隆、依赖安装和环境变量配置。
setup.sh
${VAR} 参考在配置脚本中。将密钥存储在本地 .env 文件供配置脚本访问。
官方原文:src/oss/deepagents/code/remote-sandboxes.mdx · 非官方翻译,译文由 AI 生成,以英文原文为准。