【2026-04-08】用 Python 写一个 OpenClaw 插件:技能开发入门指南
手把手教你从头开发一个 OpenClaw 插件,从 SKILL.md 到 script.py,完整流程讲解。
用 Python 写一个 OpenClaw 插件:技能开发入门指南
OpenClaw 的强大之处在于它的插件系统。本文以一个"每日技术热点"插件为例,完整演示如何开发技能。
插件目录结构
`` tech-news/ ← 插件目录 SKILL.md ← 技能定义(必须) script.py ← 核心逻辑(必须) README.md ← 使用说明(可选) requirements.txt ← 依赖列表(可选)
skills/
`
第一步:创建 SKILL.md
`markdown
SKILL.md
name
tech-newsdescription
获取当日技术热点新闻,以简报形式呈现。trigger_keywords
["科技新闻", "技术热点", "今日科技", "技术简报"]capabilities
output_format
📰 今日技术简报1. [标题] 来源 | 阅读数
2. [标题] 来源 | 阅读数
3. [标题] 来源 | 阅读数
`
第二步:编写核心逻辑
`python
script.py
import requests
from datetime import datetime
def execute(keyword="技术热点"):
"""
获取当日技术热点
keyword: 搜索关键词
"""
# 这里用 Hacker News API(免费无需认证)
url = "https://hn.algolia.com/api/v1/search"
params = {{
"query": keyword,
"tags": "story",
"hitsPerPage": 3
}}
try:
resp = requests.get(url, params=params, timeout=10)
data = resp.json()
lines = ["📰 今日技术简报\n"]
for i, hit in enumerate(data["hits"][:3], 1):
title = hit.get("title", "无标题")
url = hit.get("url", hit.get("objectID", ""))
lines.append(f"{i}. {title}")
return "\n".join(lines)
except Exception as e:
return f"⚠️ 获取失败: {{str(e)}}"
`第三步:安装依赖(可选)
如果插件需要额外的 Python 包:
`txt
requirements.txt
requests>=2.28.0
beautifulsoup4>=4.11.0
`第四步:注册插件
编辑
config.yaml:`yaml
skills:
enabled:
- tech-news
paths:
- ./skills
`第五步:测试
重启 OpenClaw,然后发送:
> 今日技术热点
如果看到技术新闻简报,说明插件工作正常!
进阶技巧
添加定时任务
在
skills/tech-news/ 目录创建 cron.yaml:`yaml
schedule: "0 9 * * *" # 每天9点自动推送
auto_execute: true
`技能组合
OpenClaw 支持"技能链",让多个插件协作:
`markdown
SKILL.md 中添加
related_skills:
- local-llm # 先获取新闻
- summarizer # 再让 AI 总结
`调试技巧
`bash
查看技能加载日志
openclaw logs --skill tech-news单独测试技能
openclaw skill test tech-news
``分享你的插件
开发完成后,可以: 1. 提交到 ClawhHub 2. 给其他用户使用 3. 获得社区支持
祝你开发愉快!🔧