拦截小模型的假成功与编造引用,纠偏后再作答
29.9/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/26 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add MathieuPortmann/dsh-reliability-guards该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
是什么
dsh 原生插件 · security
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 6 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 5 处,展示前 5 条)
- 读取本地文件index.js:127
if (!known.has(name)) known.set(name, binDirs.some(dir => { try { accessSync(join(dir, name), fsConstants.X_OK); return true; } catch { return false; - 读取本地文件index.js:130
const pathExists = p => { try { statSync(String(p).replace(/^~(?= |$)/, homedir())); return true; } catch { return false; } }; - 读取本地文件index.js:213
const isFileIn = base => p => { try { return statSync(expand(p, base)).isFile(); } catch { return false; } }; - 发起网络请求lib/doi.js:7
const res = await fetch(url, { headers: { Accept: 'application/json' }, signal: AbortSignal.any([signal ?? new AbortController().signal, AbortSignal.t - 执行外部命令固定命令lib/spell.js:15
child = execFile('enchant-2', ['-d', dict, '-l'], { timeout: LIMIT_MS, signal, maxBuffer: 1 << 24, encoding: 'utf8' }, (err, stdout) => {
扫描于 2026/10/31(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/dsh-llm@deepseek-ai/dsh-skill@deepseek-ai/schemastery给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
DeepSeek Harness 里给小体积本地模型加了几道可靠性防线:纠正假成功和编造的 DOI、危险命令需审批、/explain 只读模式。
README
由 DeepSeek 最新模型翻译生成dsh-reliability-guards
为 DeepSeek Harness(DSH)里的小型本地模型准备的护栏。
小型模型(在 Ollama 或类似环境上跑 7-35B)容易在命令失败后声称成功,没调用工具就说自己查过了,编造 DOI,或者把回答截断在半截。这个插件会在用户读到回答之前抓住这些情况,让模型自己改正。
维护说明: 尽力而为。Issue 可能没人回;欢迎 fork。
它做什么
一轮对话快要结束时,纯确定性的规则会把最终回答和工具实际返回的结果做对比。一旦发现问题,模型会在同一轮里收到一条纠偏提示(每轮最多 2 条,每个错误码一条),然后重写回答。到结束时仍然存在的问题,会显示在回答下方。
| 错误码 | 触发条件 |
| falseSuccess | 回答声称成功,但有工具调用失败(报错,或 shell 返回 [exit code: N]),且始终没有补救 |
| actionWithoutTool | 说「我查过了 / 我运行了……」,但这一轮里一次工具调用都没有 |
| announcedOnly | 宣布了动作(「我来查一下:」),却什么都没调用 |
| deniedCapability | 说「我无法访问……
展开完整文档(README 剩余 1 节)
dsh-reliability-guards 为 DeepSeek Harness(DSH)里的小型本地模型准备的护栏。 小型模型(在 Ollama 或类似环境上跑 7-35B)容易在命令失败后声称成功,没调用工具就说自己查过了,编造 DOI,或者把回答截断在半截。这个插件会在用户读到回答之前抓住这些情况,让模型自己改正。 维护说明: 尽力而为。Issue 可能没人回;欢迎 fork。 它做什么 一轮对话快要结束时,纯确定性的规则会把最终回答和工具实际返回的结果做对比。一旦发现问题,模型会在同一轮里收到一条纠偏提示(每轮最多 2 条,每个错误码一条),然后重写回答。到结束时仍然存在的问题,会显示在回答下方。 | 错误码 | 触发条件 | | falseSuccess | 回答声称成功,但有工具调用失败(报错,或 shell 返回 [exit code: N]),且始终没有补救 | | actionWithoutTool | 说「我查过了 / 我运行了……」,但这一轮里一次工具调用都没有 | | announcedOnly | 宣布了动作(「我来查一下:」),却什么都没调用 | | deniedCapability | 说「我无法访问……」,但请求里明明有合适的工具 | | unverifiedDoi | 回答里的 DOI 在任何工具结果里都没出现过;harness 会先查 OpenAlex 再查 Crossref,只有 DOI 确实查不到才触发提示(网络错误永远不算编造) | | foreignScript | 出现用户没写过的中日韩字符 | | markupLeak | 工具调用被写成了文本(<tool_call>、<function=...>、</think>) | | cutAnswer | 回答断在半句话,或代码块没有闭合 | | emoji(默认关闭) | 出现用户没写过的 emoji | | frenchSpelling(默认关闭) | 拼错的单词,用 enchant-2 离线检查 | 规则支持双语(英文和法文措辞)。 工具运行之前 - 破坏性 shell 命令(rm、mv、git reset --hard、git push --force、dd、> 覆盖已有文件、cp 覆盖已有文件……)会弹出审批卡片;用 write 覆盖已有文件也一样。新建文件从不询问。 - 往 /tmp 里做备份会被拒绝,并给出原因(这个目录在命令之间会被清空)。 - /explain 只读模式:只运行白名单里的工具(读取、搜索、提案),其余一律拒绝,包括之后才加进来的工具。输入 /explain off 退出。安装技能:cp -r skills/explain ~/.dsh/skills/(或放进你的 $DSH_HOME/skills)。 技能能扛过摘要:自动摘要把用户调用过的技能(/word 等)的说明盖掉时,会重新发送这些说明。 Web UI 会在每个有问题的回合下方显示看到了什么、模型有没有改正。界面支持英文和法文。 安装 dsh plugin --profile web add dsh-reliability-guards or straight from GitHub: dsh plugin --profile web add github:MathieuPortmann/dsh-reliability-guards 之后重启配置档。需要 Node ^22.19.0 || >=24 和 DSH >=0.2.0-rc.2 <0.3.0(见兼容性)。 配置 配置档 cordis.patch.yml 中的 reliability-guards 行。每项守卫都有开关: falseSuccess、actionWithoutTool、announcedOnly、deniedCapability、unverifiedDoi、 cutAnswer、foreignScript、emoji、frenchSpelling、destructiveAsk、tmpBackupDeny、 explainMode、keepInvokedSkills。 | 键 | 默认值 | 含义 | | maxNudgesPerTurn | 2 | 每轮提醒次数 | | doiTimeoutMs | 15000 | 每次 DOI 存在性检查的超时时间 | | spellAllow | [] | 拼写检查额外接受的词 | | explainAllow | [] | /explain 中额外允许的工具 | | llmBodyTimeoutMinutes | 0 | 为慢速本地模型调高 HTTP body 超时(0 = Node 默认值,5 分钟) | 兼容性 | 组件 | 支持范围 | | Node.js | ^22.19.0 \|\| >=24.0.0(engines.node) | | DSH | >=0.2.0-rc.2 <0.3.0;以可选 peerDependencies 声明,涉及 @deepseek-ai/dsh-llm、@deepseek-ai/dsh-skill、@deepseek-ai/schemastery(>=3.18.0 <4.0.0)和 zod(>=4.0.0 <5.0.0),这些包由插件从运行中的 DSH 安装目录加载(也会尝试 undici,缺失则跳过) | | 平台 | Linux(已测试);插件本身是纯 JavaScript,不含原生扩展 | 已在 Node 22.23 上配合 DSH 0.2.0-rc.2 测试(见验证)。 权限与外部服务 插件能触及的一切,以及失败时的表现: | 能力 | 位置 | 用途 | 失败时 | | 文件(只读) | index.js(statSync) | 检查 > / cp / mv 的目标是否已存在,只有覆盖时才请求批准 | 视为「不存在」:不弹批准卡片 | | 文件(写入) | 无 | 插件不写任何文件;状态保存在 DSH 会话日志里 | 不适用 | | 网络 | lib/doi.js(fetch) | 答案中出现、但任何工具结果里都没有的 DOI,依次向 api.openalex.org、api.crossref.org 查存在性;除此之外不发送任何内容 | 网络错误或超时(doiTimeoutMs)绝不算作编造 DOI | | 命令 | lib/spell.js(execFile) | 用 enchant-2 -d <dict> -l,答案中的词经 stdin 传入;仅在 frenchSpelling 守卫开启时执行(默认关闭);不经过 shell,参数固定 | 程序或词典缺失、超时(5 秒):跳过检查 | | 动态模块加载 | index.js(importFromDsh) | 从运行插件的 DSH 安装目录加载 zod、@deepseek-ai/dsh-llm、@deepseek-ai/schemastery、@deepseek-ai/dsh-skill,以及可选的 undici(在 Node 22 上同步 require ES 模块会失败)。不下载任何内容,也不从文本求值代码(未使用 eval / new Function) | undici 可选;其余为必需,缺失时插件加载失败 | | 进程级 HTTP 调度器 | index.js | 仅在 llmBodyTimeoutMinutes > 0 时生效(默认 0 = 不改动):为运行缓慢的本地模型调高全局 fetch 的 body 超时 | 不适用(需主动开启) | 插件还会拦截操作:执行破坏性 shell 命令前先请求批准,拒绝把备份写入 /tmp,在 /explain 模式下拒绝白名单之外的所有工具。插件不新增自己的工具,也不代替模型执行任何命令。 验证 在一次性配置档上验证(DSH_HOME 指向临时文件夹,配置档用 dsh <name> --from-default-profile web 克隆,真实配置档始终不受影响): npm pack dsh plugin --profile t add file:$PWD/dsh-reliability-guards-0.1.0.tgz # install dsh --profile t --no-open --port 3095 # start: plugin loads, no error dsh plugin --profile t remove dsh-reliability-guards # uninstall npm test 运行 33 个独立测试(规则、模式、DOI 提取、拼写检查解析、保留的技能、真实模块的加载测试),除加载测试外都不需要安装 DSH;DSH 不存在时加载测试会跳过。 开发 npm test 规则见 SPEC.md。 许可证 MIT
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
MathieuPortmann/dsh-reliability-guards
拦截小模型的假成功与编造引用,纠偏后再作答
相关插件 · 安全 / 权限
智能体逆向工程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