一、前言

下载: DSH desktop

在这里插入图片描述

DeepSeek Harness(简称 dsh)是 DeepSeek AI 于 2026 年 8 月开源的一个智能体运行框架,采用 Cordis 内核实现“一切皆插件”架构。模型、工具、技能、会话、沙箱、存储、Agent 循环、调度和 UI 全部是可插拔能力。它的定位不是聊天机器人,而是一个可组装的运行时底座,让 AI 能够真正执行文件操作、终端命令、网页搜索等任务。

官方提供了 npx @deepseek-ai/dsh web 的命令行启动方式。但每次启动都要敲命令、管理端口、排查 Node.js 环境问题,对不熟悉终端的开发者并不友好。社区维护的 DeepSeek Harness Desktop 把完整的 Harness Web UI、内置 Node 运行时、插件市场、任务看板等能力打包成桌面应用,双击即可使用。

本文基于自编译安装的桌面版,从首次启动开始,逐步介绍配置流程、核心功能、权限机制和实战案例。

二、自编译环境与关键注意事项

桌面版基于 Tauri 2 + Vue 3 构建,对系统环境有明确要求。

2.1 环境要求

项目要求
Node.js24(项目要求 Node 24,不需要从源码编译 Node 本身)
Rust1.77.2+(Tauri 后端依赖)
pnpm9+
WindowsMSVC 构建工具 + WebView2
macOSXcode Command Line Tools
LinuxWebKit2GTK

2.2 编译命令

pnpm install
pnpm tauri:build

tauri:build 会自动执行 runtime staging(使用 pnpm deploy 生成固定版本的 @deepseek-ai/dsh 生产依赖)、布局校验,以及真实的 dsh web 启动冒烟测试。全部通过后才会生成安装包。

2.3 容易忽略的坑

端口冲突:调试模式运行在 3081 端口,正式构建运行在 3080 端口。两者可以同时运行互不冲突,但如果 Harness 无法监听 loopback 端口,构建会直接失败。确保 3080/3081 没有被其他程序占用。

首次启动的数据位置选择:首次启动时,应用会让你选择数据存储位置(默认是用户目录下的 DeepSeek Harness 文件夹)。这个目录存放了会话记录、设置和 API Key。之后可以通过 File → Change Data Location 随时更换。

三、首次启动与模型配置

3.1 配置 DeepSeek API Key

启动后进入主界面,第一件事是配置模型。点击 设置 → 模型(Settings → Models),在 DeepSeek 卡片中粘贴 API Key 并保存即可。

API Key 从 platform.deepseek.com 申请,形如 sk- 开头。密钥仅在创建时显示一次,关闭页面后无法再查看完整内容,务必妥善保存。Key 仅存储在本地数据文件夹中,不会上传到任何服务器,模型路由保存后立即生效,无需重启服务。

3.2 接入第三方模型(可选)

Harness 对模型提供商完全开放。进入 设置 → 模型 → 编辑自定义提供方,填入 Base URL 和 Key,即可接入 OpenAI 兼容端点或其他受支持的提供商。在输入栏的模型菜单中可以随时切换。

四、工作区与沙箱权限:Agent 的安全边界

4.1 创建工作区

工作区是 Harness 权限管控的核心边界。点击 Add workspace 或 Choose workspace,选择一个本地文件夹作为 AI 可以操作的目录。

安全建议:首次使用时,建议创建一个专门的测试目录作为工作区,不要直接选择项目根目录或 C 盘。

4.2 三档权限模式详解

Harness 的权限预设层把两个独立的强制控制——沙箱模式与审批策略——捆绑成具名预设,供客户端作为单个选择器提供。默认预设表自带两种组合:workspace-write(workspace-write + ask)和 danger-full-access(danger-full-access + never)。

权限模式沙箱 + 审批组合说明适用场景
read-only只读 + 审批只能读取,所有写入操作被沙箱拒绝代码审查、纯问答
workspace-write(默认)工作区可写 + 审批询问仅限工作区内读写 + 会话临时目录日常开发
danger-full-access全权限 + 不询问全电脑读写,关闭审批提示仅在确有必要时使用

最佳实践:能用 read-only 就不给写权限;日常工作用 workspace-write;full-access 只在确有必要时开启,用完即关。对不熟悉的项目先用只读模式试水,确认 Agent 行为可控后再逐步放宽。

需要注意的已知问题:在会话已经处于 danger-full-access 且审批提示已禁用的情况下,调用 bash、edit 或 write 工具仍可能重复触发 sandbox escalation 提示,报错信息为 sandbox escalation to "danger-full-access" is not strictly wider than this call's current "danger-full-access" mode。这是权限关系判断逻辑的已知缺陷,遇到时重启会话即可恢复。

五、核心功能详解

5.1 Trajectory 轨迹视图

Trajectory 是 Harness 最值得关注的功能之一。在对话中点击 Trajectory 标签,可以看到 Agent 执行任务的完整轨迹:每一步的模型响应、调用了哪个工具、传入的参数、返回的结果、消耗的 Token 和时间,按 turn → step 组织。

模型看到的所有信息都会写入仅追加设计的会话日志,包括系统提示词、思维链、工具调用与结果、子 Agent 调度及每次上下文注入。恢复、分叉、检索与回放共享同一份事件流。对于调试 Agent 行为、理解 AI 决策过程非常有帮助。

如果内置的 Trajectory 视图不够直观,还可以安装社区插件 trajectory-graph,它会添加一个 Graph 标签页,以交互式图谱的形式展示每轮的执行流程,提供 Turn navigator 来隔离单个用户请求,也可以选择 Session Overview 检查整个会话。

