Skip to content

matongAI-lab/tender-review-kit

Repository files navigation

tender-review-skill · 招标文件审标 skill(为投标人服务)

这不是一个独立软件,是给 AI agent 用的 skill(技能包):程序管确定性(取数/扫描/护栏/出 Excel),AI 管判断(读懂条款、分清真假废标项)——必须配一个 AI agent 一起用(任何能操作本地文件的 AI 编程助手均可)。怎么装、怎么触发见下面「怎么开始」

审的是招标方发的招标文件,服务的是要去投标的人。

输入:招标文件(PDF/Word) → 输出:投标核对清单(废标项 + 评分项 + 证明材料 + ▲ 标识参数 + 时间节点 + 合同条款要点),每条带行号出处。 帮投标人在动手写投标文件之前,把招标方的游戏规则全部吃透——不踩废标、不漏评分、不缺材料、不错节点。

产清单和事实,不下"投/不投"结论。 决策是投标人自己的事,工具的本分是让他看见全部要求。

招标要求 vs 合同要求严格分开:废标清单 = 投标递交时雷区(漏一条 = 今天废标);合同条款·要点 = 中标后约束(漏看不会今天死,但中标后受罚)。两类独立清单,投标人按需查看(很多人不看合同,我们尊重这个选择)。

⚠️ 当前状态:开发中(WIP)

接口与判词库仍在迭代,这是早期快照——生产使用请自行评估、先跑通自家标书。

本项目按 MIT 许可开源(见文末 License),可自由使用 / 修改 / 商用。欢迎试用、提 PR、扩词库。

怎么开始(按你的情况选一条路)

🤖 路 1:你已经在用 AI 助手 ⭐ 最省心

第一次用·尝鲜(零安装):不用看任何文档,把下面这段话原样发给你的 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 咒语入口。

🐣 路 2:完全不懂技术,也没用过 AI 助手

这个工具的"判断"环节需要一个 能操作你电脑文件的 AI 编程助手——市面上有很多家(桌面版 / 编辑器版 / 命令行版都行),挑一个装上即可(只装这一次)。 ⚠️ 注意要装能读写本地文件的版本,纯网页聊天版不行(网页版碰不到你电脑上的标书文件)。

装好后回到上面 路 1,把那段话发给它。

不想用 AI 助手、想自己手动装环境跑程序?看 INSTALL.md——全程只回答「装」或「不装」。

👨‍💻 路 3:工程师,自己跑

直接看下面的 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 红蓝对抗(防判断死角)

核心优势:

  1. 判词库是核心资产 —— 几百次实战攒的判决词,代码能开源,判词库越用越厚是真护城河
  2. 可复现的扫描 —— 同样一份标书,跑十次结果一样。判词扫描是确定性的;准确率量化需专家真值集(路线图中)。
  3. 两层防漏机制 —— 反向校验防"漏抄",红蓝对抗防"判断死角"。
  4. 跨工具 —— 线性主干在任何 AI agent 上都能跑;支持子代理(subagent)的工具还能额外开并行 + 红蓝对抗增强。

5 分钟上手

详细版见 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.docx

项目结构

tender-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 输出样式)
  • 拿真标书 + 专家答案对比,提供准确率量化数据(测试集)

设计原则

  1. 判词库是核心,准确第一 —— 提示词没壁垒、不可复现;判词库才是护城河。
  2. 判断交大模型,确定性/护栏交程序 —— 护栏必须是程序,大模型不能审计自己。
  3. 全量不压缩 —— 撒网命中每条都要处置,▲ 有多少列多少。
  4. 列事实带出处,不下结论 —— 不写投/不投、不做报价推演。
  5. 数据驱动 + 工具无关 —— 知识沉淀进 data/references/,核心流程任何 agent 工具都能跑。

详见 ARCHITECTURE.mdSKILL.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+ 判决词,靠贡献闭环自然生长)

License

本项目采用 MIT License —— 自由使用 / 修改 / 商用,保留版权与许可声明即可。完整条款见仓库根目录 LICENSE 文件。

致谢

本项目方法论沉淀自多份真实招标文件实战。判词库是公共资产,欢迎扩充。

About

投标审核工具包,用关键词、规则和自动化检查辅助识别投标风险。

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages