什么是 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。注册表会每日重新抓取。