先说点题外话。
之前发了一篇标题一样的文章，被佬友痛批了，确实是AI生成的。
痛定思痛，决定手搓一篇。

> 不过先声明一下我的立场，我至今仍严肃认为我手搓的并不如AI生成的好，因为AI也是按照我思路生成的，而它的文笔可比我好太多了。。。

> 再声明一下我不是什么技术大牛，只是在这个行业摸爬滚打10年，对业务问题有一些“邪修”的解决思路，喜欢分享一下，并不是什么“别人都做不到的牛逼技术”，但是希望大家看了以后能惊叹一句“卧槽，还能这么干”。
> 最近在L站也是被佬友狠狠教育了，学到了不少新东西。

# 我遇到的问题

我在做一个开源的投标文件生成工具：[【开源自荐】OpenBidKit_Yibiao：一个基于AI的智能投标工具箱](https://linux.do/t/topic/2282202/34)

前段时间不少用户反馈，在生成10万字以上的长标书时，经常出现前后不一致的问题，比如：

- 实施方案写工期90天，进度计划变成120天
- 售后方案承诺2小时响应，服务保障写成4小时
- 项目经理、人员数量、设备型号在不同章节反复变化
- 前面写三年质保，后面写一年运维期过后

根本原因就是，为了保证生成速度，做了多线程并发，每个叶子节点之间都是相互独立的。

# 首先纯靠长上下文并不可行

现在AI上下文长度动不动就1M，只写10万字的技术方案，按理说都不需要摘要，为什么只10万字就出现了前后不一致的情况？

因为要参考的内容太多：招标文件、工程量单、知识库、如果是方案扩写，还要参考原方案。

尤其是知识库，很多用户错吧“之前写过的标书”当成“知识”，一股脑扔给AI，很容易就爆上限。

# 我的第一反应是摘要，后来发现行不通

1. 摘要必须串行或较小的并发
2. 普通摘要是总结性质的，而参考资料里很少有实质性内容。
举个极端点的例子：招标文件要求：必须在90天内完工。
30天、60天、90天，都算90天完工，虽然AI大概率会直接复用90，但是此类问题不可避免的有并发编写的时候，不同小节出现不同工期的问题。



## 我的解题思路

“招标人要求工期不超过90天”只是要求；“本方案项目总工期为90天”才是后续正文可以统一使用的事实。

我想出的邪修方案，实现起来非常简单，本质还是摘要，但是是让AI有目的性的摘要。我称他为“全局事实设定”。

完整流程分为三步：

1. 生成“全局事实设定”,即根据已有资料，预估生成正文时可能会涉及到的不统一项，提前生成出来，大概是这个效果的：
![](https://oss.agnet.top/keep/2026/07/16/20260716144123178.png)

生成如：关于XX问题统一采用XX方案。

2. 生成时的编排阶段，确定每个小节会用到哪些事实，生成时只提交编排好的“全局事实设定”，避免挤爆上下文

3. 生成后进行二次检查，检查包括生成的内容是否符合之前的设定、未设定的内容，是否出现前后不一致的情况。


## 全局事实设定的另外一个好处

**对于想随便写一份标书的用户：**，可以让AI把包括人名等内容都一并初始化了，生成结果是完整的，无需人工二次修改，直接投就行了。

**对于想要一份可落地的技术方案的用户：**全局事实在AI解析后，支持用户手动添加、编辑、删除，也就是AI只负责整理哪些是必须统一的，至于统一成什么内容，让用户根据实际情况填写。这样生成完的标书，仍然无需人工二次修改，直接投就行了。
