dcode 进程(LLM 循环、内存、工具调度)在您的机器上运行,但代理工具调用(read_file、write_file、execute 等)针对的是远程沙箱,而非您的本地文件系统。要将文件放入沙箱,请使用设置脚本或提供程序的文件传输 API(参见使用文件)。
有关沙箱架构、集成模式和安全最佳实践的深入介绍,请参见沙箱。
安装提供程序依赖项
每个内置提供程序都作为可选附加组件提供。您可以在会话中通过 要一次性安装所有内置提供程序的支持,请使用
/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 等第三方提供程序。设置提供程序凭据
- LangSmith
- AgentCore
- Daytona
- Modal
- Runloop
- Vercel
- E2B
使用沙箱运行 Deep Agents Code
- LangSmith
- AgentCore
- Daytona
- Modal
- Runloop
- Vercel
- E2B
沙箱标志和示例
每个提供程序在沙箱内都暴露一个默认工作目录。设置脚本和
execute 命令从此目录运行,除非另有指定:
示例:
由于
--sandbox 接受可选值,请将不带值的裸形式放在命令行的最后。否则,后面的参数(例如 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 名称未安装或未声明,Deep Agents Code 会列出可用的提供程序并解释如何安装或配置缺失的那个。
发布沙箱提供程序
发布沙箱提供程序
要分发提供程序以便用户在安装您的软件包后可以运行 实现 如果省略
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 文件中,供设置脚本访问。
Connect these docs to Claude, VSCode, and more via MCP for real-time answers.

