🤖 第三章 应用实战:公众号创作智能助手
📄 一句话概括

本章的流程是两条腿走路:上面一条腿在 GPT 平台里造一个【公众号写作助手】,下面一条腿在影刀里造四条 RPA 流程;两条腿不直接说话,中间用一张表当交接台——表上多了一列【正文 HTML】和一行【AI 声明】,这是本章与上一章在数据结构上的全部差别。

📝 本节和前面几节的关系

3.1 说清了【为什么做】和【红线在哪】,本节说清【怎么搭】。它是 2.2 那套【表当交接台 + 状态机】方法的第二次应用——方法不变,字段变了。本节定下的表结构,会被 3.4 的每一条 RPA 流程读写。

一、先看清两条腿

本章的自动化分成左右两半,各自在各自的软件里干活:

        ┌────────────────── GPT 平台(Agent 侧) ──────────────────┐
        │                                                          │
        │   公众号写作助手(3.3)                                   │
        │   ├─ 角色指令:公众号作者的人设与写作规则                  │
        │   ├─ 知识文件:过往文章、品牌调性、禁用词表                │
        │   └─ 多轮对话:先出提纲 → 再扩写 → 再改                 │
        │                                                          │
        └──────────────────────────┬───────────────────────────────┘
                                   │
                    ┌──────────────┴──────────────┐
                    │   一张表(交接台,本章核心)  │
                    │   字段 + 状态 + 备注        │
                    └──────────────┬──────────────┘
                                   │
        ┌──────────────────────────┴───────────────────────────────┐
        │                   影刀 RPA(执行侧)                      │
        │                                                          │
        │   3.4.1 提交创作信息  ── 把选题与要求送进去                │
        │   3.4.2 多轮对话取结果 ── 追问、取回、解析                │
        │   3.4.3 排版创作结果  ── Markdown 转内联样式 HTML        │
        │   3.4.4 公众号发布    ── 建草稿箱,人点发布              │
        │                                                          │
        └──────────────────────────────────────────────────────────┘

为什么两条腿不直接连:因为 RPA 不该关心 Agent 长什么样,Agent 也不该知道 RPA 怎么跑。中间隔一张表,两边都可以独立换——你把 GPT 换成扣子智能体,下面的四条流程一行都不用改。

📝 这就是 1.6.1 说的【RPA 与 Agent 交互】的落地形态

教材 1.6.1 讲了三种交互方式,本章用的是其中最稳的一种:文件/表格当交接台。它慢一点(有一次落盘的延迟),但可断点续跑、可人工插队、可事后追查——对内容生产这种【需要人反复介入】的场景,这三点比速度重要得多。

二、与第二章的分工对照

把本章与上一章并排放,差别一眼看得出来:

环节 第二章(小红书) 第三章(公众号)
Agent 在哪 扣子工作流 GPT 平台上的助手(3.3)
对话形态 一次问答 多轮对话(先提纲、后成文,3.4.2)
提交方式 填表单 提交创作信息(3.4.1)
取回方式 解析一次返回 解析多轮对话中的最后一轮(3.4.2)
排版 不需要(平台自己就是编辑器) 单独一道工序:Markdown 转内联样式 HTML(3.4.3)
出口 填完表单停在发布前 调接口进草稿箱(3.4.4)
图片 图像生成节点产图 → 下载 → 上传 封面图同样要先传到微信素材库
新增合规项 无 AI 生成内容声明(法规要求)

三处结构性差异,各自对应后面的一节:

  1. 多轮对话 → 3.4.2(长文一次写不好,必须分步);
  2. 排版工序 → 3.4.3(公众号不吃 Markdown);
  3. 接口出口 → 3.4.4(草稿箱 API,人点发布)。

三、交接台:这张表上有什么

本章的表比第二章多几列,多出来的每一列都有明确用途:

字段 谁写 谁读 约束 说明
id RPA 全部 唯一 一行=一篇文章
topic 选题 人 3.4.1 非空 这一篇文章写什么
keywords 关键词 人 3.4.1 2~5 个 希望出现的词
style 风格 人 3.4.1 枚举 例如:干货/故事/评论
words 目标字数 人 3.4.1 数字 公众号常见 800~2000
outline 提纲 Agent 人/3.4.2 结构在即可 多轮对话的第一轮产物
title 标题 Agent 3.4.4 ≤ 64 字 接口硬限制
digest 摘要 Agent 3.4.4 ≤ 120 字 接口硬限制
body_md 正文 Markdown Agent 3.4.3 —— 给人读的稿
body_html 正文 HTML RPA 3.4.4 内联样式 给公众号读的稿
cover_prompt 封面提示词 Agent 人/生图 30~120 字 生成封面用
cover_path 封面图 RPA/人 3.4.4 JPG 上传素材库后换 media_id
author 作者 人 3.4.4 可空 接口字段
ai_declare AI 声明 人确认 3.4.4 是/否 合规必填项
status 状态 RPA 全部 八态 见下节
note 备注 全部 人 可空 出问题时把话留在这里
⚠️ 两个最容易忽略的字段

