dsh-approval-translator:用白话读懂 DSH 权限批准卡片

前言

DeepSeek Harness(DSH)在非「完全访问」的权限模式下,会在智能体执行命令、改文件或调用特权工具之前弹出批准卡片。卡片上通常是工具名和原始参数:一条 shell、一段 JSON、或一长串路径。若你不是每天读终端的人,要在几秒内决定允许还是拒绝,安全默认往往是「拒绝」,任务也就容易卡住。

社区插件 dsh-approval-translator(目录中有时以仓库名 dsh-approval-explainer 归类,实际安装标识为 dsh-approval-translator)在官方批准卡片下方增加 Explain this action(解释此操作)按钮,把当前待批准的操作交给本会话模型,用简短中文说明「在干什么、会碰什么、有无隐私风险、建议允许还是拒绝」。批准本身仍由 DSH 自带卡片完成,插件只追加说明,不替代 Reject / Allow once 等交互。

这是什么

dsh-approval-translator(README 中也称 Approval Translator)是由维护者 zhaoqiminggg 发布的 DSH 插件,分类可归为管理与安全(admin-security)。它在权限批准流程中做「翻译层」:不改动 DSH 的批准逻辑,只在用户点击后生成可读解释。项目采用 MIT 许可证,package.json 中版本为 1.0.0,面向 DSH 0.2.2-rc.1 及对应的 conversation.composer、conversation.approval.card 等 slot API。

核心功能

下面介绍点击解释按钮后,模型会尽量覆盖的维度(均来自项目说明,非额外推断):

  1. 动作含义:用一行话说明这次操作在做什么。
  2. 影响范围:涉及哪些文件、目录或应用;长路径会尽量转成「某某应用存放数据的位置」这类说法。
  3. 变更类型:是否修改、删除或新建内容,是否有数据离开本机。
  4. 隐私风险:例如账号、密码、聊天记录、数据库、照片等维度上的提示。
  5. 风险与建议:给出 low / medium / high 等级,并附带允许或拒绝的建议。

行为上还有一点值得记住:只有你点击按钮才会发起模型调用;同一 callId 在宿主与客户端会缓存结果,对同一张卡片再次点击会复用已有回答。单次请求上限约 45 秒、最多两次尝试;推理 effort 会尽量选模型 advertised 的最低档,避免「只想看说明却耗光输出预算」。说明文案当前按 简体中文 生成;是否与界面语言完全对齐在路线图中。

客户端通过 composer 链在「有待批准交互」时挂载 UI,在官方卡片下方追加按钮与结果区;宿主侧注册内部命令 dsh-approval-translator-explain,按 callId 从会话日志里对齐对应的 tool/call 事件后再组 prompt 并流式调用模型。

安装与启用

插件以当前 DSH 进程的权限运行;安装前建议自行查看 GitHub 仓库 源码与 MIT 许可证。无构建步骤、无额外 npm 依赖;package.json 要求 Node >= 22(主要面向开发与自检)。

在应用内添加

打开 Plugins 页面,选择 Add plugin(添加插件),粘贴以下其一:

dsh-approval-translator
https://github.com/zhaoqiminggg/dsh-approval-translator

然后刷新页面一次(Ctrl+R)。

使用 CLI

按你实际运行的 profile 选择 desktop(DSH Desktop)或 web(dsh web):

# 从 npm 安装(最快,无需构建)
dsh plugin --profile <your-profile> add dsh-approval-translator

# 或从 GitHub 源码安装
dsh plugin --profile <your-profile> add github:zhaoqiminggg/dsh-approval-translator

若已有本地检出目录,也可直接添加该路径(开发工作流):

dsh plugin --profile <your-profile> add /absolute/path/to/dsh-approval-translator

修改 client.js 后一般刷新页面即可;修改 index.js 通常需要重启宿主。

典型用法

  1. 在 composer 里把权限控制切到「执行前询问」的任一模式(非 full access)。
  2. 让智能体触发需要批准的工具操作,出现官方批准卡片。
  3. 点击卡片下方的 Explain this action。
  4. 数秒后说明在原地展开;可再次点击以重新解释(同一张待批准卡片在缓存命中时会更快)。

在 完全访问 模式下不会出现批准卡片,按钮也不会存在。

适用场景与注意

适合:需要频繁批准 shell、文件编辑或特权工具调用,但希望用自然语言先弄清风险再点 Allow once 或 Reject 的用户;也适合给非技术同事使用 DSH 时降低误拒率。

注意项:

  • 隐私与安全:插件只读取本会话日志里已有的 tool call;仅在点击时用当前会话已有的模型路由发起调用;自述无遥测、无自建网络、不写文件。最终是否允许仍只取决于 DSH 官方卡片。
  • 成本与延迟:每次解释等于一次模型调用,使用当前会话模型,无单独 API Key 配置。
  • 兼容性:需要带批准面板的 DSH web/desktop;无该面板的宿主上链式选择不会命中,界面无变化。
  • 生态:DSH 奉行「一切皆插件」;社区目录(如 SkillHub 上的条目)为独立站点,与 DeepSeek / 幻方无官方从属关系,安装来源以 README 与仓库为准。

结尾

dsh-approval-translator 解决的是「批准卡片能读但难懂」的瞬间:不改变 DSH 的安全边界,只在你主动点击时补上一段结构化白话说明。若要查看分类与元信息,可打开社区目录页;详细安装、行为与实现细节以 GitHub 为准:

  • 目录页:https://www.skillhub.cn/plugins/zhaoqiminggg/dsh-approval-explainer
  • 仓库:https://github.com/zhaoqiminggg/dsh-approval-translator
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye