乐于分享
好东西不私藏

手把手教你给 OpenClaw 写第一个自定义技能(附源码)

手把手教你给 OpenClaw 写第一个自定义技能(附源码)

手把手教你给 OpenClaw 写第一个自定义技能(附源码)

阅读时间:12 分钟|前置知识:JavaScript/Node.js 基础
#OpenClaw #教程 #AI Agent #代码实战

为什么要学习自定义技能?

OpenClaw 自带技能有限,很多场景需要自己扩展。其实自定义技能并不复杂,只要掌握一套通用逻辑,后续做天气、股票、查询类功能都能快速实现。
本文以「查询今日热榜」为例,带你从零搭建一个完整技能。

第一步:技能规划

先把结构想清楚,再动手写代码:
技能名字:hot-search
触发词:热榜、热搜、今天发生了什么
输入:可选平台(微博、知乎、抖音)
输出:格式化热榜列表
数据源:公开接口 / 合规数据
用户问“今天有什么热搜?”
↓ OpenClaw 匹配 hot-search 技能
↓ 调用接口获取数据
↓ 整理为 Markdown
↓ 返回给用户

第二步:创建技能目录

workspace/ └── skills/ └── hot-search/ ├── SKILL.md

技能说明 └── index.js # 执行代码

第三步:编写 SKILL.md(技能说明)

Skill: hot-search

Description

获取全网最新热榜信息,支持微博、知乎、抖音、百度等平台。

Triggers

  • "今天有什么热搜?"
  • "看看热榜"
  • "最近发生了什么大事"
  • "微博热搜"
  • "知乎热榜"

Parameters

- platform (optional): 指定平台,如 weibo / zhihu / douyin,默认 all
触发词越丰富,AI 识别准确率越高。

第四步:编写 index.js(核心逻辑)

// skills/hot-search/index.js
const axios = require('axios');
async function main(params, context) {
const platform = params.platform || 'all';
try {
let results = [];
if (platform === 'weibo' || platform === 'all') {
const weiboData = await fetchWeiboHotSearch();
results.push({ platform: '微博', list: weiboData });
}
if (platform === 'zhihu' || platform === 'all') {
const zhihuData = await fetchZhihuHot();
results.push({ platform: '知乎', list: zhihuData });
}
return formatOutput(results);
} catch (error) {
console.error('热榜获取失败:', error);
return '抱歉,热榜数据暂时获取失败';
}
}
async function fetchWeiboHotSearch() {
return [
{ rank: 1, title: '#OpenClaw 火了#', heat: '500 万' },
{ rank: 2, title: '#青蛙写代码#', heat: '320 万' }
];
}
async function fetchZhihuHot() {
return [
{ rank: 1, title: '如何评价 OpenClaw?', heat: '200 万' },
{ rank: 2, title: '2026 年做什么副业?', heat: '150 万' }
];
}
function formatOutput(results) {
let md = '

🔥 今日全网热榜\n\n';

results.forEach(item => {
md += `

${item.platform} 热榜 Top3\n`;

item.list.slice(0,3).forEach((i,idx)=>{
md += `${idx+1}. ${i.title} (🔥 ${i.heat})\n`;
});
md += '\n';
});
return md;
}
module.exports = main;

第五步:配置与测试

1. 在 openclaw.json 中确认加载 skills 目录
2. 重启 OpenClaw

Docker docker compose restart openclaw # 本地 npm run dev

3. 测试语句:
今天有什么热搜?

技能变现思路

方案 A:每日早报推送服务

200 元/月/群

方案 B:行业定制开发

5000 元/次

方案 C:教学课程

99 元/课

课后作业

尝试写一个「查询天气」技能:
触发词:天气、下雨吗、今天温度
数据源:和风天气 / 高德地图(免费)
输出:城市 + 温度 + 穿衣建议
作者:不懂技术的青蛙 🐸
公众号:不懂技术的青蛙