🌐 项目主页:https://suijq.github.io/Beyond/ | A/B 实测数据:
ab_result.json
修复/增强小模型(3B-14B)输出的 OpenClaw 技能包。零外部 API 依赖。
- v17 规范版:v16 description 重构 + 移除独立全角转半角能力(全角修复收敛为 json 管道内子能力, text 输入不再强制转换), 修复 v16 技能劫持简单文本处理请求的问题
- 8 条能力:JSON 修复 / 代码识别 / 信息提取 / 立场分析 / 事实标注 / 列表化 / 截断检测 / 降级回退
- 路由式执行:先分类 code/json/list/text,只跑相关管道(省 ~40% 推理步数)
scripts/fix.py:Step 0/1/2/3 与 §C 的确定性实现(stdlib 零依赖,--selftest内置回归)- 所有 JSON 输出统一
data + meta契约(code 模式例外;list/截断输出为纯文本)
作为技能:提供小模型原始输出,按 SKILL.md 规则自动修复/增强。
作为工具:
python3 scripts/fix.py route '<text>' # code|json|list|text
python3 scripts/fix.py json '<json>' # 修复 + data/meta 输出
python3 scripts/fix.py norm '<text>' # 全角→半角(独立工具保留, json 管道子能力)
python3 scripts/fix.py sanitize '<text>' # Step 1 去噪(机械子集)
python3 scripts/fix.py extract '<text>' # §C 提取(日期/金额/数字)
python3 scripts/fix.py trunc '<text>' # 截断检测
python3 scripts/fix.py --selftest # 回归自测python3 tests/verify_31.py # 31 项修复追踪断言 + 10 项脚本断言 + 16 项 v15 功能断言 (57/57)
python3 scripts/fix.py --selftest # fix.py 内置回归
python3 scripts/check_version.py # 版本一致性检查 (SKILL.md 为权威版本源)
python3 tests/ab_test.py --runs=3 # A/B 效果实测(需平台模型代理; 无代理时跳过)
python3 tests/ab_test.py --adopt-runs=3 # A/B 采纳率实测(仅 description 注入, 模型自决是否调用)CI( GitHub Actions )每次 push 自动跑前三项, 提交前可本地先跑一遍。
- v18.0.0:description 定稿 F3b(Fix damaged output (broken JSON, truncation, escaped code) or extract dates/amounts from text. Use when input is garbled or unstructured; not images/audio., 155B): 关键是把"修复脏输出"与"从文本提取"并列成双场景, 解决 E4b 对正常文本 extract 场景"不需要修"的漏召——配对验证(同轮同任务) C0 10/12(83%) vs E4b 5/12(42%), C+ 7/12(58%) vs E4b 4/12(33%), 三轮累计 C0 19/24(79%) vs E4b 18/36(50%); 弱项全补上(trunc 3/3 vs 1/3、code 1/3 vs 0/3、extract 3/3 vs 1/3), 负例 C0/C+ 双 0/9(user_fullwidth 哨兵干净); 期望分 63.9
- v17.1.0:description 定稿 E4b(Fix garbled text/code: broken JSON, truncation, escaped code. Extract dates/amounts too. Zero-dep. Use when input is messy; not images/audio., 141B): 基于 Phase 2 锦标赛 E4 胜出候选微调——E4 原版含 fullwidth 承诺了 v17 已移除的能力, 负例误采纳 C0 2/9、C+ 1/9(全在 user_fullwidth 哨兵), 去 fullwidth 后 C0/C+ 双 0/9; C0 采纳 5/12、C+ 4/12(user_code C+ 3/3, 唯一代码转义命中版本), 期望分 33.3
- v17.0.0:移除独立 Normalize 步骤(方案A保守拆): 全角→半角不再是独立能力, §B 收敛为 json 管道内子能力(text 输入不再强制全角转换, 修复 v16 技能在模糊输入下劫持简单文本处理请求的问题); description 微调(E3 去 fullwidth); user_fullwidth 移入负例集(回归哨兵); 正式基线采样 n=3
- v16.0.0:description 重构 + 新增采纳率 A/B。description 从"小模型输出专属"改为"任意 LLM/API 脏输出通用"(解决宿主模型自认非小模型→不调用的问题); ab_test.py 新增采纳率测试(仅注入 description, 模型自决是否调用)。正式基线:C+ 真实环境采纳率 40%、期望分 40.2、负例 0 误采纳
- v15.0.0:功能升级 + 协议变更(CC BY-NC-SA 4.0)。功能:全角字母数字/货币规范化、有序列表路由(年份排除)、Python 字面量(None/True/False)修复、shebang/Shell 路由、
sanitize/extract确定性子命令、修复 route CLI 空操作、代码截断误报(多函数文件)、版本一致性检查扩展至 fix.py/examples.md - v14.2.0:list 规则提前到 Step 0 路由(code→json→list→text),命中即直接输出 markdown 跳过 Step 1-5,消除小模型空响应倒退;fix.py route() 同步 list 分支;description/Safety 强化(实测 skillscore 83→90, A- 级)
- v14.1.3:缺陷 4/5 修复(截断检测结构性失效 + 空响应升温重试)
- v14.1.0:补 Safety 文档/触发句/边界句/反模式/验证循环/examples TOC
- v14.0.0:合并 main(v13 管道骨架)+ v12-fixed-31(确定性脚本/回退细节);正式版
- v13.0.1:机械验证修正 R2 路由(强信号即判)
- v13:路由式重构(Step 0-5)
- v12.2.0:基于 v12.1 修复 31 个审计问题
- v12.1/v12/v11:作者原版迭代
| 版本 | 分数 | 等级 |
|---|---|---|
| v15.0.0 | 100 | A |
| v14.2.0 | 90 | A- |
v15.0.0 为 2026-08-01 skillscore 实测(六类满分:Frontmatter/Description/Conciseness/Structure/Instruction/Content hygiene,零 findings);v14.2.0 为同日 skillscore 2.0.2 实测。
本项目采用 CC BY-NC-SA 4.0(署名-非商业性使用-相同方式共享)。
- 署名:使用/分发须注明原作者 SuiJQ;
- 非商业:禁止商业性使用(公司/商业项目使用需另行授权);
- 相同方式共享:衍生作品必须采用相同许可证。
完整法律文本见 LICENSE。
- 版本号唯一来源:
SKILL.mdfrontmatter 的metadata.version; 发版时改此处, 其余文档由scripts/check_version.py在 CI 中校验同步。 - 主页更新: 下载计数/刷新按钮由
index.html内嵌 JS 实现( GitHub Release 官方 API, 10 分钟缓存 + 一键刷新 + 10s 超时 )。 - 发版同步清单(下次升级照此执行, 避免文档/数据脱节):
SKILL.mdfrontmattermetadata.version→ 新版本号;- 重跑 A/B 实测(
tests/ab_test.py --runs=3) → 更新ab_result.json; - 同步本文件
版本历史/skillscore 跑分/A/B 实测结果三处表格; - 同步
index.html的 meta/tagline/统计卡/A/B 表格/版本历史(数据源均为ab_result.json); - 本地回归:
verify_31.py+fix.py --selftest+check_version.py; - commit + push(CI 自动复跑), 打 release tag 并同步重传 release 资产(SKILL.md + 完整 tarball, 两者内含 README/index.html)。
OpenClaw 只把技能的 name + description 注入 system prompt(正文不在 prompt 内), 因此 description 能否触发模型主动调用 = 技能是否真正被用。C0 = 中性引导(纯 description 触发力), C+ = 真实环境引导(模拟 OpenClaw 部署, 任务匹配时优先调用)。
| 版本 | description | C0 中性引导 | C+ 真实环境 |
|---|---|---|---|
| v16.0.0 | Fix malformed outputs from any LLM/API: broken JSON, truncation, fullwidth chars, noise, code. Use when input looks damaged; not for images/audio. | 4/15 (27%) | 6/15 (40%) |
| v17.0.0 | First clean damaged text/code: fix broken JSON, truncation, escapes; extract dates/amounts. Zero-dep. Use when input is garbled; not images/audio. | 6/12 (50%) | 4/12 (33%) |
| v18.0.0 | Fix damaged output (broken JSON, truncation, escaped code) or extract dates/amounts from text. Use when input is garbled or unstructured; not images/audio. | 10/12 (83%) | 7/12 (58%) |
| v17.1.0 | Fix garbled text/code: broken JSON, truncation, escaped code. Extract dates/amounts too. Zero-dep. Use when input is messy; not images/audio. | 5/12 (42%) | 4/12 (33%) |
2026-08-03 配对验证(xiaomi/mimo-v2.5, 4 任务 × 3 次, F3b 与 E4b 同轮同任务对比)。运行
python3 tests/ab_test.py --adopt-runs=3复现(调用信号 = 输出含技能名或 ≥2 个契约结构特征, 防误报)。明细见ab_result.json。解读: v18.0.0 定稿 F3b——把"修复脏输出"与"从文本提取"并列成双场景, 模型对正常文本 extract 不再觉得"不需要修"。配对验证 F3b vs E4b: C0 10/12(83%) vs 5/12(42%), C+ 7/12(58%) vs 4/12(33%); 每任务 C0: badjson 3/3 平, trunc 3/3 vs 1/3、code 1/3 vs 0/3、extract 3/3 vs 1/3, 两个弱项全补上; 负例 C0/C+ 双 0/9(user_fullwidth 哨兵干净)。期望分 63.9。
| 用例 | baseline | skill | Δ |
|---|---|---|---|
| json_basic 坏JSON修复 | 0 | 100 | +100 ✅ |
| json_brace 缺右括号 | 0 | 100 | +100 ✅ |
| code_c C代码识别 | 0 | 100 | +100 ✅ |
| code_escape 引号转义 | 0 | 100 | +100 ✅ |
| extract 信息提取 | 0 | 50 | +50 ✅ |
| decision 立场分析 | 0 | 50 | +50 ✅ |
| normalize 全角转半角 | 5 | 92.5 | +87.5 ✅ |
| trunc 截断检测 | 0 | 100 | +100 ✅ |
| list 列表格式化 | 100 | 100 | 0 |
| fact 事实标注 | 0 | 100 | +100 ✅ |
平均:baseline 10.5 → skill 89.2(Δ+78.8),胜 9、平 1、败 0。
extract/decision 单次 0 分属 runs=2 采样波动(小模型推理不稳定), 两者 baseline 仍为 0、skill 均为正收益; normalize baseline 5 来自单次 10 分(模型恰好全角转对一次)。要更稳可
--runs=3复跑。明细见ab_result.json。v17 变化:normalize 独立能力已移除(全角修复收敛为 json 管道子能力), 该行不再参与 v17 基线; v17 基线(8 用例, runs=3)见 Phase 2 重跑结果, 写入
ab_result.json后同步本表。