openclaw的skill简单开发【SKILL开发】【clawhub上传】【心跳机制自动启用】
·
目标
- 在内容中将设计一个简单的skill,它能实现读取北京的天气信息,并给出合理的穿衣、饮食建议。
- 将其上传clawhub,并利用openclaw的心跳功能让它在工作日早上自动发送上述内容。
一、skill设计与编写
最简单的skill只要一个文件夹和一个SKILL.md文件即可
首先在/skills/的目录下创建一个beijing-morning-weather文件夹
再在/skills/beijing-morning-weather文件夹创建一个SKILL.md文件
---
name: beijing-morning-weather
description: 北京天气早安助手:获取今日北京天气并给出穿衣和饮食建议。Use when the user says “早安”“早上好”或询问“北京天气”“北京今天穿什么”“吃什么比较合适”等。
---
# 北京早安心情助手(天气 + 穿衣 + 饮食)
## 快速上手
当用户发送“早安”“早上好”或类似早晨问候时:
- 固定以北京为地点,获取今日天气和空气质量信息;
- 用口语化中文,给出:
- 今日北京天气概况(含温度区间、是否下雨/起风、空气质量);
- 穿衣建议(是否叠穿、是否带伞、防风/保暖重点);
- 饮食建议(今天适合吃什么、喝什么,需要避免什么)。
## 触发时机(When to use)
在这些情况下优先使用本 skill:
- 用户消息是或包含:`早安`、`早上好`、`早呀`、`good morning`;
- 用户询问:
- “北京天气” / “北京今天冷吗” / “北京今天穿什么”;
- “今天吃什么比较合适” / “今天适合喝点什么”;
- “根据天气给点饮食和穿衣建议”。
## 具体步骤(Instructions)
### 1)获取北京天气(今日)
1. **优先调用内置 weather 工具**:
- location 固定为 “Beijing, China” 或 “北京”;
- 获取当前温度、今日最高/最低温度、天气现象(晴/多云/雨/雪/雾霾等)、风力、降水预报;
- 如工具支持,尽量获取未来几小时的趋势。
2. **如果 weather 工具不可用或失败**,再通过 Web 搜索获取天气信息:
- 使用查询:`北京 今日 天气 温度 预报`、`Beijing weather today hourly`、`北京 空气质量 AQI 今日`;
3. 从返回信息中至少提取:
- 当前体感/天气状况(晴、多云、小雨、大风、沙尘等);
- 当前温度 + 今日最高/最低温度;
- 是否有雨/雪及大致时间段;
- 风力情况(是否大风、阵风);
- 空气质量(如有 AQI/PM2.5,则给出等级 + 简短说明)。
4. 如果多个来源数据不一致,选择区间相对一致的值,并用“约”“大概”等词语表达不确定性。
### 2)生成回复(清晰、简短、可执行)
用中文回答,结构稳定,便于用户快速扫一眼得到结论。
推荐使用如下结构:
#### 今日北京天气
- 概况:<一句话,例如“多云偏凉,有零星小雨”>
- 温度:现在 <x>°C;最高 <hi>°C / 最低 <lo>°C
- 降水/风:<是否需要带伞、防风,是否有大风或明显阵风>
- 空气质量(如有):<AQI 等级 + 一句影响说明,例如“轻度污染,户外运动注意”>
#### 穿衣建议
- 结合 \(lo\)–\(hi\)、风力、是否降水,给出 **具体单品建议**,避免抽象形容:
- 低温/大风:外套/防风衣/羽绒服 + 围巾/帽子;
- 温差大:推荐叠穿(打底 + 衬衫/针织 + 轻薄外套),方便增减;
- 下雨/下雪:防水鞋、雨伞/雨衣,避免拖鞋/布鞋;
- 干燥:可提醒唇膏、保湿、适当戴口罩;
- 空气差:口罩、减少长时间户外剧烈运动。
#### 饮食建议
- 根据天气和体感给出 2–4 条可执行建议:
- 冷/风大:推荐热粥、汤面、火锅/炖菜等温热食物;早餐可选:热豆浆 + 鸡蛋 + 少量主食;
- 偏热:推荐清淡饮食,多蔬菜水果,少油炸重口味,多喝水或淡茶;
- 干燥:多喝水,可适量吃梨、银耳、蜂蜜水等润燥食物;
- 空气差:饮食上偏清淡,少辛辣油炸,多水分和膳食纤维。
- 明确给出 1 条“需要避免”的事项,例如:
- “避免空腹喝冷饮”“今天少吃太油太咸的食物”等。
### 3)安全与稳健性(Safety / correctness)
- 不要声称自己有传感器或绝对实时数据,措辞用“根据最新公开天气信息”或“根据近期天气预报”。
- 如果网络/工具不可用,无法获取准确天气时:
- 默认地点仍为北京;
- 简要询问用户是否是要 **通勤/上学/运动** 的建议,然后给出基于季节的通用穿衣 + 饮食建议;
- 明确说明这是“通用建议,未基于当天具体天气”。
## 示例(Examples)
User: 早安
Assistant:
今日北京天气:
- 概况:阴有小雨,早晚偏凉
- 温度:现在 8°C;最高 14°C / 最低 6°C
- 降水/风:上午有零星小雨,风不大但体感偏湿
- 空气质量:良,对日常通勤影响不大
穿衣建议:
- 建议叠穿:长袖打底 + 薄毛衣/卫衣 + 轻薄外套,出门可以带一件防水外套。
- 鞋子优先选择防水材质,随身带一把折叠伞,以防路上遇到小雨。
饮食建议:
- 早餐可以吃一碗热粥或汤面,搭配鸡蛋和少量蔬菜,暖胃又不油腻。
- 白天注意补水,多喝温水或淡茶,少喝冰饮。
- 避免:空腹喝冷饮、过多油炸辛辣食物,以免加重肠胃负担。
这样skill就是设计好了,agent使用时会自动识别,在收到早安的消息后就会自动读取这个skill的内容执行
二、上传clawhub
使用指令
clawhub publish "~/.openclaw/workspace/skills/beijing-morning-weather" \
--slug "beijing-morning-weather" \
--name "北京早安心情助手(天气+穿衣+饮食)" \
--version "1.0.0" \
--tags "weather,beijing,morning,clothing,diet" \
--changelog "Initial release: Beijing weather summary + clothing and diet suggestions. Trigger: 早安/早上好."
自动上传,或进入clawhub官网:https://clawhub.ai/登录上传
北京早安心情助手(天气+穿衣+饮食)
三、利用心跳机制让AI每天早上自动发送
openclaw的心跳机制可以简单理解为:系统会每隔一段时间(例如30min)给agent自动发送一条特殊消息,提醒它去看/.openclaw/HEARTBEAT.md文件(这个文件会用于记录待办清单)
【这个功能很费Token,所以默认情况HEARTBEAT.md为空,就代表停止心跳功能】
使用心跳功能可以改写HEARTBEAT.md
# HEARTBEAT.md
## Beijing Morning Weather (workdays)
- Goal: On workdays (Mon–Fri) morning, proactively send a “早安” style message that follows the `beijing-morning-weather` skill: Beijing weather summary + clothing advice + diet advice.
- Time window: 07:30–09:30 (Asia/Shanghai)
- Deliver: send to the heartbeat target channel (usually last contact)
### State (do not delete)
last_sent_date_beijing_morning_weather: 1970-01-01
### Rules
1) Determine current local time in Asia/Shanghai and weekday.
2) If today is Saturday or Sunday: reply HEARTBEAT_OK.
3) If current time is outside 07:30–09:30: reply HEARTBEAT_OK.
4) If `last_sent_date_beijing_morning_weather` equals today's date: reply HEARTBEAT_OK.
5) Otherwise:
- Produce the message strictly in the format/style described by the `beijing-morning-weather` skill (Beijing weather + clothing + diet).
- After composing the message, update `last_sent_date_beijing_morning_weather` to today's date in this file.
- Do NOT include HEARTBEAT_OK in the alert message.
这样就把待办事项记录上了,每隔一段时间模型就会检查一下这个文件,看看有没有什么需要做的
为了节省Token,还可以额外修改配置文件openclaw.json,配置心跳机制的启用时间和心跳频率
{
"agents": {
"defaults": {
"userTimezone": "Asia/Shanghai",
"heartbeat": {
"every": "10m",
"target": "last",
"activeHours": {
"start": "07:30",
"end": "09:30",
"timezone": "Asia/Shanghai"
}
}
}
}
}
更多推荐

所有评论(0)