Skip to content

第五章:Skills 与 Tools

让你的 AI 助手拥有"超能力"。

本章概览

在这一章中,你将了解:

  • 什么是 Skills 和 Tools,它们有什么区别
  • OpenClaw 的内置 Skills 有哪些
  • ClawHub Skills 市场如何使用
  • 常用的第三方 Skills
  • 如何开发自定义 Skill(入门介绍)
  • 持久化记忆系统的工作原理

本章重点

Skills 是让 OpenClaw 从"聊天机器人"变成"AI 助手"的关键。没有 Skills 的 OpenClaw 只能聊天;有了 Skills 的 OpenClaw 可以帮你做事。

5.1 理解 Skills 和 Tools

什么是 Skill?

Skill(技能) 是 OpenClaw 可以执行的一项具体能力。你可以把它理解为 AI 助手的"技能点"。

打个比方:

一个新入职的助理(没有 Skills 的 OpenClaw):
→ 只能和你聊天,回答问题

一个训练有素的助理(有 Skills 的 OpenClaw):
→ 能帮你发邮件(Email Skill)
→ 能帮你管理日程(Calendar Skill)
→ 能帮你查网页(Web Browse Skill)
→ 能帮你执行命令(Shell Skill)
→ 能帮你管理文件(File Manager Skill)
→ ...还能学习更多新技能

Skill vs Tool

在 OpenClaw 的体系中,这两个概念有细微区别:

SkillTool
定义一组相关功能的集合单个具体操作
比喻一门"技能"技能中的一个"动作"
例子"Email" Skillsend_email、read_inbox、search_email
安装通过 openclaw skills install随 Skill 一起安装
Skill: Email(邮件技能)
├── Tool: send_email      - 发送邮件
├── Tool: read_inbox      - 读取收件箱
├── Tool: search_email    - 搜索邮件
└── Tool: draft_email     - 创建草稿

Skill: Calendar(日历技能)
├── Tool: list_events     - 查看日程
├── Tool: create_event    - 创建日程
├── Tool: update_event    - 更新日程
└── Tool: delete_event    - 删除日程

简单来说:Skill 是一个功能包,里面包含多个 Tool。

5.2 内置 Skills

OpenClaw 安装后自带一些基础 Skills,开箱即用。

Shell(命令行执行)

让 AI 助手在你的电脑上执行命令。

你: 帮我看看当前目录下有哪些文件
AI: 我来帮你查看。

执行命令: ls -la

结果:
total 48
drwxr-xr-x  8 user  staff   256  1 15 10:30 .
drwxr-xr-x  5 user  staff   160  1 10 09:00 ..
-rw-r--r--  1 user  staff  1024  1 15 10:25 README.md
-rw-r--r--  1 user  staff  2048  1 15 10:30 package.json
drwxr-xr-x  3 user  staff    96  1 14 15:00 src
drwxr-xr-x  4 user  staff   128  1 14 15:00 docs

当前目录下有 2 个文件和 2 个子目录。

Shell Skill 的安全性

Shell Skill 非常强大,也非常危险。它可以执行任何命令行操作,包括删除文件、安装软件等。

建议:

  • 个人使用:可以启用,但注意消息白名单
  • 团队使用:谨慎开启,建议限制可执行的命令
  • 公开 Bot:绝对不要开启

Shell Skill 的配置:

yaml
# ~/.openclaw/skills/shell/config.yaml
skill: shell
enabled: true

# 安全设置
security:
  # 需要确认才能执行的命令(推荐开启)
  require_confirmation: true

  # 命令白名单(只允许这些命令)
  allowed_commands:
    - ls
    - cat
    - grep
    - find
    - echo
    - date
    - whoami

  # 命令黑名单(禁止这些命令)
  blocked_commands:
    - rm -rf
    - sudo
    - shutdown
    - reboot
    - mkfs
    - dd

  # 工作目录限制
  allowed_directories:
    - ~/Documents
    - ~/Desktop

File Manager(文件管理)

你: 帮我在桌面创建一个叫"项目资料"的文件夹

AI: 好的,我来帮你创建。

已创建文件夹: ~/Desktop/项目资料

你: 把 Downloads 目录下今天下载的 PDF 文件移到那个文件夹里

AI: 让我看看今天下载了哪些 PDF 文件...

找到 3 个 PDF 文件:
1. 产品需求文档_v2.pdf
2. 竞品分析报告.pdf
3. Q1财务报表.pdf

已全部移动到 ~/Desktop/项目资料/

Web Browse(网页浏览)

你: 帮我搜一下最新的 iPhone 发布日期

AI: 让我帮你查一下...

[搜索中...]

根据搜索结果,最新的 iPhone 16 系列于 2024 年 9 月发布,
包括 iPhone 16、iPhone 16 Plus、iPhone 16 Pro 和 iPhone 16 Pro Max。

