微信公众号工作流
一站式完成公众号内容创作:预检 → 选题(三模式扫描)→ 大纲 → 调研 → 写稿 → 打磨 → 配图 → 排版 → 发布 → 复盘。
核心约束
一个对话只做一篇文章。 第一次创建草稿时记住 media_id,后续所有操作(修改、发布)都复用它。如果用户想写新文章,提示"请开一个新对话"。
打磨阶段去 AI 味评估 MUST 由独立子 agent 执行。 写稿 agent 和评估 agent 不能是同一个——避免"自己改自己评"的偏差。进入步骤 5 打磨时,必须派发子 agent 做 4 轮扫描和量化评分。
运行模式
| 模式 | 触发方式 | 行为 |
|---|---|---|
| 半自动(默认) | 正常对话 | 关键节点停下来等用户确认 |
| 全自动 | 用户说"全自动"、"不用问我"、"直接做完"、"帮我写完直接发" | 全程不问,自己决策 |
🔴 半自动卡点: 🔴 选题确认 → 🔴 大纲确认 → 🔴 初稿审阅 → 🔴 配图确认 → 🔴 体检报告 → 🔴 标题选择 → 🔴 发布确认
全自动策略: 优先选信息差最大 + 受众匹配度最高的选题、按大纲直接写、根据体检报告自动优化、优先选爆款潜力最高的标题(口语法 > 好奇法 > 痛点法 > 数字法 > 对比法 > 权威法)、标题与内容对齐、打磨完成后跳过预览。草稿在排版阶段创建,打磨/配图可能修改 HTML,发布前用 --media-id 更新草稿确保内容是最新的。注意:全自动只能创建草稿,发布仍需用户去公众号后台手动操作(个人订阅号无 API 发布权限)。
全自动失败处理: 某个步骤失败时不中断全流程——跳过失败步骤继续,最后汇总报告哪些步骤成功、哪些失败。常见情况:图片生成失败 → 跳过配图继续排版;信源访问失败 → 用其他信源的结果。
步骤状态标记: 每完成一个步骤,MUST 输出状态标记,格式为 ✅ 步骤 N:步骤名 — 一句话说明结果。示例:
✅ 步骤 0:预检 — 配置版本已确认
✅ 步骤 1:选题 — 推荐 3 个选题,已确认「AI 写作工具对比」
✅ 步骤 2:大纲 — 4 章结构,已确认
✅ 步骤 3:调研 — 按大纲每个章节搜集 1-2 条素材,共 N 条
✅ 步骤 4:写初稿 — 2100 字,已审阅
这让用户随时知道进度到哪了,也防止 AI 跳步骤。
半自动失败处理
每个步骤都可能遇到异常。遇到问题时按以下规则处理,不要中断流程。
| 阶段 | 触发条件 | 一线修复 | 仍失败兜底 |
|---|---|---|---|
| 选题 | 三种信源全部不可达 | 更换连通方式(直接→代理→搜索轮换) | 告知用户"信源不可达,以下选题基于已有知识生成,请人工补充" |
| 选题 | 用户对 3 个选题都不满意 | 重新扫描一轮,换角度再推荐 | 问用户有没有想写的方向,按方向直接出大纲 |
| 调研 | 搜索不到所需素材 | 换关键词、换搜索源、扩大时间范围 | 告知用户"某章节素材不足,建议补充",用已有知识写初稿 |
| 写稿 | 用户审阅后要求大改 | 按反馈逐条修改,每改完一条标记状态 | 如果用户说"重写",回到大纲阶段重新确认结构 |
| 配图 | Agnes 和 SenseNova 都生成失败 | 检查 API Key 配置、网络连接 | 跳过配图,告知用户"图片生成失败,建议手动添加" |
| 排版 | 模板文件找不到 | 检查 templates/ 目录是否存在 | 回退到 minimal-white 模板(文件应始终存在) |
| 排版 | 生成 HTML 后发现内容异常 | 检查 Markdown 源文件是否有格式问题 | 告知用户 HTML 异常,请用户手动调整 |
| 发布 | wx-auth.sh 返回 token 错误 |
检查 config/wxmp.json 中 AppID 和 Secret 是否正确 | 引导用户去公众号后台手动创建草稿 |
| 发布 | wx-draft.sh 返回 API 错误 |
检查网络、token 是否过期(自动刷新) | 告知用户 API 错误,提供草稿 HTML 文件路径让用户手动粘贴 |
| 复盘 | 数据查询返回空 | 检查文章是否已发布超过 1 天(数据有延迟) | 告知用户数据暂不可用,建议明天再查 |
意图路由
⚠️ MUST:所有工作流路由先执行步骤 0 预检,再进入对应流程。 配置助手路由("帮我配置"/"检查配置")无需预检,直接进入配置。
| 用户说的 | 走哪条路 |
|---|---|
| "帮我写篇公众号" / "最近没什么灵感" | 完整流程:三模式选题 → 大纲 → 调研 → ... → 发布 |
| "帮我写篇关于 X 的文章" | 跳过选题,从大纲开始 |
| "帮我把这个写成公众号"(附带素材) | 跳过选题+大纲+调研,从写稿开始 |
| "帮我发布这篇文章"(已有 HTML) | 直接进入发布阶段 |
| "帮我查一下公众号数据" / "帮我看看那篇文章的数据" / "复盘" | 调用数据复盘流程(拉文章列表 → 选文章 → 查数据 → 分析) |
| "帮我优化这篇文章"(已有草稿) | 进入打磨循环 |
| "帮我想几个标题" / "标题太普通了" | 调用爆款标题生成器 |
| "帮我写个摘要" | 调用摘要生成器 |
| "帮我看看文章怎么样" / "有没有改进空间" | 调用文章体检报告 |
| "帮我加几个标签" | 调用话题标签推荐 |
| "帮我配置" / "怎么设置" / "配置助手" / "检查配置" | 运行配置助手(见 references/wxmp-setup.md) |
如果不确定用户意图,直接问。
不要做什么(反例清单)
以下行为在公众号工作流中常犯,必须避免:
| # | 不要做的事 | 为什么 | 应该怎么做 |
|---|---|---|---|
| 1 | 一个对话写两篇文章 | media_id 只能对应一篇草稿,后续操作会覆盖 | 提示用户"请开一个新对话" |
| 2 | 用外部 CSS/JS 或 <style> 标签 |
微信客户端不支持,会丢失样式 | 所有样式必须内联 inline |
| 3 | 自己编标题 | 标题质量决定打开率,AI 编的标题缺乏数据支撑 | 调用爆款标题生成器,产出 12 个候选让用户选 |
| 4 | 半自动模式替用户选模板 | 用户对视觉风格有偏好,代选会降低满意度 | MUST 列出 5 个模板让用户选择 |
| 5 | 图片含文字/真人/图表 | 微信审核可能不通过,且 AI 生成文字有乱码风险 | prompt 末尾加 no real people, no human faces, no text, no labels, no chart, no diagram |
| 6 | 跳过打磨步骤 | 打磨是去 AI 味+体检+标题的关键环节,跳过会降低文章质量 | 写完初稿后 MUST 走完去 AI 味→体检→标题生成三步 |
| 7 | 编造数据或引用 | 读者会验证,发现虚假内容损害公信力 | 标注来源,无法验证的写明"据网络信息" |
| 8 | 跳过半自动卡点直接继续 | 用户可能没仔细看,跳过确认会减少用户掌控感 | 每个卡点必须等待用户明确回应 |
| 9 | 用半角标点或英文空格 | 中文排版中半角标点影响阅读体验 | 遵循 references/chinese-copywriting-guidelines.md 的全角规范 |
| 10 | 直接用外部图片 URL | 微信会拦截非 CDN 图片,导致文章显示不全 | 先上传到微信素材系统,用 CDN 地址 |
| 11 | 打磨阶段自己改自己评 | AI 倾向于给自己的文章打高分,"自评自改"无法发现真实 AI 味 | 4 轮扫描和量化评分 MUST 派发独立子 agent 执行,不能和写稿 agent 是同一个 |
完整流程
0. 预检:配置版本
输入: config/wxmp.json | 输出: 配置版本状态
MUST 在任何工作流步骤之前执行,不可跳过。 只检查 config_schema_version 字段。当前版本见 references/wxmp-setup.md 的「配置版本历史」。
- 版本匹配 → 继续,输出
✅ 步骤 0:预检 — 配置版本已确认 - 字段不存在或低于当前版本 → MUST 等用户选择,不可自动跳过:
- 提示:「检测到配置需要更新,输入"帮我配置"更新,或输入"跳过"继续。」
- 用户选更新 → 引导到配置助手(
references/wxmp-setup.md),完成后输出✅ 步骤 0:预检 — 已更新配置 - 用户选跳过 → 输出
✅ 步骤 0:预检 — 用户选择跳过版本更新,继续工作流,不再重复提示
版本变更详情见
references/wxmp-setup.md的「配置版本历史」
1. 选题
输入: 时间范围(当日/本周/本月)| 输出: 3-5 个选题候选(含来源路线和推荐理由)
三种发现模式综合扫描,每种都执行,综合推荐 3-5 个选题:
- 热点速报(默认):当日新闻 + 热搜验证,找有流量基础的话题
- 深度选题:原始信源(GitHub Trending、Hacker News、Product Hunt、TradingView 等)提前发现线索,找信息差
- 预判选题:周期性事件(大会、财报、新品发布)提前准备内容
三种模式结果汇总后去重排序,每个选题标注来源路线和推荐理由。
访问外部信源时使用连通性缓存(config/connectivity.json),自动探测并记录每个信源的最佳访问方式(直接/代理/搜索),无需预设哪些站被墙。
半自动: 展示选题清单,让用户选择 全自动: 自动选信息差最大 + 受众匹配度最高的选题
详细流程见
references/wxmp-inspiration.md
2. 大纲
输入: 已确认的选题 | 输出: 结构化大纲(章节标题 + 每章要点)
根据选题生成结构化大纲,确定文章要讲什么、分几部分。大纲确认后再调研和写稿,避免返工。
半自动: 展示大纲等用户确认 全自动: 生成大纲后直接进入调研
大纲格式见
references/wxmp-outline.md
3. 调研
输入: 大纲 + 各章节要点 | 输出: 按章节组织的素材包(Markdown 列表)
拿着大纲,按每个章节搜集写作素材。不要凭空编造,用真实数据和案例支撑文章。
素材来源与搜索方法:
| 类型 | 说明 | 搜索方式 |
|---|---|---|
| 竞品文章 | 同类公众号写过的类似选题 | WebSearch 搜索「{关键词} 公众号」 |
| 行业数据 | 支撑论点的数据和统计 | WebSearch 搜索「{行业} 报告 2026」 |
| 权威引用 | 专家观点、官方说法 | WebSearch 搜索「{人物} 说过 {观点}」 |
| 用户案例 | 真实的故事和经历 | 用户提供,或从公开渠道搜集 |
| 反面案例 | 失败案例、常见误区 | WebSearch 搜索「{主题} 踩坑」 |
调研流程: 1. 明确每个章节需要什么论点支撑 → 2. 搜索竞品文章找角度 → 3. 搜集数据和引用 → 4. 按大纲组织素材包
半自动输出格式(Markdown 列表):
### 章节 1:XXX
- 素材 1:[标题] — 来源链接 — 核心数据/观点
- 素材 2:[标题] — 来源链接 — 核心数据/观点
### 章节 2:XXX
- 素材 1:[标题] — 来源链接 — 核心数据/观点
展示后问用户是否补充。
全自动: 直接整理好素材包供写稿使用
详细流程见
references/wxmp-research.md
4. 写初稿
输入: 大纲 + 素材包 | 输出: 1500-3000 字 Markdown 全文
按大纲撰写 Markdown 全文。口语化、适合手机阅读、1500-3000 字。遵循中文文案排版指北(references/chinese-copywriting-guidelines.md)的盘古之白、全角标点规范,以及排版设计规范(references/wxmp-typography.md)的字号、间距、视觉节奏、开头策略。英文术语按 references/wxmp-writing.md 的英文处理规则判断保留/翻译/音译。涉及数据/事件/他人观点时标注来源,外链用上标脚注引用、文末统一列出(微信不支持正文内可点击外链),截图比链接更好。
写稿时加入生成时约束: 在写稿 prompt 末尾追加以下约束,从源头减少 AI 味,比事后修复有效得多:
- 每一段必须有长短句交替——至少一个短句(<10字)和一个长句(>25字)
- 禁止使用「不是...而是...」句式
- 禁止使用「从...到...」的跳跃式范围
- 禁止使用「值得注意的是/不容忽视的是/重要的是要记住」
- 「不确定」的表达必须真诚——不能先示弱再立刻给出完美结论。如果用了"我没想明白",后面就不能接一个工整的总结
- 允许废句存在——不是每句话都要推进论点
- 段落长度不规则,不要用标题来划分论点——禁止使用"第一层/第二层/第三层"或"第一/第二/第三"的分层结构
- 不要刻意使用情绪词——平淡自然的陈述比强行煽情更像人说话
- 数据点到为止,不要每个观点都配数据——留一些没有数据支撑的段落
半自动: 写完让用户审阅 全自动: 写完直接进入打磨
详细写作要求见
references/wxmp-writing.md
5. 打磨
输入: 初稿 Markdown | 输出: 去 AI 味后的终稿 + 12 个候选标题 + 3 个摘要版本
⚠️ 关键限制: 主 Agent 不得自行执行「4 轮扫描 + 量化评分」的独立评估。 必须调用子 Agent(task tool, subagent_type: general)执行。这是硬性要求,不是建议。
写完初稿后,先去 AI 味,再跑体检报告,针对性优化,最后生成标题和摘要。每一步都是必经步骤,MUST NOT 跳过。
去 AI 味: 优先使用 Humanizer(去 AI 痕迹)+ StopSlop(质量打磨),否则用内置 4 轮扫描 + 量化评分 + 迭代闭环:
- 查特征词 + 句型指纹:替换 AI 高频词(赋能/深耕/打造)、删除套话(值得注意的是/在当今社会)、检测 6 种 AI 句式模式(否定平行结构、虚假范围、三段式排比、模糊归因、僵化结尾、说教式开头)
- 查结构 + 句子节奏:打破刻板结构、排比堆砌、段落雷同,检测句子长度标准差(<5 需修复),检测是否使用"第一/第二/第三"分层结构
- 查风格:允许平淡——用具体细节和观察代替情绪词,不要强行煽情。检查数据是否过于密集(每个观点都配数据需删减)
- 加人味:注意人味不是情绪堆砌——用具体细节和自然节奏制造人味,比用"太牛了""太离谱了"更高级
整体方向: 像一个人平淡地说话,不要刻意煽情,不要用力过猛。
详细打磨流程见
references/wxmp-polish.md
5a. 独立评估(子 Agent 执行,主 Agent 不得代劳)
打磨完成后,主 Agent 必须将文章全文传给子 Agent 执行独立评估:
量化评分(4 轮扫描后执行): 按特征词密度(25%)、句子长度方差(20%)、段落长度方差(10%)、具体性密度(15%)、口语化表达(10%)、数据密度(10%)、结构工整度(10%)加权评分,1-3 分自然通过,4+ 分进入迭代修复循环,直到评分 ≤ 2 分或连续 2 轮边际收益 < 0.5 分。
- 调用子 agent
- 子 Agent 执行:第 1 轮特征词扫描 → 第 2 轮结构节奏 → 第 3 轮风格 → 第 4 轮人味 → 量化评分
- 子 Agent 输出评分报告(1-10 分)
- 评分 ≤ 2 分 → 通过,进入下一步
- 评分 > 2 分 → 主 Agent 修复后重新提交子 Agent 评估
🔴 独立评估卡点: 未完成此步骤不得进入配图阶段(步骤 6)。
体检维度: 开头吸引力、段落可读性、结构清晰度、金句密度、结尾引导力
生成标题和摘要: MUST 调用 references/wxmp-tools.md 的爆款标题生成器和摘要生成器。NEVER 自己编标题——必须用生成器产出 12 个候选标题 + 3 个摘要版本,交给用户选择。这是半自动模式的强制卡点。
半自动: 展示体检报告问用户要不要改 → 展示标题/摘要候选让用户选 全自动: 根据报告自动优化 → 按策略自动选标题(口语法 > 好奇法 > 痛点法)
体检报告用法见
references/wxmp-tools.md
6. 配图
输入: 文章内容 + 情感基调 | 输出: 上传到微信的图片 CDN 地址
在合适的位置添加图片,增强文章表现力。
风格生成: 根据文章内容和情感基调决定风格。概念型配图(开头、结尾、隐喻、案例)走 references/wxmp-style-generator.md 的流程。证据截图、数据图表、步骤图直接写 prompt。
适合加图的位置: 开头配图、数据图表、步骤截图、结尾引导图
图片来源: 用户自己提供 / AI 生成(Agnes 或 SenseNova)
底线: 图片中不能有文字、不能有真人、不能有图表/流程图。AI 生成时 prompt 末尾加 no real people, no human faces, no text, no labels, no chart, no diagram
AI 生成: prompt 格式 = 视觉描述 + 场景 + 底线。优先 Agnes,失败切 SenseNova:
bash scripts/wx-generate-image.sh \
--prompt "Warm orange and golden yellow tones, soft light from above. A ladder extends from bottom center up into soft clouds. no real people, no human faces, no text, no labels, no chart, no diagram" \
--size 1024x768
bash scripts/wx-generate-image-sensenova.sh \
--prompt "Warm orange and golden yellow tones, soft light from above. A ladder extends from bottom center up into soft clouds. no real people, no human faces, no text, no labels, no chart, no diagram" \
--size 2720x1536
上传:
bash scripts/wx-upload-image.sh /path/to/image.jpg # 正文配图
bash scripts/wx-upload-image.sh /path/to/cover.jpg thumb # 封面图
半自动: 风格展示给用户确认 → 生成配图 全自动: 直接生成
详细规则见
references/wxmp-images.md
7. 排版
输入: Markdown 终稿 + 用户选择的模板 | 输出: output/xxx.html(公众号兼容 HTML)
将 Markdown 文章转为公众号兼容的 HTML 格式,保存到 output/。
5 个精美模板可选:
| 模板 | 文件 | 风格 |
|---|---|---|
| 简约白 | minimal-white.html |
大量留白、干净利落 |
| 杂志风 | magazine.html |
优雅有层次、衬线字体 |
| 科技风 | dark-mode.html |
代码字体、渐变线条 |
| 卡片式 | card-style.html |
模块化分隔、易扫描 |
| 渐变色 | gradient.html |
渐变线条装饰、年轻活力 |
全自动: AI 根据文章类型自动选择模板(选择策略见 templates/README.md)
半自动: MUST 列出 5 个模板让用户选择。NEVER 替用户选模板——即使你觉得某个模板明显更适合,也必须让用户确认。
公众号 HTML 的关键约束:只能用内联 style,不能用外部 CSS/JS,图片必须是微信 CDN 地址。
模板详情见
templates/README.md,转换方法见references/wxmp-html.md
8. 发布
输入: HTML 文件 + 封面图 CDN 地址 | 输出: 草稿箱中的草稿(media_id)
⚠️ 个人订阅号通常没有个人认证,预览和发布 API 不可用。但创建草稿和查询数据不需要认证。
读取 config/wxmp.json 的 verified 字段确定走哪条路。如果字段不存在,按 false 处理。
默认路径(verified: false):用 API 创建草稿,引导手动发布
# 1. 获取 token(自动缓存 2 小时)
bash scripts/wx-auth.sh
# 2. 上传封面图(注意 thumb 类型)
bash scripts/wx-upload-image.sh /path/to/cover.jpg thumb
# 3. 创建草稿(记住返回的 media_id)
bash scripts/wx-draft.sh --title "标题" --content output/xxx.html --thumb MEDIA_ID \
--author "作者" --digest "摘要" --comment 1
# 4. 如果后续修改了内容,更新草稿(复用 media_id)
bash scripts/wx-draft.sh --media-id DRAFT_MEDIA_ID --title "新标题" \
--content output/xxx.html --thumb MEDIA_ID
草稿创建成功后,引导用户去公众号后台完成剩下的操作:
- 内容管理 → 草稿箱 → 找到草稿
- 在手机上预览效果
- 确认无误后点击发布
已认证账号(verified: true):可用 API 预览和发布
# 预览(发到用户微信号)
bash scripts/wx-preview.sh --media-id DRAFT_MEDIA_ID --wx-name 微信号
# 发布(异步操作,脚本自动轮询状态)
bash scripts/wx-publish.sh --media-id DRAFT_MEDIA_ID
查数据(无需认证):
bash scripts/wx-stats.sh --recent 7 # 最近 7 天每日汇总
bash scripts/wx-articles.sh --count 20 # 最近 20 篇,用 --offset 翻页
bash scripts/wx-article-stats.sh --recent 7 # 最近 7 天单篇详情
发布前准备清单:
- 独立评估已执行(评分 ≤ 4/10)
半自动: 创建草稿 → 引导用户去后台预览 → 用户确认后(手动)发布 全自动: 自动创建草稿,告知用户"草稿已就绪,去公众号后台手动发布"
详细流程见
references/wxmp-publishing.md
9. 复盘
输入: 无(按需触发)| 输出: 文章数据复盘报告
用户回来说"帮我查数据"时启动。先读 config/wxmp.json 的 verified 字段。
verified: false(无认证): 告知用户"未认证账号无法通过 API 查询数据,去公众号后台的数据统计页面查看。"verified: true(已认证): 正常执行复盘流程:
- 跑
wx-articles.sh拉已发布文章列表 - 用户选择要复盘的文章
- 检查发布时间是否已过 1 天
- 跑
wx-article-stats.sh查数据 - 输出 HTML 复盘报告
详细流程见
references/wxmp-publishing.md的复盘章节
增强工具
随时可调用,不绑定特定阶段:
| 工具 | 干什么 | 什么时候用 |
|---|---|---|
| 爆款标题生成器 | 6 种策略各生成 2 个标题(共 12 个),按推荐度排序 | 写完文章取标题时 |
| 摘要生成器 | 3 个版本的 120 字摘要(悬念/价值/故事) | 需要公众号列表摘要时 |
| 文章体检报告 | 5 维度打分 + 优化建议 | 打磨阶段必用,也可随时调用 |
| 话题标签推荐 | 提取 3-5 个关键词标签 | 发布前加标签时 |
详细用法见
references/wxmp-tools.md
配置说明
首次使用需要配置。配置文件 config/wxmp.json 支持两个位置(当前目录优先):
详细流程见
references/wxmp-setup.md
- 当前项目目录:
{项目}/config/wxmp.json - Skill 目录:skill 安装位置下的
config/wxmp.json
cp config/wxmp.example.json config/wxmp.json
# 然后填入真实的 AppID 和 Secret
获取方式:微信公众平台 → 我的业务与服务 → 公众号 → 开发密钥
配置文件包含敏感信息,已在 .gitignore 中排除。
用户说"帮我配置"或"配置助手"时,先检查 config/wxmp.json 中哪些已配置、哪些缺失,只引导用户配置缺失的部分。可选功能(Humanizer、StopSlop、Agnes AI、Reddit)逐个询问是否需要,用户说不要就跳过。