投标 AI 作战台 · 系统说明书

投标全流程数字化作战平台

从读标到归档,从单兵到全员,投标全链路可控、可追溯、可复用

系统类型投标全流程平台
适用场景设计类工程投标
部署形态Web + API
阅读对象经营 / 投标 / 商务 / 技术

系统面向交通工程设计类投标场景,覆盖读标 → 资格 → 评分 → 封标 → 递交 → 开标 → 复盘 → 归档完整链路。以 14 阶段流程总线驱动投标过程,内置 7 个 AI Agent 辅助读标拆标、资格核验、评分响应、封标风控等核心环节,同时提供招采执行台账(12 类实体 + 22 章档案包)、历史知识库(经验沉淀 + 智能复用)、管理看板(KPI + 漏斗 + 成本)等能力,让投标团队告别"凭经验、靠微信、封标前夜熬夜"的传统模式。

后端模块34 个
数据表58 张
前端组件31 个
源码行数约 78,700 行

01 系统概述

面向交通工程设计类投标工作的 AI 辅助平台,核心目标是降低漏读、漏响应、资格不全、封标错误导致的失分或废标风险。

解决的痛点

漏读招标文件

招标文件 200~500 页,关键条款藏在长段文字里,靠人工标注容易漏项。

漏响应评分点

评分项 30~60 条,每条要对应材料、章节、责任人,标书越写越乱。

资格材料不全

资质、业绩、人员、证书分散在不同人手里,封标前夜才发现。

封标低级错误

签章、格式、暗标、补遗、上传、保证金 —— 任何疏忽都可能导致废标。

招采过程失控

报名、CA、递交、开标、退还各环节信息散落,无台账、无留痕。

协作难留痕

谁改了什么、谁确认了什么、审批到哪一步,靠口头和微信,无法举证。

系统的核心能力

业务流程总线:14 阶段状态机 + 门禁(Gate),阻塞项不解决不放行 —— 把"封标前夜排查"提前到每个阶段。
AI Agent 辅助:7 个智能体覆盖读标、资格、评分、封标、作战助手、业绩匹配、技术建议书,所有事实型输出绑定来源证据。
招采执行台账:12 类实体覆盖报名→拿标书→澄清→CA→版本→递交→开标→退还全流程,一键导出 22 章档案包。
角色协作:6 角色权限矩阵,关键操作(红色风险关闭 / 封标终审)强制走审批。
历史知识库:每次投标的中标因素、失标原因、可复用材料自动沉淀,按当前项目智能推荐,一键采纳即落地为任务。
管理看板:项目漏斗、风险分布、复用转化、成本台账一目了然,让经营决策有数据。

谁来用

经营负责人

关注项目整体风险等级、是否立项、关键时间节点。常用管理看板与项目列表的"总风险"指标。

投标负责人

统筹读标、分工、评分响应、封标检查。常用作战台首页、流程工作台、7 个 Agent 一键运行。

商务资料管理员

维护企业资质、业绩、证书、商务文件。常用资料库页与资格核验清单。

技术负责人

确认技术评分点、技术建议书提纲和章节质量。常用评分响应矩阵与文档生成。

审核人

审批中枢。批准 / 驳回 6 类审批、确认或驳回 AI 输出。无权创建项目或关闭风险。

访
只读访客

外部观察者。只能下载文档、查看审计日志。无权修改任何内容。

权限矩阵(节选)

操作管理员投标负责人商务技术审核访客
创建 / 删除项目创建
运行 AI Agent
确认 / 驳回 AI 输出
关闭红色风险✓ 直接需审批
招采实体编辑需权限
生成 / 导出档案包
批准 / 驳回审批
管理 AI 模型密钥

02 系统入口与导航

系统有三个主页面:作战台(核心工作区)、项目管理(找项目 / 比项目)、资料库(企业基础数据)。顶部全局导航在三者间切换。

投标 AI 作战台投标全流程数字化平台
作战台项目管理资料库
🔔 3管理员
▲ 图 1:顶部全局导航 —— 作战台 / 项目管理 / 资料库 + 通知铃铛 + 用户切换

三个主页面

📊

作战台

路由:/(根路径)。核心工作区,含 9 个 Tab 工作区、AI Agent 运行、招采执行台账等全部投标操作。

📁

项目管理

路由:/projects。独立的项目搜索 / 筛选 / 排序页面,支持 5 维筛选、5 排序键、11 列表格,适配 1080P / 2K / 4K 三种分辨率。

🗄

资料库

路由:/library。企业资质、设计业绩、人员、人员证书的基础数据管理。

登录与认证

系统采用生产认证模式。首次访问时跳转到登录页(LoginPage),输入邮箱 + 密码登录。登录成功后 JWT Token 存储在 HttpOnly Cookie 中,所有 API 请求自动携带 Cookie,服务端校验后识别用户身份。首次部署时通过 bootstrap admin 流程创建初始管理员账号。

说明:生产路径不再依赖可伪造的 header 传递用户身份,所有 API 服务端二次校验权限,viewer 调用写接口直接返回 403。

作战台界面全景

项目作战台

示例高速勘察设计

示例业主 · 示例地点 · 勘察设计

● 已连接AI · 智谱总风险 中
📊 概览
流程
🛡 资格评分
⚠ 风险任务
📄 文档
🔏 招采
👥 协作
✓ 复盘
🤝 助手
投标截止07-25 17:00
!
红色风险3 项
评分响应72%
绿色项28 项
📑
读标拆标

