赞助商LobeHubLobeHub了解更多
ddshfind
GitHub

DSH 是什么?

一句话版:DSH(DeepSeek Harness)是一个基于 Cordis 构建的开源 coding agent(编程智能体)——它不仅是一个"给智能体干活的环境",更是一整套以一切皆插件、运行可重建为核心思想的智能体操作系统。


1. 先搞清楚:DSH 有三层含义

很多人把 DSH 说成"一个工具",其实它是三层东西叠在一起:

是什么类比
SDK(底座)DeepSeek Harness SDK:一套用 Cordis 写成的框架,模型、工具、策略、存储、界面全是可组合插件操作系统的内核
dsh(工具)基于 SDK 的命令行工具:dsh web 开 Web UI、dsh --profile headless "任务" 跑任务装好系统的电脑
生态(内容)skills(技能)、插件、profile 组合包、社区电脑里的应用商店

我们平时说"DSH",通常指第二层——那个跑在你自己电脑上的智能体工具。但你正在用的这个网站(dshfind)所在的 Harness 环境,就是运行在 DSH 之上的。

生态(内容)skills · 插件 · profile | 应用商店dsh 工具web · run · profile | 装好系统的电脑SDK 底座Cordis · 一切皆插件 | 操作系统内核

三层都建立在 Cordis(时空可组合性范式)之上


2. 它解决什么问题?(两句话)

智能体要干活,需要"环境";环境要能长期演化,需要"纪律"。

  • 普通 AI 应用 = 一次调用模型,返回答案,完事。
  • 智能体 = 反复调用模型 + 动手操作(读写文件、执行命令、调用 API)+ 长期运行
  • DSH = 在"长期运行"这个前提下,把工具、权限、记忆、会话、插件管理全部有序地管起来。

就像操作系统让多个程序共享一台电脑而不打架,DSH 让多个插件共享一个智能体运行时而不互相破坏


3. 核心思想一:一切皆插件

这是 DSH 的第一性原理。它写在架构文档的第一行:

一切皆插件,循环也不例外。

"循环"指的是 agent loop(智能体循环)——也就是"感知 → 思考 → 行动"那个主循环。传统框架把主循环写死,你要扩展只能改源码(fork)。DSH 连主循环本身都是一个插件:

在传统框架里在 DSH 里
想换模型 → 改框架源码注册一个 LLM 适配器 插件
想加工具 → 改框架源码ctx.tools 上注册一个工具插件
想改执行方式 → 改框架源码换一个 bash / PTY 后端 插件
想改存储 → 换数据库换一个会话持久化插件
想改界面 → 重写前端换一个 UI 插件

"插件"在这里不是小功能,而是整个系统的积木:模型、工具、策略、存储、上下文管理、界面,全部平等地作为插件组合在一起。部署方不需要 fork agent loop,就能扩展或替换任何行为。

🎁 打个比方:普通框架是"一整栋楼,改户型要拆承重墙";DSH 是"乐高积木,任何一块都能单独换"。这正得益于它建立在 Cordis(时空可组合性范式)之上——就是我们要精读的那篇论文的实现。


4. 核心思想二:运行可重建(事件日志即真相)

智能体跑一天,会做几百次操作。怎么保证"一切都有据可查、随时能重来"?DSH 的答案是事件溯源

凡是模型能看到的东西,都会记录在权威会话日志里;持久化、恢复、fork、回放、遥测、界面,全部从同一份事件流派生。

也就是说:

  • 智能体的每一步(模型请求、工具调用、结果返回)都追加进一份会话日志(append-only)
  • "模型可见 ⟺ 已记录"——模型看到的东西和日志记录的东西完全一致
  • 你想恢复一个会话?从日志重建。想 fork 一份接着干?从日志复制。想回放?读日志。想统计?算日志

好处:没有"状态藏在你不知道的地方"这种事。系统出了任何问题,日志就是完整的真相,可以从任意检查点重建。

🎁 打比方:这不是"记日记",而是"全程录像 + 每一帧都可回到过去"。普通应用崩溃了只能重来,DSH 崩溃了可以从日志精确重建现场


5. 核心思想三:能力即"接缝"(seam)

架构文档里有一个关键词:seam(接缝)

一个"可替换能力"由三种角色组成:

Service Definition(能力定义:这个能力长什么样)
        ↕
Service Provider(提供者:谁来干活)
        ↕
Consumer(消费者:谁在用)

只要这三种角色是分离的,这个能力就是一个"接缝"——任何一端都可以单独替换,不影响其他两端

DSH 里几乎一切都是接缝:

接缝换插座的例子
LLM换模型提供方(DeepSeek、其他)→ 注册新适配器
文件系统换存储后端 → 实现 ctx.fs 提供方
进程执行换命令执行方式 → 换 bash 后端
沙箱策略换安全策略 → 监听 fs/* 策略事件
搜索/抓取换搜索源 → 注册 web 提供方

为什么这很重要? 因为智能体的技术栈演进极快(模型月月换、工具天天新)。如果每个能力都是接缝,那么换一样东西只需要动一个插座,而不是重写整个系统。


6. 核心思想四:自指修改(智能体可以改自己)

DSH 有一个相当"科幻"但真实存在的功能:自指 Cordis 工具(需显式启用)。

启用后,智能体可以:

  • 检查自身的实时运行时(现在装了哪些插件、注册了哪些服务)
  • 在运行中挂载或卸载插件(给自己装上新工具,或者拆掉旧的)

这就是"自演化智能体"的雏形:运行中的系统修改自己。而这件事之所以安全(而不是自毁),正是因为底层有 Cordis 的"时空可组合性"保证——装上能拆下,拆下不留痕

⚠️ 这条线索把第一章和第二章串起来了:想要"智能体自演化",就必须先解决"动态组合"。


7. 内置能力一览(真实清单)

DSH 开箱即用的能力(来自官方文档),你可以把它当"一个智能体该有的全部家当":

类别具体能力
文件读取、编辑、搜索
执行shell 命令、持久化终端(PTY)
技能可复用的 skill(技能)
任务管理目标(goals)、计划(plans)、待办(todos)、后台任务
协作subagent(子智能体)、workflow(工作流)
安全沙箱、审批
配置设置、凭据(credentials,绝不内联进配置)
会话可持久化、可恢复、可 fork、可查询的会话
感知LSP(代码语义)、Web 访问
上下文上下文压缩(context compaction)
观测遥测

8. 怎么用 DSH?(四种姿势)

姿势命令/方式场景
Web UIdsh web图形界面,含 Plan Mode(计划模式)
命令行dsh --profile headless "总结这个工作区"跑一次任务,输出答案后退出
配置组合dsh --profile tui用 profile(插件组合包)定制启动
编程接入Python SDK / ACP / JSON-RPC把 DSH 嵌进你自己的程序

9. 关键点回顾

这一节信息量不小,记住这五句话就够了:

  1. DSH = SDK + 工具 + 生态,本质是"智能体的操作系统"
  2. 一切皆插件——模型、工具、策略、存储、UI 甚至主循环都是插件,扩展不用 fork
  3. 运行可重建——一切模型可见的内容都记入权威事件日志,可恢复、可回放、可 fork
  4. 能力即接缝——任何能力都能单独替换,换模型、换执行器都像换插座
  5. 自指修改——智能体可以检查并修改自己的运行时,而这依赖 Cordis 的"装上能拆下"保证

🚀 下一节我们聊"智能体框架的基本思想"——先搞清楚智能体自己是怎么思考、怎么动手的,再回头看 DSH 为什么这么设计。

自测题 · DSH 是什么

完成作答后点击「提交答案」,可以查看对错与解析。

1. 关于 DSH,下面哪个说法最准确?
2. 「一切皆插件,循环也不例外」中的「循环」指的是什么?
3. 「运行可重建」依靠什么实现?
4. 一个「能力接缝(seam)」由哪三种角色组成?