openclaw技能系统入门-openclaw安装-16章

博客1周前发布 骆驼
238 00

技能系统入门

技能(Skills)是 OpenClaw 的扩展机制,让 AI 能够操作外部工具和服务。从发送邮件、控制智能家居到搜索网页,技能赋予了 AI 与真实世界交互的能力。本文将全面介绍技能系统的架构、安装和配置。

技能是什么

一个技能本质上是 一个目录,包含描述文件和支持文件:

my-skill/├── SKILL.md          # 技能描述文件(必需)├── config.yaml       # 技能配置(可选)├── handler.js        # 工具实现逻辑(可选)└── README.md         # 使用说明(可选)

SKILL.md — 技能的核心

SKILL.md 是 AI 理解技能用途和使用方法的关键文件。它用自然语言描述了技能提供的工具和使用规则:

# Email Skill This skill provides email sending and reading capabilities. ## Tools ### send_emailSend an email to a recipient.- `to` (required): Email address- `subject` (required): Email subject- `body` (required): Email content ### read_inboxRead recent emails from the inbox.- `limit` (optional): Number of emails to return (default: 10) ## Rules- Always confirm with the user before sending emails- Never send emails to addresses not explicitly provided

技能与工具的关系

技能(Skill)= 一组相关工具(Tools)的集合    ├── 工具 A(如 send_email)    ├── 工具 B(如 read_inbox)    └── 工具 C(如 search_email)

一个技能可以提供多个工具,这些工具共享配置(如 API Key)和上下文。

三个加载位置及优先级

OpenClaw 从三个位置加载技能,按 优先级从高到低

1. Workspace Skills(工作区技能)— 最高优先级

~/.openclaw/workspace/skills/├── my-custom-skill/│   └── SKILL.md└── another-skill/    └── SKILL.md
  • 存放在你的工作区目录中
  • 适合自定义技能或本地开发中的技能
  • 优先级最高:同名技能会覆盖其他位置的版本

2. Managed Skills(托管技能)— 中等优先级

~/.openclaw/skills/├── email/│   └── SKILL.md└── calendar/    └── SKILL.md
  • 通过 clawhub install 安装的技能
  • 由 ClawdHub 市场管理和更新
  • 优先级中等

3. Bundled Skills(内置技能)— 最低优先级

/usr/lib/openclaw/skills/   # 系统安装位置├── web-search/│   └── SKILL.md├── file-ops/│   └── SKILL.md└── memory/    └── SKILL.md
  • OpenClaw 安装时自带的核心技能
  • 包括文件操作、Web 搜索、记忆管理等基础功能
  • 优先级最低:可被上层同名技能覆盖

优先级覆盖示例

假设三个位置都有 "web-search" 技能:workspace/skills/web-search/  → ✅ 使用这个(最高优先级)~/.openclaw/skills/web-search/ → ❌ 被覆盖bundled/skills/web-search/     → ❌ 被覆盖

这让你可以 定制内置技能的行为,而无需修改系统文件。

ClawdHub 技能市场

ClawdHub 是 OpenClaw 的官方技能市场,提供社区维护的各种技能。

搜索技能

# 搜索可用技能clawhub search emailclawhub search "smart home" # 查看技能详情clawhub info email-gmail

安装技能

# 安装技能clawhub install email-gmail # 安装特定版本clawhub install email-gmail@1.2.0 # 安装到 workspace 而非 managed 目录clawhub install email-gmail --workspace

更新技能

# 更新单个技能clawhub update email-gmail # 更新所有已安装技能clawhub update --all # 查看可更新的技能clawhub outdated

卸载技能

# 卸载技能clawhub uninstall email-gmail # 列出已安装技能clawhub list

技能配置

安装技能后,通常需要在 openclaw.yaml 中进行配置。

skills.entries 配置

# openclaw.yamlskills:  entries:    # 启用邮件技能并配置    email-gmail:      enabled: true      apiKey: "${GMAIL_API_KEY}"      env:        GMAIL_USER: "your@gmail.com"        # 启用日历技能    calendar-google:      enabled: true      apiKey: "${GOOGLE_CALENDAR_KEY}"        # 禁用某个内置技能    web-search:      enabled: false        # 技能自定义参数    smart-home:      enabled: true      env:        HOME_ASSISTANT_URL: "http://192.168.1.100:8123"        HOME_ASSISTANT_TOKEN: "${HA_TOKEN}"

