dsh-plugin-tool-management
Manifest valid★ 34Unified MCP & skills manager for DeepSeek Harness: per-tool toggles, secret masking, skill trash
dsh-plugin-tool-management
简体中文 · English · Changelog · 版本更新概要
- DeepSeek Harness 的 MCP、技能、场景、记忆、子智能体、提示词与归档会话管理插件。
- 八个页签:场景、MCP、技能、子智能体、提示词、记忆、会话、兼容。
dsh plugin --profile web add dsh-plugin-tool-management@latest
装完硬刷新浏览器(Cmd/Ctrl+Shift-R),设置 → 工具 即安装成功。不手改 cordis.patch.yml,不碰技能源文件,重启与升级后配置依旧。
截图
![]() | ![]() |
| 场景 | MCP |
![]() | ![]() |
| 技能 | 子智能体 |
![]() | ![]() |
| 提示词 | 记忆 |
![]() | ![]() |
| 会话 | 兼容 |
核心亮点
一句话:把「工作 / 写作 / 编程」各配成一套场景,点一下整套切换;插件管的东西,模型都看得见。
| 亮点 | 说明 |
|---|---|
| 一键换场景 | 每个场景各配一套:用哪些 MCP 服务器、哪些技能、哪些人设、哪些记忆;点一下整套切换,关掉自动还原 |
| 记忆自动送到模型眼前 | 每个场景下写几段 .md 就是它的资料库,正文自动进上下文,不用每次复制粘贴 |
| 给 MCP 服务器写备注 | 像「A 不可用时改用 B 兜底」这种话写进备注,模型看得到,会照做 |
| 单个工具也能关 | 一台服务器里只停掉某个工具,模型看不见也调不到;「重启」只重连,不会偷偷改变开关 |
| 技能状况一眼看穿 | 哪些在生效、哪些被同名技能覆盖、哪一份是首选,都标得清清楚楚 |
| 子智能体 = 一个文件一个角色 | 写一份角色说明就能派活;跑完只回结果、不占你的会话记录;哪些角色能用还能按场景定 |
| 提示词备好几套 | AGENTS.md 可以存多份(简洁模式 / 教学口吻……),一键切换;场景可以各自绑一份 |
| 会话不再丢 | 归档按项目分组、能搜、能批量恢复;Claude Code / Cursor / Codex 的聊天记录都能导进来 |
| 模型一定看得见 | 插件管的内容(记忆 / MCP / 技能 / 子智能体 / 提示词)会主动告诉模型,每个域各发一条、内容没变不重复;极简模式下默认不注入(跟随预设),可在「兼容」页逐项打开 |
| 锁住就不怕手滑 | 场景可以上锁:五个域整体只读,先解锁才能改 |
| 删了能找回,配好能带走 | 删除都进回收站,随时恢复;技能 / 记忆 / 人设 / 提示词都能勾选打包成 zip,也能再导回来 |
| 安全、不添乱 | 密钥默认打码、看明文要令牌;只写自己的文件,技能源文件一个不动,升级重启配置都在 |
快速开始
前置:DSH 已安装(dsh web 可运行),Node.js ≥ 18。
dsh plugin --profile web add dsh-plugin-tool-management@latest # 安装 / 更新
dsh plugin --profile web remove dsh-plugin-tool-management # 卸载
装完硬刷新浏览器,设置 → 工具 出现八栏即成功。客户端改动热加载,宿主侧改动需重启 dsh web。
也可以让模型代劳:
安装 dsh-plugin-tool-management 插件:
dsh plugin --profile web add dsh-plugin-tool-management@latest
装完提醒我硬刷新浏览器。
模型可用 14 个工具管理上述功能(mcp_manager_* / skill_manager_* / prompt_manager_* / memory_manager_* / subagent_manager_*);脚本走 POST /dsh-plugin-tool-management/api({op, args} 协议)。
功能
场景与记忆
- 场景 = 分组,记忆 =
.md文件。memories/<场景>/<名>.md,整篇正文自动注入上下文,文件名支持中文。 - 单选启用:同时只启用一个场景(其余置灰),关掉全部 = 只注入「全局」与
_shared。新场景默认不启动。 - 场景绑提示词:切换场景直接改写
~/.dsh/AGENTS.md(覆盖前 5 代备份,关掉自动恢复基线);预设挂不到官方 AGENTS.md 通道时(极简),改为把这份正文直接注入上下文。 - 场景档案:每个场景搭配 MCP 工具集 / 技能集 / 子智能体 / 记忆(任意组合);打开场景即应用并收窄注入,关闭按快照原文恢复(开关是唯一入口)。勾选集语义:勾的启用、没勾的停用,整段没建 = 一个都没勾 = 该域全部停用(所以「没配 MCP 工具集」的场景进去就是全部 MCP 停用,退出再开回来)。场景内 MCP / 技能 / 子智能体这三个域的开关照常可用——这里的改动会同步写进该场景的档案(当下生效、下次进这个场景照旧生效),只有锁定才冻结;记忆域的开关本来就是单一真相源,不经过档案。
- 「进/出模式」与「启用场景」是两个独立状态轴:界面开关是唯一入口(两轴齐动)。绕过界面直接调 HTTP API 时要注意:
scene-mode-set{scene:null}只退运行时快照,不清空启用集 —— 记忆与提示词仍按该场景注入;要彻底退出还需rules-set-active{scenes:[]}。 - 导入:
.md/.zip(目录名 = 场景,bundle 带附件),同名跳过绝不覆盖,超限逐条回报。 - 导出:勾选记忆打包成 zip,保留「场景/名称」层级;bundle 型连目录里的附件一起打进去。只读源文件。
- 注入预算:默认 64 KiB,放不下的跳过并列出清单。删除进回收站。
- 子代理会话不注入记忆:记忆只在顶层会话注入 —— 它是"父会话的现场",不是子代理完成任务所需的事实;子代理的上下文只留「角色 + 任务」,要记忆可用
memory_manager_list/read自己取,相关事实应由父代理写进task。其余域不受影响(MCP / 技能 / 提示词照常注入,人设目录按各自的catalogDepth)。 - 场景锁定:锁定后 MCP / 技能 / 子智能体 / 记忆 / 提示词整体只读,界面禁用 + 服务端守卫双侧拦截;未启动不能上锁,锁定中不能关闭,先解锁再改。
- 删除场景 = 连记忆一起删:场景记录、档案与全部记忆进同一条回收站条目,恢复按原路径整条放回;使用中的场景拒绝删除。场景名可改(连带目录与档案,记忆正文不动)。
子智能体
- 一个文件一个人设:
agents/<人设>.md,frontmatter 全可选。 - 人设进系统提示词时会带一层角色框:正文照原样使用,外面加
# 角色:名标题、一行授权(「由调用方指定;与你的默认倾向冲突时以它为准;任务说要什么,怎么做以它为准」)和一句边界(决定怎么做,不改变能做什么),正文用## 角色定义围起来;框的语言跟随正文。这是为了让模型把它读成"我被指定为一个角色",而不是身份句后面多跟的两句话——人设文件一个字都不用改。框里不列description(那是给调用方选人设用的;要给人设子代理看的简介写进正文)。 - 工具限制按 Agent 预设:每个预设一份白/黑名单(互相排斥),运行期按当前预设生效——堵掉旧「全体并集」名单换预设后子代理起不来的坑。
output:输出要求(硬性契约):frontmatter 里可写多行output:(一行一条),角色框会把它渲染成## 输出要求(硬性)单独一节(在角色定义之后)。提示词写「这个角色怎么想」(散文),output:写「产出必须长什么样」(可检验:格式、分级、必标项、禁止项)—— 只有一句抽象要求的角色,产出无法判定"执行了没有";写成可检验的才会被真的遵守。编辑器里有「输出要求(硬性)」多行框,也可以直接写进文件。- 即用即弃:
subagent_manager_run带人设运行、只回传结果、不进 History。子代理的上下文只有角色 + 任务:场景记忆不注入(要记忆可用memory_manager_*自己取,相关事实应由父代理写进task)。场景可绑定可用人设。 - 两种上下文模式:默认新起独立会话(子代理看不到本次对话,任务要写全);把
inherit打开则子代理继承本次会话已完成的轮次(与官方subagent_fork同一套机制),任务只需写新增部分。只继承已完成的轮次——在本轮内发起委派时这一轮的内容继承不到(实测:父代理边读边委派,子代理仍从零开始),此时task要按"写全"对待。与官方两个委派工具(subagent/subagent_fork)的分界由插件写进上下文:贴合人设的任务一律走这里,官方那两个只在没有人设贴合、或需要后台任务(job)时用。 - 启停开关:停用的人设不注入上下文、模型不可见(文件不动);新建 / 导入 / 恢复默认停用(v0.8.5 起,与技能 / MCP 同口径),要委派先在这里打开。进场景按档案勾选集全量对齐(勾了的开、没勾的关,整段没建 = 全关),退出按进场景前的开关精确还原;场景内这个开关照常可用,改动会同步写进该场景的档案(只有锁定才冻结);退出场景时回到进场景前的状态。
- 人设目录自动注入:只列名字 + 描述,模型知道有哪些人设可委派;人设名可改,场景绑定自动跟着改。
- 目录注入(
catalogDepth):控制常驻的人设目录出现在哪些会话里 —— 默认1= 只在顶层注入;写2让子会话也收到目录;3到两层子会话;界面上的「不限制嵌套」写99,任何深度的会话都注入。它不限制嵌套:子代理始终可以继续委派,那由官方决定(dsh-tool-subagent默认maxDepth: 3),本插件不再向官方传maxDepth。子会话看不到常驻目录时,仍可用subagent_manager_list查询全部人设。三处口径同源(目录过滤、域声明、实况状态),所以"界面说没注入、实际又注入了"这类分叉不会出现。
MCP 服务
- 增删改查 + 即改即生效:写入
cordis.patch.yml,HMR 自动生效。 - 工具级开关:单个工具可独立停用(模型看不见也调不到),整台支持批量。
- 停着也能看清单:服务器没在跑时仍显示上次见过的工具名与描述(标「上次运行时」);从没跑过的可以一键「启动服务器读取工具」。
- 密钥打码:默认保留前 4 个字符、其余打码成
****(值不超过 4 位时整串****),「显示密钥」要令牌。 - 迁移与备份:跨项目级/全局迁移失败自动回滚;JSON 导出导入。
- 状态与备注自动注入:列出当前真正可用的 server;曾经连上过、现在连不上的也会列出并标注(
(当前未连上;上次连上时 N 个工具))—— 这样模型才会说"它没连上,检查一下",而不是把"配了但连不上"读成"本机没配"、建议你装一个。从未连上过的不列。你的备注作为决策提示带给模型;级别分「全局 / 应用级」,新增默认全局。注:极简这类压制型预设默认不注入(模型可用mcp_manager_list读取服务器名、启停、工具数与备注)——想让它也注入,到「兼容」页的「注入」块打开开关。
技能
- 来源一览:项目级 / DSH / Agents / Codex / Claude / 自定义目录,按来源分组。
- 两组权限相反:默认来源(DSH / 导入技能)必须读取但技能可删;外部目录可停用/移除但技能只读。
- 移除 ≠ 停用:移除 = 连目录都不扫(文件零改动,可恢复);停用 = 仍列出但不可调用。
- 同名技能一眼看出谁在生效:真实生效的那份标「首选」,被同名覆盖的标出来源;启用被覆盖的副本会明说「这样不会生效」。
- 自定义目录 / ZIP 导入导出 / 回收站。
- 目录可注入:预设没挂官方技能目录行(如极简)时,由本插件的注入域按「兼容」页的开关兜底送达(名字 + 简介;正文照旧读文件)。
提示词预设
- 多套
~/.dsh/AGENTS.md基线,一键应用(宿主每轮重读该文件,下一轮对话生效),保留 5 代备份。 - 记得「最近一次应用的是哪份」:就算你手改过
AGENTS.md,模型问「现在用的哪份预设」也答得出来源(会注明「此后文件有变」)。 - 描述:每条预设可写一句「这份是干什么的」,只显示在插件界面里;它存在同目录的
meta.json,不进 AGENTS.md,也就不会被注入上下文。 - 新建即可写正文,编辑可改 id(= 目录改名,场景绑定自动跟着改)。被引用的不能删(场景绑定 /
AGENTS.md当前内容 / 退出场景要恢复的那一份),删除进回收站。 - 正文可注入:预设没挂官方 AGENTS.md 行(如极简)时,
~/.dsh/AGENTS.md的正文由本插件的注入域兜底(64 KiB 上限;可在「兼容」页关掉)。 - 场景接管期间「应用」= 把该场景改绑到那一份(同步写进场景档案,绑定改完立刻重新对齐;未锁定时可用 —— v0.9 已把「应用别的预设会被拒绝」反转为改绑);锁定时才拒绝。退出场景时全局基线按快照恢复。
历史会话
- 按项目分组、搜索、批量恢复 / 永久删除、保留期自动清理。
- 工作区登记被删后按会话目录重建分组,可一键重新登记。
- 导入 Claude Code / Cursor / Codex / 任意文本;导出 Markdown / JSONL。
宿主兼容
插件运行期用宿主同一批 @deepseek-ai/* 库——必须是同一份物理模块,否则判断退化成猜。
- 「兼容」页:宿主版本、能力可用数、每个动作走原生/适配/不可用、降级项与原因。只读。
- 命令行:
node scripts/doctor.mjs(体检)、node scripts/host-deps.mjs --fix(依赖对齐)、npm run sync:profile(把构建产物镜像到 profile 里那份本地安装 ——file:装的是硬链接拷贝,构建新增的文件不会自动过去)。 minimal这类压制型预设(personacomplete/ 关闭运行时上下文)下,本插件的注入默认停用(跟随预设的设计意图),提示词与技能也因官方那两行没挂而缺席 —— 兼容页逐列标出,同一页的「注入」块可以按域强制打开。- 关掉「技能」「提示词」的勾选 = 真的不再注入:这两项在标准类预设下由宿主自己送(插件让位),所以取消勾选会连宿主那份一起停掉(
skill-catalog/agent-instructions的消息在这一步不再放行)。其余三项(记忆 / MCP / 子智能体)宿主本来就不送,勾选完全生效。 - 注入长什么样:每个域一条
<system-reminder>,开头是## 标题+ 加粗的一句动作(在哪个决策点该想起它)+ 工具名 / 触发条件,之后才是正文;正文里的</system-reminder>会被转义(你写的内容不能把框架提前关掉)。每条末尾一句「本份…取代本次会话中更早注入的同类…」——注入只在内容变化时重发,旧那份还留在上下文里,所以要写明以哪份为准。写法逐条对照 Claude Code 与 Codex CLI 的官方注入。
数据落点
| 内容 | 位置 |
|---|---|
| MCP 定义 | ~/.dsh/cordis.patch.yml(插件只写它;改前自动备份到 hub 的 backups/) |
| 技能策略 / 自定义目录 | ~/.dsh/tool-management/skills-state.json |
| 技能 / 记忆 / 人设 / 预设 | ~/.dsh/tool-management/{skills,memories,subagents,prompts}/ |
| 子智能体启停 | ~/.dsh/tool-management/subagents-index.json |
| 回收站 | ~/.dsh/tool-management/trash/{skills,subagents,prompts,scenes}-trash/ |
| 归档账本 / 保留期 | ~/.dsh/tool-management/history-*.json |
| 记忆索引 / 场景 / 档案 | ~/.dsh/tool-management/memories-index.json |
| MCP 侧车(停用表 / 已知工具 / 备注 / 设置) | ~/.dsh/tool-management/mcp-*.json |
| 注入设置(五个域开关 / 压制型预设口径) | ~/.dsh/tool-management/inject-settings.json |
| 运行日志 / patch 备份 | ~/.dsh/tool-management/tool-management.log · backups/ |
插件安装目录里不存用户数据(dsh plugin update 会整体替换该目录)。
配置与安全
| 字段 | 说明 |
|---|---|
token | 访问令牌。设了之后所有写操作 + 明文密钥都要求 x-dsh-token;不设时明文接口一律关闭。也是 curl / 局域网的逃生门。 |
maxBodyBytes | 请求体上限,默认 88 MiB。 |
- 浏览器:读写走 cookie,不需要 token;但明文密钥(显示密钥 / 导出)要令牌。
- curl / 脚本:带
x-dsh-token,或带浏览器 cookie。 - HTTP 状态码口径:除安全栅栏的 401/403 外,令牌缺失、业务失败等一律 HTTP 200 +
{ ok: false, error }—— 脚本分流请以body.ok为准,不要按状态码。 - 栅栏的降级面:宿主缺
connection服务时,栅栏退到「Host 回环 + 同源」判定(没有浏览器 cookie 可验),本机任意进程伪造Host: localhost即可调用写 op —— 把端口转发到局域网/公网的场景务必配令牌,它是这条降级面上的最后一道门。 dir-list的暴露面:「选择文件夹」弹窗靠它逐级列目录,因此通过栅栏/令牌的调用方可列出任意绝对路径的目录(只读)。这是功能性设计,不是漏洞;但请勿把端口暴露给不可信网络。- 端口转发到公网:建议配 token——防陌生人注入 MCP 命令(等同远程执行)与窃取密钥。
常见问题
| 现象 | 解决 |
|---|---|
| 装完没有页面 | 硬刷新;不行重启 DSH。 |
| 重复 MCP 页签 | 删 cordis.patch.yml 里的旧 loader 行后重启。 |
| 改坏配置 DSH 起不来 | 取最近的 .bak-<时间戳> 恢复。 |
| 升级 DSH 后动作不可用 | 设置 → 工具 → 兼容 看原因;doctor.mjs → host-deps.mjs --fix。 |
approval=never 还要确认吗 | 不弹卡,直接放行并记日志;想问回来切回「工作区内修改」。 |
subagent_manager_run 报 provider 不可用 | 对应 provider 没注册:spawn(默认)/ fork(inherit)分别挂 @deepseek-ai/dsh-subagent-spawn-in-process / -fork-in-process 后重启。 |
场景绑了 A 人设,官方 subagent 还跑别的 | 官方那两个是宿主的工具,本插件管不到它们的可见性;插件会把分界写进上下文(贴合人设的一律走 subagent_manager_run,官方只在没人设贴合或要后台跑时用),inherit 也已对齐 fork 的继承能力。 |
开发
npm install
npm run build # tsc + 同步客户端
npm test # 构建 + i18n + 冒烟测试(装配与渲染不抛错)
npm run check:i18n # 词典自检
npm run doctor # 宿主兼容体检
lib/ 不入版本库,克隆后先 npm run build。改完重启 dsh web 才生效。运行时依赖仅 fflate;@deepseek-ai/* 一律用宿主那份。
许可证
MIT
Compatibility
Versions
| Latest version | Published | Size |
|---|---|---|
| 0.1.1 | — | — |
| 0.1.2 | — | — |
| 0.1.3 | — | — |
| 0.2.0 | — | — |
| 0.5.0 | — | — |
| 0.5.1 | — | — |
| 0.6.0 | — | — |
| 0.7.0 | — | — |
| 0.8.5 | — | — |
| 0.9.0 | — | — |
| 0.8.0 | — | — |
| 0.9.1 | — | — |
| 0.14.0 | — | — |
| 0.10.0 | — | — |
| 0.11.0 | — | — |
| 0.12.0 | — | — |
| 0.12.1 | — | — |
| 0.13.0 | — | — |
| 0.19.0 | — | — |
| 0.1.0 | — | — |
Comments
Loading…
Similar plugins
by functy23
DeepSeek Harness 的 MCP 服务与 Skills 管理器:面板里增删改 MCP 行、扫描导入其他 Agent 配置、管理 Skills(DSH Web 插件)
★ 30
↓ 248/wk
MIT
TypeScript
Oct 6, 2026
dsh plugin --profile web add dsh-mcp-studioby Max-Null
Skill and MCP management center for DeepSeek Harness: browse and toggle user/project skills, add/edit/remove MCP servers hot without restart, with live per-session status in the sidebar.
★ 1
↓ 191/wk
MIT
TypeScript
Oct 25, 2026
dsh plugin --profile web add @max-null/dsh-skill-mcp-centerby MikotoMyWife
Lazy-loading MCP tools for DeepSeek Harness (DSH): one loader tool per multi-tool MCP server, per-agent tool masking, description presets
★ 0
MIT
TypeScript
Oct 8, 2026
dsh plugin --profile web add dsh-mcp-loaderManage MCP servers and skills in DeepSeek Harness, and control which tools enter the next prompt.
★ 2
MIT
JavaScript
dsh plugin --profile web add @jidekaixin2dian/dsh-toolgateby why913
DeepSeek Harness(dsh)的 MCP / Skill / 记忆管理工具:写入前先连接自检,连不上不写;从 Claude Code / Codex 一键迁移;可装成 dsh 插件,在 Web 里用 /mcp 命令和卡片操作。
★ 5
↓ 18/wk
MIT
JavaScript
Aug 17, 2026
dsh plugin --profile web add @why913/dshxby 6pofx
DSH(DeepSeek Harness)技能与 MCP 管理控制台插件:按来源分级浏览全部已加载技能,独立开关模型/用户调用,创建/编辑/删除技能(可恢复回收站),从 GitHub 多选批量安装;增删改 MCP 服务器、状态监控与连接测试。Management console for DeepSeek Harness (dsh): grouped skill browsing, model/user invocation toggles, GitHub batch install, recoverable trash, and MCP server management.
★ 1
MIT
TypeScript
Oct 19, 2026
dsh plugin --profile web add dsh-tool-explorer






