← 返回 AIGC教程
本地部署 随用随查 今天

DeepSeek Harness 使用指南

从概念到实战的开源 Agent 运行时深度指南:私有化部署、插件生态、30+ 内置工具、20+ 模型接入与权限安全。

DeepSeek Harness 使用指南

Agent Harness 完全指南:从概念到 DeepSeek Harness 实战

AIGC / Agent 领域开发者的概念科普 + 实战使用文档
整理日期:2026-08-14(54520520@qq.com,王博)


目录

  1. 应用方向与能力评估(开篇速览)
  2. 什么是 Harness
  3. 开源 Harness 生态
  4. DeepSeek Harness 实战
  5. 选型建议
  6. 常见问题 FAQ
  7. 附录:官方文档与参考资料

〇、应用方向与能力评估(开篇速览)

一句话定位:DeepSeek Harness 是「可私有化的通用 Agent 运行时」——它不是某个垂直应用,而是一台能装不同「马具」的机器。应用方向主要落在下面五个场景。

五大应用方向

方向 适合谁 一句话说明
① 私有化 Agent 平台(最主流) 个人开发者 / 小团队 内网部署统一编码助手或业务 Agent 底座,数据不出内网、完全可控
② 插件化扩展生态(最具想象空间) 有定制需求的开发者 改能力不用 fork 源码:接数据库、包内部 API、写校验规则、换 UI,全在配置层解决
③ Agent 调试与研究(差异化王牌) AI 研究者 / 框架开发者 会话回放 + 分叉:失败任务精确重放、任意节点分叉对比,传统黑盒重跑做不到
④ 多模型统一网关 注重成本控制的团队 一个 UI 切 20+ 提供方:便宜模型跑机械任务、强模型跑关键任务、本地 Ollama 免费跑隐私数据
⑤ 教学与二次开发 想理解 Agent 原理的人 MIT 协议 + 微内核架构,代码量可控、分层清晰,是学习现代 Agent 运行时的极佳标本

能力总评

架构思想是顶级的,成熟度是预览级的——这是理解它一切优劣的总钥匙。

核心优势(按含金量排序)

  1. 插件架构是真·可组合,不是宣传话术:Cordis 内核的时间/空间可组合性,模型、工具、循环、UI 全部可单独替换——升级 Harness 时自定义插件不用重写,这是 fork 改内核的 LangGraph 路线做不到的。
  2. 会话回放 / 分叉,调试体验断层领先:任务失败可精确重放执行轨迹、任意节点分叉出新路径对比结果。对研究性和高成本任务(一次长任务可能烧几十万 token)价值极高。
  3. 模型中立,成本可塑性极强:20+ 提供方 + 任意 OpenAI 兼容端点,配合 PTC 模式(TypeScript 编排工具调用、减少模型往返),同一套 Harness 可做到「贵模型想、便宜模型干」。官方 V4 系列 benchmark 就是自家 Harness 跑的。
  4. 开箱即用的安全底座:三档权限模式 + 按系统实现的沙箱(Linux Landlock / macOS Seatbelt / Windows ACL)+ ask/never 审批,把「模型乱执行」这个最大风险在架构层兜住。

主要劣势与风险

  1. 预览版的不确定性(最大风险):v0.1-rc 阶段,接口、配置格式、插件 API 都可能破坏性变更。生产环境接入前必须锁定版本(本指南部署即固定 0.1.0-rc.6,不走最新)。
  2. 生态尚在萌芽:社区插件约 12 个(DeepBolt 目录收录),对比 Claude Code 生态差一到两个数量级。好消息是 3.7 万 Star 的增速意味着生态会快速填充,但短期内「想要的能力可能要自己写插件」。
  3. 企业级配套缺失:无 SSO、多租户、集中审计、灰度发布等企业标配——面向个人/小团队够用,做公司级平台要自己补一层;长任务稳定性(几十步以上)尚无大规模生产验证。
  4. 部署门槛实测偏高:Node 22.19+ 是硬门槛,Windows 下存在 pnpm 沙箱、npx 兼容、bat 编码等坑(本指南附录已给出规避方案),对非技术用户不友好。

一句话结论

  • 适合:个人/小团队私有化部署、Agent 研究与调试、想深度定制 Agent 能力的开发者
  • 暂不适合:需要 SLA 保障的大规模生产系统、需要企业管控能力的中大型组织、非技术用户(等生态成熟)

一、什么是 Harness

1.1 核心定义

读音:/ˈhɑːrnɪs/,原意:马具、缰绳

Agent = Model + Harness

  • Model(大模型):是马,负责思考、推理、生成内容,有原始智力,但容易幻觉、跑偏、长任务失控。
  • Harness:就是马具 / 运行壳,是大模型之外的整套外围工程系统,不修改模型权重,用来约束、管控、引导、校验大模型,让它稳定、安全、按规则干活。

一句话:模型负责"会做",Harness 负责"做对"