enabled 控制

skills:  entries:    # 显式启用    my-skill:      enabled: true        # 显式禁用    dangerous-skill:      enabled: false        # 未指定 enabled → 默认启用(如果已安装)    another-skill:      apiKey: "${API_KEY}"

环境变量传递

技能可以接收环境变量作为配置:

skills:  entries:    my-skill:      enabled: true      # 方式 1:直接设置 API Key      apiKey: "${MY_SKILL_API_KEY}"            # 方式 2:通过 env 传递多个变量      env:        DATABASE_URL: "postgresql://localhost/mydb"        CACHE_TTL: "3600"        DEBUG: "false"
# 也可以在环境变量中设置export MY_SKILL_API_KEY="sk-xxxxx"

技能门控

技能可以通过 元数据门控 声明自己需要的前置条件。

metadata.openclaw.requires

在 SKILL.md 或 config.yaml 中声明需求:

# config.yamlmetadata:  openclaw:    requires:      # 需要特定平台      platform:        - "macos"        - "linux"            # 需要特定通道      channel:        - "discord"        - "telegram"            # 需要其他技能      skills:        - "web-fetch"  # 依赖 web-fetch 技能            # 需要特定能力      capabilities:        - "filesystem"  # 需要文件系统访问        - "network"     # 需要网络访问

门控行为

当技能的 requires 条件不满足时:

条件不满足 → 技能自动禁用(不会报错)    ↓AI 看不到该技能提供的工具    ↓如果 AI 尝试调用 → 返回工具不可用错误

这确保了技能只在合适的环境中运行,避免在不兼容的平台上出错。

安全注意事项

技能系统是 OpenClaw 中 最需要关注安全的部分,因为技能直接与外部系统交互。

1. 审查技能来源

# 安装前查看技能内容clawhub info suspicious-skill --full # 查看技能的 SKILL.md 了解它能做什么cat ~/.openclaw/skills/suspicious-skill/SKILL.md

只安装你信任的技能。第三方技能可能包含恶意代码。

2. 最小权限原则

# 只启用你实际需要的技能skills:  entries:    email-gmail:      enabled: true    # 确实需要发邮件    file-delete:      enabled: false   # 不需要就禁用    system-exec:      enabled: false   # 危险!除非确实需要

3. API Key 安全

# ✅ 使用环境变量export SKILL_API_KEY="sk-xxxxx" # ✅ 使用 .env 文件echo 'SKILL_API_KEY=sk-xxxxx' >> ~/.openclaw/.env # ❌ 不要硬编码在配置文件中# apiKey: "sk-xxxxx"  # 可能被提交到 Git!

4. 工具策略配合

通过 tools.profile 进一步限制技能可以执行的操作:

# 参见安全加固章节tools:  profile: "restricted"  allow:    - "send_email"    - "read_inbox"  deny:    - "delete_all_emails"  # 明确禁止危险操作

5. 定期更新

# 定期检查并更新技能clawhub outdatedclawhub update --all

及时更新可以获取安全补丁和 bug 修复。

创建自定义技能

如果市场上没有你需要的技能,可以自己创建:

# 创建技能目录mkdir -p ~/.openclaw/workspace/skills/my-custom-skill # 编写 SKILL.mdcat > ~/.openclaw/workspace/skills/my-custom-skill/SKILL.md << 'EOF'# My Custom Skill 这个技能提供了自定义功能。 ## Tools ### my_tool描述你的工具做什么。- `param1` (required): 参数说明- `param2` (optional): 可选参数说明 ## Rules- 在执行危险操作前询问用户确认EOF

将技能放在 workspace/skills/ 目录下即可自动加载,无需安装步骤。

技能系统让 OpenClaw 从一个聊天机器人进化为一个真正的智能代理平台。合理选择和配置技能,你的 AI 助手将能够完成越来越多的实际任务。

© 版权声明

相关文章

暂无评论

none
暂无评论...