5.2 文件操作与附件机制

桌面版支持将 Windows 资源管理器中的文件直接拖入对话窗口,也可以点击 Add files 选择文件。文件会先保存到当前工作区,然后以附件卡片的形式加入草稿,发送后模型根据需要使用工具读取。

注意:附件卡片表示“文件已交付”,但不代表模型已经读取了全部内容。模型会自主决定是否需要打开文件、读取哪一部分。

5.3 内置终端与 Git 集成

桌面版内置了终端面板,可以直接在工作区中运行 PowerShell 或 Bash 命令并查看输出。同时支持 Git 工作流,可以查看代码差异、暂存更改等操作。

5.4 多 Agent 能力

Harness 内置了 subagent、subagent_fork、workflow、ralph 四个多 Agent 编排工具,以及 list_agents、send_message、interrupt_agent 三个管理工具,全部开箱即用无需额外安装。

工具核心机制适合场景
subagent完全独立上下文,不继承父会话历史任务之间相互独立、不需要知道彼此的情况
subagent_fork将父会话已完成的对话内容一并传给子 Agent子任务需要基于主会话前期的分析结论继续推进
workflow脚本层面定义多个任务并行执行,全部完成后统一汇总批量处理、多维度评测等结构固定的场景
ralph每轮换新 Agent + 结构化交接报告防止单 Agent 在同一思路上钻牛角尖

六、插件市场

桌面版最显著的体验优势是内置插件市场。进入 设置 → 插件市场(Settings → Plugin Market),可以直接在应用内浏览、搜索、安装、更新、停用和卸载社区插件,无需手动敲 dsh plugin add 命令。

市场由 dsh-market 和 awesome-dsh-plugin 目录提供,内置了 pnpm@10.34.5,即使系统没有包管理器也能正常管理插件。插件变更保存在官方本地 web profile 中,与 CLI 安装的插件完全兼容。

安装插件后如遇到提示,请重启 DeepSeek Harness Desktop 使插件生效。社区插件属于第三方代码,以当前用户权限运行,安装前请检查插件源码与权限声明。

七、实战案例

案例一:生成交互式网页并验证沙箱权限

这是最直观的入门案例,适合验证整个工作流是否配置正确,同时观察沙箱权限的运作方式。

操作步骤:

  1. 创建一个空文件夹(例如 D:\dsh-demo),添加为工作区,确认权限模式为 workspace-write(默认)
  2. 在输入框中输入以下指令:
请在这个工作区中创建一个名为 index.html 的单文件网页。
要求:
- 一个简洁的个人技术博客首页
- 深色主题,卡片式布局
- 包含导航栏、3 篇示例文章摘要、页脚
- 纯 HTML + CSS,不依赖任何外部库
  1. 发送后,在 Trajectory 面板观察 AI 的完整执行过程:规划 → 读取工作区状态 → 写入 index.html → 验证文件
  2. 生成完成后,在对话中直接预览网页,或在浏览器中打开 D:\dsh-demo\index.html

沙箱权限验证:在对话中追加一条指令:

尝试在 D:\ 根目录创建一个名为 test.txt 的文件。

你会看到工具调用被沙箱直接拒绝,Trajectory 中记录拒绝原因。这正是 workspace-write 模式的安全边界在起作用。

案例二:使用 subagent 并行处理多任务

这个案例展示 Harness 多 Agent 编排的实际效果。

准备工作:在工作区中放入 3 个不同的代码文件或文档。

指令:

请使用 subagent 并行启动三个子任务:
1. 子任务A:分析工作区中 file_a.py 的代码质量,列出 3 个改进建议
2. 子任务B:阅读 file_b.md,提取核心观点并整理成 5 条要点
3. 子任务C:检查 file_c.json 的结构,指出是否存在格式问题

等三个子任务都完成后,把结果合并成一份报告,写入 分析报告.md。

关键设计:指令包含三个要素——任务拆分规则 + 等待机制(等都完成后)+ 输出要求。缺少任何一个都容易出现任务遗漏或结果格式混乱。

在 Trajectory 视图中,你可以清晰地看到三个子 Agent 各自独立运行、返回结构化结果、主 Agent 汇总后写入报告文件的完整过程。

案例三:基于已有分析结果使用 subagent_fork

前置操作:先在对话中让主 Agent 分析工作区中的代码仓库结构。

指令:

基于我们刚才分析的这份代码仓库结构,用 subagent_fork 启动两个子 Agent:
- 一个针对认证模块写单元测试
- 一个针对 API 层写集成测试
两个都完成后给我合并结果。

与 subagent 的区别在于:subagent_fork 会把父会话中已经完成的对话内容一并传给子 Agent,子 Agent 知道“之前发生了什么”,适合需要基于前期分析结论继续推进的场景。

八、总结

DeepSeek Harness Desktop 的核心价值在于降低了 Agent 工作台的使用门槛。你不再需要记忆 CLI 命令、管理 Node.js 版本、排查端口冲突,而是像使用正常的桌面应用一样双击启动、配置 Key、选择文件夹,然后专注于让 AI 完成任务本身。

对于已经完成自编译安装的你来说,接下来可以重点探索三个方向:Trajectory 轨迹分析(理解 Agent 决策过程)、插件市场(扩展工作流能力)、以及多 Agent 编排(用 subagent 和 workflow 管理复杂任务)。这三者组合起来,就是一个完整的本地 AI 工作台。

参考资源:

下载: DSH desktop

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