【技能开发】OpenClaw 技能开发入门:让你的 AI 学会新本事

【技能开发】OpenClaw 技能开发入门:让你的 AI 学会新本事

目录

前言:从"会聊天"到"会做事"

一、什么是 OpenClaw 技能?

1.1 概念解析

1.2 技能的工作原理

1.3 内置技能 vs 自定义技能

二、技能开发前置知识

2.1 你需要会什么?

2.2 开发环境准备

三、第一个技能:Hello World

3.1 技能目录结构

3.2 编写 SKILL.md

3.3 编写 index.js

3.4 注册技能

3.5 测试技能

四、实战:开发一个天气查询技能

4.1 选择天气 API

4.2 创建技能目录

4.3 编写 SKILL.md

4.4 编写 index.js

4.5 测试效果

五、技能开发最佳实践

5.1 错误处理要完善

5.2 返回格式要统一

5.3 技能描述要清晰

5.4 敏感操作要谨慎

六、技能发布与分享

6.1 本地技能

6.2 全局技能

6.3 分享技能

七、进阶:调用外部 API

结语


前言:从"会聊天"到"会做事"

哈喽各位,我是攀哥!前两篇咱们搞定了部署安装和人格定制,有朋友问:"攀哥,我的 AI 助手聊天挺溜了,但能不能让它干点实际的活儿?比如查天气、发邮件、操作数据库什么的?"

问得好!这就涉及到 OpenClaw 的核心功能——技能开发(Skills)!

简单来说,技能就是让 AI 从"嘴炮王者"变成"实干高手"的关键。没有技能的 AI,就像个满腹经纶但手无缚鸡之力的书生;有了技能,它就能真正帮你干活儿了!

今天攀哥就带你入门技能开发,让你的 AI 助手学会真本事!

一、什么是 OpenClaw 技能?

1.1 概念解析

技能(Skill),在 OpenClaw 中是指 AI 可以调用的功能模块。它可以是:

  • 查询类:查天气、查汇率、查股票
  • 操作类:发邮件、传文件、操作数据库
  • 集成类:调用第三方 API、连接外部服务
  • 自动化类:定时任务、批量处理、工作流

1.2 技能的工作原理

OpenClaw 的技能机制可以这样理解:

用户请求 → AI 理解意图 → 匹配对应技能 → 执行技能 → 返回结果 

举个例子:

用户:"北京今天天气怎么样?"

AI 分析:这是天气查询请求 → 调用 weather 技能 → 获取天气数据 → 回复用户

1.3 内置技能 vs 自定义技能

OpenClaw 自带一些内置技能,比如:

  • message:发送消息
  • sessions_list:查看会话列表
  • sessions_send:跨会话发消息
  • session_status:查看会话状态

但内置技能毕竟有限,自定义技能才是发挥创造力的地方!

二、技能开发前置知识

2.1 你需要会什么?

攀哥说实话,技能开发需要一定的技术基础:

  • JavaScript/Node.js:OpenClaw 的技能主要用 JS 编写
  • API 调用:知道怎么用 HTTP 请求调用第三方服务
  • JSON 处理:能读懂和编写 JSON 格式的数据
  • 基础调试:会看日志、排查错误

如果你是完全的新手,建议先学点 Node.js 基础再来。不过别担心,攀哥会尽量讲得通俗易懂!

2.2 开发环境准备

确保你已经:

  1. 安装好 Node.js(v20+)
  2. 有一个代码编辑器(VS Code 推荐)
  3. OpenClaw 工作区已初始化

三、第一个技能:Hello World

3.1 技能目录结构

OpenClaw 的技能通常放在这个位置:

workspace/ ├── skills/ │ └── my-first-skill/ │ ├── SKILL.md # 技能描述文件 │ ├── index.js # 技能主逻辑 │ └── package.json # 依赖配置(可选) 

3.2 编写 SKILL.md

SKILL.md 是技能的"身份证",告诉 AI 这个技能是干嘛的。

# my-first-skill ## 描述 这是我的第一个 OpenClaw 技能,用于测试和学习。 ## 触发条件 当用户提到"hello"、"你好"、"打招呼"时触发。 ## 输入参数 - name: 用户的名字(可选) ## 输出 返回一句问候语。 

3.3 编写 index.js

这是技能的核心逻辑:

// skills/my-first-skill/index.js module.exports = { name: 'my-first-skill', description: '我的第一个技能', // 执行函数 async execute(context, params) { const name = params.name || '朋友'; const greetings = [ `你好呀,${name}!👋`, `嘿,${name},今天过得怎么样?`, `哈喽${name},有什么可以帮你的吗?` ]; // 随机选一句问候 const randomGreeting = greetings[Math.floor(Math.random() * greetings.length)]; return { success: true, message: randomGreeting }; } }; 

