把有明确判断标准的问题交给裁决后端自动介入
30.8/100
综合分
1
GitHub 星标
106
npm 周下载
—/5
用户评分
数据截至 2026/10/9 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add dsh-decision-layernpm 源 · dsh-decision-layer 的发布者账号已校验与本仓库一致
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · skill
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 22 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✓npm 包dsh-decision-layer @ 0.6.4
✓Node 引擎要求 >=20.11 · 基线 Node 22.19 满足
✓dsh CLI 依赖要求 >=0.1.7-rc.2 · 最新 0.2.1-rc.2 兼容
✓入口文件main/exports/bin 已声明
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/20 00:18:26
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件发起外部网络请求
查看扫描证据(共 24 处,展示前 24 条)
- 读取本地文件service/dsh.mjs:246
const rawSkill = await readFile(new URL('../skills/decision-layer/SKILL.md', import.meta.url), 'utf8'); - 发起网络请求lib/client.js:415
const response = await fetch(`${API_BASE}/${path}`, init); - 读取本地文件service/config-store.mjs:19
const value = JSON.parse(await readFile(path, 'utf8')); - 写入本地文件service/config-store.mjs:301
await mkdir(dirname(path), { recursive: true, mode: 0o700 }); - 写入本地文件service/config-store.mjs:304
await writeFile(temporary, `${JSON.stringify(next)}\n`, { mode: 0o600, flag: 'wx' }); - 写入本地文件service/config-store.mjs:305
await chmod(temporary, 0o600); - 写入本地文件service/config-store.mjs:306
await rename(temporary, path); - 删除本地文件service/config-store.mjs:308
await rm(temporary, { force: true }); - 读取本地文件service/log-store.mjs:28
try { names = await readdir(dir); } catch { return; } - 删除本地文件service/log-store.mjs:34
if (Number.isFinite(day) && day < cutoff) await rm(join(dir, name), { force: true }).catch(() => {}); - 写入本地文件service/log-store.mjs:44
await mkdir(dir, { recursive: true, mode: 0o700 }); - 写入本地文件service/log-store.mjs:51
for (const [file, lines] of byFile) await appendFile(file, lines.join(''), { mode: 0o600 }); - 写入本地文件service/log-store.mjs:72
await mkdir(dir, { recursive: true, mode: 0o700 }); - 写入本地文件service/log-store.mjs:73
await appendFile(fileFor(new Date(at)), `${JSON.stringify(record)}\n`, { mode: 0o600 }); - 写入本地文件service/state-store.mjs:38
await writeFile(temporary, `${JSON.stringify({ v: 1, at: now(), state })}\n`, { mode: 0o600, flag: 'wx' }); - 写入本地文件service/state-store.mjs:39
await rename(temporary, fileFor(id)); - 删除本地文件service/state-store.mjs:41
await rm(temporary, { force: true }).catch(() => {}); - 读取本地文件service/state-store.mjs:47
try { names = await readdir(dir); } catch { return; } - 读取本地文件service/state-store.mjs:52
const info = await stat(join(dir, name)); - 删除本地文件service/state-store.mjs:53
if (info.mtimeMs < cutoff) await rm(join(dir, name), { force: true }).catch(() => {}); - 写入本地文件service/state-store.mjs:66
await mkdir(dir, { recursive: true, mode: 0o700 }); - 读取本地文件service/state-store.mjs:80
const parsed = JSON.parse(await readFile(fileFor(safe), 'utf8')); - 读取本地文件service/log-read.mjs:15
try { names = await readdir(dir); } catch { return; } - 读取本地文件service/log-read.mjs:18
const stream = createReadStream(join(dir, name), { encoding: 'utf8' });
扫描于 2026/10/31(1 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/dsh-client-locale@deepseek-ai/dsh-client-ui-conversation@deepseek-ai/dsh-client-ui-plugin-manager@deepseek-ai/dsh-client-ui-renderer@deepseek-ai/dsh-client-ui-slots@deepseek-ai/cordis@deepseek-ai/dsh给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 结构化决策层
- 可插拔裁决模型
- 自动介入判断
为 DeepSeek Harness 智能体循环提供结构化决策层,由可插拔裁决模型(dev / laya)支撑。
最近更新
在 GitHub 查看全部 →v0.7.12026-10-31
· 主要变更
· 收窄默认更激进:摘除阈值 0.3 → 0.7,默认保留前缀只留 mcp__openviking,team_task_ 回到常规判定;只有模型较有把握判为相关的工具才保留。已保存过高级配置的用户仍沿用自己保存的值,要采用新默认需在配置页改回 0.7 与 mcp__openviking(或删除这两个字段)
· 收窄修复:可选工具被全部摘除时不再作废整轮判定;关闭收窄后上一回合的 agent 级工具限制会释放;被 low-keep 否决的收窄不再显示「已生效」,收窄次数与收窄率只统计真正生效的判定
· 决策分析页会话开关:页头可直接切换本会话的自动介入,与 dock 面板写同一份会话状态;读取失败时显示「不可用」并可点击重试,可访问名称与可见文字一致
· 插件详情页:接入中英文 meta.detail,详情页按语言展示简介,不再回落到 README
· 内部:发布改为「版本号变更推入 main」自动执行,npm 用 Trusted Publishing(OIDC)发布并带 provenance,不再依赖长期 token;README 隐私段与 AGENTS.md 同步更新
· 安装
· 正式版(npm)
dsh plugin --profile web add dsh-decision-layer@0.7.1
· 同一版本的 GitHub Release 附件
dsh plugin --profile web add
· 验证
· npm run check 全绿:237 单测 + client 构建(tsc 严格模式 + esbuild)
· scripts/assert-pack.mjs:29 个文件,lib/client.js 149830 字节,无源码/测试泄漏
· 去掉「可选工具全摘」修复后 narrowing.test.mjs 的回归用例转红;去掉「关闭后释放限制」修复后 dsh.test.mjs 的新用例转红
完整变更记录 v0.7.0...v0.7.1
---
· English
· More aggressive narrowing by default: the drop threshold moves from 0.3 to 0.7 and the default keep-prefix is only mcp__openviking, so team_task_ is judged like any other optional tool and only tools the model rates as fairly relevant survive. Users who saved advanced settings keep their saved values; to adopt the new defaults, set the threshold back to 0.7 and the prefix to mcp__openviking (or remove both fields)
· Narrowing fixes: dropping every optional tool no longer voids the whole pass; turning narrowing off releases the previous turn's agent-scoped restriction; a pass vetoed by low-keep no longer claims "enforced", and the narrow count / rate only include passes that actually took effect
· Session switch in Decision analysis: the header can toggle automatic interventions for this session, writing the same session state as the dock panel; a failed read shows "unavailable" with a click-to-retry, and the accessible name matches the visible label
· Plugin details page: bilingual meta.detail is wired in, so the details page shows the localized intro instead of falling back to the README
· Internal: r
v0.7.02026-10-26
· 主要变更
· 各决策点的介入阈值全部可配置:新增 gateSettings.minConfidence(门控拦截置信度,默认 0.6,原为硬编码常量)、checkSettings.minConfidence、completeSettings.minConfidence(默认 0.4);配置页补上原先只能手改 config.json 的 rubric、lowScoreThreshold、trendMinConfidence / trendRun / trendSevereRun、minConditions、batchMode。门控阈值改为按次解析,改配置即生效、无需重启。
· 配置写坏不再让每个工具调用失败:featureOn 位于宿主 tools/pre-execute 瀑布内,抛错会转成 toolErrorResult 且工具不派发——写错一个配置值就会失去全部工具(含 read / edit,连修配置都做不到)。现在配置读取失败退化为「全部功能开启 + 各决策点自己的安全默认」,安全网保持有效,同时不拖垮智能体。
· 产物移出仓库,发布交给 GitHub Actions:lib/ 不再提交,npm pack 前由 CI 构建,scripts/assert-pack.mjs 断言产物含 lib/client.js 且无源码泄漏。新增 CI(Node 22/24)与 release.yml(仅手动触发、默认 dry_run=true)。破坏性:不带 ref 的 github:xbzbing/dsh-decision-layer 安装不再可用,GitHub 侧请用 Release 附件 tgz。
· dock 触发器与官方上下文用量指示同时出现:会话还没有上下文读数时这一行是空的,不再单独露出「决策」按钮。
· 配置项校验更明确:rubric 不足 2 档 / 超 10 档 / 单档超 256 字时给出具体提示并阻止保存,不再静默替换或截断;保存失败会带上服务端原因。
· 新增架构决策记录:docs/adr/ 收录 13 份 ADR(门控两档模型、失败即放行与爆炸半径、配置整段替换、收窄三重保护、分发渠道等),说明每条规则为什么存在、放弃了哪些备选。
· 验证
· npm test:226 通过 / 0 失败
· npm run build:client:tsc 严格模式 + esbuild 无告警
· scripts/assert-pack.mjs:打包产物 27 个文件、lib/client.js 存在且非空,无源码 / 测试泄漏
· 回归判别力抽查:去掉 featureOn 兜底后「非法配置不炸工具调用」测试立即变红;去掉 dock 门控后「新会话隐藏」测试立即变红
v0.6.42026-10-09
· 主要变更
· 自检主题剥离注入的记忆上下文:此前自检「请求主题」会把本回合注入的 记忆块一并拼进 turnUserText,日志主题里混入「… Relevant memory…」这类噪声。现先在 subjectOf 中剥离所有完整(支持多个、跨行)与未闭合的记忆块,只保留用户真实请求;剥离后无实质内容则不记主题。
· 自检主题改用散文式显示:请求主题由等宽「命令药丸」样式改为专用 decision-log-subject 散文样式(次级色 + 斜体 + 「」括注),与日志里的命令/路径明确区分。
· 文档:中文 tev1 部署指南新增「量化权衡(省资源时必读)」小节,含三档量化对比表、三个危险样本上 q4_K_M 门控从 ask 滑到 allow 的实测退化及门控影响分析;英文版同步 q4_K_M 量化与门控退化说明(样本对照表 + 性能表列),中英文内容核对一致。
· 验证
· 全量 206 项测试通过(node --test tests/*.test.mjs),含新增剥离测试:完整块 / 未闭合块 / 仅记忆→无主题。
· npm run build:client 构建通过,重建后 lib/client.js 与已提交的客户端改动一致(无 diff),GitHub 安装拿到的 bundle 为最新。
数据来自仓库的 GitHub Release,可能与插件实际版本不一致。
README
由 DeepSeek 最新模型翻译生成dsh-decision-layer
DeepSeek Harness(DSH)的结构化裁决插件。它把有明确判断标准的问题交给同协议的裁决后端,供 agent 在需要时使用,并在 agent loop 上接入危险门控、产出自检、工具收窄和防循环等自动介入。
0.6.4 是体验版。 插件功能已可用,但裁决介入能带来多少实际价值仍在探索中——各决策点的阈值都是未经验证的启发式默认值,建议先以观察心态体验,别当成经过验证的效果保证。功能与后续进度以 ROADMAP.md 为准。
安装
已发布到 npm 与 GitHub。
从 npm 安装(补 @latest):
dsh plugin --profile web add dsh-decision-layer@latest
或从 GitHub 安装(不带版本,跟随分支或 tag;仓库已含构建产物 lib/client.js):
dsh plugin --profile web add github:xbzbing/dsh-decision-layer
也可从源码本地构建后用 file: 安装:
npm ci --ignore-scripts
npm run build:client
dsh plugin --profile web add file:/绝对路径/dsh-decision-layer
展开完整文档(README 剩余 1 节)
dsh-decision-layer DeepSeek Harness(DSH)的结构化裁决插件。它把有明确判断标准的问题交给同协议的裁决后端,供 agent 在需要时使用,并在 agent loop 上接入危险门控、产出自检、工具收窄和防循环等自动介入。 0.6.4 是体验版。 插件功能已可用,但裁决介入能带来多少实际价值仍在探索中——各决策点的阈值都是未经验证的启发式默认值,建议先以观察心态体验,别当成经过验证的效果保证。功能与后续进度以 ROADMAP.md 为准。 安装 已发布到 npm 与 GitHub。 从 npm 安装(补 @latest): dsh plugin --profile web add dsh-decision-layer@latest 或从 GitHub 安装(不带版本,跟随分支或 tag;仓库已含构建产物 lib/client.js): dsh plugin --profile web add github:xbzbing/dsh-decision-layer 也可从源码本地构建后用 file: 安装: npm ci --ignore-scripts npm run build:client dsh plugin --profile web add file:/绝对路径/dsh-decision-layer 安装或更新后需重启 dsh web 服务再刷新页面:host 与 client 两半在服务启动时生成挂载与 bundle 清单,仅刷新页面可能看不到变化。插件管理 API 只接受本机 loopback Web 服务上的同源请求;把 DSH Web 绑定到所有网卡时该接口会拒绝请求。不要在未确认目标地址和数据流向前填入生产 Key。 功能 - 手动裁决:decision_evaluate 工具与 decision-layer skill 支持显式提交 noul、score、choice 问题,decision_check_connection 做连通测试。手动调用和连通测试不计入自动裁决指标,也不改变 agent 行为。 - 可配置后端:默认 https://api.typesafe.ai、jev-latest,URL、Key、model 可逐字段覆盖;仅支持相同的结构化裁决协议。未配置 Key 时不发送请求。自定义 HTTP 地址需针对实际目标确认明文传输风险,地址变更须重新确认。用本地 ollama + tev1 作为后端(裁决不出本机、无数据外发)的完整部署步骤见 用本地 tev1 配合插件(部署指南)。 - 危险门控:破坏性工具调用执行前用脱敏摘要请后端裁决,采用两档模型——只有模型高置信判定「拒绝」时才经监控守卫单调拦截该调用;其余情况(高置信放行 / 询问、低置信、后端失败或响应不合法)一律不介入,按宿主原路径执行。门控只做「确信危险才拦」的安全网,不替宿主授权、不降级审批。危险规则可增删配置。 - 产出自检:回合结束用评分量表给最终产出打分(0–2,按各档位概率加权,可能是小数)。默认只提示、不打断;可开启「低分补完」,得分偏低且模型有把握时以你的名义追加一次补完提示,同一回合最多补一次。 - 任务完成核对:当用户明确列出多个交付条件(编号 / 项目符号 / 多命令)时,回合结束前用单选逐项判定「已满足 / 未满足 / 证据不足」,工具证据优先、回复自述不算证据;确定性提取、不推断隐含期望。默认只观察、可配 steer,与产出自检并存、指标分列。 - 产出质量趋势告警:建在自检数据上的只读提醒。连续多次高置信低分时,把输入框旁触发按钮的图标从灰变橙、变红,hover 提示可能是任务变难或模型波动、建议调整 prompt 或更换模型。纯提示、不驱动自动干预;高置信门槛 / 连续轮数 / 严重档三个阈值可配(默认 0.6 / 3 / 5),偏保守、待实测校准。 - 工具收窄:回合开始时用 noul 逐个判断可选工具与本轮任务的相关性,摘掉用不上的(相关性概率低于摘除阈值,默认 0.3、可配),只在宿主已允许的集合内取交集、不扩权。默认真正生效,可切到「仅观察」只记录不改工具集。三重保护:核心工具(读写、编辑、Shell、检索、待办,以及问用户、目标、技能、交付、后台作业、协作等 agent 元能力)始终保留、不参与判定;可选工具超过候选上限(默认 20,可配)时自动降为仅观察;保留下来不足 5 个时视为判定不可信、跳过。保留工具前缀白名单里的工具(默认含 mcp__openviking、team_task_)也始终保留、不参与判定,适合记忆 / 检索、协作这类常驻、按需触发的工具。分批策略按后端上下文容量自适应(batchMode,默认 auto):大上下文后端(如 Jev)一次请求判完全部工具;小上下文后端(如本地 tev1,约 2050 token 单请求上限)在遇到上下文超限错误时自动降级为「每工具一次请求、并发执行」并记住,之后直接走拆分,不再反复探测。也可显式设 single(始终整批)或 split(始终逐工具)。某个工具的拆分请求失败时该工具保守保留。 - 防循环:确定性判断,不走后端;同一调用连续重复超过阈值即拒绝,打断死循环。始终生效,不在决策点开关范围内。 - 会话面板:输入框下方的 dock 触发器弹出面板,展示自动裁决指标(评估数、失败回退、模型建议与实际结果分列)、会话总开关和决策日志;无自动裁决时显示空态。总开关关闭只暂停自动介入,不影响手动裁决。 - 决策分析页:会话内「决策分析」tab(conversation.view,与对话/轨迹平级、天然按会话隔离),基于已落盘日志做只读聚合,展示过程画像(各决策点触发数与结果分布、自检平均分)、质量趋势阈值回测、判断准确度汇总,并可对每条决策标注「判对 / 判错 / 说不准」。标注与介入面板同源:任一处标注都写入同一份日志、按决策 id 关联、取最新。只读日志、只追加标注,不改任何决策行为。 - 决策点开关:详情页配置里,危险门控、产出自检、工具收窄各有独立开关,默认全开;关掉某个决策点就不再对应地介入。防循环不在此范围。 - 决策日志落盘:决策记录在内存面板之外,还按会话全量落盘到 ~/.config/dsh-decision-layer/logs,供研究回看。文件按运行实例端口和日期滚动切分(decisions-<端口>-YYYY-MM-DD.jsonl),批量写入,保留 30 天。写盘为尽力而为,失败只丢当批、不影响决策路径。 - 会话指标持久化:面板的实时指标(dock 计数、各决策点卡片、最近决策日志)在重启后不再归零。每个会话的实时状态按会话 id(非端口)另存一份快照到 ~/.config/dsh-decision-layer/state/<会话id>.json,每次计数变化防抖写盘、原子落盘,保留 30 天。同一会话恢复时优先读该快照续算;若尚无快照但有历史决策日志(如早于本机制、或快照已被清理的会话),则跨全部端口按会话 id 从日志重建种子续算——唯一例外是「实际结果」(gate 观测到的放行 / 拒绝)无法从日志重建,重启后从零重新累计。写盘同为尽力而为,失败绝不进入决策路径。 安全边界 自动介入只减不增:门控只拒绝、收窄只删工具,都不给智能体新权限。危险门控采用两档模型,只在模型高置信判定拒绝时拦截;后端失败、低置信或响应不合法时一律不介入、按原路径执行,不因裁决故障阻断,也不替宿主放行。自检、收窄与防循环异常则跳过介入。发送到后端的危险摘要只含工具名与命令 / 路径并对疑似密钥脱敏,不含文件内容。 开发 服务端使用 Node.js >=20.11(.mjs,无需构建);客户端用 TypeScript + esbuild 构建。npm test 跑本地测试,npm run build:client 生成 lib/client.js。改动客户端后需重建并连同 lib/client.js 一起提交,否则 GitHub 安装拿到的是旧 bundle。0.6.4 为体验版:介入能力已可用,但实际价值与阈值仍在探索,欢迎反馈决策日志观察到的误判与体感。
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
xbzbing/dsh-decision-layer
把有明确判断标准的问题交给裁决后端自动介入
相关插件 · 技能 / 提示词
人设统管ZiChuanLan/agent-purge
一份系统提示词,喂给多个 coding…
★ 931已汉化DSH
73.8
人物画像蒸馏titanwings/distilly
Distilly — 把他们的思考方式提炼成可复用的技能,供任何智能体或机器人使用。原名 Colleague Skill(原同事 Skill)。
★ 25,659已汉化DSH
71.3
推理工作空间套件Tiger3807861189/J-Space-Cognition-Suite
J-Space 是面向复杂推理、大型仓库工程、子代理协作与授权安全分析的推理时工作空间和控制套件。
★ 2,957已汉化DSH
70.5
两阶段工具锚定预设xiaobright/dsh-anchored-standard
实验性 DeepSeek Harness agent preset…
★ 3,742已汉化DSH
70.1
智能体工作流编排nrslib/takt
不再日夜盯着 AI 编码智能体。
★ 1,402已汉化DSH
70
Agent 运行时手册Electricitysheep/dsh-handbook
DeepSeek Harness dsh 从 0 到 1 深度手册:安装/插件开发/性能调优/实测案例/同模型多…
★ 827已汉化DSH
68.7