🚀 什么是技能系统?
技能(Skills)是 OpenClaw 的核心扩展机制,允许你:
- 调用外部 API:天气查询、新闻获取、邮件发送、股票查询。
- 执行自定义脚本:Python 脚本、Shell 命令、数据库操作。
- 集成第三方服务:Notion、Slack、GitHub、Google Calendar。
- 创建专属功能:个人知识库、自动化工作流、数据分析工具。
简单来说,技能 = AI 的超能力。没有技能,AI 只能聊天;有了技能,AI 可以做事。
📚 内置技能一览
OpenClaw 预装了多个实用技能,开箱即用:
1. 搜索技能 (`search`)
- 功能:联网搜索,获取实时信息。
- 示例:
用户:2026 年 AI 芯片的最新突破是什么?
AI: [调用 search 技能] 正在搜索... 根据最新报道,华为与科大合作推出了 1000 PetaFLOPS 量子芯片...
2. 天气技能 (`weather`)
- 功能:查询实时天气和预报。
- 示例:
用户:上海明天会下雨吗?
AI: [调用 weather 技能] 查询结果:上海明天多云,气温 22-28°C,降水概率 10%。
3. 文件操作技能 (`file_ops`)
- 功能:读取、写入、搜索、整理文件。
- 示例:
用户:帮我整理一下 ~/Documents 下的所有 PDF 文件。
AI: [调用 file_ops 技能] 已扫描 15 个 PDF 文件,按日期分类到 ~/Documents/Sorted_PDFs/。
4. 代码执行技能 (`code_exec`)
- 功能:在沙盒中运行 Python/Shell 代码。
- 示例:
用户:计算一下 2026 年 4 月 3 日是星期几?
AI: [调用 code_exec 技能] 运行 Python 代码... 2026-04-03 是星期五。
5. 健康检查技能 (`healthcheck`)
- 功能:系统安全审计、防火墙配置、漏洞扫描。
- 示例:
用户:检查一下我的 OpenClaw 部署是否安全。
AI: [调用 healthcheck 技能] 扫描完成:发现 2 个中危风险,建议更新 SSH 配置...
🔧 如何启用技能?
技能默认已启用,但部分技能需要配置 API 密钥。
1. 查看已启用技能
openclaw skills list
输出示例:
已启用技能:
- search (Brave Search API)
- weather (wttr.in)
- file_ops (本地)
- code_exec (沙盒)
- healthcheck (本地)
需要配置的技能:
- slack (未配置)
- github (未配置)
2. 配置技能 API 密钥
编辑 `~/.openclaw/credentials/skills.yaml`:
skills:
slack:
bot_token: "xoxb-xxx"
signing_secret: "xxx"
github:
token: "ghp_xxx"
notion:
api_key: "secret_xxx"
3. 启用/禁用技能
openclaw skills enable slack
openclaw skills disable github
🛠️ 自定义技能开发
如果你想让 AI 做特殊任务,可以自己编写技能。
1. 技能目录结构
技能存储在 `~/.openclaw/skills/` 目录下,每个技能一个文件夹:
skills/
├── my_custom_skill/
│ ├── SKILL.md # 技能说明文档
│ ├── script.py # 主脚本
│ └── config.yaml # 配置文件
2. 编写技能脚本
示例:创建一个“随机笑话”技能 (`random_joke`)。
`script.py`:
import requests
def main():
resp = requests.get("https://icanhazdadjoke.com/", headers={"Accept": "application/json"})
joke = resp.json()['joke']
return f"😂 随机笑话:{joke}"
if __name__ == '__main__':
print(main())
`SKILL.md`:
random_joke
描述
获取一条随机笑话,用于娱乐。
触发条件
- 用户请求“讲个笑话”、“来点幽默”等。
输出
返回一条随机笑话。
3. 注册技能
编辑 `~/.openclaw/config.yaml`,添加技能路径:
skills:
custom:
- ~/.openclaw/skills/my_custom_skill
重启 Gateway:
openclaw gateway restart
4. 测试技能
用户:讲个笑话
AI: 😂 随机笑话:为什么程序员总是分不清万圣节和圣诞节?因为 Oct 31 == Dec 25!
🔌 技能市场 (ClawHub)
不想自己写技能?去 ClawHub 下载别人写好的技能!
1. 搜索技能
clawhub search weather
输出示例:
1. openclaw-weather-pro (作者:@dev123)
描述:增强版天气技能,支持多城市对比、历史数据查询。
安装:clawhub install openclaw-weather-pro
2. openclaw-weather-simple (作者:@newbie)
描述:极简版天气技能,只返回当前温度。
安装:clawhub install openclaw-weather-simple
2. 安装技能
clawhub install openclaw-weather-pro
3. 更新技能
clawhub update all
4. 发布你的技能
如果你写了一个好用的技能,可以发布到 ClawHub 共享:
clawhub publish ~/.openclaw/skills/my_awesome_skill
🎯 实战案例:构建个人知识库技能
假设你想让 AI 能回答你个人的笔记、文档、邮件内容,可以创建一个个人知识库技能。
1. 准备数据
将你的笔记、文档整理到 `~/KnowledgeBase/` 目录:
KnowledgeBase/
├── notes/
│ ├── 2026-04-01 会议记录.md
│ └── 2026-04-02 项目计划.md
├── emails/
│ └── inbox.json
└── docs/
└── project_spec.pdf
2. 编写检索脚本
`script.py`:
import os
import re
def main(query):
kb_dir = os.path.expanduser("~/KnowledgeBase")
results = []
for root, _, files in os.walk(kb_dir):
for f in files:
if f.endswith(('.md', '.txt', '.json')):
path = os.path.join(root, f)
with open(path, 'r', encoding='utf-8') as file:
content = file.read()
if query.lower() in content.lower():
results.append(f"📄 {path}: {content[:200]}...")
if results:
return "找到相关内容:\n" + "\n".join(results[:5])
else:
return "未找到相关内容。"
if __name__ == '__main__':
import sys
print(main(sys.argv[1]))
3. 注册技能
创建 `SKILL.md` 并添加到配置,重启 Gateway。
4. 使用
用户:帮我找一下 4 月 1 日的会议记录。
AI: 📄 /Users/young/KnowledgeBase/notes/2026-04-01 会议记录.md: 会议主题:Q2 项目规划...
⚠️ 安全注意事项
自定义技能拥有系统执行权限,需谨慎:
- 沙盒运行:尽量在容器或沙盒中执行外部脚本。
- 权限控制:限制技能访问敏感目录(如 `~/.ssh`, `~/Documents/Financial`)。
- 审计日志:记录所有技能调用,定期检查异常行为。
- 来源验证:只安装可信作者的技能,避免恶意代码。
🎓 进阶:技能组合与自动化
你可以组合多个技能,构建复杂的工作流:
示例:每日晨报技能
1. 调用天气技能:获取当天天气。
2. 调用新闻技能:获取最新科技新闻。
3. 调用日历技能:提取今日会议。
4. 组合输出:生成一份“每日晨报”。
`script.py`:
from skills.weather import get_weather
from skills.search import search_news
from skills.calendar import get_events
def main():
weather = get_weather("Shanghai")
news = search_news("AI 最新")
events = get_events("today")
report = f"""
📰 每日晨报 (2026-04-03)
======================
🌤️ 天气:{weather}
📰 新闻:{news[:200]}...
📅 会议:{events}
"""
return report
📚 下一步学习
- 技能开发文档:[OpenClaw 技能 API 参考](https://docs.openclaw.ai/skills/api)
- ClawHub 市场:[浏览热门技能](https://clawhub.ai)
- 社区教程:[用户贡献的技能教程](https://github.com/openclaw/skills-examples)
夜雨聆风