为桌面操作工具设置三档授权,拦截危险动作
29.9/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/1 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add MyRemme/dsh-computer-use-guard该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:需留意
是什么
dsh 原生插件 · security
装得上吗
实装验证未通过(unknown),装前请到仓库确认最近更新与 issue
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 31 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
⚠︎ 实装验证未通过(unknown · 2026/10/1) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🟢 扫描:未发现敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。
扫描于 2026/11/1(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-client-ui-primitives@deepseek-ai/schemastery给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 三档授权控制
- 拦截危险动作
- 按工具类别设置
DSH 计算机操作(cua-driver)工具的三级授权闸门(拒绝/询问/自动),并带一行设置项,按工具类别渲染这三个级别。
README
由 DeepSeek 最新模型翻译生成dsh-computer-use-guard
给官方 computer-use(cua-driver)工具族加一道三档授权闸门,并把它暴露成一个可见的设置界面。
为什么需要它
@deepseek-ai/dsh-experimental-computer-use-cua-driver-native 注册 56 个桌面操作工具,但它的 tools/execute 包装只替换 exec.signal,不做任何权限判断;它的 Config 是 Schema.object({}),dsh-settings 会跳过空 schema,所以 UI 里完全没有可编辑的表单。结果是:装上即无门,模型可以任意点击、打字、结束进程。
本插件在官方机制之上补齐两件事:
1. 一个非空的 volatile Config —— 这正是 harness 为该条目生成可编辑设置表单的条件。
2. 一个真正的 tools/pre-execute 闸门 —— 官方文档化的拦截点(@deepseek-ai/dsh-tools 在派发工具体之前跑这条 waterfall, { kind: "deny", reason } 会阻止工具体执行)。
展开完整文档(README 剩余 1 节)
dsh-computer-use-guard
给官方 computer-use(cua-driver)工具族加一道三档授权闸门,并把它暴露成一个可见的设置界面。
为什么需要它
@deepseek-ai/dsh-experimental-computer-use-cua-driver-native 注册 56 个桌面操作工具,但它的 tools/execute 包装只替换 exec.signal,不做任何权限判断;它的 Config 是 Schema.object({}),dsh-settings 会跳过空 schema,所以 UI 里完全没有可编辑的表单。结果是:装上即无门,模型可以任意点击、打字、结束进程。
本插件在官方机制之上补齐两件事:
1. 一个非空的 volatile Config —— 这正是 harness 为该条目生成可编辑设置表单的条件。
2. 一个真正的 tools/pre-execute 闸门 —— 官方文档化的拦截点(@deepseek-ai/dsh-tools 在派发工具体之前跑这条 waterfall, { kind: "deny", reason } 会阻止工具体执行)。
三个档位
每个工具类别一个三档开关:
| 档位 | 行为 |
| deny 禁止 | 直接拒绝,返回 ComputerUseGuardDenied / COMPUTER_USE_GUARD_DENIED,工具体永不执行 |
| ask 询问 | 弹出审批面板,等你点「允许」才执行 |
| auto 自动授权 | 直接放行 |
出厂默认(可在 cordis.patch.yml 覆盖,用户层优先级更高):
| 类别 | 默认 | 覆盖的工具 |
| observe | auto | 20 个只读工具:截图、窗口树、剪贴板读取、驱动诊断 |
| input | auto | 点击、拖拽、打字、快捷键、滚动 |
| agentCursor | auto | 屏幕上的代理指针外观与动画 |
| window | auto | 激活窗口、调整窗口位置与尺寸 |
| clipboard | auto | 写入系统剪贴板 |
| browser | auto | 标签页内导航、点击、输入、滚动 |
| session | auto | 电脑操作会话的创建与结束(本身不触碰桌面) |
| launch | ask | 启动任意本地程序 |
| browserPrivileged | ask | 附加用户浏览器、上传下载本地文件、执行页面脚本 |
| recording | ask | 录屏 |
| escalate | ask | 把驱动提升到更高的完整性级别 |
| menu | ask | 调用原生应用菜单项 |
| replay | ask | 重放已录制的轨迹 |
| install | ask | 安装外部依赖(例如 ffmpeg) |
| process | deny | 结束进程 |
| driver | deny | 改写 cua-driver 自身配置 |
| unknown | deny | 本闸门不认识的 computer-use 工具 |
分组按默认姿态切,不按重要性:默认放行的七个(observe、input、 agentCursor、window、clipboard、browser、session)直接显示在行内,其余十个默认更严格的收在「精细控制」展开区。
两个显式名单在类别档位之前判定:
- deniedTools:最先判定,命中即 deny,不受档位与放行名单影响。
- allowedTools:非空时只有名单内的裸工具名走 auto,其余一律 deny,上方的类别档位全部失效。
判定顺序固定为 deniedTools → allowedTools → 类别档位,所以把一个名字同时写进两个名单,结果是 deny。两者都是逗号分隔的裸工具名(不带 cua_driver_native__ 前缀,大小写不敏感,重复项自动去重),例如 click, type_text, get_window_state。两者都能在设置行底部直接编辑,按回车或失焦即写入;放行名单非空时,顶部的摘要行改报实际生效的名单,而不是被它盖掉的档位统计,拒绝名单则与档位统计并列显示。
界面
设置 → 通用设置 → 电脑操作权限,位于「权限」行下方。每一类一行,用原生 SegmentedControl 呈现 禁止 / 询问 / 自动授权 三档,改动即时写回。
顶部的摘要行实时统计当前姿态(例如「禁止 3 类 · 询问 7 类 · 自动授权 7 类」)。
通用设置里的「电脑操作权限」行,七个默认放行的类别各带一个三档分段控件
「精细控制」展开其余十个类别 —— 启动应用、浏览器高权限操作、录屏、提升驱动权限、进程、菜单、轨迹重放、外部依赖、驱动配置,以及本闸门不认识的新工具。
这一组默认更严格。
「精细控制」展开后的高级类别
行底部是放行名单与拒绝名单两个输入框。
同一个命名空间也出现在插件页(dsh-settings 的通用表单),但那里只有文本框/数字框,三档控件只在上面这一行里。
设置文档取不到时(页面不是本机页面,或 Host 没有提供该命名空间),这一行显示原因而不是消失 —— 空行会让人以为开关被删掉了。
已知取舍
ask 档由本插件自行派发 approval/request,绕开了 dsh-tools 的 serviceAsk,因此:
- approval:policy(ask / never)对本插件不生效 —— 它总是询问。
- 官方 approval/asked + approval/decided 审计对不会落盘。这是缺审计轨迹,不是崩溃:dsh-user-approval 的 invariant 只在「有 decided 无 asked」时报错,而本插件两者都不写。
这一取舍是刻意的 —— 见下节。
为什么 ask 不走 { kind: "ask" }
dsh-tools 的 serviceAsk 会调用 ctx.approval.request(),而该服务的 decide() 在本机,dsh-purge 的 APPROVAL_AUTO_GRANT 补丁把它改写成了无条件 return "allowed-once" —— 走那条路永远不会弹面板,审批被静默跳过。
因此 ask 档由本插件自己派发官方 approval/request waterfall:
- 这是 dsh-tool-cordis 公开目录里记载的 API(mode: waterfall,this: Scoped<Agent>)。
- dsh-api-remotes 把它转发到浏览器,@deepseek-ai/dsh-client-ui-approval 渲染审批面板,用户点击后把 allowed-once / rejected 回传。
- 整条链路绕开被改写的 approval 服务。
调用契约(每一条都对应一个真实的运行时校验):
- 监听器必须是 function 表达式,不能是箭头函数 —— 只有非箭头函数才能拿到派发时的作用域 carrier 作为 this(cordis 会把每个 listener 绑定到 thisArg)。
- 用 ctx.waterfall(this, …) 而不是 this.waterfall(…):this 是裸 carrier,不是 ctx。
- req.agent 必须是 exec.agent 本身(同一对象):dsh-api-gateway 校验 value.agent === subject,dsh-scope 的 invariant 校验
carrierKeyOf(thisArg) === args[0].agent。
- signal 由 gateway 单独取出、不参与 JSON 序列化;其余字段必须是无损 JSON,所以可选字段用条件展开,而不是写 undefined。
- 兜底 () => Promise.resolve("unavailable"),失败关闭:没有浏览器应答时拒绝,
不会挂起。
安装
本包自带 dsh.bundle.patch,属于 bundle,在 profile 的 package.json 里声明即可挂载:
{
"dependencies": { "dsh-computer-use-guard": "file:./node_modules/dsh-computer-use-guard" },
"dsh": { "profile": { "bundles": ["…", "dsh-computer-use-guard"] } }
}
加载器行的 id 必须等于包名 dsh-computer-use-guard —— settings namespace 就是加载器行的 id。
卸载
从 dsh.profile.bundles 与 dependencies 里移除本包,再删掉 node_modules/dsh-computer-use-guard 目录。
许可
Apache-2.0预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
MyRemme/dsh-computer-use-guard
为桌面操作工具设置三档授权,拦截危险动作
相关插件 · 安全 / 权限
智能体逆向工程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