什么是 DSH?
DSH 即 DeepSeek Harness,是一款由 DeepSeek 在 MIT 协议下发布的开源 Agent 运行时。其命令行入口名为 dsh,这也是该简称的由来。
简要回答
Harness 是围绕语言模型构建的一层架构,将其转变为具备实际工作能力的工具。它决定了模型可见的内容、可调用的工具、记录文档的写入位置以及回合结束的时机。DSH 即是这样的一层架构,其设计初衷是让每一个部分都可以通过插件进行替换。
为什么叫 Harness
模型本身只会回答问题。它没有文件系统,没有 shell,没有昨天的记忆,也无法停止自己的行为。Harness 提供了所有这些功能。这个名字借用了软件工程中测试 harness 的概念:即将一个组件放入真实环境中并观察其行为的脚手架。
一切皆为插件
这是整个项目所依赖的设计决策。在大多数 agent 框架中,模型适配器和工具表属于核心代码,而插件位于边缘。在 DSH 中,不存在特权核心。模型、工具、技能、会话、沙箱、存储、agent 循环、调度器和用户界面都是针对同一个 Context 注册的 Cordis 插件。
实际后果:改变 agent 的行为方式属于配置变更,而非分支。
- ctx.model
模型适配器
在不改变循环的情况下更换底层模型。
- ctx.tools
工具表
添加、移除或封装任何可调用的能力。
- ctx.sessions
会话
仅追加日志,以便运行过程可以重放。
- ctx.sandbox
沙箱
选择 agent 编写的代码的执行位置。
- ctx.loop
Agent 循环
替换单次交互本身的控制流。
- ctx.ui
界面
Web、终端或你自己的前端。
运行过程中的一切都会被记录下来
会话采用仅追加方式。完成后的运行是一个可以读取、diff 和重放的文件,这使得插件的更换成为一种可衡量的改变,而非凭感觉。当 agent 在第 40 步出错时,第 1 到 39 步的记录依然存在。
DSH 不是什么
-
它不是一个模型。
DSH 运行的是一个模型。具体选择哪一个由你决定,且该模型本身也是一个插件。
-
它不是托管产品。
你在自己的机器或服务器上运行它。不存在账户层。
-
它尚不稳定。
该项目目前处于开发者预览阶段,plugin API 在各版本间仍有变动。
常见问题
DSH 代表什么?
DeepSeek Harness。CLI 二进制文件名为 dsh,生态系统随处可见其缩写形式:dsh plugin、dsh web 以及 GitHub 上的 dsh-plugin 主题。
DSH 和模型 DeepSeek 是一回事吗?
不是。DeepSeek 发布语言模型,而 DSH 是一个独立的开源项目,用于在 agent 循环中运行模型。DSH 可以驱动 DeepSeek 模型或任何具有适配器 plugin 的其他提供商。
DSH 与 Cordis 是什么关系?
Cordis 是 DSH 构建所基于的 plugin 内核。它提供了 ctx 对象、Service 注册表、通过 inject 实现的依赖注入,以及允许 plugin 干净卸载的可逆效应系统。DSH 是构建于其上的 agent 特定层。
使用 DSH 是否需要编写 plugin?
不需要。默认预设自带了可用的工具表和模型适配器。当默认配置不再适用时,可以通过 plugin 进行更改。
DSH 使用什么许可证?
MIT 许可证,完整源代码发布在 GitHub 上。
如何让我的 plugin 出现在本网站上?
将 dsh-plugin 主题添加到您的 GitHub 仓库,或在 npm 发布时将 dsh-plugin 加入 keywords。注册表会每日重新抓取。