6 张结构化表 + 证据

▶ 运行
🛡
资格核验

资质 / 业绩 / 人员红黄绿

▶ 运行
🎯
评分响应

拿分矩阵 + AI 建议

▶ 运行
🔏
封标风控

签章 / 格式 / 暗标检查

▶ 运行
🤝
作战助手

问答式今日必办

▶ 运行
🗂
业绩人员匹配

推荐最优组合

▶ 运行
📚
技术建议书

目录与章节要点

▶ 运行
证据确认

人工复核闭环

▶ 详情
▲ 图 2:作战台主界面 —— 左栏最近项目 + 顶部 9 Tab + 4 指标卡 + 7 Agent 网格

移动端适配

手机端作战台

作战台
📚
资料库

风险
👤
我的

▲ 手机底部 4 Tab。「我的」打开 AI 设置 + 通知 + 用户切换。本说明书也已做手机端断点适配,可直接在手机浏览器阅读。

03 业务流程

系统把投标拆成 14 个阶段,每个阶段有明确的进入条件与放行条件(门禁 Gate)。阻塞项不解决,流程不放行。

流程工作台

业务流程

阶段:资格核验 · 进行中门禁阻塞
阶段进度
待启动
文件接收
文档索引
读标中
需求确认
资格核验
投标决策
响应规划
编标中
风险复核
封标中
已递交
投后复盘
已归档
⚠️ 门禁不通过:2 项
  • red 项目负责人证书缺失:资格条件未匹配
  • yellow 业绩数量不足:同类高速仅 2 项(要求 ≥ 3)

下一步行动

  1. red 上传项目负责人注册证书
  2. yellow 补充 1 项同类高速业绩

流程阻塞项(2)

  • red 项目负责人证书缺失
    阻塞投标决策阶段
  • yellow 业绩数量不足
▲ 图 3:流程工作台 —— 14 阶段 Stepper + 门禁警告 + 下一步行动 + 阻塞项

14 个阶段

0待启动initiated
1文件接收files_received
2文档索引indexing
3读标中tender_reading
4需求确认requirements_confirming
5资格核验qualification_checking
6投标决策bid_decision
7响应规划response_planning
8编标中document_preparing
9风险复核risk_reviewing
10封标中sealing
11已递交submitted
12投后复盘post_bid_review
13已归档archived

▲ 红色编号 4 / 6 / 10 为关键门禁阶段:需求确认 / 投标决策 / 封标。未通过不放行。

门禁(Gate)工作原理

🚫

不放行的情形

  • 需求确认:AI 输出未绑定证据
  • 投标决策:仍有红色风险未关闭
  • 封标:保证金未到账 / 签章不全
  • 已递交:CA 证书 / 投标文件版本缺失

系统在流程工作台顶部红色提示「️ 门禁不通过:N 项」,列出具体阻塞项。

放行后的推进

  • 系统自动生成「下一步行动」清单
  • 每条带优先级(红 / 黄 / 绿)+ 责任人
  • 可一键执行(运行 Agent / 关闭阻塞项)

点击「执行」即触发对应接口,流程阶段自动推进。

04 作战台工作区

作战台是系统的核心工作区,所有投标操作都从这里发起。顶部 9 个 Tab 把不同关注点隔开,让你专注于当前需要处理的事情。

如何切换工作区

进入作战台后,你会看到顶部一排 Tab 按钮(概览 / 流程 / 资格评分 / 风险任务 / 文档材料 / 招采执行 / 协作 / 投后复盘 / 作战助手)。点击任意 Tab 即可切换到对应工作区,页面内容会立即刷新为该 Tab 的功能界面。

每个 Tab 对应一个独立的工作场景:概览看项目整体状况和 AI Agent 运行状态;流程看 14 阶段进度和门禁阻塞项;资格评分处理资格核验和评分响应;风险任务管理风险事项和任务分配;文档材料上传招标文件和生成 DOCX;招采执行管理 12 类招采实体和档案包;协作处理审批和成员管理;投后复盘录入中标/失标总结;作战助手用自然语言问答获取项目洞察。

Tab核心场景关键功能主要使用者
概览项目总览 + AI 一键运行4 指标卡 / 7 Agent 网格 / 证据与人工确认经营 / 投标
流程14 阶段流程总线 + 门禁Stepper / Gate 阻塞 / 下一步行动 / 阻塞项 / Agent 质量 / 事件 / 历史投标负责人
资格评分资格核验 + 评分响应 + 封标规则资格清单 / 评分矩阵(推荐业绩人员)/ 封标风险规则商务 / 技术
⚠ 风险任务风险事项 + 任务管理风险列表(关闭/重开,红色走审批)/ 任务列表(转派/关闭)投标 / 各责任人
📄 文档材料文件上传 + DOCX 生成招标文件上传 / 技术标 / 商务清单 / 风险报告 一键生成技术 / 商务
🔏 招采执行12 类招采实体 + 档案包4 分区(前置/澄清/版本/结果)/ 归档完整性 / 22 章档案包导出投标 / 商务
👥 协作成员 + 审批 + 动态项目成员管理 / 6 类审批中心 / 项目活动流全员
✓ 投后复盘中标/失标总结结果 / 得分明细 / 失分项 / 可复用材料 / 改进建议投标 / 经营
🤝 作战助手基于数据库的问答10 个快捷问题 / 自然语言提问 / 证据查看器投标负责人

概览 Tab 详解

