OpenClaw 自动化实战:从零搭建 emlog 博客管理 Skill


OpenClaw 自动化实战:从零搭建 emlog 博客管理 Skill

如何让 AI 助手真正"记住"你的博客配置,并具备完整的增删改查能力?本文记录基于 OpenClaw AgentSkill 框架,从零搭建 emlog 博客管理 Skill 的完整过程。


背景

我使用 emlog 搭建了个人博客(https://xxbj.jiangnas.club/),日常需要:

  • 发布文章(Markdown → HTML 转换后发布)
  • 上传图片和文件资源
  • 查看评论、管理分类
  • 发布微语、管理草稿

emlog 提供了 RESTful API(https://www.emlog.net/docs/api/),但每次都要手动构造 curl 请求很繁琐。正好 OpenClaw 的 AgentSkill 机制允许为 AI 助手注入领域知识,于是我决定创建一个专门的 emlog 管理 Skill。


OpenClaw Skill 框架概述

OpenClaw 的 Skill 系统本质上是一个给 AI 助手的知识注入 + 工具扩展机制。每个 Skill 包含:

Skill 目录结构


skills/emlog/

├── SKILL.md # 核心文件:API 文档、配置、使用指南

├── references/

│ └── api-docs.md # 完整 API 参考(19.5K 字符)

└── scripts/

└── emlog.sh # Bash 辅助脚本(可独立运行)

核心设计理念

  • SKILL.md 是入口,AI 助手在相关场景下自动加载
  • references/ 存放详细参考文档,按需读取避免上下文膨胀
  • scripts/ 存放可执行工具,AI 助手可直接调用

┌─────────────────────────────────┐

│ OpenClaw 主会话 │

│ ┌───────────────────────────┐ │

│ │ 加载 SKILL.md(自动) │ │

│ │ ↓ │ │

│ │ 读取 API 配置 │ │

│ │ ↓ │ │

│ │ 构造 curl 请求 │ │

│ │ ↓ │ │

│ │ 调用 emlog API │ │

│ │ ↓ │ │

│ │ 解析响应 → 执行操作 │ │

│ └───────────────────────────┘ │

└─────────────────────────────────┘


搭建过程详解

第一步:创建 Skill 骨架

使用 OpenClaw 官方提供的 init_skill.py 脚本快速生成标准目录结构:


python3 /usr/local/lib/node_modules/openclaw/skills/skill-creator/scripts/init_skill.py \

emlog \

--path /usr/local/lib/node_modules/openclaw/skills \

--resources scripts,references

生成后得到:


skills/emlog/

├── SKILL.md

├── references/

└── scripts/

第二步:编写 SKILL.md

这是 Skill 的灵魂文件,需要包含以下关键章节:

1. 配置信息


blog_url: https://网址/

api_key: key

internal_url: http://网址/

public_url: http://网址/

admin_user: 用户

2. API 参考

为每个功能模块提供 curl 示例。以文章发布为例:


curl -X POST "https://网址" \

-d "api_key=xxx" \

-d "title=测试文章" \

-d "content=

HTML内容

" \

-d "excerpt=摘要" \

-d "tags=标签1,标签2" \

-d "allow_remark=y"

3. 常见工作流

描述典型操作序列,让 AI 助手知道"发布文章"需要先查分类、转 HTML、然后 POST。

第三步:编写 API 参考文档

从 emlog 官方文档抓取完整 API 说明,存入 references/api-docs.md

  • 认证方式(API Key)
  • 文章模块(列表/详情/发布/编辑,共 4 个端点)
  • 草稿、分类、评论、微语模块
  • 文件上传、用户管理模块
  • 每个端点的参数说明和返回示例

共覆盖 15+ 个 API 端点

第四步:编写辅助脚本

scripts/emlog.sh 是一个独立的 Bash 脚本,封装常用操作:


#!/bin/bash

BLOG_URL="https://网址"

API_KEY="key"

使用方式:

./emlog.sh article_list → 列出所有文章

./emlog.sh sort_list → 列出所有分类

./emlog.sh publish file.md → 发布文章


记忆强化机制(三重保障)

这是整个 Skill 最关键的设计——如何让 AI 助手跨越会话边界、持续 30 天以上不遗忘这个 Skill?

OpenClaw 的 AI 助手每次会话启动都是"全新"的,不会自动记住历史。因此我设计了三重强化机制

🔴 第一重:MEMORY.md


MEMORY.md → 主会话启动时自动加载

├── 博客 URL + API Key

├── 管理员账号密码

├── Skill 文件路径

└── 关键日期标记

🟡 第二重:HEARTBEAT.md(心跳自检)


每隔约 5 天触发一次心跳检查:

├── 检查 skills/emlog/SKILL.md 是否存在

├── 检查配置信息是否完整

├── 若缺失 → 自动从 MEMORY.md 重建

└── 检查结果写入 memory/YYYY-MM-DD.md

🟢 第三重:每日记忆日志


memory/YYYY-MM-DD.md

├── 记录所有 emlog 相关操作

├── API 调用结果存档

├── 文章发布记录

└── 配置变更历史


┌──────────┐ ┌──────────┐ ┌──────────┐

│ MEMORY │────▶│HEARTBEAT │────▶│ Daily │

│ 持久记忆 │ │ 定期检查 │ │ 操作日志 │

│ 启动加载 │ │ 5天一次 │ │ 每日追加 │

└──────────┘ └──────────┘ └──────────┘

│ │ │

└────────────────┴────────────────┘

skills/emlog/SKILL.md

(核心 Skill 永不丢失)


实战验证

Skill 创建完成后,立即进行端到端验证:

测试 1:API 连通性


curl -s "https://网址?rest-api=sort_list&api_key=key"

返回: {"code":0,"msg":"ok","data":{"sorts":[]}}

✅ API 连通正常。

测试 2:Skill 结构验证


python3 quick_validate.py /path/to/skills/emlog

返回: Skill is valid!

✅ 结构合规。

测试 3:发布文章

用户直接在微信中说"发布以下文章",AI 助手自动完成:

1. 加载 emlog Skill → 读取 API 配置

2. Markdown → HTML 转换

3. 查询分类列表

4. POST 到 article_post 接口

5. 返回文章 ID 和访问链接

全程无需用户干预 API 细节。


最终效果


用户(微信/QQ):"发布这篇文章..."

OpenClaw AI 助手

┌─────────┼─────────┐

│ │ │

SKILL.md API文档 辅助脚本

│ │ │

└─────────┼─────────┘

emlog REST API

(网址)

文章上线 ✅

从用户输入到文章发布,全过程自动化,零手动操作


总结

| 组件 | 作用 |

|------|------|

| SKILL.md | 核心配置 + API 指引 + 工作流 |

| references/api-docs.md | 完整 API 文档(15+ 端点) |

| scripts/emlog.sh | 可独立运行的 Bash 工具 |

| MEMORY.md | 持久记忆(启动加载) |

| HEARTBEAT.md | 定期自检(防遗忘) |

| memory/YYYY-MM-DD.md | 操作日志(持续追加) |

通过这套框架,AI 助手获得了持久化、可验证、防遗忘的博客管理能力。无论多少次会话重启,无论间隔多少天,只要用户提起 emlog,助手就会自动加载 Skill 并执行操作。

这就是 OpenClaw AgentSkill 的魅力——让 AI 不再是"一次性聊天工具",而是真正具备持续能力的工作伙伴。


本文基于 OpenClaw 框架实战编写,Skill 代码已开源。欢迎交流讨论。


文章目录


    OpenClaw帮我写了一个BI网站

    五一假期,亲近自然——乌鲁木齐及昌吉周边小众秘境漫游记

    评 论
    avatar
    文章
    • Wechat Browser
    • iPhone26.4.2
    害的我手动修改
    1 个月前 回复