1.2 Harness 里面包含什么(AIGC/Agent)

  1. 上下文 & 记忆管理:长任务状态维护、历史裁剪、长期记忆,防止 AI 干着活忘记前面目标
  2. 工具注册表:管理能调用的插件、函数、文件读写、联网能力,控制哪些工具可用
  3. 权限与安全层:哪些操作允许、哪些禁止,沙箱隔离,防止越权操作
  4. 任务循环 / 工作流:任务拆解、计划、执行、校验、失败重试、回滚逻辑
  5. 校验与反馈闭环:自动检查输出对错,发现幻觉自动修正,日志、可观测性监控
  6. 系统规则、约束协议:不只是简单 prompt,是一套强制执行的行为规范

⚠️ Harness ≠ LangChain/AutoGen 这类开发框架
框架是给开发者用的工具库;Harness 是给模型运行用的一整套运行环境,可以基于框架搭建,但不等于框架本身。

1.3 和 Prompt 工程的区别

对比项 Prompt 工程 Harness Engineering(驾驭工程)
手段 靠写提示词,靠模型自己"听话" 靠外部工程机制强制约束
本质 模型内部说服 模型外部管控
效果 复杂任务容易失效 就算模型"想犯错",外部系统也会拦截、校验、回滚
定位 基础技巧 生产级 Agent 的核心方案

1.4 通俗比喻

大模型 = 很聪明但是不守规矩的实习生;
Prompt = 口头叮嘱;
Harness = 完整员工手册 + 检查清单 + 报警系统 + 权限管控 + 出错自动回滚机制

1.5 AIGC 实际例子:AI 绘图 Agent

  • Model:文生图大模型,负责画图。
  • Harness

  • 约束:禁止生成违规内容;

  • 校验:检查提示词、图片结果;
  • 任务流:多轮迭代、修改重绘;
  • 记忆:记住用户前面的风格、尺寸要求;
  • 权限:文件保存、输出格式管控。

没有 Harness,模型可能乱生成、忘记需求;加上 Harness,才能稳定交付业务可用结果。

补充:同一个大模型,仅仅更换 / 优化 Harness,任务成功率就可以大幅提升,不需要换更强模型——这也是 2026 年 AIGC/Agent 圈非常火的工程方向。


二、开源 Harness 生态

2.1 概念澄清

⚠️ Harness 是一类架构概念(驾驭层),不是某一个固定软件
市面上有多个开源 Harness 实现;大厂闭源产品内部也有私有 Harness,不对外放出。

2.2 主流开源项目速览

① DeepSeek-Harness(2026-08-13 发布)

  • 协议:MIT 开源,开发者预览版 v0.1
  • 特点:一切皆插件,Agent 循环、模型适配器、工具注册表、沙箱、UI 全部是插件,不用 fork 修改内核,直接写插件扩展;可以切换任意 OpenAI 兼容模型,不限于 DeepSeek 模型。
  • 可做:新增自定义工具、改写安全校验策略、替换 Agent 主循环、二次封装 WebUI。
  • 注意:开源的是 Harness 运行壳,调用大模型仍需要 API Key 产生费用。

② OpenHarness(港大 HKUDS)

  • 协议:MIT,Python 实现,代码量很小,轻量化 Harness 底座
  • 特点:工具调用、记忆、权限沙箱、多子 Agent;兼容 Kimi、Ollama、DeepSeek 等几乎所有模型。
  • 适合:深度二次改造、学术研究、本地 Agent 开发。

③ 其他社区开源 Harness

  • agent-harness:Python 极简运行时,协议宽松,适合嵌入自有业务系统
  • Go-Harness:Golang 版本,面向生产高并发场景

闭源阵营:Claude Code、OpenAI Agent SDK 内部、企业自研 Agent 系统——Harness 为闭源私有实现,拿不到源码,只能调用 API,不能二次开发。

2.3 主流实现对比表

关键区分:DeepSeek-Harness、OpenHarness = 完整现成 Harness 运行时(沙箱、记忆、Agent 循环、安全校验全部内置,开箱即用);LangGraph = 图编排库(零件库)(只提供状态、循环、分支原语,Harness 整套能力需要自己开发实现)。