概览是进入作战台后看到的第一个页面。顶部显示 4 个关键指标:投标截止时间(距离截止还有多久)、红色风险数(必须立即处理的问题数量)、评分响应进度(已完成评分项的百分比)、绿色项数(已通过检查的项目数量)。

指标卡下方是 7 个 AI Agent 的运行网格。每个 Agent 卡片显示名称、功能描述、运行按钮。点击「▶ 运行」即可触发该 Agent 执行对应任务。运行完成后,卡片下方会显示输出摘要和证据来源。点击「▶ 详情」可展开右侧抽屉,查看完整的结构化输出和人工确认状态。

耗时的 Agent 任务会转入后台队列执行,作战台显示任务状态(排队中/运行中/已完成/失败)。后台任务详见第 14 章。

概览 Tab

4 指标卡(截止/红风险/评分进度/绿色项)+ 7 Agent 一键运行 + 证据确认抽屉。

🔀

流程 Tab

14 阶段 Stepper + Gate 门禁 + 下一步行动 + 阻塞项 + Agent 质量指标。详见第 03 章

招采执行 Tab

12 类实体分 4 区 + 归档完整性 + 22 章档案包。详见第 06 章

05 AI Agent 能力

系统内置 7 个 AI Agent。其中 4 个是核心工作流 Agent,驱动 14 阶段流程总线的关键阶段;另外 3 个是辅助增强 Agent,提供问答、匹配、创作能力。

Agent 如何工作

每个 Agent 都是一个独立的智能体,接收特定类型的输入数据,经过 AI 模型处理后输出结构化结果。例如,读标拆标 Agent 接收招标文件原文,输出 6 张结构化表(项目摘要、资格条件、评分办法、否决条款、关键时间、文件组成);资格核验 Agent 接收资格条件表和企业资质库,输出每条资格的匹配状态(matched/partial/unmatched)和风险等级(红黄绿)。

所有 Agent 的输出都遵循防编造红线:事实型内容(企业资质、业绩、人员证书)必须绑定来源证据,否则标记为"待人工确认"。创作型内容(技术建议书大纲)可以生成,但不能直接定稿,必须经过人工审核。

Agent类型做什么输出
读标拆标核心工作流解析招标文件/补遗/答疑,提取项目摘要、资格、评分、否决、关键时间6 张结构化表 + 来源证据
🛡 资格核验核心工作流匹配企业资质、设计业绩、人员、证书、信誉matched/partial/unmatched + 红黄绿
🎯 评分响应核心工作流把每个评分项对应到材料、章节、责任人 + 推荐业绩人员拿分作战矩阵
封标风控核心工作流封标前红黄绿检查 —— 签章、格式、暗标、补遗、上传、时间封标前风险报告 + 整改建议
🤝 作战助手 Copilot辅助增强基于数据库回答"现在最危险的问题/今日必办"问答 + 证据查看器
业绩人员匹配辅助增强按项目类型/规模/阶段,推荐最优业绩组合与人员组合Top 3 业绩方案 + 人员矩阵
技术建议书辅助增强生成技术标目录与每章响应要点Markdown 提纲 + 章节要点

如何运行 Agent

在作战台「概览」Tab,你会看到 7 个 Agent 的运行网格。每个 Agent 卡片右下角有一个「▶ 运行」按钮。点击后,系统会调用对应的 AI 模型处理数据,运行状态会显示为"运行中"。运行完成后,卡片下方会显示输出摘要,点击「▶ 详情」可展开右侧抽屉查看完整的结构化输出、证据来源列表、以及人工确认状态(已确认/待确认/已驳回)。

!
防编造红线:所有事实型输出(企业资质、业绩、人员证书、个人业绩)禁止 AI 无来源生成;评分标准、否决条款必须来自招标文件解析结果;技术建议书大纲属于创作型内容,但不可直接定稿。

06 招采执行

「招采执行」Tab 把投标人侧真实过程数字化:从报名、拿标书、澄清、CA、版本、递交、开标到退还,12 类实体全程留痕,一键导出 22 章档案包,归档完整性自动校验。

4 个分区 + 12 类实体

前置准备

  • 投标报名 BidRegistration —— 招标平台报名记录
  • 招标文件获取 TenderDocumentAcquisition —— 获取/购买记录,含费用发票
  • CA 证书 CaCredential —— 电子签章 CA 台账,跟踪有效期

澄清答疑

  • 澄清提问/答复 TenderClarification —— 向招标方提问、收到答复或通知,可关联回补遗

投标文件版本

  • 投标文件版本链 BidDocumentVersion —— 版本演进(草稿→盖章→上传→递交),可关联回执

开标与结果

  • 中标结果公示 BidResultNotice —— 中标候选公示/通知书/未中标
  • 保证金退还 DepositReturn —— 保证金退还或保函释放

5 类核心实体(上部网格)

除 4 分区外,面板顶部还有 5 类核心实体的快捷网格:保证金/保函、补遗/答疑、签章/CA/暗标、递交回执、开标记录。每类显示计数 + 状态。

档案包导出(22 章 DOCX)

归档完整性检查通过后,一键导出完整投标执行档案包(DOCX 格式),包含 22 个章节:

📄

第 1-15 章(核心)

  • 一、项目基础信息 · 二、招标文件与索引摘要 · 三、资格条件 · 四、评分规则 · 五、关键风险
  • 六~十、保证金/补遗/签章/回执/开标
  • 十一、投后复盘 · 十二、关键证据清单 · 十三、勾稽摘要 · 十四、事件/审计摘要 · 十五、关联文档/经验/材料

