鱼皮AI导航
鱼皮AI导航
  • 主页
  • 社区
  • AI工具
  • AI知识库
  • AI提示词
  • MCP
  • Skills
  • AI学习资源
  • AI资讯
  • GitHub开源
登录/注册

dsh-capability-menu

解决海量 MCP 工具/技能塞满请求、挤占上下文的问题:统一编目能力(ctx.capability),以常驻/按需/禁用三档控制暴露与执行,低频能力按需经 meta_search/meta_invoke 检索执行,并附可视化「能力菜单」设置页。

工具能力
访问 GitHub
文档README

dsh-capability-menu

为 DeepSeek Harness 统一管理 Tools 和 Skills 的暴露水平(上下文占用大小)与执行方式

简体中文 · English


目录

  • 能力总览
  • 快速安装
  • 暴露策略
  • 配置文件

能力总览

dsh-capability-menu 是 DeepSeek Harness 的一个 Cordis 插件,为海量 tools / skills(MCP 工具与内置原生工具)建立统一能力目录(ctx.capability),并以常驻 / 按需 / 禁用三档管理暴露程度和执行方式——随时调整 agent 的能力边界,避免海量 tools/skills 塞满一次请求、节省 token 和上下文。调整即时生效、无需重启,纯插件机制组合进 Harness 运行时,不改上游源码。不挂载本插件(policy)时一切照旧、全量可见;挂载但未配置任何规则时,所有能力默认常驻。

能力模型

Capability 是本插件引入的上位概念:Tool / Skill 是不同类型的 capability。

kind对 Agent 提供action备注
tool执行一个动作(MCP 工具或内置原生工具)execute由 ctx.tools 索引
skill某类任务的方法/流程/知识load由 ctx.skills 索引

模型获得两个元工具:

工具作用对应 entry
meta_search检索能力目录(Tool / Skill),list/detail 双模式@daweifu/capability-menu/search
meta_invoke统一执行面:Tool 真执行(走完整 ctx.tools 管线)+ Skill 加载@daweifu/capability-menu/invoke

能力管理

Tools 页 Skills 页

查看能力目录 · 三档策略配置 查看能力目录 · 按需能力目录

安装后,「设置 / 通用设置」下出现「能力管理」tab(位于「模型」与「插件」之间),用于可视化查看和调整暴露策略,改动即时生效、无需重启:

  • Tools / Skills 页签:顶部 Tab 栏为 Tools 与 Skills,右侧是各档数量统计和「查看能力目录」按钮。Tools 页按 server 分组、可折叠:MCP 工具挂在各自 server(gongfeng/km…)下;内置原生工具(来自 agent preset 的 bash/read/write/glob/grep…)统一挂在保留的「系统内置」组(server 键 built-in)。点击某行查看模型侧工具定义 name / description / parameters。
  • Skills 页签:内部再分「全局技能 / 项目技能」两个子页签(始终显示,空的一侧显示空态提示),顶部数量统计跟随当前子页签。点击技能行展开目录树,点文件预览 SKILL.md 等正文。
  • 三态圆点与循环切换:每个能力带一个分类圆点——实心 = 常驻、上半实心圆环 = 按需、圆环 + 斜杠(禁行标志)= 禁用;点击能力旁圆点或分类计数即可循环切换(内置原生工具与 MCP 工具同等可管),若被更高优先级规则(如通配)覆盖,界面会提示「分类未生效」。
  • 查看能力目录:点右上角按钮弹出只读弹层,含两份文件——「三档策略配置」是生效策略的语义化视图(默认全部能力常驻:tools.resident 每个 server 显示 *,例外只在 on-demand/disabled 里按 server → 工具名 分级列出;skills 无 server 维度,skills.resident 恒为 *),以及「按需能力目录」物化文件(catalogFile)的路径与内容;持久化入口仍是 profile 的 cordis.patch.yml。

快速安装

前置:已安装 Node.js 与 dsh CLI(dsh plugin 内部会转发给 pnpm)。

从 npm 安装(推荐)

单包同时提供服务端插件与前端「能力管理」tab,装完即可在「设置 / 通用设置」下看到:

▼
sh
复制代码
dsh plugin --profile web add @daweifu/capability-menu

从源码安装