digest(摘要):很多人以为摘要是可有可无的,但公众号摘要在推送卡片和分享卡片上都会显示,接口限制 120 字。不写摘要时平台会自动截取正文开头——效果通常很差。 ai_declare(AI 声明):这不是【可选的礼貌】,是 3.1 讲的法规红线在数据结构上的落点。表上没有这一列,流程里就没有这个动作。

四、状态机:八态

沿用第二章的做法,一行数据在流程中只可能处于八种状态之一:

状态 含义 谁能改 下一步
待提交 人已填好选题,等 RPA 取 人 3.4.1 提交
已提交 已把创作信息送进 Agent RPA 3.4.2 对话
对话中 正在多轮往复 RPA 3.4.2 取结果
初稿就绪 拿到 Markdown 稿 RPA 人审 → 3.4.3
已排版 拿到 HTML 稿 RPA 人审 → 3.4.4
待审核 等人确认内容与声明 人 人放行 → 3.4.4
已入草稿箱 草稿已建好 RPA 人在后台点发布
异常 任何一步失败 全部 人处理

两个关键设计:

  1. 【待审核】是一个独立的、必须由人推进的状态——它不是流程中的装饰,而是红线二(留人把关)在状态机上的落点。任何一行数据都不能从【已排版】直接跳到【已入草稿箱】;
  2. 【异常】不是一个终点——它的作用是让坏数据停下来、并带着原因停在表上等人。RPA 遇到异常时绝不跳过、绝不猜测,只做两件事:写备注、改状态。

五、完整链路:一次走完

把九个环节串起来,一次完整的运行长这样:

① 人填表(选题/关键词/风格/字数)         → 状态:待提交
② 3.4.1 RPA 提交创作信息                  → 状态:已提交
③ 3.4.2 RPA 多轮对话(提纲 → 扩写 → 定稿) → 状态:对话中
④ 3.4.2 RPA 取回并解析最后一轮            → 状态:初稿就绪
⑤ 人审初稿(改错、补事例、定调)           → 状态:初稿就绪
⑥ 3.4.3 RPA 排版:Markdown → 内联样式 HTML → 状态:已排版
⑦ 人审排版(并在后台预览)                 → 状态:待审核
⑧ 3.4.4 RPA 建草稿箱(含 AI 声明)         → 状态:已入草稿箱
⑨ 人登录公众号后台,核对后点【发布】       → 状态:已入草稿箱

注意 ⑤ 和 ⑦ 两处,都是【人】。第三章一共留了两个人工关卡,比第二章(也是两个)持平——但性质变了:第二章的两个关卡是【内容审核】和【发布确认】,本章的两个是【内容审核】和【排版审核】,最后一下发布在平台后台里点(因为接口没权限)。

六、三个设计决策,以及为什么

决策 选择 为什么
Agent 放哪 GPT 平台做助手(教材原方案) 教材这么写;但 2026 年该功能正在退役,3.3 给了替代路线
一次写还是多轮写 多轮(提纲 → 扩写 → 修改) 长文一次性写完质量不可控;分步可以把每一轮的产物都拿出来检查
排版在哪做 RPA 里用代码做 排版是纯确定性的规则转换,用代码做比用大模型做稳定一万倍(1.2.3 的【确定的外框 + 弹性的内芯】)
📝 第三个决策值得单独强调

很多人的第一反应是【让 AI 顺手把 HTML 也生成出来】。这是个陷阱:排版是规则,不是创意。让大模型做规则转换,你得到的是【每次都不一样、偶发奇形怪状】的 HTML;让代码做规则转换,你得到的是【跑一万次都一样】的 HTML。 需要创意的地方用大模型,需要确定的地方用代码。 这句话在本章出现了两次(另一次在 3.4.2 的解析环节)。

七、⚙️ 2026 现状:本章涉及的三处平台变化

  1. GPT 平台:自定义 GPT 正在退役,个人账号已冻结创建与发布。教材 3.3 的两个小节(创建/预览保存)按【学思维不学按钮】处理,并给出替代路线(详见 3.3.1、3.3.2);
  2. 公众号接口:draft/add(建草稿)个人订阅号可用;freepublish(发布)自 2025-07 起对个人主体与未认证账号已回收。本章的出口设计正好落在这个现状上(详见 3.4.4);
  3. 排版工具:Markdown 转公众号 HTML 的成熟工具在 2026 年已经很多(在线编辑器类、命令行类、开源类),本课选【用代码自己转】——理由不是【没有工具】,而是只有自己转才能做到【字段级可控+可被 RPA 调用】(详见 3.4.3)。

