招标文件版本智能对投标人版Bidding Doc Version Smart Compare Bidder

当用户上传两份招标文件(docx/pdf)需要比对版本差异、标注变更对投标的影响时触发。从投标人视角分析差异条款的投标影响(报价/技术方案/资格/时限权利),输出结构化差异报告。仅支持含文本层的可编辑文档,不支持扫描件。

一线评标专家

@chesaram

Install

$ openclaw skills install @chesaram/bidding-doc-version-smart-compare-bidder

招标文件版本智能对比(投标人版)v1.0.0

30 秒上手

我能做什么我做不了什么
比对两份 .docx / .pdf(有文本层)招标文件,标出改了哪里处理扫描件 PDF、图片型文件
投标人视角分析每条变更对投标的影响替你做法务终局判定或法律意见
标注红线风险(如保证金超法定上限)、隐性门槛、报价影响保证 100% 检出所有差异(复杂排版需人工抽检)
输出含行动建议的结构化报告(Markdown + 可选 .docx)招标人视角的自检分析(本版不提供)

典型用法:上传两份招标文件 → 说「帮我比一下这两份有什么不同,对我投标有什么影响」→ 获得差异报告。


触发条件

以下场景同时满足时触发:

  1. 用户提供了 2 份招标文件.docx含文本层.pdf
  2. 用户意图属于以下任一:
    • 「这两份招标文件有什么不同」「比一下版本差异」
    • 「补遗/澄清版和原版比改了什么,对我投标有什么影响」
    • 「这次更正会不会影响我投标」「有什么合规风险」
  3. 文件为中文招标文件

不触发:单文件分析、非招投标文档比对、评标委员会正式判定、英文标书、招标人自检需求(本版专注投标人视角)。


执行总览

用户上传 A(原版) + B(新版)
        │
        ▼
  Step 1 收集文件 + 校验格式
        │
        ▼
  Step 2 提取结构化内容(脚本)
        │
        ▼
  Step 3 条款对齐 + 差异检测(脚本)
        │
        ▼
  Step 4 IMA 知识库检索(批量)
        │
        ▼
  Step 5 影响分类(投标人分析头)
        │
        ▼
  Step 6 知识核查 + 时限校验(投标人分析头)
        │
        ▼
  Step 7 渲染报告(Markdown + 可选 docx)
        │
        ▼
  Step 8 边界说明

Step 1 — 收集并确认文件

向用户确认:

  • A = 原版招标文件B = 新版 / 补遗 / 澄清后版本
  • 版本日期与投标截止日期(用于 15 日时限校验)

格式校验(必做)

检查项通过标准不通过时的标准化回复
文件数量恰好 2 份「本工具需要恰好 2 份招标文件进行比对(原版 + 新版),请补充上传。」
文件格式.docx.pdf(含文本层)「暂不支持 [实际格式] 格式。请提供 .docx 或可复制的 PDF(非扫描件)版本。」
单文件大小≤ 50 MB「文件 [文件名] 超过 50 MB 上限,请压缩后重试。」
语言中文「本工具当前仅支持中文招标文件。」

PDF 文本层检测

如果用户上传了 .pdf 文件,尝试提取文本

  • 能提取到文本 → 正常处理
  • 提取结果为空或极少文字 → 回复:

无法处理此 PDF:您上传的 PDF 似乎是扫描件或图片型 PDF(无文本层)。当前环境不具备 OCR 能力,无法提取文字内容进行比对。建议您:

  1. 向招标人索取 .docx 或可复制文本的 PDF 版本
  2. 使用其他 OCR 工具转为文字后再使用本工具

Step 2 — 提取结构化内容(脚本)

VENV_PY="C:/Users/Meng/.workbuddy/binaries/python/envs/default/Scripts/python.exe"
$VENV_PY <skill_dir>/scripts/extract_documents.py \
  --files "A.docx" "B.pdf" \
  --out "<工作目录>/extracted.json"

