| name | legal-bid-pipeline |
| slug | legal-bid-pipeline |
| displayName | 法务标书全链路生成 |
| version | 3.1.0 |
| description | |
| agent_created | true |
| license | MIT |
法务标书全链路生成(legal-bid-pipeline)
概述
本技能将投标文档制作从"人工逐章拼凑"升级为八阶段多Agent协作自动化流水线。核心思路:投标可行性预评估 → 总调度拆解(含模板自动识别+自定义废标条款提取+风险库扫描) → IMA知识库检索 → N个Agent并行写(知识库优先+法务专用指南引导)→ 人工确认AI生成内容 → 模板/自由双轨合稿 → 六道硬门槛质检(含模板对齐+风险库复检+格式类自动修复) → 五维评审 → 评分项闭环补强(PDCA-Act,自动落稿) → 修改迭代 → PDF拼合交付组装。全流程仅需5个人工确认点,其余阶段完全自动化。
覆盖六大管控维度:政策合规、技术匹配、商务匹配、格式检查、模板对齐、废标风险(v3.0新增)。
v3.1 新增(根据审查建议补齐的五项改进):
- 阶段八:PDF 拼合与交付组装 — 从"生成 .docx 就结束"升级为"按目录顺序拼合完整 PDF":生成结构化插入清单(JSON)→ DOCX 转 PDF → 按目录顺序合并模板材料/服务方案/证明材料 → 页码校验 → 输出可打印的
投标文件_完整版.pdf。人工只需做打印→盖章→签字→装订→密封五步物理操作。
- 法务服务方案专用指南 — 新建
references/legal_service_proposal_guide.md:法务标书评分逻辑、6 大标准模块结构(项目理解/服务方案/团队配置/管理制度/信息化/增值服务)、法务写作语言风格规范、量化要求、高频废标陷阱、不同采购类型差异化策略。
- 模板自动识别 — 阶段一中新增 4 条自动化规则(表格特征检测/签章空位检测/承诺书检测/偏离表检测),减少对人工标注的依赖。高置信度自动标注,人工仅审核中低置信度候选。
- 自定义废标条款自动提取 — 阶段一解析时从招标文件中提取所有含"无效""废标""否决"等关键词的自定义条款(CUSTOM- 编号),与风险库内置模式合并扫描,解决"通用风险库覆盖不了项目专属废标条款"的问题。
- 格式类废标风险自动修复 — 阶段四质检命中格式类风险时(表格列数偏差、标点符号、字体、签章行预填、蓝色超链接等),由主Agent自动修复而非打回阶段二重新编写。内容类风险仍走传统打回流程。
v3.0 新增(借鉴 engineering-bid-document-generator v9.2 实战经验):
- 投标可行性预评估(新增阶段〇):解析招标文件后、动笔前,5分钟输出「资质匹配度 / 废标风险等级 / 时间压力 / 投标建议」。核心价值:决定"要不要投"比"怎么写"更重要——避免花两天写完全文才发现资质不够或业绩不足。
- 法务废标风险库(新增 references/risk_library.md):内置法务/服务类标书专属的废标风险模式(执业许可证过期、签字律师非授权人、报价大写小写不一致等),阶段一解析时自动加载扫描,阶段四质检时复检比对,将"逐案踩坑"升级为"系统防御"。
- 评分项闭环补强 PDCA-Act(新增阶段五·B):评审后的改进不再停留在"列出问题等人改"——自动诊断每个评分项的覆盖度(已覆盖/弱覆盖/未覆盖),对弱项直接生成针对性补强段落并注入成稿。P(Plan)= 评分标准拆解,D(Do)= 生成初稿,C(Check)= 五维评审诊断,A(Act)= 自动补强落稿(竞品仅输出整改方案,本工具直接落稿)。
v2.2 新增:引入「模板/自由」双轨合稿机制——从第一性原理出发,招标文件第五章响应文件格式不是"参考样式"而是 "答题卡" 。有模板的章节(磋商申请、授权书、报价表、偏离表、承诺书等)按 bid-template-filler 精神逐字逐格填空;无模板的章节(服务方案、质量保证等)按自由编写模式自主编写。彻底杜绝"5."写成"5、"、"细目报价表少一列"等格式型废标。
v2.1 新增:阶段二引入IMA知识库优先机制——编写前先检索IMA知识库中的公司资料/技术方案/案例,命中内容直接引用,未命中内容由AI生成并标记溯源,人工确认后定稿。大幅降低"AI幻觉"风险,提升标书内容的真实性与可信度。
第一性原理:模板 vs 自由(P0 级核心规则)
本规则优先级高于 Skill 内其他所有章节。 这是从实战中标书 v1→v2→v3 三次迭代中提炼的根本性教训。
为什么这条规则是 P0
招标文件第二章·(六)·8 明确规定:「响应文件未按磋商文件规定的格式、内容和要求填写制作的,属于无效响应」。
这不是"建议",这是废标条款。而且是29项废标情形之一。
两分法
| 维度 | 有模板的章节 | 无模板的章节 |
|---|
| 本质 | 招标方给了"答题卡",你在上面填空 | 招标方给了"作文题",你写文章 |
| 判断标准 | 招标文件第五章中给出了固定格式(表格列数、占位符文字、签章空位) | 招标文件只给了章节标题,没有给出内容格式 |
| 典型章节 | 磋商申请及声明、授权书、磋商一览表、细目报价表、承诺书、偏离表、类似业绩表(格式三)、人员配置表(格式十) | 服务方案、质量保证措施、律所简介 |
| 处理方式 | 逐字逐格填空:模板原文一字不改,占位符处填入数据,签章行保留空白 | 自由编写:按评分标准要点逐条响应,自主设计章节结构 |
| 底线 | 表格列数、标点符号、空格缩进、段落顺序——一模一样。改一个字都有风险 | 无格式约束,但内容必须覆盖评分项 |
| 对应Skill | bid-template-filler 精神 | 自由编写模式 |
对抗性审查清单(合稿后必查)
从评标专家的视角,打开招标文件第五章和响应文件,逐项比对:
| 序号 | 审查点 | 示例(某真实标书的错误) | 后果 |
|---|
| 1 | 表格列数一致 | 细目报价表模板6列(序号|名称|数量|单位|单价|合价),v1版本只做了5列,漏了"单价" | 废标风险 |
| 2 | 标点符号一致 | 磋商申请及声明模板"5、一旦我方成交",v1/v2写成"5. 一旦我方成交"(英文句号代替中文顿号) | 评委一眼看出不一致 |
| 3 | 承诺书文字逐字一致 | 格式一/格式二的空格、缩进、"日 期"(中间有空格) | 格式偏差 → 可能被认定为"未按格式制作" |
| 4 | 偏离表包含"偏离情况"列 | 模板5列含"偏离情况",v1只做了4列 | 漏列废标 |
| 5 | 类似业绩表列数 | 格式三8列完整版,不可简化为5列 | 格式不符 |
| 6 | 签章行留白 | 模板中"供应商授权代表姓名(签字): "有空白——这是给手签的,不是给你填名字的 | 填了名字不给手签空间 |
| 7 | 模板原文一字不改 | 磋商申请"我们的总报价为(大写) 元人民币",不要改写成"采购包1总价...采购包2总价..." | 句式被改写 |
关键教训:v1 版本用 AI 直接生成全文(add_paragraph),把模板文字重写了一遍,导致大量微小偏差。v3 版本改为对照模板逐行编写,每个段落都来自模板原文。
阶段一中新增的模板识别步骤
在 MECE 拆解时,对招标文件第五章的每一项标注类型:
- 章节一·磋商申请及声明 → [模板] 按 P371-P393 原文填空
- 章节二·法定代表人授权书 → [模板] 按 P395-P408 原文填空
- 章节三·磋商一览表 → [模板] 3列表格
- 章节四·细目报价表 → [模板] 6列表格
- 章节五·资格证明文件 → [模板] 含格式一/二承诺书
- 章节六·补充证明文件 → [模板] 格式三8列表格
- 章节七/八·偏离表 → [模板] 5列表格含偏离情况
- 章节九·服务方案 → [自由] 自主编写
- 章节十·人员配置 → [模板] 格式十8列表格
- 章节十一·质量保证 → [自由] 自主编写
- 章节十二·其他 → [自由] 自主编写
| 角色 | 类型 | 数量 | 职责 |
|---|
| 总调度(Dispatcher) | 主Agent | 1人 | 解析招标文件→MECE拆解→生成章节Brief→启动后续Agent |
| 章节编写(Writer) | 子Agent | N人(1章/人) | 基于Brief独立上下文编写各章节,加载对应reference |
| 合稿(Compiler) | 子Agent | 1人 | HTML拼接→统一排版→生成完整标书 |
| 质检(QA) | 子Agent | 1人 | 执行六道硬门槛检查(含风险库复检,「与」关系,一道不过即打回) |
| 评审(Reviewer) | 子Agent | 5人(A~E) | 五维并行评审→P0/P1/P2分级→加权总分 |
| 修改(Reviser) | 子Agent | 1人 | 合并评审意见→逐条修改→输出vN+1 |
触发场景
- 用户上传或提供招标文件,要求生成标书初稿
- 用户需要撰写技术方案、商务方案、项目实施计划
- 用户需要进行招标文件解析、提取关键要求
- 用户需要生成响应矩阵(Compliance Matrix)和偏离表
- 用户需要对已完成标书进行质量检查和合规审查
- 触发词示例:「帮我写投标文件」「生成技术方案」「分析这份招标文件」「检查标书格式」
输入要求
- 必需:招标文件(PDF/DOCX/Markdown/纯文本)
- 推荐:公司简介、资质证书清单、成功案例库
- 可选:产品资料、技术白皮书、历史投标文件、报价策略
- 知识库(推荐):接入IMA知识库(
ima-mcp 连接器),将公司资料、资质证书、案例、技术方案等上传至IMA,阶段二中将自动检索并优先使用知识库中的真实素材
阶段〇:投标可行性预评估(v3.0 新增)
核心价值:决定"要不要投"比"怎么写"更重要。5分钟出结论,避免花两天写完全文才发现资质不够。
执行者:主Agent,在解析招标文件后立即执行,不另启子Agent。
执行时机:阶段一·步骤2(解析提取)完成后,在进入MECE拆解之前。
输入:阶段一的 01_招标要素清单.md 中的资格条件部分 + 评分标准部分 + 时间节点部分。
评估维度:
| 维度 | 评估内容 | 数据来源 |
|---|
| 资质匹配度 | 营业执照范围是否覆盖、专业资质是否齐全、类似业绩数量是否达标、人员资格是否满足 | IMA知识库中的律所资质资料 + 用户确认 |
| 废标风险初筛 | 是否存在"一票否决"条款(如★号资格条款缺失、业绩门槛不达标等),加载 references/risk_library.md 中的「投标准入类」模式进行比对 | 招标要素清单 + 风险库 |
| 时间压力 | 投标截止日距今的日历天数、答疑截止时间、保证金到账时限 | 招标要素清单·时间节点 |
| 竞争态势 | 评分标准中价格分占比(价格战风险)、技术分/方案分的区分度(是否有明显加分点) | 招标要素清单·评分标准 |
| 投标建议 | 综合以上四维,给出三档建议 | 主Agent综合分析 |
三档建议:
| 建议 | 标志 | 含义 |
|---|
| 🟢 建议投标 | 资质全匹配 + 无硬性废标风险 + 时间充裕 + 有明确竞争优势 | 进入阶段一后续流程 |
| 🟡 谨慎投标 | 部分资质需补充或有时间压力,但无致命风险 | 提示风险点,用户自行决定 |
| 🔴 建议放弃 | 存在一票否决条款无法满足、或资质严重不匹配 | 列出不可逾越的障碍,节约后续投入 |
输出产物:00_投标可行性预评估报告.md,包含:
- 资质匹配矩阵(招标要求 vs 我方资质,逐项 ✅/⚠️/❌)
- 废标风险初筛结果(命中的风险模式编号 + 风险等级)
- 时间压力评估(关键节点倒计时)
- 竞争优势分析(评分标准的加减分预判)
- 最终建议及理由
⚠️ 人工确认点 #0:将 00_投标可行性预评估报告.md 呈现给用户。用户决定:
- 「继续投标」→ 进入阶段一后续流程(MECE拆解)
- 「放弃」→ 终止流程,保存预评估报告备查
如果用户选择「放弃」,这是成功的放弃——比花了两个工作日写完全文再发现废标条款有意义得多。
八阶段多Agent工作流
严格按照以下八阶段流程执行,不可跳过或颠倒顺序。每个阶段的子Agent使用 Agent 工具(subagent_type: "general-purpose")启动。
阶段一:招标解析与框架生成(总调度 Agent)
执行者:主Agent(当前Skill的调用者),不另启子Agent
步骤:
- 读取招标文件:若用户未提供,主动询问。支持 PDF/DOCX/Markdown/纯文本。
- 解析提取:输出结构化的「招标要素清单」,包含:
- 资格条件:营业执照、资质证书、业绩要求、人员要求、财务要求
- 技术参数:产品/服务的技术指标、性能要求、标准规范
- 商务条款:付款方式、交付期限、质保要求、知识产权、违约责任
- 评分标准:技术分/商务分/价格分权重、各评分项及分值(此为后续章节Brief核心输入)
- 提交要求:文件组成、格式规范、装订要求、电子版要求
- 时间节点:投标截止时间、答疑时间、开标时间、保证金截止时间
- 实质性条款:标注★号条款或"必须满足"条款
- v3.1新增:自定义废标条款:从招标文件中提取所有含"无效""废标""否决""不予受理""不通过"等关键词的条款原文,作为风险库的补充输入
- 模板自动识别(v3.1新增):在人工标注 [模板]/[自由] 之前,先执行自动化规则扫描:
- 规则A:表格特征检测 — 扫描招标文件中所有含表格的页面,提取表格列数和表头文字。如果一个页面包含 ≥3 列且表头含"序号/名称/..."等关键字,标记为候选 [模板] 章节
- 规则B:签章空位检测 — 扫描含"(签字)""(盖章)""(签字或盖章)""授权代表"等关键字的段落,标记所在章节为候选 [模板] 章节
- 规则C:承诺书/声明类检测 — 扫描含"我方承诺""郑重承诺""特此声明""郑重声明"等固定句式开头的段落,标记所在章节为候选 [模板] 章节
- 规则D:偏离表检测 — 扫描含"偏离情况""偏离说明""正偏离/负偏离"等偏离表专用列的表格,标记为候选 [模板] 章节
- 自动检测完成后,输出「模板自动识别结果」供人工确认(标注置信度:高/中/低)。置信度为"高"的自动标注,人工仅需审核"中"和"低"的候选
- 加载
references/policy_checklist.md,执行政策合规预检,输出「政策合规检查报告」(通过/不通过/需补充 + 修复建议)。
- 加载
references/risk_library.md(v3.0新增),执行法务废标风险初筛:
- 解析招标文件中的形式要件(签字/盖章/密封/装订/正副本/电子版/授权)
- 逐条比对风险库中的法务/服务类废标模式
- v3.1新增:合并步骤2提取的自定义废标条款,将其作为风险扫描的补充范围(冠以 "CUSTOM-" 编号前缀以区分风险库内置模式)
- 输出「废标风险初筛报告」(风险命中清单 + 规避建议),嵌入
02_政策合规检查报告.md 末尾
- MECE拆解:按评分标准将标书拆解为N个独立章节(1章 = 1个评分维度的完整响应),确保章节间无重叠、无遗漏。v3.1更新:合并人工标注与自动识别结果,对每个章节标注类型 [模板] 或 [自由]
- 生成章节Brief:每个章节一份Brief,包含:
- 章节类型标注([模板] 或 [自由],标注来源:人工/自动-高置信度/自动-未确认)
- 本章覆盖的招标条款编号及原文
- 本章在评分体系中的分值及权重
- [模板]章节:列出模板段落范围(如 P371-P393)、表格列数(如 6列)、签章空位要求
- [自由]章节:必须产出的内容要素(字数下限 + 图表要求 + 表格要求 + 事实/数据引用点)
- 需要加载的reference文件名
- 参考的assets模板(如适用)
- 生成响应矩阵草稿:条款→响应章节映射,标注各条款类型(强制性/推荐性/隐含性)。
阶段一产出物:
01_招标要素清单.md
02_政策合规检查报告.md
03_章节Brief汇总.md(含N个章节Brief)
04_响应矩阵草稿.md
⚠️ 人工确认点 #1:阶段一完成后,必须将以上4个文件呈现给用户审核,等待用户确认「y 继续」或「n 修改框架」后再进入阶段二。框架确认前不得启动任何章节编写。
阶段二:知识库驱动并行章节编写(4个子阶段)
阶段二从「纯AI凭空生成」升级为「IMA知识库优先 → AI补全 → 人工确认」三阶梯模式。分为 A/B/C/D 四个子阶段。
前置条件
IMA知识库连接器(ima-mcp)需在 WorkBuddy 中连接并授权。若未连接,阶段二·A 将自动回退为「全量AI生成 + 人工确认」模式。
相关工具(连接后可用):
mcp__ima-mcp__search_knowledge:按关键词搜索知识库中的文档/条目
mcp__ima-mcp__get_document:获取知识库中某篇文档的完整内容
mcp__lexiang__search_kb_search(乐享知识库,备选):当 IMA 不可用时尝试使用乐享知识库
阶段二·A:IMA知识库预检索(主Agent)
执行者:主Agent(不另启子Agent)
目的:在启动章节编写Agent前,先对每个章节Brief的关键词在IMA知识库中检索,获取已有的公司资料、技术方案、案例等真实素材。
步骤:
- 提取检索关键词:从每个章节Brief中提取3~5组检索关键词。
- 示例:章节"MES系统详细技术方案" → 关键词:「MES 制造执行系统」「某制造企业」「数字化车间」「电子制造MES」「生产排程 APS」
- 并行检索:对每个章节的每组关键词,调用IMA知识库搜索工具。
- 若
ima-mcp 已连接:使用 mcp__ima-mcp__search_knowledge 搜索
- 若
ima-mcp 未连接:尝试使用 mcp__lexiang__search_kb_search(乐享知识库作为备选)
- 若两者均不可用:标记为「知识库不可用,全部内容将由AI生成」
- 结果归类:将检索结果按章节归类,标注每条结果的来源(IMA/乐享/无)、相关度(高/中/低)、内容摘要。
- 生成检索报告:输出
05_IMA检索结果汇总.md,包含:
- 每个章节的检索关键词
- 每类关键词的命中数量
- 每条命中结果的内容摘要与来源链接
- 内容覆盖度评估:该章节已有知识的覆盖率(高≥70% / 中40~70% / 低<40%)
阶段二·A产出物:05_IMA检索结果汇总.md
回退逻辑:
- 若 IMA/乐享均不可用 → 该报告中标注「知识库不可用,全部内容由AI生成」
- 若部分章节有命中、部分无 → 各章节分别标注,命中章节优先使用知识库素材,未命中章节AI全量生成
阶段二·B:知识库优先的并行章节编写(N个章节编写 Agent)
执行者:N个子Agent,使用 Agent 工具并行启动
编排规则:
- 每个章节一个Agent,所有Agent并行启动
- 每个Agent的prompt必须包含:该章节的完整Brief + IMA检索结果 + 指定加载的reference文件路径 + 公司/项目上下文
- 总调度需创建N个
TaskCreate 追踪每个章节进度
Agent Prompt 模板(每个章节一个,相比v2.0增加了IMA素材和内容溯源要求):
你是投标标书章节编写专家。请根据以下Brief和IMA知识库素材撰写一个独立章节。
【章节Brief】
- 章节名称:{章节名}
- 覆盖招标条款:{条款列表}
- 分值权重:{分值}
- 字数要求:≥3000字(不足将被打回)
- 图表要求:至少1张架构图/流程图/甘特图(使用Mermaid代码生成)
- 表格要求:至少1张响应对照表
- 事实/数据引用点:{具体要求}
【IMA知识库检索结果】(来自05_IMA检索结果汇总.md的本章部分)
{本章相关的IMA检索结果:标题、链接、内容摘要}
【需加载的Reference】
{reference文件路径}
【公司上下文】
{公司简介、资质、案例库等}
【撰写要求——知识库优先原则】
1. **知识库优先**:优先使用IMA检索结果中的真实内容(公司资料、案例、技术方案等)。IMA有直接可用内容的,原文引用并标注来源。
2. **AI补全标记**:当IMA无对应内容、由你基于通用知识生成的段落,必须在段落开头添加标记:
<!-- AI_GENERATED: 该段内容为AI辅助生成,基于{生成依据},需人工确认 -->
例如:<!-- AI_GENERATED: 该段内容为AI辅助生成,基于电子制造行业MES通用实践,需人工确认 -->
3. **逐条响应**:逐条响应Brief中的每条招标条款,不得遗漏
4. **标题编号与招标条款编号对应**
5. **量化支撑**:用数据而非空话("提升30%"而非"大幅提升")
6. **所有图表使用Mermaid代码块**(```mermaid ... ```)
7. **禁止使用"可能""大概""也许""应该"等模糊词汇**
8. **输出纯Markdown格式**,章节标题前使用`##`作为顶级标题
9. **在章节末尾附上两种检查表**:
- 「本章响应检查表」:每条招标条款→响应段落→响应状态
- 「本章内容溯源表」:列出本章所有节/小节,标注内容来源(IMA知识库/Reference/AI生成)及置信度
编写质量标准(每个章节Agent必须遵守):
- 字数底线:每个章节正文≥3000字(纯中文文字,不含代码块和图表)
- 图表要求:每个章节至少1张Mermaid图
- 表格要求:每个章节至少1张表格
- 事实引用:每个技术/商务论点必须有数据/标准/案例支撑,优先引用IMA素材
- 逐条响应:Brief中的每条招标条款必须有独立段落响应
- 溯源标记:所有AI生成段落必须用
<!-- AI_GENERATED: ... --> 标记
阶段二·B产出物:N个 ch_N_章节名.md 文件(含AI_GENERATED标记)
阶段二·C:AI生成内容清单与人工确认
执行者:主Agent
目的:将每个章节中所有 <!-- AI_GENERATED --> 标记的段落汇总成清单,提交用户审核。这是阶段二内部的人工确认点。
步骤:
- 扫描提取:遍历所有
ch_N_章节名.md 文件,提取所有 <!-- AI_GENERATED: ... --> 标记段落。
- 生成清单:输出
06_AI生成内容清单.md,包含:
- 总体统计:总段落数 / IMA命中段落数 / AI生成段落数 / AI生成占比
- 按章节逐个列出AI生成段落:
- 所在章节及行号
- 段落主题
- 生成依据(从标记中提取)
- 段落前100字预览
- 置信度评估(高/中/低)
- 风险提示:标注哪些AI生成段落属于P0/P1级别(涉及核心技术参数、公司数据、报价等)
- 输出内容覆盖率报告:
| 章节 | IMA命中率 | AI生成占比 | P0级AI段落 | 风险等级 |
|---|
| 章节一 | 45% | 55% | 2 | ⚠️ 中 |
| ... | ... | ... | ... | ... |
⚠️ 人工确认点 #1.5(阶段二内部):将 06_AI生成内容清单.md 呈现给用户。用户审核后:
- 「全部确认」→ 移除所有
<!-- AI_GENERATED --> 标记,进入阶段二·D 定稿
- 「指定修改」→ 用户指出需要修改的具体段落编号,主Agent重新生成这些段落(仅重新生成指定段落,已确认段落保留)
- 「全部重写」→ 用户提供补充资料后,重新执行阶段二·B
阶段二·C产出物:06_AI生成内容清单.md
阶段二·D:定稿输出
执行者:主Agent
步骤:
- 用户确认所有AI生成段落后,移除所有章节文件中的
<!-- AI_GENERATED: ... --> 标记
- 更新
05_IMA检索结果汇总.md,在每条检索结果的末尾标注「已采用至第X章第Y节」
- 生成最终章节文件(命名格式统一为
章节N_标题.md)
阶段二·D产出物:
- N个
章节N_标题.md(定稿版,已移除所有AI_GENERATED标记)
05_IMA检索结果汇总.md(更新版,含采用追踪)
IMA不可用时的完整回退流程
当 ima-mcp 和 mcp__lexiang__* 均不可用时:
- 阶段二·A 直接输出
05_IMA检索结果汇总.md,标注「知识库不可用,全部内容由AI生成」
- 阶段二·B 正常启动N个章节编写Agent,所有段落均标记为
<!-- AI_GENERATED: 知识库不可用时AI全量生成 -->
- 阶段二·C 的
06_AI生成内容清单.md 将显示 AI生成占比100%,逐章列出所有段落等待确认
- 阶段二·D 同样执行——用户确认所有段落后移除标记,定稿输出
注意:IMA不可用时,人工确认的工作量会显著增加(因为100%内容都需审核)。建议用户尽量在投标前将公司资料(简介、资质、案例、技术白皮书等)上传至IMA知识库,以降低AI生成比例。
阶段三:模板/自由双轨合稿(主Agent 执行)
v2.2 重要变更:阶段三不再由单独的子Agent执行,由主Agent直接执行。原因:模板填空需要精确对照招标文件原文,子Agent的独立上下文会丢失模板细节。主Agent持有完整的招标文件解析结果,可以逐字逐格对齐。
执行者:主Agent
双轨合稿规则:
对每个章节,根据阶段一标注的 [模板] / [自由] 类型,走不同轨道:
轨道A [模板] 章节:
1. 从招标文件第五章提取该章节的模板原文(段落、表格结构、签章空位)
2. 将模板原文作为基准,不在上面"重写"——只做"填空"
3. 占位符替换:把(供应商名称)、(项目名称)、(大写)等替换为实际数据
4. 签章行留白:供应商签字、法定代表人签字、日期——全部保留空白供手签
5. 表格复制:模板几列就是几列,模板什么表头就是什么表头
6. 标点符号:保留模板中的中文标点(、。「」),不得替换为英文标点
轨道B [自由] 章节:
1. 从阶段二·D产出的《章节N_标题.md》中读取内容
2. Markdown → DOCX 转换(保留表格、Mermaid 渲染、层级标题)
3. Mermaid 代码块通过本地 `mmdc` 渲染为 PNG 后插入 .docx(mermaid.ink / kroki.io 在国内被 GFW 拦截,必须本地化)
4. 字体统一为小四宋体、1.5倍行距
合稿顺序(严格按招标文件第五章顺序):
| 序号 | 章节 | 类型 | 轨道 | 数据来源 |
|---|
| 1 | 磋商申请及声明 | [模板] | A | 招标文件 P371-P393 + DATA 字典 |
| 2 | 法定代表人授权委托书 | [模板] | A | 招标文件 P395-P408 + DATA 字典 |
| 3 | 磋商一览表 | [模板] | A | 招标文件 P410-P412 + DATA 字典 |
| 4 | 细目报价表 | [模板] | A | 招标文件 P414-P423 + DATA 字典 |
| 5 | 资格证明文件 | [模板] | A | 招标文件 P424-P464(含承诺书格式一/二) |
| 6 | 补充证明文件 | [模板] | A | 招标文件 P465-P474(格式三表格)+ 业绩数据 |
| 7 | 商务条款偏离表 | [模板] | A | 招标文件 P477-P480 + 商务条款数据 |
| 8 | 技术条款偏离表 | [模板] | A | 招标文件 P483-P487 + 技术条款数据 |
| 9 | 服务方案 | [自由] | B | 阶段二·D 产出的章节8A-8E |
| 10 | 项目人员配置 | [模板] | A | 招标文件 P511-P541(格式十表格)+ 人员数据 |
| 11 | 质量保证措施与相关承诺 | [自由] | B | 阶段二·D 产出的章节10 |
| 12 | 其他部分 | [自由] | B | 律所简介 |
技术实现:使用 Python + python-docx 直接创建 DOCX,不经过 HTML 中间格式。原因:
- HTML 转 DOCX 会丢失表格结构和签章空行
- python-docx 可以精确控制每个段落的文本,确保与模板逐字一致
产出物:标书_v1.docx
合稿后必检(主Agent自检,不等待阶段四):
打开生成的 .docx,用对抗性审查视角逐项检查:
如果发现任何偏差 → 不要寄希望于评审阶段修复,立即修改合稿脚本,重新生成。
阶段四:质检——六道硬门槛(质检 Agent)
执行者:1个子Agent,使用 Agent 工具启动
硬门槛说明:六道门槛为「与」关系 —— 一道不通过即打回阶段二,不得进入评审。
Agent Prompt 模板:
你是投标标书质检专家。请对以下标书文件执行六道硬门槛检查(含废标风险库复检)。
【输入文件】标书_v1.docx
【需加载的Reference】references/format_checklist.md
【六道硬门槛——AND关系,一道不过即打回】
**门槛1:字数门槛**
- 遍历每个章节,统计纯中文正文文字量(不含代码块、图表、表格)
- 每章需≥3000字
- 任一章节不满足 → 不通过,标注具体章节及缺口字数
**门槛2:图表门槛**
- 检查每个章节是否至少包含1张图表
- 图表来源检查:是否为Mermaid生成(非网络截图)
- 图表清晰度检查:是否可正常渲染
- 图表编号连续性检查
- 任一章节不满足 → 不通过
**门槛3:表格门槛**
- 检查每个章节是否至少包含1张数据表格
- 表格内容完整性:无空白单元格
- 表格格式统一性:边框/字体/对齐方式一致
- 任一章节不满足 → 不通过
**门槛4:事实核查门槛**
- 逐条检查:所有数据/百分比/金额是否有来源标注
- 搜索"可能""大概""也许""应该""左右"等模糊词 → 全部标记
- 交叉验证:同一数据在两处是否一致
- 发现模糊词或数据矛盾 → 不通过,标注具体位置
**门槛5:格式门槛**
- 图表编号连续性检查(图1→图2→...无跳号,表1→表2→...无跳号)
- 目录页码与实际页码对应检查
- 字体全黑检查(无蓝色超链接残留)
- 文件命名规范检查
- 不满足任一 → 不通过
**门槛6:废标风险库复检(v3.0新增)**
- 加载 `references/risk_library.md`,对照标书终稿逐条扫描
- 检查项:
- 形式要件完整性(签字/盖章/密封/装订/正副本/电子版/授权)
- 资质证书有效期(执业许可证、人员资格证书是否在有效期内)
- 业绩证明格式合规性(合同复印件是否齐全、金额是否达标)
- 报价一致性(大写与小写是否一致、分项合计与总价是否一致)
- 签章行留白验证(不得预填名字、不得遗漏签章位)
- 命中任一废标风险模式 → 不通过,标注风险模式编号 + 具体位置 + 修复建议
【输出格式】
生成「质检报告.md」,包含:
1. 六道门槛逐项结果(通过/不通过)
2. 不通过项的具体位置、问题和修复建议
3. 总体结论:通过(进入阶段五)/ 不通过(打回阶段二,附打回原因列表)
打回处理流程(v3.1更新:增加自动修复能力):
质检不通过时,按问题类别分两条路径处理:
路径A:自动修复(格式类风险,v3.1新增)
以下类别的风险命中,由主Agent自动修复而非打回阶段二:
| 风险类别 | 自动修复方式 | 示例 |
|---|
| 表格列数偏差(B13) | 使用 python-docx 重写表格,严格按模板列数生成 | 偏离表5列→自动补齐到5列 |
| 标点符号替换(B14) | 全文查找替换:英文标点→中文标点(仅限模板章节) | "5." → "5、"、"——"→"——" |
| 字体/字号不一致(B18) | 统一设置:正文小四宋体、1.5倍行距 | 批量应用样式 |
| 表格格式统一性(门槛3) | 统一边框/字体/对齐方式 | 全表格批量处理 |
| 图表编号跳号(门槛2/5) | 重新编号:图1→图2→...无跳号 | 更新图表题注 |
| 模糊词替换(门槛4) | 标记所有模糊词位置,AI 自动替换为具体表述 | "大幅提升"→"提升约30%" |
| 签章行预填(B07/E01-E05) | 清空签章行文本,保留空白供手签 | 删除预填文字 |
| 蓝色超链接残留(门槛5) | 清除所有超链接,统一黑色字体 | 逐段清除 |
自动修复流程:
- 质检 Agent 输出
质检报告.md 时,对可自动修复项标注 [AUTO-FIX] 标记
- 主Agent读取
质检报告.md,对 [AUTO-FIX] 项逐项执行自动修复
- 修复后的标书另存为
标书_v1_fixed.docx,标注修复项和修复内容
- 主Agent对修复后的标书重新执行阶段四质检(仅检查不可自动修复的门槛:门槛1/4 中不可量化部分)
路径B:人工修复(内容类风险,走传统打回流程)
| 风险类别 | 原因不自动修复 | 修复方式 |
|---|
| 承诺书文字被改写(B15) | 涉及语义,AI 无法判断原文 | 打回阶段二,人工对照模板逐字修改 |
| 报价大小写不一致(D01/D02) | 涉及真实数据,AI 无法获知正确值 | 标记 ⚠️ 需人工确认,用户提供正确值后修复 |
| 资质证书过期(C01-C06) | 涉及真实业务状态 | 标记风险,用户自行确认和补充 |
| 内容类覆盖不足 | 需要新增章节和内容 | 打回阶段二·B,对应章节Agent重写 |
打回处理流程(仅路径B):
- 质检不通过(路径B类问题) → 主Agent将质检报告中的问题逐条反馈给对应的章节编写Agent(阶段二的Agent)
- 章节编写Agent修正后重新输出章节文件
- 重新进入阶段三(合稿)→ 阶段四(质检)
- 打回次数计入迭代轮数
阶段四产出物:
质检报告.md(含 [AUTO-FIX] 标记项)
标书_v1_fixed.docx(自动修复后的标书,如适用)
阶段五:五维并行评审(评审Agent A~E)
执行者:5个子Agent(评审A~E),使用 Agent 工具并行启动
前置条件:阶段四质检通过
评审角色定义:
| 评审 | 视角 | 权重 | 核心审查内容 |
|---|
| 评审A | 完整性评审 | 20% | 招标文件每条要求是否被覆盖、章节是否遗漏、响应矩阵是否完整 |
| 评审B | 技术深度评审 | 25% | 技术方案专业性、架构合理性、参数响应准确性、创新性与差异化 |
| 评审C | 商务竞争力评审 | 15% | 报价竞争力、商务条款合理性、售后承诺可靠性、业绩匹配度 |
| 评审D | 语言与规范评审 | 10% | 文字表达规范性、逻辑清晰度、专业术语准确性、排版一致性 |
| 评审E | 评分博弈评审 | 30% | 从评委视角模拟打分:逐条按评分标准打分,识别失分风险和加分机会 |
评审Agent Prompt 模板(以评审A为例):
你是投标标书完整性评审专家(评审A,权重20%)。请从完整性视角审查以下标书。
【输入文件】标书_v1.docx
【招标要素清单】01_招标要素清单.md
【响应矩阵】响应矩阵_完整版.md
【审查维度】
1. 逐条检查招标文件中的每一条实质性要求(★号条款)是否在标书中有明确响应段落
2. 逐条检查评分标准中的每个评分项是否在标书中有对应章节
3. 检查是否有应包含但遗漏的章节
4. 检查响应矩阵与实际标书内容是否一致
5. 检查附件清单是否完整
【输出格式】
生成「评审A_完整性评审报告.md」,包含:
1. 覆盖度评分(满分100)
2. 遗漏项列表(每条标注招标条款编号+遗漏内容+P0/P1/P2等级):
- P0(致命):实质性条款遗漏,直接废标
- P1(严重):评分项遗漏,失分≥3分
- P2(一般):非评分项遗漏或表达不充分
3. 完整性改进建议(逐条可操作)
各评审Agent均需加载:references/review_checklist.md(评审标准与得分规则)
评审产出物:
评审A_完整性评审报告.md
评审B_技术深度评审报告.md
评审C_商务竞争力评审报告.md
评审D_语言规范评审报告.md
评审E_评分博弈评审报告.md
加权总分计算:
总分 = 评审A得分×20% + 评审B得分×25% + 评审C得分×15% + 评审D得分×10% + 评审E得分×30%
P0/P1/P2分级汇总:主Agent汇总5份评审报告中所有问题,合并去重,按P0/P1/P2分级列出。
⚠️ 人工确认点 #2:阶段五完成后,将5份评审报告+加权总分+P0/P1/P2问题清单呈现给用户。用户决定:
- 「y 交付」→ 总分≥95分且无P0问题时可直接输出交付版
- 「n 再改」→ 进入阶段五·B(评分项闭环补强)或阶段七(修改迭代)
阶段五·B:评分项闭环补强 PDCA-Act(v3.0 新增)
核心理念:竞品(红点智标、数匠云、钛投标)的"闭环整改"停在输出整改方案,本工具直接把补强段落落稿——PDCA 的 Act 不够,才是真的闭环。
执行者:主Agent(不另启子Agent)。原因:补强段落的注入需要精确知道每个章节的原始位置,子Agent的独立上下文无法做到。
前置条件:阶段五评审完成,用户选择「n 再改」或加权总分 < 95。
执行流程:
步骤 1:评分项覆盖度诊断
对每个评分项,检查其在生成稿中的覆盖状态:
| 覆盖状态 | 判断标准 | 处理方式 |
|---|
| ✅ 已覆盖 | 成稿中有独立章节/段落明确响应,且内容充分(≥300字/评分项) | 跳过,标注"已充分响应" |
| ⚠️ 弱覆盖 | 成稿中有响应但内容单薄(<300字/评分项),或仅一笔带过 | 自动生成补强段落 |
| ❌ 未覆盖 | 成稿中无任何响应 | 自动生成补强段落(最高优先级) |
重要排除规则:以下两张"元表格"不计入覆盖度判断,避免干扰:
- 「评分项响应保障表」(阶段三合稿生成的附录表)
- 「资质业绩响应表」(资格证明章节)
步骤 2:补强段落生成
对弱覆盖/未覆盖的评分项,按类别消费知识库生成补强段落:
| 评分项类别 | 补强素材来源 | 示例(法务标书) |
|---|
| 业绩类 | IMA知识库:律所类似项目案例 | "我方过去三年为 XX 家政府单位提供法律顾问服务,近三年处理行政诉讼案件 XX 件..." |
| 人员类 | IMA知识库:律师简历/CV | "张律师具有 XX 年执业经验,曾代理 XX 案件..." |
| 资质类 | IMA知识库:律所资质证书 | "本所持有 XX 资质,具备 XX 领域专业服务能力..." |
| 方案类 | AI生成 + 行业知识 | 补充服务方案中缺失的子模块(如"信息化管理方案") |
| 服务承诺类 | AI生成 + 报价数据 | 补充响应时间承诺、服务质量指标等量化数据 |
补强段落质量要求:
- 每段 ≥ 200字,有量化数据支撑(禁用"可能""大概""也许")
- 与原始成稿风格一致(保持章节语言风格和编号体系)
- 标注来源:
<!-- REINFORCE: 基于IMA素材「{来源文档名}」生成 --> 或 <!-- REINFORCE: AI辅助生成,基于{行业/领域}知识,需人工确认 -->
步骤 3:补强段落注入成稿
- 将每个补强段落插入到对应章节中评分项响应位置的末尾
- 在docx中使用「修订模式」标记新注入内容(蓝色文字 + 批注标注来源),方便人工识别审阅
- 为每个注入的段落保留
<!-- REINFORCE: ... --> 标记,与阶段二的 <!-- AI_GENERATED: ... --> 标记格式一致
步骤 4:生成补强闭环审计报告
产出 评分项补强闭环报告.md,包含:
| 评分项编号 | 原始覆盖状态 | 补强后状态 | 补强段落字数 | 素材来源 | 置信度 |
|---|
| 技术分-1 | ⚠️ 弱覆盖 | ✅ 已补强 | 350字 | IMA-案例库 | 高 |
| 技术分-3 | ❌ 未覆盖 | ✅ 已补强 | 420字 | AI生成 | 中 |
| ... | ... | ... | ... | ... | ... |
以及:
- 补强前后评分预估对比:模拟补强前得分 vs 补强后预估得分
- 零遗漏审计结论:所有评分项是否均已覆盖(已覆盖/已补强覆盖/仍待人工补充)
- ⚠️ 需人工确认的补强段落清单(置信度 ≤ 中 的段落)
步骤 5:补强后稿输出
输出 标书_v1_reinforced.docx(含修订模式标记的补强段落)。
⚠️ 人工确认点 #2.5:将「评分项补强闭环报告」呈现给用户。用户审核每个补强段落:
- 「全部接受」→ 移除修订标记 + AI标记 → 进入阶段七
- 「逐条审核」→ 用户逐条确认/修改补强段落 → 进入阶段七
- 「仅接受高置信度」→ 自动接受置信度为"高"的段落,其余进入阶段七人工修改
阶段五·B产出物:
标书_v1_reinforced.docx(含修订标记的补强版)
评分项补强闭环报告.md
07_补强后评分项覆盖矩阵.md(score-response matrix,所有评分项 × 覆盖状态)
阶段七:修改与迭代(修改 Agent)
执行者:1个子Agent,使用 Agent 工具启动
Agent Prompt 模板:
你是投标标书修改专家。请根据以下评审意见修改标书。
【输入文件】标书_v1.docx
【评审意见】5份评审报告中的P0/P1/P2问题清单(已合并去重)
【修改要求】
1. P0问题:逐条必须修复,不得遗漏
2. P1问题:逐条修复,至少修复80%
3. P2问题:逐条评估,选择性修复(标注修复/不修复及理由)
4. 修改后重新合并排版
5. 在文档修订记录中注明版本号(v1→v2→...)
【需加载的Reference】
- references/technical_matching.md
- references/business_matching.md
- references/format_checklist.md
迭代循环规则:
- 阶段七输出
标书_vN.docx(N=当前轮数+1)
- 新版本重新进入阶段四(质检)→ 阶段五(评审)→ 阶段五·B(补强)
- 迭代最多3轮(即最多输出v4)
阶段七产出物:标书_vN.docx(N≥2)
迭代终止逻辑
满足以下任一条件即终止迭代,输出最终交付版:
| 条件 | 说明 |
|---|
| 加权总分 ≥ 95分 | 质量达标,直接交付 |
| 连续两轮总分提升 < 2分 | 边际收益递减,继续改无意义 |
| 达到最大迭代轮数(3轮) | 时间控制,强制输出当前最优版 |
| 所有评分项覆盖状态均为 ✅ | 零遗漏,补强已完成,无需再迭代(v3.0新增) |
满足终止条件后,精调Agent对最终版做一次格式终审(加载 references/format_checklist.md + references/risk_library.md 最终扫描),输出 标书_交付版.docx。然后进入阶段八(PDF拼合与交付组装)。
完整产出物清单
| 序号 | 文件名 | 产出阶段 | 说明 |
|---|
| 0 | 00_投标可行性预评估报告.md | 阶段〇(v3.0新增) | 资质匹配+风险初筛+时间评估+投标建议 |
| 1 | 01_招标要素清单.md | 阶段一 | 结构化招标要求提取 |
| 2 | 02_政策合规检查报告.md | 阶段一 | 逐项合规检查 + 废标风险初筛结果 |
| 3 | 03_章节Brief汇总.md | 阶段一 | MECE拆解后的N个章节Brief |
| 4 | 04_响应矩阵草稿.md | 阶段一 | 条款→响应章节映射 |
| 5 | 05_IMA检索结果汇总.md | 阶段二·A | 每章IMA知识库检索命中情况+覆盖率评估 |
| 6 | 06_AI生成内容清单.md | 阶段二·C | 逐章逐段列出AI生成内容,供人工审核确认 |
| 7 | 章节N_标题.md(N个) | 阶段二·D | N个Agent基于知识库优先编写的定稿章节 |
| 8 | 响应矩阵_完整版.md | 阶段三 | 条款→实际响应段落映射 |
| 9 | 技术偏离表.md | 阶段三 | 技术参数偏离说明 |
| 10 | 商务偏离表.md | 阶段三 | 商务条款偏离说明 |
| 11 | 质检报告.md | 阶段四 | 六道硬门槛检查结果(含风险库复检) |
| 12 | 评审A~E_报告.md(5份) | 阶段五 | 五维评审报告 |
| 13 | 评审计分汇总.md | 阶段五 | 加权总分+P0/P1/P2分级 |
| 14 | 标书_v1_reinforced.docx | 阶段五·B(v3.0新增) | 含补强段落的修订模式版 |
| 15 | 评分项补强闭环报告.md | 阶段五·B(v3.0新增) | 补强前后覆盖度 + 零遗漏审计结论 |
| 16 | 07_补强后评分项覆盖矩阵.md | 阶段五·B(v3.0新增) | 评分项 × 覆盖状态完整矩阵 |
| 17 | 标书_v1.docx | 阶段三 | 首版标书 |
| 18 | 标书_vN.docx | 阶段七 | 第N轮修改版 |
人工确认点
全流程共五个确认点(v3.1新增确认点#3),其余阶段完全自动运行:
| 确认点 | 时机 | 审核内容 | 操作 |
|---|
| 确认点 #0(v3.0新增) | 阶段〇完成后 | 投标可行性预评估报告(资质匹配/风险初筛/时间评估/投标建议) | 「继续投标」进入阶段一 / 「放弃」终止流程 |
| 确认点 #1 | 阶段一完成后 | 招标要素清单 + 政策合规检查报告 + 废标风险初筛结果 + 章节Brief + 响应矩阵草稿 | 「y 继续」进入编写 / 「n 修改框架」调整Brief |
| 确认点 #1.5 | 阶段二·C完成后 | AI生成内容清单(逐章逐段列出)+ 内容覆盖率报告 | 「全部确认」移除标记 / 「指定修改」仅重写指定段落 / 「全部重写」补充资料后重新执行阶段二·B |
| 确认点 #2 | 每轮阶段五完成后 | 5份评审报告 + 加权总分 + P0/P1/P2清单 | 「y 交付」输出最终版 / 「n 再改」进入阶段五·B补强 |
| 确认点 #2.5(v3.0新增) | 阶段五·B完成后 | 补强闭环报告 + 所有补强段落逐条审核 | 「全部接受」定稿 / 「逐条审核」逐一修改 / 「仅接受高置信度」自动接受可信段落 |
| 确认点 #3(v3.1新增) | 阶段八完成后 | 投标文件_完整版.pdf + 页码校验报告.md | 「确认交付」输出最终版 / 「调整拼合」修改插入清单重新拼合 |
质量标准(全流程守则)
- 零遗漏:响应矩阵必须覆盖招标文件每一条要求
- 零模糊:禁用"可能""大概""也许""应该""左右"等不确定用语
- 零雷同:严禁使用通用模板直接套用,必须贴合客户行业和具体需求
- 零幻觉:所有事实/数据/案例优先从IMA知识库中检索真实素材。无知识库支撑的内容标注「AI辅助生成,需人工核实」,阶段二·C中集中审核确认
- 必确认:证书编号、报价金额、签章要求、授权有效期、案例合同号——标注「⚠️ 需人工确认」
- 可视化:架构图用Mermaid代码生成,进度计划用甘特图,数据对比用表格
- 一致性:同一数据在全文中出现必须一致(报价、人员姓名、时间、编号)
执行注意事项
并行编排规则
- 阶段二:N个章节编写Agent必须同时并行启动(一次
Agent 工具调用中发送N个),不得串行逐个启动
- 阶段五:5个评审Agent必须同时并行启动,不得串行逐个启动
- 启动前确保所有前置文件已就绪,避免Agent之间的文件依赖
Agent上下文管理
- 每个章节编写Agent拥有独立上下文,互不干扰
- 编写Agent不依赖其他章节内容,完全基于本章Brief工作
- 合稿Agent负责解决章节间的交叉引用和一致性
错误处理
- 任一章节编写Agent超时或失败 → 重新启动该Agent(不重跑成功的Agent)
- 阶段四质检不通过 → 仅打回不通过的章节编写Agent,通过的保留
- 连续2次打回同一章节 → 主Agent介入分析原因,调整Brief后重试
资源加载
- 各Agent按需加载references/下的参考文档,不提前全量加载
- 阶段〇:加载
references/risk_library.md 中的「投标准入类」模式(v3.0新增)
- 阶段一·步骤4:加载
references/risk_library.md 全量模式库(v3.0新增)
- 阶段二·A前:主Agent需先检查
ima-mcp 连接状态。若已连接,使用 mcp__ima-mcp__* 系列工具检索知识库;若未连接,尝试 mcp__lexiang__* 作为备选
- 阶段二·B(v3.1新增):法务标书时,章节编写Agent加载
references/legal_service_proposal_guide.md 对应模块作为编写规范
- 合稿Agent加载
format_checklist.md + assets/bid_document_template.md — v2.2 废弃:合稿不再由子Agent执行,由主Agent直接对照招标文件模板生成
- 质检Agent加载
format_checklist.md + references/risk_library.md(v3.0新增)
- 评审Agent加载
review_checklist.md;评审B(技术深度)参考 references/legal_service_proposal_guide.md(v3.1新增)
- 阶段五·B(v3.0新增):主Agent加载
references/risk_library.md 做补强合规校验
模板数据字典(DATA)
v2.2 新增:合稿前必须在主Agent上下文中构建 DATA 字典,所有 [模板] 章节的占位符从此字典取值:
DATA = {
# 项目信息
'project_no': '招标编号',
'project_name': '项目全称',
# 供应商信息
'supplier_name': '供应商全称(与公章一致)',
'supplier_addr': '注册地址',
'supplier_tel': '联系电话',
'supplier_fax': '传真',
'supplier_bank': '开户银行',
'supplier_account': '银行账号',
# 人员信息(⚠️ 需用户提供)
'legal_rep_name': '法定代表人姓名',
'legal_rep_title': '法定代表人职务',
'auth_rep_name': '被授权代表姓名',
'auth_rep_title': '被授权代表职务',
# 报价信息
'price_small': '¥XXX.00',
'price_big': '大写金额',
# 其他
'service_time': '服务期限',
'valid_days': '投标有效期(天)',
'quality': '质量标准',
}
阶段八:PDF 拼合与交付组装(v3.1 新增)
核心理念:标书不只是 .docx 文字稿——最终要交付的是一份按目录顺序排列的完整 PDF,包含模板材料 + 服务方案 + 证明材料。
为什么需要阶段八
v2.2 及之前版本的工作流止步于「生成 .docx → 人工在 WPS 中排版 → 人工插入扫描件」。但这有三个致命问题:
- 人工拼合容易出错:扫描件插入的页码位置、顺序、份数全靠人工记忆,遗漏一个附件 = 废标
- 无法复用:每次投标都要重新走一遍"打印 .docx → 打印扫描件 → 手动合并装订"流程
- 不符合用户需求:用户明确要求"把模板材料和服务方案拼成 PDF,再将证明材料以 PDF 形式按目录合并进去"
阶段八的定位
阶段八不是取代物理装订(盖章、签字、密封仍然是人工操作),而是把到达装订台之前的所有文档编排工作自动化。输出的是一个可直接打印的完整 PDF,人工只需要盖章签字装订。
前置条件
- 阶段七修改迭代已完成,
标书_vN.docx 已定稿
- 用户已准备所有证明材料文件(PDF/图片格式)
- 本机已安装
python-docx 和 PyPDF2(或 pypdf)
执行流程
步骤 1:生成结构化插入清单(JSON)
执行者:主Agent
从阶段一的 03_章节Brief汇总.md 和 04_响应矩阵草稿.md 中,提取所有需要插入扫描件的节点,生成机器可读的插入清单:
{
"project_name": "XX项目法律顾问服务投标文件",
"toc_order": [
{"section": "封面", "source": "generate", "page": "auto"},
{"section": "目录", "source": "generate", "page": "auto"},
{"section": "一、磋商申请及声明", "source": "template", "file": "标书_vN.docx", "pages": "1-3"},
{"section": "二、法定代表人授权委托书", "source": "template", "file": "标书_vN.docx", "pages": "4-5"},
{"section": "三、磋商一览表", "source": "template", "file": "标书_vN.docx", "pages": "6"},
{"section": "四、细目报价表", "source": "template", "file": "标书_vN.docx", "pages": "7-8"},
{"section": "五、资格证明文件", "source": "mixed", "children": [
{"subsection": "5.1 营业执照副本", "source": "scan", "file": "证明材料/营业执照.pdf", "pages": 1},
{"subsection": "5.2 律师事务所执业许可证", "source": "scan", "file": "证明材料/执业许可证.pdf", "pages": 1},
{"subsection": "5.3 承诺书(格式一/格式二)", "source": "template", "file": "标书_vN.docx", "pages": "9-10"},
{"subsection": "5.4 无重大违法记录声明", "source": "template", "file": "标书_vN.docx", "pages": "11"}
]},
{"section": "六、补充证明文件(类似业绩)", "source": "mixed", "children": [
{"subsection": "6.1 类似业绩表(格式三)", "source": "template", "file": "标书_vN.docx", "pages": "12"},
{"subsection": "6.2 业绩合同复印件 — 项目1", "source": "scan", "file": "证明材料/业绩合同_项目1.pdf"},
{"subsection": "6.2 业绩合同复印件 — 项目2", "source": "scan", "file": "证明材料/业绩合同_项目2.pdf"}
]},
{"section": "七~八、偏离表", "source": "template", "file": "标书_vN.docx", "pages": "13-15"},
{"section": "九、服务方案", "source": "free", "file": "标书_vN.docx", "pages": "16-50"},
{"section": "十、人员配置", "source": "mixed", "children": [
{"subsection": "10.1 人员配置表(格式十)", "source": "template", "file": "标书_vN.docx", "pages": "51"},
{"subsection": "10.2 律师执业证复印件", "source": "scan", "file": "证明材料/律师证_张律师.pdf"},
{"subsection": "10.2 律师执业证复印件", "source": "scan", "file": "证明材料/律师证_李四.pdf"}
]},
{"section": "十一、质量保证措施与承诺", "source": "free", "file": "标书_vN.docx", "pages": "52-58"},
{"section": "十二、其他", "source": "free", "file": "标书_vN.docx", "pages": "59-60"}
],
"scan_files": [
{"path": "证明材料/营业执照.pdf", "description": "营业执照副本复印件(加盖公章)"},
{"path": "证明材料/执业许可证.pdf", "description": "律师事务所执业许可证副本复印件"},
{"path": "证明材料/业绩合同_项目1.pdf", "description": "XX公司法律顾问服务合同"},
{"path": "证明材料/律师证_张律师.pdf", "description": "张律师执业证复印件"},
{"path": "证明材料/律师证_李四.pdf", "description": "李四律师执业证复印件"}
]
}
产出物:08_插入清单.json
步骤 2:服务方案 DOCX → PDF
执行者:主Agent(使用 python-docx + 系统打印服务)
# macOS 使用 cupsfilter 或 libreoffice 将 docx 转为 PDF
# 优先使用 libreoffice(排版保真度最高)
libreoffice --headless --convert-to pdf 标书_vN.docx --outdir ./output/
如果 libreoffice 不可用,回退方案:使用 python-docx 逐页读取并通过 macOS 原生打印服务生成 PDF。
产出物:output/标书_vN.pdf
步骤 3:按目录顺序拼合 PDF
执行者:主Agent(使用 PyPDF2/pypdf)
python3 scripts/pdf_assembler.py --manifest 08_插入清单.json --output 投标文件_完整版.pdf
pdf_assembler.py 的实现逻辑:
- 读取
08_插入清单.json 中的 toc_order
- 遍历每个条目:
source: "template" 或 source: "free" → 从 标书_vN.pdf 中提取指定页码范围
source: "scan" → 读取独立的证明材料 PDF 文件
source: "mixed" → 递归处理 children
- 按顺序合并所有页面
- 自动生成目录页(可选,基于 toc_order 结构)
- 添加统一页码(从封面之后开始编号)
产出物:投标文件_完整版.pdf
步骤 4:页码与目录校验
执行者:主Agent
- 打开
投标文件_完整版.pdf,核对总页数
- 逐章核对页码范围是否与插入清单一致
- 核对:封面无页码、目录页使用独立页码、正文从第1页开始
产出物:页码校验报告.md
步骤 5:最终完整性检查
对照风险库做最后一轮完整性扫描:
- 文件清单是否齐全(对照
04_响应矩阵草稿.md 的附件清单)
- 签章页是否均在位(无遗漏、无错位)
- 证明材料是否全部插入(对照
08_插入清单.json 的 scan_files 列表)
⚠️ 人工确认点 #3(v3.1新增):将 投标文件_完整版.pdf + 页码校验报告.md 呈现给用户。用户审核后:
- 「确认交付」→ 输出最终交付版
- 「调整拼合」→ 修改
08_插入清单.json,重新执行步骤 3-4
阶段八产出物:
08_插入清单.json(结构化插入清单)
output/标书_vN.pdf(文字层 PDF)
投标文件_完整版.pdf(最终交付版,含所有扫描件)
页码校验报告.md
阶段八的技术边界
| Skill 做的事 | Skill 不做的事 |
|---|
| ✅ 生成结构化插入清单(JSON) | ❌ 物理打印(激光/喷墨打印) |
| ✅ DOCX → PDF 自动转换 | ❌ 盖章(物理印章) |
| ✅ 按目录顺序程序化拼合 PDF | ❌ 手签字 |
| ✅ 自动生成目录页 | ❌ 装订(胶装/线装) |
| ✅ 页码自动编排 | ❌ 密封 |
| ✅ 证明材料完整性校验 | ❌ 快递/递交 |
原因:盖章、签字、装订、密封是法律要求的物理操作,无法被代码替代。阶段八的目标是把到达装订台之前的所有编排工作自动化,人工拿到 投标文件_完整版.pdf 后只需要打印→盖章→签字→装订→密封五步物理操作。
实战案例:某法律顾问标书(v2.2 教训来源)
项目背景
- 项目:XX市XX局2025年法律顾问服务采购(竞争性磋商)
- 评分:价格20 + 业绩9 + 人员10 + 服务方案61 = 100分
- 投标人:某律师事务所
v1 → v2 → v3 迭代教训
| 版本 | 错误 | 根因 | 修正 |
|---|
| v1 | 全文用 add_paragraph 新写,细目报价表5列(缺单价)、偏离表4列(缺偏离情况) | 未对照模板,自行设计表格结构 | — |
| v2 | 磋商申请"5、一旦我方成交"写成"5. 一旦我方成交"(英文句号) | 合稿时重写了模板句式 | v3 改为中文顿号 |
| v2 | 磋商申请报价行"3. 我们的总报价为(大写)..."被改写为"3. 采购包1总价...采购包2总价..." | 改变了模板句式 | v3 保留模板句式 |
| v2 | 签章行预填了供应商名称 | 混淆了"填空"和"代签" | v3 签章行留白 |
| v1-v3 | Mermaid 图无法自动渲染进 DOCX | python-docx 不支持 Mermaid | v2.2修正:npm install -g @mermaid-js/mermaid-cli 后通过 mmdc 本地渲染为 PNG,自动插入 .docx |
核心结论
招标文件第五章不是"排版建议",是"答题卡"。你改一个字,评委就多一个扣分理由。29项废标情形第8项明确写道:"未按磋商文件规定的格式、内容和要求填写制作的"——直接无效。
资源文件
references/ —— 参考文档(按需加载)
| 文件 | 用途 | 加载者 |
|---|
policy_checklist.md | 政策法规合规检查清单(6大类检查:法律依据、主体资格、专业资质、政府采购政策、禁止性条款、检查报告模板) | 总调度(阶段一) |
risk_library.md | v3.0新增 法务/服务类标书废标风险库(投标前准入筛查 + 46条高频废标风险模式 + 形式要件检查项 + 资质有效期检查规则 + 报价一致性校验规则)。按"投标准入 / 形式要件 / 资质有效期 / 报价校验 / 签章留白"五大类组织,每条含风险编号、触发条件、后果等级、规避措施 | 总调度(阶段一·步骤4)、质检Agent(阶段四·门槛6)、终审(迭代终止后) |
legal_service_proposal_guide.md | v3.1新增 法务服务方案编写指南(法务标书评分逻辑、6大标准模块结构、语言风格规范、量化要求、高频废标陷阱、不同采购类型差异化策略、服务方案自查清单)。替代通用 technical_matching.md 的法务适用部分 | 章节编写Agent(阶段二·B,并行编写时按需加载对应模块)、评审Agent B(阶段五,技术深度评审参考) |
technical_matching.md | 技术匹配指南(编写原则、盲评满分8要素、参数响应方法、偏离表规范、13章工程结构、可视化要求、自查表) | 章节编写Agent、合稿Agent、修改Agent |
business_matching.md | 商务匹配指南(报价策略、商务偏离表规范、售后承诺要素、业绩证明4要素、10大废标原因、自查清单) | 章节编写Agent、合稿Agent、修改Agent |
format_checklist.md | 格式检查清单(字体段落、页面设置、图表规范、PDF规范、一致性检查、六道硬门槛、终审签字确认) | 合稿Agent、质检Agent、修改Agent |
review_checklist.md | 评审标准与得分规则(5个评审维度详细标准、P0/P1/P2分级规则、加权计分公式、评审报告模板、PDCA-Act补强触发条件) | 评审Agent A~E(阶段五) |
外部依赖(需用户在WorkBuddy中提前连接)
| 服务 | 状态要求 | 用途 | 使用阶段 |
|---|
IMA知识库 (ima-mcp) | 需连接 | 阶段二·A中检索公司资料/技术方案/案例,为章节编写提供真实素材 | 阶段二·A |
乐享知识库 (lexiang) | 备选(IMA不可用时) | 与IMA功能相似,作为IMA未连接时的替代知识库 | 阶段二·A(回退) |
scripts/ —— 可执行脚本
| 文件 | 用途 |
|---|
response_matrix_generator.py | 生成响应矩阵Excel文件(输入招标要素JSON+公司能力库→条款→响应映射表) |
checklist_generator.py | 生成格式检查清单Markdown文件(内容检查+格式检查+一致性检查) |
pdf_assembler.py | v3.1新增 PDF拼合脚本(读取 08_插入清单.json → 按目录顺序合并 DOCX 导出的 PDF 与扫描件 PDF → 输出 投标文件_完整版.pdf)。依赖 PyPDF2/pypdf |
assets/ —— 模板资源
| 文件 | 用途 |
|---|
bid_document_template.md | 完整标书文档结构模板(按标准标书章节组织,合稿Agent加载) |
快速启动示例
用户说「帮我写XX项目的投标文件」,主Agent的执行序列:
- 确认招标文件已提供
- 执行阶段〇(v3.0新增):解析招标文件 → 资质匹配预检 + 风险初筛 → 输出
00_投标可行性预评估报告.md → 等待用户确认「继续」/「放弃」
- 用户确认继续 → 执行阶段一(招标解析+政策预检+风险库扫描+MECE拆解+章节Brief)
- 输出4份文件 → 等待用户确认(确认点#1)
- 用户确认后 → 执行阶段二·A(IMA知识库预检索)→ 输出
05_IMA检索结果汇总.md
- 并行启动N个章节编写Agent(阶段二·B,知识库优先)→ 输出含溯源标记的章节初稿
- 扫描提取所有AI生成段落 → 生成
06_AI生成内容清单.md → 等待用户确认(确认点#1.5)
- 用户确认后 → 移除AI标记 → 定稿章节文件(阶段二·D)
- 执行阶段三(模板/自由双轨合稿)→ 输出标书v1
- 质检通过(六道硬门槛,含风险库复检)→ 并行启动5个评审Agent(阶段五)→ 加权计分
- 输出评审汇总 → 等待用户确认(确认点#2)
- 用户选择「交付」→ 格式终审 → 输出交付版
- 用户选择「再改」→ 进入阶段五·B(v3.0新增):评分项闭环补强PDCA-Act → 诊断覆盖度 → 生成补强段落 → 修订模式注入成稿 → 输出补强闭环报告 → 等待用户确认(确认点#2.5)
- 进入阶段七(修改迭代)→ 回到步骤10
- 执行阶段八(v3.1新增):PDF拼合与交付组装 → 生成插入清单JSON → DOCX转PDF → 按目录拼合 → 页码校验 → 等待用户确认(确认点#3)→ 输出
投标文件_完整版.pdf