编程

deepseek-harness-windows-deploy

试用

Windows 上以源码方式(pnpm monorepo)部署、构建、启动、排错 DeepSeek Harness 的实战指南,聚焦 WorkBuddy / CodeBuddy 托管 Node 沙箱下的 safe-delete 钩子冲突、pnpm 路径损坏、工作区持久化、EPERM 符号链接、端口 3080 等已知坑与已验证命令。仅覆盖 Harness 自身的安装与排错;桌面套壳(Electron 包装 Web UI)由独立的 deepseek-harness-desktop-shell 技能负责。

它能做什么

Windows 上以源码方式(pnpm monorepo)部署、构建、启动、排错 DeepSeek Harness 的实战指南,聚焦 WorkBuddy / CodeBuddy 托管 Node 沙箱下的 safe-delete 钩子冲突、pnpm 路径损坏、工作区持久化、EPERM 符号链接、端口 3080 等已知坑与已验证命令。仅覆盖 Harness 自身的安装与排错;桌面套壳(Electron 包装 Web UI)由独立的 deepseek-harness-desktop-shell 技能负责。

技能文档

DeepSeek Harness — Windows 部署与避坑

适用范围与边界(先读)

本技能只覆盖一件事:在 Windows 上把 DeepSeek Harness(deepseek-ai/deepseek-harness)源码安装、构建、启动、排错。

明确覆盖(已拆分到独立技能,避免越界):

  • 搭建新项目脚手架、跨平台桌面应用开发、Electron / Tauri 打包——这些由 deepseek-harness-desktop-shell 技能负责。
  • 任何与 DeepSeek Harness 部署无关的环境改动。

高影响步骤(清空 NODE_OPTIONS、结束端口 3080 进程、删除 ~/.dsh 下的文件)在被执行前必须先向用户说明并确认;且这里给出的模式只适用于 Harness 排错这一特定场景,不得套用到其他地方

非触发条件:若任务只是"做个桌面应用""打包成 exe",应交给桌面套壳技能,而不是本技能。

目的

DeepSeek Harness 是 DeepSeek 开源的 Agent 插件框架(基于 Cordis 内核)。本技能汇总在 Windows + 托管 Node(WorkBuddy 沙箱) 环境下源码安装、构建、启动、配置工作区时踩过的所有坑,以及已验证可用的命令,让其他 agent 一次性把 Harness 跑起来,不再重复试错。

兼容性 / 适用环境

本技能遵循开放的 Agent Skills 标准SKILL.md + YAML frontmatter),任何支持该标准的 agent 运行时都能加载。按确认程度分类:

  • 已确认适用:WorkBuddy、OpenClaw——二者技能生态 100% 兼容,ClawHub 市场技能可一键安装。

  • 格式兼容、待官方确认运行时加载:Claude / Claude Code(Agent Skills 标准由 Anthropic 提出,原生支持 SKILL.md)、Cursor、Windsurf、Codex(OpenAI)等——若实现了 Agent Skills 标准即可直接加载;是否原生加载请以各产品官方文档为准。

  • 需单独确认:Hermes 是独立 agent 产品,其技能体系同为 SKILL.md 形态,但运行时是否按 Agent Skills 标准加载本技能需以 Hermes 官方为准。

  • 操作系统:Windows 10 / 11(部分坑与 Windows 路径 / 目录符号链接行为强相关;macOS / Linux 需自行替换路径)。

  • 坑的适用范围(请按需取用,避免误判):

    • WorkBuddy / CodeBuddy 沙箱特有(原生 OpenClaw / 普通终端 / 上述其他 agent 不会出现):NODE_OPTIONS 注入的 genie-safe-delete 钩子导致写盘失败;run_in_background 回收常驻进程。
    • Windows + DeepSeek Harness 通用(任何 agent 部署都该知道):pnpm / corepack 路径损坏、EPERM 目录符号链接迁移陷阱、~/.dsh 工作区持久化位置、端口 3080 占用。
  • 说明:本技能内容聚焦"在 Windows 上把 DeepSeek Harness 跑起来",与具体 agent 品牌无关;除标注的沙箱特有坑外,其余经验对所有在 Windows 部署 Harness 的 agent 都有参考价值。

何时使用

  • 安装 / 构建 / 启动 DeepSeek Harness(源码方式,pnpm monorepo)。
  • 解决 Harness Web UI 的"无法保存确认状态""无法选中工作区""端口被占用""启动 EPERM"等报错。
  • 配置 Harness 工作区、理解 dsh 的 cwd 与工作区关系。

核心结论(先记住这三条)

  1. WorkBuddy Bash 沙箱会给每个 node 进程注入 NODE_OPTIONS=--require=.../genie-safe-delete.cjs,把 fs.rm/unlink 劫持成走 genie-trash.exe,Windows 上超时并以 fail-closed 方式报错。Harness 所有"带锁的原子写"(设置持久化、工作区持久化)都在 finallyrm 锁文件,会被它搞挂。唯一可靠解法:启动 dsh 时前缀 NODE_OPTIONS=""
  2. 不要用 run_in_background=true 在 WorkBuddy Bash 里常驻 dsh web——工具会在命令返回后清理整个进程组,node 被杀、端口释放。用命令内 & 后台即可。
  3. 工作区持久化在 ~/.dsh/storages/workspace.json(不是 settings.yaml);会话存储在 ~/.dsh/sessions//。"选不中工作区" 绝大多数是 Web UI 客户端状态陈旧,硬刷新(Ctrl+Shift+R)即可;后端 session.create RPC 正常。