对比项 DeepSeek-Harness (dsh) OpenHarness (港大 HKUDS) LangGraph
本质定位 完整 Agent Harness 运行时,微内核 + 全插件架构,"一切皆插件" 轻量化 Harness 完整运行时,复刻 Claude Code 核心逻辑 状态图编排开发库,不是现成 Harness,只提供基础骨架
开源协议 MIT,可商用、私有化部署 MIT,可商用、私有化部署 MIT
主要技术栈 Node.js,Cordis 微内核插件系统 Python,CLI 终端优先,轻量代码库 Python / JS,基于 Pregel 图模型
内置 Harness 能力 ✅ Agent 循环、沙箱、工具注册表、记忆、会话回放/分叉、日志审计、多运行模式,全部内置 ✅ Agent 循环、沙箱权限管控、持久记忆 MEMORY.md、43+ 内置工具、会话断点恢复,开箱即用 没有内置沙箱、安全拦截、记忆管理、失败校验;需要开发者自己写代码实现整套 Harness 层
模型绑定 完全不绑定 DeepSeek,兼容 OpenAI 兼容接口:Kimi、Qwen、Ollama 全部支持 完全解耦模型,兼容绝大多数大模型 API / 本地 Ollama 任意大模型都可接入
二次开发方式 优先写插件,不用修改内核源码;重度场景可 fork 改内核 代码量小,阅读修改成本低;可 fork 深度改写全部逻辑 基于 API 组装业务逻辑;全部约束、安全、记忆都需要手写
UI 交互 自带 WebUI,也支持 CLI 模式 只有 CLI 终端界面,无 Web 图形界面 无自带 UI,需要自己开发前端
生态现状 2026-08 刚发布开发者预览版,接口会变动,不建议直接上生产,生态快速扩张 偏学术研究、原型验证;社区规模中等,生产需要补边缘场景处理 生态庞大,文档成熟,企业生产大量使用
优点 插件化极强,模块自由插拔;会话回放、分叉调试能力强;配置驱动,不用大量写代码 代码极少,逻辑清晰,适合学习 Harness 底层原理;资源消耗低,部署简单 灵活可控,分支、回滚、人工介入能力强;生态组件极多
缺点 预览版,版本迭代快,存在破坏性更新风险;刚出来,生产案例少 缺少 WebUI;部分边缘场景不完善;企业级配套少 上手门槛高;想要 Harness 完整能力,大量代码需要自己实现,容易写漏安全、校验逻辑
最适合场景 ① 快速搭建完整 Agent 运行时 ② 插件化扩展 Agent 能力 ③ 做 Agent 调试回放实验 ④ 私有化部署完整 Agent 系统 ① 学习研究 Harness 底层原理 ② Python 栈快速原型验证 ③ 本地 CLI Agent 工具开发 ① 企业业务定制 Agent ② 复杂多分支、多人介入工作流 ③ 团队有充足开发人力,愿意自建 Harness 层

2.4 概念区分:Harness / Loop / Graph

  • Harness:整套运行环境,沙箱、权限、记忆、工具管理,管环境
  • Loop:Agent 循环:调用模型 → 调用工具 → 校验结果,循环直到任务结束,管重复执行逻辑
  • Graph:状态图,定义分支、跳转、多子 Agent 调度,管流程走向

DeepSeek-Harness、OpenHarness 内部已经包含 Loop 和 Graph;LangGraph 只提供 Graph,Loop、Harness 环境需要开发者自己实现。


三、DeepSeek Harness 实战

3.1 背景与定位

  • 发布:2026-08-13 深夜发布 v0.1 开发者预览版,MIT 协议开源,GitHub 首日破 3.4 万 Star(现 3.7 万+)
  • 伏笔:早在 7 月 31 日 V4 Flash 发布时,公开 Code Agent benchmark 的测试框架就是"即将发布"的 Harness 极简模式——DSH 正式公开前已参与自家模型的 Agent 能力评估
  • 同日前置:8 月 13 日白天 V4 Pro 正式版上线 App/Web/API(模型号 DeepSeek-V4-Pro-0813),支持 1M Token 上下文、最高 384K Token 输出;晚上 Harness 开源,形成"模型 + 运行层"组合拳
  • 定位:Agent 执行框架(Harness 系统 / 基建),不是模型,也不是普通编码工具。媒体评价:"DeepSeek 终于有了自己的 Vibe Coding 入口"
  • 团队:负责人崔添翼(90 后,6 枚 ACM 金牌,前 Jane Street 量化),2026 年 3 月加入 DeepSeek

关键链接

  • 官网:https://www.deepseek.com/harness/
  • GitHub:https://github.com/deepseek-ai/deepseek-harness
  • API 开放平台:https://platform.deepseek.com/

3.2 核心架构:"一切皆插件"

底层框架:Cordis

  • 基于 Cordis 内核(核心作者已加入 DeepSeek,配套发布 88 页论文《A Programming Paradigm for Spatiotemporal Composability》)
  • 内核只做一件事:插件的加载、卸载、依赖管理,不承载具体能力。运行中的 dsh 就是一棵插件树
  • 不存在需要打补丁的特权内核:扩展 dsh 的方式是把插件挂载到其他插件旁边,各项注册都是副作用,会在插件卸载时撤销

两大关键特性

  • 时间可组合性(Temporal composability):插件卸载后,它之前产生的副作用能完整撤销,不留孤儿状态
  • 空间可组合性(Spatial composability):插件依赖其他插件时,当其他插件出现/消失/改变,它能动态重新处理依赖

