Aa728848/dsh-llm-verifier ↗★ 15
dsh-llm-verifier
Configurable DSH-native LLM verifier with a Web settings page
安装
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:Aa728848/dsh-llm-verifier说明文档
阅读完整 README ↗安装与启用 (Installation & Usage)
1. 使用 dsh plugin 安装
DeepSeek Harness(DSH)通过 profile 独立管理各个运行环境的插件依赖。请使用 dsh plugin 命令将插件安装至目标 profile(如 web):
### 1. 使用 `dsh plugin` 安装
DeepSeek Harness(DSH)通过 profile 独立管理各个运行环境的插件依赖。请使用 `dsh plugin` 命令将插件安装至目标 profile(如 `web`):
```bash
### 2. 启动与配置
启动 DSH Web 客户端:
```bash
dsh web
## 配置项说明
在 DSH 中打开:`设置 → LLM Verifier`。
| 配置项 | 说明 |
|---|---|
| **启用工具 (Enabled)** | 是否允许显式工具与自动验收向裁判模型发起请求;关闭后显式调用立即报错且自动门控不运行 |
| **调用策略** | `manual` 仅显式调用;`smart` 结构化优先,并只在有候选/检查点线索时做高置信语义路由,达到工具证据门槛后最终验收;`strict` 每个结束边界都尝试语义路由,并对任一已完成关键操作最终验收,路由或验收异常时 fail closed(预算耗尽时只注入一次阻断提示,随后放行并在宿主日志告警,避免无出口的 steering 活锁) |
| **混合语义路由** | 结构化证据不足时,是否允许裁判模型保守分类 `compare/select/track/none`;不会生成新候选或编造检查点 |
| **语义路由置信度** | 语义识别达到该值才执行对应工具,默认 `0.9` |
| **最多候选数** | 自动 `select` 一次最多纳入的候选数,默认 `8` |
| **每任务/每会话最多路由** | 限制 `compare/select/track` 及语义分类的自动次数。它与最终验收**共享同一个尝试计数器**(实际上限 = 本项 + 对应的「每任务/每会话最多验收」),预算按真实对局数估算(8 候选约需 54 次调用);被拒绝时写入宿主日志并区分「预算不足 / 已有 verifier 在跑 / 同一证据已路由」,strict 下额外注入一次提示 |
| **同时验收子 Agent** | 默认关闭;开启后 `subagent` / fork 子会话也会执行自动路由与最终验收 |
| **进度完成阈值** | `track` **最新**检查点低于该值时 steering 要求继续工作,默认 `0.8`。更早的检查点只随消息展示:每个任务的第一个检查点都是"刚写完计划",用"任一检查点低于阈值"判定会让继续分支恒真(实测 5/5) |
| **单项/总证据字符上限** | 自动候选与检查点脱敏后的单项、整次路由输入硬上限,默认 `20000 / 60000`;同时约束语义路由提示词的总长度(只保留预算内最新证据)。截断标记本身也计入上限,因此截断后的条目不会被判定为超限。候选与检查点都按**数量分摊**总字符预算(单项仍受 2 万字符上限),自动 `track` 还最多渲染**最近 6 个**检查点(更早的在首个检查点中注明已省略),因此 8 个长候选或几十个检查点都不会让整条决策被上限整条丢弃 |
| **任务/会话模型调用预算** | 分类、compare/select/track 与最终验收共享的估算请求预算,默认 `96 / 240`(按真实对局数估算:8 候选的完整锦标赛约 18 场对决 × 3 标准 = 54 次调用,再加最终验收 3 标准 × 2 轮 = 6 次;默认值因此给最终验收留出余量) |
| **通过阈值** | 自动会话验收要求证据分数达到阈值且胜过“未执行有效工作”基线 |
| **路由评估轮次** | 自动路由(compare/select/track)每个标准的重复轮次;默认 1,作为低成本初筛 |
| **最终验收轮次** | 最终会话验收每个标准的重复轮次,默认 `2`:奇数轮不交换、偶数轮交换 A/B 位置,因此默认配置下位置偏好被抵消。调低到 1 会省一次调用,但会失去这层保护 |
| **智能模式最少工具调用** | `smart` 策略需要的最少非 Verifier 工具调用数 |
| **最大证据字符** | 自动发送给裁判的最近会话轨迹字符上限 |
| **每任务/每会话最多验收** | 防止低分反馈形成无限修复循环并限制成本 |
| **供应商 (Provider)** | 从 DSH 当前已配置且可路由的 Provider 列表中选择 |
| **模型 (Model)** | 从所选 Provider 的模型目录中指定具体裁判模型 |
| **裁判标签 (Label)** | 主裁判在工具返回的 `judges[].label` 中显示的名称,留空则使用模型名 |
| **附加裁判 (Extra judges)** | 在主裁判之外追加最多 4 个裁判模型(各自可指定 Provider / Model / 推理强度 / 显示名),同一 Provider + Model 不允许重复;留空即为单裁判模式,行为与旧版本逐位一致 |
| **推理强度 (Reasoning Effort)** | 使用 Adapter 为该模型声明的思考强度,或保留模型默认值 |
| **最大输出 Token** | 单次裁判请求的输出 Token 上限 |
| **判官温度 (Temperature)** | 判官采样的温度,范围 0–2,默认 **0.2**(旧版固定为 1)。自动路由默认只跑 1 轮、最终验收默认 2 轮(偶数轮交换 A/B 位置),温度越低判决越可复现;部分推理模型只接受默认温度,遇到适配器报错时改回 1 |
| **最大并发数** | 所有 Verifier 调用共享的全局并发请求限制 |
| **最大重试次数** | 遇到偶发网络或服务短暂故障时的额外重试次数 |
| **请求超时 (ms)** | 单次模型调用的毫秒级超时时间 |
| **缓存条目上限** | 成功评分持久化缓存的最大容量条目数 |
| **重试基础延迟 (ms)** | 重试时指数退避的基数,默认 500 |
| **缓存目录 (Cache directory)** | 评分缓存 / 能力记忆 / 统计文件在话题目录下的相对子目录,默认 `verifier`;留空保存时保留原值 |
| **输入/输出价格** | 仅用于本地估算单次裁判产生的费用(`estimatedCostUsd`) |
> [!NOTE]
> **显式证据的总量上限**:一次显式工具调用的全部证据(脱敏并单项截断后)合计不得超过 **「自动路由证据总字符上限」的 2 倍**,且绝不突破 **24 万字符** 的硬上限——默认即 12 万字符(约 3 万 token),超出会直接报错并给出实际字符数。这是为了在判官请求顶爆模型上下文之前就把问题挡住。单项上限仍为 2 万字符,`verifier_select` 最多 16 个候选(16 × 2 万已超过默认预算,需要精简候选)。
> [!NOTE]
> **多模态与图片支持**:若选定的裁判模型不支持图像输入,传入图片时将由对应 DSH Adapter 明确报错拦截,插件绝不会静默丢弃图片证据。