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

工具面分档 jonah791/dsh-agent-toolface

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

按证据收窄模型可见工具,一键切换精简与全量

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

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

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add jonah791/dsh-agent-toolface
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:需留意
是什么
dsh 原生插件 · security
装得上吗
实装验证未通过(dependency_conflict),装前请到仓库确认最近更新与 issue
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 42 天前
档位由哪些信号合成

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

验证判据与等级说明 →
⚠︎ 实装验证未通过(dependency_conflict · 2026/10/4) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

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

读写/删除本地文件
查看扫描证据(共 2 处,展示前 2 条)
  • 写入本地文件
    src/index.ts:76
    await mkdir(dshHome, { recursive: true })
  • 写入本地文件
    src/index.ts:77
    await appendFile(
扫描于 2026/11/1(0 天前) · 范围 全包扫描(包内未声明入口) · 来源 GitHub 仓库

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

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/schemastery@deepseek-ai/dsh-tools
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 按证据收窄可见工具
  • 精简全量一键切换
  • 审计留痕

工具面分档(DSH agent preset 行):按证据化的 deny 集在 agent 作用域收窄模型可见工具,lean/full 一键切换 + 审计留痕,降低工具 schema 的固定上下文成本与工具选择稀释。

README

由 DeepSeek 最新模型翻译生成
dsh-agent-toolface 一句话:把「模型可见的工具集合」按证据化的 deny 集收窄,并提供一键恢复——toolface(action="lean"|"full")。 为什么值得用:一次请求的工具 schema 是固定上下文成本——压缩回收不掉,且工具越多、选择越被稀释。实测(2026-09-13,本机): | 指标 | 值 | | 工具面总量 | 274 个工具 / 122,076 字符 ≈ 30,519 tok | | 其中被默认收窄 | 67 个工具 / 30,830 字符 ≈ 7,708 tok(25.3%) | | 这 67 个工具近 14 天调用 | 29 次(同期总调用 11,600 次 = 0.25%) | 它不删除能力:被收窄的工具仍在注册表中,toolface(action="full") 一行恢复。 能力 | 工具 | 用途 | | toolface | 工具面分档:查看或切换本会话可见工具的收窄档位(lean=按 deny 收窄,full=全量可见)。收窄只作用于本会话(agent 作用域),不影响其他会话或子代理;档位不持久化,重启回到预设默认。
展开完整文档(README 剩余 1 节)
dsh-agent-toolface

一句话:把「模型可见的工具集合」按证据化的 deny 集收窄,并提供一键恢复——toolface(action="lean"|"full")。

为什么值得用:一次请求的工具 schema 是固定上下文成本——压缩回收不掉,且工具越多、选择越被稀释。实测(2026-09-13,本机):

| 指标 | 值 |
| 工具面总量 | 274 个工具 / 122,076 字符 ≈ 30,519 tok |
| 其中被默认收窄 | 67 个工具 / 30,830 字符 ≈ 7,708 tok(25.3%) |
| 这 67 个工具近 14 天调用 | 29 次(同期总调用 11,600 次 = 0.25%) |

它不删除能力:被收窄的工具仍在注册表中,toolface(action="full") 一行恢复。

能力

| 工具 | 用途 |
| toolface | 工具面分档:查看或切换本会话可见工具的收窄档位(lean=按 deny 收窄,full=全量可见)。收窄只作用于本会话(agent 作用域),不影响其他会话或子代理;档位不持久化,重启回到预设默认。返回 { ok, mode, applied, deniedCount, globalTools, savedChars, savedTokens, unmatched[], reason? } |

| 参数 | 说明 |
| action | status=查看当前档位与省下的体量;lean=按 deny 收窄;full=恢复全量可见 |
| deny | 可选,lean 时覆盖配置的 deny 模式(精确工具名或尾随 的前缀),仅本次会话有效 |

默认 deny 族:sec_ red_ blue_ otw_ xp_ clyan_ video_ download_。

globalTools 是全局面工具数(preset 作用域读到的 schemas() 是全局视图,含其他预设挂载的工具),不是本会话的模型可见数——后者由请求头 tools 实测(本机:收窄前 274 → 收窄后 208)。

快速开始

1) 装依赖(profile 的 node_modules 里需能解析到本插件,与其它自研插件同款 link):

"dsh-agent-toolface": "link:<工作区>/self-plugins/dsh-agent-toolface"

2) 挂组合——挂在 agent preset(不是宿主组合):宿主 ctx.tools.restrict() 只接受有作用域的 ctx(拒绝进程级收窄,理由是会掩蔽所有 agent),而 preset 行天然是 agent 作用域。放在所有工具行之后:

.agent-presets/<id>/agent.cordis.yml —— 放在所有工具行之后
- id: toolface
name: dsh-agent-toolface
config:
mode: lean # lean | full(非法值加载即抛错) deny:
- 'sec_'
- 'red_'

3) 30 秒验证:调 toolface { action: "status" } → 应返回 mode:"lean"、applied:true、deniedCount>0、savedTokens>0;再调 action: "full" → deniedCount: 0,工具面恢复全量。

配置

| 项 | 默认 | 说明 |
| mode | lean | 启动档位;非法值(非 lean/full)加载即抛错(不静默降级) |
| deny | [] | 收窄模式列表:精确工具名,或尾随 的前缀通配(如 sec_) |

