乐于分享
好东西不私藏

把"综合三份文档"丢给AI一次成型?这才是它出错的根本原因

把"综合三份文档"丢给AI一次成型?这才是它出错的根本原因

周一早上,你把所有材料一股脑儿塞给AI:"帮我综合这三份文档,出一份10页的市场综述,晨会用。"

60秒后,AI还你一份万字长文,章节工整、术语专业。你扫读时发现:同一个"付费转化率"出现了三个不同数值,访谈引用对不上原文,"建议增加XX功能"这条毫无数据支撑——纯粹是AI的脑补。

于是你放弃AI,自己熬夜重写。

问题不在AI,在于你把一个多输入、需校验、有结构化输出的复合任务,压缩成了一次单步问答。

一、为什么"一次综合"注定翻车

大模型一次调用要同时完成"读三份文档 → 抽取事实 → 解决冲突 → 按结构成文"四件事。注意力被拉散之后,任何一个环节出错都没有机会回头,于是数字错位、引用失准、无依据的推断全都混进了最终稿。

这个结论不是直觉,是有研究背书的:

📌 Chain-of-Thought 论文(arXiv:2201.11903) 早就证明:让模型生成一系列中间推理步骤,能显著提升其在算术、常识、符号推理等复杂任务上的表现。论文里有个标志性数据——PaLM 540B 在 GSM8K 数学题上,从标准提示的 17.9% 直接飙到 56.9%

💡 注意:这种"分步"的能力在约 100B 参数以上的大模型上才会涌现,且论文并未宣称"准确率高出几倍"这种泛化结论——增益是具体到基准的。但它的核心启示是确定的:复杂任务塞进单次调用,模型会"丢球"

📌 Anthropic 在 2024 年 12 月发布的《Building Effective Agents》 把这种"分步"思想工程化了。文中第一种工作流模式就是 Prompt Chaining(提示链):把任务拆成一串顺序步骤,每一步的 LLM 调用处理上一步的输出,并且可以在任何中间步骤插入"程序化检查(programmatic checks / gate)",确保流程没有跑偏。

Anthropic 特别强调了一个原则:尽可能找最简单的方案,只有当简单方案不够时,才增加复杂度。Agentic 系统往往是用"延迟和成本"换取"更好的任务表现"。

📌 微软的提示工程文档 也从工程角度印证:复杂任务应该拆解成更小、可管理的部分,可以用独立的 prompt 处理更大场景的不同部分;并且建议开发者"Be clear and specific"——明确意图、指定输出格式、给出场景上下文。

三家顶级机构,一个共识:复杂任务不要一次性抛给模型

二、可检查流水线:把AI从"全能助手"降级为"流水线工人"

把上面三条原则落到"综合三份文档"这个场景,标准做法是切出带中间检查点的多步流水线。针对"多输入 + 需校验 + 结构化输出"这类任务,3 到 5 步是常见区间——少于 3 步跳过了校验,多于 5 步则每步太细,反而失去灵活度,且错误会在长链中累积。

下面是一个针对三文档综合场景的 5 步参考拆法(注意:5 步是该场景的适配性拆分,不是普适黄金法则):

步骤 1: 逐份抽取事实点    输出物: 事实清单 A / B / C    每条格式: 事实描述 | 来源页码 | 原文关键句    检查点: 硬数字是否都带了页码?步骤 2: 事实溯源校验    输出物: 可溯源事实清单(疑议项标 ⚠️ 待人工复核)    检查点: 每条事实能否在原文定位?跨文档矛盾是否被标出?    AI 不自动仲裁冲突,只负责暴露步骤 3: 主题归并去重    输出物: 主题事实矩阵    行=主题(用户需求/竞品策略/数据表现/风险信号)    列=文档 A/B/C,末列=是否冲突    检查点: 主题分类是否覆盖核心维度?步骤 4: 大纲生成    输出物: 章节大纲(每章含 3 个核心观点 + 事实引用标注)    检查点: 章节逻辑是否递进?观点是否有事实矩阵支撑?步骤 5: 逐章扩写    输出物: 最终报告    检查点: 每章是否严格基于大纲与事实矩阵?有无无依据的推断?

为什么这样拆就有效?

Anthropic 说得很直白:拆链的本质是用延迟换准确率(trade off latency for higher accuracy),让每一次 LLM 调用都成为一个更简单的任务。每一步只聚焦一个目标,注意力不被稀释,出错概率自然下降。

更关键的是中间产物可人工快速核查。步骤 2 的"可溯源事实清单"你可以在 3 分钟内扫完,步骤 3 的"主题矩阵"是一张表格、一眼能看全。相对于"等 AI 吐出 1 万字后再逐句核对出处",核查成本是指数级下降的。

微软在多阶段推理(Multi-stage Reasoning)的文档里也提到过一个完全一致的例子:分析一条日语用户评论的情感,如果让模型"一次性翻译+分析+情感分类",输出会不可靠;拆成"翻译 → 摘要 → 情感分析"三步链路后,准确性显著提升——因为"通过将问题划分为具有特定关注点的不同阶段,增强了系统的整体推理能力和可靠性"。

三、V1 → V2:提示词长什么样

V1(失败版)

你是我的报告助手。以下是三份文档,请综合它们,生成一份 10 页的市场综述,用于周一晨会。要求结构清晰、数据准确。{{文档1}}{{文档2}}{{文档3}}

