做AI标书智能体时,我遇到一个反直觉的问题:生成100万字长文本本身不难,难的是决定"哪里该配图、配什么图、配多少张"。

GitHub上有朋友提了个醒——没图文附件不算真标书。我立刻接入了三种生图能力:Mermaid流程图、火山方舟的doubao-seedream-5.0、Google AI Studio的nano banana pro。但真跑起来才发现,生图容易,控图难。

打开网易新闻 查看精彩图片

第一个坑是成本失控。如果给每个目录叶子节点都配图,账单直接爆炸,而且很多章节纯文字就够了,硬塞图反而画蛇添足。第二个坑是内容脱节——让AI根据目录判断配图,生成的图可能和正文毫无关系;让AI读完正文再判断,几十万字读一遍的token成本又受不了。第三个坑是分布失衡,如果不做干预,AI很容易把图片额度全砸在前几章,后面章节光秃秃。

我的解法是在正文生成前加一道"预编排"工序。拿到目录树后,先让每个叶子节点过一遍AI判断:这个小节要不要引用知识库?适不适合表格?Mermaid图还是AI生图更合适?如果生图,优先级打几分?

这套JSON结构很直白:knowledge字段管素材引用,table字段管表格需求,mermaid和image字段分别管两种配图,priority字段打分(3分有价值、4分推荐、5分强推荐)。注意这里的needed: true只是进候选池,最终执行还要过全局筛选。

用户可以在前端配置偏好:最多几张AI图、表格倾向是none/light/moderate/heavy、开不开Mermaid。程序不会傻执行,而是按策略做二次控制——比如表格选"少量"时,AI提名的小节程序最多采纳20%,"适中"最多40%,"大量"才放宽。

AI生图同理。假设80个小节里有20个被AI标记为适合配图,但用户只设了maxAiImages: 6,程序会把候选分段,每段取优先级最高的,保证图片不会全堆在开头。

提示词设计也刻意做减法。SystemPrompt明确限制:只返回JSON,不解释不总结;表格只在归纳职责、步骤、参数等场景用;Mermaid只碰简单抽象的关系图,复杂工程场景留给AI生图;Mermaid和AI生图可以同时候选,但配图阶段保证同章节只执行一种。

这套流程跑通后,正文生成和配图彻底解耦:四步流水线(收集叶子节点→正文编排→并发生成正文→执行配图),配图规划前置到第一步,正文写的时候就知道后面可能要配什么图,表达能提前呼应。成本可控、分布均匀、图文相关——三个坑一次性填平。