按证据收窄模型可见工具,一键切换精简与全量
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
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 42 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
⚠︎ 实装验证未通过(dependency_conflict · 2026/10/4) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
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 个插件按生命/认知/感知/行动/通信/治理/呈现七层组织。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
jonah791/dsh-agent-toolface
按证据收窄模型可见工具,一键切换精简与全量
相关插件 · 安全 / 权限
智能体逆向工程morluto/rea
用智能体逆向工程任何东西,从应用行为到原生二进制。
★ 415,267已汉化DSH
73.3
智能体集群框架ruvnet/ruflo
面向 Claude Code 与 Codex 的智能体元基座meta-harness。
★ 80,414已汉化MCP
71.9
WorkBuddy 模型接入corrinehu/dsh-workbuddy-connect
2026 年 10 月 20 日起,WorkBuddy…
★ 1,604已汉化DSH
71.7
破甲一键通z91772524-ai/pojia-next
十五个 AI…
★ 967已汉化DSH
71.6
AI 代理虚拟终端strukto-ai/mirage
Mirage 是给 AI 智能体用的虚拟终端:一层 shell,统管数据、命令行和运行时。Unix…
★ 3,756已汉化DSH
70.8
Agent 操作层agentic-os-org/ANOLISA
ANOLISA(Agentic Nexus Operating Layer & Interface System Architecture)|智能体操作系统,带运行时、安全、可观测性,以及 Tokenless 响应压缩,降低 token 用量与成本。
★ 649已汉化DSH
70.7