这不是一个独立软件,是给 AI agent 用的 skill(技能包):程序管确定性(取数/扫描/护栏/出 Excel),AI 管判断(读懂条款、分清真假废标项)——必须配一个 AI agent 一起用(任何能操作本地文件的 AI 编程助手均可)。怎么装、怎么触发见下面「怎么开始」。
审的是招标方发的招标文件,服务的是要去投标的人。
输入:招标文件(PDF/Word) → 输出:投标核对清单(废标项 + 评分项 + 证明材料 + ▲ 标识参数 + 时间节点 + 合同条款要点),每条带行号出处。 帮投标人在动手写投标文件之前,把招标方的游戏规则全部吃透——不踩废标、不漏评分、不缺材料、不错节点。
产清单和事实,不下"投/不投"结论。 决策是投标人自己的事,工具的本分是让他看见全部要求。
⭐ 招标要求 vs 合同要求严格分开:废标清单 = 投标递交时雷区(漏一条 = 今天废标);合同条款·要点 = 中标后约束(漏看不会今天死,但中标后受罚)。两类独立清单,投标人按需查看(很多人不看合同,我们尊重这个选择)。
⚠️ 当前状态:开发中(WIP)接口与判词库仍在迭代,这是早期快照——生产使用请自行评估、先跑通自家标书。
本项目按 MIT 许可开源(见文末 License),可自由使用 / 修改 / 商用。欢迎试用、提 PR、扩词库。
第一次用·尝鲜(零安装):不用看任何文档,把下面这段话原样发给你的 AI(点代码块右上角即可复制):
请帮我下载并运行这个审标工具:
https://github.com/matongAI-lab/tender-review-kit
仓库里有一份 FOR_AI.md,是写给你的操作手册——先读它,然后带着我把流程跑完。
我可能不懂技术:每一步用大白话告诉我你在干什么;要安装任何东西,先问我。
我的招标文件稍后发给你。
剩下的全是 AI 的事:下载项目、装环境、要你的标书、审完、把 Excel 交到你手上。你只需要回答它的提问。
用顺了·装成常驻 skill(以后一句话触发):
把仓库 clone 到你 AI 工具的 skills 目录(各家工具的 skills 目录位置不一样,查你工具的文档),目录名统一用 tender-review-kit:
git clone https://github.com/matongAI-lab/tender-review-kit.git <你的 AI 工具 skills 目录>/tender-review-kit不确定你的工具 skills 目录在哪、或工具不支持本地 skill?继续用上面的 FOR_AI.md 咒语入口即可,效果一样。
- 怎么触发:装好后,在支持 skill 的客户端里直接说人话——「帮我审这份招标文件」「看看这份标书的废标点」,它会按 SKILL.md 开头的 description 识别该用这个 skill;想点名也行:「用 tender-review-skill 审这份标书」。
- 首次使用:AI 会先跑环境自检(
scripts/check_env.py),缺什么会问你「装/不装」,不用自己研究。 - 怎么更新(顺便拉到别人贡献的判词,见互惠机制):
cd <你的 tender-review-kit skill 目录> && git pull
- 只想在某个项目里用?按你的客户端规则装到项目级 skills 目录;如果不确定,就使用
FOR_AI.md咒语入口。
这个工具的"判断"环节需要一个 能操作你电脑文件的 AI 编程助手——市面上有很多家(桌面版 / 编辑器版 / 命令行版都行),挑一个装上即可(只装这一次)。
装好后回到上面 路 1,把那段话发给它。
不想用 AI 助手、想自己手动装环境跑程序?看 INSTALL.md——全程只回答「装」或「不装」。
直接看下面的 5 分钟上手;架构看 ARCHITECTURE.md。
当前版本:Community Edition v0.1.9(社区开源版)——本仓库内容,MIT 许可,免费使用 / 修改 / 商用。
- 8 个核心程序(取数 / 撒网 / 补词×2 / 查漏 / 完整性 / 跨文件 / Excel)+ 3 个辅助(环境自检 / 候选词入库 / 脱敏贡献)+ 一键编排
run_pipeline.py - 贡献隐私声明强化(v0.1.9 新增):明确告诉用户贡献完全自愿,不上传标书/Excel/原文/项目名,只提交判词短语和分类/scope,并默认通过 Issue 由维护者审核。
- 开源判词库扩展(v0.1.8 新增):并入 5 个用户确认过、已脱敏的通用判词,提升无效响应/中标资格/联合体/分包转包/实质响应类命中。
- AI 发现词当前补漏回扫(v0.1.7 新增):AI 发现疑似判词后,先用临时词库回扫当前标书,不等用户入库;用户接受/拒绝只决定未来是否自动扫到。
- 词库贡献提醒强化(v0.1.7 新增):verify 收尾固定说明本地词库/开源词库互惠机制,让 agent 稳定提醒用户可脱敏贡献新词。
- ▲/★ 长表格行拆分增强(v0.1.6 新增):Word 表格摊平成一行时,同一行多个
▲/★/※会逐条进入hits.json;同时收窄目录页排除规则,避免正文参数里的"目录"字样误伤。 - 小白零门槛入口(v0.1.5 新增):一段咒语发给任意 AI 助手即可全程代办(操作手册 FOR_AI.md);「怎么开始」三路分流 + 装成常驻 skill 的安装/触发说明
- 判词库分两层:开源词库(共享,~170+ 词)+ 用户本地词库(私有积累,gitignored)
- AI 发现新词的用户审批流:不再自动入库,用户拍板决定是否接受
- 互惠贡献闭环:你贡献几个,以后别人贡献的你也能拉到
- 4 类常见标书的类型特化规则(工程·合理低价 / 货物·综合评分 / 政采服务 / 央企货物,并入审标对照清单)
- 完整的两层防线 + 红蓝对抗方法论
- 够用,但你要的"省心 / 不漏 / 跨行业"得靠社区一起攒(欢迎贡献)
规划中:Professional Edition(专业版,正在开发)——商业产品,不在本仓库:
- 更全的判词库:几百至上千词,带行业细分 scope(医疗 / 军工 / 海外 / 科研…)和实战准确率证明
- 更全的类型规范:几十类标书的完整机制档案(单一来源 / 询价 / 竞争性磋商 / 海外英标 / 政府购买服务 / 工程总承包 / 框架协议 等)
- 云端补词服务:扫一份标书 → AI 自动提候选词 + 验证 + 入库,贡献给同订阅级别的所有用户(集体智能)
- 类型自动识别 + 定制化指南 API
- 准确率验证服务:你的清单 vs 专家答案库 → 给质量评分
Enterprise / 定制版:私有部署、行业专版、团队协作、一对一类型校准。
Community Edition 是地基,够任何人验证方法论、试用流程、跑通自家标书。 想要"省心 + 不漏 + 跨行业",请关注 Professional Edition。
市面上现在有两种东西:
- 老牌投标软件:靠关键词匹配。死板,不会读——"无效投标"和"无效数据"分不清,误报一大堆。
- 新的 AI 标书工具:让大模型读。会读,但漏了你不知道、这次和下次不一样、攒不下东西。
tender-review-skill 把两者长处缝起来,而且把"准确/不漏"摆在第一:
判词库(确定的底盘,保证该找的不漏) × 大模型读懂(分清"无效投标"vs"无效数据") × 程序护栏(防压缩 + 反向校验) × A/B 红蓝对抗(防判断死角)
核心优势:
- 判词库是核心资产 —— 几百次实战攒的判决词,代码能开源,判词库越用越厚是真护城河。
- 可复现的扫描 —— 同样一份标书,跑十次结果一样。判词扫描是确定性的;准确率量化需专家真值集(路线图中)。
- 两层防漏机制 —— 反向校验防"漏抄",红蓝对抗防"判断死角"。
- 跨工具 —— 线性主干在任何 AI agent 上都能跑;支持子代理(subagent)的工具还能额外开并行 + 红蓝对抗增强。
详细版见 QUICKSTART.md。下面是最短路径(给想自己敲命令的人)。 **不想敲命令?**回到上面的「怎么开始」路 1,把那段话发给你的 AI 就行。手动装环境见 INSTALL.md。
# 0. 环境自检 ⭐ 首次必跑(自动告诉你缺什么 + 怎么装)
python scripts/check_env.py
# → 全 ✓ 就直接跳到 1;有 ✗ 会显示对应平台的安装命令,装好再跑一次确认
# 1. 装依赖(若 check_env 提示缺,跑这一行即可)
pip install -r requirements.txt
# (PDF 提取建议装 pdftotext: Windows xpdf-tools / mac brew install poppler / ubuntu apt install poppler-utils。不装也能跑,自动回退 pypdf)
# 2. 程序自动跑(取数 + 撒网 + 补词,几秒)
python run_pipeline.py prep <招标文件.docx 或 .pdf>
# 3. 把 prep 结尾打印的那段提示发给你的 AI agent
# → agent 按 SKILL.md 步骤产出 workspace/<项目>.工作区.md
# → 含 AI 新发现的疑似判词(标 [AI发现])
# 4. 程序自动跑(护栏 + 出 Excel,几秒)
python run_pipeline.py verify workspace/<项目>.工作区.md
# 5. 如果 AI 发现了新判词,先看待审清单再拍板
python scripts/harvest_ai_words.py workspace/<项目>.工作区.md --accept "词A,词B"
# (选着收 --accept "词A,词B" / 全收 --accept-all / 全弃 --reject-all)
# (接受的进 data/local_keywords.json 用户本地积累,下次扫别的标书自动用上)
# 6. (可选) 把普遍适用的新词加进开源词库,以后别人贡献的你也能拉到
python scripts/export_contribution.py --github自带 sample 试跑(不需要真标书):
python run_pipeline.py prep tests/fixtures/sample_tender.docxtender-review-kit/
├── FOR_AI.md # 给 AI agent 的操作手册(小白只发一段话,AI 全程代跑)
├── QUICKSTART.md # 30 秒上手指南
├── SKILL.md # skill 定义(AI 的触发条件 + 端到端工作流)
├── ARCHITECTURE.md # 设计纲领(六层栈 + Python/LLM 分工 + 数据驱动)
├── run_pipeline.py # 一键编排: prep(取数+扫描) / verify(护栏+Excel)
├── scripts/ # 程序层(确定性 + 护栏,纯标准库+少量 pip)
│ ├── check_env.py # 环境自检: 缺什么依赖 + 怎么装(首次必跑)
│ ├── extract_text.py # 取数: PDF/Word → 带行号文本
│ ├── scan_keywords.py # 判词撒网: 自动合并加载开源 + 本地词库
│ ├── scan_candidates.py # 补词引擎(程序通道): 正则扫疑似新判决词
│ ├── harvest_ai_words.py # 补词引擎(AI通道): AI 发现的词 → 待审 → 用户拍板 → 入本地库 + 回扫
│ ├── promote_candidates.py # 候选词审批入库(scan_candidates 产物)
│ ├── export_contribution.py # 脱敏导出本地新词 → 开源 keywords.json(一键提 Issue)
│ ├── check_coverage.py # 反向校验: 命中是否被废标清单覆盖
│ ├── check_completeness.py # 完整性: 条数/梯度/▲ 覆盖
│ ├── cross_doc.py # 跨文件矛盾: 金额/日期/数量
│ └── build_excel.py # md 清单 → 多 sheet Excel
├── data/ # 数据层
│ ├── keywords.json # 开源判词库 6 类 ⭐ 命根子(PR 可改,所有用户共享)
│ └── local_keywords.json # 用户本地积累(gitignored,审批入库后下次扫别标书自动用上)
├── references/ # 知识层(专项工作指南)
│ ├── disqualification-checklist.md # 审标对照总清单(废标点+隐性门槛+类型特化+必拿字段)
│ ├── commercial/ # 商务线: 废标/评分/证明/时间/合同条款
│ └── technical/ # 技术线: ▲★ 响应/评分/规范偏离
├── workspace/ # 运行时中间产物
└── tests/ # 回归基准
开源词库 = 所有用户一起攒——你今天贡献几个词,以后别人贡献的你也能拉到。
隐私声明先说清楚:
-
贡献完全自愿,不给也能正常使用本工具。
-
我们不拿你的标书、Excel、工作区、原文片段、项目名称、行号上下文。
-
脱敏贡献只包含几个判词短语及其分类/scope,例如"取消中标资格 / primary / evaluation_phase"。
-
默认路径是创建 GitHub Issue 给维护者审核,不会自动直接写入开源总词库。
-
✅ Follow 这个仓库 + 定期
git pull→ 自动用上所有贡献者的发现 -
✅ 用
export_contribution.py把你的词加进开源 → 别人也能用上你的判断 -
✅ 你的本地词库(
data/local_keywords.json)永远是你自己的,贡不贡献都在,扫别的标书继续用
最有价值的贡献 = 扩判词库:
# 1. 审完标书后,审批 AI 发现的词(选着收 --accept "词" / 全收 --accept-all / 全弃 --reject-all)
python scripts/harvest_ai_words.py workspace/<项目>.工作区.md --accept "词A,词B"
# 2. 把本地词库里普遍适用的词加进开源(自动脱敏,不含标书原文)
python scripts/export_contribution.py # 导出预览
python scripts/export_contribution.py --github # 一键提 Issue(需装 gh CLI 并登录)工具会同时收集两条通道(程序补词 candidates.json + AI 发现 local_keywords.json),去掉原文片段,去重现有开源词库,生成干净的贡献表。--github 只是提交一个待审核 Issue,维护者确认后才会合并进 data/keywords.json。
其他贡献方向:
- 补 references(给审标对照清单加条目 / 补专项工作指南)
- 程序层小修复(extraction edge case / Excel 输出样式)
- 拿真标书 + 专家答案对比,提供准确率量化数据(测试集)
- 判词库是核心,准确第一 —— 提示词没壁垒、不可复现;判词库才是护城河。
- 判断交大模型,确定性/护栏交程序 —— 护栏必须是程序,大模型不能审计自己。
- 全量不压缩 —— 撒网命中每条都要处置,▲ 有多少列多少。
- 列事实带出处,不下结论 —— 不写投/不投、不做报价推演。
- 数据驱动 + 工具无关 —— 知识沉淀进
data/和references/,核心流程任何 agent 工具都能跑。
详见 ARCHITECTURE.md 与 SKILL.md。
- 端到端跑通(覆盖货物·综合评分、央企货物、政采服务、工程·合理低价多类标书实战验证)
- A/B 红蓝对抗实验(两个独立 subagent 处理同一份 300+ ▲ 标书,覆盖一条不差,各自逮到对方盲区)
- 8 大核心程序 + 3 辅助 + 一键编排(
run_pipeline.py)+ 通用机制清单 - 判词库分两层(开源共享 + 用户本地积累)+ 互惠贡献闭环(v0.1.3)
- AI 发现新词的用户审批流(v0.1.3)
- 小白零门槛上手:FOR_AI.md 咒语入口 + 三路分流 + skill 安装/触发说明(v0.1.5)
- 更多类型实战覆盖
- 准确率量化(真值标注 + 测试集)
- 词库扩展(目标:200+ 判决词,靠贡献闭环自然生长)
本项目采用 MIT License —— 自由使用 / 修改 / 商用,保留版权与许可声明即可。完整条款见仓库根目录 LICENSE 文件。
本项目方法论沉淀自多份真实招标文件实战。判词库是公共资产,欢迎扩充。