自动检测任务类型并动态加载对应 Skill;新任务到达时分析意图匹配最佳 Skill 并自动加载。支持 core/protected/dynamic 分级保护,即插即用、零配置,兼容任意 OpenClaw 部署。触发词:"自动加载skill"、"动态加载"、"智能匹配skill"。
Auto Skill Loader v2.0是一项面向实际任务的技能,主要用于即插即用 · 核心锁定 · 零配置;零配置启动 - 安装即用,不需要修改任何参数;
Skill 保护等级;每个 Skill 可在 SKILL.md frontmatt。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
即插即用 · 核心锁定 · 零配置
每个 Skill 可在 SKILL.md frontmatter 中声明 level:
--- name: my-skill level: core # core | protected | dynamic(默认 dynamic) ---
| 级别 | 标识 | 自动加载器行为 | 适用场景 |
|---|---|---|---|
| 🔒 core | core |
完全跳过,不触碰 | 内存管理、行为审计、安全监控 |
| 🛡️ protected | protected |
不自动卸载,加载需显式确认 | 心跳机制、风控、proactive-agent |
| 🔄 dynamic | dynamic |
自由加载/卸载 | 天气、股票分析、文案生成等 |
未声明 level 的 Skill 默认为 dynamic。
即使 Skill 未声明 level,以下类型的 Skill 始终视为 core:
memory 的 Skill(如 memory-distiller)audit 或 security 的 Skillproactive 的 Skill此白名单可通过配置文件覆盖。
按 OpenClaw 标准目录结构扫描,不硬编码任何路径:
# 优先级从高到低:
L1: {workspace}/.agents/skills/*/SKILL.md # Agent 专属
L2: ~/.agents/skills/*/SKILL.md # 全局共享
L3: {openclaw_install}/skills/*/SKILL.md # OpenClaw 内置
L4: {openclaw_install}/extensions/*/skills/*/SKILL.md # 扩展 Skill
路径解析规则:
{workspace} = 当前工作目录(自动检测)~ = 用户主目录(跨平台兼容){openclaw_install} = OpenClaw 安装目录(通过 npm root -g 或环境变量检测)读取每个 SKILL.md 的 frontmatter:
name - Skill 名称description - 功能描述(用于意图匹配)level - 保护等级(默认 dynamic)version - 版本号(可选)只解析 frontmatter,不读取全文(节省 token)。
可加载列表 = 所有 Skill - core Skill - protected Skill(除非显式请求)
根据用户消息,从可加载列表中匹配:
匹配策略(优先级从高到低):
| 优先级 | 策略 | 说明 |
|---|---|---|
| P1 | 触发词匹配 | 消息包含 Skill description 中的触发词 |
| P2 | 语义匹配 | 消息意图与 description 语义相近 |
| P3 | 领域匹配 | 消息领域与 Skill 领域一致 |
冲突解决:
找到匹配 Skill 后:
SKILL.mdscripts/ 或 references/ 下的资源如果任务不属于当前 Agent 的职责范围,尝试动态路由给其他 Agent:
路由流程:
agents_list 获取当前可用 Agent 列表SOUL.md 或 IDENTITY.md 判断职责匹配度sessions_send 转发任务路由失败处理:
以下情况视为"无法发现其他 Agent":
agents_list 返回空列表(单 Agent 部署)agents_list 报错(服务异常)此时应直接回复用户,告知路由失败:
这个任务更适合 [目标 Agent 类型,如:A股量化专家/P哥] 处理。 但当前环境无法自动路由:[具体原因] - 原因 A:当前是单 Agent 部署,未发现其他 Agent - 原因 B:其他 Agent 未配置或不在线 - 原因 C:无法读取其他 Agent 的职责描述 **你可以:** 1. 直接 @[目标 Agent 名] 联系他 2. 让我在当前 Agent 尝试处理(可能不够专业) 3. 检查其他 Agent 是否已启动并配置正确
为什么不静默 fallback?
文件:auto-skill-loader.config.yaml
位置:Skill 目录内 或 workspace 根目录
# auto-skill-loader.config.yaml # 所有字段可选,均有合理默认值 # 额外标记为 core 的 Skill(名称列表) coreSkills: [] # - my-custom-audit-skill # - my-critical-skill # 排除不参与自动加载的 Skill(名称列表) skipSkills: [] # - deprecated-skill # 是否启用 Agent 路由(默认 true) enableRouting: true # 匹配模式:strict(仅触发词)| normal(触发词+语义)| fuzzy(全部) matchMode: normal # 日志级别:silent | info | debug logLevel: info
不创建此文件 = 使用全部默认值 = 直接能用。
用户:北京今天天气怎么样? → 匹配 weather skill(dynamic) → 自动加载 weather/SKILL.md → 按其指导获取天气
用户:关闭记忆管理 → 检测到 memory-distiller 是 core 级 → 拒绝操作,提示:此 Skill 为核心级,不可自动卸载
用户:帮我写一首诗 → 无 Skill 匹配 → 正常回复(不加载任何 Skill)
预览匹配结果,不实际加载:
在消息中包含 --dry-run 或在配置中设置:
dryRun: true # 全局 dry run
输出格式:
🔍 Auto Skill Loader - Dry Run 任务: "北京今天天气怎么样" 匹配: weather (dynamic, L3, score: 0.95) 候选: [weather, summarize] 操作: 将加载 weather/SKILL.md
| 环境 | 支持 |
|---|---|
| Windows | ✅ |
| macOS | ✅ |
| Linux | ✅ |
| 单 Agent | ✅ |
| 多 Agent | ✅ |
| ClawHub 安装 | ✅ |
| 手动安装 | ✅ |
相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 133.7万人学习
共49课时 | 82.4万人学习