八、动手 Demo:把这张表和状态机落成一份可用的 CSV

准备:任意表格工具(Excel、WPS、腾讯文档都行)。

第一步——建表:把第三节那张字段表原样建成一列一列的表头(16 列,顺序照抄)。

第二步——填两行样本:

id topic keywords style words status
001 我家玄关收纳三件套 玄关收纳,小户型 干货 1000 待提交
002 秋季养生的三个误区 秋季养生,作息 科普 1200 待提交

第三步——走一遍状态:把第一行的 status 依次手工改成:已提交 → 对话中 → 初稿就绪 → 已排版 → 待审核 → 已入草稿箱。每改一次,问自己一句:这一步是谁在改?

看到什么算成功:

  1. 改到【已排版】时你停了一下——因为你知道必须先过人审才能进【待审核】。这个【停一下】就是状态机在起作用;
  2. 你能说清八态里哪两个是【人】在推进(初稿就绪 → 待审核这一段,和最后的点发布);
  3. 你能指出哪一列是合规要求(ai_declare)。

读结果:这张 CSV 就是本章后面四条 RPA 流程唯一的输入与输出。先把表结构定死,再去写 RPA——顺序反了,你会一边写流程一边改字段,最后两边都对不上。

30 秒实验

看下面这行状态,说说问题在哪:

id=003  topic=职场沟通  status=已入草稿箱  ai_declare=(空)  digest=(空)

答案:这一行跨越了【待审核】——它没有 ai_declare,说明没有人确认过 AI 声明,却已经到了草稿箱。同时 digest 为空,推送卡片上会显示自动截取的正文开头。

结论:状态机的价值不在于【记录进度】,而在于【拦截跳跃】。 一行没有经过人工确认的数据,不允许出现在草稿箱里——这个约束写在表结构上,比写在人的记忆里可靠。

常见误区

  1. 【让 Agent 直接把排版也做了,省一道工序】——错。 排版是规则不是创意,用大模型做规则转换,输出会不稳定。3.4.3 专门用代码来做这件事。
  2. 【多轮对话太麻烦,一次写完就行】——错。 公众号是长文,一次写完的质量不可控。拆成【提纲 → 扩写 → 修改】三轮,每一轮都能拿出来检查,出问题时也能定位到是哪一轮坏了。
  3. 【摘要随便填,反正正文里有】——错。 摘要在推送卡片和分享卡片上都会显示,接口限制 120 字;不填时平台自动截取正文开头,效果通常很差。它是一个独立的字段,值得单独生成。
  4. 【AI 声明可以放到最后统一处理】——错。 它必须是一个字段(ai_declare)、一个状态关卡(待审核)、一个具体动作(发布时勾选声明)。放到最后统一处理,等于没有处理。
  5. 【两条腿应该直接连起来,省掉中间的表】——错。 表是解耦器:RPA 不需要知道 Agent 长什么样,Agent 也不需要知道 RPA 怎么跑。把中间的 GPT 换成扣子,下面的四条流程一行都不用改。
自测三问(点开对答案) 1. **本章的流程为什么分成【Agent 侧】和【RPA 侧】两条腿,中间还要隔一张表?** 因为要让两侧**互相不知道对方的实现细节**——RPA 不关心 Agent 是 GPT 还是扣子,Agent 也不关心 RPA 怎么跑。中间隔一张表,**任一侧都能独立替换**;而且表带来了三个附带好处:**可断点续跑、可人工插队、可事后追查**。对内容生产这种需要人反复介入的场景,这三点比速度重要得多。 2. **`body_md` 和 `body_html` 为什么要分成两列,而不是一列?** 因为它们是**两个不同的读者**的对象:`body_md` 是**给人读的稿**(人审、人改都在 Markdown 上做,因为 Markdown 好改),`body_html` 是**给公众号读的稿**(必须是内联样式的 HTML,微信只认这个)。**分成两列,就保证了【人改的那一版】和【机器送出去的那一版】永远可以对照。** 3. **状态机里的【待审核】为什么必须由人来推进?** 因为它对应的是**两条红线**:一是平台与法规要求 AI 生成内容必须由发布者确认并主动声明,二是自动发布落在平台打击【AI 托管运营】的范围内。**把人放在这个位置,不是流程的妥协,而是流程的设计目标。**

相关笔记