3.4 注册技能

在工作区的配置文件中添加技能路径,或者在会话中加载:

# 在 OpenClaw 中加载技能 openclaw skill load ./skills/my-first-skill 

3.5 测试技能

现在跟你的 AI 助手说"你好",看看它会不会调用你的技能!

四、实战:开发一个天气查询技能

光说 Hello World 太没意思了,咱们来做个实用的天气查询技能!

4.1 选择天气 API

攀哥推荐用 wttr.in,因为它:

  • 免费,不需要 API 密钥
  • 支持中文
  • 返回格式简单

4.2 创建技能目录

mkdir -p skills/weather-skill cd skills/weather-skill 

4.3 编写 SKILL.md

# weather-skill ## 描述 查询指定城市的天气信息。 ## 触发条件 当用户询问天气、温度、预报时触发。 ## 输入参数 - city: 城市名称(必填) ## 输出 返回当前天气状况、温度、湿度等信息。 ## 示例 - 用户:"北京天气怎么样?" - AI:调用 weather-skill,city="北京" 

4.4 编写 index.js

// skills/weather-skill/index.js const https = require('https'); module.exports = { name: 'weather-skill', description: '查询城市天气', async execute(context, params) { const city = params.city; if (!city) { return { success: false, message: '请告诉我你想查询哪个城市的天气~' }; } // 调用 wttr.in API return new Promise((resolve, reject) => { const url = `https://wttr.in/${encodeURIComponent(city)}?format=j1`; https.get(url, (res) => { let; res.on('data', chunk => data += chunk); res.on('end', () => { try { const weather = JSON.parse(data); const current = weather.current_condition[0]; const result = { success: true, data: { city: city, temp: current.temp_C + '°C', weather: current.weatherDesc[0].value, humidity: current.humidity + '%', windSpeed: current.windspeedKmph + 'km/h' } }; resolve(result); } catch (e) { resolve({ success: false, message: '天气查询失败,请稍后再试~' }); } }); }).on('error', reject); }); } }; 

4.5 测试效果

用户:"北京天气怎么样?"

AI:北京今天晴,气温 25°C,湿度 45%,风速 12km/h。适合出门哦!☀️

五、技能开发最佳实践

5.1 错误处理要完善

技能执行可能会失败,一定要处理异常情况:

