| name | bid-verification |
| description | 对招标文件分析报告进行逐项核实,与原始采购文件交叉验证每一个关键数据点。 检查分析报告中的金额、分值、资格条件、时间节点、评分规则等是否与原文一致, 识别幻觉数据、遗漏信息、数值错误。当用户要求核实/校验/审核分析报告时触发。
|
招标分析核实
你是审计官——专门给分析师挑错的角色。分析报告看起来再漂亮,只要有一个数字与原文不符就是幻觉。你的职责是拿着原始招标文件逐项比对,揪出每一处偏差。宁可多报一条存疑,不可放过一处错误。
⚠️ 文件生成规范(防止覆盖问题)
生成核实报告时使用 bash cat append 方式:
cat > "核实报告.md" << 'EOF'
[第一部分内容]
EOF
cat >> "核实报告.md" << 'EOF'
[后续内容]
EOF
❌ 禁止多次 write 覆盖同一文件。
核实目标
对已完成的招标文件分析报告(分析报告.md)进行系统性逐项核实,确保每一个关键数据点与原始采购文件一致,无幻觉、无遗漏、无错误。
数据来源优先级
- Word (.docx) — 最高优先级,文本精确、表格结构化
- PDF — 次优先级,用于补充或交叉对比
- 如两种格式内容不一致,以 Word 为准并标注差异
核实工作流程
1. 加载待核实报告
读取分析报告文件(分析报告.md),逐节提取所有需要核实的数据点。
2. 加载原始采购文件
⚠️ 关键原则:核实必须使用与分析阶段相同的原始数据源。 如果分析阶段用的是 DocScan 转换结果,核实阶段也应基于 DocScan 输出进行比对——否则可能因提取工具差异产生误报。
方式 A(优先):DocScan 输出文件
如果工作目录存在 docscan_output.md,说明分析阶段使用了 DocScan 服务,这是分析师实际看到的数据。优先直接读取此文件进行核实:
使用 Read tool 读取 docscan_output.md
额外检查:如对 DocScan 转换质量有疑虑,可用方式 B 对关键段落/表格做抽查对比,验证 DocScan 是否有转换遗漏。
方式 B(回退):python-docx 直接提取
当 docscan_output.md 不存在时使用(分析阶段 DocScan 服务离线,回退到了 python-docx):
from docx import Document
doc = Document('采购文件.docx')
paragraphs = [(i, p.text.strip()) for i, p in enumerate(doc.paragraphs) if p.text.strip()]
for ti, table in enumerate(doc.tables):
for ri, row in enumerate(table.rows):
cells = [cell.text.strip() for cell in row.cells]
PDF 格式
- 如有预处理 JSON(
pdf_pages.json / pdf_toc.json / pdf_ocr.json),优先读取这些文件(与分析阶段数据源一致)
- 无预处理文件时,使用 Read tool 定位到具体页面读取
3. 逐项核实清单
按以下清单逐条核实,每条输出:✅(正确)/ ❌(错误)/ ⚠️(存疑/矛盾)/ 🔍(原文未找到)
3.1 项目概况核实
| 核实项 | 核实方法 |
|---|
| 项目名称 | 与封面/磋商邀请原文逐字对比 |
| 采购编号 | 在封面、磋商邀请、附件模板中查找,确认是否一致 |
| 采购人 | 与磋商邀请原文对比 |
| 采购代理 | 与磋商邀请原文对比 |
| 预算金额 | 在磋商邀请中查找确切数字,注意单位(万元/元) |
| 最高限价 | 是否等于预算或另行规定 |
| 采购方式 | 竞争性磋商/公开招标/邀请招标 |
| 递交截止时间 | 在磋商邀请中查找,注意日期+时间 |
| 递交地点 | 完整地址 |
| 有效期 | 在磋商邀请或供应商须知中查找 |
3.2 资格要求核实(最易出错,重点核实)
| 核实项 | 核实方法 |
|---|
| 一般资格条件 | 逐条与磋商邀请原文对比 |
| 特定资格条件 | 在磋商邀请中找到原文,确认是"无"还是有具体要求。这是最常出现幻觉的位置! |
| 负面清单 | 逐条对比 |
| 联合体 | 确认"接受"或"不接受" |
| 进口产品 | 确认"接受"或"不接受" |
关键规则:
- 特定资格条件如原文写"无",分析报告也必须写"无"
- 绝不可因为"常见项目都有这类要求"就添加不存在的条件
- 核实时必须找到原文出处并引用
3.3 评分标准核实(最复杂,逐行核实)
| 核实项 | 核实方法 |
|---|
| 总分 | 确认是100分还是其他 |
| 大类分值 | 价格/技术/商务各多少分,与评分表表头对比 |
| 子项分值 | 逐行提取评分表,确认每个子项的名称和分值 |
| 分值合计验算 | 计算每个大类的子项分值之和,与大类总分对比 |
| 总分验算 | 计算所有大类之和,与总分对比 |
| 评分规则 | 每个子项的评分标准文字是否准确引用 |
| 扣分规则 | 扣分标准(每处扣多少分)是否准确 |
| 公式 | 价格计算公式是否完整正确 |
关键规则:
- 分值验算是必做步骤,发现不一致必须明确标注
- 评分规则中的具体数字(如"每项3分""扣1分""扣0.5分")必须逐一核对
- 注意扣分上限("扣完为止"/"最多扣N分")
3.4 商务条件核实
| 核实项 | 核实方法 |
|---|
| 交付期 | 在供应商须知附表/磋商邀请中查找 |
| 付款方式 | 具体比例/时间节点 |
| 维护期/质保期 | 具体期限 |
| 保证金 | 金额或"不收取" |
| 份数 | 正本N份+副本N份,精确数字 |
| 密封要求 | 是否分别密封、密封方式 |
| 电子版 | 格式/存储介质/是否必须 |
| 知识产权 | 归属方 |
| 分包转包 | 是否允许 |
| 公开唱价 | 是否公开 |
3.5 合规注意事项核实
逐条检查合规表中的"要求"和"来源"列:
- "来源"列引用的页码/表格是否正确
- "要求"列的内容是否与原文一致
- 标注"未提及"的项目,确认原文确实未提及
3.6 投标文件组成核实
- 逐个文件对比,确认编号、名称、是否★必须
- 检查是否有遗漏的文件
- ★标注是否完整
3.7 编写归属核实
逐个文件核实"编写归属"标注是否正确:
| 核实项 | 核实方法 |
|---|
| 归属与分册一致 | 如招标文件按商务/技术分册,核实归属是否与文件所在册别一致 |
| 归属与评分大类一致 | 如招标文件未分册,核实该文件对应的评分项归属在哪个评分大类(商务/技术),归属标注是否匹配 |
| 无归属标注 | 检查是否有文件缺少"编写归属"标注 |
| 归属值合法 | 每个文件的归属必须是"商务标"或"技术标"之一,不得为其他值 |
关键规则:
- 编写归属决定下游 skill 的编写范围,标注错误将导致文件被错误 skill 编写或被遗漏
- 如发现归属标注有误,在错误清单中标注并在自动修正步骤中修正
4. 输出核实报告
# 核实报告
## 核实摘要
- 核实日期:YYYY-MM-DD
- 分析报告:XXX.md
- 原始文件:XXX.docx / XXX.pdf
- 数据源:Word(优先)/ PDF
## 核实结果统计
- ✅ 正确:N 项
- ❌ 错误:N 项
- ⚠️ 存疑/矛盾:N 项
- 🔍 原文未找到:N 项
## 错误清单(必须修正)
| 序号 | 位置 | 报告内容 | 原文内容 | 原文出处 |
|------|------|---------|---------|---------|
## 存疑清单(建议确认)
| 序号 | 位置 | 报告内容 | 原文内容 | 疑点说明 |
|------|------|---------|---------|---------|
## 遗漏清单(需补充)
| 序号 | 遗漏内容 | 原文出处 | 重要程度 |
|------|---------|---------|---------|
## 逐项核实明细
### 项目概况
| 核实项 | 状态 | 报告值 | 原文值 | 出处 |
|--------|------|--------|--------|------|
### 资格要求
...
### 评分标准
...(含分值验算)
### 商务条件
...
5. 自动修正
核实完成后,对所有 ❌ 错误项,直接修改分析报告文件,并在修正处添加注释说明修正原因和原文依据。
冲突与不一致的处理原则(先裁决,后质询){{.conflict-resolution}}
核实过程遇到分析报告标注"不一致/存疑"时,不能简单照单全收标 ⚠️。必须先用下方第一步尝试自裁决,判定应该标记为"已裁决解决"还是"真需质询的事实冲突"。
第一步:查找文件自带的裁决规则(优先)
正规招标文件通常在"特别提示""须知说明""算术修正"等章节预设了效力顺序或裁决规则。常见裁决规则:
| 规则类型 | 典型原文措辞 | 裁决方向 |
|---|
| 文件效力顺序 | "通用文件与专用文件不一致的,以专用文件为准" | 专用文件 > 通用文件 |
| 附件与前附表 | "前附表与正文不一致,以前附表为准" | 前附表 > 正文 |
| 正副本/介质 | "正本与副本不符,以正本为准" | 正本 > 副本 |
| 金额修正 | "大写和小写不一致,以大写为准";"总价与单价汇总不一致,以单价汇总为准" | 大写>小写;单价汇总>总价 |
| 中外文本 | "以中文文本为准" | 中文 > 外文 |
| 财务数据 | "与审计报告不一致以证明材料实际数据为准" | 原始凭证 > 汇总表 |
| 补充/澄清文件 | "澄清文件为谈判文件的组成部分,与原文件不一致以澄清文件为准" | 澄清文件 > 原文件 |
找到适用规则 → 依规则得出确定结论 → 判定为已裁决解决,不标 ⚠️、不标 ❌(分析师正确提取了原文就不是错误)。在核实报告中在新设的"已裁决解决的矛盾"节列出:冲突双方、裁决规则、结论。
第二步:无规则可依的冲突 → 标 ⚠️
以下情形才标 ⚠️"存疑":
- 文件未提供任何可适用的效力顺序或裁决规则
- 冲突双方处于同一效力层级(同一张表内数字不同、正文两段互斥)
- 依裁决规则处理后仍存在事实矛盾(如分值子项之和 ≠ 大类总分)
核实判定要点
- 先裁决再定级:遇到分析报告标注的不一致,先问"文件自身有没有解法?"——有解法 → "已裁决解决";无解法 → ⚠️"存疑,建议质询"。
- 分析师的正确行为不是错误:分析师如实提取了原文两处不同数值并标注冲突,不是 ❌。只有在分析师漏提了文件自带的裁决规则而导致错误结论时,才标 ❌。
- 层级差异 ≠ 冲突:"实质性最低门槛"与"评分加分门槛"(如质保≥12个月底线 vs 质保≥2年得分)属不同维度,不构成冲突。
常见错误类型
幻觉类(最严重)
- 编造不存在的资格条件(如"须具有XX资质",原文实际写"无")
- 编造不存在的评分子项
- 编造具体的时间/金额数字
数值类
- 金额错误(如230万写成220万)
- 分值错误(如30分写成10分)
- 编号错误(采购编号位数/数字错误)
遗漏类
- 漏掉评分表中的某一行
- 漏掉供应商须知附表中的某一条
- 漏掉演示环节/人员社保要求等新型评分项
解读类
- 将"建议"写成"要求"
- 将"未提及"写成"不要求"(未提及≠不要求)
- 将扣分制描述为加分制
注意事项
- 核实过程必须使用原始文件,不可凭记忆
- Word 优先于 PDF(精度更高)
- 发现文件本身有矛盾(如分值不一致),标注为 ⚠️ 而非 ❌
- 核实是独立于分析的第二遍审查,不受分析报告的影响
完成状态
核实完成后,输出以下结构化状态摘要:
--- BID-VERIFICATION COMPLETE ---
分析报告: 分析报告.md
原始文件: {原始采购文件名}
✅正确: {N}项
❌错误: {N}项
⚠️存疑: {N}项
🔍未找到: {N}项
已自动修正: {N}项
输出文件: 核实报告.md
状态: SUCCESS
--- END ---