跳到主要内容
路径认识 DSH

DSH 是什么

一句话版:DeepSeek Harness(dsh)是一个开源的 coding / 自动化 agent:独立进程、有自己的配置/会话/权限体系,采用一切皆插件的架构:核心只留循环与抽象缝,能力全靠插件组合。

DSH 由 DeepSeek AI 开源并处于 Developer Preview;官方源码、安装命令和最新行为见 deepseek-ai/deepseek-harness。本站是社区教程站。

这一篇回答"它到底是个什么东西、值不值得我用"。读完你有判断,也知道从哪开始。

一、它是什么

dsh 是一个能自己跑任务的 agent,不是"聊天框",也不是"IDE 补全插件"。它:

  • 是一个独立进程,有自己的配置(~/.dsh/)、会话(~/.dsh/sessions/)、权限与沙箱体系
  • 读文件、跑命令、搜索、调工具,也可以多模型路由、多 agent 协作
  • 插件扩展几乎一切(工具、服务、事件、UI 面板)
  • 通过 dsh web 给一个 Hermes 式 Web 工作台,也支持命令行一次性任务

放一句话:它是"一条 dsh web 就能启动的工作台 + 一整套可组合的 agent 能力"。

二、它不是什么(避免误会)

不是它其实是
IDE 插件独立进程,自己管配置/会话/权限
单模型聊天框可多 provider/多模型路由(llm-pi-ai)
固定功能的工具你能改的不只是设置,而是组合本身

常见误解:"plan/execute 自动切模型":不存在。/plan 只维护规划协作状态,不切换模型(见 模型路由)。

三、核心概念

概念说明位置
SDK另一进程驱动 Harness 的运行栈(JSON-RPC wire protocol / client / server)packages/sdk
Cordis 底座提供 Context/服务注入/插件装载的组合框架(一切皆插件)@deepseek-ai/cordis
Harness组合出来的完整 agent 应用:循环、工具、会话、沙箱全仓组合
Profile插件的组合配置:bundle patch 层叠加用户覆盖层$DSH_HOME/profiles/<name>
Bundle自带 patch 的插件包,作为一层加入 profilepackages/bundle/base
Seam(能力缝)抽象能力接口(ctx.llmctx.toolsctx.sandbox…),实现可换各能力包

四、它能做什么(能力面速览)

场景怎么做
改代码 / 读文件 / 跑命令tool-fs / tool-bash(见 内置工具)
搜 DSH 自己的历史会话工具 session_search(dsh-tool-session-query)
一个任务拆给多个 agent 并行子 Agent / 工作流
定时提醒定时调度
接外部工具MCP
让模型学会流程技能
长期目标推进目标与待办

五、三种启动方式

npx @deepseek-ai/dsh web # 官方零安装入口
dsh web # Web 工作台(默认 127.0.0.1:3080)
dsh --profile headless "跑一下测试" # 一次性任务,执行完退出
dsh --profile web # 显式指定 profile
  • webheadless内置 profile 模板
  • --profile headless <task> 是一次性任务入口(dsh run 已移除)

六、一切皆插件的哲学

顶层 README 原话:"它采用了『一切皆插件』的架构":

  • 新增能力 = 写插件(工具、服务、事件、UI)
  • 修改行为 = 换插件 / 叠 patch 层,不改核心
  • 核心只留一个 AgentLoop 具体循环:"新行为应放入插件,而不是这里"

这就是为什么后面你会看到 插件解剖 反复强调"扩展点优先"。

七、快速验证

dsh web --dump-config # 看当前组合的插件树(层叠结构一目了然)
dsh web --dump-default-config # 看默认 bundle 的组合

从哪开始

按你的目标选入口(完整导航见 学习路径):