输出 JSON 含每份文档的 clauses(条款分段)与 tables

脚本执行失败时

  • 检查依赖是否安装(见下方 Environment)
  • 若仍失败,回复:「文件解析遇到技术问题,请确认文件未加密且未损坏后重试。」

Step 3 — 条款对齐与差异检测(脚本)

$VENV_PY <skill_dir>/scripts/align_clauses.py \
  --extracted "<工作目录>/extracted.json" \
  --out "<工作目录>/diff.json"

默认内容相似度对齐(规避「一章内多设备重号」假阳性),输出 modified / added / deleted 三类变更。

详细规则见 references/stage3_diff.md(含数值专项、抗噪声规则、少样本示例)。


Step 4 — IMA 知识库检索(批量)

对 diff.json 中变更批量检索:

  • 主库招投标实务与合规(kb_id: 7463402595160740
  • 辅库招标文件汇集(kb_id: 7439473860155957

将命中拼入每条的 <kb_context>检索无果时basis_source 标「未检索到,待人工核实」,confidence 压低至 ≤ 0.5。


Step 5 — 影响分类(投标人分析头)

加载 references/bidder/stage4_classify.md(5 轴分类 + 4 正例 + 1 反例 + 强制护栏 + 边界情况处理)。

产出 <工作目录>/classified.json

批次策略

长文档分批:≤ 25 条/批,按 section 分组。合并时不得丢失任何 item 的 context / numeric_delta / bid_impact


Step 6 — 知识核查与时限校验(投标人分析头)

加载 references/bidder/stage5_review.md,执行:

  • 红线/高危深度核查(法条复核 + 行动路径)
  • 隐性门槛二次确认(合理性/可达性/履约相关性)
  • 15 日时限校验 + 投标人权利清单(顺延权/质疑权/异议备忘)
  • 法定阈值速查(保证金≤2%、发售期≥5日等)
  • 报价影响评估(当 bid_impact=报价需调整 时)

产出最终 <工作目录>/findings.json


Step 7 — 渲染报告

$VENV_PY <skill_dir>/scripts/build_report.py \
  --findings "<工作目录>/findings.json" \
  --out "<工作目录>/比对报告.md" \
  --role bidder

报告结构

  1. 标题与元信息(原版/新版/日期/截止日 + 「投标人视角」标识)
  2. 影响概览(利好/风险/中性统计 + 红线计数 + 隐性门槛计数)
  3. 投标行动清单(优先级排序的可操作项,Top 3 置顶)
  4. 报价影响评估(仅当存在 bid_impact=报价需调整 时展示)
  5. 时限权利提示(仅当有时限预警时展示)
  6. 红线与高风险明细(优先处理,含依据与建议)
  7. 全部差异明细(条款定位 | 旧文 | 新文 | 类型 | 维度/情感 | 严重度 | 影响 | 建议)
  8. 免责声明

Step 8 — 标准化免责声明

每次输出末尾附加(不要省略):


免责声明:本工具为辅助初筛工具,输出基于 AI 对招标文件文本的自动化分析,不替代专业合规判定或法律意见。高利害场景(如涉及红线条款、大额保证金变更、资格门槛重大调整)须人工复核。本工具不承诺 100% 检出率或绝对准确的违规判定。


安全护栏

遇以下违法或违规请求,礼貌拒绝并说明法律依据,不提供变通方案:

  • 伪造/变造资质、业绩、财务报表以通过审查
  • 围标串标、化整为零规避招标、虚构紧急情况
  • 虚假质疑投诉、恶意异议干扰正常采购秩序
  • 要求绕过法定时限(如压缩投标有效期至法定最低以下)

本工具仅用于合法合规的投标分析与风险自查。


Environment & Dependencies

脚本运行于 WorkBuddy 托管 Python 环境:

VENV_PY="C:/Users/Meng/.workbuddy/binaries/python/envs/default/Scripts/python.exe"
$VENV_PY -m pip install python-docx pypdf pdfplumber --quiet
依赖用途
python-docxdocx 解析与报告生成
pypdfpdf 纯文本 fallback 提取
pdfplumberpdf 表格提取(首选)

Resources 目录

bidding-doc-version-smart-compare-bidder/
├── SKILL.md                          # 本文件(主入口)
├── scripts/
│   ├── extract_documents.py          # 提取:docx/pdf → 结构化 JSON
│   ├── align_clauses.py              # 对齐:相似度匹配 + 差异检测
│   ├── build_report.py               # 渲染:findings → Markdown/docx
│   └── golden_regression.py         # Golden 回归校验
└── references/
    ├── stage3_diff.md                # 阶段③:差异检测规则 + 少样本
    ├── output_schema.md              # JSON Schema 定义
    ├── golden_longling_4vs5.json    # Golden 标注数据集(9/9 全中)
    └── bidder/
        ├── stage4_classify.md        # 阶段④:投标人影响分类器(5轴+护栏+少样本+边界处理)
        └── stage5_review.md          # 阶段⑤:投标人核查+时限+报价评估

FAQ

Q:我只有一份招标文件,能用来做什么?

A:本工具的核心功能是两份文件的版本比对。单文件分析请使用「投标避雷针」(扫描废标风险)或「废标风险雷达」(提取否决条款)。

Q:PDF 显示乱码或不完整怎么办?

A:可能是扫描件(无文本层)或加密 PDF。当前环境不支持 OCR 和解密。建议向招标人索取 .docx 版本。

Q:报告中的「红线」是什么意思?是否一定违法?

A:「红线」表示变更疑似突破法定强制性规定(如保证金 > 2% 上限)。这是辅助判断,不是终局法律结论。高利害红线项务必人工核实法条原文。

Q:比对结果准确率如何?

A:基于 Golden 数据集(龙陵 4vs5),条款级召回率为 9/9 (100%)。但复杂排版(如多级嵌套表格、跨页断行)可能产生分段偏差,建议对关键条款人工核对原文。

Q:IMA 知识库检索不到怎么办?

A:系统会自动将置信度压低并标注「待人工核实」。这不影响差异检测本身,仅影响法条依据的完整性。您可以手动补充法条信息。

Q:这个工具会替我判断条款是否违法吗?

A:不会。本工具标注风险点和依据,给出可操作的投标人应对建议,但不做终局法律判定。涉及重大利害关系的结论须由专业法律人士或行政监督部门确认。


Notes & Limitations

  • 不纳入:扫描件 OCR、图片感知哈希、大规模自建库比对、人工审核工作流、招标人视角自检分析
  • 条款分段为启发式(按编号/标题/Heading 切分),极复杂排版可能分段不准,需人工抽查
  • 对齐默认采用内容相似度(非 ID),对「一章多设备重号」更稳健;修改类结果建议人工抽检
  • PDF 表格依赖 pdfplumber:带边框表格可正确提取,无边框表格可能漏检
  • IMA 检索质量依赖知识库完整度;检索无果时显式降级而非编造
  • 仅支持中文招标文件

Regression(Golden 回归)

每次修改脚本或提示词后,务必跑一遍回归

# 直接校验已有 diff
$VENV_PY <skill_dir>/scripts/golden_regression.py \
  --golden <skill_dir>/references/golden_longling_4vs5.json \
  --diff "<工作目录>/diff.json"

# 或完整管线
$VENV_PY <skill_dir>/scripts/golden_regression.py \
  --golden <skill_dir>/references/golden_longling_4vs5.json \
  --files "A.docx" "B.docx" \
  --workdir "<工作目录>"
  • 退出码 0 = 自动可检项 100% 召回;1 = 存在未召回项
  • 当前龙陵 4vs5 样例:9/9 全中

Top skills in this category