DeepSeek Harness(命令行是 dsh)把 Agent 拆成可组合的插件:终端、编辑器、MCP、浏览器、记忆、Skill 目录,几乎都挂在 Cordis 组合上。官方仓库 deepseek-ai/deepseek-harness 写得很清楚——Everything is a Plugin。它仍是开发者预览,接口会破兼容;真正决定好不好用的,不是再下一个模型,而是你装了哪些插件、Skill 从哪读、权限开到哪一层。
社区里很快堆出上千个 dsh-plugin。下面按「先能干活、再扩能力、最后接渠道」收一份实用清单:官方内核能力、Skill 市场、搜索/视觉/记忆/浏览器,以及怎么避免一次装爆上下文。文档锚点用官方站 DeepSeek Harness Docs 与插件说明 插件指南。
Harness 是什么:插件、Profile、Skill 三层
把它想成「Agent 运行时」,不是又一个聊天网站。
- 内核包
@deepseek-ai/*:随发行版走,bash / 编辑 / MCP 资源 / plugin_manager / 官方skill工具都在这里。 - 社区包:npm 名或
github:owner/repo,用dsh plugin --profile web add …装进当前 profile;bundle 装完要重启dsh web。 - Skill:给模型的可选说明书(
SKILL.md),不是会话事件。内置文件系统提供者按优先级扫项目与用户目录;模型侧目录通常只暴露name和description,正文按需加载。
本地 Skill 扫描顺序(官方 dsh-skill-filesystem)大致是:项目 .dsh/skills → 项目 .agents/skills → 自定义目录 → 用户 DSH skills → 用户 .agents/skills → 打包内置。同名时更靠近项目的那份赢。仓库根以最近的 .git 为准。
目录形如 my-skill/SKILL.md,frontmatter 至少有 name 与 description。name 只允许小写字母、数字和连字符。不支持递归扫 **/SKILL.md。
先跑起来:web profile 与安装命令
需要 Node.js(社区插件常见要求是 22+)。本地预览:
npx @deepseek-ai/dsh web
默认 Web UI 在 http://127.0.0.1:3080。文档和社区插件都强调:绑定回环地址,不要把未鉴权的 dsh web 听在 0.0.0.0。SSH 远程时用本机端口转发,不要把插件面板直接暴露到公网。
装 bundle 插件的标准写法:
dsh plugin --profile web add skillhub-plugin
# 或 Git 源(生产环境建议钉 commit)
dsh plugin --profile web add "github:minivv/dsh-agent-skills"
# 装完重启
# 再开一次 dsh web / dsh --profile web
dsh plugin add 把参数原样交给 pnpm:认 npm 包、git、`link:` 本地路径。monorepo 子包要用设置里的 repository 源(github:owner/repo#ref&path:/packages/foo),不要指望 plugin add 解析 &path:。
核对组合:dsh web --dump-config | grep 插件名。卸载 dsh plugin --profile web remove 包名 只删依赖,不会回写你在 $DSH_HOME/profiles/web/cordis.patch.yml 里手写的 insert,那一行要自己删。
2026 起步组合(建议收藏)
不要对着插件雷达一次点二十个。先固定这一套,跑一周再加:
| 层 | 选一个 | 作用 |
|---|---|---|
| 运行时 | 官方 dsh web | 内核工具 + 官方 skill 工具 + 插件管理器 |
| Skill 发现 | dsh-agent-skills 或 dsh-skills-anywhere | 把 Claude / Codex / Cursor / OpenCode 目录收进来 |
| 安装入口 | skillhub-plugin 或官方 Discover 市场 | 对话里搜技能 / 插件,确认后再装 |
| 联网 | modsearch(或你已有的搜索 MCP) | 模型没有原生搜索时补结构化检索 |
| 视觉 | 二选一:modlens 或 dsh-vision-toolkit | 贴图 OCR / 版面,不要两套抢工具名 |
| 记忆 | 官方 examples 里只开一个 MCP overlay | Memorix / MCP Reference Memory / Engram |
同类能力留多个,模型会在工具目录里迷路,上下文也被摘要占满。第三方市场只添加你信任的 HTTPS 索引。
Agent Skills:目录优先级与三款管理插件
你很可能已经在 ~/.claude/skills、~/.codex/skills、~/.cursor/skills 里有一批 SKILL.md。DSH 默认更认 .dsh/skills 与 .agents/skills。社区用插件把其它助手的目录接进 ctx.skills。
dsh-agent-skills:设置页接管本地目录
仓库 minivv/dsh-agent-skills。安装:
dsh plugin --profile web add dsh-agent-skills
装完到「设置 → Agent Skills」,开启接管并重启。它会扫 ~/.agents/skills、~/.claude/skills、~/.codex/skills、~/.config/opencode/skills、~/.gemini/skills,可按目录或单技能开关,不改你的原始 SKILL.md。状态写在 $DSH_HOME/agent-skills/state.json。兼容说明以 README 为准(作者写过 0.1.x 与 0.2.x)。
dsh-skills-anywhere:零拷贝、跨助手、可挂 Git 技能库
讨论帖与仓库:noteflowai/dsh-skills-anywhere(非官方)。它注册额外 Skill provider,不替换官方 skill 工具:
- 覆盖 60+ 助手的用户级 / 项目级技能目录(Claude Code、Codex、Cursor、Gemini CLI、OpenCode 等)。
- 能读 Claude Code 插件市场里嵌套的
skills/。 - 可浅克隆任意 git 技能仓库进缓存,后台刷新;编辑 Cursor 里的文件,DSH 下次加载能读到。
- Web UI 里按来源 Pin / Hide / Exclude。也可当 MCP:
npx dsh-skills-anywhere mcp。
dsh plugin --profile web add dsh-skills-anywhere
npx dsh-skills-anywhere list
npx dsh-skills-anywhere add anthropics/skills
npx dsh-skills-anywhere doctor
项目自己写的 DSH 技能优先级更高,避免和市场上同名 skill 撞车。与 dsh-agent-skills 不要叠两套「接管」,选一个当主发现器。
skillhub-plugin:对话里搜、看、装
cocofhu/skillhub。npm 包名是 skillhub-plugin(不要装错成另一个叫 skillhub 的包;也别用会跑 prepare 的裸 git 源):
dsh plugin --profile web add skillhub-plugin
对话里可搜技能卡片、看版本与安全标记、zip 安装到本机可发现目录;设置页能更新 GitHub release。另有插件广场:搜 DSH 插件、卡片直装、装完提示重启。需要 Node 22+。作者建议 dsh web 只绑 127.0.0.1。
技能市场与官方 Plugin Market
「市场」有两类,别混:
- Skill 市场:往
~/.dsh/skills(user-dsh 根)落SKILL.md包,官方skill工具本来就会读。 - Plugin 市场:一份 JSON 索引,列出可安装的 DSH bundle(npm 或钉死的 git commit)。
社区 Skill 市场
- dsh-skill-market(QQ-M/dsh-skill-market):设置页搜 GitHub 技能仓,一键解压安装。
dsh plugin --profile web add "github:QQ-M/dsh-skill-market",然后重启 web profile。 - dsh-skills-marketplace(cxdyun/dsh-skills-marketplace):按 Git 仓库 + 分支 + 稀疏路径拉取,把技能摊平到
~/.dsh/skills/…,按插件分组开关;卸载只动它自己装过的目录。
同一份 SKILL.md 可以给 DSH、Claude、Codex 复用。装进用户目录前看仓库星标、最近提交和是否乱执行安装脚本。
官方 Custom plugin markets
指南:Plugin markets。DSH不自带索引源。打开实验插件里的 Custom plugin markets,Discover 页添加 https:// 索引 URL。确认安装时会走正常兼容性检查。市场文案是第三方的,内核只校验 JSON 格式,不背书描述是否属实。
目录站例如 dshmarketplace.dev 提供检索 API 与可选的 dshmarketplace-plugin(/store)。把它当参考书,安装命令仍以确认框里的 npm/git 为准,并尽量钉版本。
能力插件:搜索、视觉、会话、浏览器、记忆
联网:modsearch
liustack/modsearch 面向没有原生搜索的模型:问网页或 X,拿回结构化 JSON 证据。已有稳定的 Brave/Tavily MCP 就不必再叠一层。
视觉:modlens 或 dsh-vision-toolkit
纯文本模型看图,社区常见两条线:
- modlens(liustack/modlens):粘贴图片 → OCR / 版面 / 语义 JSON。
- dsh-vision-toolkit(Anionex/dsh-vision-toolkit):多图问答、长截图 OCR、UI 还原、pixel diff 等。
只开一套。工具 schema 重叠时,模型会乱点。
会话检索:dsh-session-search
官方文档示例:dsh plugin --profile web add "github:dsh-external/dsh-session-search#main"。面向模型的跨会话查询是可选挂载:要精确匹配 cwd,部署前想清楚隐私边界。底层 sqlite 会话索引可以在,但不必把查询工具暴露给模型。
浏览器:官方 browser-use + 一个 provider
子系统说明:挂 dsh-browser-use 且只能有一个 provider——Playwright MCP、Chrome DevTools MCP,或 Stagehand 原生包。第二个 provider 会被拒绝。浏览器会话跟当前 Agent/Session 走,关掉 Session 会丢掉这次启动的浏览器状态(外接已打开的浏览器除外)。
记忆:官方 MCP 示例,默认全关
仓库 examples/mcp-memory/ 提供 Memorix、MCP Reference Memory、Engram 三份 overlay,官方写明互操作示例、不构成背书。一次只 --patch 一份:
dsh web --patch "$PWD/examples/mcp-memory/memorix.cordis.yml"
长期启用就合并进 profile 的 cordis.patch.yml,不要覆盖已有补丁文件。stdio 子进程会剥掉常见凭证环境变量和 DSH_*;密钥放 overlay 的 config.env,不要写进 prompt。
渠道与桌面:IM、Telegram、dsh-desktop
- dsh-im:扫码或凭据接飞书 / 微信 / 钉钉 / 企微 / QQ / Slack / Telegram / Discord / WhatsApp。外发网络权限最大,装前读源码与 token 存放位置。
- 单独的 telegram / qqbot 类插件同样要审外发与 webhook 监听地址。
- dsh-desktop:把桌面壳也做成插件宿主,适合本机常驻;云主机上优先 web + SSH 转发。
渠道插件解决「消息进得来」,不替代你的业务状态机。工单、构建、账单仍应落在你自己的仓库和数据库。
怎么选、怎么卸、怎么防装错
- 先读 package 的
dsh.bundle与 README,确认 profile 是web还是别的名字。 - 钉版本:生产用
包名@x.y.z或github:owner/repo#<40 位 sha>。 - 看安装脚本:需要
allowBuilds/prepare的 git 源,优先改 npm 预构建包。 - 工具名冲突:两个视觉或两个技能接管插件不要共存;
--dump-config对一下。 - 卸载:
remove之后删 patch 里对应 insert,再重启;面板里看不到时查浏览器控制台与 client 半包是否装上。 - 市场索引:只用 HTTPS;http 索引在路径上可被篡改安装源。
官方 README 写明 THERE WILL BE COMPATIBILITY-BREAKING CHANGES。升级 dsh 后先看插件的 engines.dsh,再批量更新社区包。把常用 Skill 放进 Git(项目 .dsh/skills),比把「整个 profile 的 node_modules」当备份更稳。
放在 Cloud Mac 上跑时注意什么
Harness 适合 7×24 挂着跑 cron、MCP stdio、长会话。云端 Mac(固定区域、可 SSH)能把 dsh web 放在本机回环,你用 SSH 把 3080 转到笔记本浏览器。Skill 与 cordis.patch.yml 进 Git;密钥进系统钥匙串或独立密钥管理,不要进仓库。
iOS / Xcode 任务仍走同一台机器上的 Xcode 与模拟器;DSH 只编排 Agent 与工具。浏览器自动化选一个 provider,避免和无头 CI 抢同一套 Chromium 配置文件。
FAQ
文末 JSON-LD 有完整问答。短答:Skill 与插件不是一回事;Claude 技能可以复用但要接发现插件;同类市场不要叠装;记忆 overlay 只开一个;web UI 保持 127.0.0.1 再用 SSH 转发。