
先说结论这套东西跑通之后我真的可以实现每天早上九点自动打开小红书创作后台把前一天生成好的图文内容自动发布出去文案、封面、标签全部由程序包办全程不用手动碰手机和电脑。听起来很玄乎对吧其实背后的逻辑不复杂——你只需要一个开源的 Agent 框架 OpenClaw社区里也习惯叫它 Clawdbot再给它配上叫 Skills 的插件体系剩下的事情就是按部就班地填参数、写规则。这篇我就用最“喂饭”的方式把 2026 版本的部署过程、Skills 开发方法以及小红书图文发布的整条链路拆开揉碎讲清楚。这篇内容适合谁我觉得三类人最需要一是做内容运营但每天被重复发布工作拖垮的博主二是想入门 AI Agent 但被各种术语劝退的新手三是已经玩过 OpenClaw 但卡在“不知道怎么让它干活”的折腾型选手。不管你属于哪一类只要按着下面的步骤走我保证你能在半小时内跑通第一版自动发布流程。1. 先想清楚这套自动化的完整链路1.1 这件事的本质是什么很多人一听“AI 自动发小红书”第一反应是“是不是要写爬虫”“是不是要破解接口”“是不是很危险”。其实都不是。你完全可以把它理解成一个机器人管家你告诉它“每天早上 9 点发一篇关于咖啡的图文”它就自己去调用文案生成能力、图片处理能力、浏览器操作能力最后把成品发到创作后台。这里面的核心链条有四段内容生成根据你给的主题由大模型生成文案和图片。内容存储生成好的 markdown 文件和图片按日期归档到本地。发布执行通过浏览器自动化或平台接口把内容提交到小红书创作后台。定时调度由 OpenClaw 的触发机制按计划调用整个流程。我用一个生活化的类比这就像你雇了一个助理助理每天自己找选题、写稿子、做封面、排版然后打开网页登录你的账号发布。你只需要每周看一眼数据反馈调整一下选题方向。1.2 Skills 在 OpenClaw 里到底是个啥OpenClawClawdbot本身更像是一个调度中枢它不负责具体的业务操作。真正干活的是 Skills。每个 Skill 就是一个独立的功能模块类似手机里的 App。比如你想让它生成文案就装一个“文案生成 Skill”想让它处理图片就装一个“图片处理 Skill”想让它操作浏览器发布就装一个“发布 Skill”。多个 Skill 可以被编排成一条流水线先调用哪个、后调用哪个、失败怎么重试都由 OpenClaw 统一管理。我一开始犯的错误是总想把所有逻辑写在一个脚本里结果越写越乱。后来才明白Skill 的拆分原则很简单一个 Skill 只做一件具体的事。文案生成归文案图片处理归图片发布归发布这样后续替换任何一个环节都不用动其他代码。1.3 为什么这个方案适合新手对比一下现成的发帖脚本。市面上很多所谓的“一键发布工具”是打包好的黑盒你填个账号密码就完事。听起来省事但问题在于你没法控制内容质量没法调整发布节奏更没法把它接到自己的数据源上。而 OpenClaw 的好处是模块化 事件驱动。你可以从最简单的一个 Skill 开始跑通之后再加第二个、第三个。整个学习曲线是平滑的不至于一上来就面对一堆抽象概念。另外它是本地运行的你的账号数据、生成的内容都在自己手里可控性高得多。有人可能会问那直接用 ChatGPT 生成文案再手动粘贴到小红书不行吗当然行但那就回到手工操作了。自动化讲究的是“无人值守”你要的是内容能自己从数据库里拿出来、自己配图、自己发布而你只需要在数据反馈好的时候多生成几篇数据不好就换个选题方向。2. 起步部署把 OpenClaw (Clawdbot) 跑起来2.1 环境要求与依赖准备先说环境这步卡住了很多人但实际要求并不高。我是在一台普通的 Windows 笔记本上做的部署系统是 Win 11。如果你用 macOS 或者 Linux操作基本一致。硬件方面OpenClaw 本身不挑配置2 核 4G 内存就能跑得很流畅。但如果你的 Skills 里包含本地图片生成模型那我建议至少准备 8G 显存新手阶段我强烈建议直接调用现成的大模型服务 API这样就能跳过本地模型部署这道坎。软件方面需要准备这几样Node.js 18 或 Python 3.10看你的运行环境选哪个我个人推荐 Node 版本后续安装 Skills 更顺手。Git用来拉取项目代码。浏览器发布 Skill 需要用到推荐新版的 Chromium 系浏览器。Docker可选但如果你不想污染本地环境可以用容器跑。安装 Node 的时候记得勾选“自动安装必需工具”选项它会帮你把编译环境一并搞定。我见过不少新手的报错其实都是这一步漏了。2.2 拉取程序与初始化配置环境准备好之后打开终端执行下面这条命令把项目克隆到本地git clone OpenClaw项目仓库地址 openclaw cd openclaw接着安装依赖。这一步会拉取几十个第三方包耐心等它跑完npm install安装完成后你会发现项目根目录里有个.env.example文件。把它复制一份命名为.envcp .env.example .env然后打开.env文件重点配置这几个字段# 大模型服务的 API Key MODEL_API_KEY你的密钥 # 默认使用的模型名称建议选支持长上下文的型号 MODEL_NAMEdefault-model # 数据存储目录默认为 ./data DATA_DIR./data # 时区设置影响定时任务 TZAsia/Shanghai这里要特别提醒API Key 属于敏感信息不要把.env文件提交到 Git 仓库。项目默认的.gitignore通常会忽略它但你自己心里要有这根弦。我在刚上手时有一次把配置写进了示例文件差点就传上去了后来养成了改完配置就检查一遍git status的习惯。2.3 验证安装跑通第一个基础 Skill配置完成之后启动服务npm run dev看到终端输出类似“OpenClaw (Clawdbot) is running on port 3000”的日志就说明主程序已经起来了。但此时还不算真正跑通你需要验证它能不能调用 Skills。项目自带了一个基础示例 Skill叫hello作用是打印一段文字。在另一个终端窗口执行claw run skill:hello如果能看到类似Hello from OpenClaw!的输出恭喜你整套框架已经活了。后面你做再多复杂功能本质都是在往这个框架里填自己的 Skill。2.4 部署中的三个常见坑直接把我踩过的坑列出来省得你重复交学费第一个坑端口被占用。如果你本机已经跑着其他服务3000 端口可能冲突启动会报错。解决办法是把.env里的PORT3000改成PORT3001之类的未占用端口。第二个坑依赖安装失败。国内网络环境下npm 偶尔会卡在某个包上。这时候可以把 npm 镜像源切换成国内镜像然后再重新安装。这一步解决的是下载速度问题跟网络代理没有任何关系。第三个坑日志不输出。有些版本默认把日志级别设成了 warn导致你看不到正常输出还以为程序卡死了。可以在启动命令后面加上调试参数或者直接去logs/app.log看实时日志。3. 核心环节开发“小红书自动发图文” Skills3.1 Skill 的文件结构长什么样在项目根目录下新建一个skills文件夹然后为小红书图文发布单独建一个目录。一个标准 Skill 的文件结构是skills/ xiaohongshu_auto/ manifest.json main.py assets/manifest.json是 Skill 的说明书声明了它的名称、版本、支持的输入参数。main.py是具体的执行逻辑。assets目录用来放默认图片模板、字体等资源。先写manifest.json{ name: xiaohongshu_auto, version: 1.0.0, description: 自动生成小红书图文并发布, inputs: [ { name: topic, type: string, required: true, description: 图文主题 }, { name: images, type: string, required: false, description: 本地图片路径多个用逗号分隔 } ] }这里的关键是inputs。它相当于告诉 OpenClaw我这个 Skill 需要接收什么参数。topic是你每次调用时传入的主题词images是可选的自定义图片路径。3.2 文案生成和图片处理逻辑写main.py的时候我建议把它拆成三个函数generate_copy、generate_images、save_article最后再定义一个run把它们串起来。import json import os from datetime import datetime def generate_copy(topic: str) - dict: # 调用大模型生成文案 # 这里以 HTTP 请求为例 response call_model( promptf为即将发布小红书的内容写一篇种草文案主题是{topic}。 f要求标题不超过20字正文800字左右带话题标签。 ) return { title: response[title], body: response[body], tags: response[tags] } def generate_images(topic: str, custom_images: str None) - list: if custom_images: return [p.strip() for p in custom_images.split(,) if p.strip()] # 没有自定义图片时调用图像生成模型或从模板目录拷贝 return [assets/default_cover.png] def save_article(data: dict, images: list) - str: date_str datetime.now().strftime(%Y%m%d_%H%M) folder foutput/{date_str} os.makedirs(folder, exist_okTrue) with open(f{folder}/content.md, w, encodingutf-8) as f: f.write(f# {data[title]}\n\n{data[body]}\n\n) f.write( .join(f#{tag} for tag in data[tags])) return folder def run(topic: str, images: str None): data generate_copy(topic) image_list generate_images(topic, images) folder save_article(data, image_list) # 最后调用发布流程下节细说 publish_to_xiaohongshu(folder) return {status: success, folder: folder}这里面的核心逻辑一点都不神秘先让大模型写文案再处理图片最后保存到本地。文件保存的路径我特意用了“日期时间”的目录名方便后续排查哪一篇是哪天生成的。3.3 发布动作自动化操作还是接口调用发布是整个流程里最容易翻车的环节也是大家最关心的。目前主流的做法有两种我分别说清楚。第一种浏览器自动化。我用的是 Playwright它就像在幕后开了一个不需要屏幕的浏览器帮你自动打开创作后台、登录账号、上传图片、填文案、点发布。核心代码是这样from playwright.sync_api import sync_playwright def publish_to_xiaohongshu(folder: str): with sync_playwright() as p: browser p.chromium.launch(headlessTrue) context browser.new_context( storage_statesession/session.json ) page context.new_page() # 打开创作后台 page.goto(https://example.com/editor) # 等待页面加载完成 page.wait_for_selector(text发布笔记) # 填写标题和正文 page.fill(input[placeholder请输入标题], title) page.fill(textarea[placeholder输入正文], body) # 上传图片 page.set_input_files(input[typefile], image_paths) # 点击发布 page.click(button:has-text(发布)) browser.close()这里的storage_state是存储的登录态第一次你需要手动打开浏览器登录一次把登录后的 Cookie 保存成session/session.json以后就能自动复用。第二种平台接口。如果平台方提供了开放接口那是更干净的方式速度快也不需要维护浏览器。但接口通常有权限限制和频率限制不是所有人都能申请到。新手阶段我更建议先把浏览器自动化跑通等确认有稳定需求再考虑接口方案。3.4 参数设置与发布伪装策略这里说的“伪装”不是恶意行为而是模拟真人操作习惯避免被平台的风控误判为机器人。比如每次发布前随机延迟 3 到 8 秒模拟思考时间。发布时间不要固定在每分每秒而是间隔 10 到 15 秒之间随机。如果当天发布多条每条之间至少间隔 1 小时以上。这些细节看起来不起眼但实测下来非常有用。我有一次把间隔时间设成 5 秒固定值连续发了三条第三条直接触发验证码。后来改成了随机延迟类似问题再没出现过。4. 实战接入把 Skills 集成进 OpenClaw 并加入定时任务4.1 手动触发一次全流程Skill 写好后先别急着挂定时任务手动跑一次全流程验证链路是通的。执行claw run skill:xiaohongshu_auto --topic 春季通勤穿搭如果一切顺利你会看到终端日志里依次出现“文案生成完成”“图片处理完成”“文章已保存”“发布成功”这几条记录。这时候去你的小红书账号后台看一眼内容应该已经躺在“笔记管理”里了。这一步极其重要。我第一次直接挂定时任务结果第二天发现一条都没发出去原因是登录态过期了但日志全在本地没来得及看。先手动跑通能让你把问题控制在最小范围内。4.2 配置定时发布的触发规则OpenClaw 支持通过配置文件声明定时任务。在项目根目录下有一个triggers.yaml把下面这段加进去triggers: - type: cron schedule: 0 9 * * * skill: xiaohongshu_auto params: topic: 今日好物推荐这行配置的意思很简单每天早上 9 点整自动调用xiaohongshu_auto这个 Skill主题参数固定为“今日好物推荐”。如果你不想用固定的主题可以改成一个动态来源比如从 RSS 订阅源抓取最新的文章标题作为 topic 传入。这样每天发布的内容就是自动更新的不用你手动改配置。一条简单的联动方案是这样的- type: cron schedule: 30 8 * * * skill: rss_fetch params: feed_url: https://example.com/feed.xml next_skill: xiaohongshu_auto意思是早上 8 点 30 分先抓取 RSS 内容然后把抓到的标题传给后一个 Skill。4.3 让内容来源更丰富接入数据库或 RSS只有固定主题的自动发布很快你会觉得乏味。真正的玩法是把它接到自己的内容池上。我自己的做法是维护了一个选题库用一张简单的表格记录候选话题和权重。每次调度触发时OpenClaw 先读取这个选题库按照权重随机抽一个主题再交给小红书 Skill 去生成。这样每天发的内容都不一样而且权重高的选题出现概率大效果好的选题会自然被多选几次。数据源的接入其实就是一个额外的 Skill它负责从数据库或 RSS 里读数据然后返回给调度器。OpenClaw 允许一个 Skill 的输出作为另一个 Skill 的输入这正好串起了一条完整的数据流水线。4.4 日志与监控自动化的前提是可控而可控的前提是能第一时间发现问题。OpenClaw 的日志默认写在logs/app.log我建议你在配置里把日志级别调成info这样每次任务的执行结果都会有记录。如果你需要更直观的监控可以接一个简单的通知 Skill每当发布成功或失败时往你的即时通讯工具里发一条消息。实现方式就是在run()函数末尾加一行 HTTP 回调把执行结果推过去。这样你早上醒来翻一眼手机就知道昨晚的发布任务都干了什么不用特意打开电脑查日志。5. 常见问题与排查技巧实录5.1 登录态失效导致的发布失败这是最容易出问题的地方。Cookie 可能因为平台更新或长时间未操作而过期导致自动化打开后台时跳转到登录页发布动作自然失败。排查方式看日志里有没有“登录已过期”或“跳转登录页”之类的关键词。解决方案用 Playwright 写一个登录脚本手动扫码后把新的 Cookie 保存到session/session.json覆盖旧的即可。我已经习惯每周检查一次登录态如果连续三天没发新内容我也会手动触发一次来确认账号状态。5.2 图片生成失败或尺寸不符小红书的封面图有官方推荐比例常见的是 3:4。如果你的图片生成模块输出的尺寸不对发布时会提示“图片比例不支持”或直接被平台截断。解决方案在图片处理环节加一个标准化步骤把生成的图片统一缩放到目标尺寸并检查文件大小是否超过平台限制。你可以提前在本地把所有图片过一遍PIL的处理流程确保尺寸、格式、清晰度都符合要求再交给发布模块。5.3 发布频率过快触发风控平台对短时间内的发布频率是有监控的。如果你把定时任务设成每小时发一条连续跑一整天极大概率触发验证码甚至限流。解决方案把发布间隔拉长控制在每天 2 到 3 条以内。哪怕你有很好的内容储备也不要让自动化账号变成“发稿机器”。我给自己的上限是每天 3 条每条发布时间随机在 8 点到 12 点之间浮动。5.4 Skill 调用超时有些 Skill 可能在执行过程中卡住比如大模型接口响应慢或者浏览器页面加载不出来导致整个任务超时挂起。解决方案在main.py里给每个环节加上超时控制。比如调用模型接口设置 120 秒上限浏览器操作设置 60 秒上限超时后直接抛异常并记录日志。OpenClaw 会对异常任务做重试但如果一直卡在同一环节就要考虑是不是输入参数有问题了。5.5 问题快查表问题可能原因排查手段解决办法日志为空日志级别过高查看配置文件调为 info 级别端口冲突其他程序占用查看启动报错更改 PORT 参数Cookie 失效登录态过期观察页面跳转重新登录并保存图片上传失败尺寸/格式不支持查看上传报错预处理图片触发风控频率过快观察时间间隔加随机延迟任务未运行定时配置错误检查 triggers 文件确认 cron 表达式5.6 一个值得注意的细节所有自动发布的内容发布后都要第一时间去账号后台核对一下实际效果。我观察到一个小规律自动化生成的内容数据表现通常不如人工精心打磨的爆款但它胜在稳定产出、量大管饱。你要做的是把自动化生成的内容定位成“日常更新”把你亲自写的内容定位成“精品内容”两条腿走路。6. 合规意识与长期运营心得6.1 遵守平台规则是底线我在前面反复强调风控、限流、验证码其实背后就一句话自动化工具要在平台允许的范围内使用。小红书对内容营销和自动化操作有自己的管理规范我们做自动化内容生成必须遵守这些规范不刷量、不恶意营销、不使用违规内容。具体操作上我有几条硬性自律规则发布频率严格模仿真人每天不超过 3 条。内容必须有实际信息增量严禁自动生成无意义的灌水文。涉及推荐、导购类内容必须标注立场和利益关系保证内容透明。绝不批量注册或管理多个账号用于营销只做自己正常账号的效率提升。这不仅是合规问题也是账号能不能长久运营的关键。我见过很多人因为频率过高被限流后再恢复权重要花大半个月得不偿失。6.2 内容质量是自动化的生命线一旦开始自动化你很容易陷入“为了更新而更新”的陷阱。我的经验是自动化负责“稳定输出”但内容角度的选择和最终质量把控还是要靠你自己。比如我每周会抽半小时看看上一周自动发布的内容数据把点击率高的主题放进选题库的高权重区数据差的直接移出。用数据反馈来调优自动生成的方向而不是任凭程序自己写。这半个小时的投入比多写十篇自动生成的文章都有效。6.3 后续还能怎么扩展这套框架跑通之后可玩性远不止小红书图文发布。我目前已经在做的扩展方向有这么几个把同一个 Skills 框架接驳其他图文平台的“创作后台”实现一稿多发。增加数据分析 Skill自动读取笔记数据生成周报。接入私信自动回复对评论区互动做初步响应。把内容流程做成一个完整的“选题—创作—发布—复盘”闭环每周自动生成运营总结。这些都只是把现有 Skill 的颗粒度再拆细一点再加几条触发规则难度不会比现在高太多。OpenClaw 的底子决定了一旦跑通一个完整 Skill后面就是拼接积木的活儿。最后多分享一个我个人的心得体会自动化不是为了让你彻底撒手不管而是为了把你从重复劳动里解放出来把时间花在真正需要判断力的地方。像“这篇内容标题起得好不好”“这周的选题方向对不对”这类问题依然需要你自己拍板。工具能帮你节省两小时但省下来的时间要用在刀刃上否则自动化就失去了意义。