DeepSeek Harness 实战
本文只描述 DeepSeek 官方 Harness 的使用方法。由于项目处于快速迭代阶段,命令和选项必须以官方仓库当前 README、发布说明和
--help输出为准。
能力定位
DeepSeek Harness 是围绕 DeepSeek 模型运行代码任务的工程化 Harness。它的重点不是另一个聊天窗口,而是工作区、上下文、工具、Skills、MCP、执行轨迹和任务闭环。
安装前检查
- Node.js、npm 或官方文档要求的运行时版本;
- Git;
- 一个不含真实密钥的测试仓库;
- DeepSeek API Key;
- 本机对工作区、网络和命令执行权限。
不要一开始就在生产仓库中试验预览版。先用无敏感数据的练习仓库验证安装、模型调用、工具权限和退出方式。
安装与版本确认
官方包名和当前安装命令以仓库为准。安装后先确认版本和帮助:
powershell
npm install -g @deepseek-ai/dsh
dsh --version
dsh --help如果当前官方版本要求其他安装方式,以官方说明替换上面的命令;不要把搜索结果中的第三方安装脚本直接复制到工作环境。
配置 Profile
把模型、服务地址和权限配置放入 Profile,避免每次命令行重复输入:
yaml
profile: deepseek-dev
model: deepseek-v4-flash
base_url: https://api.deepseek.com
api_key_env: DEEPSEEK_API_KEY
workspace: .
permissions:
- read_repo
- search_code
- run_tests
- write_workspace
approval_required:
- delete_file
- publish上面的字段是配置思路示意;具体字段名称、文件位置和权限枚举以当前版本 dsh --help 与官方示例为准。
第一个任务流
text
1. 进入练习仓库
2. 启动 dsh 并选择 Profile
3. 先让 Harness 只读分析,不要直接修改
4. 确认计划和影响文件
5. 开放工作区写权限
6. 运行格式化和窄范围测试
7. 让 Reviewer 检查 diff
8. 导出轨迹和验证结果推荐任务提示:
text
请先只读分析这个 Go 服务中订单创建接口的幂等性缺口。
输出相关文件、现有测试、最小改动计划和验证命令。
不要修改文件,也不要执行外部写操作。工作区隔离
一个 Harness 可以服务多个项目,但每个任务都应明确工作区:
- 仓库根目录;
- 当前分支;
- 是否保留用户已有改动;
- 允许读写的目录;
- 测试和构建命令;
- 可访问网络和外部系统。
把“当前工作区状态”作为任务上下文的一部分,避免 Agent 误覆盖用户未提交的变更。
预览能力的使用原则
如果某能力标记为 preview、rc 或 experimental:
- 单独使用测试 Profile;
- 记录版本和配置;
- 准备回退方案;
- 不将其作为团队唯一生产链路;
- 用固定任务集比较升级前后结果。
排错顺序
dsh --version和dsh --help是否能执行;- API Key 环境变量是否存在,但没有打印值;
- 当前 Profile 是否加载;
- 网络、代理、TLS 和服务状态;
- 模型是否支持目标 Tool Call 或 Agent 集成;
- 工作区和工具权限是否足够;
- 查看脱敏轨迹,定位是模型、工具还是 Hook 失败。
练习
- 创建一个不含秘密的练习仓库,完成只读分析任务。
- 设计一个 Profile,使删除文件和推送代码都需要审批。
- 为一次 Harness 升级记录版本、配置、任务集结果和回滚命令。
