DeepSeek Harness(DSH)采用插件化架构。在 Agent 开发中,本地文件系统和子进程是常见的执行载体,但这带来了一定的安全隐患。DSH 插件 dsh-agentenv-sandbox 解决了这个问题,它将 Harness 进程的文件操作和命令执行能力迁移到远程环境,通过 AgentENV 提供的 Firecracker microVM 后端来运行。
插件介绍¶
该插件是 DeepSeek Harness 的 AgentENV/E2B 执行世界 bundle。它负责替换 DSH 内置的本地文件系统和子进程提供程序,使用官方的 Harness E2B 适配器,并运行在 AgentENV 的 microVM 后端之上。安装后,Bash 命令、文件工具、持久化终端以及 LSP 进程将共享同一个远程 Linux 世界。
- 所有者:ztting01
- 分类:admin-security
- 许可证:MIT
- 核心价值:在 microVM 环境中安全地执行 Agent 操作。
核心功能¶
- 提供程序替换:将本地文件系统和子进程提供程序替换为 E2B 适配器,Agent 的所有操作通过
ctx.fs和ctx.subprocess发送到远程。 - 运行环境:基于 AgentENV Firecracker microVM 后端。
- 支持能力:支持 Bash 命令、文件工具、持久化终端、LSP 进程。
- 版本兼容:与 DeepSeek Harness 0.1.0-rc.7、E2B 2.29.1、AgentENV 0.1.0 和 0.1.3 兼容。
- 环境要求:需要 Node.js 22.19+ 或 24+ 环境。
安装与配置¶
此插件不包含 AgentENV 和 DeepSeek Harness 的安装脚本,也不自动构建模板。它要求用户预先完成 AgentENV 和 Harness 的部署,并构建好模板。
1. 环境与前置条件¶
- 操作系统:仅支持 WSL 2 或 Linux。原生 Windows 不支持(DSH 会拒绝启动)。
- Node.js:版本需在 22.19.0 以上或 24.0.0 以上。
- 依赖:必须预先安装并运行 DeepSeek Harness 和 AgentENV。
2. 构建模板¶
在使用插件前,需要先构建一个 AgentENV 模板。该插件包含一个 sandbox/Dockerfile,定义了 Node.js 24、Bash、Git 等工具环境。
# 在 AgentENV 安装并认证后,从插件根目录运行
aenv build ./sandbox/Dockerfile --name dsh-agentenv-node24 --cpu 2 --memory 4096
3. 配置环境变量¶
在启动 Harness 进程的 shell 中,必须设置以下环境变量以连接到本地或远程的 AgentENV 服务。
export AENV_API_KEY='<agentenv-api-key>'
export E2B_API_URL=http://127.0.0.1:8000
export E2B_SANDBOX_URL="$E2B_API_URL"
export E2B_API_KEY="$AENV_API_KEY"
export AENV_TEMPLATE_ID=dsh-agentenv-node24
4. 安装插件¶
下载预编译的 release 包并添加到 Harness 的 web profile。
curl -LO https://github.com/ztting01/dsh-agentenv-sandbox/releases/download/v0.1.5/dsh-agentenv-sandbox-0.1.5.tgz
dsh plugin --profile web add "$PWD/dsh-agentenv-sandbox-0.1.5.tgz"
dsh --profile web --dump-config
注意事项¶
- 失败关闭机制:该插件采用“失败关闭”策略。如果 AgentENV 创建、设置或工作区上传失败,远程提供程序将无法加载,且不会回退到主机执行。这保证了隔离性。
- 宿主机依赖:DSH 进程本身、模型调用、Cordis 服务、会话持久化等仍保留在宿主机;只有通过适配器的操作会进入 microVM。
- 纯代码插件限制:纯代码插件无法直接访问 Node.js 原生的
fs或child_process,必须通过适配器进行。 - 版本锁定:当前版本在 DeepSeek Harness 0.1.0-rc.7 上测试通过,请确保版本匹配。
总结¶
dsh-agentenv-sandbox 是将 DSH 本地执行环境替换为远程隔离环境的标准方案。它通过 E2B 适配器和 AgentENV microVM,让 Agent 在更安全、可持久化的沙箱中运行 Bash 和文件操作。部署时需注意前置依赖的安装和模板的构建,并确保在 WSL 2 或 Linux 环境下运行。