第 16-22 章(投标人侧)

  • 十六、投标报名记录 · 十七、招标文件获取
  • 十八、澄清提问/答疑回复 · 十九、CA 证书台账
  • 二十、投标文件版本 · 二十一、保证金退还
  • 二十二、中标结果公示/通知
!
导出前置条件:必须归档完整性检查通过,未通过抛 409 冲突,携带阻塞项明细。不允许 force 绕过

归档完整性检查(6 类条件)

无未解决 red blocker

WorkflowBlockingItem 中 severity=red & status=open 的项必须为 0。

门禁复检

保证金已确认/豁免 · 补遗已响应 · 签章已满足 · 递交回执已提交。

投后复盘存在

项目必须有 PostBidReview 记录。

证据真实性

完成态实体的 evidenceRefs 必须真实存在、同项目、未归档。

勾稽完整性

BusinessEntityLink 勾稽缺口只进 warnings(不阻塞)。

归档事件存在

项目已处于 archived 阶段时,必须有 project.archived 事件。

18 种证据来源(sourceType 受控词表)

📎

核心 11 种

tender_file · bid_material · document_chunk · generated_document · post_bid_review · agent_quality_metric · bid_security_deposit · tender_addendum · seal_requirement · submission_receipt · bid_opening_record

📎

投标人侧 7 种

bid_registration · tender_document_acquisition · tender_clarification · ca_credential · bid_document_version · deposit_return · bid_result_notice

07 历史知识库

把每次投标的经验自动沉淀,按当前项目智能推荐,一键采纳即落地为任务。让"每次从头踩坑"变成"组织记忆持续增值"。

复用推荐面板

历史复用推荐

经验相似度 87%
山区高速:BIM 应用章节是关键得分点

项目类型"高速"命中 · 含 BIM 评分项

来源:山区高速 · 西南 · 证据 3
材料相似度 72%
大型桥梁投标服务承诺函模板

materialType"承诺函"命中 · 评分项"服务承诺"命中

来源:长江大桥 · 华中 · 复用 5 次
经验✓ 已采纳
资格预审阶段人员证书提前 7 天备齐

已创建任务 T-2041

▲ 图 4:复用推荐面板 —— 经验/材料卡片 + 相似度 + 采纳/忽略

三张核心表

表名作用关键字段
ReusableLesson
可复用经验
沉淀中标/失标经验lessonType(中标因素/失标原因/风险模式/资格策略/评分策略/交付策略)· confidence · evidenceRefs · tags
ReusableMaterial
可复用材料
沉淀可复用文档/模板materialType · contentSummary · reuseCount · evidenceRefs · sourceEntityType(4 类来源)
ProjectReuseRecommendation
复用推荐
为当前项目生成推荐targetType · reason(含命中字段)· similarityScore · riskLevel · status · createdTaskId

采纳落地流程

① 推荐生成系统按字段匹配历史自动
② 用户采纳点「采纳」人工
③ 创建任务TaskItem(幂等)自动
reuseCount+1统计复用率统计
i
来源脱敏 + 项目隔离:跨项目复用时源项目只显示"项目类型 + 地点"(如"山区高速 · 西南"),不暴露业主/资质敏感字段。admin/投标负责人看全部,其余角色只看自己可访问项目的来源。

08 管理看板

面向经营层的全局视角:项目漏斗、风险分布、复用转化、成本台账、胜率与最近复盘,第一屏即可用看板。

i
当前状态:管理看板前端组件与后端 6 个 API 已完整开发,顶部导航入口与路由正在接入中。

看板解决什么问题

投标负责人和经营负责人经常需要回答这些问题:我们同时在投多少个项目?哪些项目风险最高?历史胜率如何?投标成本花在哪里?管理看板用 6 个 KPI 卡片和多个可视化图表,让这些问题的答案一目了然,不需要手动统计或到处翻数据。

6 个 KPI 卡片

项目总数

当前用户可见项目总数。hint 显示"在研 N · 已归档 N"。说明:让你一眼知道团队当前负荷。

🏆

胜率

won / (won + lost)。hint 显示"中标 N / 未中 N(废 N 单独统计)"。≥ 50% 时绿色高亮。说明:衡量投标质量的核心指标,持续跟踪可发现改进空间。

🔁

复用采纳率

reuseAccepted / reuseTotal。hint 显示"采纳 N / 总推荐 N"。说明:衡量知识库价值,采纳率高说明历史经验确实有用。

💰

总成本(CNY)

所有 BidCostItem 金额合计。hint 含无证据条数时黄色警告。说明:投标总花费,无证据条数提示成本数据可能不完整。

📊

平均成本 / 项目

totalCost / visibleProjectCount。说明:单个项目平均花费,用于预算规划。

平均成本 / 已递交

totalCost / submittedCount(submitted/post_bid_review/archived 三阶段计为已递交)。说明:已完成项目的平均成本,更准确反映实际花费。

项目漏斗(14 阶段)

每个阶段显示项目数 + 占总数百分比,条形图可视化。阶段顺序与流程总线一致:待启动 → 文件接收 → 文档索引 → 读标中 → 需求确认 → 资格核验 → 投标决策 → 响应规划 → 编标中 → 风险复核 → 封标中 → 已递交 → 投后复盘 → 已归档。