Profile 与组合包(bundle)

  • Profile 是存放在 Harness home 中的具名组装:列出叠放的组合包、存放树外插件、保存用户自己的 cordis.patch.ymlwebheadless 是随发行版交付的两个模板
  • 组合包是 Cordis 配置项 + 挂载代码的分发格式。每层可被上一层 patch:先按 profile 列出的顺序应用组合包 → profile 的 cordis.patch.yml → home 级 → 任意 --patch overlay
  • 查看本机实际启动的配置树:dsh --profile web --dump-config——打印出的任何条目都可以被自己的 patch 替换
  • 三层组合:dsh-base(模型、工具、持久化、沙箱、审批、设置、凭据、遥测)→ dsh-web-app(浏览器应用)/ dsh-headless(一次性运行器,无服务器)

能力 seam(接缝)

一个 seam = Service Definition(接口声明)+ Service Provider(实现)+ Consumer(消费方,通常是面向模型的工具)三位一体。替换一个提供方就能改变整个产品:比如把文件系统与进程提供方指向远程沙箱,Bash、PTY、LSP 会一并搬过去,无需提供方专用 fork。

事件即扩展点

  • 会话事件:追加到日志的持久事实(session/event),重新加载后仍存在
  • Agent 事件agent/*):携带活跃 Agent,观察/拦截进行中的工作
  • 能力事件:无需导入循环即可向 seam 附加策略(fs/*tools/*telemetry/*

轮次流程(turn/step)

一个步骤 = 一次模型请求 + 它调用的工具;一个轮次包含零个或多个步骤。关键设计:模型可见即已记录——抵达模型请求的一切都必须能从会话日志重建,并由运行时不变量断言。这让轨迹回放、审计、调试成为可能。

3.3 四种运行模式

模式 能力 适用场景
标准模式 完整编码 Agent:文件编辑、Shell、文件/网页搜索、Skills、计划、目标、子 Agent、工作流 日常使用(首推
PTC 模式 标准模式全部能力 + Code Mode SDK:模型写一段 TypeScript 程序,在一次 run_code 里组合多步工具操作 大量重复工具往返、结构化多步操作、省 Token
极简模式 仅持久 Bash + str_replace_editor 两个工具,固定极简系统提示词 模型基准测试(不要日常用
创造模式 标准模式全部能力 + 运行时检查 + 内存中试验插件 + 创建新模式 Agent 自进化、开发新插件

创造模式示例:"帮我做一个只允许读代码、不允许改文件、专门负责安全审计的模式"——Agent 发现自己没有扳手,现场造了一把扳手,插到自己手上接着干活。

3.4 官方内置工具全景(30+ 工具)

dsh 以插件包形式内置了全部面向模型的能力(packages/*/tool-*),工具本身也是插件。按能力分 7 大类:

① 文件与代码

工具 作用 备注
read / write 读写 UTF-8 文本文件 读带行号,写可整体替换
edit 按字面量替换编辑文件 需精确匹配,默认必须唯一
read_image 读取 PNG/JPEG/WebP/GIF 图片 要求当前模型支持图像输入
glob / grep 文件名模式搜索 / ripgrep 内容搜索 内置 ripgrep 二进制,无需本机安装
str_replace_editor 查看/创建/替换/插入编辑器 极简模式专用,状态跨调用保留
lsp 语言服务器查询:goToDefinition、findReferences、goToImplementation、hover 代码精确导航,需注册 LSP 提供方

② Shell 与终端

工具 作用 备注
bash 执行 bash 命令(bash -c) 每次调用新 shell,无状态保留
pwsh 执行 PowerShell 命令 Windows 原生支持,路径 C:\ 形式
bash(持久) 持久 bash shell,状态跨调用保留 按 Agent 所有者隔离
terminal_open/list/read/send/close/signal 6 个持久终端工具 需显式选择启用,支持 PTY 会话

③ 搜索与网页

工具 作用 备注
web_search 网页搜索最新信息 返回摘要答案 + 源 URL 列表
web_fetch 抓取指定 URL 并解码为文本 提供方可替换(seam)

④ 任务与协作(多 Agent / 工作流)

工具 作用 备注
subagent / subagent_fork 委派独立子 Agent 执行自包含任务 前台等待 / 后台返回 job id
send_message / interrupt_agent / list_agents 给后台子 Agent 发消息、打断、查看状态 全局命名工具
report 子 Agent 向父 Agent 汇报结果 子级作用域内注册
workflow 运行 JavaScript 工作流脚本批量编排子 Agent 提供 agent() / pipeline() / parallel() / phase() 钩子
ralph 每轮用全新 Agent 迭代的 Ralph 循环 共享工作区充当长期记忆
job_list / job_output / job_kill 后台任务统一管理 与任务种类无关,bash/终端/subagent 通用
todo_write 结构化任务清单 UI 渲染为检查清单,每次全量替换

⑤ 规划与目标

工具 作用 备注
exit_plan_mode 计划模式:提交完整 Markdown 计划供审阅 批准后退出计划模式执行
create_goal / get_goal / update_goal 持久化同会话目标,自动延续多轮 长任务跨轮推进,edit/pause/resume/complete/blocked
schedule_create / schedule_list / schedule_delete 会话内定时提醒 after_seconds / at / every_seconds 三种模式
ask_user_question 暂停执行向用户提问 带稳定 id,答案原样返回

