Install
openclaw skills install @chesaram/bidding-doc-version-smart-compare-bidder当用户上传两份招标文件(docx/pdf)需要比对版本差异、标注变更对投标的影响时触发。从投标人视角分析差异条款的投标影响(报价/技术方案/资格/时限权利),输出结构化差异报告。仅支持含文本层的可编辑文档,不支持扫描件。
openclaw skills install @chesaram/bidding-doc-version-smart-compare-bidder| 我能做什么 | 我做不了什么 |
|---|---|
比对两份 .docx / .pdf(有文本层)招标文件,标出改了哪里 | 处理扫描件 PDF、图片型文件 |
| 从投标人视角分析每条变更对投标的影响 | 替你做法务终局判定或法律意见 |
| 标注红线风险(如保证金超法定上限)、隐性门槛、报价影响 | 保证 100% 检出所有差异(复杂排版需人工抽检) |
| 输出含行动建议的结构化报告(Markdown + 可选 .docx) | 招标人视角的自检分析(本版不提供) |
典型用法:上传两份招标文件 → 说「帮我比一下这两份有什么不同,对我投标有什么影响」→ 获得差异报告。
以下场景同时满足时触发:
.docx 或含文本层的 .pdf)不触发:单文件分析、非招投标文档比对、评标委员会正式判定、英文标书、招标人自检需求(本版专注投标人视角)。
用户上传 A(原版) + B(新版)
│
▼
Step 1 收集文件 + 校验格式
│
▼
Step 2 提取结构化内容(脚本)
│
▼
Step 3 条款对齐 + 差异检测(脚本)
│
▼
Step 4 IMA 知识库检索(批量)
│
▼
Step 5 影响分类(投标人分析头)
│
▼
Step 6 知识核查 + 时限校验(投标人分析头)
│
▼
Step 7 渲染报告(Markdown + 可选 docx)
│
▼
Step 8 边界说明
向用户确认:
| 检查项 | 通过标准 | 不通过时的标准化回复 |
|---|---|---|
| 文件数量 | 恰好 2 份 | 「本工具需要恰好 2 份招标文件进行比对(原版 + 新版),请补充上传。」 |
| 文件格式 | .docx 或 .pdf(含文本层) | 「暂不支持 [实际格式] 格式。请提供 .docx 或可复制的 PDF(非扫描件)版本。」 |
| 单文件大小 | ≤ 50 MB | 「文件 [文件名] 超过 50 MB 上限,请压缩后重试。」 |
| 语言 | 中文 | 「本工具当前仅支持中文招标文件。」 |
如果用户上传了 .pdf 文件,尝试提取文本:
无法处理此 PDF:您上传的 PDF 似乎是扫描件或图片型 PDF(无文本层)。当前环境不具备 OCR 能力,无法提取文字内容进行比对。建议您:
- 向招标人索取
.docx或可复制文本的 PDF 版本- 使用其他 OCR 工具转为文字后再使用本工具
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。
脚本执行失败时:
$VENV_PY <skill_dir>/scripts/align_clauses.py \
--extracted "<工作目录>/extracted.json" \
--out "<工作目录>/diff.json"
默认内容相似度对齐(规避「一章内多设备重号」假阳性),输出 modified / added / deleted 三类变更。
详细规则见 references/stage3_diff.md(含数值专项、抗噪声规则、少样本示例)。
对 diff.json 中变更批量检索:
招投标实务与合规(kb_id: 7463402595160740)招标文件汇集(kb_id: 7439473860155957)将命中拼入每条的 <kb_context>。检索无果时,basis_source 标「未检索到,待人工核实」,confidence 压低至 ≤ 0.5。
加载 references/bidder/stage4_classify.md(5 轴分类 + 4 正例 + 1 反例 + 强制护栏 + 边界情况处理)。
产出 <工作目录>/classified.json。
长文档分批:≤ 25 条/批,按 section 分组。合并时不得丢失任何 item 的 context / numeric_delta / bid_impact。
加载 references/bidder/stage5_review.md,执行:
产出最终 <工作目录>/findings.json。
$VENV_PY <skill_dir>/scripts/build_report.py \
--findings "<工作目录>/findings.json" \
--out "<工作目录>/比对报告.md" \
--role bidder
每次输出末尾附加(不要省略):
免责声明:本工具为辅助初筛工具,输出基于 AI 对招标文件文本的自动化分析,不替代专业合规判定或法律意见。高利害场景(如涉及红线条款、大额保证金变更、资格门槛重大调整)须人工复核。本工具不承诺 100% 检出率或绝对准确的违规判定。
遇以下违法或违规请求,礼貌拒绝并说明法律依据,不提供变通方案:
本工具仅用于合法合规的投标分析与风险自查。
脚本运行于 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-docx | docx 解析与报告生成 |
pypdf | pdf 纯文本 fallback 提取 |
pdfplumber | pdf 表格提取(首选) |
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 # 阶段⑤:投标人核查+时限+报价评估
A:本工具的核心功能是两份文件的版本比对。单文件分析请使用「投标避雷针」(扫描废标风险)或「废标风险雷达」(提取否决条款)。
A:可能是扫描件(无文本层)或加密 PDF。当前环境不支持 OCR 和解密。建议向招标人索取 .docx 版本。
A:「红线」表示变更疑似突破法定强制性规定(如保证金 > 2% 上限)。这是辅助判断,不是终局法律结论。高利害红线项务必人工核实法条原文。
A:基于 Golden 数据集(龙陵 4vs5),条款级召回率为 9/9 (100%)。但复杂排版(如多级嵌套表格、跨页断行)可能产生分段偏差,建议对关键条款人工核对原文。
A:系统会自动将置信度压低并标注「待人工核实」。这不影响差异检测本身,仅影响法条依据的完整性。您可以手动补充法条信息。
A:不会。本工具标注风险点和依据,给出可操作的投标人应对建议,但不做终局法律判定。涉及重大利害关系的结论须由专业法律人士或行政监督部门确认。
每次修改脚本或提示词后,务必跑一遍回归:
# 直接校验已有 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 = 存在未召回项