x-rw-skill-improver-k5
版本: v3.1.0-dev | 功能状态: Loop Engineering 改造 Phase 0 ✅ — 数据门禁 + 信任路由 + 引导期机制
> 📖 用户指南: 详见 README.md
> 🤖 审查规约: 详见 references/skill-structure-conventions.md
快速参考
模式速查
| 模式 | 触发场景 | 产出 |
|---|---|---|
| M1: 完整改造 | 需要提升Skill质量 | 评估+方案+改造报告 (支持多轮反思循环改进) |
| M2: 仅评估 | 检查Skill质量 | darwin+verifier两份报告 |
| M3: 升级后验证 | Skill版本变更后 | 验证报告+趋势对比 (支持成对盲评一致性验证) |
| M4: 定期健康检查 | 每周/每月 | 健康汇总报告 |
| M5: 回归集构建 | 新Skill/回归集过期 | regression.json |
| M6: 结构审查 | Skill文档规范化 | 审查报告+TODO清单 |
| M7: 行为分析 | 日志驱动的升级建议 | 行为分析报告+升级建议 (支持评估偏差检查) |
| M8: 改进提案生成 | 退化诊断完成后 | 自动生成改进提案+diff (基于诊断结果) |
| M10: 自省模块植入 | 为被检Skill植入自省日志 | 植入/剥离/开关报告 |
| M11: 参照对比 | M1改造时搜索GitHub同类Skill | 差距报告(整合进M1 Step 0.5) |
| M12: 论文洞察 | M1改造时搜索arxiv论文 | Insight报告(整合进M1 Step 0.6) |
| M13: 幻觉检测 | 检查LLM输出中的幻觉信号 | 幻觉评分+四维检测报告+对抗验证 |
> 📖 详细步骤: M1→references/m1_full_improvement.md | M7→references/m7_behavior_analysis.md | M8→scripts/logs_analyzer.py + scripts/improvement_generator.py
> 📖 Phase 4 增强: M10→references/m10_selfcheck_module.md | M11→references/m11_benchmark_compare.md | M12→references/m12_paper_insight.md | 整合→scripts/integration.py
> 📖 回滚: references/rollback_guide.md | 输出规范: references/output_directories.md
使用方式
M1: "帮我改造 x-rw-kb-build"
M2: "评估 x-rw-kb-audit 的质量"
M6: "审查 x-rw-kb-build 的文档结构"
M7: "分析 x-rw-kb-build 的行为日志"
M8: "为 x-rw-kb-build 生成改进提案"
CLI 命令速查
以下命令可直接在终端执行,也可通过 LLM 在 M1 增强流程中调用:
集成编排器 (scripts/integration.py):
| 命令 | 模式 | 说明 |
|---|---|---|
integration.py enhanced-pipeline <kb> |
M1 | 增强版 M1 完整流程编排 |
integration.py check-selfupgrade <kb> |
M10 | 检测自省模块状态 |
integration.py prepare-m11 <kb> |
M11 | 执行参照对比(交互式) |
integration.py prepare-m12 <kb> |
M12 | 执行论文洞察(交互式) |
integration.py generate-proposals <kb> |
M8 | 基于诊断生成改进提案 |
integration.py analyze-logs <kb> |
M7 | 执行日志信号提取与退化诊断 |
integration.py llm-judge --check |
verifier | 检测 LLM-as-Judge 配置状态 |
integration.py bias-check <kb> |
M7 | 检测评估系统性偏差 |
integration.py batch-inject <root> |
M4 | 批量植入自省模块 |
独立工具 (scripts/*.py):
| 脚本 | 模式 | 用途 | 调用时机 |
|---|---|---|---|
change_detector.py <skill> |
M1 | 检测 Skill 变更 (git diff) | 改造前做变更检测 |
refinery.py --load <state> |
M1 | 多轮反思循环改进 | M1 改造中迭代优化 |
pair_blind.py <old> <new> |
M3 | 成对盲评一致性验证 | 升级后验证评分一致性 |
regression_runner.py <skill> |
M5 | 回归测试运行器 | 构建回归集后验证 |
report_generator.py <eval_json> |
M9 | 评估报告生成 | 任意评估后生成报告 |
bias_check.py <skill_path> |
M7 | 四维偏差完整检测 | 需要详细偏差分析时 |
llm_judge.py --check |
verifier | LLM-as-Judge 独立运行 | 配置调试或离线评估 |
benchmark_comparer.py compare <skill> |
M11 | 参照对比独立运行 | 需要独立对比报告时 |
paper_searcher.py search <skill> |
M12 | 论文搜索独立运行 | 需要独立论文报告时 |
improvement_generator.py generate <skill> |
M8 | 改进提案独立运行 | 独立生成改进方案 |
hallucination_check.py check <file> |
M13 | 检测文本文件中的幻觉 | |
hallucination_check.py check-stdin |
M13 | 从管道输入检测幻觉 | |
hallucination_check.py verify-claim "<c>" |
M13 | 生成对抗验证 prompt | |
hallucination_check.py self-check <skill> |
M13 | 自检 Skill 的 SKILL.md | |
logs_analyzer.py analyze <skill> |
M7 | 日志分析独立运行 | 独立执行行为分析 |
一、评估体系
darwin 8维(静态)
| # | 维度 | 权重 |
|---|---|---|
| 1 | Frontmatter质量 | 8 |
| 2 | 工作流清晰度 | 15 |
| 3 | 边界条件覆盖 | 10 |
| 4 | 检查点设计 | 7 |
| 5 | 指令具体性 | 15 |
| 6 | 资源整合度 | 5 |
| 7 | 整体架构 | 15 |
| 8 | 实测表现 | 25 |
操作: 读取 SKILL.md → 逐项打分 → 加权总分 → 判定 S/A/B/C/D
verifier 4维(动态)
| 维度 | 权重 | 量化方式 |
|---|---|---|
| 结果 | 40% | 回归通过率 |
| 过程 | 25% | 步骤偏差检测 |
| 风格 | 20% | 模板符合度(支持 LLM-as-Judge 自动化评估) |
| 效率 | 15% | 耗时/Token比 |
> 📖 详见: references/evaluation-framework.md
二、M3 升级后验证
触发方式
LLM: "验证 x-rw-kb-build 升级后有没有退化"
CLI: python3 scripts/pair_blind.py --input <items.json> --output <report.md>
集成: python3 scripts/integration.py enhanced-pipeline <kb> # Step 1 自动包含
流程
- 准备评估项: 从 darwin 8维 + verifier 4维 提取需验证的检查项 → 写入
items.json - 第一次评估: LLM 对 Skill 进行完整评估,记录每项得分,不可查看历史评分
- 第二次评估: 间隔 ≥30 分钟后(或由不同 LLM 实例),重新评估同一个 Skill,打乱检查项顺序
- 盲评对比:
python3 scripts/pair_blind.py --input items.json --output reports/{skill}/{date}/pair-blind.md
- 计算 Cohen's kappa 系数:评估框架的一致性度量
- kappa ≥ 0.8 → 优秀(评估标准高度稳定)
- kappa ≥ 0.6 → 可接受
- kappa < 0.6 → 需修订评估标准 - 趋势对比: 与历史评分对比,检测退化(分数下降 >5%)或进化(分数提升 >10%)
- 🛑 检查点 [M3]: 展示验证报告,确认无退化后继续
输出
reports/{skill}/{date}/pair-blind.md— 成对盲评一致性报告reports/{skill}/{date}/trend.json— 趋势对比数据
> 📖 脚本: scripts/pair_blind.py (v2.7.0) | 参考: references/regression-guide.md §6
三、M5 回归测试
触发方式
LLM: "为 x-rw-kb-build 构建回归测试集" / "运行 x-rw-kb-build 的回归测试"
CLI: python3 scripts/regression_runner.py <skill_dir> [--json|--save|--template]
流程
- 检查回归集: 读取
{skill}/regression/regression.json
- 不存在 → 提示用户用 M5 构建模式创建
- JSON 损坏 → 自动从.bak恢复(异常 E5) - 生成执行模板:
python3 scripts/regression_runner.py <skill> --template→ 输出 JSON 模板 - 逐样本执行: 回归集中每个样本包含
id/category/name/input/expected字段
- LLM 读取样本 → 执行 Skill → 对比实际输出与预期输出
- 记录:pass/fail + 耗时 + 备注 - 计算通过率:
通过率 = passed / (passed + failed) × 100%
- 通过率 ≥ 90% → ✅ 通过
- 通过率 ≥ 70% → ⚠️ 部分通过,需关注失败样本
- 通过率 < 70% → ❌ 不通过,阻塞升级 - 保存结果:
python3 scripts/regression_runner.py <skill> --save→reports/{skill}/{date}/ - 🛑 检查点 [M5]: 展示回归结果,失败样本需逐项说明原因
输出
reports/{skill}/{date}/{date}_v{version}_result.json— 回归执行结果{skill}/regression/regression.json— 回归集定义(M5构建模式产出)
异常处理
| 场景 | 处理 |
|---|---|
| 回归集不存在 | 提示用户先构建回归集 (M5 构建模式) |
| 单个样本超时 (>300s) | 标记 fail,原因="超时" (E6) |
| regression.json 损坏 | 从 .bak 恢复 (E5) |
> 📖 脚本: scripts/regression_runner.py | 参考: references/regression-guide.md
四、M6 结构审查
- 读取规约
references/skill-structure-conventions.md - 逐项检查 S1-S6 + R1-R4 + L1-L4
- 🔔 审查开始告知用户日志状态
- 生成审查报告 →
reports/{skill}/{date}/ - 生成 TODO → 🛑 检查点 [M6]: 展示 TODO, 等待 [Y/n]
- 打包备份 → 逐项修复 → 验证
- 更新
.improver-marker.md→ 同步 → 自动同步 export
五、M7 行为分析
- 数据门禁:
logs/executions/*.json≥ 3 - 信号提取 (L1) → 模式检测 (L2, P1-P5) → 归因 (L3, 决策树) → 建议 (L4) → 门禁 (L5)
- 生成报告 → 🛑 检查点 [M7]: 展示报告, 等待 [Y/n] → 执行
> 📖 完整流程 + 算法: references/m7_behavior_analysis.md
六、M8 改进提案生成
触发方式
LLM: "为 x-rw-kb-build 生成改进提案"
CLI: python3 scripts/improvement_generator.py generate <skill_path> --diagnosis <report.json> [--output <proposal.md>]
CLI: python3 scripts/improvement_generator.py list-backups <skill_path>
CLI: python3 scripts/improvement_generator.py rollback <skill_path> --backup <name>
集成: python3 scripts/integration.py generate-proposals <kb> --diagnosis <report.json>
流程
- 前置条件: M7 行为分析已完成,诊断报告已生成(
reports/{skill}/{date}/) - 读取诊断: 从诊断 JSON 中提取退化维度、根因定位、建议方向
- 定位根因段落: 在 SKILL.md 中精确定位需修改的章节和行号
- 生成改进方案:
python3 scripts/improvement_generator.py generate <skill> --diagnosis <diagnosis.json>
- 基于诊断结论 + M11差距项 + M12论文Insight → 生成 2-3 个改进方案
- 每个方案含:预期提分/风险/回滚方案
- 自动打包当前版本到back/{skill}/ - 生成 diff: 对比修改前后的 SKILL.md,输出 unified diff
- 🛑 检查点 [M8]: 展示改进方案 + diff 预览,等待 [Y/n] 确认
- 应用改进: 逐项修改 SKILL.md → 自动触发 M3 验证
- 回滚支持: 如 M3 检测到退化 →
python3 scripts/improvement_generator.py rollback <skill> --backup <name>
输出
reports/{skill}/{date}/proposal-{skill}.md— 改进提案reports/{skill}/{date}/diagnosis.json— 诊断结论(M7产出,M8输入)back/{skill}/— 改造前快照
回滚
# 列出可用备份
python3 scripts/improvement_generator.py list-backups <skill_path>
# 恢复到指定备份
python3 scripts/improvement_generator.py rollback <skill_path> --backup <backup_name>
与 M7/M1 的衔接
M7(感知退化) → diagnosis.json → M8(生成提案) → proposal.md → M1(执行改造) → M3(验证) → M7(再感知)
> 📖 脚本: scripts/improvement_generator.py (v2.8.0) | 诊断输入: references/m7_behavior_analysis.md
七、M1 完整改造
前置步骤:变更检测 (change_detector)
在 M1 改造前必须先执行变更检测,了解 Skill 自上次改造以来的变化:
LLM: 读取 git diff / 对比 back/ 中最新的归档版本
CLI: python3 scripts/change_detector.py <skill_dir> [reference] [--json|--commit HEAD~1]
CLI: python3 scripts/change_detector.py <skill_dir> --old-dir back/x-rw-skill-improver-k5/v3.0.1_20260630
变更检测流程:
1. 检测方式选择(优先级):git diff > 旧目录对比 > 无参考(首次改造)
2. 输出结构化变更清单:文件路径 / 影响范围 / 风险等级(🔴高/🟡中/🟢低)
3. 变更清单作为 M1 Step 1 评估的上下文输入
4. 如果无变更 → 提示"Skill 未发生修改,无需改造"
CLI 示例:
python3 scripts/change_detector.py /path/to/skill HEAD~1 --json # git diff 模式
python3 scripts/change_detector.py /path/to/skill -d /old/version # 目录对比模式
改造流程
- 检测自省模块状态(推荐M10,参见
scripts/integration.py enhanced_m1_pipeline())
0.5. M11 参照对比(可选,默认Y,参见scripts/integration.py prepare_m11())
0.6. M12 论文洞察(可选,默认n,参见scripts/integration.py prepare_m12()) - darwin+verifier 双评估
- 合并报告 → 改造方案 → 🛑 检查点 [M1-1]: 展示方案, 等待 [Y/n] → 计划 → 🛑 检查点 [M1-2]: 展示计划, 等待 [Y/n]
- 输入源扩展为 darwin + verifier + M7行为分析(可选) + M11差距项 + M12论文Insight → 自动打包到
back/{skill-name}/ - 逐项改造 → 验证 → 同步
> 📖 完整步骤: references/m1_full_improvement.md
多轮反思循环 (refinery)
M1 改造支持 Self-Refine 模式:多轮迭代改进,每轮基于前一轮的验证结果进行反思和优化。
LLM: M1 改造中自动触发多轮反思(当 darwin 评分 < 85 时)
CLI: python3 scripts/refinery.py --load <state.json> [--max-rounds 3] [--passing-score 85]
CLI: python3 scripts/refinery.py --save <state.json> --report <report.md>
流程:
1. 第 1 轮:生成初始改进方案 V1
2. M3 验证 → 获取 darwin+verifier 评分
3. 评分不达标(< 85)→ 反思:哪些维度不够?为什么?生成改进方案 V2
4. 条件终止:评分达标 / 达到最大轮数(3) / 连续 2 轮无提升 / 分数下降 >5
5. 输出最终方案 + 多轮改进历史
控制参数:
| 参数 | 默认值 | 说明 |
|------|:---:|------|
| max_rounds | 3 | 最大迭代轮数,防止无限循环 |
| passing_score | 85 | 达标分数(darwin加权),达到即停止 |
| stop_no_improvement | 2 | 连续 N 轮无提升就停止 |
| allow_score_drop | 0 | 允许分数下降值,超过立即停止 |
CLI 示例:
python3 scripts/refinery.py --load reports/skill/date/round1.json --max-rounds 3
python3 scripts/refinery.py --save reports/skill/date/final.json --report reports/skill/date/refinery-report.md
> 📖 脚本: scripts/refinery.py (v2.7.0) | 思想来源: Self-Refine 论文
八、回滚
每次改造前自动打包。回滚: 列出快照 → 选择 → 确认 → 覆盖。保留最近10个。
> 📖 完整规范: references/rollback_guide.md
九、输出体系
| 位置 | 用途 |
|---|---|
reports/{skill}/{date}/ |
improver 主副本 |
{skill}/.improver-reviews/{date}/ |
目标Skill同步副本 |
{skill}/.improver-marker.md |
审查标识 |
back/{skill}/ |
改造前快照 |
x-rw-skills-export/ |
自动 rsync |
> 📖 完整规范: references/output_directories.md
九-B、三层架构集成适配器 (scripts/loop_adapter.py)
| 函数 | 用途 | 失败行为 |
|---|---|---|
is_available() |
检测下游 LoopEngine 是否可调用 | 静默返回 False,不阻塞 |
detect_domain() |
解析目标 Skill 的领域类型(基于目录名 + frontmatter) | 返回 "general" |
skill_audit() |
对目标 Skill 执行审计巡检(46 项) | 返回空结果集 |
get_info() |
获取 LoopEngine 运行状态快照 | 返回空 dict |
Gate 模式: 所有调用失败时静默降级,不影响主流程。仅被 scripts/integration.py 的 enhanced_m1_pipeline() 内部导入使用。
十、异常处理
| # | 异常 | 处理 |
|---|---|---|
| E1 | Skill不存在 | 列出可用Skill |
| E2 | SKILL.md损坏 | 从 back/ 恢复 |
| E3 | 改造后评分下降 | 提示回滚 |
| E4 | 用户取消 | 保留报告 |
| E5 | regression损坏 | 从 back/ 恢复 |
| E6 | 样本超时 | 标记fail |
| E7 | 无历史数据 | 首次基线 |
| E8 | 同日已有审查 | 追加序号 |
| E9 | 快照冲突 | 追加v2 |
| E10 | 回滚失败 | 更早快照 |
| E11 | 同步写入失败 | 仅主副本 |
| E12 | 改造方案逻辑矛盾 | 标记方案失效,回退Step 3重新生成 |
十一、M10 自省模块植入
植入方式(匿名追加,零侵入)
M10 自省模块以 Markdown 注释块 <!-- ... --> 包裹,追加到 SKILL.md 尾部。
侵入性担保:
- 不修改 SKILL.md 原有内容(仅尾部追加)
- 不依赖特定编译器/渲染器(纯注释)
- 可完整剥离(strip),不留残留
日志格式说明
每次执行后,被检Skill记录一条 JSON 日志到 logs/executions/:
{
"id": "exec-{YYYYMMDD}-{序号}",
"timestamp": "{当前时间}",
"input_summary": "{用户请求摘要,10-20字}",
"self_score": {"overall": 1-10, "clarity": 1-10, "depth": 1-10, "actionable": 1-10},
"bottleneck": "本次执行中最不满意的1个点",
"improvement_suggestion": "针对瓶颈的1条具体改进建议",
"deviation_signals": {"deviation_score": 0-1, "missed_steps": []},
"metrics": {"total_tokens": 0, "fallback_triggered": false}
}
> 评分说明: 1-3=严重不足, 4-6=基本可用, 7-8=良好, 9-10=卓越
.selfupgrade 开关机制
| 文件位置 | 格式 | 说明 |
|---|---|---|
{kb_path}/.selfupgrade |
JSON | 控制自省模块启停 |
{
"enabled": true,
"version": "2.0",
"description": "自省模块开关。关闭后不记录日志,不影响Skill原生功能。"
}
状态优先级: 文件不存在→默认关闭 | 存在但enabled=false→主动关闭 | 存在且enabled=true→正常运行
4步植入流程
| Step | 操作 | 函数 |
|---|---|---|
| 1 | 检测当前状态 | detect_existing(kb_path) |
| 2 | 生成自省模块模板 | generate_template() |
| 3 | 匿名追加到SKILL.md | apply(kb_path, template) |
| 4 | 创建开关+日志目录 | create_switch() + init_logs_dir() |
逆操作(剥离)
strip(kb_path): 删除自省模块 → 删除 .selfupgrade → 删除 logs/ 目录。
触发示例
M10: "为 x-rw-kb-build 植入自省模块"
M10: "检查 x-rw-kb-build 的自省模块状态"
M10: "剥离 x-rw-kb-build 的自省模块"
> 📖 完整规范: references/m10_selfcheck_module.md | 脚本: scripts/selfcheck_injector.py
十二、M11 参照对比
三层搜索策略
采用逐层降级设计,确保在任何网络环境下都能产出对比结果。
| 层级 | 来源 | 启用条件 | 说明 |
|---|---|---|---|
| Layer 1 | GitHub 搜索 | 首选 | 搜索技能类仓库中的 SKILL.md |
| Layer 2 | 可靠信源搜索 | Layer 1 无结果 | 官方文档、技术博客、行业白皮书 |
| Layer 3 | 本地降级搜索 | Layer 2 无结果 | 本地技能库中同类型技能 |
7维对比框架
| 编号 | 维度 | 英文 | 权重 | 评分范围 |
|---|---|---|---|---|
| D1 | 结构完整性 | Structure | 20% | 1-10 |
| D2 | 清晰度与可读性 | Clarity | 15% | 1-10 |
| D3 | 功能完备性 | Completeness | 20% | 1-10 |
| D4 | 可维护性 | Maintainability | 15% | 1-10 |
| D5 | 可扩展性 | Extensibility | 10% | 1-10 |
| D6 | 健壮性 | Robustness | 10% | 1-10 |
| D7 | 创新性 | Innovation | 10% | 1-10 |
整合到M1 Step 0.5
M11 差距报告作为 M1 Step 0.5 的"行业对标"输入:
M11 参照对比 ──差距报告──→ M1 Step 0.5 (全面评估)
│
▼
升级策略优先级
P0/P1 差距自动提升为 M1 高优先级改进项。
> 📖 完整规范: references/m11_benchmark_compare.md | 脚本: scripts/benchmark_comparer.py
十三、M12 论文洞察
领域映射
从 SKILL.md 的 description 自动推断领域,并映射到 arxiv 分类:
| 领域 | arxiv 分类 | 搜索关键词 |
|---|---|---|
| 知识库 | cs.CL | retrieval augmented generation, knowledge base, RAG |
| 构建 | cs.CL | knowledge graph construction, ontology |
| 审查 | cs.CL | LLM evaluation, text classification |
| 改造 | cs.AI | prompt optimization, self-improving LLM |
| 占星 | cs.CE | ephemeris, astrological computation |
arxiv实时搜索
使用 arxiv API (http://export.arxiv.org/api/query) 实时搜索最新论文:
search_query = all:{keywords} AND cat:{category}
可行性评分过滤
每项改进映射包含三个评分维度:
| 维度 | 范围 | 说明 |
|---|---|---|
| 方法成熟度 | 1-5 | 论文方法的技术验证充分性 |
| 适配难度 | 1-5 | 改造到当前技能的工作量(越高越难) |
| 预期收益 | 1-5 | 引入后对技能质量的提升预期 |
网络不可用时自动降级到预置经典论文库。
整合到M1 Step 0.6
M12 Insight 报告作为 M1 Step 0.6 的"前沿趋势"输入,与 M11 差距项共同构成 Step 3 改进提案的输入源。
> 📖 完整规范: references/m12_paper_insight.md | 脚本: scripts/paper_searcher.py
十四、M13 幻觉检测 (v3.1.0-dev 新增)
触发方式
LLM: "检查 x-rw-kb-build 输出中有没有幻觉"
LLM: "验证这个改造方案的声明是否都可追溯"
CLI: python3 scripts/hallucination_check.py check <text_file> [--strictness relaxed|normal|strict]
CLI: python3 scripts/hallucination_check.py check-stdin [--json]
CLI: python3 scripts/hallucination_check.py verify-claim "<声明文本>"
CLI: python3 scripts/hallucination_check.py self-check <skill_dir> [--json]
四维检测框架
| 维度 | 检测内容 | 检测方式 |
|---|---|---|
| 事实准确性 | 不可验证声明、虚构API、缺少引用 | 正则模式扫描 + 文件路径真实验证 |
| 内部一致性 | 步骤数矛盾、排他性声明冲突、数值不一致 | 结构化分析(声明 vs 实际) |
| 来源可溯性 | 模糊引用("有研究表明")、虚构文件路径 | 模式匹配 + 文件系统验证 |
| 对抗验证 | 关键声明是否能经受反方质疑 | 生成对抗prompt → 由 LLM 执行 |
流程
LLM 调用路径 (M13 模式)
- 提取关键声明: 从 Skill 的 SKILL.md 或改造方案中提取含绝对化表述的句子
- 模式扫描: 按 M13 四维检测框架逐项扫描
- 事实准确性: 检查是否引用了不存在的 API/参数/文件
- 内部一致性: 检查步骤数、数量声明是否前后一致
- 来源可溯性: 检查"根据研究"等模糊引用是否可追溯 - 对抗验证: 对每个关键声明执行
verify-claim— LLM 从反方视角挑战
```
声明: "darwin 8维评估体系覆盖了所有Skill质量维度"
对抗问题:- 是否存在未被覆盖的质量维度?(如安全性、可访问性)
- 8个维度的选择依据是什么?是否有文献支持?
- 综合判断: 可信 / 部分可信需修正 / 不可信
```
- 文件路径验证:
self-check <skill_dir>— 验证 SKILL.md 中所有引用的文件路径是否真实存在 - 生成检测报告 → 🛑 检查点 [M13]: 展示幻觉评分 + 详细发现清单
- 修正: 对每个 Critical/High 发现,追溯来源或修正声明
CLI 调用路径
# 检测单个文件
python3 scripts/hallucination_check.py check reports/skill/date/proposal.md --strictness strict
# 从 stdin 管道输入
cat output.txt | python3 scripts/hallucination_check.py check-stdin --json
# 验证单个声明(生成对抗 prompt)
python3 scripts/hallucination_check.py verify-claim "darwin 8维覆盖了所有质量维度"
# 自检 Skill 自身的 SKILL.md
python3 scripts/hallucination_check.py self-check /path/to/skill --output reports/hallucination-report.md
幻觉评分
| 评分 | 评级 | 含义 |
|---|---|---|
| 90-100 | A | 极少幻觉风险 — 可信任 |
| 75-89 | B | 存在部分需修正的声明 |
| 60-74 | C | 多处声明需要验证 |
| 40-59 | D | 严重幻觉风险 — 需重写 |
| 0-39 | F | 不可信 — 必须废弃重写 |
惩罚权重: Critical=15, High=7, Medium=3, Low=1
整合到 M1 改造流程
M13 幻觉检测作为 M1 Step 3 改造方案的质量门禁:
- 提案生成后自动执行 self-check
- 幻觉评分 < 75 → 阻止方案进入执行阶段
- 关键声明强制走对抗验证
检测信号速查
| 信号 | 严重度 | 示例 |
|---|---|---|
| 虚构API/参数 | 🔴 Critical | 引用了不存在的 skill.auto_upgrade() |
| 不可验证声明 | 🟠 High | "这是业界公认的最佳方案" |
| 数值不一致 | 🟠 High | "分3步" 但实际列了5步 |
| 虚构文件路径 | 🟠 High | 引用了不存在的 /path/to/nonexistent.md |
| 缺少引用 | 🟡 Medium | "有研究表明" 但未给出处 |
| 推测当事实 | 🟡 Medium | "可能..." 但包装为确定结论 |
| 可能过时信息 | 🟡 Medium | 引用了 2024 年的版本信息 |
reports/{skill}/{date}/hallucination-report.md— 幻觉检测报告
> 📖 脚本: scripts/hallucination_check.py (v3.1.0-dev) | 检测引擎: RegEx模式 + 结构化分析 + 对抗验证
十五、Loop Engineering 改造 (v3.1.0-dev)
改造架构:三层渐进式认知增强
在现有12模式线性流水线上叠加三层认知增强,从"被动工具"升级为"认知伙伴":
┌─────────────────────────────────────────────────────────┐
│ Layer 2: 认知注入 (KDNA + 第一性原理) │
│ ┌───────────────────────────────────────────────────┐ │
│ │ Layer 1: 反馈闭环 (M7→M8→M1→M3 自动串联) │ │
│ │ ┌─────────────────────────────────────────────┐ │ │
│ │ │ Layer 0: 信任路由 (TrustRouter + 数据门禁) │ │ │
│ │ │ ┌───────────────────────────────────────┐ │ │ │
│ │ │ │ 现有 M1-M12 十二模式 (不改动) │ │ │ │
│ │ │ └───────────────────────────────────────┘ │ │ │
│ │ └─────────────────────────────────────────────┘ │ │
│ └───────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────┘
数据门禁 (P0.1)
M1/M7 入口强制执行数据门禁:
- logs/executions/*.json ≥ 3 → PASS
- logs/executions/*.json < 3 → BLOCKED:数据不足
- 引导期内(前3次改造) → 跳过门禁,标注"数据不足,改造基于静态分析"
> 实现: scripts/integration.py → check_data_gate()
信任路由 (P1.1-P1.4) ⭐
基于被检Skill的历史交互数据,动态调节检查点行为:
| 等级 | 条件 | 行为 |
|---|---|---|
| T1 | interactions<3 或 accept_rate<60% | 全量检查点,每步手动确认(保留现状) |
| T2 | interactions≥3 且 accept_rate≥60% | 分析类→预览+可覆盖自动通过;高风险类→保留确认 |
| T2+ | interactions≥10 且 accept_rate≥80% 且 consecutive≥5 | 信息收集类→静默执行+末尾摘要;高风险类→预览 |
| 🔴 T3禁用 | — | improver有不可逆的SKILL.md修改副作用,T3永久禁用 |
检查点路由表:
| 检查点 | 类型 | 路由等级 |
|--------|------|:---:|
| M10_check / M11_search / M12_search | 信息收集 | T2+ |
| M6_review / M7_analysis / M8_proposal | 分析输出 | T2 |
| M1_plan / M1_execute / M3_validate | 高风险决策 | T1 |
退化联动: M3检测到改造后评分下降 → 信任等级自动回退到T1
> 实现: scripts/integration.py → TrustRouter 类, get_checkpoint_trust_level(), degrade_on_regression()
> 画像存储: data/trust_profiles.json
引导期机制 (P0.2)
新Skill或日志不足的Skill前3次改造自动跳过数据门禁:
- 第1/3次: 标注 [引导期 1/3] 数据不足,基于静态分析
- 第4次起: 强制执行数据门禁
> 实现: scripts/integration.py → check_data_gate() → is_bootstrap
反馈闭环 (P2,待实现)
M7(感知退化) → M8(生成提案) → proposals/目录(沙盒) → 人工审核 → M1(改造) → M3(验证) → M7(再感知)
认知注入 (P3,待实现)
从 docs/主流框架分析/ 提炼评估公理集 → data/knda_improver.json (待创建) → 注入M1/M2/M7入口
辩论引擎 (P4,条件激活,待实现)
触发条件: 目标评分<70 + Token预算>15K + 非批量 + --debate
执行: M1改造 · M7分析 · 回滚 · 输出
技术: 编写规约 · 评估框架 · 回归集 · 报告模板
设计: 设计哲学 · 自进化愿景 · 五层金字塔 · 发布保护
文档版本: v3.1.0-dev
最后更新: 2026-07-03
<!-- [selfupgrade_hook: shutdown] -->
🔚 会话结束行为
当本次会话即将结束时,请执行以下操作:
- 构造自省日志:按以下 JSON 格式填写本次执行的评分和瓶颈
- 写入日志文件:保存到
logs/executions/exec-{YYYYMMDD}-{序号}.json - 确认写入:确保文件已存在且内容完整
{
"id": "exec-{YYYYMMDD}-{序号}",
"timestamp": "{ISO时间}",
"input_summary": "约10-20字用户请求摘要",
"self_score": {"overall": 1-10, "clarity": 1-10, "depth": 1-10, "actionable": 1-10},
"bottleneck": "本次执行中最不满意的1个点",
"improvement_suggestion": "针对瓶颈的1条具体改进建议",
"deviation_signals": {"deviation_score": 0-1, "missed_steps": []},
"metrics": {"total_tokens": 0, "fallback_triggered": false}
}
> ⚙️ 如 .selfupgrade 的 enabled: false,跳过本步骤。
<!-- [selfupgrade_hook: shutdown end] -->
<!-- [selfupgrade] 开始 -->
自省模块
本Skill每次执行后,请记录一条日志到 logs/executions/:
{
"id": "exec-{YYYYMMDD}-{序号}",
"timestamp": "{当前时间}",
"input_summary": "{用户请求摘要,10-20字}",
"self_score": {"overall": 1-10, "clarity": 1-10, "depth": 1-10, "actionable": 1-10},
"bottleneck": "本次执行中最不满意的1个点",
"improvement_suggestion": "针对瓶颈的1条具体改进建议",
"deviation_signals": {"deviation_score": 0-1, "missed_steps": []},
"metrics": {"total_tokens": 0, "fallback_triggered": false}
}
> 评分说明: 1-3=严重不足, 4-6=基本可用, 7-8=良好, 9-10=卓越
> ⚙️ 可通过 .selfupgrade 文件关闭此功能。
<!-- [selfupgrade] 结束 -->