5.4 KiB
5.4 KiB
name, description, when_to_use, aliases, allowed_tools
| name | description | when_to_use | aliases | allowed_tools |
|---|---|---|---|---|
| intervention-data | 生成和校验单句精确干预、正则干预候选 TSV,复用标签大师的 target 语法校验,并从历史干预表推断 code 到下发 domain 的固定映射。 | 当用户希望新增、检查或整理干预规则,例如给某个 query 或多轮正则生成干预条目、确认设备和标签是否合法、推断下发 domain 时使用。 | intervention, rule-intervention, 干预数据 | read_file, write_file, edit_file, grep_search, glob_search, ask_user_question, python_exec |
使用这个 skill 处理“query/多轮表达 -> 干预 TSV 候选 -> 合法性校验”的任务。
干预数据目前有两类:
- 单句精确干预:一行四列,格式为
设备\tquery\tcode\t下发domain。 - 正则干预:一行三列,格式为
设备\t正则\t标签。
其中单句精确干预的 code 和正则干预的 标签 使用同一套 target 语法,和 label-master 的输出一致,但不包含复杂度判断。校验时必须复用 skills/label-master/scripts/validate_label_output.py 的逻辑。
关键约定
unify表示全部设备。- 设备必须优先从历史干预文件中归纳,不要随手发明设备名。
- 单句精确干预如果用户没有提供
下发domain,必须从历史精确干预表中按code -> 下发domain的多数映射推断。 - 正则干预支持多轮。多轮正则使用
beforeQuery#上一轮#query#当前轮这种片段表达,最终通常包在^...$中。 - 默认只生成候选 TSV 和校验结果,不直接追加到历史干预文件。只有用户明确要求“追加到某个文件末尾”或“修改某个文件”时,才使用通用文件编辑能力。
- 所有产物优先写到当前会话的
output/或scratchpad/下,不要写到项目根目录的output/。
推荐流程
- 先确认用户要哪种干预方式:
- 单句精确干预:query 必须完全命中。
- 正则干预:适合一类表达、多轮上下文或需要泛化的高频 case。
- 确认设备。用户没说设备时,必须问设备;可以提示
unify表示全部设备。 - 确认目标标签/code。它必须是完整 target,例如
Agent(tag="地图导航")、QA()、Chat()或合法 function 调用。 - 如果是单句精确干预:
- 确认
query。 - 如果没有
下发domain,调用脚本根据历史数据推断。
- 确认
- 如果是正则干预:
- 确认当前轮 query。
- 如果有多轮,确认前序 query 顺序。
- 用户给了原始正则就保留;没给时由脚本生成
^query#...$或^beforeQuery#...#query#...$。
- 调用
scripts/generate_intervention_candidate.py生成候选 TSV 和校验报告。 - 展示时只展示必要信息:干预类型、设备、候选 TSV、校验是否通过、需要用户确认的问题。
脚本能力
skills/intervention-data/
SKILL.md
knowledge/
type_match_agent.json
scripts/
intervention_common.py
analyze_intervention_sources.py
audit_intervention_sources.py
generate_intervention_candidate.py
validate_intervention_records.py
analyze_intervention_sources.py
读取历史干预文件,输出设备枚举、code -> 下发domain 多数映射、常见标签,以及 knowledge/type_match_agent.json 中的下发表。
示例:
python skills/intervention-data/scripts/analyze_intervention_sources.py
generate_intervention_candidate.py
从 JSON 输入生成候选 TSV,并自动校验。输入可以来自文件或 stdin。
audit_intervention_sources.py
审计现有两个历史干预文件,只输出摘要,不修改文件。适合验证当前 skill 的校验规则和存量数据是否贴合。
示例:
python skills/intervention-data/scripts/audit_intervention_sources.py
单句精确干预示例:
{
"mode": "exact",
"device": "unify",
"query": "播放周杰伦的歌",
"target": "Agent(tag=\"音乐\")"
}
正则多轮干预示例:
{
"mode": "regex",
"device": "miCar",
"before_queries": ["第一个"],
"query": "红绿灯少的路线",
"target": "Agent(tag=\"地图导航\")"
}
validate_intervention_records.py
校验候选 TSV。支持 --mode exact 或 --mode regex。
规则包括:
- 列数正确。
- 设备合法。
code/标签优先通过 label-master 校验;如果 label-master 未收录但历史干预表中已经稳定出现,允许作为候选通过,并给出 warning 让用户确认知识库是否需要补齐。- 单句精确干预的
下发domain与历史多数映射一致,默认不一致为 warning,--strict-domain时为 error。 - 单句精确干预还会用
type_match_agent.json做配置校对;配置值可以是更宽泛前缀,例如音乐 -> contentCopilot可以兼容历史里的contentCopilot|music。 - 正则可编译,且包含
query#片段。 - 与历史文件重复或冲突时给出 warning/error。
展示格式
生成候选后,优先用这个格式回复:
我生成了一条候选干预,先不写入历史文件。
- 类型:单句精确干预 / 正则干预
- 设备:xxx
- 标签:xxx
- 校验:通过 / 有问题
候选 TSV:`设备 query code 下发domain`
需要确认:是否写入某个文件,或是否调整设备/标签/正则。
如果校验失败,先解释失败原因,不要要求用户直接落盘。