dshbase

Plugin directory / Developer / dsh-plugin-tool-management

dsh-plugin-tool-management

Unverified ouli-1242

3 contributors Builds on 12 official DSH packages

View on GitHub ↗ ← Back to plugin directory

36Stars
0Forks
0Open issues
—Language
—Last push
Cross-platformPlatform

What it does

DSH 插件:一个设置面板,统一管理 MCP 服务器、技能、场景、记忆、子智能体人格、AGENTS.md 预设与归档会话——一个场景即可切换整个环境,模型也能帮你驱动这一切。 | DSH plugin: one settings panel managing MCP servers, skills, scenes, memories, subagent personas, AGENTS.md presets and archived sessions — one scene can switch the environment, and the model can help drive it all too.

Our take

No short evidence report

There is no checkable per-level test record on this page. Stars, the catalog test field, a web-only flag, and whether the plugin needs an external account or service are not shown here as a pass or a failure. The catalog badge stays as published.

“Unverified” means our automated CI has not yet installed this plugin. Feature descriptions and version compatibility are the author’s claims. This is not a security audit and not an endorsement of third-party code.

Plugin author? Get the “Verified” label — submit your own evidence (screenshots, logs, or a short demo) and we'll review and flip the badge.

Submit verification evidence ↗

README

dsh-plugin-tool-management

dsh-plugin-tool-management

npm version
License
Node
GitHub

DSH Market
awesome-dsh-plugin
dshfind
0xsline

简体中文 · English · Changelog · 版本更新概要

DeepSeek Harness 的 MCP、技能、场景、记忆、子智能体、提示词与归档会话管理插件。八个页签:场景 / MCP / 技能 / 子智能体 / 提示词 / 记忆 / 会话 / 兼容。

dsh plugin --profile web add dsh-plugin-tool-management@latest      # web 版
dsh plugin --profile desktop add dsh-plugin-tool-management@latest  # 桌面版

装完 web 版硬刷新浏览器(Cmd/Ctrl+Shift+R),桌面版重启应用,设置 → 工具。插件只写自己的文件,不改技能源文件;重启与升级后配置都在。


演示视频

画面里每一个界面都是真机截图,没有重画的 UI,也没有伪造控件。

背景音乐:Kevin MacLeod「Limit 70」,CC BY 4.0。


截图

场景 MCP
场景 MCP
技能 子智能体
技能 子智能体
提示词 记忆
提示词 记忆
会话 兼容
会话 兼容

核心亮点

一句话:把「工作 / 写作 / 编程」各配成一套场景,点一下整套切换;插件管的东西,模型都看得见。

亮点 说明
一键换场景 每个场景各配一套 MCP / 技能 / 人设 / 记忆,进入时整套切换、退出时还原;模型也能按你说的切
不离开对话就能管 对话里打 / 出「工具」段,启停各域条目,点一下就生效
记忆自动送到模型眼前 每个场景下写几段 .md 就是它的资料库,正文自动进上下文
给 MCP 服务器写备注 写进备注的话模型每轮都看得到,会照做
单个工具也能关 一台服务器里可以只停某个工具,模型看不见也调不到
技能状况一眼看穿 哪份在生效标「首选」,被同名覆盖的标出来源
子智能体 = 一个文件一个角色 写一份角色说明就能派活;跑完只回结果、不占你的会话记录
提示词备好几套 AGENTS.md 可以存多份、一键切换;场景可以各自绑一份,也可以选「无」(不绑)
会话不再丢 归档按项目分组、能搜、能批量恢复;Claude Code / Cursor / Codex 的记录能导进来
模型一定看得见 六个域各注入一条上下文,内容没变不重发
锁住就不怕手滑 场景可以上锁:五个域的增删改整体只读
删了能找回 技能 / 记忆 / 人设 / 提示词 / 场景的删除都进回收站(会话永久删除除外);可勾选批量永久删除,也可设保留期让它自动清(默认永久保留)
安全、不添乱 只写自己的文件;密钥默认打码、看明文要令牌

快速开始

前置:DSH 已安装(dsh web 可运行),Node.js ≥ 18。命令按端选:--profile web 装 web 版,--profile desktop 装桌面版。桌面版的 profile 由 DSH Desktop 自己初始化 —— 先打开过一次应用,执行命令前把它完全退出。

dsh plugin --profile web add dsh-plugin-tool-management@latest         # web 版 · 安装 / 更新
dsh plugin --profile web remove dsh-plugin-tool-management             # web 版 · 卸载
dsh plugin --profile desktop add dsh-plugin-tool-management@latest     # 桌面版 · 安装 / 更新
dsh plugin --profile desktop remove dsh-plugin-tool-management         # 桌面版 · 卸载

