结构用于阅读,散文用于写作:多智能体文档撰写中的非对称条件化
《Structure for Reading, Prose for Writing: Asymmetric Structural Conditioning in Multi-Agent Document Authoring》这篇论文系统性地比较了结构化标记(如 XML)在语言模型“读取”文档与“按指令写作”两种场景下的效果,发现结构在阅读时显著提升稳定性,但在生成时反而损害质量——真正有效的写作控制是为模型配备可自执行的测试,而不是给它更精细的格式。
投标响应、合规矩阵、监管文件——这类正式文档的写作和常规生成任务有着根本性的差异。输出必须嵌入请求方提供的原始表格,每一处分散在文档集中的义务都必须被回应,而请求方的措辞必须逐字保留。一个有经验的投标经理会用三个星期梳理一份 200 页的需求文档,在 55 个问题中找到那些真正绑定合同义务的部分。当我们试图用大模型自动化这个过程时,问题不再是“模型能不能写得好”,而是“模型在什么条件下读得准,什么条件下写得好”。
Edwin Chen 所在的 Surfside 团队在这个问题上做了一个值得认真对待的实验。他们部署了一套真实的投标响应系统,用开源权重模型(参数不到 200B)在澳大利亚本地基础设施上运行,对四个公共部门采购项目(T1–T4)进行了测试。最关键的证据来自 T3:该组织此前已经人工撰写并提交过一份真实标书,而系统在生成时完全没有接触过这份示例。在这个盲测中,LLM 评审在 55 个基准段落中给出了 40 个“至少与人工回答一样好”的评判,其中 4 个更好,没有一个缺失,仅有一处被标记为无据断言。
但这个 73% 的数字本身不是论文的核心发现。真正有价值的是论文对失败原因的解剖。
信息缺失还是写作缺陷?一个常被混淆的区分
当系统生成的内容与人工基准出现分歧时,通常有两种解释:系统不知道这个信息,或者系统知道但写得不好。几乎所有此类系统的评估都将两者混在一起报一个总分。这篇论文的做法是逐条分类评审指出的每一个差距,追问一个简单的问题:这个信息在系统的输入材料中存在吗?
结果令人惊讶:评审标记的 15 个不利判断中,有 10 个(68%)涉及的内容根本不在系统的语料库里——这些是人工作者自己知道但模型从来没有获得过的知识,比如分包商注册信息、先前的通信记录、机构内部决策。排除这些信息可得性失败后,系统在可回答的段落上得分从 73% 跃升至 89%。这意味着,超过三分之二的“表现差距”实际上不是写作问题,而是输入不完整问题。

一个真正的盲测在这里有着独特的分量。论文作者在限制条件这一节中以相当坦诚的方式写道:这个测试只有一个采购项目、一位 LLM 评审,而且评审和生成使用同一模型家族,存在自偏好偏差的风险。§3.9 还专门记录了他们的核查尝试——用词法计数来做外部验证——如何失败:机械计数测量的是干预确实消除了的表面形式,但行为已经迁移到了同一位置的未测量形式中。只有定义在句子功能上的指标才捕捉到了这一退化。这一失败本身就是一个关于评估系统的重要教训。
阅读时,结构是信号
论文在三个“读取”任务上系统地复现了所谓“结构化标记有助于提取”的既有结论。
第一个任务是将批注(边注和修订痕迹)路由到它们所管理的问题。原来的系统使用精确的定位器连接,但批注者写的位置恰恰不是问题自身的元素,导致 228 条批注中有 90 条(39%)静默地没有到达任何问题。一个涉及绑定集成需求的关键批注因此出现在 0 个起草答案中。改为批量语义路由——将渲染后的标记(锚点前后共 10 个元素)交给模型,定位器仅作为提示——将覆盖率提升到 97.8%,该需求出现在 24 个答案中。
第二个任务是从电子表格中提取应答单元格。对字节完全相同的文件运行三次,纯字符差异方法分别返回了 404、280 和 340 个单元格——这相当于说“哪些部分需要报价”完全靠运气。改为按标签页进行一次语义判断,再用一个对抗性调用验证,然后通过算术推导出所有预期答案单元格,三次连续运行的单元格数稳定在 310,残差分差仅为 1–2 个。
第三个任务是把过去的标书重新解析为问题-答案对。平面文本提取在多次运行中返回了 0、1、3、13、18、24、28 个——几乎不可用。通过标记化路径处理同一文档后,文档分割变得完全可复现(六次运行跨四天得到完全相同的切分),产出下限从 3 提升到 47。