⑥ 会话与记忆

工具 作用 备注
session_search 搜索工作区历史会话 跨会话全文本检索
session_trace 读取会话谱系(祖先/后代) 只读工具
session_event_read/search/trace 读取/搜索单个会话事件流 审计与调试
skill 加载可用技能的完整说明 执行点名技能前调用

⑦ 自进化(创造模式核心)

工具 作用 备注
cordis_define 定义不可变 Cordis Package(新建/追加插件) 只校验参数与语法
cordis_inspect_list/query/self 查询运行时 Service/Event/Tool schema 写插件前先侦察
cordis_run / cordis_stop / cordis_undefine 激活动态插件 / 停止 / 永久移除 运行中热插拔,状态不崩

这 7 个 cordis_* 工具就是"Agent 给自己写插件并装上"的底层实现——需要显式选择启用,不在默认组合中。

3.5 安装部署

前置条件:Node.js ^22.19.0>=24.0.0(推荐 22 LTS)

方式 A:快速体验(推荐,一行命令)

npx @deepseek-ai/dsh web

启动后浏览器打开:http://127.0.0.1:3080

方式 B:全局安装(适合经常用)

npm install -g @deepseek-ai/dsh
dsh web

方式 C:源码安装(适合改插件/参与开发)

git clone https://github.com/deepseek-ai/deepseek-harness.git
cd deepseek-harness
pnpm install
pnpm run build
pnpm dsh web

实用小技巧

  • 换端口:npx @deepseek-ai/dsh web --port 8080
  • npm 下载慢换国内镜像:npm config set registry https://registry.npmmirror.com
  • headless 模式(一句话跑任务,适合脚本/CI):
export DEEPSEEK_API_KEY="你的密钥"
dsh --profile headless "总结当前目录下这个项目的结构"

Windows 实测踩坑记录

  • pnpm 11.8.0 在受限环境下,内置 safe-delete(回收站清理)可能被系统拦截,导致所有 pnpm 命令失败(连 pnpm config list 都不行)→ 规避:改用 npm 安装发布包,或关闭沙箱后运行
  • Windows 下 npx @deepseek-ai/dsh web 若报 'dsh' 不是内部或外部命令(bin 是 shell 脚本无法直接执行)→ 用 node 直接执行:
node node_modules/@deepseek-ai/dsh/lib/bin.js web

3.6 配置模型(20+ 提供方)

打开 设置 → 模型,有两条入口:

方式一:内置提供方列表(最省事)

内置支持 20+ 家:DeepSeek、OpenAI、OpenRouter、xAI、通义千问(qwen)、MiniMax、Moonshot(月之暗面)、Mistral、智谱(zai)、小米、NVIDIA、Together 等。选择后只需填 API 密钥,端点、协议、模型列表自动就位。

注意:Bedrock、Vertex、Azure、Codex 等需要各自原生认证(AWS 凭据、ADC 项目、api-version、OAuth),只填 API Key 不够。

方式二:自定义提供方(适合本地模型/中转/内部网关)

字段 说明 示例
Provider ID 小写字母开头的唯一标识(永久,改名需重建) my-gateway
显示名称 界面显示名 我的网关
API 地址 服务完整地址 https://gateway.example/v1
API 协议 三选一 openai-completions
API 密钥 该服务密钥 sk-...
模型目录 自动获取(调 GET /models)或手动添加 qwen2.5-7b

API 协议三选一openai-completions(标准 OpenAI 对话补全,绝大多数服务,默认)、openai-responses(OpenAI 新版 Responses)、anthropic-messages(Anthropic/Claude 消息协议)。

实战示例:接入本地 Ollama

  1. 添加自定义提供方
  2. Provider ID:ollama-local;显示名称:本地 Ollama
  3. API 地址:http://localhost:11434/v1;API 协议:openai-completions
  4. API 密钥:随便填占位符
  5. 获取可用模型或手动添加(如 qwen2.5:7b)→ 保存

配置文件方式:批量管理多提供方(推荐进阶)

适合一次配置多个模型、写模板复用。配置分散在两个文件,各司其职:

文件 路径 职责
提供方定义 $DSH_HOME/settings.yaml 声明提供方(显示名、协议、地址、模型列表),密钥只写引用名,不写明文
密钥存储 $DSH_HOME/.credentials.yaml 只存放密钥明文(XXX_API_KEY: sk-...),权限收紧,不提交 git

$DSH_HOME 默认是 ~/.dsh(Windows 为 C:\Users\<你>\.dsh)。配置修改即时生效,下一次请求即可用,无需重启服务。DeepSeek 是默认提供方,无需在此声明。

实测可用示例:接入本机 Ollama(无需任何云 Key)

Ollama 本地服务无鉴权,但协议强制要求密钥字段,填占位凭证即可:

# settings.yaml —— 提供方定义
llm-pi-ai:
  providers:
    ollama:
      displayName: Ollama (Local)
      api: openai-completions
      baseURL: http://127.0.0.1:11434/v1
      apiKeyEnv: OLLAMA_API_KEY   # 占位凭证,实际写在下表
      models:
        - id: gemma4:12b
        - id: qwen2.5:14b
        - id: gemma3:12b-it-qat
