| name | dsh-plugin-discovery |
| description | 想知道某个 DeepSeek Harness 插件是否已经存在、寻找成熟实现、盘点当前工作区插件、或评估第三方 dsh 插件能否安装时使用。写新插件前必须先查;用 tools/find-dsh-plugins.py 核实 npm/GitHub 候选的 package.json dsh 字段、版本与源码可信度。涉及本机已装插件时只读发现并把清单留在被忽略的 my-plugins.md,不公开真实 profile 或用户数据。 |
发现与评估 dsh 插件
先查当前工作区和本机已装组合,再查公开生态。DeepSeek Harness 处于 developer preview,
数量、下载量、topic 和兼容版本都会快速变化,不在技能正文固化统计数字。
本地发现
find . -maxdepth 2 -name package.json -path './dsh-*/*' -print
python3 tools/check-harness-drift.py
若任务需要理解真实 profile,先读 dsh-local-verify,只用 --dump-config 等只读接口。
本机清单可写入被 Git 忽略的
references/my-plugins.md;模板见 references/my-plugins.example.md。不要把真实路径、
profile 内容、会话、凭据或私人插件名称写进公开技能。
公开生态检索
python3 tools/find-dsh-plugins.py
python3 tools/find-dsh-plugins.py --query terminal
python3 tools/find-dsh-plugins.py --source github
python3 tools/find-dsh-plugins.py --source both --limit 40
python3 tools/find-dsh-plugins.py --json
结果是候选,不是安装许可。工具会尽量读取 manifest,但仍要打开最终候选的仓库和
package.json 复核。
判据是 dsh manifest,不是名字或 topic
| 字段 | 含义 |
|---|
dsh.bundle | 组合包;dsh plugin add 会为它激活一个配置层 |
dsh.client | 带 Client 半,向目标平台贡献浏览器能力 |
dsh.profile | profile 模板,不是普通插件 |
| 都没有 | 普通依赖;能安装但不会激活配置层 |
dsh-plugin topic 和仓库名都可伪造或误标。npm 包名也可能与仓库名不同,安装时只用
manifest 的真实包名。
决定复用、参考还是重写
对每个候选记录:
- 它贡献的 manifest 能力和实际 patch 行;
- 它锚定的
@deepseek-ai/dsh-* preview 版本;
- 是否有源码、许可证、测试、近期维护和可审计的构建产物;
- 是否执行
prepare 或其他安装脚本;
- 是否访问文件系统、网络、凭据、Session 或进程;
- 与当前目标的重合和仍需自建的差异。
优先复用稳定 seam 或参考可验证实现,不因为名字相似就安装。
安装前安全门
插件是 Harness 进程内代码,不等于 Agent 沙箱内代码。
- 从 Git 安装要锁 commit,而不是可移动分支;
- pnpm 的 build allowlist 等于授权安装脚本在本机运行,只给审阅过的源码;
- 先在隔离 profile 或一次性环境验证,再进入真实 profile;
- 先读
dsh-local-verify,准备回滚并核对 --dump-config;
- 外部模型、网络工具、MCP 和插件可能把输入交给各自服务商,不能从“Harness local-first”
推导出整个组合都不会上传数据。
失败时
- GitHub 搜索失败:确认
gh auth status,或改用网页/公开 API;不要把 token 打出来。
- 结果太少:扩大 GitHub 扫描池并尝试
dsh-plugin、deepseek-harness、dsh 多个词。
- 候选没有
dsh 字段:把它当普通库或噪音,不算 Harness 插件。
- 版本不明:不要安装,先查 release/tag、lockfile 和实际依赖。