▼
sh
复制代码
git clone https://github.com/PKUfudawei/dsh-capability-menu.git cd dsh-capability-menu pnpm install # prepare 脚本自动构建 lib/(服务端)与 lib/client.js(前端) dsh plugin --profile web add ./dsh-capability-menu

验证安装

▼
sh
复制代码
dsh --profile web --dump-config | grep -E 'capability-menu'
▼
text
复制代码
# == @daweifu/capability-menu - id: capability-menu-registry name: '@daweifu/capability-menu/registry' - id: capability-menu-search name: '@daweifu/capability-menu/search' - id: capability-menu-invoke name: '@daweifu/capability-menu/invoke' - id: capability-menu-policy name: '@daweifu/capability-menu/policy' - id: capability-menu name: '@daweifu/capability-menu'

卸载

▼
sh
复制代码
dsh plugin --profile web remove @daweifu/capability-menu

暴露策略

所有能力(Tool 与 Skill)按 暴露程度(模型在上下文中看到什么)与 执行方式 分为三档:

Tools / Skills 三档暴露与执行对照

档位能力暴露方式(模型视野)发现执行方式
常驻tool完整 schema 进 assembly.tools → 模型请求 tools payload,每步可见无需发现(已常驻)模型直接调用,运行时走完整 ctx.tools 管线
skill名字+描述进 <available_skills> 目录(正文不在目录)无需发现(已常驻)skill 工具按需加载正文(渐进加载)
按需tool不进 payload(零上下文成本)meta_search list / grep 检索物化目录 YAML(catalogFile)meta_invoke 执行(走 ctx.tools.execute,管线完整);或 detail 拿 schema 后直接调
skill不进 <available_skills> 目录meta_search 检索 / grep 检索物化目录 YAML(catalogFile)meta_invoke 加载 SKILL.md 正文(经 ctx.skills)
禁用tool不进 payloadmeta_search 不返回、目录 YAML 不写入meta_invoke 拒绝;模型幻觉直调也在 tools/pre-execute 被硬拒绝
skill不进 <available_skills> 目录meta_search 不返回、目录 YAML 不写入meta_invoke 拒绝;skill 工具在 tools/pre-execute 硬拒绝

覆盖与保留:

  • tool 档同时覆盖 mcp__ 编目工具与内置原生工具——原生工具统一以保留的 built-in server 归组,与 MCP 工具一样三档可管。请勿把真实 MCP server 命名为 built-in。
  • meta_search/meta_invoke 是本插件的控制面:恒常驻、不可被禁用(在规则里禁用它们会在启动时报错)。run_code 是 Code Mode 保留传输层:不进目录、不在「能力管理」出现,请勿为它配置三档规则。
  • 不建议把高频核心工具设为按需:按需的内置工具会退出模型常驻视野,使用时需要 meta_search → meta_invoke 两跳调用。

配置文件

规则写在 profile 的 cordis.patch.yml 里 capability-menu-policy 插件 entry 的 config 下(外层 - insert: / id / name 是 Cordis patch 的挂载样板,与规则无关):

▼
yaml
复制代码
config: tools: resident: - execute_cmd - get_session_context - search_kb - 'mcp__gongfeng__*' # 通配:该 server 下全部常驻 on-demand: - 'mcp__*' # 通配兜底 - 'server:km:*' # 按 server 前缀批量按需 disabled: - 'mcp__secret__*' # 禁用优先级最高,压过常驻 skills: resident: - debugging - coding on-demand: - legacy_skill # 显式按需(未列出即默认常驻) disabled: - forbidden_skill metaTools: - meta_search # 恒常驻,不可被禁用 - meta_invoke

配置键即档位英文词:resident(常驻)/ on-demand(按需)/ disabled(禁用)。

规则优先级(从上到下命中即停;同档内精确规则优先于通配):

优先级规则示例效果
1disabled 精确disabled: [forbidden_skill]最硬禁用,压过一切
2disabled 通配disabled: ['mcp__secret__*']整组禁用
3resident 精确resident: [bash]单个能力显式常驻
4on-demand 精确on-demand: [legacy_skill]单个能力显式按需(能力管理点击写入的就是这类)
5resident 通配resident: ['mcp__gongfeng__*']整组常驻
6on-demand 通配on-demand: ['mcp__*']兜底批量按需
默认未命中任何规则—常驻