装完 web 版硬刷新浏览器、桌面版重启应用,设置 → 工具 出现八栏即成功。界面改动即时生效,宿主侧改动需重启(web 重启 dsh web,桌面重启桌面应用)。

也可以让模型代劳:

安装 dsh-plugin-tool-management 插件:
dsh plugin --profile web add dsh-plugin-tool-management@latest
装完提醒我硬刷新浏览器。

桌面版把 web 换成 desktop,最后一句改成「装完提醒我重启桌面应用」。

功能

斜杠命令(在对话里直接管)

  • 打 / 出「工具」段:六行 —— 场景 / 技能 / MCP 服务器 / 子智能体 / 提示词 / 记忆。点一行进这一域,再点一条直接生效;点完菜单不关。
  • 状态看得见:启用项绿勾、停用项空框,右侧灰字是条目备注,域行右侧给当前态摘要。
  • 条目多也不挡路:每域全量列出、面板自己滚;技能按来源目录分组、记忆按场景分组,已启用的排前面。
  • 提示词两类都在:全局那组选哪一份写进 AGENTS.md(单选),快捷那组是启停,点一行把存好的话贴进输入框、不自动发送。
  • 只放可逆动作:进场景与各类启停;增删改、导入导出、改配置仍各归各页。
  • 走宿主官方通道:用 DSH 的输入触发器接口注册,不 patch 官方包。

场景与记忆

  • 场景 = 分组,记忆 = .md 文件:memories/<场景>/<名>.md,整篇正文自动注入上下文,文件名支持中文。
  • 「启用」与「进入」是两件事:启用决定注入按哪个场景走(单选,全关 = 只注入「全局」与 _shared);进入才按档案整套切换 MCP / 技能 / 人设,并把绑定的提示词写进 AGENTS.md。
  • 场景档案:每个场景搭配 MCP 工具集与场景级备注 / 技能集 / 子智能体 / 快捷提示词 / 模型工具表方案,外加一份绑定的全局提示词预设;段内勾的启用、没勾的停用,整段没建 = 该域全部停用(快捷提示词例外:没绑 = 进入时不碰),退出时按进场景前的快照还原。
  • 每格另给一档「无」:这一域本场景不碰(提示词那格 = 进出都保持原样,快捷提示词 = 一条都不启用)。它区别于「保持现状」——那一档才是真的不动。
  • 场景锁定:锁定后 MCP / 技能 / 子智能体 / 记忆 / 提示词五域的增删改整体只读。
  • 删除场景 = 连记忆一起删:场景记录、档案与全部记忆进同一条回收站条目,恢复时整条放回;使用中的场景拒绝删除。
  • 导入导出:.md / .zip(目录名 = 场景,bundle 带附件),同名跳过绝不覆盖;注入预算默认 128 KiB,放不下的跳过并列出清单。

子智能体

  • 一个文件一个人设:subagents/<人设>.md,frontmatter 全可选;output: 一行一条写"产出必须长什么样"。正文原样用在 # Persona: <名字> 标题下,人设文件本身不用改。
  • 委派:subagent_manager_run 带人设运行、只回最终结果、不进 History;默认新起独立会话,inherit: true 继承本次会话已完成的轮次。
  • 启停与目录:停用的人设不注入、模型不可见(文件不动);新建 / 导入 / 恢复默认停用。人设目录只列名字 + 描述。
  • 工具限制按 Agent 预设:每个预设一份白 / 黑名单(互斥),候选只列该预设自己的工具,分「插件工具 / 官方工具 / 其他工具」三段。
  • 模型与来源:都从宿主 LLM 目录里选(选定来源后模型只列该来源的);留空 = 继承主会话;思考强度档位由所选模型声明。

MCP 服务

  • 增删改查、即改即生效:写入 cordis.patch.yml,改前自动备份。级别分「全局 / 应用级」,新增默认全局。
  • 工具级开关:单个工具可独立停用(模型看不见也调不到),整台支持批量。
  • 停着也能看清单:没在跑的服务器仍显示上次见过的工具名与描述(标「上次运行时」);从没跑过的可以一键启动读取。
  • 备注与密钥:每台服务器可写一句给模型的提示,随状态段一起注入;凭据默认整值打码($VAR、!!js 这类间接引用不动),看明文要令牌。
  • 迁移与备份:跨项目级 / 全局迁移失败自动回滚;支持 JSON 导出导入。