落盘与自证(出问题时先看这里)

每次「加载 / 切换 / 补挂」追加一行 JSON 到 <DSH_HOME>/toolface-events.log(单行 JSON,无阶段枚举——一个动作一行):

| 字段 | 含义 |
| at | ISO 时间戳 |
| action | load(预设默认档生效)/ lean / full |
| mode | 切换后的档位 |
| applied | 是否真的调用了 restrict(false = 未命中或 restrict 抛错,配合 reason 看) |
| deniedCount | 被 deny 的工具数 |
| globalTools | 全局面工具数(收窄前基线) |
| savedTokens | 按宿主口径(4 字符/token)估算省下的 token |
| unmatched | 未命中任何工具的 deny 模式(不静默:全未命中时不调用 restrict) |

一条命令答五问:

tail -3 "$DSH_HOME/toolface-events.log"
① 跑的是哪个构建 → 本插件轨迹不含 build 戳(见「生效判据」用 plugin_boot_status / lib mtime 判定) ② 谁发起 → action(load 即插件装载时的默认档) ③ 断在哪一段 → applied + reason(false 且 reason 非空 = 收窄没落地) ④ 结果质量 → deniedCount / globalTools / savedTokens ⑤ 耗时与预算 → 本插件不含 durationMs(收窄是同步内存操作,无预算概念)

写盘失败不影响收窄本身(审计是旁路)。

生效判据与回退

生效判据(三选一,按可靠性排序):
1. toolface { action: "status" } 返回 applied:true + deniedCount>0 ⇒ 收窄已落地(行为级,最快);
2. tail -1 "$DSH_HOME/toolface-events.log" 最新一行的 mode/deniedCount 与你的切换一致 ⇒ 审计层确认;
3. 生态级:plugin_boot_status(dsh-plugin-bootreport)返回 liveNow 含本插件 ⇒ 当前进程跑的是当前构建。

注意:重新构建 ≠ 生效——产物 mtime 新只证明「构建过」,进程启动时间晚于产物 mtime 才算「在跑它」。本插件的收窄是 preset 装载期动作,改代码后必须重启或重挂 preset 才生效。

回退(三档):
- 源码级:git -C self-plugins/dsh-agent-toolface revert <commit> → 重新构建 → 预检 → 重启;
- 组合级:preset 里给 toolface 行加 disabled: true(或把 mode 改回 full)→ 哨兵重启;
- 运行期:toolface { action: "full" } 立即恢复全量(本会话),不持久化——重启即回预设默认档,一次临时放开不会变成长期默认。

测试

npm test # = node --test "tests/.test.mjs"

20 例离线测试(跑 tests/,纯逻辑层,不依赖宿主运行时):
- tests/logic.test.mjs — 模式解析(expandPatterns)、体量估算(faceCost)、档位决策(denyFor)、审计行(auditLine,含「reason 存在时才写该字段」)
- tests/apply.test.mjs — apply 路径:非法 mode 抛错、全未命中时不调用 restrict、restrict 抛错时插件仍加载并报 applied=false

无网络、无外部依赖(ctx.tools 以桩替代)。

设计要点

- 必须挂 agent preset,不能挂宿主组合:ctx.tools.restrict() 拒绝进程级收窄(会掩蔽所有 agent);preset 行天然 agent 作用域,收窄只影响挂载该预设的会话。
- 不静默:模式全部未命中时不调用 restrict(宿主对未知工具名抛错)并记入 unmatched;restrict 抛错时插件仍加载,status 报 applied=false + 原因。
- 可见性而非安全边界:被 deny 的工具对模型不可见,但进程仍有该能力——需要真隔离请用沙箱,不要用 deny 当防线。
- 同预设多会话共享档位:宿主把过滤在「呈现/查找/执行」三处保持一致,同一 preset 的多个会话共享 standing mount,一处切换处处一致。
- savedTokens 是估算:宿主口径 4 字符/token 的单工具之和,与整份 header 计价存在数个百分点差异。
- 零副本:本插件 node_modules 以 junction 指向宿主 store,避免 @deepseek-ai/* 本地副本造成的版本滞后与运行期 class 漂移。

相关文档

| 文档 | 内容 |
| docs/semantic.md | 权威契约:定位与反定位、术语、概念模型与不变量、契约(含调用点清单)、边界与信任、可证伪验收清单、实践修订记录、未决问题 |
| alice-digital-life | 本插件所属生态的中心索引(全部自研插件) |
| 技能 context-stewardship | 上下文管理:把工具 schema 固定成本纳入「主动管理」的判据 |
| 技能 plugin-maintainability | 插件可维护性工程(审计留痕 / 五问可取 / 观测不反噬) |
| 技能 dsh-plugin-pitfalls | scoped 包名键名、模块双实例、schema 严格校验等踩坑规避 |

License

MIT © jonah791

本插件属于我的数字生命爱丽丝(alice-digital-life)的 DSH 自研插件生态——50 个插件按生命/认知/感知/行动/通信/治理/呈现七层组织。
预览分享卡片长什么样 ↓jonah791/dsh-agent-toolface
分享 · DeepSeek Harness Hub
jonah791/dsh-agent-toolface

按证据收窄模型可见工具,一键切换精简与全量

回到顶部