可借助OpenClaw内置Markdown驱动技能定义机制快速添加个性化AI能力:通过YAML元信息定义触发词与描述,action块声明参数、API调用及响应结构,自然语言段落结合Liquid语法实现条件渲染与插值,支持本地CLI验证。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您希望为OpenClaw平台添加个性化AI能力,但不具备传统编程经验,则可借助其内置的Markdown驱动技能定义机制快速实现。以下是基于Markdown语法构建自定义技能的具体操作路径:
一、理解OpenClaw技能的Markdown结构
OpenClaw将技能逻辑封装在特定格式的Markdown文件中,该文件包含元信息区(YAML Front Matter)和行为描述区(带指令标记的段落),系统据此解析触发条件、输入参数与响应模板。所有技能必须以.md为后缀保存于skills/目录下。
1、在项目根目录下创建skills子文件夹(若不存在)。
2、新建文本文件,命名为greeting_skill.md。
3、在文件顶部插入YAML元信息块,定义技能名称、触发关键词与描述。
4、在元信息下方空一行,使用```action代码块包裹JSON格式的行为定义,声明输入变量与输出结构。
5、在```action块之后,用普通段落撰写自然语言响应模板,支持双大括号插值语法如{{user_name}}。
二、定义触发关键词与参数提取规则
OpenClaw通过正则匹配识别用户输入中的关键词,并依据预设模式抽取结构化参数。关键词需在YAML元信息中以数组形式声明,参数提取规则嵌入在```action块的input_schema字段内。
1、在YAML元信息中添加triggers: ["你好", "hi", "hello"]。
2、在```action块内定义input_schema对象,包含user_name字段及其正则提取规则"pattern": "叫(.+?)$"。
3、确保正则表达式仅捕获所需内容,避免跨行或贪婪匹配。
4、保存文件后,在OpenClaw管理界面点击“重载技能”,使新规则生效。
三、编写多分支响应模板
同一技能可依据参数值动态返回不同内容,通过在Markdown正文使用{% if %}、{% else %}等Liquid语法实现条件渲染,系统在运行时实时求值。
1、在```action块之后添加普通段落,起始行写入{% if user_name == "管理员" %}。
2、换行后输入管理员专属响应文本,例如“欢迎回来,系统最高权限持有者。”
3、另起一行写入{% else %},再换行写入默认响应,例如“你好,{{user_name}}!”
4、结尾处添加{% endif %}闭合条件块。
四、集成外部API返回动态数据
当需要调用HTTP接口获取实时信息时,可在```action块中配置api_call字段,指定URL、方法与请求头,返回的JSON将自动注入响应上下文供模板引用。
1、在```action块内添加api_call对象,设置url: "https://api.example.com/time"。
2、指定method: "GET"并添加headers: {"Accept": "application/json"}。
3、在响应模板中使用{{api_response.hour}}访问返回JSON的hour字段。
4、若API返回错误,系统自动降级为显示api_error字段内容,需在模板中预留{% if api_error %}{{api_error}}{% endif %}。
五、调试与本地验证技能逻辑
无需部署即可在本地检查语法合法性与逻辑流向,OpenClaw提供CLI命令行工具执行离线解析,输出结构化错误位置与建议修正项。
1、打开终端,进入OpenClaw项目根目录。
2、执行命令openclaw skill validate skills/greeting_skill.md。
3、观察输出结果:若出现<strong><font color="green">ERROR: Missing required field 'triggers'</font></strong>,立即补全YAML元信息。
4、验证通过后,运行openclaw skill test --input "你好,叫小明",查看实际响应是否匹配预期。


















