“装上OpenClaw却只会聊天?别人已经靠它实现公众号全自动运营,你还在手动找选题、排版、发布”——2026年,这只红色“大龙虾”的爆火,让无数人陷入“有工具不会用”的困境。参考文章一语道破核心:OpenClaw的灵魂不是模型,而是Skill(技能)。没有Skill的OpenClaw只是空壳,而搭载了专属Skill的OpenClaw,能变身“全自动公众号印钞机”,从选题、创作、配图到发布,全程无需人工干预。
本文基于Skill开发逻辑与公众号运营实战,结合2026年最新实测资料,补充2026年阿里云部署及本地MacOS/Linux/Windows11全平台部署步骤、阿里云百炼Coding Plan免费API配置流程,深化爆款Skill的开发细节、自动化闭环搭建与常见问题解答,所有代码可直接复制执行,助力自媒体人从“会用OpenClaw”升级为“能用它赚钱”,真正打造属于自己的全自动内容生产流水线。阿里云上OpenClaw极速一键部署最简单,步骤详情 访问阿里云OpenClaw一键部署专题页面 了解。

一、核心认知:Skill才是OpenClaw的灵魂,公众号运营的终极解法
(一)OpenClaw+Skill:为什么能颠覆公众号运营?
参考文章的核心判断精准深刻:OpenClaw本质是“执行环境(Runtime)”,而Skill是“操作手册+自动化脚本”,二者结合才能释放真正价值。对公众号运营而言,这种组合的颠覆性体现在三点:
- 打破工具割裂:将选题、创作、配图、排版、发布等分散在多个平台的操作,串联成一个自动化闭环,无需来回切换工具;
- 替代重复劳动:每天刷平台找选题、手动排版、反复调整格式等机械工作,全部交给AI执行,自媒体人聚焦核心创意;
- 实现批量产出:一个爆款Skill可复制到多个账号,配合定时触发功能,实现“一台电脑=一个内容团队”。
简单理解:OpenClaw是“工人”,Skill是“生产流程手册”,公众号运营是“生产任务”——有了详细的手册,工人才能高效完成任务,甚至实现无人化生产。
(二)公众号运营必备的3类核心Skill:覆盖全流程
参考文章拆解的“选题+创作发布”Skill体系,可扩展为3类核心Skill,覆盖公众号运营全流程,每类Skill都有明确的定位与价值:
| Skill类型 | 核心功能 | 典型应用 | 技术依赖 | 自动化触发方式 |
|---|---|---|---|---|
| 选题类Skill | 全网扫描热点、筛选关键词、生成选题清单 | 每日科技类选题推荐 | 网页爬虫、关键词匹配、热度分析 | 定时触发(如每天8点) |
| 创作类Skill | 深度文案生成、智能配图、排版渲染 | 爆款文章一键生成 | 大模型调用、文生图API、HTML/CSS转换 | 指令触发(如“写第一个选题”) |
| 发布类Skill | 自动登录公众号、上传内容、保存草稿/群发 | 文章无人工发布 | 接口调用、Cookie持久化 | 创作完成后自动触发 |
这三类Skill的核心逻辑是“闭环联动”:选题Skill每天定时产出选题,创作Skill接收指令后完成内容生产,发布Skill自动收尾,形成“选题-创作-发布”的全自动流程,真正解放自媒体人。
(三)Skill开发的核心逻辑:把业务流程拆成AI能执行的步骤
参考文章强调,真正的护城河是“自己编写Skill的能力”。Skill开发的本质,是将你的业务逻辑拆解为AI可执行的标准化步骤,核心原则有三:
- 原子化拆分:将复杂任务拆成最小执行单元,例如“创作文章”拆为“搜索素材→生成大纲→撰写正文→智能配图→排版”;
- 明确输入输出:每个步骤都有清晰的输入(如关键词、模板)和输出(如素材库、正文文本),确保AI能精准执行;
- 闭环化串联:步骤之间自动流转,无需人工干预,例如“配图完成后自动触发排版,排版完成后自动触发发布”。
对公众号运营而言,无需复杂编程基础,只要掌握“流程拆解+简单脚本编写”,就能开发专属Skill——这正是本文要重点拆解的核心内容。
二、2026年全平台部署流程(阿里云+本地多系统)
无论是阿里云部署(支持7×24小时自动化、多账号管理)还是本地部署(隐私可控、零服务器费用),都需先完成OpenClaw基础部署,再进行Skill开发与配置。以下步骤兼顾新手友好性,所有代码可直接复制执行:
(一)前置准备(全方案通用)
- 账号准备:
- 阿里云账号:注册阿里云账号并完成实名认证(用于服务器购买与百炼API开通);
- 公众号账号:完成微信公众号注册与开发者认证(获取AppID、AppSecret,用于自动发布);
- 辅助账号:GitHub账号(Skill下载与分享用);
- 工具准备:
- 终端/命令行工具:Win11用PowerShell(管理员模式),MacOS/Linux用自带终端;
- 编辑工具:VS Code(Skill开发、配置文件修改用);
- 核心工具:Docker(推荐,实现环境隔离,避免依赖冲突);
- 环境要求:
- 内存≥4GiB(支持Skill与OpenClaw同时运行);
- Node.js≥22.x(OpenClaw 2026.3.8要求);
- 网络通畅(用于API调用、网页爬虫、公众号接口通信)。
(二)方案一:阿里云部署(公众号运营首选,稳定自动化)
适合需要长期稳定运行、多账号管理、定时触发Skill的自媒体人,提供Docker部署方案,步骤如下:
阿里云用户零基础部署 OpenClaw 喂饭级步骤流程
第一步:打开访问阿里云OpenClaw一键部署专题页面,找到并点击【一键购买并部署】。