说明:漏斗图让你看到项目在哪个阶段堆积最多。如果"编标中"阶段项目过多,可能说明团队资源紧张;如果"封标中"阶段项目多,说明临近截止需要重点关注。

风险分布(三视图)

按等级

red / yellow / green 计数。说明:红色风险必须立即处理,黄色需要关注,绿色已通过。

📋

按状态

RiskFinding.status 的去重计数。说明:看风险的处理进度(待处理/处理中/已关闭)。

Top 类型

按 RiskFinding.category 聚合(最多 10 项):资格风险 / 签章风险 / 价格风险 / 暗标风险 / 格式风险 / 补遗风险 / 上传风险 / 截止风险 / 未分类。说明:找出哪类风险最多,针对性加强管理。

复用转化

统计 ProjectReuseRecommendation:状态分布(pending/accepted/ignored/dismissed)+ 类型分布(经验/材料)+ 转化率(accepted/total)。

说明:看团队是否在积极使用知识库。如果 ignored/dismissed 比例高,可能推荐质量需要优化;如果 accepted 比例高,说明知识库价值得到认可。

成本台账(8 类别)

👷

人工 labor

平台费 platform_fee

🔏

CA 费 ca_fee

💰

保证金占用 deposit_cost

差旅 travel

🖨

打印 printing

外包 outsourcing

其他 other

每个类别显示金额 + 占比条形图。另有 Top 10 成本最高项目列表。说明:找出成本大头,优化资源配置。如果"人工"占比过高,考虑引入更多自动化工具;如果"保证金占用"过高,优化资金周转。

最近复盘

取最近 10 条 PostBidReview,列 = 项目 / 结果(中标/未中标/废标/暂无结果)/ 复盘时间。结果用彩色 badge 区分。

说明:快速浏览最近的投标结果,中标用绿色、未中标用黄色、废标用红色,一目了然。

i
筛选器:时间范围 · 项目类型 · owner · 状态 · 风险等级。admin 看全部项目,非 admin 仅看自己作为成员的项目。

09 项目管理页

独立的「找项目/比项目/打开项目」主页面。当项目数变多、侧栏无法承载时,这里提供完整搜索、筛选、排序与多分辨率适配。

入口:顶部导航「项目管理」或作战台侧栏「项目管理」按钮 → 路由 /projects

为什么需要独立的项目管理页

作战台侧栏只显示最近 6 个项目,适合快速切换当前工作项目。但当团队同时投标 10+ 个项目时,侧栏就不够用了。项目管理页提供完整的搜索、筛选、排序能力,让你快速定位到需要处理的项目。

核心能力

🔍

搜索

单搜索框,对项目名 / 业主 / 地点 / 类型四字段做包含匹配。说明:输入"高速",会匹配到项目名含"高速"、业主含"高速"、地点含"高速"、类型含"高速"的所有项目。

5 维筛选

类型 · 状态(7 值)· 风险(红黄绿)· 业主 · 投标截止区间。说明:组合筛选,例如"高速公路 + 编标中 + 红色风险",快速找出高风险项目。

5 排序键

更新时间 · 投标截止 · 风险等级 · 状态 · 项目名。方向可切换。说明:按"投标截止"升序排列,优先处理临近截止的项目。

11 列表格

置顶按钮 · 项目名称(含地点副行)· 业主 · 类型 · 设计阶段 · 地点 · 状态(badge 着色)· 总风险(红黄绿)· 投标截止 · 更新时间 · 操作(打开)

说明:每行显示一个项目的关键信息。状态列用彩色 badge 区分(编标中=蓝色、读标中=黄色、已封标=绿色),风险列用红黄绿圆点标识。点击"打开"按钮进入该项目的作战台。

多分辨率适配

🖥

1080P

筛选并入顶部工具栏,表格全宽,预览隐藏。说明:适合笔记本屏幕,聚焦表格数据。

🖥

2K

三栏:左筛选栏(260px)+ 中表格 + 右预览面板(360px)。说明:选中表格某行后,右侧显示该项目详情,无需跳转页面。

🖥

4K

四栏:左筛选 + 表格 + 预览 + 洞察面板(含距投标截止倒计时)。说明:大屏显示器专用,信息密度最高。

i
置顶:仅前端 localStorage(不落库),置顶项目恒在排序最前。点击行可驱动右侧预览面板(2K/4K)。

10 外部平台集成

建立 integrations 模块,为 CA 签章、交易平台递交、飞书/企业微信通知提供 Adapter 骨架。当前全部默认走 stub/sandbox,不发真实网络请求。

为什么需要外部集成

投标过程中需要与多个外部系统交互:CA 证书签章(用于电子投标)、交易平台递交(上传投标文件到招标平台)、通知推送(飞书/企业微信消息提醒)。系统建立统一的集成框架,未来接入真实平台时只需替换 stub 实现,业务逻辑无需改动。

🔏

CA Stub

ca.sign.* 操作骨架。默认走 sandbox,不接真实 CA 生产接口。说明:未来接入真实 CA 时,只需实现 sign 方法,业务代码无需改动。

交易平台 Stub

trading.submission.* 操作骨架。默认走 sandbox,不接真实交易平台。说明:未来接入各地公共资源交易中心时,统一接口适配。

📱

飞书通知 Stub

notification.* 操作骨架。默认走 sandbox,不发真实飞书消息。说明:未来接入飞书机器人时,审批通过/风险告警等事件自动推送。

💬

企业微信通知 Stub

