🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

容器执行世界 frozo-ai/dsh-worlds

DeepSeek Harness
frozo-ai78 天前有提交已提供中文文档扫描:未发现敏感能力

把代理的 Shell 与文件操作搬进 Docker 容器,重启后仍可续用

29/100
综合分
3
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/9/19 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

自动兼容检查有告警:未发布到 npm registry,仅可从源码安装。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add frozo-ai/dsh-worlds
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么[目录]—
dsh 原生插件 · security
暂无时间戳·判据 →
装得上吗[实装验证]—
静态安装检查有提示项,装前建议看一眼 README
数据截至 2026/09/25·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/04·判据 →
还在维护吗[仓库]—
更新放缓:最近一次提交在 78 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →

可信度证据

安装兼容性检查⚠ 装前注意

未发布到 npm registry,仅可从源码安装

展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✗npm 包dsh-worlds(未发布到 npm,仅可源码安装)
✓Node 引擎要求 >=20 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/9/23 11:37:46

安全扫描自动 · 静态分析源码
v2.7.0
🟢 扫描:未发现敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。

查看扫描证据(共 1 处,展示前 1 条)
  • 启用终端会话(PTY)
    adapter/subprocess.ts:56
    return (await this._terminal.spawn(spec)) as unknown as SubprocessTerminalHandle
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

社区实装还没有人打卡 · 装过的第一个就是你
依赖的 DSH / Cordis 模块
@deepseek-ai/dsh-fs@deepseek-ai/dsh-subprocess@deepseek-ai/cordis
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 容器内执行Bash
  • 容器内文件操作
  • 重启后环境续用

DeepSeek Harness 的远程执行环境:在容器里跑智能体的 Bash、终端、LSP 和文件工具。零依赖。

README

由 DeepSeek 最新模型翻译生成
dsh-worlds 在容器内运行代理的执行世界——这样它就能在启动它的框架消亡后继续存活。 DeepSeek Harness 在 packages/terminal/terminal/README.md 中记录了这一限制: “会话是进程本地的,在框架重启后不会被恢复。” 会话日志是持久的。但代理所操作的计算机不是——shell 会随框架一起消亡,同时带走你的 cwd、导出的变量和后台进程。 dsh-worlds 通过将执行世界移入 Docker 容器来解决这个问题。无需 CRIU,无需 microVM:容器只是比它的客户端活得更久。 harness process A harness process B (a different process) +------> [ container: dsh-world ] “现有的 dsh-bash-local、dsh-terminal-bash 和 dsh-lsp-stdio 无需任何分叉。它们将每一个执行世界操作都委托给 ctx.fs 和 ctx.subprocess。” 实现这两个接缝后,Bash、持久 PTY 终端、LSP 以及所有文件工具都会自动迁移到容器中。这是一份刻意的架构馈赠,而本项目正是你接受它之后所发生的事。
展开完整文档(README 剩余 1 节)
dsh-worlds

在容器内运行代理的执行世界——这样它就能在启动它的框架消亡后继续存活。

DeepSeek Harness 在 packages/terminal/terminal/README.md 中记录了这一限制:

“会话是进程本地的,在框架重启后不会被恢复。”

会话日志是持久的。但代理所操作的计算机不是——shell 会随框架一起消亡,同时带走你的 cwd、导出的变量和后台进程。

dsh-worlds 通过将执行世界移入 Docker 容器来解决这个问题。无需 CRIU,无需 microVM:容器只是比它的客户端活得更久。

harness process A harness process B (a different process)
+------> [ container: dsh-world ] “现有的 dsh-bash-local、dsh-terminal-bash 和 dsh-lsp-stdio 无需任何分叉。它们将每一个执行世界操作都委托给 ctx.fs 和 ctx.subprocess。”

实现这两个接缝后,Bash、持久 PTY 终端、LSP 以及所有文件工具都会自动迁移到容器中。这是一份刻意的架构馈赠,而本项目正是你接受它之后所发生的事。

状态

| 能力 | 检查数 |
| Docker Engine API 客户端 + 流解复用 | 11 单元 + 12 实机 |
| ctx.fs — 全部 12 个方法 | 38 实机 |
| 有界收集缓冲区(基于偏移、非消耗性) | 11 单元 |
| ctx.subprocess — spawn、进程树终止、waitForExit | 22 实机 |
| PTY — spawnTerminal、resize、前台信号 | 17 实机 |
| 总计 | 111 |

零 npm 依赖。仅使用 node:http、node:net、node:crypto。

试一试

需要 Docker 以及一个已构建的 dsh 检出。
sh
git clone https://github.com/frozo-ai/dsh-worlds
cd dsh-worlds
npm test # unit suites, no Docker needed
npm run verify # live: Docker client
npm run verify:fs # live: filesystem provider
npm run verify:subprocess
npm run verify:terminal

然后将其安装到一个 dsh profile 中——它附带一个 dsh.bundle 清单,因此可以按包名挂载,无需编辑路径: sh
dsh plugin --profile headless add github:frozo-ai/dsh-worlds

将 dsh-worlds 添加到该 profile 的 dsh.profile.bundles 中,然后正常运行——无需 --patch 标志: sh
dsh --profile headless "use the terminal tool and run: tty; cat /etc/alpine-release"
-> /dev/pts/0
3.24.1

演示 sh harness A: create state, start a background process, then exit
dsh --profile headless "bash: echo session-state-v1 > /srv/state.txt && (nohup sleep 900 &)"

harness B: a brand new process, same world
dsh --profile headless "bash: cat /srv/state.txt; ps -o args | grep '[s]leep 900'"
-> session-state-v1
sleep 900 <-- 由一个已不存在的测试框架启动

诚实的局限

- 容器是边界,而不是沙箱接缝。 该 overlay 禁用了 sandbox、bash-sandbox 和 permission-presets,并强制使用 danger-full-access。每次调用的沙箱模式(read-only / workspace-write)不再在 bash 层强制执行。主机隔离对于一个不在此内核上运行的进程毫无意义——但容器围住的是主机,而不是工作区,这更为粗糙。
- stdin: 'pipe'(持续的协议写入)尚未实现;它会大声报错而不是挂起。批量 stdin: { data } 可以正常工作。
- inputWaiting 是一种启发式判断——仅凭 /proc 无法区分被阻塞的 tty 读取和空闲休眠。
- 镜像必须提供 bash、ps 和 base64。 DockerWorld 在缺失时通过 apk 或 apt 安装 bash/procps,如果无法安装则会大声报错。
- 路径镜像: dsh 将主机工作区路径作为 cwd 传入,而 provider 会在容器内创建它。真正的工作区访问需要绑定挂载(WorldConfig 中的 binds)。
- dsh 本身是一个带有破坏性变更的开发者预览版;请固定版本。

SCOPE.md 包含完整的接口映射、大小基准测试,以及在此过程中发现的每一个 bug。

MIT。与 DeepSeek AI 无关联。
预览分享卡片长什么样 ↓frozo-ai/dsh-worlds
分享 · DeepSeek Harness Hub
frozo-ai/dsh-worlds

把代理的 Shell 与文件操作搬进 Docker 容器,重启后仍可续用

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部