DeepSeek Harness 入门:从安装到第一个 Agent 任务

DeepSeek Harness 刚开源时,我最想弄清楚的是:它和普通的 AI 聊天窗口到底有什么区别?

折腾一轮之后,我觉得可以这样理解:聊天应用主要负责回答问题,Harness 则让模型进入真实工作区干活。它能读写文件、运行命令、维护计划,遇到敏感操作再向用户申请批准。

下面从零开始,跑通官方 Web UI、模型配置和工作区,再交给 Agent 一个能验收的小任务。

一、DeepSeek Harness 是什么?

DeepSeek Harness,命令名为 dsh,是 DeepSeek AI 开源的 Agent Harness。它当前处于 Developer Preview,更新速度很快,也可能出现不兼容改动。

最值得先理解的设计叫 Everything is a Plugin。模型适配器、工具、会话日志、Agent Loop、沙箱、审批策略和 Web UI 都是可组合的插件。

所以,DSH 并不是一个形态固定的 Coding Agent。官方 Web UI、一次性 Headless 任务和社区桌面端,底下跑的都可以是同一套运行时。

text 复制代码
DeepSeek Harness
├── Model:连接 DeepSeek 或其他模型提供方
├── Agent Loop:组织模型请求和工具调用
├── Tools:文件、Shell、任务等能力
├── Session:保存可恢复、可回放的事件日志
├── Policy:沙箱与操作审批
└── UI:Web、Headless 或社区桌面端

二、开始前需要准备什么?

你需要:

  • 一台 macOS、Windows 或 Linux 电脑;
  • Node.js;
  • 一个可用的 DeepSeek API Key;
  • 一个允许 Agent 读取和修改的测试项目。

官方 README 只要求先安装 Node.js。当前源码仓库的运行环境声明为 Node.js ^22.19.0>=24.0.0。为了减少兼容问题,建议直接使用当前 Node.js 24 版本。

先确认环境:

bash 复制代码
node --version
npx --version

第一次别拿重要项目试手。复制一份仓库,或者先切一条临时 Git 分支,后面检查和回滚都省心。

三、启动官方 Web UI

进入准备使用的项目目录,然后运行:

bash 复制代码
cd /path/to/your-project
npx @deepseek-ai/dsh web

DSH 默认在本机启动:

text 复制代码
http://127.0.0.1:3080

调用命令时所在的目录会成为默认工作区位置。不过新版 Web UI 不会自动选中工作区,后面仍需要手动添加并确认。

如果默认端口被占用,可以指定其他端口:

bash 复制代码
npx @deepseek-ai/dsh web --port 3081

DSH 仍处于预览阶段。如果你希望复现稳定环境,可以固定版本:

bash 复制代码
npx @deepseek-ai/dsh@0.1.0-rc.6 web

四、配置 DeepSeek 模型

打开 Web UI 后,进入 设置 → 模型,在 DeepSeek 卡片中填写 API Key 并保存。

模型配置保存后会在下一次请求生效,不需要重启服务。

官方实现不会把明文密钥重新发送给设置页面。密钥保存在 $DSH_HOME/.credentials.yaml,设置文件只保存凭据引用。

如果你使用 OpenAI 兼容网关、自建服务或其他提供方,可以选择 添加自定义提供方,填写 Provider ID、Base URL、协议、凭据和模型。

这里容易踩一个坑:Provider ID 会被会话、默认模型和凭据引用。显示名称可以改,Provider ID 保存后就别随便动了。

五、选择工作区

返回主界面,点击 选择工作区 ,添加刚才启动 dsh 时所在的项目目录,然后选中它。

选中工作区之前,输入框是不可用的。不是页面坏了,DSH 只是在等你先圈定 Agent 可以操作的项目。

新会话默认使用 workspace-write 权限模式。文件写入和 Shell 产生的文件改动会被限制在工作区及平台临时目录;读取、网络访问和进程可见性并不等同于完全隔离。

所以,有沙箱也别把整个主目录扔给 Agent。工作区选得越小,出问题时越容易收拾。

六、完成第一个任务

第一次别输入"帮我把项目全部优化一下"。这种任务没有明确终点,结果很难验收,还容易顺手改出一堆无关内容。

先用一个只读任务认识项目:

text 复制代码
请阅读这个仓库,不要修改文件。

输出:
1. 项目的主要入口;
2. 核心模块及职责;
3. 本地测试命令;
4. 目前最值得处理的一个小问题。