notification.* 操作骨架。默认走 sandbox,不发真实企业微信消息。说明:与飞书通知互斥,根据团队使用的 IM 工具选择。

安全机制

默认沙箱EXTERNAL_ADAPTER_ALLOW_NETWORK 未设置即走 stub,不发真实网络请求。说明:防止开发/测试环境误操作真实平台。
i
secrets 加密存储:复用 lib/crypto AES-256-GCM 加密,API 返回脱敏视图。HMAC SHA256 验签 + idempotencyKey/externalEventId 幂等。说明:平台密钥加密存储,API 返回时脱敏(如 sk-abcd****wxyz),防止泄露。
i
通知骨架:workflow event bus fire-and-forget 通知 hook,失败不阻塞主流程。说明:通知发送失败不影响业务流程,确保核心功能稳定。

真实 sandbox 联调

外部集成已完成真实 sandbox 联调闭环:CA 签章、交易平台递交、飞书/企业微信通知均接入真实 sandbox 环境验证,不再是纯 stub。联调通过后,配置真实生产凭证即可切换到生产环境,业务代码无需改动。

说明:sandbox 联调确保接口协议、签名验证、幂等处理、回调处理等关键链路在生产环境可用,降低上线风险。

运维告警(OpsAlert)

系统内置运维告警机制。当外部集成调用失败、任务队列堆积、数据库连接异常等关键事件发生时,自动生成 OpsAlert 记录。告警分两个级别:critical(严重,需立即处理)和 warning(警告,需关注)。

管理员可在告警面板(AlertsPanel)查看全部告警 / 未确认告警,按级别筛选,一键确认告警(POST /api/ops/alerts/:id/ack)。告警持久化存储,便于事后追溯。

11 AI 模型配置

系统不绑定单一厂商。8 家国内主流大模型全部兼容 OpenAI Chat Completions 协议,前端面板零代码切换。

如何配置 AI 模型

进入作战台后,点击左侧边栏的「⚙ AI 模型设置」按钮,弹出配置面板。在面板中选择 Provider(如智谱 GLM、DeepSeek 等),填入对应的 API Key,点击「测试连接」验证配置是否正确,最后点击「保存」。配置完成后,顶部状态栏会显示当前使用的 AI 模型(如"AI · 智谱 GLM")。

说明:API Key 经 AES-256-GCM 加密后入库,明文永不落库、永不入日志。所有读取接口只返回掩码(如 sk-abcd****wxyz),测试连接响应只含 success/latency/error,无 key 字段。

Provider中文标签默认模型控制台地址
zhipu智谱 GLMglm-4.5open.bigmodel.cn/usercenter/apikeys
deepseekDeepSeek 深度求索deepseek-chatplatform.deepseek.com/api_keys
minimaxMiniMax 稀宇MiniMax-M2platform.minimax.io
qwen通义千问 / 阿里百炼qwen-plusbailian.console.aliyun.com
moonshotKimi / 月之暗面moonshot-v1-8kplatform.moonshot.cn/console/api-keys
hunyuan腾讯元宝 / 混元hunyuan-turbos-latestconsole.cloud.tencent.com/hunyuan/api-key
mimo小米 MiMomimo-v2-promimo.mi.com
doubao豆包 / 火山方舟doubao-seed-1-6console.volcengine.com/ark

Provider 优先级与健康检查

系统默认优先级为:Ollama > DeepSeek > Zhipu。如果配置了多个 Provider,系统会按优先级自动选择可用的模型。健康检查接口(GET /api/settings/ai/health)统一探测各 Provider 的可用性,返回延迟和状态。

说明:未配置任何 AI 模型时,所有 Agent 自动走 rule-fallback 规则引擎(基于正则与关键词模板),事实型条目标记 needs_review。这意味着"不接外部模型也能演示系统全流程",但建议接上模型以获得更好的 AI 辅助效果。

i
协议兼容:8 家 Provider 全部走 OpenAI Chat Completions 协议,前端面板实现零代码切换模型。未来新增 Provider 时,只需在配置面板添加选项,业务代码无需改动。

12 数据安全

投标数据是公司核心资产。系统在密钥、证据、权限、审计四道防线上做了硬约束。

四道防线详解

🔐

密钥加密入库

API Key 经 AES-256-GCM 加密;主密钥由 APP_SECRET 经 SHA-256 派生。明文永不落库、永不入日志。说明:即使数据库泄露,攻击者也无法获取明文 API Key。生产环境必须设置强随机 APP_SECRET(openssl rand -hex 32)。

② 前端只看掩码

所有读取接口只返回掩码(如 sk-abcd****wxyz);测试连接响应只含 success/latency/error,无 key 字段。说明:前端无法获取明文 Key,防止 XSS 攻击窃取密钥。

③ 防编造红线

AI 输出分来源型/推理型/创作型。事实型条目必须绑定证据,否则进入"待人工确认"。说明:防止 AI 编造企业资质、业绩等关键信息,确保输出可信。

④ 权限矩阵

6 角色 × 20+ 操作的权限矩阵。viewer 只读、reviewer 专审、关键操作强制审批。说明:最小权限原则,每个角色只能访问必要的功能。

审批留痕

6 类审批全部留痕:发起人、审核人、意见、决定时间。便于复盘与对外举证。说明:满足审计合规要求,出现问题时可追溯责任。

审计日志

所有角色可查看审计日志(audit:view),记录关键操作的全过程。说明:谁在什么时候做了什么操作,全部记录在案,防止内部违规。