Web Browse Skill 的配置:

yaml
# ~/.openclaw/skills/web-browse/config.yaml
skill: web_browse
enabled: true

# 搜索引擎
search_engine: google     # google / bing / duckduckgo

# 浏览限制
max_pages: 5              # 单次最多浏览 5 个页面
timeout: 10000            # 页面加载超时 10 秒

Memo(备忘录)

你: 记住:下周三的产品评审会改到下午 3 点

AI: 已记录!✅
    备忘:下周三的产品评审会改到下午 3 点

你 (三天后): 这周三有什么安排?

AI: 根据之前的记录,你有一个安排:
    📌 产品评审会 - 下午 3:00

内置 Skills 一览表

Skill功能默认状态风险等级
Shell执行命令行操作需手动启用
File Manager文件和文件夹管理启用
Web Browse网页搜索和浏览启用
Memo快速备忘录启用
Calculator数学计算启用
Code Runner运行代码片段需手动启用
Image Viewer查看和描述图片启用

5.3 ClawHub Skills 市场

什么是 ClawHub?

ClawHub 是 OpenClaw 的官方 Skills 市场,类似于:

ClawHub 之于 OpenClaw,就像:
- App Store 之于 iPhone
- Chrome 扩展商店 之于 Chrome 浏览器
- VSCode Marketplace 之于 VSCode

在 ClawHub 上,你可以浏览、搜索和安装社区开发的各种 Skills。

浏览和搜索

bash
# 搜索可用的 Skills
openclaw skills search email

# 输出
🐾 Search results for "email":

  Name                    Author          Stars   Downloads
  ──────────────────────  ──────────────  ──────  ──────────
  email-sender            @openclaw 4.8   50,000+
  gmail-integration       @community 4.5   25,000+
  outlook-connector       @msft-contrib 4.3   15,000+
  email-summarizer        @ai-tools 4.6   10,000+
  email-templates         @productivity 4.2   8,000+

Use 'openclaw skills info <name>' for details.

安装 Skill

bash
# 安装一个 Skill
openclaw skills install email-sender

# 输出
🐾 Installing email-sender...

  Downloading...  ████████████████████ 100%
  Checking dependencies...
  Configuring...

 email-sender installed successfully!

  This skill requires configuration:
  Run 'openclaw skills config email-sender' to set it up.

配置 Skill

bash
openclaw skills config email-sender
🐾 Configuring email-sender

? Email provider:
  ❯ Gmail
    Outlook
    Custom SMTP

? Gmail address:
  your-email@gmail.com