V2(流水线版) —— 每步单独提示,这里展示前两步:

【步骤 1: 事实抽取】你是信息抽取助手。逐份阅读以下三份文档,对每份输出 10 条关键事实点。格式: 事实描述 | 来源页码 | 原文关键句若某文档无相关事实,返回"本文档无相关事实"【文档 A:{{访谈记录}}】【文档 B:{{竞品分析}}】【文档 C:{{数据周报}}】【步骤 2: 事实校验】你是质检员。检查步骤 1 的输出:- 每条事实是否能在原文定位?- 页码是否正确?- 同一事实在不同文档中是否矛盾?有疑义则标 ⚠️ 待人工复核,禁止自动修改。

微软的提示工程技术文档里有一个完全同构的最佳实践示例:要让 AI 核查一段文字,不要让它"一次性核查完",而是先让其抽取事实主张(factual claims),再生成可用于验证的搜索查询,然后基于搜索结果逐条核查。文档里明确指出:"breaking the task down from one to two steps isn't very dramatic, but when trying to do this for a larger piece of text with many factual claims, breaking the task down can make a significant difference."(把任务从一步拆成两步看似不惊人,但当文本更长、事实主张更多时,差异巨大)。

这就是 V2 提示词设计的理论原型。

四、跨场景:同一套逻辑,三个例子

📋 写周报

  • 原提示:"帮我把本周工作整理成周报" → 漏掉关键会议决策

  • 改进:① 列出本周 5 件事 → ② 每件事标"完成度/阻塞/后续" → ③ 按重要度排序生成周报

  • 中间产物"本周事件清单"可在日历和邮件里 30 秒核对完

📋 产品评测

  • 原提示:"对比 A/B/C 三款产品,写 3000 字评测" → 详略失衡、缺对比维度

  • 改进:① 列 5 个对比维度 → ② 每维度为每款产品填事实 → ③ 生成对照表 → ④ 基于对照表写正文

  • 中间产物"对照表"是文章骨架,扩写只是填肉

📋 SQL 报表

  • 原提示:"查询上周新增用户的留存率" → AI 假设表结构,SQL 在真实库报错

  • 改进:① 让 AI 输出"需要哪些表+字段+关联关系" → ② 人工补充 schema → ③ AI 再生成 SQL

  • 第一步输出强迫 AI 暴露"我对数据模型不了解",避免凭空假设

五、可复制模板

【任务】{{目标}}。最终产物: {{输出格式}}。受众: {{受众}}。【输入材料】材料 1: {{类型 + 来源}}材料 2: {{类型 + 来源}}材料 3: {{类型 + 来源}}【拆解要求】将任务拆成 3-5 个串行步骤,每步聚焦一个目标:步骤 1: {{子目标 1}} → 输出物: {{中间产物 1 格式}}步骤 2: {{子目标 2}} → 输出物: {{中间产物 2 格式}}...最终步: {{子目标 N}} → 输出物: {{最终产物格式}}【质量约束】- 每个中间产物必须可人工快速核查- 每步之间插入"事实核对"关卡- 硬数字必须给出"来源 + 原文片段"- 冲突项标 ⚠️ 待人工复核,AI 不自动仲裁- 最终产物的字数/页数/字段必须明确

微软提示工程文档里给过一句非常实用的建议:Azure Copilot 不能读心,必须明确意图。比如不要说"Check performance",而要说"Check the performance of Azure SQL Database in the last 24 hours";对于复杂任务,"break down your request into smaller, manageable parts"。这套模板就是把这句话落到极致。

六、自检清单

  • ☐ 提示词是否把任务拆成至少 3 个串行步骤?

  • ☐ 每个步骤是否有明确"输出物格式"(表格/清单/大纲)?

  • ☐ 数字事实处是否强制要求"来源 + 原文片段"?

  • ☐ 是否安排了"中间产物人工复核"环节?

  • ☐ 是否有失败兜底(某步失败时如何回滚)?

  • ☐ 最终产物的字数/页数/字段是否明确?

  • ☐ 是否避免了"综合/总结/整理"这种语义模糊的动词?

写在最后

Anthropic 在那篇工程博客里有一句话值得贴在显示器上:

"最成功的实现,用的都是简单、可组合的模式,而不是复杂的框架。"

任务拆解的本质,是承认一个事实:AI 在单步里既当读者、又当分析师、又当作者,必然会顾此失彼。把它拆成流水线,每一步只当一种角色,人才有机会在中间当裁判。

代价是 AI 生成时间变长——但节省下来的是你原本要花在核查和返工上的数小时。这是一笔非常划算的延迟换准确率交易,也正是 Anthropic 对 Prompt Chaining 的核心定调。

⚠️ 记住:5 步是"多输入 + 需校验 + 结构化输出"这类任务的推荐拆法,不是普适法则。简单任务 3 步够,极复杂任务可以到 5 步以上——但每多一步,错误累积的风险就高一分。Keep chains short, gate the steps where a mistake is expensive.(保持链路简短,在错误代价高昂的步骤上加 gate。)—— 这是工程社区从无数次失败中沉淀出的经验。

下一步,当你再要把"几份文档综合成一份报告"时,先别急着敲下"综合"两个字。花 2 分钟把任务拆成 3-5 步,你会发现:AI 不再是那个"60 秒给你一堆漂亮废话"的魔术师,而是一个每步都可核查、每步都可纠偏的流水线工人

这才是 AI 协作的正确打开方式。