🦾 OpenClaw Skills

世界上有一种能力,能让AI从"聊天"变成"干活"

"凌晨2点47分,我看着一个Skill独立完成了一项原本需要我手动操作3小时的工作。那一刻我明白,AI不只是会说话,它真的会干活。"

📖 什么是 OpenClaw Skills?

OpenClaw Skills 是 OpenClaw 框架中的模块化能力单元,它定义了 AI Agent 可以执行的具体任务和操作。每个 Skill 本质上是一个封装好的功能模块,让 AI 能够调用外部工具、访问数据、执行计算或与外部系统交互。

简单来说,如果说 LLM 是 Agent 的"大脑",那么 Skills 就是它的"手脚"——让 AI 真正能够动手干活。

核心概念:Skill = 功能描述 + 输入参数定义 + 执行逻辑

🔧 工作原理

1. 声明式定义

每个 Skill 都需要一个清晰的声明,告诉 AI:

2. 动态发现与调用

OpenClaw 使用 Tool Calling 机制,让 LLM 能够:

3. 执行流程

用户输入 → LLM理解意图 → 匹配Skill → 提取参数 
    → 执行Skill → 返回结果 → LLM生成回复

🛠️ OpenClaw 实战应用

场景1:文件操作 Skill

{
  "name": "file_read",
  "description": "读取文件内容,支持文本文件和图片",
  "parameters": {
    "type": "object",
    "properties": {
      "file": {
        "type": "string",
        "description": "文件路径"
      },
      "limit": {
        "type": "number",
        "description": "最大读取行数"
      }
    },
    "required": ["file"]
  }
}
💡 实战技巧:描述要写得像给另一个开发者看一样详细,AI 才能准确理解何时使用这个 Skill。

场景2:Web 搜索 Skill

{
  "name": "web_search",
  "description": "使用 DuckDuckGo 搜索网页,返回标题、URL和摘要",
  "parameters": {
    "type": "object",
    "properties": {
      "query": {
        "type": "string", 
        "description": "搜索关键词"
      },
      "count": {
        "type": "number",
        "description": "返回结果数量(1-10)"
      }
    },
    "required": ["query"]
  }
}

场景3:自定义业务 Skill

假设你有一个电商系统,可以创建这样的 Skill:

{
  "name": "query_order_status",
  "description": "查询订单状态,返回物流信息和预计送达时间",
  "parameters": {
    "type": "object",
    "properties": {
      "order_id": {
        "type": "string",
        "description": "订单号,格式:ORD-XXXXXX"
      }
    },
    "required": ["order_id"]
  }
}

📝 开发规范

1. 命名规范

2. 描述写作指南

3. 参数设计原则

🎯 最佳实践

✅ 好的 Skill 设计:
- 单一职责:一个 Skill 只做一件事
- 幂等性:多次调用结果一致
- 容错处理:参数错误时友好提示
- 结果结构化:返回 JSON 便于 LLM 理解
⚠️ 常见坑点:
- 描述太模糊,AI 不知道该不该用
- 参数过多,LLM 提取困难
- 返回值没有结构化,LLM 难以解析

🚀 进阶技巧

Skill 组合

多个 Skills 可以组合完成复杂任务:

# 分析竞品网站
1. web_search: 搜索竞品信息
2. web_fetch: 抓取详情页面  
3. browser: 截图对比界面
4. write: 生成分析报告

条件 Skills

根据上下文动态决定是否暴露某些 Skills:

# 只有在代码目录下才暴露 git 相关 Skills
if cwd.include?('/code/'):
    available_skills.append(git_skills)

🎬 结语

"世界上有一种能力叫 OpenClaw Skills,它在代码与意图之间搭建了一座桥。你不需要告诉AI每一步怎么做,你只需要告诉它你想做什么。剩下的,交给 Skills。"

掌握 Skills 的开发与使用,你就掌握了让 AI 从"会说话"进化到"会干活"的钥匙。开始构建你的第一个 Skill 吧!