三模型接力:ChatGPT 起草、Claude 审稿、GPT-Image 加配图
目录
上周二,一篇 1400 字的博客从空白文档到发布草稿,跑了 18 分钟。账单:0.41 美元。三个不同的 AI(artificial intelligence,人工智能)模型分头做完了这件事 —— 不是我为了炫技,而是因为每次让其中一个模型干完全部活儿,输出都会以可预测的方式变差。
这件事是一个内容生产流水线(pipeline):写一篇 B2B(business-to-business,企业对企业)营销文、收紧逻辑、生成两张内文配图。我最早是把全流程跑在 ChatGPT 里。然后全跑在 Claude 里。后来我不跟自己较劲了,把活儿拆开 —— 三个模型接力,这是留下来的方案。
这篇文章就是这套搭建:三个交接提示词、跨阶段传递的 JSON(JavaScript Object Notation,一种机器可解析的结构化数据格式)契约、真实的成本和耗时,以及一个曾经让我直接下架一篇已发布文章、后来才学会防御的失败模式。
为什么单模型会输
接力的合理性不是"AI 智能体很酷"。合理性在于:每个前沿模型都真正只在一件事上厉害,在另外两件事上平庸;让一个模型把三件事全干了,等于每一步都在交质量税。
ChatGPT 起草快、且只要系统提示词(system prompt)紧、文风就能稳。它是我用过最快的初稿生成器。但让它去"审"一份草稿,输出会变得谄媚("这个观点很好!要不要再展开一下……")。它不会做减法,默认动作是"再多写一点"。对审稿人来说,这是错位的本能。
Claude 正好相反。把草稿丢给它、让它审,每一处模糊的论断、每句多余的句子、每行"在当今快节奏的世界里"这种废话,都会被它拎出来。它是真的擅长做减法。但让它写 1200 字的初稿,你会拿到一篇读起来像 2018 年 SaaS(Software as a Service,软件即服务)博客的文章 —— 克制、留白多、没什么味道。它下笔之前想得太多。
GPT-Image 是第三类。两个文本模型在"快速生成风格一致的内文配图"这件事上都不行。ChatGPT 能做,但风格每次调用都漂移。Claude 根本做不了 —— 它没有图像生成。GPT-Image 是这三个里唯一把图像生成当主业、不是顺手做的。
所以接力不是为了编排而编排。它就是三个专家各自干自己最擅长的事,中间靠一个 JSON 信封把活儿递过去。
第一阶段 —— ChatGPT 起草
第一个提示词最长、限制最细。在这三个模型里,只有 ChatGPT 能凭一个简短的需求(brief)就写出能用的初稿,所以这阶段的提示词把后面两个模型不会干的事先做掉。
角色:拥有 15 年实操经验的 B2B 营销作者。
主题:{TOPIC}
读者:{AUDIENCE}
长度:约 1200 字。
约束:
- 禁止"在当今世界"式开头。要用一个具体结果、一个数字、或一个场景起笔。
- 段落平均不超过 2 句。
- 列表项不超过 5 条,优先用散文。
- 双语缩写(LLM、API、JSON、GPT)直接用;其余术语首次出现时解释。
- 不要写"总结全文"的结尾段。最强的那一点就是结尾。
输出:仅返回 JSON 对象,不要在它外面加任何文字。
{
"title": "...",
"slug": "kebab-case-here",
"h2_outline": ["...", "...", "..."],
"body_markdown": "...",
"suggested_visuals": [
{"position": "after_h2_2", "concept": "具体场景,文字不要压图"},
{"position": "after_h2_4", "concept": "..."}
]
}那个最末尾的 JSON 块就是契约。模型被明确要求"只返回 JSON,不包任何散文",编排器(orchestrator)拿到后不用再做清理就能直接解析。suggested_visuals 数组是第三阶段能跑起来的前提 —— 没有它,GPT-Image 就只能靠猜才知道图该往哪儿放。
这一阶段跑一个 1200 字的初稿大概 4 分钟,费用约 0.12 美元(GPT-5.5,3500 输入 / 2800 输出 token,单价 $5 / $30 每百万 token)。
第二阶段 —— Claude 审稿
第二个提示词故意写得很短。Claude 的活儿是"砍",不是"写"。提示词必须防住模型滑进"好心的编辑"模式、把整段整段重写。
你正在审阅一份草稿。下一阶段会加配图。会有一个人来发布。
你唯一的工作:收紧逻辑、砍掉废话。
你不能:重写段落、扩写论点、加新观点、改变立意角度、生成配图、或另起一个标题。
对每一处问题,按以下格式返回:
{"location": "h2_2_para_3", "issue": "论断模糊,没有数字", "fix": "删掉或换成具体数字"}
然后把改完的正文放在:
{"final_markdown": "...", "issues_found": N, "cuts_made_chars": N}"你不能"那一段是承重的部分。没有它,Claude 默认会按"它觉得最好的方向"去改进文章,通常表现为重写开头、往中间塞一段。这是编辑行为,不是审稿行为。否定列表把它钉死在审稿行为上。
这一阶段大约 6 分钟,费用约 0.08 美元(Claude Opus 4.7,含草稿在内 5500 输入 / 1200 输出 token,单价 $5 / $25 每百万 token)。
第三阶段 —— GPT-Image 加配图
图像阶段最简单。需求来自第一阶段输出的 suggested_visuals 数组,position 字段保留下来,编排器就知道每张图该插在最终正文的哪里。
风格指南:{style_description}。同篇文章所有图保持一致。
按 quality "medium" 生成 {N} 张 16:9 内文图。
概念:
1.(after_h2_2){concept_1}
2.(after_h2_4){concept_2}
输出:图片 URL 或本地路径。颜色、线宽、字体要符合风格指南。GPT-Image 2 的图像输出 token 单价是 30 美元每百万,一张中等质量 1024×1024 的图约 0.07 美元。两张内文图 ≈ 0.14 美元。整阶段费用 ≈ 0.21 美元(含提示词文本 token 和图像输出 token)。
整条接力跑下来:每篇 ≈ 0.41 美元,含人工终审在内 ≈ 18 分钟。
JSON 契约
让接力真正跑得通的是这个 JSON 信封。它小、它无聊,这正是重点。
json{
"stage": "draft",
"post_id": "uuid-here",
"title": "...",
"slug": "...",
"h2_outline": ["...", "..."],
"body_markdown": "...",
"suggested_visuals": [
{"position": "after_h2_2", "concept": "..."}
],
"next_stage": "review"
}两条规则让它不崩:(1)每个阶段只追加自己的字段,绝不覆盖 —— 第二阶段输出的 body_markdown 是一个 新 字段(body_markdown_v2),不是替换。(2)编排器在把信封转交下一阶段前会校验 schema。缺字段 = 跑挂,且要响亮地挂、不要静默挂。
"只追加、绝不覆盖"这条规则,是我踩过坑才学到的。这套流水线最早的版本让第二阶段直接覆盖第一阶段的 body_markdown。第三阶段没法把原版和审后版做对比,我也无从审计 Claude 到底砍了哪些字。现在第二阶段返回 body_markdown_v2 和 cuts_made_chars,审计链就完整了。
18 分钟 vs 35 分钟 —— 耗时对比
同一篇文章,三件事都让 ChatGPT 一个人干(单模型)vs 三模型接力:
| 流水线 | 耗时 | 成本 | 问题 |
|---|---|---|---|
| 单模型(ChatGPT 干完三件事) | ≈ 35 分钟 | ≈ $0.28 | 审稿模式谄媚;图与图之间风格漂移 |
| 三模型接力 | ≈ 18 分钟 | ≈ $0.41 | 操作步骤多;无其他质量问题 |
单模型单次调用更便宜,但更慢 —— 因为每一步都得换一次 ChatGPT 会话、换一套系统提示词,审稿和出图的提示词还得塞进同一个会话里。接力更快,是因为每一步都精准地打给最合适的那个模型。
13 分钟的提速是真的,但不是重点。重点是:审稿人砍掉的东西真的进了终稿,图片看起来确实属于同一篇文章,我不用再跟一个模型较劲、逼它在一个会话里同时演三个专家。
失败模式 —— 模型身份混淆
这一节是我真金白银换来的 —— 直接下架了一篇已发布文章。坑出在系统提示词上。
第二阶段最早的提示词长这样:
你是 3 阶段内容生产团队的一员。第一阶段写草稿(你正在审)。第三阶段会加配图(这不归你管)。
你的工作是审这份草稿……看起来挺合理,其实错了。Claude 收到这段提示词后,理解了"整个团队",然后在大概 1/8 的审稿里开始替第三阶段操心 —— 它会写"提示一下图像阶段:这段如果配一张……的图会很好",或者顺手在正文里塞一个视觉概念。审稿本身还是紧的。但输出已经不是一份干净的审稿了,而是审稿 + 半截第三阶段。
下游的代价不是理论上的。某次这样的"贴心"审稿里,Claude 提了一个视觉概念,最后跟 GPT-Image 实际生成的图对不上。文章发出去后,我正文里那张图的配文描述的是另一张图。20 分钟后我才察觉,处理方式是:删文、去掉那段重发、然后改提示词。
修法是:只告诉每个模型"自己是谁",别让它看到"团队是什么"。第二阶段提示词的开头改成了"你是审稿人。你审草稿。你不生成配图。你不写内容。你看不到第三阶段。"第三阶段改成"你是图像生成器。你生成图。你不审文字。你看不到第一阶段和第二阶段。"第一阶段本来已经够聚焦了,我也再紧了一档:"你是作者。你写草稿。你不审稿。你不生成图。"
原则:每个模型只被告知它自己是什么,而不是团队是什么。一旦我不再从"接力"内部去描述它,转而从"每个模型自己"的视角去描述它,跨阶段的污染就停了。之后的 47 篇,再没出过。
什么情况下不该用这个
如果你的文章不到 600 字、或者完全不需要配图,接力就是负担 —— 一次 ChatGPT 调用、10 分钟以内、$0.10 就能搞定。接力只有在 1000 字以上、且至少有一张内文图的时候才划算。
还有一种情况:如果你没法把 JSON 契约定义清楚,那就别搭这个。契约是承重的那块 —— 没有它,你就是三个模型各说各话。
三模型接力不是工作流税。它是一种分工 —— 替你省掉的,是"和一个模型较劲、逼它演三个专家"的慢成本。最难的部分不是编排三个 API。是写每一个提示词时,假设这个模型对另外两个一无所知。