技能

  • 来源一览:项目级 / DSH / Agents / Codex / Claude / 自定义目录,按来源分组。
  • 两组权限相反:默认来源的技能可删可停;外部目录可以停用或移除,但里面的技能文件只读。
  • 移除 ≠ 停用:移除 = 连目录都不扫(文件零改动,可恢复);停用 = 仍列出但不可调用。
  • 同名谁在生效:生效的那份标「首选」,被覆盖的标出来源。
  • 自定义目录 / ZIP 导入导出 / 回收站。

提示词预设

  • 多套 ~/.dsh/AGENTS.md 基线一键应用(下一轮对话生效),保留 5 代备份;每条预设可写一句"这份是干什么的",只存在插件侧、不进 AGENTS.md;「最近一次应用的是哪份」也答得出来(手改过也认得出源)。
  • 生效与否就是卡片左边那颗开关:点亮 = 把这一份写进 AGENTS.md;再点一下 = 取消应用。点之前弹窗会说清是哪种(删文件时按钮变红),点完还给一条回执。
  • 「取消应用」一步回到链起点,不是只退一步:这一串应用 / 取消往复开始之前是什么样就恢复成什么样(起点没有 AGENTS.md 就把文件删掉);中途每一份内容都留在 __last-applied__/AGENTS.md.bak-*(保留 5 代),随时能再应用回来。
  • 两类不能直接删:被场景绑定的、以及当前应用的那一份(后者先点开关「取消应用」就能删);首次打开时自动生成的那份没「应用」过,可以直接删。删除一律进回收站。
  • 快捷提示词(同页第二段):存一段常用的话,/ 里点一下就原样贴进输入框;场景可以绑定一组(进入只启用勾的那几条、退出按进场景前还原,也可选「无」)。

历史会话

  • 按项目分组、搜索、批量恢复 / 永久删除、保留期自动清理;工作区登记被删后可一键重新登记。
  • 导入 Claude Code / Cursor / Codex / 任意文本(工作区可挑、可浏览、可给路径)。
  • 导出 Markdown / JSONL,分三档累进:仅正文 → 正文 + 工具 → 正文 + 工具 + 思考。导出是转录,不是备份 —— 要留全量请用「归档」。

宿主兼容

  • 「兼容」页:宿主版本、能力可用数、每个动作走原生 / 适配 / 不可用、降级项与原因;三个写入口:访问令牌、注入设置、模型工具表。
  • 命令行:node scripts/doctor.mjs(体检)、node scripts/host-deps.mjs --fix(依赖对齐)。
  • 压制型预设(minimal 这类)下本插件的注入默认停用,可在「兼容」页按域强制打开。
  • 关掉「技能」「提示词」的勾选 = 连宿主那份一起停(这两域在标准预设下由官方送);其余三域勾选完全生效。
  • 注入长什么样:每个域一条 <system-reminder>,# 板块标题 + 正文 + 一句"以本份为准";正文里的 </system-reminder> 会被转义。

数据落点

内容 位置
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/<域>-trash/(每类一个目录)
归档账本 / 保留期 ~/.dsh/tool-management/history-*.json
回收站保留期 ~/.dsh/tool-management/trash-retention.json(0 = 永久保留)
记忆索引 / 场景 / 档案 ~/.dsh/tool-management/memories-index.json
MCP 侧车(停用表 / 已知工具 / 备注 / 设置) ~/.dsh/tool-management/mcp-*.json
注入设置(六个域开关) ~/.dsh/tool-management/inject-settings.json
模型工具表(关掉的工具 + 存下的方案) ~/.dsh/tool-management/tool-table.json
场景页界面设置(进场景前弹不弹预览卡) ~/.dsh/tool-management/scene-settings.json
运行日志 / patch 备份 ~/.dsh/tool-management/tool-management.log · backups/

插件安装目录里不存用户数据(dsh plugin update 会整体替换该目录)。备份按每份 patch 文件各留 5 份(全局与每个 profile 各自计),一次批量操作就可能把某层的 5 个槽位吃掉。

六类回收站各占 trash/ 下一个目录:{skills,memories,subagents,prompts,scenes,quick-prompts}-trash/。记忆那一类 2026-10-10 起从 hub 根并入 trash/,老数据由启动迁移自动搬过去。

配置与安全

