自动审批权限 MoonlitDropOfBlood/dsh-agent-approval
DeepSeek Harnessv1.12.0DSH 的自动审批权限插件
36.4/100
综合分
5
GitHub 星标
642
npm 周下载
—/5
用户评分
数据截至 2026/10/30 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add @duke-dsh-plugins/dsh-agent-approvalnpm 源 · @duke-dsh-plugins/dsh-agent-approval 的发布者账号已校验与本仓库一致
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · security
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 5 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✓npm 包@duke-dsh-plugins/dsh-agent-approval @ 1.12.0
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖要求 ^0.1.5-rc.3 || ^0.2.0-rc.1 || ^0.2.1-rc.0 · 最新 0.2.1-rc.5 兼容
✓入口文件main/exports/bin 已声明
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/11/2 20:50:04
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件读取剪贴板或密钥环境变量发起外部网络请求
查看扫描证据(共 10 处,展示前 10 条)
- 写入本地文件index.js:1442
await mkdir(dirname(file), { recursive: true }); - 写入本地文件index.js:1443
await appendFile(file, JSON.stringify(shape) + "\n", "utf8"); - 写入本地文件index.js:1482
mkdir(DATA_DIR, { recursive: true }) - 写入本地文件index.js:1483
.then(() => writeFile(CONFIG_FILE, body, "utf8")) - 读取本地文件index.js:1496
const cfg = JSON.parse(await readFile(CONFIG_FILE, "utf8")); - 读取密钥环境变量index.js:2184
const key = String(this._jev.apiKey || process.env.TYPESAFE_API_KEY || "").trim(); - 发起网络请求index.js:2236
const response = await fetch(cfg.endpoint, { - 读取本地文件index.js:2688
real = await realpath(resolved); - 读取本地文件index.js:2700
const st = await stat(real); - 读取本地文件index.js:2709
let text = await readFile(real, "utf8");
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh@deepseek-ai/dsh-typert-protocol给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
最近更新
在 GitHub 查看全部 →v1.12.02026-10-29
· v1.12.0
dsh-agent-approval — DeepSeek Harness Agent 审批权限插件。
· v1.12.0 亮点(性能与委派链审查)
· 审批上下文增量投影:原始工具参数与真实用户消息按会话事件增量折叠;50,000 事件会话的热路径不再重复全量扫描。
· 审计记录分页与增量索引:JSONL 冷读后按追加字节更新,支持稳定的 before/after 游标、旧 Host 回退与有界实时视图,长会话不再反复读取完整审计文件。
· 自动审查沿委派链覆盖子代理:子、孙会话的机器修改调用同样受审;父会话销毁后快照仍有效,父会话后进入审查也会覆盖已有后代。
· 子会话自己的选择优先:显式选择自动审批或其它预设可退出继承审查;自动审批仍不向 spawn 子代理传播,避免递归审批。
· 审批标准逆向依据见仓库 docs/codex-approval-standards.md。
· 功能
· 新权限模式:workspace-write 基线 + 每一次沙箱提权都由模型自动裁决,不弹人工审批。
· 裁决器是一次 LLM 直连(默认,零子会话),也可切换为隔离的审批子代理。
· 独立的「自动审查」模式:Full access 基线下每个能改动机器的工具调用执行前经判定器(TypeSafe Jev 或 LLM)判定一次,风险调用直接拒绝。
· 风险操作直接拒绝;超时/故障一律 fail-closed(按拒绝处理),绝不静默放行。
· 设置面板把两种模式分开配置:上半配置审批模型 / 裁决方式 / 超时与放行-拒绝规则,下半配置自动审查的判定后端与 Jev 配置;会话经 /permission 菜单或 /agent-approval、/agent-review 命令开关,每次裁决在会话窗口「审批」标签页留痕。
· 📦 安装(标准 DSH bundle)
dsh plugin --profile web add @duke-dsh-plugins/dsh-agent-approval
· 重启 DSH 后,设置面板出现「自动审批」页;输入框 /permission 菜单可选「自动审批」预设
需要钉版本时用下方 Assets 里的 tarball(duke-dsh-plugins-dsh-agent-approval-.tgz)。
可选:菜单图标补丁 npm run patch:glyph(详见 README;不跑只是菜单项没图标,功能不受影响)。
Full Changelog:
v1.11.42026-10-20
· v1.11.4
dsh-agent-approval — DeepSeek Harness Agent 审批权限插件。
· v1.11.0 亮点(审批标准对齐 Codex / Guardian)
· 自动审查支持 LLM 判定后端:设置页「自动审查」卡片新增判定后端下拉(TypeSafe Jev / LLM)。LLM 后端与自动审批共用「审批模型」路由,无需 Jev Key;两后端共用规则表、信任缓存、effectiveCode 展开与同一套 fail-closed 语义。
· 审批标准 Guardian 化:裁决提示词与 Jev criteria 重构为四段式——证据信任分级(用户/开发者消息可信,工具输出/文件内容不可信)→ 授权评分 → 风险 taxonomy(含反误杀校准)→ outcome 矩阵。两条裁决路径同一把尺子。
· 拒绝后翻案(Guardian post-denial 规则):判定驳回不再是绝对终局——用户知情后明确重批,同一调用原样重试即可翻案(审计 [overturned prior denial]);明显秘密外发/大规模不可逆破坏仍不可翻案;改写调用绕审查视为 dishonest。
· 审批标准逆向依据见仓库 docs/codex-approval-standards.md。
· 功能
· 新权限模式:workspace-write 基线 + 每一次沙箱提权都由模型自动裁决,不弹人工审批。
· 裁决器是一次 LLM 直连(默认,零子会话),也可切换为隔离的审批子代理。
· 独立的「自动审查」模式:Full access 基线下每个能改动机器的工具调用执行前经判定器(TypeSafe Jev 或 LLM)判定一次,风险调用直接拒绝。
· 风险操作直接拒绝;超时/故障一律 fail-closed(按拒绝处理),绝不静默放行。
· 设置面板把两种模式分开配置:上半配置审批模型 / 裁决方式 / 超时与放行-拒绝规则,下半配置自动审查的判定后端与 Jev 配置;会话经 /permission 菜单或 /agent-approval、/agent-review 命令开关,每次裁决在会话窗口「审批」标签页留痕。
· 📦 安装(标准 DSH bundle)
dsh plugin --profile web add @duke-dsh-plugins/dsh-agent-approval
· 重启 DSH 后,设置面板出现「自动审批」页;输入框 /permission 菜单可选「自动审批」预设
需要钉版本时用下方 Assets 里的 tarball(duke-dsh-plugins-dsh-agent-approval-.tgz)。
可选:菜单图标补丁 npm run patch:glyph(详见 README;不跑只是菜单项没图标,功能不受影响)。
Full Changelog:
v1.11.32026-10-19
· v1.11.3
dsh-agent-approval — DeepSeek Harness Agent 审批权限插件。
· v1.11.0 亮点(审批标准对齐 Codex / Guardian)
· 自动审查支持 LLM 判定后端:设置页「自动审查」卡片新增判定后端下拉(TypeSafe Jev / LLM)。LLM 后端与自动审批共用「审批模型」路由,无需 Jev Key;两后端共用规则表、信任缓存、effectiveCode 展开与同一套 fail-closed 语义。
· 审批标准 Guardian 化:裁决提示词与 Jev criteria 重构为四段式——证据信任分级(用户/开发者消息可信,工具输出/文件内容不可信)→ 授权评分 → 风险 taxonomy(含反误杀校准)→ outcome 矩阵。两条裁决路径同一把尺子。
· 拒绝后翻案(Guardian post-denial 规则):判定驳回不再是绝对终局——用户知情后明确重批,同一调用原样重试即可翻案(审计 [overturned prior denial]);明显秘密外发/大规模不可逆破坏仍不可翻案;改写调用绕审查视为 dishonest。
· 审批标准逆向依据见仓库 docs/codex-approval-standards.md。
· 功能
· 新权限模式:workspace-write 基线 + 每一次沙箱提权都由模型自动裁决,不弹人工审批。
· 裁决器是一次 LLM 直连(默认,零子会话),也可切换为隔离的审批子代理。
· 独立的「自动审查」模式:Full access 基线下每个能改动机器的工具调用执行前经判定器(TypeSafe Jev 或 LLM)判定一次,风险调用直接拒绝。
· 风险操作直接拒绝;超时/故障一律 fail-closed(按拒绝处理),绝不静默放行。
· 设置面板把两种模式分开配置:上半配置审批模型 / 裁决方式 / 超时与放行-拒绝规则,下半配置自动审查的判定后端与 Jev 配置;会话经 /permission 菜单或 /agent-approval、/agent-review 命令开关,每次裁决在会话窗口「审批」标签页留痕。
· 📦 安装(标准 DSH bundle)
dsh plugin --profile web add @duke-dsh-plugins/dsh-agent-approval
· 重启 DSH 后,设置面板出现「自动审批」页;输入框 /permission 菜单可选「自动审批」预设
需要钉版本时用下方 Assets 里的 tarball(duke-dsh-plugins-dsh-agent-approval-.tgz)。
可选:菜单图标补丁 npm run patch:glyph(详见 README;不跑只是菜单项没图标,功能不受影响)。
Full Changelog:
数据来自仓库的 GitHub Release,可能与插件实际版本不一致。
README
由 DeepSeek 最新模型翻译生成<path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"/><path d="m9 12 2 2 4-4"/>
DeepSeek Harness 自动审批权限插件
为 DeepSeek Harness(DSH) Web UI 打造的 自动审批权限插件:内置的权限选项(workspace-write + ask / danger-full-access + never)不够用时,给会话开第三种模式——以 workspace-write 为基线,提权请求交给独立审批 Agent 裁决,有风险就拒绝。
功能
| 功能 | 说明 |
| 🛡 权限菜单第四项 | /permission 菜单新增 自动审批 预设;选中即开启,切到其他预设自动关闭,跨重启保持 |
| 🤖 新权限模式 | 开启后:沙箱基线固定 workspace-write,审批策略切到 ask(内部接管),不再弹人工审批 |
展开完整文档(README 剩余 1 节)
<path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"/><path d="m9 12 2 2 4-4"/>
DeepSeek Harness 自动审批权限插件
为 DeepSeek Harness(DSH) Web UI 打造的 自动审批权限插件:内置的权限选项(workspace-write + ask / danger-full-access + never)不够用时,给会话开第三种模式——以 workspace-write 为基线,提权请求交给独立审批 Agent 裁决,有风险就拒绝。
功能
| 功能 | 说明 |
| 🛡 权限菜单第四项 | /permission 菜单新增 自动审批 预设;选中即开启,切到其他预设自动关闭,跨重启保持 |
| 🤖 新权限模式 | 开启后:沙箱基线固定 workspace-write,审批策略切到 ask(内部接管),不再弹人工审批 |
| 🤖 自动裁决(默认 LLM 直连) | 每次提权请求由一次 LLM 直连调用裁决(v1.8.0 起默认):与子代理同一套审批人格 / 提示词 / 结构化裁决 {decision, riskLevel, rationale},但不创建审批子会话(零上下文污染);设置页可切回「隔离子代理」(一次性 spawn 子代理:独立会话、零工具、只读材料) |
| 🕵️ 自动审查(逐调用,实验) | 与自动审批完全独立的第二种模式(需先在设置页配置 Jev,配置即启用):Full access 基线,每个工具调用(含 PTC 内层)执行前经 Jev 判定一次,风险调用直接拒绝、body 不执行、不转人工(fail-closed);规则表与会话内信任先行短路降噪;/agent-review on\|off 或菜单「自动审查」开启。v1.9.0 起有效代码展开:命令引用的解释器脚本(node / python / bash / ps1)内容会被读出并放进裁决 state,agent 临时写的脚本按实际代码受审而不是只看命令行(仅读 workspace 内文件,越界只标注、永不读取)。v1.12.0 起沿委派链覆盖子代理:宿主把满权限传给了子会话,子会话(含孙会话)的机器改动同样受审(自动审批不传播,仍不递归审批) |
| ⛔ 风险即拒绝 | 破坏性 / 不可逆 / 越界(含修改操作系统或其他应用数据)/ 理由与实际命令不符 → 直接 reject;仅"安全、可逆、与任务相符、理由诚实"才 approve——项目自身的安装/部署脚本写其文档指定路径属任务所需 |
| 🔒 Fail-closed | 审批 Agent 启动失败、超时(可配 30s–600s)、结果不合法 → 一律按拒绝处理,绝不静默放行 |
| ⚙️ 审批模型可配置 | 设置页选择 Provider + Model(只能是 LLM 路由),不选则固定用 Harness 默认模型(不跟随请求会话,口径稳定);选择与超时持久保存,重启不丢 |
| ⚡ TypeSafe Jev 决策模型(仅自动审查) | Jev(System One 结构化决策模型)是自动审查模式专属的判定后端:设置页「自动审查」卡片独立配置(API Key / Endpoint / 模型 / 置信度阈值),直连其 API 用类型化问题(Choice/Noul)毫秒级返回带校准概率的裁决;置信度低于阈值按 fail-closed 处理,审计理由由概率合成(也可设 TYPESAFE_API_KEY)。v1.10.0 起不再是自动审批的判定选项——Jev 的风险判断弱于 LLM,而提权正是人工审批原本要守住的路径 |
| 📋 审计记录(随会话) | 会话窗口顶部的「审批」标签页(轨迹旁)查看本会话全部审批:结论 / 风险等级 / 模型 / 耗时 / 理由;悬停看完整理由与精确工具参数;审批 Agent 的会话 id 可回溯完整推理;已批准行可一键「加白」存为放行规则。记录存在会话存储目录内的独立文件——随会话恢复,删除会话即随之删除;大量记录按页加载、后台增量同步,避免反复整文件读取与整表重渲染。宿主半尚未重启(升级了包但没重启 DSH)时,标签页会自动回退到旧的全量读取方式,记录照常可见 |
| 🔁 可逆开关 | 权限菜单「自动审批」预设、/agent-approval on\|off 命令两条等价路径;关闭时恢复开启前的权限旋钮 |
工作原理
开启(菜单 / 命令) └─ 记住旧旋钮 → sandbox/mode=workspace-write + approval/policy=ask(规范写路径,可恢复) │ 工具请求提权(sandbox_permissions / 人工 ask) └─ ctx.approval.request() → approval/request 瀑布 └─ 本插件 prepend 抢占(先于人工弹窗 answerer) ├─ (默认)LLM 直连裁决(一次 stream 调用 · 同套人格/提示词/裁决格式 · 零子会话) ├─ (可选)spawn 审批 Agent(独立会话 · 零工具 · 结构化裁决 · 不会递归审批) │ ├─ approve → allowed-once(该次放行) │ ├─ reject → rejected(风险操作,最终拒绝) │ └─ 超时/故障/低置信/取消 → fail-closed(按拒绝处理) └─ 记入审计(会话目录内的独立文件,「审批」标签页可见)
- 审批 Agent 只能看到:workspace 路径、最近的用户消息(任务上下文)、工具名、提权理由、精确的工具参数 JSON(按 callId 从会话日志回查)。裁决看「操作 vs 用户任务」的客观对齐,不依赖理由措辞。
- 子代理审批策略被 DSH 委派机制钉死为 never,不存在递归审批;全局工具全部空白,审批员只能「判」不能「做」。
- 未开启的会话完全不受影响(监听器原样 next(),人工审批行为不变)。
安装
标准安装(推荐)
本插件是标准 DSH bundle:package.json 声明 dsh.bundle.patch,包内 cordis.patch.yml 同时完成两件事——- insert: 挂载插件本身,- id: permission 把 自动审批 预设注册进 /permission 菜单。用官方 dsh plugin 命令安装:
本地开发:pnpm 软链到本仓库,改代码即生效(无需重新复制)
dsh plugin --profile web add /path/to/dsh-agent-approval
正式发布:从 GitHub Release tarball 安装(资产名为 npm pack 的 scope 形式)
dsh plugin --profile web add https://github.com/MoonlitDropOfBlood/dsh-agent-approval/releases/download/v1.8.0/duke-dsh-plugins-dsh-agent-approval-1.8.0.tgz
重启 DSH 后:设置面板出现 自动审批 页;/permission 菜单出现第四项 自动审批。
可选:权限菜单图标。菜单图标硬编码在官方 dsh-client-ui-conversation 的 permissionGlyphs 映射里(无公开注册口),标准安装不会补它——不跑下面的命令只是菜单项没有图标,预设与功能不受影响。想让菜单项带盾牌图标,装完再跑一次(幂等;DSH 升级重装原版 bundle 后重跑即可):
npm run patch:glyph
dsh plugin add 把插件装成 profile 的 npm 依赖并追加到 dsh.profile.bundles,启动时自动应用包内 patch。卸载:dsh plugin --profile web remove dsh-agent-approval。
使用
1. 开启:在 /permission 菜单选 自动审批,或输入 /agent-approval on。
2. 自动裁决:之后该会话里的提权请求(例如命令被沙箱拒绝后带 sandbox_permissions 的重试)不再弹窗,由审批 Agent 在后台裁决并放行/拒绝。
3. 审计:会话窗口顶部的「审批」标签页(轨迹旁)查看本会话的审批记录;悬停「审批理由」看完整理由与工具参数;已批准行可「加白」存为放行规则。记录存在会话存储目录内的独立文件,删除会话即随之删除;v1.4 的旧全局记录用 node scripts/migrate-records.mjs 一次性迁移(--dry-run 预览)。
4. 配置自动审批:设置 → 自动审批 设置审批模型(Harness 默认模型或指定 Provider/Model——只能是 LLM 路由)、裁决方式(LLM 直连 / 隔离子代理)、审批超时与放行/拒绝规则。
5. 配置自动审查(独立):设置页「自动审查」卡片填 Jev 的 API Key(可调 Endpoint / 模型版本 / 置信度阈值)——保存后自动审查变为可选(/permission 菜单出现 自动审查 预设),不会改动任何已有会话。要进入该模式,在目标会话里选 自动审查 预设或执行 /agent-review on:该会话切到 Full access 基线,每个工具调用执行前经 Jev 判定,风险调用直接拒绝(不转人工);该会话派生的子代理沿委派链同样受审(子代理继承了满权限,就必须有人判定);关闭恢复原旋钮。
6. 关闭:菜单切回其他预设,或 /agent-approval off,恢复开启前的沙箱模式与审批策略。
目录结构
dsh-agent-approval/
├── index.js # Host 半:AgentApprovalService(审批瀑布抢占 + LLM 直连/子代理裁决 + Jev 逐调用审查 + 审计) ├── judge-context.js # 审批上下文增量投影与旧 Host 的 seq 校验缓存 ├── audit-store.js # 审计 JSONL 增量索引与稳定分页游标 ├── client.js # Client 半:设置页「自动审批」+ 会话「审批」审计标签页 bundle ├── typert.host.js # Typert Host manifest(agentApproval 12 个 Remote 方法的描述) ├── cordis.patch.yml # dsh bundle patch(挂载行 + permission 预设表覆盖) ├── scripts/patch-glyph.mjs # 可选:权限菜单图标补丁(标准安装不自动执行) ├── scripts/check-typert-manifest.mjs # npm run check 用:双代 Typert codec 契约冒烟 ├── .github/workflows/ # GitHub Actions 发布 ├── AGENTS.md # 面向 AI agent 的开发指南(含踩坑) └── LICENSE # MIT
开发
npm run check # 语法 + Typert + 模式/审批上下文/审计分页完整回归
npm run bench:performance # 可选:五万事件、两千审计记录的本地性能基准
dsh plugin --profile web add /path/to/dsh-agent-approval # 安装/重装到本机 DSH profile
npm run patch:glyph # 可选:权限菜单图标
兼容性:支持 DSH 0.1.5-rc.3 ~ 0.1.7-rc.1。v1.7.0 起,Typert manifest / Client Remote 描述符的每个 codec 同时携带 schema(≤0.1.5 的 zod 契约)与 create() 工厂(0.1.7 的新契约),任一宿主代际都能注册;旧版本(≤1.6.0)在 0.1.7 上会被 typert-loader 以 "has no create() factory" 拒绝,Remote 全部失效。
详见 AGENTS.md——记录了 DSH 正式插件(Host/Client/Typert 三件套)的完整机制、审批瀑布 prepend 抢占与结构化子代理裁决的踩坑。
License
本项目遵循 MIT License。
本项目是基于 DeepSeek Harness 构建的社区插件,并非 DeepSeek 官方产品。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
MoonlitDropOfBlood/dsh-agent-approval
DSH 的自动审批权限插件
相关插件 · 安全 / 权限
智能体逆向工程morluto/rea
用智能体逆向工程任何东西,从应用行为到原生二进制。
★ 422,036已汉化DSH
73.3
智能体集群框架ruvnet/ruflo
面向 Claude Code 与 Codex 的智能体元基座meta-harness。
★ 80,619已汉化MCP
71.8
WorkBuddy 模型接入corrinehu/dsh-workbuddy-connect
2026 年 10 月 20 日起,WorkBuddy…
★ 1,604已汉化DSH
71.7
主动编码智能体deepseek-ai/dsh-superagent-prototype
研究原型,仅供参考,不是 DeepSeek 官方产品。…
★ 15,535已汉化DSH
71.6
破甲一键通z91772524-ai/pojia-next
十五个 AI…
★ 1,004已汉化DSH
71.6
Agent 操作层agentic-os-org/ANOLISA
ANOLISA(Agentic Nexus Operating Layer & Interface System Architecture)|智能体操作系统,带运行时、安全、可观测性,以及 Tokenless 响应压缩,降低 token 用量与成本。
★ 653已汉化DSH
70.7