!
部署红线:生产环境必须设置强随机 APP_SECRET,否则密钥等同于明文存储;同时定期轮换,避免长期暴露。

13 SSO 单点登录与组织管理

系统已完成生产级身份认证闭环:支持真实 OIDC 单点登录(SSO)、外部身份与本地账号链接、多组织(租户)隔离管理。

SSO 单点登录

系统支持通过企业身份提供商(IdP)进行 OIDC 协议单点登录,用户无需在系统内重复注册账号,用企业统一身份即可登录。登录页提供「SSO 登录」入口,跳转到 IdP 完成认证后回调到系统,自动建立登录态。

SSO 登录流程

① 点击 SSO 登录登录页跳转 IdP前端
② IdP 认证用户在 IdP 输入凭据IdP
③ 回调换 Tokencode+state 换 JWT后端
④ 建立登录态跳转主页前端

说明:回调页(SsoCallbackPage)从 URL 读取 code + state,POST 到后端换取 JWT Token,成功后写入登录态并跳转主页;失败时展示可读错误并提供返回登录的链接。state 参数防止 CSRF 攻击,使用后自动清理。

外部身份链接

首次通过 SSO 登录时,系统会根据 IdP 返回的用户信息(邮箱、外部 ID)自动创建本地账号或链接到已有账号。一个本地账号可链接多个外部身份(如同时绑定飞书、企业微信),登录时任选其一即可。链接关系存储在 SsoExternalIdentity 表,支持解绑。

SSO 管理面板(SsoAdminPanel)

管理员在「设置」弹窗中可配置 SSO Provider:显示 readiness(各 Provider 就绪状态)、列出/创建/更新/删除 SSO 配置(clientSecret 加密存储,API 只返回掩码)、手动触发 state 清理、查看 scheduler 运行状态。配置项包括 authUrl / tokenUrl / userinfoUrl / redirectUri / clientId / clientSecret。

组织(租户)管理

系统支持多组织隔离。每个用户必须属于一个组织(默认自动加入 default 组织),所有数据查询自动按 organizationId 过滤,跨组织访问返回 404(不泄露存在性)。管理员权限按组织边界约束。

🏢

组织模型

Organization 表存储组织信息:name / slug / plan(套餐)/ maxUsers / maxProjects / enabled。每个组织有成员数和项目数上限。

👤

成员关系

UserOrganization 表存储用户与组织的归属关系。一个用户可属于多个组织,切换组织后看到对应数据。

🔒

数据隔离

JobRecord 等核心表带 organizationId 字段,查询自动过滤。跨组织访问返回 404,防止数据泄露。

i
说明:组织管理服务(organization.service.ts)从早期的内存 Map 存储硬化为 Prisma 落库,重启不丢失。所有写操作记录 AuditLog,便于追溯。

14 系统架构

前后端分离 + 共享类型 + Prisma ORM。后端按领域拆成 34 个模块,数据库 58 张核心表。

技术栈说明

前端采用 React + Vite + react-router,组件化开发,支持多分辨率适配(1080P/2K/4K)。后端采用 Fastify + Prisma + PostgreSQL(生产主路径),REST API 设计,Zod 入参校验。共享类型包(@bid-ai/shared)定义领域类型和校验规则,前后端共用,避免类型不一致。

说明:生产环境采用 PostgreSQL 作为主数据库,SQLite 仅用于本地开发与快速演示。Prisma ORM 提供类型安全的数据库访问,migration 工具支持 schema 演进。

生产基础设施

系统已具备生产部署能力,包含以下基础设施:

代码规模

📄

源码文件

194 个

.ts / .tsx

📝

源码行数

约 78,700

后端 50k + 前端 22k + 共享 6k

🧪

测试代码

约 24,000 行

800+ 测试用例

📦

后端模块

34 个

按领域划分

核心模块列表

后端 34 个模块按领域划分:workflow(流程总线 + 门禁)、procurement(招采执行)、management(管理看板)、knowledge(知识库)、jobs(pg-boss 任务队列)、integrations(外部集成)、ops(运维/审计导出/告警)、organizations(组织/租户管理)、auth(认证 + SSO OIDC)、approvals(审批)、comments(评论)、notifications(通知)、members(成员)、users(用户)、activity(活动流)、audit(审计)、documents(文档)、review(复盘)、copilot(作战助手)、agents(Agent)、ai(AI Provider)、evidence(证据)、files(文件)、projects(项目)、library(资料库)、catalog(目录)、rules(规则)、tasks(任务)、risk-findings(风险事项)、settings(设置)、health(健康检查)、admin(管理后台)、scripts(运维脚本)。

运行方式npm installnpm run dev。生产环境:PostgreSQL + MinIO/S3 + Worker 服务,通过 docker-compose 编排。健康检查 /health,就绪检查 /ready

15 后台任务与生产基础设施

系统已具备生产部署能力,涵盖 PostgreSQL 主库、对象存储、后台任务队列、生产认证、权限硬化五大基础设施。

后台任务队列(pg-boss)

系统将耗时的业务流程(文件抽取、材料索引、Agent 运行、文档生成、档案包导出、开标知识沉淀、外部集成派发)后台化,使用 pg-boss 作为任务队列引擎。任务状态面板(JobStatusPanel)实时展示每个项目的任务执行进度。

6 类后台任务

