dsh-purge
YuJunZhiXue/dsh-purge在设置页编辑 prompt-inject.md、管理 AGENTS.md 或 CLAUDE.md 规则集、检查插件更新,并对本机包做可回滚的应用或还原。
以可视化菜单查看和管理 Agent 的工具与技能,按常驻、按需、禁用三档控制能力暴露;支持按需检索和使用,减少上下文占用。
dsh-capability-menu
统一管理 DeepSeek Harness 工具与技能,高效检索、按需调用,节省上下文
简体中文 · English
ctx.capability。Capability 是本插件引入的上位概念:Tool / Skill 是不同类型的 capability。
kind · 对 Agent 提供 · action · 备注 tool · 执行一个动作(MCP 工具或内置原生工具) · execute · 由 ctx.tools 索引 skill · 某类任务的方法/流程/知识 · load · 由 ctx.skills 索引
模型获得两个元工具:
工具 · 作用 · 对应 entry meta_search · 搜索当前会话可用的按需能力;列表返回匹配总数、已返回数及是否截断,详情返回说明和工具参数 schema · @daweifu/capability-menu/search meta_invoke · 统一执行面:Tool 真执行(走完整 ctx.tools 管线)+ Skill 加载;force: true 可重载已更新的 Skill · @daweifu/capability-menu/invoke
安装后,在「设置」导航中选择「能力菜单」,即可管理 Tools 和 Skills。
操作 · 用法 更改档位 · 点击能力旁的圆点;也可以点击顶部档位计数,批量切换该组能力 查找能力 · 使用页签下方的过滤框搜索名称或分组;支持正则表达式,不区分大小写 查看能力详情 · 点击 Tool 查看定义;点击 Skill 展开文件列表并预览文件,内容按 Markdown 渲染 注册能力 · 点击右上角「注册能力」,添加 MCP 服务器或 Skill 目录;Skill 支持本机目录或公开 GitHub 链接 编辑或移除 · 在 Tools 的服务器分组或 Skills 的技能项中点击「编辑」 查看规则和按需目录 · 点击页头右侧的「策略与目录」,查看生效规则及按需能力摘要;可在按需检索目录中调整描述上限 编辑检索描述 · 将 Tool 或 Skill 设为「按需」后,点击旁边的「检索描述」,在来源描述的简短版本上修改
备注:
mcp__服务器名__ 前缀;悬停可看全名,检索和调用仍用完整 ID。SKILL.md)、指定分支根目录 .../tree/{branch} 或其下的技能目录 .../tree/{branch}/{skill-directory};也支持本机目录。导入需在运行 dsh 的机器上安装 Git;插件会校验 SKILL.md,只复制所选目录。前置:Node.js 与 dsh CLI。从 npm 安装无需单独安装 pnpm;从源码安装需要 pnpm。
依赖范围接受 DSH 0.2.x 稳定版及 0.2.1-rc.3 起的同版本预发布版;当前验证版本为 0.2.1-rc.3。npm 暂无 DSH 0.2.0 稳定版可供实测。
dsh plugin --profile web add @daweifu/capability-menugit clone https://github.com/PKUfudawei/dsh-capability-menu.git
cd dsh-capability-menu
pnpm install
dsh plugin --profile web add .cd "${DSH_HOME:-$HOME/.dsh}/profiles/web" && pnpm list @daweifu/capability-menu && dsh --profile web --dump-config | grep -m1 '== @daweifu/capability-menu'dsh plugin --profile web remove @daweifu/capability-menu这一章对应能力菜单中的「策略与目录」弹窗。
所有能力(Tool 与 Skill)按 暴露程度(模型在上下文中看到什么)与 执行方式 分为三档:
档位 · 能力 · 模型能看到什么 · 如何找到 · 如何使用 常驻 · tool · 工具定义始终随请求提供 · 无需查找 · 直接调用;运行时经过完整 ctx.tools 管线 · skill · 名称和简介显示在 ` 中 · 无需查找 · skill 工具按需加载正文 **按需** · tool · 不随请求提供工具定义 · 用 meta_search 搜索候选项 · 按精确 ID 查看参数后,用 meta_invoke 调用 · skill · 不显示在 中 · 用 meta_search 搜索 · 用 meta_invoke 加载 SKILL.md **禁用** · tool · 不随请求提供工具定义 · meta_search 中不可见 · 调用会被拒绝 · skill · 不显示在 中 · meta_search` 中不可见 · 加载会被拒绝
适用范围与例外:
built-in 分组。请勿将 MCP 服务器命名为 built-in,以免与该分组冲突。meta_search 和 meta_invoke 默认常驻,不能在菜单中禁用。DSH Code Mode 的入口 run_code 不进入本插件的目录或菜单;手写通配规则仍可能匹配它,请勿将其设为按需或禁用。meta_search 找 ID、查看参数 schema,再调用。弹窗显示的是当前生效规则,由手写规则和菜单选择合成,并非另一份 YAML 文件。手写规则位于 capability-menu-policy entry 的 config 下。以下是配置片段;完整安装补丁见 cordis.patch.yml。
${DSH_HOME:-~/.dsh}/cordis.patch.yml;Profile 也可在自己的 patch 中覆盖该 entry。stateFile;检索描述和描述上限也保存在这里。这些写入不会触发 DSH 配置重载。手写规则仍是基础;界面选择覆盖同一能力的精确规则,禁用通配规则仍优先。stateFile 默认在 ${DSH_HOME:-~/.dsh}/capability-menu-policy.json(默认 patch 的同目录),各 Profile 共用;需要隔离时,在 policy 和 registry 两个 entry 中指定同一个 stateFile。要清除界面选择,停止 DSH 后删除状态文件;原有 patch 规则仍会生效。config:
tools:
on-demand: # 按需
- 'mcp__example__*' # 某个 MCP 服务器下的工具
disabled: # 禁用
- 'mcp__secret__*'
skills:
on-demand: # 按需
- example_skill # 未列出的能力默认常驻通常只需设置 tools 和 skills。文件路径与防抖等可选项使用默认值即可;完整参数见 policy 配置 和 registry 配置。
规则优先级: 按序匹配;禁用优先。在常驻与按需之间,精确规则优先于通配;同为精确或同为通配时,常驻优先。未命中任何规则则常驻。
优先级 · 规则 · 示例 1 · disabled 精确或通配 · disabled: [forbidden_skill, 'mcp__secret__*'] 2 · resident 精确 · resident: [bash] 3 · on-demand 精确 · on-demand: [example_skill] 4 · resident 通配 · resident: ['mcp__gongfeng__*'] 5 · on-demand 通配 · on-demand: ['mcp__*'] 默认 · 未命中任何规则 · —
能力菜单点击档位会写入精确规则。若更高优先级规则覆盖了所选档位,界面会提示「分类未生效」。
meta_search 是 Agent 检索按需 Tool 和 Skill 的唯一入口。「策略与目录 → 按需检索目录」直接显示同一内存索引中的按需能力摘要,不生成单独的 YAML 文件。Agent 的检索结果还会按当前会话的可用范围过滤。
summaryMaxChars 个字符(默认 320,截断时优先保留完整词句);Skill 描述无有效内容时使用 whenToUse。meta_search 列表与关键词匹配均使用这段摘要。自定义后改用保存的文字,不改变来源定义或精确详情。「还原」仅重置输入框,仍需「保存」。stateFile,优先于 patch 中的 summaryMaxChars;降低上限前需先缩短超限的自定义描述。meta_search({query}) 查找匹配的候选项,再用 meta_search({id, kind}) 查看完整参数 schema,最后用 meta_invoke({id, kind, args}) 调用或加载。不知道关键词时可用 meta_search({}) 查看前几项概览。单次默认最多返回 20 项,可用 max_results 调整至 100 项;若结果被截断,请缩小查询范围。Skill 须先注册到 ctx.skills;若要重新加载会话中已读取的 Skill,传 force: true。本项目遵循 Apache License 2.0。