确认它理解项目后,再给出一个边界明确的修改任务:

text 复制代码
修复刚才发现的问题。

要求:
- 修改前先说明原因和涉及文件;
- 只改解决问题所需的最少文件;
- 完成后运行相关测试;
- 最后列出修改摘要和测试结果。

Agent 可以读取和编辑文件、运行命令、维护计划或委派工作。当某项操作超过当前权限策略时,Web UI 会先请求你的批准。

七、我会这样给第一个任务

1. 先调查,再修改

先让 Agent 解释入口、依赖和测试方式。确认它没有认错项目,再让它动手。

2. 把验收条件写进任务

"优化登录功能"几乎没法验收。换成"修复刷新后登录状态丢失,并补一条覆盖刷新场景的测试",任务边界立刻清楚很多。

3. 一个会话只解决一类问题

已发送过请求的会话会保留自己的模型和历史。完全无关的任务最好开启新会话,避免旧上下文干扰判断。

4. 让 Agent 汇报验证证据

别只问"修好了吗"。让它把执行过的命令、测试结果和没验证的部分一并贴出来。

5. 关键节点及时看 Git Diff

Agent 能改文件,不代表那些修改都该收下。每完成一个小目标就看一次 diff,远比最后面对一大坨混合改动轻松。

八、常见问题

npx 找不到

确认 Node.js 已正确安装,并重新打开终端。执行 node --versionnpx --version,两个命令都应返回版本号。

输入框无法使用

先配置模型,再添加并选中工作区。默认模型指向已删除的提供方时,也需要重新选择模型。

出现 MISSING_CREDENTIAL

进入模型设置重新保存 API Key,或者检查配置引用的环境变量是否存在。

首次启动很慢

npx 首次运行需要下载 DSH 及其依赖,速度取决于网络和 npm Registry。完成缓存后,后续启动通常更快。

页面打不开或端口冲突

使用 --port 指定新端口,并确认终端中的 DSH 进程没有提前退出。

九、不想每次开终端怎么办?

官方目前提供 CLI、Web UI 和 Headless 运行方式。社区项目 DeepSeek Harness Desktop 用 Wails 和 Go 包了一层原生桌面窗口,负责启动 DSH、选择端口、显示日志和清理进程。

它没有重新实现 Harness,模型、会话、插件和 Web UI 仍来自官方 DSH。目前桌面版同样依赖本机 Node.js 与 npx,并且明确标注为非官方社区项目。

最新版还支持在可信局域网内扫码,用手机浏览器继续操作电脑上的 Harness 会话。

跑通以后

第一次使用,按这条路径走就够了:

text 复制代码
安装 Node.js
→ 在项目目录运行 npx @deepseek-ai/dsh web
→ 配置模型
→ 选择工作区
→ 先调查项目
→ 再执行一个有验收条件的小任务

走完一遍之后,你会发现 DSH 的重点确实不是"再做一个聊天窗口"。模型、工具、会话、权限和 UI 都能单独替换,这才是它和普通客户端拉开差距的地方。下一篇接着聊 Profile、Skill、MCP,以及我会怎样安排更长的任务。

参考资料

相关推荐
八岁小孩学编程2 小时前
一切皆插件:DeepSeek Harness 想重新定义 Agent 的“骨架”
agent·ai编程·deepseek
AI风向标2 小时前
DeepSeek Harness + cc-connect + 飞书:让手机直接驱动本地 Agent
deepseek
一个处女座的程序猿3 小时前
Agent之Harness:deepseek-harness的简介、安装和使用方法、案例应用之详细攻略
deepseek·harness
猿小猴子3 小时前
主流 AGENT 实战教程「OpenCodex」与「ChatGPT Work」与「Codex Record & Replay」介绍
人工智能·ai·chatgpt·codex·minimax·deepseek·opencodex
aimmon4 小时前
DeepSeek Harness 初探:1、一切皆插件的 Agent 框架
二次开发·ai大模型·deepseek·harness
用户548775431605 小时前
DeepSeek Harness 与 xAgent:两种 Agent Harness 架构路线怎么选
人工智能·deepseek
舒灿6 小时前
DeepSeek Harness——Agent自我进化的实现途径?
前端·ai编程·deepseek
Do1you1believe1light6 小时前
AI Agent 无法自己进化自己——我给它配了一支“外部教练团队”
deepseek