前言¶
在 DeepSeek Harness(dsh)里让 agent 跑命令、开浏览器,常见做法是直接在本机 shell 或本机浏览器里执行。工作区路径虽然能对齐,但 agent 仍与宿主系统共用环境:误删文件、把登录态留在本机、难以在会话外持续观察桌面,都是实际会碰到的问题。社区插件 dsh-computer(维护者 Kevinwu901113)的思路是:给 dsh 单独配一台持久化的 Linux 微型虚拟机,自带 shell、浏览器、实时桌面和审批闸门;默认用 bundled microsandbox 跑 microVM,多数平台不需要 Docker。下面介绍它做什么、怎么装、日常怎么用,以及安装前需要知道的边界。
这是什么¶
dsh-computer 是 DSH 生态里的客户端类插件,当前版本 0.5.0(MIT 许可证)。一句话定位:让 agent 的命令和浏览器都在虚拟机里跑,会话工作区按原路径共享进 VM;你在 dsh 里可以看实时桌面、点击接管(扫码、验证码),危险操作先过审批。插件在 SkillHub 目录 与 GitHub 发布;目录站为社区站点,与 DeepSeek / 幻方无官方从属关系。
官方在 dsh 桌面版 0.2.0-rc.2(macOS,Apple 芯片)上验证通过。需要 Node >= 22(见 package.json)。
核心功能¶
以下能力均来自项目 README,按使用顺序理解即可。
命令与浏览器隔离在 VM 内¶
- 每个 agent 的 bash 命令在虚拟机里执行,不在你的宿主机上跑。
- 会话所在工作区文件夹自动共享进虚拟机,路径与本机一致(例如
/Users/你/Documents/项目在 VM 里仍是同一路径)。 - agent 使用虚拟机内的浏览器(工具名为
mcp__vm__browser_*),登录态在重启后仍可保留。
实时画面与接管¶
- dsh 会话顶部有显示器按钮,可在右侧栏打开「虚拟机」标签页,观看、点击、输入,或接手处理 QR 登录、CAPTCHA。
- 本机也可直接打开 live view(就绪后日志会给出地址,默认形态如下):
http://127.0.0.1:18080/vnc/index.html?autoconnect=true&resize=scale
审批闸门¶
对高风险动作会先要求审批,审批信息可附带实时画面链接。README 列出的典型范围包括:sudo、rm -rf、curl | sh、git push,以及涉及支付、登录、删除的浏览器操作。闸门同时覆盖 dsh 的 bash 与虚拟机侧的 sandbox_execute_bash / sandbox_execute_code。可通过配置把闸门设为 off、risky 或 browser(见下文配置表)。
持久与轻量¶
- dsh 退出后虚拟机继续运行;下次启动 dsh 会连回同一台 VM。
- 底层为 microsandbox microVM(Apple 芯片 macOS 用 Hypervisor.framework,Windows 用 WHP,Linux 用 KVM;Intel Mac 回退 Docker)。随插件 npm 依赖安装,无需单独装 Docker(Intel Mac 除外)。
审计与远程查看(可选)¶
- 每次命令、VM 工具调用、审批与文件夹变更会追加到
~/.dsh/dsh-computer-audit.jsonl。 - 若配置
publicUrl(例如通过 Tailscale serve),审批消息(含 IM 审批卡片)里的实时画面链接可指向该地址,便于在手机等设备上查看;README 明确警告:VM 的 web 服务本身无鉴权,不要用公网隧道直接暴露 18080。
环境与资源要求¶
| 项目 | 要求 |
|---|---|
| 系统 | macOS(Apple 芯片)、Linux(有 /dev/kvm)、Windows(开启 Hypervisor Platform);Intel Mac 自动改用 Docker |
| 内存 | 虚拟机默认上限 4GB,空闲约 0.5GB |
| 磁盘 | 约 10GB 空闲(含 VM 镜像) |
| 网络 | 首次启动从 ghcr.io 拉镜像;插件会使用系统代理 |
安装与启用¶
插件以当前 dsh 进程权限运行,安装前建议浏览 仓库源码 与 MIT 许可证,确认符合你的安全策略。
dsh 桌面版(macOS)¶
桌面版使用名为 desktop 的配置,须用 App 自带的 dsh CLI 安装:
osascript -e 'quit app "DeepSeek Harness"'
"/Applications/DeepSeek Harness.app/Contents/Resources/runtime/cli/bin/dsh" \
plugin --profile desktop add github:Kevinwu901113/dsh-computer
open -a "DeepSeek Harness"
重新打开后,在输入框下方的权限预设里选择 Computer。
命令行版¶
npm i -g @deepseek-ai/dsh@0.2.0-rc.2
dsh plugin --profile web add github:Kevinwu901113/dsh-computer
cd ~/某个项目 && dsh web
第一次启动¶
插件会自动下载镜像(几 GB)并创建虚拟机。此期间 agent 命令会排队等待。完成后日志会出现类似:
computer ready — live view: http://127.0.0.1:18080/vnc/index.html?autoconnect=true&resize=scale
典型用法¶
在工作区里直接开发¶
在某个项目目录新建会话并执行命令即可;插件会把该工作区共享进 VM。若在家目录本身、隐藏目录(如 ~/.dsh、~/.ssh)、~/Library、~/Applications 或家目录以外位置启动,则不会在 VM 里自动挂载原路径,命令会在 VM 的 /home/gem 执行,并共享 ~/dsh-computer/workspace。
共享新文件夹需要重建虚拟机(停机 → 快照 → 恢复,约 20 秒),期间命令仍排队;VM 内文件、已装软件与浏览器登录态会保留。要固定共享多个目录,可在 ~/.dsh/dsh-computer.json 里写 mounts,改完重启 dsh:
{
"mounts": ["/Users/你/Projects/a", "/Users/你/Projects/b"],
"memory": "6G",
"cpus": 4
}
在手机上查看 live view(Tailscale)¶
端口默认只监听本机。README 推荐用 Tailscale 在 tailnet 内转发,再把得到的 HTTPS 地址写入 publicUrl:
tailscale serve --bg --https=443 http://127.0.0.1:18080
勿使用 tailscale funnel 或公网端口转发直接暴露 18080。
维护虚拟机¶
桌面版下 msb 位于配置目录的 node_modules 中,例如:
MSB=~/.dsh/profiles/desktop/node_modules/@superradcompany/microsandbox-darwin-arm64/bin/msb
$MSB list
$MSB exec -u gem dsh-computer -- bash
$MSB stop dsh-computer
共享新文件夹会产生链式磁盘快照(每次约 15–20MB);误删 VM 时插件可从最新快照恢复。要彻底清空需 $MSB rm -f dsh-computer 并删除快照目录。
常用配置¶
桌面版推荐写 ~/.dsh/dsh-computer.json(环境变量见 README 对照表):
| 设置项 / 环境变量 | 默认值 | 作用 |
|---|---|---|
mounts / DSH_COMPUTER_MOUNTS |
自动(见共享文件夹说明) | 固定共享目录 |
memory / cpus |
4G / 2 |
VM 资源上限 |
publicUrl / DSH_COMPUTER_PUBLIC_URL |
空 | 外设备访问 live view 的地址 |
DSH_COMPUTER_PORT |
18080 |
本机服务端口(仅 127.0.0.1) |
image / DSH_COMPUTER_IMAGE |
ghcr.io/agent-infra/sandbox:latest |
VM 镜像 |
backend / DSH_COMPUTER_BACKEND |
auto |
microsandbox 或 docker |
DSH_COMPUTER_GATE |
risky |
off / risky / browser |
DSH_COMPUTER_PRESET |
computer |
computer-auto 关闭审批(仅建议 VM 内无重要登录态时使用) |
排障时可查看 ~/.dsh/dsh-computer.log 末尾 50 行:tail -n 50 ~/.dsh/dsh-computer.log。
适用场景与注意¶
适合:希望在 dsh 里做 computer-use、又让 agent 与宿主机隔离;需要可观看、可接手的浏览器环境;需要审批与审计留痕的团队或个人实验。
务必知晓的限制(README「已知限制」):
- Mac 休眠时 VM 暂停;要近似 7×24 需常开机器。
127.0.0.1:18080对本机其他进程也可访问,VM web 无鉴权;不要在 VM 浏览器登录高价值账号。- 浏览器 cookie 写盘约需 30–45 秒,刚登录就共享新文件夹或重启可能丢登录态。
- 一个 dsh 配置对应一台 VM,尚无「每会话一台」。
- Docker 后端(Intel Mac)不支持自动共享新文件夹,须在
mounts配置后docker rm -f dsh-computer。 - Windows 仅验证到虚拟化检测,桌面版完整流程未验证。
若要在该 VM 之上做 IM、定时任务、预算上限等「常在线 agent」,README 指向同作者的 dsh-dot;设计说明见仓库内 docs/DESIGN.md(中文)。
结尾¶
dsh-computer 把「agent 的电脑」从概念变成一台可持久、可观看、可审批的 Linux microVM,并与 dsh 工作区路径对齐,适合在 DSH「一切皆插件」的生态里做客户端侧的隔离与 computer-use。安装与细节以官方文档为准。
- 目录页:https://www.skillhub.cn/plugins/Kevinwu901113/dsh-computer
- GitHub:https://github.com/Kevinwu901113/dsh-computer