1. 项目概述从选题到草稿一个可审查、可续跑的小红书自动化工作流如果你正在运营小红书账号或者管理一个内容团队你肯定对下面这个场景不陌生想好一个选题然后开始找资料、写文案、P图、检查、最后发布。整个过程琐碎又耗时更头疼的是一旦中间某个环节出问题比如生成的图片不满意或者文案需要大改整个流程就得推倒重来所有工作几乎白费。今天要聊的这个项目magichanks/openclaw-xhs-workflow就是为了解决这个痛点而生的。它不是一个简单的文案生成器而是一个完整的、工程化的“小红书内容生产工作流”。它的核心目标很明确给你一个选题还你一套完整的、可检查、可随时中断并继续、且默认先存为草稿的内容包。简单来说它把内容创作从一次性的“黑盒”操作变成了一个可观测、可控制的“流水线”。你不再只是得到一个AI生成的文本而是获得一个结构清晰的文件夹里面包含了从市场调研research到最终草稿draft的全链路中间产物和状态记录。这对于追求内容质量、需要人工审核或者希望将AI生成内容无缝集成到现有工作流程中的团队和个人来说价值巨大。无论你是独立创作者想提升效率还是技术开发者希望为OpenClaw框架构建一个可靠的内容生产插件这个项目都提供了一个经过深思熟虑的范本。2. 核心设计思路为什么是“工作流”而非“单次提示”2.1 从“一次性生成”到“可续跑状态”的范式转变大多数AI内容工具的思路是输入提示词Prompt输出一篇文案或一张图。这就像一台自动售货机投币输入出货输出交易结束。但内容创作尤其是带有商业目的或品牌调性的创作很少能一蹴而就。openclaw-xhs-workflow的设计哲学截然不同它模拟的是一个有状态、分阶段、可回滚的工业生产流程。它的核心产出不是一个文件而是一个名为“Pack”的目录。这个目录完整记录了一次内容生产的生命周期。例如一个典型的Pack目录结构如下2025-04-10-如何挑选程序员键盘/ ├── brief.md # 原始选题简报 ├── title.txt # 生成的标题 ├── content.txt # 生成的正文 ├── hashtags.txt # 生成的话题标签 ├── research.md # 市场调研与分析报告 ├── research.json # 结构化的调研数据 ├── image_prompts.md # 封面图生成提示词 ├── review_report.json # 内容审核报告 ├── publish_result.json # 发布结果成功/失败 ├── workflow_state.json # 工作流当前状态关键 ├── agent_runs.json # 每个AI智能体的执行历史 └── assets/ ├── cover.png # 生成的封面图 └── manifest.json # 素材清单这个结构的意义在于可审查性任何中间环节如调研结论、文案初稿、图片提示词都以文件形式存在负责人可以随时介入检查确保内容方向符合预期而不是等到最后才看到一个可能跑偏的最终结果。可续跑性这是最核心的优势。workflow_state.json文件记录了工作流执行到了哪一步。如果因为网络问题、API调用失败或人工审核不通过而在“图片生成”阶段中断你修复问题后工作流可以从中断点继续而无需重新执行已经成功的“调研”和“文案”阶段。这极大地节省了时间和API调用成本。草稿优先工作流默认的终点是“保存草稿”而非直接发布。这符合安全第一的生产原则给了运营人员最后一道人工把关和微调的机会。2.2 清晰的阶段划分与职责边界项目将小红书单篇内容的生产流程清晰地划分为五个阶段每个阶段职责单一输入输出明确调研阶段输入一个宽泛的选题输出结构化的调研报告。这个阶段的目标不是写文案而是“理解战场”。AI会分析该选题下常见的用户痛点、热门角度、表达雷区以及数据支撑如果接入了搜索工具。这确保了后续的文案创作是基于市场洞察而非凭空想象。文案阶段基于调研报告生成符合小红书平台调性的标题、正文和话题标签。同时它还会产出用于下一阶段的“图片提示词”和“素材计划”。这里的关键是文案创作和图片构思是联动的提示词是根据文案内容专门定制的避免了图文不符的问题。图片阶段这是一个灵活的适配层。它可以根据配置选择不同的图片生成方式使用本地已有的图片文件--source-file参数。调用OpenClaw框架已集成的图像生成能力如DALL-E、Midjourney API。直接调用外部的图像API如OpenAI Images或Gemini。 这种设计将“内容需求”图片提示词与“技术实现”调用哪个API解耦提高了系统的可扩展性。审核阶段在内容进入发布流程前进行一次质量关卡。审核可以是AI自动进行的检查文案合规性、图文相关性等也可以是预留的人工审核接口。审核结果会写入review_report.json决定内容包是否具备进入下一阶段的资格。发布阶段负责与小红书平台交互执行保存草稿或发布的最终操作。项目通过publisher_contract.md定义了与发布器可能是Selenium自动化脚本、模拟请求工具或官方API封装的交互契约确保了工作流核心与平台具体操作的隔离。这种管道式设计使得每个阶段都可以独立优化、替换或升级。例如你可以轻易地将文案生成的模型从GPT-4换成Claude或者将图片生成从DALL-E换成Stable Diffusion而无需改动工作流的其他部分。3. 环境配置与快速启动选择你的运行路径项目通过“Profile”的概念来管理不同的运行配置这非常实用能适配从快速体验、到本地测试、再到全流程生产的不同场景。3.1 配置基础环境变量无论使用哪个Profile第一步都是复制环境变量模板并配置。# 复制环境变量模板 cp .env.example .env.local接下来你需要编辑.env.local文件。这里以最复杂的全功能模式为例讲解几个关键配置# OpenAI API 配置用于文案生成、审核等 OPENAI_API_KEYsk-你的OpenAI密钥 OPENAI_BASE_URLhttps://api.openai.com/v1 # 如果你使用代理或第三方兼容服务可修改此处 # 图像生成API配置以OpenAI DALL-E为例 IMAGE_GENERATION_PROVIDERopenai # 可选openai, gemini, openclaw使用OpenClaw内置能力 OPENAI_IMAGE_MODELdall-e-3 OPENAI_IMAGE_SIZE1024x1024 # 小红书发布器配置示例具体取决于你的publisher实现 XHS_PUBLISHER_TYPEselenium # 可能是 selenium, api, mock XHS_COOKIES_PATH/path/to/your/cookies.json # 注意项目本身不管理浏览器Profile或Cookies这需要你在对应的publisher中处理。重要提示.env.local文件包含敏感信息务必将其添加到.gitignore中切勿提交到版本库。3.2 理解并选择运行Profile项目提供了多个预设的Profile对应不同的复杂度和资源需求mock(模拟模式)这是强烈推荐的首次体验路径。此模式下所有AI调用都会被模拟图片生成使用占位图发布操作也只是模拟。它不需要任何真实的API密钥、图片文件或登录状态。目的就是让你在30秒内完整地走通一遍工作流理解整个数据流转和文件产出结构。执行命令如下/usr/bin/python3 scripts/check_env.py --profile mock /usr/bin/python3 scripts/quickstart.py --profile mock执行后去./tmp-packs目录下查看生成的内容包你会直观地看到workflow_state.json中状态变为draft_saved以及各个中间文件的内容。openclaw(OpenClaw基础模式)适用于已经搭建好OpenClaw服务并且倾向于使用本地图片的用户。此模式下文案生成、审核等文本任务通过你配置的OpenClaw服务完成但封面图需要你通过--source-file参数指定一个本地图片文件的绝对路径。/usr/bin/python3 scripts/check_env.py --profile openclaw --source-file /绝对路径/到/你的封面图.jpg /usr/bin/python3 scripts/quickstart.py --profile openclaw --source-file /绝对路径/到/你的封面图.jpgopenclaw-images(OpenClaw全功能模式)这是与OpenClaw框架集成度最高的模式。前提是你的OpenClaw服务已经配置好了图像生成能力例如集成了OpenAI或Gemini的图片API。在此模式下从文案到图片生成再到发布全部通过OpenClaw服务调度实现了真正的端到端AI内容生产。/usr/bin/python3 scripts/check_env.py --profile openclaw-images /usr/bin/python3 scripts/quickstart.py --profile openclaw-imagesopenai-images/gemini-images(独立图像API模式)当你不想或无法通过OpenClaw集成图像功能时使用。工作流的文案部分仍通过OpenClaw或其它方式处理但图片生成阶段会直接调用你配置的OpenAI或Gemini图像API。这需要你在.env.local中正确配置对应的API密钥。选择建议新手/评估者无脑用mock模式快速理解项目。OpenClaw深度用户如果OpenClaw已配置图像能力用openclaw-images否则用openclaw并准备好图片。希望混合搭配的用户可以用openclaw处理文案用openai-images生成图片这需要在代码或配置上做一些自定义但项目结构支持这种灵活性。3.3 核心脚本详解与自定义入口项目提供了几个核心脚本作为入口点scripts/check_env.py环境检查脚本。在运行工作流前务必先执行它。它会根据你指定的--profile检查必要的环境变量、API连通性、文件路径是否存在等。例如在openclaw模式下它会检查--source-file指向的图片是否存在在openai-images模式下它会验证OPENAI_API_KEY是否有效。这是一个很好的实践能提前发现配置问题避免工作流跑到一半失败。scripts/quickstart.py快速启动脚本。它封装了一个最简化的流程使用一个内置的默认选题运行一次完整的工作流。这是测试和演示的主要工具。scripts/xhs_workflow.py这才是工作流的核心引擎。quickstart.py最终也是调用它。如果你需要集成到自己的系统中或者想以编程方式控制工作流例如从数据库读取选题、批量处理你需要直接与此脚本交互。它接收选题、配置等参数并返回生成的内容包路径。如何自定义运行假设你有一个选题列表文件topics.txt想要批量生成内容草稿可以编写一个简单的Python脚本import subprocess import json with open(topics.txt, r) as f: topics [line.strip() for line in f if line.strip()] for topic in topics: # 构建命令例如使用 openclaw-images 模式 cmd [ /usr/bin/python3, scripts/xhs_workflow.py, --profile, openclaw-images, --topic, topic, --output-dir, ./batch_packs, # 指定输出目录 --allow-publish, false # 强制仅存草稿 ] try: result subprocess.run(cmd, checkTrue, capture_outputTrue, textTrue) pack_info json.loads(result.stdout) print(f成功生成内容包: {pack_info[pack_path]}) except subprocess.CalledProcessError as e: print(f处理选题 {topic} 失败: {e.stderr}) # 这里可以加入重试或记录日志的逻辑这个例子展示了如何将工作流作为组件嵌入更复杂的自动化任务中。4. 工作流各阶段实操解析与避坑指南4.1 调研阶段如何让AI更懂你的受众调研阶段的质量直接决定了后续文案的命中率。项目中的research模块会尝试拓展选题。但默认的提示词可能不符合你的垂直领域。你可以通过修改或扩展相关提示词模板来提升调研质量。实操技巧定制你的调研指令找到项目中的调研提示词文件通常位于prompts/research目录下你可以看到AI被要求从“用户痛点”、“内容角度”、“数据支撑”、“表达边界”等方面进行分析。如果你做的是美妆领域可以增加“成分分析”、“肤质适配”、“价格区间对比”等维度。如果你做的是编程教程可以增加“前置知识要求”、“常见报错排查”、“性能对比”等维度。常见问题调研内容过于空泛现象生成的research.md里全是“用户想要效果好”、“内容要实用”这种正确的废话。排查首先检查你的选题是否本身过于宽泛如“健身”。尝试给出更具体的选题如“新手小白如何在家用哑铃高效练肩”。解决在环境变量或启动参数中为工作流提供更丰富的上下文。例如可以设置一个BRAND_TONE变量内容为“专业、亲切、反对焦虑营销”这样AI在调研时也会考虑品牌语调。更高级的做法是在调用工作流前先用自己的脚本基于行业报告、竞品分析生成一份更详细的背景资料background.md然后将其作为附加输入提供给调研阶段。4.2 文案与图片阶段确保图文一体文案阶段会产出image_prompts.md。这个文件是连接文案和图片的桥梁。图片生成AI无论是DALL-E还是SD对提示词非常敏感。实操技巧优化图片提示词生成默认的提示词生成可能比较直白。例如对于一篇关于“咖啡馆办公”的笔记它可能生成“一个人坐在咖啡馆里用电脑”。这样的提示词生成的图片缺乏风格和氛围。你可以在copy阶段的提示词模板中加入对图片风格的约束。例如请生成封面图提示词。要求 1. 风格小红书流行的手绘插画风色彩明亮温馨。 2. 构图主角为女性自由职业者桌面有咖啡杯、笔记本电脑、便签本背景是模糊的咖啡馆环境。 3. 氛围专注、舒适、有生活格调。 4. 技术参数比例16:9细节丰富。这样产出的提示词会更精确生成的图片与文案调性也更匹配。避坑指南图片生成失败或质量差API调用失败首先用scripts/check_env.py检查API密钥和网络。对于OpenAI注意DALL-E 3模型目前只支持1024x1024、1792x1024、1024x1792三种尺寸。图片内容被拒绝图像API有严格的内容安全策略。避免在提示词中出现真实人物肖像可要求“插画风格人物”、暴力、商标等元素。如果提示词被拒绝查看API返回的错误信息修改提示词后用workflow_state.json重置图片阶段状态然后重跑。图文不符如果生成的图片与文案主题偏差大问题通常出在image_prompts.md。回顾文案阶段看是否对图片的描述不够具体。可以考虑在审核阶段增加一个“图文相关性评分”的AI检查环节。4.3 审核与发布阶段安全与控制的最后防线审核阶段 (review) 是自动发布前的安全阀。项目内置的审核可能主要检查基础合规性。对于团队使用强烈建议强化此阶段。实操技巧植入自定义审核规则你可以修改审核模块的代码或配置加入自定义的审核逻辑。例如关键词过滤检查文案中是否出现竞品品牌名、违禁词。质量检查调用AI评估文案的吸引力、可读性或检查是否有事实错误如果调研阶段提供了数据源。格式检查确保标题长度、话题标签数量符合小红书平台的最佳实践如标题不超过20字标签3-5个为佳。 审核不通过的内容包其review_report.json中会标记approved: false并说明原因工作流会在此停止等待人工处理。发布阶段 (publisher) 的注意事项项目默认且推荐save_draft保存草稿操作。直接发布 (publish) 风险较高应仅在测试环境或对流程极度自信时使用。平台风控小红书对自动化发布有严格风控。即使是保存草稿频繁操作也可能触发验证。建议在发布器实现中增加随机延迟、模拟人类操作轨迹。发布器契约仔细阅读references/publisher_contract.md。你的发布器实现无论是用Selenium、Playwright还是RPA工具必须遵守这个契约接收标准化的输入标题、正文、图片路径、标签并返回标准化的结果成功/失败、草稿ID、错误信息。这保证了工作流核心与平台具体操作的解耦。状态回写发布器执行后无论成功失败都必须将结果写入publish_result.json。这是工作流能够准确记录状态、实现可续跑的基础。5. 集成到OpenClaw与生产环境部署建议5.1 作为OpenClaw插件运行对于OpenClaw用户这个项目本身就是一个标准的插件。你需要确保OpenClaw服务能够访问到这个工作流代码库并在OpenClaw的调度配置中引用它。关键配置点Scheduler配置在OpenClaw的调度任务中将执行命令指向scripts/xhs_workflow.py并传递正确的参数--profile、--topic等。事实源确保OpenClaw的调度器将pack目录作为工作目录并读取其中的workflow_state.json来决定下一步动作。这正是“可续跑”能力在分布式系统中的体现。错误处理在OpenClaw中配置任务失败的重试策略和告警。例如图片生成失败可以重试2次发布失败则立即通知人工。5.2 生产环境稳定性考量要将此工作流用于每日的内容生产需要考虑以下几点资源隔离为每个内容包的生产任务分配独立的工作目录如按时间或UUID命名避免文件冲突。项目默认使用带时间戳的目录这一点做得很好。队列与限流如果你需要批量处理大量选题不要用简单的循环串行执行。应该引入一个任务队列如Redis RQ或Celery并设置合理的并发数特别是对图像生成和发布这类可能受平台限流或API调用次数限制的操作。日志与监控工作流本身会生成agent_runs.json记录每个步骤的详细输入输出。在生产中你还需要将这些日志集中收集如发送到ELK或Loki并监控关键指标各阶段平均耗时、成功率、图片生成API调用次数/成本、发布失败率等。数据备份与归档生成的内容包tmp-packs是宝贵的数字资产。应定期将其归档到云存储如S3、OSS或版本库中。你可以编写一个简单的脚本将状态为draft_saved或published的pack压缩后上传备份并从本地临时目录中清理。5.3 扩展工作流更多可能性这个工作流的基础框架非常扎实你可以基于它进行扩展多图生成修改image阶段使其根据文案内容生成多张配图提示词并循环调用图片API将多张图片存入assets/目录并在manifest.json中记录。视频内容支持增加一个video阶段。输入可以是文案生成的视频脚本输出可以是调用视频生成AI如HeyGen、Sora API生成的短视频或者仅仅是视频素材的剪辑清单。多平台适配抽象出“平台适配层”。调研、文案、图片阶段是通用的在发布前由一个platform_adapt阶段负责将通用内容转换成符合小红书、抖音、知乎等不同平台格式的文案和发布参数。这样一个选题可以衍生出多个平台的内容包。A/B测试集成在审核阶段后不直接发布而是生成A/B两个版本的标题或封面图将内容包推送到A/B测试系统根据测试数据选择最优版本再发布。这个项目的价值不仅在于它提供了一个开箱即用的小红书自动化工具更在于它展示了一种构建可靠、可维护、可观测的AI内容生产流程的工程化思想。它把看似神奇的AI内容生成拆解成了一个个可管理、可调试的标准化步骤。无论你是直接使用它还是借鉴其设计理念来构建自己的自动化流程相信都能从中获得启发将内容生产的效率和质量提升到一个新的水平。