Install
openclaw skills install improvement-discriminator当需要对改进候选多人盲审打分、用 LLM 做语义评估、判断候选是否应被接受、或打分结果全是 hold 想知道为什么时使用。支持 --panel 多审阅者盲审和 --llm-judge 语义评估。不用于结构评估(用 improvement-learner)或门禁决策(用 improvement-gate)。
openclaw skills install improvement-discriminatorMulti-signal scoring engine: heuristic rules + evaluator rubrics + LLM-as-Judge + multi-reviewer blind panel.
improvement-learner(learner 做 6 维结构分析,discriminator 做语义评分)improvement-gate(discriminator 只打分不做决策)improvement-executor(discriminator 不修改任何文件)improvement-generator4 种模式可以独立或组合使用,从纯启发式到全信号融合逐步增加评估深度。 默认模式(Heuristic only)零成本、确定性,适合快速过滤。 加入 evaluator evidence 后,利用 task_suite 执行结果作为评分依据,更贴近实际效果。 加入 LLM Judge 后引入语义理解,但会消耗 token 且结果有随机性。 Panel 模式引入多视角盲审,捕捉单一审阅者无法发现的偏差。
| Mode | Flag | Scoring |
|---|---|---|
| Heuristic only | (default) | category bonus + source refs + risk penalty |
| + Evaluator | --use-evaluator-evidence | Heuristic 70% + evaluator 30% |
| + LLM Judge | --llm-judge {claude,openai,mock} | Heuristic 60% + LLM 40% |
| + Panel | --panel | 2+ reviewers independently, cognitive label decides |
| All combined | --panel --llm-judge mock --use-evaluator-evidence | Full |
Tradeoff: single reviewer speed vs. multi-reviewer accuracy.
之所以引入 panel 盲审而非依赖单一评分器,原因是:
问题: 为什么不直接用 LLM judge 替代所有启发式规则?Because LLM judge 有 token 成本(每个候选约 500-1000 tokens)且存在随机性。启发式规则是确定性的、零成本的,适合作为第一层过滤。组合使用时,启发式占 60% 权重、LLM 占 40%,既保证了稳定性又引入了语义理解。
当 panel 结果全是 hold 时,通常是以下原因之一:
source_refs(引用来源),导致 source_ref_bonus = 0risk_level 被标为 high,导致 risk_penalty 过大score.py 是核心入口,接收 candidates.json,输出 scored.json。
所有模式共用同一个入口,通过 flag 组合控制评分深度。
--llm-judge 支持 3 种 provider: claude(最准)、openai、mock(测试用,零成本)。
--panel 会自动创建 structural 和 conservative 两个独立审阅者。
输出的 scored.json 可直接传给 executor 或 gate 消费。
使用 --verbose 可查看每个审阅者的详细评分过程和 judge_notes。
# Basic scoring (heuristic only, fastest)
python3 scripts/score.py --input candidates.json --output scored.json
# Full pipeline: panel + LLM judge
python3 scripts/score.py \
--input candidates.json --panel --llm-judge mock --output scored.json
Panel-only mode (no LLM, lower cost):
# Panel blind review without LLM judge — heuristic scoring only
python3 scripts/score.py \
--input candidates.json \
--panel \
--output scored.json
LLM-judge-only mode (no panel, single reviewer):
# Single reviewer + LLM semantic evaluation
python3 scripts/score.py \
--input candidates.json \
--llm-judge claude \
--use-evaluator-evidence \
--output scored.json
| Request | Deliverable |
|---|---|
| Score | JSON: per-candidate scores, blockers, recommendations, judge_notes |
| Panel | JSON: panel_reviews[], cognitive_label (CONSENSUS/VERIFIED/DISPUTED), aggregated_score |
| LLM judge | JSON: llm_verdict with score, decision (accept/conditional/reject), 4 dimensions, confidence |
| Combined | All above fields merged into a single scored candidate object |
输出中的 cognitive_label 含义:
decision 字段的三态语义:accept 直接通过,conditional 需要满足附加条件(记录在 judge_notes),reject 直接拒绝。
--use-evaluator-evidence 的数据源Pipeline 中的数据流: generator → discriminator → evaluator → executor → gate