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 環境下運行。