理解 · 发现 · 排查
DSH、插件与本站目录。
先理解 Harness 的组合模型,再了解插件与 Profile,随后使用目录发现项目并解决常见 CLI 错误。
第 01 部分
从 DSH 开始
了解产品、架构和更稳妥的首次运行方式。
01DeepSeek Harness(dsh)是什么?
DeepSeek Harness 是 DeepSeek AI 开发的开源 Agent Harness。它提供 Agent 运行所需的模型、工具、会话、文件系统、沙箱、编排和界面,同时让这些能力保持可替换。
官方源码和文档位于 deepseek-ai/deepseek-harness 仓库。
02“Everything is a plugin”是什么意思?
DSH 基于 Cordis。插件向共享上下文贡献服务、类型化事件和可撤销副作用。模型适配器、工具注册表、会话日志和 Agent Loop 本身也是插件,因此系统通过配置完成组合,而不是修改某个不可替换的核心。
可替换不代表无需检查即可互换;插件仍有版本、契约、权限和兼容性限制。
03如何体验 DSH?现在适合稳定生产使用吗?
可以通过 npx 启动官方 Web Profile。DSH 目前仍处于开发者预览阶段,官方明确提示会出现破坏兼容性的变更;需要可重复环境时应锁定版本,并在更新前阅读发布说明。
npx @deepseek-ai/dsh webWeb UI 默认运行在 http://127.0.0.1:3080。
第 02 部分
插件、Bundle 与 Profile
理解扩展如何打包、组合、安装和激活。
01DSH Plugin 是什么?
Plugin 是挂载到 Cordis 共享上下文、向运行时贡献行为的扩展。它可以提供或使用模型、工具、记忆、文件系统、沙箱、编排或 UI 等能力。一个 npm 包可以包含单个插件、多个插件,或一组带配置的 Bundle。
真正定义项目能力的是 package README 与 manifest,而不是包名。
02Plugin、Bundle 与 Profile 有什么区别?
Plugin 提供运行时行为;Bundle 分发有顺序的 Cordis 配置行和它们挂载的代码;Profile 是保存在 DSH Home 中的命名组合,负责堆叠 Bundle、保存额外安装的依赖以及用户自己的 cordis.patch.yml。
npx @deepseek-ai/dsh --profile web --dump-configProfile 决定插件安装到哪里,以及哪个应用组合会加载它。
03如何安装或移除插件?
使用带 Profile 的 plugin 命令。DSH 会在首次使用时初始化所选 Profile,在该 Profile 内把操作转发给 pnpm,再根据已安装包是否导出 DSH Bundle 更新 Layer 列表。
npx @deepseek-ai/dsh plugin --profile web add <package>
npx @deepseek-ai/dsh plugin --profile web remove <package>修改依赖栈后,请重新启动正在运行的 Profile。
04每个 npm 包都是 DSH 插件吗?
不是。声明 dsh.bundle.patch 的包可以进入 Profile Layer Stack。普通 npm 包也可能作为依赖安装成功,但如果没有这项声明,DSH 会警告它不能被激活为 Profile Layer。
npx @deepseek-ai/dsh plugin --profile web why <package>只安装项目文档明确指向的包;名称相似的包不能替代真实插件。
第 03 部分
使用本站目录
了解目录记录什么、标签代表什么,以及项目如何进入目录。
01DSH Plugins 是什么?是官网吗?
DSH Plugins 是用于发现来源可追溯的 DeepSeek Harness 扩展的独立社区目录。本站整理公开项目来源、安装方式、兼容性、权限和审查状态,不是 DeepSeek AI 官方网站。
DSH 版本、平台文档和产品支持应以官方 DeepSeek Harness 仓库为准。
02本站的 Plugin、Collection、Skin 与 Skill 分别表示什么?
它们是用于发现项目的目录标签。Plugin 指可挂载扩展;Collection 指多个协同扩展的集合;Skin 指界面的视觉层;Skill 指供 Agent 使用的指令与资源内容。项目自己的 manifest 和安装方式才是最终依据。
类型标签描述项目的使用方式,不代表热度或验证状态。
03Community、In review 与 Verified 代表什么?
Community 表示条目来自可追溯的公开元数据,但尚未完成目录检查;In review 表示正在检查;Verified 表示某个明确版本通过了可安装性、文档、权限、许可证和基础行为检查。
Verified 不是安全保证,不能替代源码审查、权限审查和沙箱测试。
04目录数据来自哪里?为什么数字可能与 GitHub 或 npm 不同?
目录由人工维护的来源清单以及公开的 GitHub、npm 元数据快照生成。Stars、下载量、版本和仓库活动可能在快照生成后继续变化;双语描述和项目类型则由目录维护。
当时效性或来源很重要时,请在安装前打开条目链接的源码仓库确认。
05应该如何评估或提交一个项目?
先查看源码归属、项目类型、安装来源、兼容性、权限和验证状态,再检查仓库并在隔离的 Profile 中测试。提交时,本站会生成结构化 Markdown 草稿并打开 GitHub Discussions,保留公开审查记录。
提交表单不会向本站发送数据;浏览器只会复制草稿,供你自行发布。
第 04 部分
命令与常见错误
针对 Profile 参数、pnpm 环境、Registry 搜索和安装警告的准确解决方案。
01为什么 plugin search 要求 --profile <name>?
plugin 命令管理某一个 DSH Profile 的依赖,因此必须知道要初始化或更新哪个 Profile。把 DSH 自己的 --profile 参数放在后续 pnpm 命令之前。
npx @deepseek-ai/dsh plugin --profile web search "web ui"可以使用 web、headless,或已经存在的自定义 Profile 名称。
02为什么出现“pnpm not found on PATH”?
DSH 会调用 PATH 中的 pnpm 执行插件操作。npx 只为当前命令获取 DSH,不会顺带为 DSH 的子进程安装 pnpm。当前 DSH 源码工作区锁定 pnpm 11.7.0。
corepack enable
corepack install --global pnpm@11.7.0
pnpm --version如果没有 Corepack,可改用:npm install --global pnpm@11.7.0
03为什么搜索结果里有很多无关的 npm 包?
DSH 会把 search 原样转发给 pnpm search;它搜索的是整个 npm Registry,而不是本站的精选目录。加入 dsh-plugin 等生态关键词,并在安装前检查源码与 dsh.bundle manifest。
npx @deepseek-ai/dsh plugin --profile web search dsh-plugin "web ui"需要同时查看项目类型、来源、安装方式和验证状态时,请直接使用本站目录。
04为什么 Git 仓库插件会在 prepare 脚本阶段失败?
pnpm 10 及以上默认阻止依赖构建脚本,直到用户明确放行。DSH 会打印实际 Profile 目录和准确的包名。只把已审查的那个包加入该目录 pnpm-workspace.yaml 的 allowBuilds,然后重新执行安装。
allowBuilds:
exact-package-name: true不要放行所有构建脚本;安装脚本会在你的机器上执行代码。
05为什么出现“plugin needs pnpm arguments to forward”?
Profile 不是具体操作。请在 --profile 后提供 add、remove、search 或 why 等 pnpm 命令。
npx @deepseek-ai/dsh plugin --profile web add <package>
npx @deepseek-ai/dsh plugin --profile web remove <package>
npx @deepseek-ai/dsh plugin --profile web search <terms>file:、link:、./ 和 ../ 等相对包路径,均以执行 DSH 时所在的目录为基准。
06提交插件问题前应该记录什么?
记录三项运行时版本、Profile 名称、完整命令,以及 DSH 打印的实际 Profile 目录。DeepSeek Harness 仍是候选版本,版本信息对定位问题很重要。
node --version
pnpm --version
npx @deepseek-ai/dsh --version当前源码工作区要求 Node ^22.19.0 或 >=24.0.0。