字段 说明
token 访问令牌。设了之后所有写操作 + 明文密钥都要求 x-dsh-token;不设时明文接口一律关闭。也可改用环境变量 DSH_PLUGIN_TOOL_MANAGEMENT_TOKEN。
tokenDisabled true = 令牌保留在配置里但当前不生效(兼容页「关闭保护」写的就是这一行)。写操作不再要求令牌,明文查看仍然要。
maxBodyBytes 请求体上限,默认 88 MiB。

磁盘上的明文(必读):打码只发生在界面展示;MCP 的 env / headers 与插件自己的 token 在 cordis.patch.yml(及各 profile 副本)里始终明文,改配置前整份文件会备份进 ~/.dsh/tool-management/backups/(不加密、不轮转、卸载也不回收)—— 一份密钥最多有 5 ×(含它的 patch 文件数)+ 1 份明文副本。令牌门禁管不到磁盘读取,防线是操作系统的文件权限。清理入口:设置 → 工具 → 兼容 → 「清理旧备份」。

  • 浏览器:读写走 cookie,不需要令牌;明文密钥(显示密钥 / 导出)要令牌。令牌在「兼容」页的「访问令牌」块管理:本次启动填一次管到 DSH 退出;写进配置文件要重启生效。
  • 销毁方向一律要当场再输一次当前令牌(关闭保护 / 修改 / 删除)—— 本次启动解锁过不算。
  • curl / 脚本:带 x-dsh-token,或带浏览器 cookie。
  • HTTP 状态码:除安全栅栏的 401 / 403 外,一律 HTTP 200 + { ok: false, error } —— 脚本分流请以 body.ok 为准。
  • 端口转发:宿主缺 connection 服务时栅栏退到「Host 回环 + 同源」判定,本机进程伪造 Host: localhost 即可调用写 op。转发到局域网 / 公网的场景务必配令牌 —— 陌生人注入 MCP 命令等同远程执行;「选择文件夹」弹窗用的 dir-list 能列出任意绝对路径(只读),同一条前提。
  • 服务器名避开 __(起名建议):工具全名是 mcp__<服务器名>__<工具名>,服务器名里再有 __ 会让它切不唯一,界面上的勾选可能落不到停用表里那条键上。本轮不收紧校验,改为在兼容页出一条提示;起名时避开 __ 就没有这个问题。

常见问题

现象 解决
装完没有页面 硬刷新;不行重启 DSH。
重复 MCP 页签 删 cordis.patch.yml 里的旧 loader 行后重启。
改坏配置 DSH 起不来 从 ~/.dsh/tool-management/backups/ 取最近的 cordis.patch.yml.<层级>.bak-<时间戳> 覆盖回去(每份 patch 各留 5 份)。
升级 DSH 后动作不可用 设置 → 工具 → 兼容 看原因;doctor.mjs → host-deps.mjs --fix。
模型调不到某条工具 「兼容」页的模型工具表看它是不是被关了(出厂默认关着 15 条);面板和脚本不受影响。
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,官方只在没有人设贴合或要后台跑时用。

开发

npm install
npm run build        # tsc + 同步客户端
npm test             # 构建 + i18n + 契约测试(纯函数不变量与宿主契约)
npm run check:i18n   # 词典自检
npm run doctor       # 宿主兼容体检

lib/ 不入版本库,克隆后先 npm run build。改完重启 dsh web 才生效。运行时依赖:fflate(导出打包)、js-yaml(写宿主补丁前的解析校验,惰性加载);@deepseek-ai/* 一律用宿主那份。

部署注意:npm run build 的 profile 镜像清单不含 node_modules,本地联调时新增的运行时依赖(如 js-yaml)要么在 profile 侧装一份,要么接受"补丁校验跳过并上报"的降级。npm install 装到 profile 的正式安装不受影响。

许可证

MIT

Install

🧩 Let your agent install it (recommended)

Install the catalog once, then DeepSeek Harness can find and install any plugin from this site automatically:

dsh plugin add dshbase-catalog

Then say "install dsh-plugin-tool-management for me" — your agent finds it in the directory and installs it. Docs: dshbase-catalog · verified packs.

This plugin is GitHub source (not published to npm) — install it straight from the repo:

Web profile:

dsh plugin --profile web add github:ouli-1242/dsh-plugin-tool-management

Headless (CLI) profile:

dsh plugin --profile headless add github:ouli-1242/dsh-plugin-tool-management

Test report

No short evidence report

There is no checkable per-level test record on this page. Stars, the catalog test field, a web-only flag, and whether the plugin needs an external account or service are not shown here as a pass or a failure. The catalog badge stays as published.

Security: not yet scanned — our daily static scan will cover it shortly.

Share this badge

More in Developer

Browse all 26834 plugins →