🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

能力开关 lifeopsgo/dsh-capability-toggle-plugin

DeepSeek Harness
lifeopsgo3 天前有提交已提供中文文档扫描:含敏感能力

在 DSH WebUI 中控制 agent 能力,并在运行时真正强制执行。

37.8/100
综合分
3
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/11/3 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

该插件未发布到 npm,按作者文档从 GitHub 源安装即可(静态检查只覆盖 npm 路径,不代表插件不可用)。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add lifeopsgo/dsh-capability-toggle-plugin
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · ui
装得上吗
本站已真实安装成功
非静态推断
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 3 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查需源码安装

仓库 package.json 标记 private,未发布到 npm,需从源码安装

展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✗npm 包dsh-capability-toggle-plugin(未发布到 npm,仅可源码安装)
✓Node 引擎要求 ^22.19.0 || >=24.0.0 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

源码安装时若 pnpm 拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑。

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/31 19:58:08

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件发起外部网络请求
查看扫描证据(共 14 处,展示前 14 条)
  • 读取本地文件
    lib/index.js:29
    source = readFileSync(dshHomePath("settings.yaml.imported"), "utf8");
  • 读取本地文件
    lib/index.js:38
    source = await readFile(dshHomePath("settings.yaml.imported"), "utf8");
  • 发起网络请求
    lib/index.js:1250
    return await center.request(session, {
  • 发起网络请求
    lib/client.js:15
    const res = await fetch(`${API}/state?session=${encodeURIComponent(session)}`, { headers: { accept: "application/json" } });
  • 发起网络请求
    lib/client.js:25
    const res = await fetch(`${API}/set`, {
  • 发起网络请求
    lib/client.js:42
    const res = await fetch(`${API}/set-many`, {
  • 发起网络请求
    lib/client.js:123
    const res = await fetch(`${API}/confirm/respond`, {
  • 发起网络请求
    src/client/api.ts:19
    const res = await fetch(`${API}/state?session=${encodeURIComponent(session)}`, {
  • 发起网络请求
    src/client/api.ts:36
    const res = await fetch(`${API}/set`, {
  • 发起网络请求
    src/client/api.ts:52
    const res = await fetch(`${API}/set-many`, {
  • 发起网络请求
    src/client/api.ts:126
    const res = await fetch(`${API}/confirm/respond`, {
  • 发起网络请求
    src/host/confirm.ts:238
    const outcome = await center.request(session, {
  • 读取本地文件
    src/host/legacy-migration.ts:34
    source = readFileSync(dshHomePath('settings.yaml.imported'), 'utf8')
  • 读取本地文件
    src/host/legacy-migration.ts:46
    source = await readFile(dshHomePath('settings.yaml.imported'), 'utf8')
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-agent@deepseek-ai/dsh-client-locale@deepseek-ai/dsh-client-ui-conversation@deepseek-ai/dsh-client-ui-input-trigger@deepseek-ai/dsh-config-editor@deepseek-ai/dsh-host-webserver@deepseek-ai/dsh-home-paths@deepseek-ai/dsh-scope@deepseek-ai/dsh-skill@deepseek-ai/dsh-system-prompt@deepseek-ai/dsh-tools
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

界面预览

1 张 · 点击查看大图

功能亮点

  • 会话、项目、全局三级控制
  • 运行时强制执行

灵活控制 mcp/skill/tool 等启用/禁用,支持会话、项目、全局级别控制。在 DSH WebUI 输入框里逐个开关智能体能力(技能、MCP、工具、提示词、审批、防护),可按会话、项目、全局设置。

README

由 DeepSeek 最新模型翻译生成
dsh-capability-toggle-plugin 在 DSH WebUI 中控制 agent 能力,并在运行时真正强制执行。 English · 简体中文 会话 · 项目 · 全局 —— 蓝色对勾 = 开,红色叉 = 关,虚线横杠 = 未设。 这是什么 一个 DeepSeek Harness(DSH)WebUI 插件,在输入栏旁增加能力开关。它可以在会话、项目或全局层级控制技能、MCP 服务器、工具、提示词注入、审批升权和安全守卫。 停用不是界面上的假过滤:能力会在模型下一步从可见能力面中消失,强行调用也会在执行时被拦截。 兼容的 DSH 版本 本版本面向 DSH 0.2.0-rc.1,全部 DSH peer 依赖均精确锁定到该 RC。Host 已迁移到 agent/created 生命周期、持久化 configEditor 写入和 Loader volatile 配置更新;每次写入都会重新协调全部仍存活的 agent binding。 | DSH 版本 | 状态 | 验证方式 | | 0.2.0-rc.1 | 支持 | Host 与 Client 类型检查、380 项自动化测试、生产构建、框架链接校验、组合 profile 检查和浏览器验证 | 本版本不声明兼容其他 DSH 版本。
展开完整文档(README 剩余 1 节)
dsh-capability-toggle-plugin

在 DSH WebUI 中控制 agent 能力,并在运行时真正强制执行。

English · 简体中文

会话 · 项目 · 全局 —— 蓝色对勾 = 开,红色叉 = 关,虚线横杠 = 未设。

这是什么

一个 DeepSeek Harness(DSH)WebUI 插件,在输入栏旁增加能力开关。它可以在会话、项目或全局层级控制技能、MCP 服务器、工具、提示词注入、审批升权和安全守卫。

停用不是界面上的假过滤:能力会在模型下一步从可见能力面中消失,强行调用也会在执行时被拦截。

兼容的 DSH 版本

本版本面向 DSH 0.2.0-rc.1,全部 DSH peer 依赖均精确锁定到该 RC。Host 已迁移到 agent/created 生命周期、持久化 configEditor 写入和 Loader volatile 配置更新;每次写入都会重新协调全部仍存活的 agent binding。

| DSH 版本 | 状态 | 验证方式 |
| 0.2.0-rc.1 | 支持 | Host 与 Client 类型检查、380 项自动化测试、生产构建、框架链接校验、组合 profile 检查和浏览器验证 |

本版本不声明兼容其他 DSH 版本。

快速开始

需要 Node.js ^22.19.0 或 ≥ 24.0.0(与 DSH 0.2.0-rc.1 相同)。

dsh plugin --profile web add github:lifeopsgo/dsh-capability-toggle-plugin#v2.0.1
dsh --profile web web

刷新页面,在 agent 空闲时点击输入栏 ➕ 旁边的开关按钮。若使用其他 profile,请替换 web。

升级或卸载

升级或降级:tag 换成 releases 页面上的任意版本
dsh plugin --profile web add github:lifeopsgo/dsh-capability-toggle-plugin#v2.0.1

卸载
dsh plugin --profile web remove dsh-capability-toggle-plugin

功能说明

三级生效模型

每项能力都有三个独立层级:

会话 › 项目 › 全局 › 默认(启用)

最近的明确设置优先。未设会向下一层跟随;三层都未设时保持启用。行尾徽标始终显示三级综合后的真实结果。

按钮只显示当前状态:点击在开 ↔ 关之间切换,点击右上角清除角标可回到未设。

能力分类

| Tab | 控制内容 |
| 技能 | 单个模型可调用技能,包含从会话工作区发现的项目级技能(.dsh/skills、.agents/skills) |
| MCP | MCP 服务器;展开行可查看成员工具 |
| 工具 | 单个模型可见工具及其指导段 |
| 提示词 | 经过安全筛选并探测实际存在性的提示词注入项 |
| 安全 | 审批升权和 5 个可选安全守卫 |

强制机制

所有机制只作用于当前 agent,不修改全局注册。

| 能力族 | 强制方式 |
| tool | 通过 ctx.tools.restrict({ deny }) 移除;强行调用被拒绝,tool:<name> 指导段同时被影子化移出提示词 |
| mcp | 成员工具通过 ctx.tools.restrict({ deny }) 移除;服务器的 mcp:<server> 指令段(即 ### MCP server: <名称> 块,含「先调 kb.recall」这类强制指令)被影子化移出提示词;共享资源调用(list_mcp_resources / list_mcp_resource_templates / read_mcp_resource)点名已停用服务器时被拒绝 |
| skill | 用同名 modelInvocable:false 运行时技能覆盖 |
| prompt | 用空文本覆盖,或通过 suppressRuntimeContext() 抑制 |
| approval | scoped 审批请求直接返回 rejected |
| guard | tools/pre-execute 对命中调用执行拦截或确认 |

安全控制

关闭审批升权后,该 agent 的所有审批请求都会被拒绝,但不会修改系统 /permission 设置。

安全守卫默认关闭,按需启用:

| 守卫 | 动作 |
| 只读模式 | 拦截文件写入、新建和编辑 |
| 保护密钥 | 拦截常见密钥文件与凭据访问 |
| 危险 shell | 高风险 shell 命令需确认 |
| 破坏性 git | 可能丢失历史或工作区内容的 git 命令需确认 |
| 外网出站 | 网络工具与外连 shell 操作需确认 |

用量统计

技能、MCP 服务与工具行会显示一个小徽章,标明本会话模型调用了多少次(「调用 7 次」)。计数在面板打开时于每轮结束后刷新,只存活于单个 agent 生命周期且不持久化——与安全守卫的「命中 N 次」徽章采用同一保留策略。

统计的是请求次数而非成功执行次数:被守卫拦截或转确认的调用同样计入,因为「模型想要用这个能力」本身就是值得看见的信号。守卫是被调用匹配而非被调用,因此沿用自己的徽章、不显示用量;提示词与审批行同样不显示。

面板偏好

面板标题旁的折叠箭头展开三个显示偏好,存入 localStorage,因此刷新页面与重启浏览器后仍然保留:

| 偏好 | 作用 |
| 标签页显示「启用数 / 总数」 | tab 徽章由纯总数改为分数形式(67/106),一眼看出每族能力的启用比例;无论开关与否,悬停提示都以文字给出两个数字。 |
| 显示调用统计 | 控制上文的每行用量徽章是否显示。 |
| 显示的层级列 | 将网格收窄为仅会话级、会话级 + 项目级,或三级全显。 |

分数只把已生效的守卫计入启用数。guard 行复用同一个 disabled 字段表示「已激活」,与其他默认启用族的方向相反——所以审批开关打开、五个守卫都未激活时,安全 tab 显示 1/6 而不是 6/6。

收窄层级列只影响显示:三级优先级解析照常运行,被隐藏的项目级或全局级设定仍然生效。每行的徽章与层级开关始终反映综合解析后的状态——默认启用族显示「生效中/已停用」,守卫显示「守护中/未启用」——因此隐藏一列不会隐藏任何生效影响。名称列会吸收释放出来的宽度;布局由 CSS 变量驱动,因此与窄屏适配保持对齐。

其他行为:agent 运行时,会写入设定的控件锁定——每行的层级开关、其清除徽章、以及批量菜单——但浏览保持可用,因此搜索框、层级列下拉、tab 切换、行展开照常工作;关闭弹窗或跨轮次后状态仍保留;界面语言跟随 WebUI。

规划

以下为规划中、尚未实现:

- 跨项目同步配置 — 从其他项目复制或引用项目级配置,无需逐个项目重新配置。
- 能力调用统计 — 已于 v1.2.0 实现:技能、MCP 服务与工具行会以徽章显示本会话被模型调用的次数。
- 分数格式的 tab 计数 — 已于 v1.3.0 实现:tab 徽章改为「已启用 / 总数」,面板标题旁的折叠箭头提供三个显示偏好。安全 tab 的 guard 只有已生效才计入分子,其反转的 disabled 字段不会虚增启用数。
- 可自定义默认项的设置菜单 — 在设置菜单中暴露插件自身的配置项,例如新发现能力的默认状态(当前三层都未设的能力解析为启用,但可选的安全守卫默认不启用)。
- 只显示已启用 / 只显示已禁用 — 在搜索框旁增加状态过滤(搜索当前只匹配名称与描述)。安全守卫需要与分数计数同样的处理:guard 复用 disabled 表示「已激活」,因此「只显示已禁用」不能把实际生效中的守卫列进去。该过滤还会缩小批量操作的作用范围,因为批量作用于当前可见的所有行。
- 筛选与全选 — 已于 v1.1.0 实现:工具栏搜索框可筛选行,各层级的批量菜单可对当前可见的所有行执行启用/停用/清除。
- 筛选全选后批量操作 — 已于 v1.1.0 与筛选功能一同交付(搜索缩小范围,批量作用于当前可见行)。

MIT — 见 LICENSE
预览分享卡片长什么样 ↓lifeopsgo/dsh-capability-toggle-plugin
分享 · DeepSeek Harness Hub
lifeopsgo/dsh-capability-toggle-plugin

在 DSH WebUI 中控制 agent 能力,并在运行时真正强制执行。

这是你的仓库?认领条目

回到顶部