dsh-research-verifier — 深思验证员(Deep Verifier · LLM-as-a-Verifier)DSH Agent 预设
一个验证优先(verify-first)的通用深度思考 Agent 的 DSH agent preset,把 LLM-as-a-Verifier 的框架思想 做成可即用的 agent 工作方式:
不要相信第一印象。把每一次重要产出当作可被细粒度验证的候选,用显式准则 打分后再落地;对长期任务做逐步进度追踪,及时止损。
预设为 agent 注入 4 个模型工具(verifier_select / verifier_compare / verifier_track / verifier_criteria),背后是一个自包含、零额外 pip 依赖的 Python 验证引擎(可选桥接官方
pip install llm-verifier)。安装后在新建会话的预设选择器里选「深思验证员」即可。
目录结构
dsh-research-verifier/
├── agent.cordis.yml # preset 组成(standard 基线 + 深度思考 persona + 工具行)
├── preset.yml # 预设选择器元数据(名称/描述)
├── research-verifier.mjs # 模型工具插件:4 个 verifier_* 工具,stdin 传 JSON 给 Python CLI
├── criteria/ # 评估准则模板(可被 verifier_criteria 打印)
│ ├── TEMPLATE.md
│ ├── deep_think.md # 通用深度思考准则(默认)
│ ├── scientific_research.md
│ └── code_review.md
├── python/research_verifier/ # 验证引擎(零额外依赖,标准库 + requests)
│ ├── __init__.py
│ ├── __main__.py # CLI:select / compare / track / criteria / doctor
│ ├── backend.py # OpenAI 兼容端点 + 单字母 A..T 评分 token + top_logprobs 细粒度期望
│ ├── reward.py # 细粒度奖励、两两比较、Best-of-N(轮转/PPT)、进度追踪
│ └── official.py # 可选桥接官方 llm-verifier
├── install.ps1 # 一键安装到 ~/.dsh/.agent-presets/research-verifier/
├── README.md
└── NOTICE
安装
# 1) 安装预设(拷贝到用户 agent-presets 目录)
powershell -ExecutionPolicy Bypass -File <repo-root>\install.ps1
# 2) 重启/刷新 DSH Web GUI,新建会话,预设选择器选「深思验证员」
卸载:删除
~/.dsh/.agent-presets/research-verifier/即可。
配置验证 API Key(真正评分必需)
验证器需要调用一个 OpenAI 兼容端点来给候选打分。在会话工作区放一个 .env:
DEEPSEEK_API_KEY=sk-...
# 可选:
# RESEARCH_VERIFIER_BASE_URL=https://api.deepseek.com/v1
# RESEARCH_VERIFIER_MODEL=deepseek-chat
# RESEARCH_VERIFIER_HTTP_TIMEOUT=120
说明:
- 没配 key 也能用
dry_run: true把整个验证流程跑通(返回确定性占位分数,不调 API)。 - DSH 出于安全不会把自己的凭据灌进子进程,agent 也不应携带密钥——key 只从工作区
.env或显式api_key读取,与上游 llm-as-a-verifier 仓库的.env用法一致。 - 想用官方框架的完整能力(PPT、prefix-cache、token 核算):在环境里
python -m pip install llm-verifier, CLI 会在engine: auto时优先桥接官方实现。
四个工具
| 工具 | 用途 | 关键参数 |
|---|---|---|
verifier_select | Best-of-N:对 1+ 候选按准则细粒度打分、排序、选出最优并给出得分 | problem, candidates[], criteria{}, n_evaluations, pivots |
verifier_compare | 两两细粒度奖励(A vs B),含逐准则明细 | problem, trajectory_a, trajectory_b, criteria{} |
verifier_track | 逐步进度:「当前状态是否已能完成任务?」逐 checkpoint 打分,低分早止损 | problem, steps[], checkpoint_steps[] |
verifier_criteria | 打印深度思考/代码/科研准则模板,复制后改造成 criteria | template |
所有评分工具均接受 dry_run: bool(预览流程)、model、timeout_ms。得分范围 [0,1],
≥0.8 视为已验证完成。
引擎工作方式
每个评价 = 一次单字母 A..T 判定(A=1 完全失败,J=10 临界,T=20 已验证),请求
top_logprobs 后对评分 token 的完整 logprob 分布取期望(Σ p(v)·φ(v) / Σ p(v))——
即论文的核心思想;多次评估取平均,A/B 槽位交替以抵消位置偏差。准则逐条独立评分。
- 小候选池:完整轮转(O(N²))。大池(N>6 且给
pivots):Probabilistic Pivot Tournament 降阶版(ring pass + top-k 枢轴,O(N+Nk))。 - 可选桥接:
llm-verifier可导入时engine: auto自动委托官方实现。
成本提示
候选数 × 准则数 × n_evaluations 决定 API 调用次数(每次约几百~几千 token)。
先用 1–2 条准则 + dry_run 跑通,再逐步加大。
测试(无需 key)
$env:PYTHONPATH="<repo-root>\python"
python -m research_verifier doctor
python -m research_verifier criteria deep_think
'{"problem":"Write a function that reverses a string.","candidates":["def rev(s): return s[::-1]","def rev(s): return s"],"criteria":{"Correctness":"Does it reverse?","Speed":"Is it O(n)?"},"dry_run":true}' | python -m research_verifier select