这三个任务共同指向一个清晰的结论:当模型需要在一个文档中定位、路由和枚举信息时,结构化标记提供的是信号,不是噪音。它让不可用的系统变得可复现,让运气变成了工程。
写作时,结构重新分配了显著性
然后论文做了此前没有人做过的事情:把同一种结构化表示应用到指令材料上。
一个标书通常附带一份 notes 文件,承载定位策略、产品决策和覆盖指令,是提示词中优先级最高的信息来源。实验将这份 notes 文件在保持内容不变的前提下转换为嵌套 XML——<bid> 内含 <requester>、<win_theme>、<partners>、<capabilities>、<security>、<pricing> 等标签,实体、角色和费率作为属性——并固定所有其他变量进行配对比较(每组 n=31)。
答案质量显著下降。“正在回答”的判定从 23/31 下降到 15/31,平均转述份额从 17.6% 上升到 25.0%,生成提示词的逐字保真率从 19/24 下降到 13/24。质量从 74% 跌至 48%。
失败的形式揭示了机制。在以请求方为主语的句子(“[请求方]要求一种机制……”)中,缺陷数量增加了一倍多。嵌套 XML 将请求方标记为提示词最高优先级来源顶部的头等标签实体,使其成为语法上最可用的主语。结构改变了什么最显眼,而显眼性决定了模型最先写什么。
这是一个精妙的实验设计。它不是说“XML 有害”,而是说同一种表示法在读取和写作两种认知任务中有不同的作用方向。当模型需要在一个文档中找到东西时,结构是信号;当模型需要内化并据此写作时,结构重新分配了显著性,而且不一定往好的方向分配。这个区别——定位与内化——构成了论文标题中“非对称”一词的真正含义。
点名禁止的东西会让它更集中
论文的第三个实验发现同样值得注意:在提示词中命名一个禁止的语法结构,会集中而不是消除它。
当系统被要求“不要以请求方为主语复述需求开头”时,残余缺陷中有 96%(25/26)恰好落在了提示词明确点名的两种形式中。在另一个无关的干预中,一条散文规则解释说某形容词不得使用,该词的出现次数从 11 次升到 18 次再升到 29 次。一个标题为“在整个标书中删除 X”的笔记块,在提示词最高注意力位置五次命名了禁用的 token,产生的输出却是包含该 token 的否定句——“无需 X 托管的环境”——从而引出了一个请求方从未问过的问题。
与之形成鲜明对比的是那个唯一不命名禁令的干预:将示例内容包裹在 <example> 标签中,声明它是模仿对象而非复制文本。逐字复制在第一次尝试中从 13 篇降到了 0 篇,并一直保持为零。
这个结果的实用含义相当深刻。描述一个失败的指令,同时提供了失败所需的 token。在注意力机制下,一个被反复提及的禁词比一个从未出现的禁词更容易被生成。而描述一个测试(模型在自己生成的句子上运行的程序),则完全不提供失败形式的 token,因此不会助长失败。
这一发现与 Khan(2025)的工作形成了有趣的呼应:约束型提示在中等模型上优于思维链提示,但在前沿模型上反而表现更差。本文的部署使用的正是开源非前沿模型,这意味着约束型策略的收益可能依赖于模型不够强——如果换成前沿模型,这些约束可能从保护变成束缚。
一个微小的随机差异如何在确定性管道中被放大
第四节实验给出了一个教科书级的方差传播案例。
同一份 349 元素的字节完全相同文件,在相隔四天的两次运行中,元素解析、过去标书分割、图表转换、示例选择和参考组装都完全可复现。但槽位标记出现了 54 对 56 的差异——这是一处随机性。问题提取在标记后的元素流上计算窗口,给元素添加 answer_slot 属性会改变其渲染后的字符长度,导致两个槽位的差异将窗口边界移动了三个元素,改变了每次提取调用的输入。问题数量从 68 变成了 51。
没有智能体产生幻觉,也没有虚假声明传播。 方差被放大,是因为一个带有随机性的标注被喂给了一个确定性的长度函数。这是一个不依赖任何模型错误发生的机制——它是管道架构自身的产物。这意味着任何在模型标注后的文本上做窗口、分块或分页的系统都可能存在这个属性,而它完全不可见,除非边界被记录。
这个发现超出了投标系统的范畴。在多智能体系统中,关于错误级联的文献通常关注“语义级”错误——虚假声明如何在智能体间传播。但这里展示的是另一种失败模式:结构耦合引入的方差传播,其中每个单独的组件都在正确工作,但它们的组合产生了不可复现的结果。
评估人类工作时的输入缺失问题
回到 §3.2 的差距分类。这项分析引出了一个方法论上的重要观点:当系统被拿来与人工制品做比较时,评分反映的不仅是生成器的能力,还有输入材料的完整性。 只报告汇总判定的评测无法区分“更好的作者”和“被给与了更完整信息的作者”。
这个观察对于整个 AI 写作评估领域都有意义。如果我们的目标是评估生成质量,那么信息可得性失败——模型从未见过的事实——不应该被计为生成失败。但在许多基准测试中,这两者是混合的。
作者给出了一个相当精确的判断:在排除了不可回答的段落后,分数从 73% 上升到 89%,而“诚实的说法是 73% 和 89% 框定了结果的范围,两个都不是点估计”。这种对评估固有不确定性的坦诚态度在论文写作中值得肯定。
工程视角:定向图、紧凑化和信号通道
系统的实际架构是一个 43 个单次智能体角色加一个多轮起草器的有向无环图。与常见的对话式多智能体循环不同,DAG 架构让每个角色只接收其任务所需的上下文,昂贵的语义工作只做一次,以可检查的 JSON 持久化,并可在下一阶段消费前由人工修正。六个阶段之间有三个编辑门——这不是一个端到端的黑箱,而是一个围绕智能体循环构建的运筹系统。
紧凑化实验也产生了一个独特的发现。由于模型无状态,每次调用都会贴出整个消息数组。在一次六问题会话的最后一次调用中,消息数组达到 355,024 字符,其中 73% 是关于其他问题的计划和合规文本。将每个已完成问题折叠为“问题+承诺答案”的形式后,十一个会话的总字符数从 10.2M 降至 2.1M(降低 79%)。但代价是什么?附着在单个问题上的材料不会在该问题结束后存活。 在所有 22 个断点会话中,零个保留轮次仍然携带过去标书示例或能力事实块;只有参考块存活,因为它被显式地在保留轮次中重新附加。任何必须到达每一个答案的信息都必须走紧凑化保留的通道,而不是某个单独问题的提示。
这是编排工程中的一个重要问题:上下文窗口是有限的,而每个问题都需要完整的背景信息。简单地削减历史会丢失那些看似属于“上一个问题”但实际上对“下一个问题”至关重要的信息。架构设计必须显式地决定什么信息挂在每个问题上,什么信息需要在整个会话中持续存在。这是一个输入和提示策略问题,不是模型能力问题。
真正的新意在哪里
如果剥开表面,这篇论文的真实贡献不在于“我们部署了一个投标响应系统”,也不在于“LLM 评审说我们 73% 和人工一样好”。这些数字在不同行业、不同数据集上可能会有所不同。真正的新意在于四个区分:
(1) 信息可用性与生成质量的区分;
(2) 读取与生成的结构条件作用区分;
(3) 禁止命名与专注测试的区分;
(4) 随机性与确定性在结构化管道中的方差传播区分。
这四个区分中,第二个最有可能对该领域产生持久影响。在 LLM 提示工程中,“结构化提示”一直被视为一种最佳实践,几乎没有反向证据。本文提供了一组配对对照实验来证明结构并非在所有场景下都有帮助,并给出了机制层面的解释——显著性重新分配。这个发现不仅适用于投标文档,还适用于任何模型需要内化指令然后生成内容的场景,从代码生成到法律文件再到医疗记录。
适用边界
有几个限制必须诚实面对。地面真值比较基于单一采购项目和单一 LLM 评审,评审与生成使用同一模型家族。评审对 Markdown 格式的偏好是一个未测量的混杂因素。偏差缓解协议的正确应用被留作后续工作。配对条件化比较在单个采购项目上每组 31 个样本,26 个百分点的差异在这个样本量上具有启发性而非结论性。方差耦合被识别但未被修复。这些都不会否定论文的核心洞察——结构的非对称性在多个任务和多个层次上都得到了独立证据的支持——但它们确实限定了结论的普遍化程度。
此外,作者在讨论中提出了一个有趣的自反性观察:如果模型变得更强大,本文描述的这些工程手段——重结构化约束、多轮测试应用——可能会从必要变为有害。这是一个值得认真对待的预测。如果前沿模型已经内化了合规性,那么提示词中过度的结构可能会限制其表达质量。这正是该论文在限制条件一节中称为“最可证伪的声明”的地方。
对研究者和实践者的启发
这篇论文在方法层面带来的最大启发,是它对“读和写是两种不同的认知操作”这个朴素事实的认真对待。大模型既是一个文档理解系统,也是一个文本生成系统,但这两个功能对输入表示有不同的要求。任何构建在实际应用中使用 LLM 管道的人——无论是投标自动化、合同审查、法律文件生成还是医疗报告撰写——都需要根据任务的认知方向来选择表示策略:模型在读取时给它结构,模型在写作时给它可执行的测试。
更重要的是,这篇论文提供了一种不同的评估哲学。一个系统的质量不是由一个聚合分数来定义的,而是由一系列在不同条件下的测量来定义的:与人工基准的比较、与人工编辑的比较、在不同表示下的配对比较、在表面形式和功能指标上的差异。只有通过这种多维度的测量,我们才能理解一个系统到底在做什么,以及它在哪些方面做得好,哪些方面做得不好。
夜雨聆风