第二步:打开选购阿里云轻量应用服务器,配置参考如下:
- 镜像:OpenClaw(Moltbot)镜像(已经购买服务器的用户可以重置系统重新选择镜像)
- 实例:内存必须2GiB及以上。
- 地域:默认美国(弗吉尼亚),目前中国内地域(除香港)的轻量应用服务器,联网搜索功能受限。
- 时长:根据自己的需求及预算选择。



第三步:打开访问阿里云百炼大模型控制台,找到密钥管理,单击创建API-Key。

前往轻量应用服务器控制台,找到安装好OpenClaw的实例,进入「应用详情」放行18789端口、配置百炼API-Key、执行命令,生成访问OpenClaw的Token。
- 端口放通:需要放通对应端口的防火墙,单击一键放通即可。
- 配置百炼API-Key,单击一键配置,输入百炼的API-Key。单击执行命令,写入API-Key。
- 配置OpenClaw:单击执行命令,生成访问OpenClaw的Token。
- 访问控制页面:单击打开网站页面可进入OpenClaw对话页面。
阿里云百炼Coding Plan 配置教程:创建API-Key,推荐访问订阅阿里云百炼Coding Plan,阿里云百炼Coding Plan每天两场抢购活动,从按tokens计费升级为按次收费,可以进一步节省费用!
- 购买后,在控制台生成API Key。注:这里复制并保存好你的API Key,后面要用。

- 回到轻量应用服务器-控制台,单击服务器卡片中的实例 ID,进入服务器概览页。

- 在服务器概览页面单击应用详情页签,进入服务器详情页面。

- 端口放通在OpenClaw使用步骤区域中,单击端口放通下的执行命令,可开放获取OpenClaw 服务运行端口的防火墙。

- 这里系统会列出我们第一步中创建的阿里云百炼 Coding Plan的API Key,直接选择就可以。

- 获取访问地址单击访问 Web UI 面板下的执行命令,获取 OpenClaw WebUI 的地址。