任务类型说明典型耗时
file.extract 文件抽取从上传的 PDF/Word 文档中抽取文本与结构化内容几秒 ~ 几十秒
material.index 材料索引建立材料索引以供快速检索几秒 ~ 几十秒
agent.run Agent 运行调用 AI 模型执行读标拆标、资格核验等任务10 秒 ~ 几分钟
document.generate 文档生成生成技术标初稿、商务清单、风险报告等 DOCX几十秒 ~ 几分钟
procurement.dossier.export 档案包导出生成 22 章档案包 DOCX几十秒 ~ 几分钟
procurement.opening_knowledge.extract 开标知识沉淀从开标结果中提取经验沉淀到知识库几秒 ~ 几十秒

任务状态 5 种

queued 排队中

任务已提交,等待 Worker 调度。灰色显示。

🔄

running 运行中

Worker 正在处理。蓝色 + 旋转图标。

succeeded 已完成

任务成功完成。绿色显示。

failed 失败

任务执行失败,红色 + 错误消息,可重试(需 project:update 权限)。

canceled 已取消

任务被手动取消。灰色显示。

任务状态面板(JobStatusPanel)

在项目工作台的任务面板,实时展示该项目的所有后台任务。轮询策略:有运行中或排队中的任务时每 3 秒刷新一次,空闲时 10 秒刷新一次。失败的任务可点击"重试"重新执行(需 project:update 权限),运行中或排队的任务可点击"取消"终止。

对象存储(StorageService)

系统通过 StorageService 抽象层统一管理文件存储,业务代码无需关心底层实现。当前支持两种 adapter:

📁

Local Adapter

文件系统存储。适合开发与单机部署,默认路径在 apps/api/storage/

☁️

S3 / MinIO Adapter

对象存储。生产环境推荐,支持 MinIO 自建或 AWS S3 托管,通过环境变量配置 endpoint/bucket/credentials。

生产认证(JWT + 密码)

系统已切换到生产认证模式,不再依赖可伪造的 header 传递用户身份。登录页(LoginPage)支持邮箱 + 密码登录,登录成功后在 HttpOnly Cookie 中存储 JWT Token,所有 API 请求自动携带 Token,服务端校验后识别用户身份。

首次部署时通过 bootstrap admin 流程创建初始管理员账号,登录后即可使用系统全部功能。

权限硬化

即使前端按钮被禁用或隐藏,服务端仍然二次校验权限。viewer 角色调用写接口直接返回 403,红色风险关闭必须走审批流程,跨项目访问返回 404(防止存在性泄露),所有写操作记录 AuditLog。

审计导出(ops 模块)

ops 模块提供生产运维能力:审计日志批量导出(支持按时间范围/项目/用户过滤)、生产就绪检查清单(验证数据库/对象存储/任务队列/外部集成配置正确性)、运行检查清单(监控关键指标)。

部署形态

生产环境通过 docker-compose 编排:API 服务 + Worker 服务(消费 pg-boss 任务队列)+ MinIO(对象存储)+ PostgreSQL(主数据库)。Worker 与 API 分离部署,互不影响:Worker 宕机不影响 API 接收请求,任务会在队列中等待 Worker 恢复后处理。

16 常见问题

?

没接外部模型也能用吗?

可以。Agent 自动走 rule-fallback,事实型条目标记 needs_review。建议接上模型效果更佳。

?

权限不够按钮灰着怎么办?

顶部右上角切换到对应角色(要审批切 reviewer,要管资料库切 business_owner)。鼠标悬停灰按钮显示所需权限。

?

红色风险关不掉?

红色风险关闭走审批。点关闭后系统自动创建 risk_close 审批,到「协作」Tab 等 reviewer 批准。

?

流程卡在某个阶段不动?

到「流程」Tab 看顶部红色 Gate 警告,列出阻塞项。解决后系统自动放行,或点「下一步行动」一键执行。

?

档案包导出按钮灰着?

导出档案包必须归档完整性检查通过。到「招采执行」Tab 看完整性检查结果,解决阻塞项(如保证金未确认、补遗未响应)后即可导出。

?

项目太多侧栏放不下?

点侧栏「项目管理」或顶部导航「项目管理」,进入独立项目管理页,支持搜索、5 维筛选、5 排序键、11 列表格。

?

历史经验怎么复用?

「流程」Tab 内有「历史复用推荐」+「历史知识库」面板。前者按当前项目字段自动推荐,点「采纳」即创建任务;后者可浏览/筛选全部沉淀的经验和材料。

?

已归档项目能改吗?

不能。已归档项目只读,所有编辑/运行/招采编辑按钮禁用,保留全部历史供复盘与举证。

?

Agent 跑得很慢怎么办?

AI Agent 任务在后台队列执行(pg-boss),可在项目工作台的任务状态面板查看进度。失败的任务可点击「重试」重新执行。

?

首次部署怎么登录?

首次部署需通过 bootstrap admin 流程创建初始管理员账号。登录页提供「首次使用引导」入口,按提示设置邮箱和密码即可。

?

文件存在哪里?

系统通过 StorageService 抽象统一管理文件存储。开发环境默认本地文件系统,生产环境支持 S3/MinIO 对象存储,通过环境变量切换 adapter。

结语:系统让投标全流程从"凭经验、靠微信、封标前夜熬夜"进化为"流程总线不跳步、招采台账全留痕、管理看板有数据、历史经验可复用"。把投标专家从重复劳动中彻底解放出来,专注真正需要判断力的工作 —— 要不要投、怎么投、如何赢。