# .credentials.yaml —— 密钥(占位即可)
OLLAMA_API_KEY: ollama

配置后,新会话的模型选择器里会出现 "Ollama (Local)" 及其模型,直接选用。此配置已在本机端到端验证通过(模型发现 + 真实推理正常)。

国内主流 API 模板(拿到 Key 取消注释即用)

llm-pi-ai:
  providers:
    # --- Kimi(月之暗面) ---
    # moonshot:
    #   displayName: Kimi (Moonshot)
    #   api: openai-completions
    #   baseURL: https://api.moonshot.cn/v1
    #   apiKeyEnv: MOONSHOT_API_KEY
    #   models:
    #     - id: kimi-k2.5
    # --- 通义千问(阿里云 DashScope) ---
    # qwen:
    #   displayName: 通义千问
    #   api: openai-completions
    #   baseURL: https://dashscope.aliyuncs.com/compatible-mode/v1
    #   apiKeyEnv: DASHSCOPE_API_KEY
    #   models:
    #     - id: qwen-max
    #     - id: qwen-plus
    # --- 智谱 GLM ---
    # zhipu:
    #   displayName: 智谱 GLM
    #   api: openai-completions
    #   baseURL: https://open.bigmodel.cn/api/paas/v4
    #   apiKeyEnv: ZHIPU_API_KEY
    #   models:
    #     - id: glm-4.5
    #     - id: glm-4.5-air
    # --- OpenRouter(聚合 300+ 模型) ---
    # openrouter:
    #   displayName: OpenRouter
    #   api: openai-completions
    #   baseURL: https://openrouter.ai/api/v1
    #   apiKeyEnv: OPENROUTER_API_KEY
    #   models:
    #     - id: deepseek/deepseek-chat
    #     - id: anthropic/claude-sonnet-4

.credentials.yaml 里对应加一行(键名必须与 apiKeyEnv 完全一致):

MOONSHOT_API_KEY: sk-xxx
DASHSCOPE_API_KEY: sk-xxx
ZHIPU_API_KEY: xxx
OPENROUTER_API_KEY: sk-or-xxx

模型 id 以各家最新列表为准;想用视觉模型,在对应模型条目下加 input: [text, image]

多模型日常切换:新会话在模型选择器下拉切换即可;同会话内可用指令 /model 快速切换,无需重启。

视觉模型配置(进阶)

自定义提供方下,视觉模型需在 $DSH_HOME/settings.yaml 里声明模态(表单没有该字段):

llm-pi-ai:
  providers:
    vision-gateway:
      apiKeyEnv: GATEWAY_API_KEY
      api: openai-completions
      baseURL: https://vision.example/v1
      defaultInput: [text, image]   # 路由级回退,或逐模型 input
      models:
        - id: first-model
        - id: vision-preview
          input: [text, image]

排错速查

报错 原因 解决
MISSING_CREDENTIAL 密钥未配置 模型页存密钥,或提供引用的环境变量
UNKNOWN_MODEL 模型不在配置中 选择已配置模型,或向自定义提供方添加
获取可用模型 401 密钥错误 检查密钥;不提供 /models 端点的服务改手动输入
图片发送前被拒绝 模型未声明图片模态 自定义模型加 input: [text, image]

安全提示:密钥保存在 $DSH_HOME/.credentials.yaml(只写),设置页只显示脱敏描述符。别截图发群、别提交 git,怀疑泄露立即在平台吊销重建。

3.7 权限与安全

权限模式三档(UI 可切)

