AionClaw Skill需通过SKILL.md中task_matchers数组声明关键词匹配规则,并用requirements字段排除不兼容环境,再于index.ts中结合输入校验或task_type元数据动态拦截非目标请求。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

要让AionClaw Skill只响应并处理特定类型的任务,必须切断它对通用指令的被动响应能力,只在明确匹配预设条件时才被激活——这依赖于Skill声明层的精准约束,而非运行时的逻辑判断。
在SKILL.md中声明任务匹配规则
打开你的Skill目录下的SKILL.md文件,在YAML frontmatter区域添加task_matchers字段。
例如,限定该Skill仅处理含“周报生成”“本周总结”“weekly report”等关键词的指令:
【task_matchers字段必须为数组格式,且至少包含一个非空字符串】
```yaml
task_matchers:
- "周报生成"
- "本周总结"
- "weekly report"
```
OpenClaw在任务分发前会逐个比对用户输入是否包含任一matcher子串(不区分大小写,支持中文/英文混合),只有全部不匹配时才会跳过该Skill。
用requirement字段排除不兼容环境
如果该Skill依赖Excel工具但当前设备未安装,或仅适用于Windows系统,可在frontmatter中声明硬性限制:
```yaml
requirements:
tools: ["excel"]
os: ["windows"]
```
OpenClaw加载Skill列表时会预检这些条件。只要tools缺失或OS不匹配,该Skill将直接从可用列表中剔除,不会进入后续匹配流程。
注意:requirements是启动过滤器,不是运行时守卫。它不阻止Skill被调用,而是阻止它出现在模型可选技能池里。
在index.ts中动态拦截非目标请求
方法一:基于原始输入做关键词白名单校验
在index.ts的主函数入口处插入判断:
```ts
if (!input.includes("周报") && !input.includes("weekly") && !input.includes("summary")) {
return { success: false, message: "本Skill仅处理周报类任务" };
}
```
方法二:检查OpenClaw注入的task_type元数据(需AionClaw v2.8+)
```ts
if (context?.task_type !== "weekly-report") {
throw new Error("不支持的任务类型");
}
```
【context.task_type由AionClaw网关根据SKILL.md中的type字段自动注入,需提前在frontmatter中定义type: "weekly-report"】


















