SuperAPI AI 工具集

skillhone-synthesis

测试与质量

查看项目

更新于 10-16 05:58

技能介绍

SkillHone Synthesis 是一个构建通用闭式问答数据集的技能,其数据来源于真实的工具使用过程。所谓闭式,是指每个问题都有唯一预期答案,且答案可由代码检查,检查方式包括精确匹配、正则表达式、数值容差、枚举或 JSON 字段校验。最终基准在基础评分环节不应依赖人工或 LLM 评审。

【核心思路】

  1. 使用工具探索目标环境。
  2. 将探索所得保存为由实体、关系和推理路径构成的图。
  3. 从该图中挖掘多个问答样本。
  4. 验证每个样本是否可答、唯一、稳定、足够困难且可机械评分。 该技能与具体领域无关,具体的任务文件、工具封装和领域示例均位于本技能之外。

【任务规格覆盖】 任务描述是求解器提示词与验证器共同的真实来源。当任务规格中出现“must”“must not”“required”“forbidden”“output format”“validation”“quality”“acceptance”等词时,应将这些条款视为基准要求。对于任务规格中任何可机械检查的要求,生成的验证器都应包含对应的 scores 键,包括文件名、原始输出与包装输出、语法有效性、编译或渲染成功、必填字段、禁用字符串、形状与数量限制、样式令牌、固定调色板、仅本地依赖等制品约束。验证器不应只检查最终金标准答案;若任务说明输出必须具有特定结构或质量,只要该结构或质量可从答案或本地辅助工具观察,就应直接评分。主观要求可用确定性代理近似,但纯主观偏好不应被悄悄转换为通过。

【输入】 以下输入若缺失应主动询问:任务描述(探索的环境以及由谁回答)、工具接口(探索者可用的 CLI 命令、MCP 工具、shell 命令或本地文件)、答案契约(允许的答案类型与格式规则)、目标产量(最终样本数量及可选的覆盖目标)。不得推断隐藏工具或隐藏数据集;若任务需要实时数据,Cartographer 必须通过所提供的工具采集。

【简单、困难与损坏的问题】 简单问题通常询问单个明显字段、直接点名目标实体、以一个强模型可能已知的事实结尾,或无需使用工具即可回答。困难问题通常强制至少一次真实操作:从属性而非名称或 ID 解析实体、遍历多个关联记录、合并两个来源的数据、计算聚合/比率/排名/派生阈值、应用有意义的排除或平局规则、返回无法近似猜测的精确值。损坏问题不是困难问题;若其有歧义、不稳定、主观、不可验证或无法从收集到的图中回答,应丢弃或修复。示例:过于简单——“记录 R001 的显示名称是什么?”;更好——“在固定时间窗内 A 分段的记录中,排除无关联事件的记录后,按指标 X 排名第三的记录,其稳定来源代码是什么?”第二问之所以困难,不在于实体冷门,而在于求解器必须解析集合、应用约束、排名、遍历关系并返回精确终端值。

【流水线】

  1. Cartographer:使用工具探索,构建图与推理路径(有工具访问)。
  2. Miner:将推理路径转换为问答候选与验证片段(无工具访问)。
  3. Validator:剔除不可答、不唯一、不稳定、不可执行或不够困难的候选(有时有工具访问)。
  4. Deduper:去重并生成最终文件(无工具访问)。 Cartographer 是唯一应采集新事实的阶段;Miner 与 Deduper 仅对已保存的产物操作;当要求经验性难度门时,Validator 可运行被测求解器。

【探索图】 图存储可复用证据:实体(记录、行为者、群组、来源、类别、事件等)、边(链接、归属、成员、类别、来源、时间窗等关系)、路径(从种子到终端答案的预计算路径)。一个好的图应支持多个不同问题,并可被重复挖掘而无需新的工具调用。最小格式见 references/exploration_graph.md。

【难度构建】 使用少量清晰变换而非大量装饰层:去标识化(用可解析属性描述实体而非点名)、增加跳数(要求在图中跟随关系)、跨来源(合并两个工具返回视图)、派生值(计算均值、排名、比率、取模或阈值)、谨慎约束(添加时间窗、排除项和平局规则使答案唯一)。不要通过罗列禁止实体或添加任意琐事来构建难度,问题应像真实分析任务。示例见 references/difficulty_traps.md 和 references/layerwise_obfuscation.md。

【输出】 最终基准有两个文件。final.jsonl 仅包含评分器所需字段:{"question": "...", "verification": "answer = open('answer.txt').read().strip()\ngold = 'GOLD'\nscores = {'exact': _normalize(answer) == _normalize(gold)}"}。final.meta.jsonl 按相同顺序保存调试元数据:{"answer": "GOLD", "answer_type": "string", "seed_id": "segment_a", "walk_id": "walk_001", "difficulty": "hard"}。图产物保存在 graph/<seed_id>/ 下,必要时可放入共享探索库以供未来重新挖掘。

【验证规则】 每个候选必须通过以下门:可从图与工具回答;在措辞下答案唯一;在预期评估期内稳定;验证片段可执行且能拒绝错误哨兵答案;验证片段覆盖任务规格中可机械检查的输出约束而非仅终端金值;问题不泄露金答案或中间实体 ID;问题需要工具使用或真实计算而非仅凭记忆。片段模板见 references/verification_format.md。

【本技能不是什么】 不是现有数据集的评估器;不是任何特定数据集、API 或公司工作流的领域包;不是生成开放式写作任务的方式;在高风险基准场景下也不能替代人工抽样。