? App Password (see https://myaccount.google.com/apppasswords):
  xxxx xxxx xxxx xxxx

✅ email-sender configured!

Test it by asking your assistant to send an email.

管理已安装的 Skills

bash
# 查看已安装的 Skills
openclaw skills list

# 输出
🐾 Installed Skills

  Name              Version   Status     Type
  ────────────────  ────────  ─────────  ──────────
  shell             built-in  Disabled   Built-in
  file-manager      built-in  Enabled    Built-in
  web-browse        built-in  Enabled    Built-in
  memo              built-in  Enabled    Built-in
  email-sender      1.2.0     Enabled    ClawHub
  calendar-sync     2.0.1     Enabled    ClawHub
  crm-helper        0.8.3     Enabled    ClawHub

# 更新 Skill
openclaw skills update email-sender

# 卸载 Skill
openclaw skills uninstall crm-helper

# 启用/禁用
openclaw skills enable shell
openclaw skills disable shell

5.4 常用第三方 Skills

Email(邮件管理)

最受欢迎的 Skill 之一,让 AI 帮你处理邮件。

你: 帮我给 zhang@company.com 发一封邮件,主题是"产品评审会议纪要",
    内容是我们今天讨论的三个要点

AI: 好的,我来帮你编写并发送这封邮件。

📧 邮件预览:
收件人: zhang@company.com
主题: 产品评审会议纪要

张总,您好!

以下是今天产品评审会的三个要点:

1. 新功能上线时间确定为下月 15 日
2. UI 设计方案选择了方案 B(简洁风格)
3. 性能优化目标:页面加载时间 < 2 秒

请确认以上内容,如有补充请随时告知。

祝好!

确认发送吗?[发送 / 修改 / 取消]

你: 发送

AI: ✅ 邮件已发送!

Calendar(日历同步)

与 Google Calendar 或 Outlook Calendar 同步。

你: 看看我明天有什么日程

AI: 📅 明天(1月16日 周四)的日程:

  09:00 - 09:30  晨会 (会议室 A)
  10:00 - 11:30  产品需求评审 (线上 - Zoom)
  14:00 - 15:00  和设计师对接 (3楼工位)
  16:00 - 16:30  1-on-1 with 李总 (李总办公室)

一共 4 个安排。需要我帮你做什么调整吗?

你: 帮我把 14:00 的会改到 15:30

AI: ✅ 已更新:
  "和设计师对接" 14:00-15:00 → 15:30-16:30

⚠️ 注意:这和 16:00 的 "1-on-1 with 李总" 有 30 分钟重叠。
需要调整其他安排吗?

智能冲突检测

注意到了吗?AI 助手会自动检测日程冲突并提醒你。这是 Calendar Skill 的一个贴心功能。

CRM 集成

与常见的 CRM 系统(如 HubSpot、Salesforce)集成。

你: 查一下"字节跳动"这个客户的最新进展

AI: 🏢 客户信息 - 字节跳动

  状态:商务洽谈中
  负责人:王五
  最近活动:
  - 1月12日:发送了产品演示方案
  - 1月10日:电话沟通(30分钟)
  - 1月8日:首次会面

  下一步:1月18日 安排第二次演示

  合同金额:预估 ¥500,000
  成交概率:60%

更多实用 Skills

Skill功能描述使用示例
todo-list待办事项管理"帮我添加一个待办:写周报"
translator多语言翻译"把这段话翻译成英文"
note-taker会议记录"帮我记录会议要点"
image-genAI 图片生成"画一个产品架构图"
pdf-readerPDF 文档阅读"总结这个 PDF 的要点"
weather天气查询"明天北京天气怎么样"
news新闻摘要"今天科技领域有什么新闻"
stock股票行情"查一下苹果的股价"
timer定时提醒"30 分钟后提醒我开会"
qr-code二维码生成"帮我生成这个网址的二维码"

5.5 自定义 Skill 开发(入门)

适合有技术兴趣的读者

这一节介绍如何开发自定义 Skill。如果你对编程不感兴趣,可以跳到下一节 5.6 持久化记忆系统

Skill 的基本结构

一个 OpenClaw Skill 本质上是一个 Node.js 模块,遵循特定的目录结构:

my-custom-skill/
├── package.json          # 包信息
├── index.js              # 入口文件
├── config.schema.json    # 配置项定义
├── tools/                # Tool 定义
│   ├── tool-a.js
│   └── tool-b.js
└── README.md             # 说明文档

最简单的 Skill 示例

让我们创建一个简单的"每日名言"Skill:

javascript
// index.js
module.exports = {
  name: "daily-quote",
  version: "1.0.0",
  description: "每天提供一句励志名言",

  tools: [
    {
      name: "get_quote",
      description: "获取一句随机名言",
      parameters: {},
      execute: async () => {
        const quotes = [
          "Stay hungry, stay foolish. -- Steve Jobs",
          "The only way to do great work is to love what you do. -- Steve Jobs",
          "Innovation distinguishes between a leader and a follower. -- Steve Jobs",
          "Done is better than perfect. -- Sheryl Sandberg",
          "Move fast and break things. -- Mark Zuckerberg",
        ];
        const randomQuote = quotes[Math.floor(Math.random() * quotes.length)];
        return { quote: randomQuote };
      },
    },
  ],
};

安装自定义 Skill

bash
# 从本地目录安装
openclaw skills install ./my-custom-skill

# 或者从 GitHub 安装
openclaw skills install github:username/my-custom-skill

使用效果

你: 给我一句今天的名言

AI: 📜 今日名言:
    "Done is better than perfect." -- Sheryl Sandberg

    完成比完美更重要。希望今天的你也能践行这句话!

Skill 开发文档

如果你想深入了解 Skill 开发,可以参考:

Skill 开发的关键概念
  1. Tool Definition -- 定义 Skill 提供的具体操作
  2. Parameters Schema -- 定义每个操作需要的参数(JSON Schema 格式)
  3. Execute Function -- 实际执行操作的函数
  4. Config Schema -- 定义 Skill 需要的配置项
  5. Hooks -- 生命周期钩子(安装、卸载、启动、停止)

5.6 持久化记忆系统

什么是持久化记忆?

普通的 AI 聊天(比如直接使用 ChatGPT 网页版)有一个问题:它不记得之前的对话。每次新对话都是从零开始。

OpenClaw 的持久化记忆系统(Persistent Memory)解决了这个问题。它让 AI 助手拥有"长期记忆"。

没有持久化记忆:
对话 1:你好,我叫张三
AI:你好,张三!

对话 2(第二天):我叫什么名字?
AI:抱歉,我不知道你的名字。

有持久化记忆:
对话 1:你好,我叫张三,我是产品经理
AI:你好,张三!很高兴认识你。(保存到记忆:用户叫张三,是产品经理)

对话 2(第二天):我叫什么名字?
AI:你叫张三,你是一名产品经理!

记忆的工作原理

                    持久化记忆系统

                 ┌────────────────┐
    用户消息 ──→ │  Agent Engine   │
                 │                │
                 │  1. 检索相关记忆│ ← 从记忆库中找到相关条目
                 │  2. 构建上下文  │ ← 把记忆加入对话上下文
                 │  3. 调用 LLM   │ ← 发送给 AI
                 │  4. 生成回复   │
                 │  5. 提取记忆点  │ ← 从对话中提取值得记住的信息
                 │  6. 保存到记忆  │ ← 写入记忆库
                 │                │
                 └────────────────┘

                    ┌────▼────┐
                    │  记忆库  │  ~/.openclaw/memory/
                    └─────────┘

记忆的存储格式

json
// ~/.openclaw/memory/user_001.json
{
  "memories": [
    {
      "id": "mem_001",
      "content": "用户叫张三,是一名产品经理",
      "category": "personal_info",
      "created_at": "2025-01-10T08:00:00Z",
      "source": "telegram",
      "importance": 0.9
    },
    {
      "id": "mem_002",
      "content": "用户的公司正在开发一个电商平台,预计 Q2 上线",
      "category": "work",
      "created_at": "2025-01-12T14:30:00Z",
      "source": "whatsapp",
      "importance": 0.8
    },
    {
      "id": "mem_003",
      "content": "用户喜欢简洁的回复风格,不喜欢太啰嗦",
      "category": "preference",
      "created_at": "2025-01-13T10:15:00Z",
      "source": "telegram",
      "importance": 0.7
    }
  ]
}

管理记忆

bash
# 查看所有记忆
openclaw memory list

# 搜索记忆
openclaw memory search "产品"

# 手动添加记忆
openclaw memory add "我喜欢喝美式咖啡"

# 删除某条记忆
openclaw memory delete mem_003

# 清空所有记忆
openclaw memory clear --confirm

你也可以在聊天中直接管理记忆:

你: 记住我喜欢简短的回复

AI: 已记住!✅ 之后我会尽量保持回复简洁。

你: 你都记住了哪些关于我的信息?

AI: 以下是我记住的关于你的信息:
    1. 你叫张三,是一名产品经理
    2. 你的公司正在开发电商平台,预计 Q2 上线
    3. 你喜欢简短的回复

    需要修正或补充什么吗?

你: 忘掉第 3 条

AI: 好的,已删除"你喜欢简短的回复"这条记忆。

记忆配置

yaml
# ~/.openclaw/config.yaml
memory:
  enabled: true

  # 最大记忆条目数
  max_entries: 1000

  # 自动提取记忆
  auto_extract: true

  # 记忆重要性阈值(低于此值的不保存)
  importance_threshold: 0.5

  # 自动总结(当记忆太多时自动合并相似条目)
  auto_summarize: true
  summarize_threshold: 800    # 超过 800 条时触发总结

  # 记忆类别
  categories:
    - personal_info    # 个人信息
    - work             # 工作相关
    - preference       # 偏好设置
    - knowledge        # 知识点
    - task             # 任务相关

记忆是跨平台的

和对话上下文一样,持久化记忆也是跨平台共享的。你在 Telegram 上告诉 AI 的信息,在 WhatsApp 上也能被回忆起来。这是因为记忆存储在本地的统一记忆库中,不区分平台。

5.7 Skills 的产品启示

给产品经理的思考

OpenClaw 的 Skills 体系有几个值得学习的产品设计模式:

1. 核心最小化,扩展最大化 OpenClaw 本身只做消息路由和 AI 对话。所有具体功能都通过 Skills 扩展。这让核心产品保持简洁,同时通过生态实现无限可能。

2. 渐进式功能释放 用户一开始只用基础聊天功能。随着熟悉,逐步发现和安装新 Skills。这种渐进式体验降低了学习门槛。

3. 安全分级 不同 Skills 有不同的风险等级。高风险 Skills(如 Shell)需要手动启用和额外确认。这种分级设计在你的产品中也可以借鉴。

4. 社区驱动的生态 ClawHub 让社区开发者可以贡献 Skills,形成了一个正向循环:更多 Skills → 更多用户 → 更多开发者 → 更多 Skills。

本章小结

在这一章中,我们了解了:

  • Skills 和 Tools 的概念:Skill 是功能包,Tool 是具体操作
  • 内置 Skills:Shell、File Manager、Web Browse、Memo 等
  • ClawHub 市场:浏览、安装、管理第三方 Skills
  • 常用 Skills:Email、Calendar、CRM 等提效利器
  • 自定义开发:Skill 的基本结构和开发流程
  • 持久化记忆:让 AI 助手拥有长期记忆的能力

下一步

如果你觉得命令行操作太麻烦,别担心 -- 第六章:OneClaw 桌面版 将介绍完全不需要命令行的使用方式。