安全与防护边界(重要)

本技能含两条"看起来危险"的操作。它们是对一个有文档记载的沙箱不兼容问题的极小范围临时绕过,不是"关闭系统安全"的通用做法。请严格按边界使用:

  1. NODE_OPTIONS="" 只作用于启动 dsh web 的那一个 node 进程,不是全局或系统级关闭

    • 它只用于启动 dsh web 这一条命令,目的是绕过 WorkBuddy / CodeBuddy Bash 沙箱注入的 genie-safe-delete 钩子(--require=.../genie-safe-delete.cjs)。该钩子把 fs.rm/unlink 劫持成走 genie-trash.exe,在 Windows 上超时并以 fail-closed 方式报错,反而导致 Harness 的设置 / 工作区持久化写盘失败。
    • 这属于解除一个会害事的沙箱注入,并非关闭操作系统或文件系统的安全机制;且该变量只在那条启动命令的子进程生效,不影响其他进程或系统。
    • 执行前需向用户说明并获确认。长期理想解是平台修复钩子行为;在此之前这是最小必要绕过。
    • 不要NODE_OPTIONS="" 套用到其他命令或长期环境;其他场景保留沙箱保护更安全。
  2. 强制删除操作范围极小、且可重建

    • 用到的 fs.rmSync(path, {recursive:true, force:true}) 只针对 ~/.dsh/profiles/node_modules/@deepseek-ai/dsh-goal-round-driver 这一个失效的目录符号链接
    • 它是 Harness 启动失败时尝试重建的缓存软链,删除后 Harness 会自动重新生成,不触及任何用户数据
    • 路径精确到具体文件,绝不递归删除目录树、绝不碰项目代码或 ~/.dsh 之外的位置。
    • 首选仍是"避免触发"的方式(迁移时用同盘 mv、不在沙箱内 rmdir);删除只是迁移后修复启动 bug 的最小必要步骤,执行前需向用户确认
  3. 常驻 dsh web 是用户可控的本地服务

    • 用命令内 & 让 dsh web 后台运行,会起一个长期本地服务(默认 http://127.0.0.1:3080)。该服务由用户自行启动与停止,本技能只是给出启动方式,不会自动常驻或隐藏进程。

验证过的启动命令(最稳)

cd <你的 harness 安装根,例如 D:\Deepseek>      # 含 apps/cli/lib/bin.js
NODE_OPTIONS="" & "<你的托管 Node 可执行文件,例如 C:\Users\<你>\.workbuddy\binaries\node\versions\22.22.2\node.exe>" apps/cli/lib/bin.js web
  • 默认 http://127.0.0.1:3080
  • dsh 的启动脚本实为 node --import tsx/esm apps/cli/src/bin.ts;构建后也可直接跑 apps/cli/lib/bin.js
  • 首次进入在「设置 → 模型」填 DeepSeek API Key。

详细避坑清单

完整的环境准备、安装步骤、以及每一类报错的成因与解法,见 references/deploy-pitfalls.md。部署前先读它,按表排查可省下大量时间。

相关技能

把已在本地运行的 DeepSeek Harness Web UI(默认 http://127.0.0.1:3080)用 Electron 包装成桌面应用的实战指南:前置依赖、最小可运行壳、启动 Harness 与加载本地 URL 的方式、打包分发。仅覆盖桌面套壳本身;Harness 的安装 / 构建 / 排错由 deepseek-harness-windows-deploy 技能负责。

1 次安装

DeepSeek Harness(dsh)傻瓜式本地启动助手。一句话讲清 DSH 是什么,引导在 DeepSeek 开放平台获取 API Key,按本机系统(macOS/Windows/Linux)实时装好 Node、配置 npm 国内镜像、安装并启动 dsh,并就地生成桌面快捷方式(启动服务并打开 http://localhost:3080)。运行脚本由 Agent 按系统环境实时写出,不依赖任何随包文件。触发词:DSH、DeepSeek Harness、dsh、本地部署 DeepSeek、DeepSeek Agent 框架、傻瓜式启动。

Opens Brave browser and navigates to DeepSeek website. Use when user says 'open deepseek' or 'go to deepseek'.

1 星标

Huawei Cloud Flexus X Instance Deployment - DeepSeek Harness (dsh). ⚠️ Deployment involves actual charges, must confirm region/flavor/billing mode with user before execution. Triggers include: "部署DeepSeek Harness", "部署dsh", "部署DeepSeek智能体", "创建AI智能体服务器", "Deploy DeepSeek Harness", "Deploy dsh", "Create AI Agent Server", "Deploy AI Harness", "DeepSeek Harness", "dsh", "Flexus X", "ECS部署", "AI智能体".

Build a complete multi-agent orchestration harness for an OpenClaw (or similar) agentic system — defining a CTO/orchestrator agent, tiered specialist agents,...

3 次安装

Use APIDot for DeepSeek V4 Pro API workflows, including OpenAI-compatible chat, 1M-token long-context reasoning, complex coding, document review, agent plann...