try { // 执行逻辑 } catch (error) { return { success: false, message: '出错了:' + error.message }; } 

5.2 返回格式要统一

建议统一返回格式,方便 AI 处理:

{ success: true/false, data: { ... }, // 成功时的数据 message: '...' // 提示信息 } 

5.3 技能描述要清晰

SKILL.md 写得越清楚,AI 越知道什么时候调用这个技能。包括:

  • 触发条件
  • 输入参数
  • 输出格式
  • 使用示例

5.4 敏感操作要谨慎

涉及以下操作时要特别注意:

  • 删除文件/数据
  • 发送外部消息
  • 访问私密信息

建议加一层确认机制,或者需要用户明确授权。

六、技能发布与分享

6.1 本地技能

放在工作区的 skills/ 目录下,仅当前工作区可用。

6.2 全局技能

安装到全局,所有工作区都能用:

npm install -g openclaw-skill-xxx 

6.3 分享技能

可以把技能发布到:

  • GitHub
  • npm
  • OpenClaw 社区

让更多人使用你的技能!

七、进阶:调用外部 API

很多技能需要调用第三方 API,攀哥给个通用模板:

const axios = require('axios'); async function callExternalAPI(endpoint, params, apiKey) { try { const response = await axios.get(endpoint, { params: params, headers: { 'Authorization': `Bearer ${apiKey}` } }); return response.data; } catch (error) { throw new Error('API 调用失败:' + error.message); } } 

常用 API 推荐:

  • 天气:wttr.in、OpenWeatherMap
  • 汇率:exchangerate-api.com
  • 新闻:newsapi.org
  • 翻译:Google Translate API

结语

好了,今天的技能开发入门就到这里!攀哥总结一下:

  1. 技能让 AI 从"会聊"变"会干"
  2. 开发技能需要 JS 基础
  3. 从简单开始,逐步迭代
  4. 错误处理和文档很重要

下一篇咱们聊聊《OpenClaw 高级玩法:多会话管理与子代理 orchestration》,敬请期待!🦞

Read more

【AI】coze的简单入门构建智能体

【AI】coze的简单入门构建智能体

前言:最近扣子很火,我来学习一下!扣子时新一代的AI应用平台。在扣子上搭建AI应用,只需要在界面上点击下一步下一步,做些配置,就可以快速去搭建一个AI应用。让我来看看,扣子是何方神圣吧~ 一、什么是coze? 扣子是新一代AI应用开发平台。无论你是否有编程基础,都可以在扣子上快速搭建基于大模型的各类AI应用,并将AI应用发布到各个社交平台,也可以通过API或SDK将AI应用集成到你的业务系统中。 二、coze能做什么? 扣子提供可视化设计与编排工具,通过零代码或低代码方式,快速搭建基于大模型的各类AI项目。(登录到扣子官网,进入到商店,有各种应用、插件等) * 智能体:智能体是基于对话的AI项目,能理解自然语言,调用知识库与插件,通过可视化工作流完成复杂任务,并可发布到多端使用,如智能客服、虚拟伴侣等 * 应用:利用大模型技术开发的应用程序。在扣子中搭建的AI应用具备完整业务逻辑和可视化用户界面,是一个独立的AI项目,如AI搜索、翻译工具等 * 插件:是 一个工具集,一个插件内可以包括一个或多个工具(API)。用于扩展智能体 / Bot 的功能,通过标准化接口与工作

By Ne0inhk
从0到1彻底掌握Trae:手把手带你实战开发AI Chatbot,提升开发效率的必备指南!

从0到1彻底掌握Trae:手把手带你实战开发AI Chatbot,提升开发效率的必备指南!

我正在参加Trae「超级体验官」创意实践征文,本文所使用的 Trae 免费下载链接:www.trae.ai/?utm_source… 暴富技巧 比特鹰作为国内领先的 AI+Web3 领域企业,团队充满年轻活力 ——95% 成员为 00 后,不仅技术氛围浓厚,还会为每位成员量身定制成长规划;在职业发展层面,公司前景广阔,提供餐饮补贴、租房补贴、年底奖金、股票期权及额外假期等多重福利,助力员工在 35 岁前实现财富自由 目前公司正招聘海外运营、前端、后端、智能合约、AI 开发、HR 等岗位,有意向者可加微信联系: ai_lianqq 前言 大家好,我是小Q,字节跳动近期推出了一款 AI IDE—— Trae,

By Ne0inhk
用飞算 JavaAI 开发高校设备管理系统!从需求到上线,毕业设计 3 天搞定

用飞算 JavaAI 开发高校设备管理系统!从需求到上线,毕业设计 3 天搞定

前言 在高校教学与科研活动中,大型实验设备是重要的资源支撑,但传统人工管理模式常面临设备信息不透明、预约流程繁琐、使用记录难追溯等问题。为解决这一痛点,我以“高校大型实验设备管理与预约信息系统”作为毕业设计主题,借助飞算JavaAI工具完成系统开发。本文将详细记录从需求分析到代码生成、优化调试的全过程,分享飞算JavaAI在实际开发中的应用体验。 一、需求分析与规划 1. 功能需求 高校大型实验设备管理与预约信息系统需满足三类用户(管理员、教师、学生)的核心需求,具体拆解如下: * 管理员端:设备信息管理(新增、编辑、删除设备型号、规格、存放位置、故障状态等)、用户管理(新增教师/学生账号、分配权限)、预约审核(审核教师/学生的设备预约申请)、使用统计(按设备类型、时间段统计使用频次、预约成功率); * 教师端:设备查询(按设备名称、类型、可用状态筛选)、预约申请(选择设备、

By Ne0inhk

Drow.io:AI如何重塑在线绘图与协作体验

快速体验 1. 打开 InsCode(快马)平台 https://www.inscode.net 2. 点击'项目生成'按钮,等待项目生成完整后预览效果 输入框内输入如下内容: 创建一个基于Drow.io的AI辅助绘图工具,能够根据用户输入的关键词自动生成流程图、思维导图或UI草图。核心功能包括:1. 自然语言描述转图形(如输入'电商购物流程'自动生成流程图)2. 智能布局建议系统 3. 协作编辑时的AI冲突解决 4. 设计规范自动检查 5. 多格式导出功能。使用React前端+Node.js后端,集成OpenAI API进行自然语言处理。 最近体验了一款叫Drow.io的在线绘图工具,它通过AI技术大幅提升了绘图效率,让我这种非专业设计师也能快速产出专业图表。下面分享它的核心功能和实现思路,特别适合需要频繁绘制流程图、思维导图的团队或个人。

By Ne0inhk