要点:

  • 精确规则优先于通配(跨档也成立):例如存在 resident: ['mcp__gongfeng__*'] 时,在「能力管理」把某工具点成按需会写入一条精确 on-demand 规则并生效,不会被通配压回;若仍被更高优先级规则覆盖,界面提示「分类未生效」。

「能力管理」tab 的改动只写入运行时内存、不落盘;要持久化(随 profile 生效、可版本管理/批量声明),编辑 profile 的 cordis.patch.yml 即可——这就是持久化入口,无需额外的导入/导出按钮。

按需能力目录(catalogFile,唯一物化目录,grep 可检索)

On-demand 能力自动物化成一个 YAML 文件给模型检索:

  • 文件位置在 registry entry(capability-menu-registry) 的 config.catalogFile,默认 ~/.dsh/capability-catalog.yaml,置空禁用;工具/技能变更或分类调整后自动重写。没有任何按需能力时不注入目录指引,省上下文。
  • 技能必须已注册进 ctx.skills(SKILL.md 放用户/项目技能根或挂 customSkillDirs)才会自动出现;无独立手写输入清单。
  • 模型用 grep/read 浏览该文件(或调 meta_search)拿到条目的 id 与 kind,再调 meta_invoke(id, kind) 执行/加载。技能 id 即裸名(frontend-design),tool/skill 由 kind 区分。
▼
yaml
复制代码
# ~/.dsh/capability-catalog.yaml(自动生成;仅含 On-demand 能力, # Resident 已常驻、Disabled 不可发现,均不写入;列表以 `-` 每项一行的 block 序列写出) capabilities: - id: mcp__km__search kind: tool name: mcp__km__search description: 搜索知识库 server: km - id: legacy_skill kind: skill name: legacy_skill description: 处理旧工程的低频技能 whenToUse: 处理旧工程时使用

目录文件默认写在宿主 ~/.dsh,需要模型侧 bash/read 工具的沙箱能访问该路径;若沙箱隔离宿主目录,请把 catalogFile 显式配置到沙箱可见的路径。默认路径在多个 dsh 实例间共享(last-write-wins),多实例部署时请为每个实例配置独立的 catalogFile。

License

本项目遵循 Apache License 2.0。

工具能力

快捷安装

复制到终端去安装插件

dshplugin--profilewebaddgithub:PKUfudawei/dsh-capability-menu

温馨提示

装插件等于在本机跑第三方代码,权限与你相同,能读文件、用凭据、访问网络,工具审批管不到。请只装可信来源,并尽量锁定 commit。

站长:程序员鱼皮 老鱼简历 商务合作 增值电信业务经营许可证
2026 鱼皮AI导航 | 沪ICP备19026706号-6
站长:程序员鱼皮 老鱼简历 商务合作 增值电信业务经营许可证
2026 鱼皮AI导航 | 沪ICP备19026706号-6
🔥热门工具
朱雀AI检测朱雀AI检测
朱雀AI检测助手朱雀AI检测助手
LovartLovart
老鱼简历老鱼简历
WritePass官网WritePass官网
面多多面多多
CursorCursor
星月写作星月写作
零感AI零感AI
墨得问题墨得问题
dsh 插件推荐
dsh-live-canvas
在隔离的 iframe 沙箱中实时渲染 Agent 生成的 HTML、React (JSX/TSX)、Vue、SVG、Mermaid 和 Markdown,支持 SSE 热重载,并提供 DOM 点击检查器、并排视觉对比、响应式设备矩阵和一键 Vite ZIP 导出。
dsh-plugin-model-capability
DSH 网页端对话导航点 — 快速跳转用户消息。
dsh-firecrawl
通过 Firecrawl Cloud API 把 URL 抓成 LLM 可用 Markdown,或搜索网页并返回结果内容。
dsh-browser-use
Browser Use 云端桥接:通过 Browser Use API 让 dsh agent 执行真实网页任务,包括打开页面、点击、输入、填表和提取数据。
dsh-frecency
为 DeepSeek Harness 提供常驻索引 grep,以同名遮蔽内置 grep/glob 工具:重复内容检索命中按访问/修改 frecency 排序的内存索引,glob 在可用时对齐内置 ripgrep 语义、不可用时回退索引。