1. 服务器选购与实例创建
- 访问阿里云轻量应用服务器控制台,点击“创建实例”;
- 核心配置选择(兼顾稳定与成本):
- 地域:中国香港/新加坡(免备案,网络通畅,支持公众号接口通信);
- 镜像:应用镜像→OpenClaw(Clawdbot)官方镜像(已预装Node.js、Docker等核心依赖);
- 实例规格:2vCPU+4GiB内存+40GiB ESSD+5Mbps带宽(支持多Skill同时运行,无卡顿);
- 付费类型:按需付费(测试用)/ 包年包月(长期使用);
- 登录密码:设置强密码(≥12位,含大小写字母、数字、特殊符号)。
- 完成支付后,记录服务器公网IP(后续配置需使用)。
2. 端口放行与远程连接
- 进入实例详情页,点击“防火墙”→“添加规则”,放行以下端口:
- 22端口(SSH远程连接);
- 18789端口(OpenClaw控制台);
- 443/80端口(API调用、网页爬虫、公众号接口通信);
- 远程连接服务器(使用阿里云WebShell或FinalShell):
ssh root@你的服务器公网IP
3. Docker部署OpenClaw(核心步骤)
# 步骤1:更新系统依赖,确保Docker正常运行
sudo yum update -y && sudo yum install -y git
# 步骤2:拉取OpenClaw 2026.3.8官方镜像
docker pull openclaw/openclaw:2026.3.8
# 步骤3:创建数据目录(含Skill、配置、公众号素材、日志)
mkdir -p /opt/openclaw/{
config,skills,wechat-mp,logs,workspaces}
chmod -R 777 /opt/openclaw
# 步骤4:启动OpenClaw容器
docker run -d \
--name openclaw \
--restart always \
-p 18789:18789 \
-v /opt/openclaw/config:/app/config \
-v /opt/openclaw/skills:/app/skills \
-v /opt/openclaw/wechat-mp:/app/wechat-mp \
-v /opt/openclaw/logs:/app/logs \
-v /opt/openclaw/workspaces:/app/workspaces \
-e TZ=Asia/Shanghai \
openclaw/openclaw:2026.3.8
# 步骤5:进入容器,初始化系统
docker exec -it openclaw bash
openclaw init --full # 完整初始化,包含Skill开发环境
# 步骤6:安装公众号运营必备依赖
npm install -g wechat-api cheerio puppeteer sharp # 微信API、爬虫、图片处理依赖
# 步骤7:验证安装成功(显示版本号即为成功)
openclaw --version
4. 部署验证
浏览器输入 http://服务器公网IP:18789,使用生成的Token登录,若能看到“Skill管理”“任务自动化”选项,说明基础部署成功。
(三)方案二:本地部署(Win11/MacOS/Linux,隐私优先)
适合个人自媒体、单账号运营、注重数据隐私的用户,分系统提供详细步骤:
1. Windows11系统部署
- 安装Docker Desktop(官网下载,按提示安装并启动);
- 打开PowerShell(管理员模式),复制以下命令逐行执行:
# 步骤1:拉取OpenClaw官方镜像
docker pull openclaw/openclaw:2026.3.8
# 步骤2:创建本地工作目录(含所有核心数据)
mkdir -p ~/OpenClaw-MP/{
config,skills,wechat-mp,logs,workspaces}
# 步骤3:启动OpenClaw容器
docker run -d `
--name openclaw `
--restart always `
-p 18789:18789 `
-v ~/OpenClaw-MP/config:/app/config `
-v ~/OpenClaw-MP/skills:/app/skills `
-v ~/OpenClaw-MP/wechat-mp:/app/wechat-mp `
-v ~/OpenClaw-MP/logs:/app/logs `
-v ~/OpenClaw-MP/workspaces:/app/workspaces `
-e TZ=Asia/Shanghai `
openclaw/openclaw:2026.3.8
# 步骤4:进入容器,初始化系统并安装依赖
docker exec -it openclaw bash
openclaw init --full
npm install -g wechat-api cheerio puppeteer sharp
# 步骤5:验证安装成功
openclaw --version
- 部署验证:浏览器输入
http://localhost:18789,登录后查看功能完整性,确认部署成功。
2. MacOS 12+系统部署
- 安装Docker Desktop(官网下载,拖拽到应用程序文件夹并启动);
- 打开终端,复制以下命令逐行执行:
# 步骤1:拉取OpenClaw官方镜像
docker pull openclaw/openclaw:2026.3.8
# 步骤2:创建本地工作目录
mkdir -p ~/OpenClaw-MP/{
config,skills,wechat-mp,logs,workspaces}
# 步骤3:启动OpenClaw容器
docker run -d \
--name openclaw \
--restart always \
-p 18789:18789 \
-v ~/OpenClaw-MP/config:/app/config \
-v ~/OpenClaw-MP/skills:/app/skills \
-v ~/OpenClaw-MP/wechat-mp:/app/wechat-mp \
-v ~/OpenClaw-MP/logs:/app/logs \
-v ~/OpenClaw-MP/workspaces:/app/workspaces \
-e TZ=Asia/Shanghai \
openclaw/openclaw:2026.3.8
# 步骤4:进入容器,初始化系统并安装依赖
docker exec -it openclaw bash
openclaw init --full
npm install -g wechat-api cheerio puppeteer sharp
# 步骤5:验证安装成功
openclaw --version
- 部署验证:浏览器输入
http://localhost:18789,登录后测试,确认部署成功。
3. Linux系统部署(Ubuntu 22.04+)
- 安装Docker(若未安装):
curl -fsSL https://get.docker.com | bash sudo systemctl start docker sudo systemctl enable docker - 复制以下命令逐行执行:
# 步骤1:拉取OpenClaw官方镜像
sudo docker pull openclaw/openclaw:2026.3.8
# 步骤2:创建本地工作目录
mkdir -p ~/OpenClaw-MP/{
config,skills,wechat-mp,logs,workspaces}
# 步骤3:启动OpenClaw容器
sudo docker run -d \
--name openclaw \
--restart always \
-p 18789:18789 \
-v ~/OpenClaw-MP/config:/app/config \
-v ~/OpenClaw-MP/skills:/app/skills \
-v ~/OpenClaw-MP/wechat-mp:/app/wechat-mp \
-v ~/OpenClaw-MP/logs:/app/logs \
-v ~/OpenClaw-MP/workspaces:/app/workspaces \
-e TZ=Asia/Shanghai \
openclaw/openclaw:2026.3.8
# 步骤4:进入容器,初始化系统并安装依赖
sudo docker exec -it openclaw bash
openclaw init --full
npm install -g wechat-api cheerio puppeteer sharp
# 步骤5:验证安装成功
openclaw --version
- 部署验证:浏览器输入
http://localhost:18789,登录后测试,确认部署成功。
三、免费API配置:阿里云百炼Coding Plan(驱动Skill运行)
公众号运营Skill需调用大模型实现文案生成、配图、关键词分析,阿里云百炼Coding Plan提供7000万免费Token(90天有效期),足够轻量运营使用,配置步骤如下:
1. 获取阿里云百炼Coding Plan API-Key
- 访问登录阿里云百炼大模型服务平台,进入“密钥管理”页面;
- 点击“创建API-Key”,选择归属账号与业务空间(默认即可);
- 生成后立即复制API-Key(仅生成时可完整查看,妥善保存,避免泄露);
- 进入“额度管理”页面,点击“领取免费额度”,7000万Token自动到账;
- 关闭自动续费:避免免费额度用完后自动扣费,路径:控制台→额度管理→自动续费→关闭。
2. 配置OpenClaw关联API(公众号运营优化版)
# 步骤1:进入容器内部(阿里云/本地部署通用)
docker exec -it openclaw bash
# 步骤2:编辑全局配置文件
nano /app/config/openclaw.json
# 步骤3:替换模型与公众号配置(保留其他原有配置)
{
"model": {
"provider": "alibaba-cloud",
"apiKey": "你的百炼Coding Plan API-Key",
"baseUrl": "https://dashscope.aliyuncs.com/compatible-mode/v1",
"defaultModel": "bailian/qwen-turbo",
"parameters": {
"temperature": 0.8 # 文案生成更具创造性
},
"skillConfigs": {
"topic-selector": {
"temperature": 0.6 }, # 选题筛选更严谨
"article-writer": {
"temperature": 0.85 }, # 文章创作更灵活
"image-generator": {
"temperature": 0.9 } # 配图生成更具创意
}
},
"wechatMp": {
"appId": "你的公众号AppID",
"appSecret": "你的公众号AppSecret",
"token": "你的公众号开发者Token",
"encodingAESKey": "你的公众号EncodingAESKey",
"autoPublish": false # 默认为保存草稿,避免误发布
},
"skills": {
"autoLoad": true,
"scanPath": ["/app/skills/mp-operations"], # 公众号Skill专属目录
"sandboxMode": true # 启用沙箱,限制高危操作
},
"tasks": {
"maxConcurrent": 3, # 最大并发任务数,避免触发公众号接口限制
"cron": {
"enable": true # 启用定时任务,支持选题Skill每天自动运行
}
}
}
3. 保存配置并重启服务
# 步骤1:按Ctrl+O保存,Ctrl+X退出nano编辑器
# 步骤2:退出容器
exit
# 步骤3:重启OpenClaw容器,使配置生效
docker restart openclaw
4. API配置验证
登录OpenClaw控制台,发送指令“帮我生成一个关于OpenClaw公众号运营的选题清单,包含3个热点方向”,若能正常生成结构化选题,说明API配置成功。
四、爆款Skill开发实战:打造全自动公众号运营流水线
参考文章的核心价值在于拆解了“选题+创作发布”的Skill逻辑,本文基于原文,补充完整的Skill代码与自动化闭环搭建,让你直接拥有“全自动爆文流水线”:
(一)Skill 1:trending-topic-selector(热点选题Skill,每天8点自动推送)
核心功能:
每天定时扫描指定平台热点,按关键词筛选,生成选题清单推送到飞书/微信。
开发步骤与代码
# 步骤1:创建Skill目录
docker exec -it openclaw bash
mkdir -p /app/skills/mp-operations/trending-topic-selector
cd /app/skills/mp-operations/trending-topic-selector
# 步骤2:创建Skill主文件 skill.js
nano skill.js
# 步骤3:粘贴以下代码(可直接运行,修改关键词与平台即可)
const cheerio = require('cheerio');
const puppeteer = require('puppeteer');
const WechatAPI = require('wechat-api');
const {
model } = require('../../../config/openclaw.json');
const axios = require('axios');
// 公众号配置
const wechatApi = new WechatAPI(
process.env.WECHAT_MP_APPID || '你的公众号AppID',
process.env.WECHAT_MP_APPSECRET || '你的公众号AppSecret'
);
// 配置:监控平台与关键词
const CONFIG = {
platforms: [
{
name: 'GitHub Trending', url: 'https://github.com/trending/ai?since=daily' },
{
name: 'Product Hunt', url: 'https://www.producthunt.com/categories/ai' },
{
name: '掘金AI板块', url: 'https://juejin.cn/tag/AI' }
],
keywords: ['OpenClaw', 'AI Agent', '大模型', '自媒体运营', '自动化'],
triggerTime: '0 8 * * *', // 每天8点触发(Cron表达式)
notifyTarget: 'feishu' // 通知目标:feishu/wechat/email
};
// 核心函数:爬取平台热点
async function crawlPlatform(url) {
const browser = await puppeteer.launch({
headless: 'new' });
const page = await browser.newPage();
await page.goto(url, {
waitUntil: 'networkidle2' });
const html = await page.content();
const $ = cheerio.load(html);
const topics = [];
// 不同平台的选择器(可根据实际情况修改)
if (url.includes('github')) {
$('.Box-row').each((i, el) => {
const title = $(el).find('h2 a').text().trim();
const url = 'https://github.com' + $(el).find('h2 a').attr('href');
const desc = $(el).find('p').text().trim();
topics.push({
title, url, desc, platform: 'GitHub Trending' });
});
} else if (url.includes('producthunt')) {
$('.sc-7o7nez-0').each((i, el) => {
const title = $(el).find('h3').text().trim();
const url = 'https://www.producthunt.com' + $(el).find('a').attr('href');
const desc = $(el).find('p').text().trim();
topics.push({
title, url, desc, platform: 'Product Hunt' });
});
} else if (url.includes('juejin')) {
$('.entry-list-item').each((i, el) => {
const title = $(el).find('.title').text().trim();
const url = $(el).find('a').attr('href');
const desc = $(el).find('.abstract').text().trim();
topics.push({
title, url, desc, platform: '掘金' });
});
}
await browser.close();
return topics;
}
// 核心函数:关键词筛选与热度排序
function filterAndSortTopics(allTopics) {
return allTopics
.filter(topic => CONFIG.keywords.some(keyword =>
topic.title.includes(keyword) || topic.desc.includes(keyword)
))
.sort((a, b) => {
// 简单热度排序:按标题长度+关键词匹配度
const scoreA = (a.title.length / 50) + CONFIG.keywords.filter(k => a.title.includes(k)).length;
const scoreB = (b.title.length / 50) + CONFIG.keywords.filter(k => b.title.includes(k)).length;
return scoreB - scoreA;
})
.slice(0, 3); // 取Top3选题
}
// 核心函数:通知推送
async function notifyTopics(topics) {
const content = `【今日公众号热点选题】\n\n` +
topics.map((topic, i) =>
`${
i+1}. 标题:${
topic.title}\n` +
` 来源:${
topic.platform}\n` +
` 链接:${
topic.url}\n` +
` 摘要:${
topic.desc.substring(0, 100)}...\n`
).join('\n');
// 推送飞书(需提前配置飞书机器人)
if (CONFIG.notifyTarget === 'feishu') {
await axios.post(process.env.FEISHU_WEBHOOK, {
msg_type: 'text',
content: {
text: content }
});
}
// 推送微信(公众号客服消息)
if (CONFIG.notifyTarget === 'wechat') {
await wechatApi.sendTextToUser('你的微信OpenID', content, (err, res) => {
if (err) console.error('微信推送失败:', err);
});
}
console.log('选题推送成功:', content);
return content;
}
// Skill入口函数
module.exports = async function run() {
try {
console.log('开始爬取热点选题...');
const allTopics = [];
for (const platform of CONFIG.platforms) {
const topics = await crawlPlatform(platform.url);
allTopics.push(...topics);
}
const filteredTopics = filterAndSortTopics(allTopics);
await notifyTopics(filteredTopics);
return {
success: true, topics: filteredTopics };
} catch (error) {
console.error('选题Skill执行失败:', error);
return {
success: false, error: error.message };
}
};
# 步骤4:创建Skill配置文件 config.json
nano config.json
{
"name": "热点选题筛选器",
"id": "trending-topic-selector",
"description": "每天8点自动爬取GitHub、Product Hunt、掘金等平台热点,按关键词筛选Top3选题推送到指定渠道",
"trigger": {
"type": "cron",
"expression": "0 8 * * *"
},
"dependencies": ["cheerio", "puppeteer", "wechat-api", "axios"]
}
# 步骤5:启用Skill
openclaw skills enable trending-topic-selector
(二)Skill 2:mp-article-auto-generator(文章全自动生成与发布Skill)
核心功能:
接收选题指令后,自动完成“素材搜索→正文生成→智能配图→排版→公众号发布”全流程。
开发步骤与代码
# 步骤1:创建Skill目录
mkdir -p /app/skills/mp-operations/mp-article-auto-generator
cd /app/skills/mp-operations/mp-article-auto-generator
# 步骤2:创建Skill主文件 skill.js
nano skill.js
const {
model } = require('../../../config/openclaw.json');
const axios = require('axios');
const sharp = require('sharp');
const fs = require('fs');
const path = require('path');
const WechatAPI = require('wechat-api');
// 配置
const CONFIG = {
articleTemplate: {
title: "{topic},自媒体人必须知道的3个技巧",
structure: [
"开篇:用热点引入主题,吸引读者注意力(≤150字)",
"核心部分1:分析主题的核心价值(≤300字)",
"核心部分2:结合案例说明应用方法(≤400字)",
"核心部分3:给出实操建议(≤300字)",
"结尾:引导关注与互动(≤100字)"
],
coverKeywords: "{topic}, AI, 自媒体, 自动化",
cssStyle: "https://cdn.jsdelivr.net/npm/github-markdown-css/github-markdown.min.css"
},
outputDir: "/app/wechat-mp/articles"
};
// 初始化公众号API
const wechatApi = new WechatAPI(
process.env.WECHAT_MP_APPID || '你的公众号AppID',
process.env.WECHAT_MP_APPSECRET || '你的公众号AppSecret'
);
// 确保输出目录存在
if (!fs.existsSync(CONFIG.outputDir)) {
fs.mkdirSync(CONFIG.outputDir, {
recursive: true });
}
// 函数1:搜索素材
async function searchMaterials(topic) {
console.log(`搜索选题素材:${
topic}`);
const response = await axios.post(`${
model.baseUrl}/chat/completions`, {
model: model.defaultModel,
messages: [
{
role: "system", "content": "你是自媒体素材搜索专家,为公众号文章搜集相关案例、数据、观点" },
{
role: "user", "content": `为主题"${topic}"搜集3个最新案例、2组相关数据、1个专家观点,案例需2026年发布` }
],
temperature: model.skillConfigs["topic-selector"].temperature
});
return response.data.choices[0].message.content;
}
// 函数2:生成文章正文
async function generateArticle(topic, materials) {
console.log(`生成文章正文:${
topic}`);
const response = await axios.post(`${
model.baseUrl}/chat/completions`, {
model: model.defaultModel,
messages: [
{
role: "system", "content": `你是公众号爆文作者,按以下结构生成文章:${
CONFIG.articleTemplate.structure.join('\n')},语言犀利幽默,适合科技类自媒体,段落简短,每段≤3行` },
{
role: "user", "content": `选题:${
topic}\n素材:${
materials}\n请生成完整文章,标题按模板修改` }
],
temperature: model.skillConfigs["article-writer"].temperature,
max_tokens: 2048
});
const content = response.data.choices[0].message.content;
const title = CONFIG.articleTemplate.title.replace("{topic}", topic);
return {
title, content };
}
// 函数3:智能配图(调用阿里云百炼文生图API)
async function generateImages(topic) {
console.log(`生成文章配图:${
topic}`);
const keywords = CONFIG.articleTemplate.coverKeywords.replace("{topic}", topic);
const images = [];
for (let i = 0; i < 3; i++) {
try {
const response = await axios.post(`${
model.baseUrl}/images/generations`, {
model: "bailian-vl/dall-e-3",
prompt: `生成公众号文章配图,主题:${
keywords},风格:科技感、简约、高清晰度,尺寸:900x500`,
n: 1,
size: "900x500"
});
const imageUrl = response.data.data[0].url;
const imageBuffer = await axios.get(imageUrl, {
responseType: 'arraybuffer' });
const imagePath = path.join(CONFIG.outputDir, `${
Date.now()}-${
i}.png`);
// 压缩图片适配公众号
await sharp(imageBuffer)
.resize(900, 500)
.png({
quality: 80 })
.toFile(imagePath);
images.push(imagePath);
} catch (error) {
console.error(`配图生成失败(第${
i+1}张):`, error);
}
}
return images;
}
// 函数4:Markdown转公众号HTML排版
function convertToMpHtml(article, images) {
console.log('进行公众号排版...');
let html = `<html><head><link rel="stylesheet" href="${CONFIG.articleTemplate.cssStyle}"></head><body class="markdown-body">`;
// 插入封面图
if (images.length > 0) {
html += `<img src="data:image/png;base64,${fs.readFileSync(images[0], 'base64')}" style="width:100%;height:auto;" />`;
}
// 插入正文(Markdown转HTML,依赖github-markdown-css)
html += `<h1 style="text-align:center;">${article.title}</h1>`;
html += article.content
.replace(/\n### (.*?)\n/g, '\n<h3>$1</h3>\n')
.replace(/\n## (.*?)\n/g, '\n<h2>$1</h2>\n')
.replace(/\n\*(.*?)\n/g, '\n<ul><li>$1</li></ul>\n')
.replace(/\n(.*?)\n/g, '\n<p>$1</p>\n');
// 插入其他配图
for (let i = 1; i < images.length; i++) {
html += `<img src="data:image/png;base64,${fs.readFileSync(images[i], 'base64')}" style="width:100%;height:auto;margin:10px 0;" />`;
}
html += `</body></html>`;
return html;
}
// 函数5:自动发布到公众号
async function publishToMp(article, html, images) {
console.log('发布到公众号...');
const thumbMediaId = images.length > 0
? await uploadImageToMp(images[0])
: null;
const articleData = {
title: article.title,
author: "你的公众号作者名",
digest: article.content.substring(0, 130) + "...",
content: html,
content_source_url: "",
thumb_media_id: thumbMediaId,
show_cover_pic: 1,
need_open_comment: 1,
only_fans_can_comment: 0
};
// 保存为草稿(autoPublish=false时)
return new Promise((resolve, reject) => {
wechatApi.createDraft(articleData, (err, res) => {
if (err) {
console.error('公众号发布失败:', err);
reject(err);
} else {
console.log('公众号草稿保存成功:', res);
resolve({
success: true, draftId: res.media_id });
}
});
});
}
// 辅助函数:上传图片到公众号素材库
function uploadImageToMp(imagePath) {
return new Promise((resolve, reject) => {
wechatApi.uploadMaterial(imagePath, 'image', (err, res) => {
if (err) reject(err);
else resolve(res.media_id);
});
});
}
// Skill入口函数(接收选题指令)
module.exports = async function run(topic) {
if (!topic) throw new Error('请指定选题主题');
try {
console.log(`开始生成公众号文章:${
topic}`);
// 步骤1:搜索素材
const materials = await searchMaterials(topic);
// 步骤2:生成文章正文
const article = await generateArticle(topic, materials);
// 步骤3:智能配图
const images = await generateImages(topic);
// 步骤4:排版转换
const html = convertToMpHtml(article, images);
// 步骤5:保存文件
const fileName = `${Date.now()}-${
topic.replace(/\s+/g, '-')}`;
fs.writeFileSync(path.join(CONFIG.outputDir, `${fileName}.md`), article.content);
fs.writeFileSync(path.join(CONFIG.outputDir, `${fileName}.html`), html);
// 步骤6:发布到公众号
const publishResult = await publishToMp(article, html, images);
return {
success: true,
title: article.title,
files: {
markdown: `${fileName}.md`,
html: `${fileName}.html`
},
publishResult
};
} catch (error) {
console.error('文章生成失败:', error);
return {
success: false, error: error.message };
}
};
# 步骤4:创建Skill配置文件 config.json
nano config.json
{
"name": "公众号文章全自动生成器",
"id": "mp-article-auto-generator",
"description": "接收选题后,自动完成素材搜索、正文生成、智能配图、排版、公众号发布全流程",
"trigger": {
"type": "command" // 指令触发,如"生成选题1的文章"
},
"dependencies": ["axios", "sharp", "wechat-api", "fs", "path"]
}
# 步骤5:启用Skill
openclaw skills enable mp-article-auto-generator
(三)搭建自动化闭环:从选题到发布无需人工干预
- 启动定时选题Skill:
docker exec -it openclaw openclaw tasks start trending-topic-selector - 接收选题推送后,发送指令触发文章生成:
在OpenClaw控制台/飞书发送指令:“运行mp-article-auto-generator,主题:OpenClaw爆火,自媒体人如何借势” - 查看结果:
- 文章文件保存到
/app/wechat-mp/articles(阿里云)或~/OpenClaw-MP/wechat-mp/articles(本地); - 公众号后台“草稿箱”可查看生成的文章,直接修改后群发。
- 文章文件保存到
五、常见问题解答(FAQ,避坑关键)
(一)部署与Skill开发相关问题
问题1:Skill执行时提示“依赖缺失”(如cheerio未找到)?
解决方案:- 进入容器安装依赖:
docker exec -it openclaw npm install cheerio puppeteer axios sharp wechat-api; - 检查Skill配置文件
config.json中的dependencies是否包含缺失依赖; - 重启OpenClaw容器:
docker restart openclaw。
- 进入容器安装依赖:
问题2:爬虫爬取失败,提示“页面加载超时”?
解决方案:- 检查服务器网络是否能访问目标平台(如GitHub、掘金);
- 修改puppeteer启动参数,增加超时时间:
const browser = await puppeteer.launch({ headless: 'new', timeout: 60000 // 超时时间设为60秒 }); - 更换爬虫目标平台,选择反爬机制较弱的网站。
问题3:公众号发布失败,提示“token无效”?
解决方案:- 确认公众号AppID、AppSecret、Token配置正确,无拼写错误;
- 检查公众号开发者模式是否开启(公众号后台→开发→基本配置→启用);
- 重新获取access_token:
docker exec -it openclaw node -e "new (require('wechat-api'))('AppID','AppSecret').getAccessToken(console.log)"; - 确保服务器IP已添加到公众号“IP白名单”(公众号后台→开发→基本配置)。
(二)API与功能相关问题
问题1:阿里云百炼提示“额度不足”,文章生成中断?
解决方案:- 登录百炼控制台,确认免费额度是否已过期(90天有效期);
- 优化模型参数,降低
max_tokens(如文章生成设为1500); - 启用缓存,重复素材搜索结果缓存到本地,避免重复调用API;
- 关闭智能配图功能(若无需配图),减少Token消耗。
问题2:生成的文章质量不高,排版混乱?
解决方案:- 优化
articleTemplate结构,明确每个部分的字数与格式要求; - 调整模型
temperature参数(如提高到0.9),增加创造性; - 手动编写1-2篇范文,作为素材传入Skill,让AI学习排版风格;
- 更换更适合文案生成的模型(如
bailian/qwen-plus)。
- 优化
问题3:定时Skill未按时触发?
解决方案:- 检查Cron表达式是否正确(如每天8点为
0 8 * * *); - 确认定时任务已启动:
docker exec -it openclaw openclaw tasks list; - 查看任务日志排查问题:
docker exec -it openclaw cat /app/logs/tasks/trending-topic-selector.log; - 重启定时任务:
docker exec -it openclaw openclaw tasks restart trending-topic-selector。
- 检查Cron表达式是否正确(如每天8点为
(三)其他高频问题
问题1:没有编程基础,能开发自定义Skill吗?
解决方案:完全可以!本文提供的Skill代码可直接复制使用,只需修改CONFIG中的关键词、平台、公众号配置;若需个性化修改,可借助OpenClaw的“代码助手模式”,发送指令让AI生成修改后的代码。问题2:如何避免公众号API调用频率限制?
解决方案:- 配置
tasks.maxConcurrent: 3,限制并发任务数; - 在Skill中添加延时函数,避免短时间内多次调用:
function sleep(ms) { return new Promise(resolve => setTimeout(resolve, ms)); } // 调用公众号API前延时1秒 await sleep(1000); - 优先使用草稿箱功能,避免频繁群发测试。
- 配置
问题3:本地部署后,关闭电脑会影响定时Skill运行吗?
解决方案:会!本地部署需保持电脑开机才能运行定时任务;若需长期稳定运行,建议升级到阿里云部署,服务器7×24小时在线。
六、总结:Skill是自媒体人的终极护城河
参考文章的核心观点振聋发聩:工具迭代永远比学习速度快,但“用Agent思维解决问题”的能力永远不过时。对公众号运营而言,OpenClaw只是工具,真正的竞争力是你开发专属Skill的能力——别人用现成工具手动运营,你用自定义Skill实现全自动生产,这就是效率差,也是赚钱差。
本文基于原文的Skill开发逻辑,补充了全平台部署、免费API配置、完整Skill代码与自动化闭环搭建,用户可按以下路径快速落地:
- 选型:多账号、长期运营选阿里云,个人、单账号选本地部署;
- 部署:用Docker完成OpenClaw基础部署,安装公众号运营依赖;
- 配置:申请阿里云百炼免费API,填写公众号配置信息;
- 开发:复制本文Skill代码,修改配置适配自己的账号;
- 闭环:启动定时选题Skill,指令触发文章生成,实现全自动运营。
2026年,自媒体行业的竞争不再是“谁更能写”,而是“谁更会用AI赚钱”。通过本文的指南,你也能打造属于自己的“全自动公众号印钞机”,把重复劳动交给AI,把时间还给创意与思考——这才是OpenClaw爆火的真正意义:让工具为你打工,而不是你为工具打工。