每天睁眼第一件事就是打开小红书、B站手动发布内容,重复劳动磨掉创作热情。现在用AI Agent自动发布自媒体,一条指令就能驱动Agent调用Autogen或Riona完成内容生成、多平台分发全流程——连抖音和B站这类没有API的平台也通过Puppeteer模拟操作搞定。十分钟搭好流水线,剩下的时间回去写下一篇文章。
AI Agent自动发布自媒体的基本原理与适用场景 AI Agent自动发布自媒体的核心是将LLM作为大脑,驱动一系列工具链完成从内容生成到多平台分发的闭环。典型的实现方式基于任务分解:Agent接收一条高级指令(如“生成一篇小红书图文并发布”),然后通过ReAct模式(思考-行动-观察循环)拆解出子任务——调用大模型生成文案、调用图像工具处理图片、调用浏览器自动化脚本上传内容。这种工作流规避了传统RPA脚本的僵化问题,Agent能根据平台反馈(如发布失败返回的错误码)动态调整重试策略。
以Autogen(v0.2.10+)为例,配置两个核心角色:AssistantAgent负责规划与生成,UserProxyAgent负责执行工具函数。在autogen.agentchat中设置function_map时,可以绑定一个post_to_bilibili(content_dict)函数,该函数内部调用Puppeteer模拟登录与上传。关键配置参数是max_consecutive_auto_reply设为3,避免Agent无限循环调试。另一个常用工具是Riona-AI-Agent(依赖google-generativeai 0.8.3),它通过持久化Cookie文件(cookies.json)维持推特或小红书的登录态,核心代码中调用riona.browser.auto_comment(text, url)时使用--headless false模式调试,线上改true。
注意:如果平台启用了验证码或双因子认证,模拟浏览器路线会非常脆弱。实际生产中可以预留10-15秒的等待间隔,配合n8n的Webhook捕获手动验证后继续流程。
适用场景集中在四类需求:
个人内容矩阵:每天在3-5个平台同步发布同一内容(如博客摘要转小红书+微博+B站动态),AI Agent自动改写适配每个平台的标题长度和标签格式。 电商商品推广:接收商品更新通知后,Agent自动调用通义万相生成商品图,再通过Puppeteer发布到抖音图文和闲鱼,全程无需API。 视频批量上传:开源项目MatrixMedia(基于Electron 32.1.0 + Puppeteer 23.6.0)将六大平台的GUI操作转化为CLI命令,Agent通过检测exit code(0成功,100登录失效,110上传超时)决定是否重试。 互动维护:Riona-AI-Agent的定时任务每隔2小时执行一次评论点赞,利用Google Gemini生成符合语境的回复,Cookie过期前自动刷新。 理解这些原理后,具体的环境搭建决定了Agent能否稳定运行——Autogen需Python 3.10+(推荐3.12),Puppeteer依赖Chrome 130+,MatrixMedia要求在sandbox模式下执行以避免权限问题。
使用Autogen Studio搭建自动发布小红书的工作流 使用Autogen Studio搭建自动发布小红书的工作流 先部署Autogen Studio。克隆仓库 microsoft/autogen(tag v0.2.10),创建Python 3.12虚拟环境。安装依赖后运行 autogenstudio ui --port 8081,打开浏览器进入Web面板。
1. 配置两个Agent角色 在Studio左侧面板创建 UserProxyAgent,参数如下:
name: user_proxy human_input_mode: NEVER(全自动模式必须关掉) max_consecutive_auto_reply: 3(防止Agent无限循环) function_map: 绑定自定义函数 post_to_xiaohongshu 第二步创建 AssistantAgent,大模型选 gpt-4-turbo(实测对中文指令理解优于其他模型)。填写System Message时,给出明确约束:
使用 post_to_xiaohongshu 函数时,只接受参数 content_dict(包含 title, images, text)。不允许直接调用任何外部命令。发布失败返回错误码110则重试一次,仍失败则记录日志后终止。
2. 实现发布函数 函数核心逻辑用 Puppeteer 模拟,代码片段示例如下:
async def post_to_xiaohongshu(content_dict): from pyppeteer import launch browser = await launch(headless=True, executablePath='/usr/bin/chromium-browser') page = await browser.newPage() await page.goto('https://creator.xiaohongshu.com/login') # 等待30秒供手动扫码(首次需执行一次,之后可复用cookies) with open('cookies.json', 'r') as f: cookies = json.load(f) await page.setCookie(*cookies) await page.goto('https://creator.xiaohongshu.com/publish/publish') # ... 上传图片、填写文本 await page.click('.publish-btn') await browser.close() return {"status": "success", "id": "123456"} 关键点:首次运行需在 headless=False 模式下扫码生成 cookies.json。之后每次启动前检查cookie有效期(小红书cookie约7天失效),失效时触发钉钉机器人通知手动刷新。
...