模式 文件沙箱 审批策略 适用场景
Read Only read-only ask 只问问题、看代码、查资料
Workspace Write workspace-write ask 日常干活(推荐
Full access danger-full-access never 全局操作(慎用

沙箱只管文件读写(工作区 + 临时区可写 / 只读 / 无限制),网络访问与进程可见性不归沙箱管。

审批策略两档ask(默认,每次超权限操作弹出审批卡片,允许只放行这一次)vs never(不问直接拒绝,适合无人值守/CI)。

沙箱在各系统的实现:Linux = bwrap 或 Landlock(仓库自带 landlock-run 原生包);macOS = Seatbelt;Windows = ACL 受限令牌。

实践建议

  • 日常用 Workspace Write;只查不改切 Read Only;Full access 临时用、用完切回
  • 审批弹窗认真看再点——这是最后一道闸
  • 运行不可信任务前主动配置权限策略,Web UI 会按策略请求批准
  • 自动化场景才考虑 never 审批

3.8 核心亮点:可观测的会话日志

  • 会话设计为只追加(append-only)的事件日志:系统提示词、用户消息、推理内容、工具调用与结果、权限变化、上下文注入、压缩、子 Agent 调度,全部成为日志中的事件
  • 下一轮模型看到的历史,从这份日志重新推导
  • Trajectory 轨迹视图:可按来源查看每一次运行——可观测、可审计、可复现,非常适合调试与研究
  • 恢复、分叉、检索、回放共享同一份事件流

3.9 插件生态(社区插件详解)

安装命令:设置 → 插件 tab 管理已装插件;CLI 下用 profile 命令安装:

dsh plugin --profile web add <目标>
# 目标可以是:npm 包名 / GitHub 仓库 / 本地路径 / link / checkout

每个 profile 有独立插件组合,互不干扰。打上 dsh-plugin 话题标签的 GitHub 仓库可被社区发现;官方也维护企微群与 Discord。

插件 vs 技能:技能是给 Agent 的"说明书"(会话中 / 调用);插件是能力的"零件"(工具、界面组件、服务都靠插件装配,设置里管理)。@ 可引用技能、子 Agent、工作区文件。

社区推荐插件(原 36氪/社区文章推荐 5 款)

插件 地址 用途 评价
dsh-at-file github.com/omdsh-dev/dsh-at-file 输入框 @ 直接调用文件 便捷,社区装机量高
dsh-genui github.com/omdsh-dev/dsh-genui 回复中渲染图表、表格、表单、Diff、Mermaid、交互面板 可视化输出利器
dsh-automation github.com/titanwings/dsh-automation 补上自动化能力(定时/触发执行) 刚需,交互稍粗糙
DSH-better-sidebar github.com/omdsh-dev/DSH-better-sidebar VS Code 式工作台:文件管理、代码编辑、真实终端、Git、Diff、内嵌浏览器、后台任务与子 Agent 状态 体验升级最大的一款
ModLens github.com/liustack/modlens 给纯文本 DeepSeek 模型补视觉能力,配置视觉通道后可直接粘贴图片读图 刚需

插件目录 DSH Plugins 收录的 12 款(dshplugins.com,2026-08 更新)

插件 类别 用途
DSH Better Sidebar UI VS Code 式侧边栏工作台(同 omdsh 版)
DSH Vision Toolkit 视觉 视觉能力工具集
dsh-agent-teams 多 Agent 多 Agent 团队协作工作流
dsh-at-file 文件 输入框 @ 引用文件
dsh-computer-use 电脑控制 Agent 控制电脑操作
dsh-custom-tool 自定义工具 免代码定义自定义工具
dsh-message-edit 消息 编辑已发送消息
dsh-notification 通知 任务完成通知推送
dsh-open-in-vscode 编辑器 在 VS Code 中打开文件
dsh-share 分享 会话/工作区分享
dsh-turn-rewind 会话控制 回退到指定轮次重来
dsh-visualize 可视化 数据可视化渲染

安装安全提醒:插件目录会人工审核(确认仓库公开活跃、阅读 README),但第三方代码可能变化——装前自己读源码、查权限与依赖、尽量锁定版本。源码才是最终权威。

官方能力包速查(packages/ 目录,均为可插拔模块)

core(内核/会话/提示词/工具流水线)、llm(模型适配)、sandbox(沙箱)、fs(文件系统)、shell(bash/pwsh)、terminal(持久终端)、web(网页搜索/抓取)、subagent(子 Agent)、workflow(工作流引擎)、plan(计划模式)、goal(目标)、schedule(调度)、jobs(后台任务)、todo(待办)、skill(技能)、session-query(会话检索)、lsp(语言服务器)、mcp(MCP 支持)、acp(Agent Client Protocol)、storage(存储)、compaction(上下文压缩)、hooks(钩子)、guard(守卫)、credentials(凭据)、settings(设置)、feedback(反馈)、e2b(云端沙箱)、python(Python SDK)……

想自己写插件?官方提供完整扩展手册(docs/cookbook):添加工具、添加 LLM 适配器、添加 Chat 节点、添加 Package 各有分步指南;创造模式下可先在内存中试验插件再打包。

3.10 使用技巧

  • 指令越具体越好:明确"做什么、范围在哪、产出什么格式",含糊的指令必然得到含糊的结果
  • 按任务切换模型:简单任务(查资料、整理)用轻量模型快又省;复杂任务(重构、架构)用强模型。会话中途也能换模型,下一条消息起生效。推理等级:High/Medium/Low
  • 分叉是神器:从某节点复制出新会话(原会话保留),适合实验不同方案;不用的会话归档,保持侧边栏干净。分叉/归档/删除工作区均为非破坏性操作
  • 目标写得越收敛越好:"把 README 补全"优于"把项目完善一下";Agent 每轮决策对照目标,跑偏就拉回。目标状态:进行中/暂停/受阻/已完成
  • 计划模式适合大改动:输入 /plan 进入(/plan off 退出),也可 /plan 帮我重构登录模块权限校验 同时进入并提交任务。Agent 先只读研究 → 出计划 → 等你审阅 → 批准后执行。计划模式是"软约束",不额外限制工具权限
  • 子代理适合"拆得开、各干各":多方向调研、前后端并行改;紧密耦合的任务不适合拆。可给子代理发消息、打断、查状态
  • 长任务默认丢后台job_output 读输出、job_kill 停止;后台任务多了互相抢资源,没用的及时终止。任务完成 ≠ 结果正确,收到汇报后抽验
  • 附件占用上下文 token:能靠工作区读的文件就别用附件传(图片、CSV、压缩包支持,但越大越贵)
  • 轨迹视图是调试利器:对话视图看"人话版",轨迹视图按轮次看完整原始记录(USER/CONTEXT/ASSISTANT/TOOL),排查"Agent 为什么这么干"时用
  • 工作区选项目根目录,别选 C 盘、用户主目录等大而全的目录——范围太大查找慢、误操作风险高

3.11 注意事项

  • 开发者预览版:版本迭代极快,官方明确警告会有破坏性更新,不建议直接上生产(README 用大写字母标注)
  • 开源的是 Harness 运行壳,调用大模型仍需 API Key 按量付费;可接本地模型(Ollama 等)实现完全本地化
  • 生态愿景:官方正在铺"自进化"大棋——从成百上千万 Agent 实例里筛选魔改得好的插件,融回主线,形成正循环。目前对普通用户帮助有限,是吃生态的功能,极客可以先去种树
  • 对普通用户不算友好:开发者术语多、使用门槛高,需要一点耐心上手

四、选型建议

  1. 想直接拿到一套完整 Harness,不想从零写沙箱、记忆、循环:优先 DeepSeek-Harness(注意是预览版,生产谨慎);Python 栈选 OpenHarness
  2. 团队人力充足,业务逻辑高度定制,需要精细控制每一步流转:选 LangGraph,自己实现 Harness 层
  3. 学习 Harness 原理:OpenHarness 代码量最小,最适合读源码理解 Harness 的工作机制。

五、常见问题 FAQ

Q1:Harness 开源吗?能二次开发吗?
A:能。DeepSeek-Harness(MIT)、OpenHarness(MIT)等均有成熟开源实现,可私有化部署、定制、二次开发,优先 MIT 协议。闭源阵营(Claude Code 等)拿不到源码,只能调用 API。

Q2:两种开发模式怎么选?

  • 轻量:写插件,不碰内核源码(推荐,升级方便)
  • 重度:Fork 仓库,直接修改内核源码深度改造

Q3:能换别的模型吗?
A:可以。内置 20+ 提供方(OpenAI、qwen、智谱、Moonshot、MiniMax 等),或自定义 OpenAI 兼容端点接任意模型(含本地 Ollama、vLLM、LM Studio、第三方中转、公司内部网关)。

Q4:本地部署要钱吗?
A:Harness 本身 MIT 免费;但调用大模型 API 按量付费。也可接本地模型(Ollama)实现完全本地化运行。

Q5:DeepSeek Harness 现在能替代 Claude Code 吗?
A:为时尚早。v0.1 是开发者预览版,定位是可自由改造的 Harness 基建,不是成熟的开箱即用产品。建议体验、研究、为插件生态贡献,生产环境等版本稳定。

Q6:插件装多了会互相冲突吗?
A:Cordis 的时间/空间可组合性保证插件卸载时副作用完整撤销,依赖变化时动态重排;但插件生态刚起步,建议装前看源码、锁定版本,别一次装太多。

Q7:极简模式有什么用?
A:官方用它做模型基准测试(V4 Flash 的 Code Agent benchmark 就是它)。它把变量压到最少——只有 bash + 文件编辑器,纯粹考验模型本身能力。

Q8:会话日志会不会很大、很占空间?
A:会话是 append-only 事件日志,但设计上配套了上下文压缩(compaction)机制;普通使用无需担心,工作区会持久化会话但可归档清理。


六、附录

官方文档索引(仓库 docs/ 目录)

  • 架构总览:docs/architecture.md
  • 用户指南:docs/user/guide/(Web UI、模型配置、Python SDK)
  • 工具 Schema 目录:docs/tool-catalog.md(全部内置工具的 JSON Schema)
  • 配置目录:docs/config-catalog.md(所有配置字段与默认值)
  • 插件开发手册:docs/cookbook/extension-cookbook.md + adding-a-tool / adding-an-llm-adapter / adding-a-package
  • 防御模式:docs/defensive-patterns.md;术语表:docs/glossary.md;Agent 生命周期:docs/agent-lifecycle.md

参考资料

  • DeepSeek 官方发布页:https://www.deepseek.com/harness/
  • GitHub 仓库:https://github.com/deepseek-ai/deepseek-harness
  • Cordis 论文:《A Programming Paradigm for Spatiotemporal Composability》
  • 插件目录:https://dshplugins.com/(DSH Plugins)
  • 社区教程:掘金《DeepSeek 昨晚刚开源了 Harness:附万少的 2 万字保姆级教程》

本文档综合公开资料(36氪、DeepSeek 官方仓库文档、社区教程)与 DeepSeek Harness 实际部署体验整理,供学习交流。

DeepSeekHarnessAgent框架私有化开源