它是什么
DeepSeek Harness(命令名 dsh)是 DeepSeek AI 开源的一套 agent harness(智能体运行框架)。如果把大模型比作"大脑",harness 就是给它接上手脚和感官的那层运行时:模型负责推理,而 harness 负责把推理结果转成真实的工具调用、文件读写、命令执行与界面交互,并把这些能力组织成一个可运行、可扩展、可交互的程序。dsh 的定位正是这一层——它既不是模型本身,也不只是聊天前端,而是把模型、工具与界面装配起来的宿主环境。
它最核心的设计主张是 "Everything is a Plugin"(一切皆插件):框架本体只保留最小骨架,具体能力以插件形式挂载。这套插件机制建立在 Cordis 之上,Cordis 是一个以插件加载与服务依赖组合为核心的 Node.js 框架,其设计范式在论文《A Programming Paradigm for Spatiotemporal Composability》中有专门阐述,README 中给出了对应的 arXiv 链接。换句话说,dsh 要回答的是"智能体系统如何被拆解、复用与重新组装"这一工程问题,而不仅是再提供一个能对话的界面。
README 同时明确:项目目前处于 developer preview(开发者预览) 阶段,迭代很快,且会出现破坏兼容性的变更。
核心功能 / 内容清单
- 一切皆插件的装配式架构:框架的能力边界由插件决定,功能模块可被替换、组合与按需启用,而非写死在核心代码里。
- 基于 Cordis 的插件运行时:Cordis 提供插件加载、依赖声明与服务组合能力,是 dsh 插件体系的底层支撑;其背后的设计范式有公开论文可供参考。
- 开箱即用的 Web UI:执行
dsh web即启动本地 Web 服务,默认监听http://127.0.0.1:3080,本地启动时会自动用默认浏览器打开。 - 面向不同环境的启动行为:
--no-open可让服务只启动、不拉起浏览器;在 SSH 会话中运行时则只打印主机 URL,因为本地转发地址由 SSH 客户端或编辑器掌握。 - 双路径安装方式:既可通过 npm 的
npx免安装直接运行,也可克隆仓库后自行构建(pnpm install/pnpm run build/pnpm dsh web)。 - 文档与生态配套:仓库提供开发指南、架构文档、面向 AI 编码代理的约定文件、安全须知与第三方依赖清单;社区侧以 GitHub Discussions 与
dsh-plugin话题标签组织反馈和插件发现。 - MIT 开源协议:代码以 MIT 协议发布,第三方依赖的许可证单独在
THIRD_PARTY_NOTICES.md中披露。
典型使用场景
1. 本地快速搭起一个智能体工作台:想在不写任何胶水代码的前提下,体验"模型 + 工具 + 界面"的完整闭环时,装好 Node.js 并执行 npx @deepseek-ai/dsh web,浏览器会自动打开 127.0.0.1:3080,直接进入 Web UI 操作。这是该项目最低门槛的使用方式,适合先跑通再决定是否深入。
2. 在远程服务器、跳板机或容器中部署,通过端口转发访问:SSH 登录后执行同一命令,程序不会尝试打开浏览器,只输出主机 URL。若使用的是 VS Code Remote 一类编辑器,转发地址由编辑器管理;若只想让服务静默运行,可加 --no-open。这一设计说明项目考虑过服务器端运行的实际约束。
3. 基于源码做二次开发与插件扩展:需要改动框架本身或开发自有插件时,克隆仓库、pnpm install、pnpm run build 准备构建产物,再用 pnpm dsh web 加载产物运行;插件仓库可打上 dsh-plugin 话题以便被发现。
4. 让 AI 编码代理参与项目开发:仓库内的 AGENTS.md 为自动化编码代理规定了参与本项目时的行为约定,适合把该仓库接入 AI 辅助的开发流程。
适合谁用
- 希望快速验证智能体能力的个人开发者:一行
npx命令即可起服务,不必先理解内部结构。 - 插件作者与框架扩展者:Everything-is-a-plugin 意味着扩展方式是"写插件"而不是"改框架",适合把自己的工具、数据源或界面接入到 agent 运行时的人。
- 需要在远程环境部署 agent 的工程团队:SSH 场景下的行为设计与
--no-open参数,说明其覆盖了服务器端运行的需求。 - 关注组合式架构的研究者与架构师:Cordis 及相关论文提供了一套关于时空可组合性的范式参考,可作为插件化智能体系统的设计样本。
- 相对不适合:只想调用模型 API 做简单集成的用户(直接用官方 API 更轻量);以及要求稳定接口、开箱即用于生产环境的团队——当前处于 developer preview,接口会变。
快速上手
最短路径(npm 方式):
1. 安装 Node.js;
2. 执行 npx @deepseek-ai/dsh web;
3. 服务默认在 http://127.0.0.1:3080 启动,本地环境会自动打开默认浏览器;
4. 不希望自动打开浏览器时,追加 --no-open;
5. 在 SSH 会话中运行则只输出主机 URL,需通过 SSH 客户端或编辑器的端口转发访问。
从源码运行:
```sh
git clone https://github.com/deepseek-ai/deepseek-harness.git
cd deepseek-harness
pnpm install
pnpm run build
pnpm dsh web
```
其中 pnpm run build 负责准备仓库构建产物,pnpm dsh web 直接使用这些产物启动,不会重新构建。Web UI 的具体操作参见仓库内 docs/user/guide/index.md;README 另有中文版 README.zh.md 可供对照。Node.js 的具体版本要求、依赖版本等细节,以官方 README 与文档为准。
注意事项
- 仍属开发者预览:README 明确提示会有破坏兼容性的变更,不宜将其作为稳定依赖引入关键流程,升级前应先阅读变更说明。
- 运行前先看安全须知:根目录的
SAFETY.md被 README 特别标注为运行前必读。智能体框架通常具备执行工具、读写文件等能力,权限边界与运行环境隔离需要自行评估。 - 默认只监听本机回环地址:默认地址为
127.0.0.1:3080,仅本机可访问。README 未给出面向公网或局域网的暴露方案,若有跨机访问需求,应通过 SSH 端口转发等方式自行处理,并做好访问控制。 - 构建与运行是两个步骤:源码方式下必须先
pnpm run build再pnpm dsh web,后者不会隐式重建;改动源码后需重新构建才会生效。 - 协议与依赖许可:项目本体为 MIT 协议,但第三方依赖的许可证单独披露在
THIRD_PARTY_NOTICES.md,商用或再分发前应核对该清单。 - 信息来源以官方文档为主:README 本身篇幅很短,架构(
docs/architecture.md)与开发(docs/development.md)细节都在独立文档中,插件开发与深度使用应以这些文档为准。