系统面向交通工程设计类投标场景,覆盖读标 → 资格 → 评分 → 封标 → 递交 → 开标 → 复盘 → 归档完整链路。以 14 阶段流程总线驱动投标过程,内置 7 个 AI Agent 辅助读标拆标、资格核验、评分响应、封标风控等核心环节,同时提供招采执行台账(12 类实体 + 22 章档案包)、历史知识库(经验沉淀 + 智能复用)、管理看板(KPI + 漏斗 + 成本)等能力,让投标团队告别"凭经验、靠微信、封标前夜熬夜"的传统模式。
面向交通工程设计类投标工作的 AI 辅助平台,核心目标是降低漏读、漏响应、资格不全、封标错误导致的失分或废标风险。
招标文件 200~500 页,关键条款藏在长段文字里,靠人工标注容易漏项。
评分项 30~60 条,每条要对应材料、章节、责任人,标书越写越乱。
资质、业绩、人员、证书分散在不同人手里,封标前夜才发现。
签章、格式、暗标、补遗、上传、保证金 —— 任何疏忽都可能导致废标。
报名、CA、递交、开标、退还各环节信息散落,无台账、无留痕。
谁改了什么、谁确认了什么、审批到哪一步,靠口头和微信,无法举证。
关注项目整体风险等级、是否立项、关键时间节点。常用管理看板与项目列表的"总风险"指标。
统筹读标、分工、评分响应、封标检查。常用作战台首页、流程工作台、7 个 Agent 一键运行。
维护企业资质、业绩、证书、商务文件。常用资料库页与资格核验清单。
确认技术评分点、技术建议书提纲和章节质量。常用评分响应矩阵与文档生成。
审批中枢。批准 / 驳回 6 类审批、确认或驳回 AI 输出。无权创建项目或关闭风险。
外部观察者。只能下载文档、查看审计日志。无权修改任何内容。
| 操作 | 管理员 | 投标负责人 | 商务 | 技术 | 审核 | 访客 |
|---|---|---|---|---|---|---|
| 创建 / 删除项目 | ✓ | 创建 | — | — | — | — |
| 运行 AI Agent | ✓ | ✓ | — | — | — | — |
| 确认 / 驳回 AI 输出 | ✓ | ✓ | ✓ | ✓ | ✓ | — |
| 关闭红色风险 | ✓ 直接 | 需审批 | — | — | — | — |
| 招采实体编辑 | ✓ | 需权限 | — | — | — | — |
| 生成 / 导出档案包 | ✓ | ✓ | — | ✓ | — | — |
| 批准 / 驳回审批 | ✓ | — | — | — | ✓ | — |
| 管理 AI 模型密钥 | ✓ | — | — | — | — | — |
系统有三个主页面:作战台(核心工作区)、项目管理(找项目 / 比项目)、资料库(企业基础数据)。顶部全局导航在三者间切换。
路由:/(根路径)。核心工作区,含 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。
6 张结构化表 + 证据
▶ 运行资质 / 业绩 / 人员红黄绿
▶ 运行拿分矩阵 + AI 建议
▶ 运行签章 / 格式 / 暗标检查
▶ 运行问答式今日必办
▶ 运行推荐最优组合
▶ 运行目录与章节要点
▶ 运行人工复核闭环
▶ 详情▲ 手机底部 4 Tab。「我的」打开 AI 设置 + 通知 + 用户切换。本说明书也已做手机端断点适配,可直接在手机浏览器阅读。
系统把投标拆成 14 个阶段,每个阶段有明确的进入条件与放行条件(门禁 Gate)。阻塞项不解决,流程不放行。
▲ 红色编号 4 / 6 / 10 为关键门禁阶段:需求确认 / 投标决策 / 封标。未通过不放行。
系统在流程工作台顶部红色提示「️ 门禁不通过:N 项」,列出具体阻塞项。
点击「执行」即触发对应接口,流程阶段自动推进。
作战台是系统的核心工作区,所有投标操作都从这里发起。顶部 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 个快捷问题 / 自然语言提问 / 证据查看器 | 投标负责人 |
概览是进入作战台后看到的第一个页面。顶部显示 4 个关键指标:投标截止时间(距离截止还有多久)、红色风险数(必须立即处理的问题数量)、评分响应进度(已完成评分项的百分比)、绿色项数(已通过检查的项目数量)。
指标卡下方是 7 个 AI Agent 的运行网格。每个 Agent 卡片显示名称、功能描述、运行按钮。点击「▶ 运行」即可触发该 Agent 执行对应任务。运行完成后,卡片下方会显示输出摘要和证据来源。点击「▶ 详情」可展开右侧抽屉,查看完整的结构化输出和人工确认状态。
耗时的 Agent 任务会转入后台队列执行,作战台显示任务状态(排队中/运行中/已完成/失败)。后台任务详见第 14 章。
系统内置 7 个 AI Agent。其中 4 个是核心工作流 Agent,驱动 14 阶段流程总线的关键阶段;另外 3 个是辅助增强 Agent,提供问答、匹配、创作能力。
每个 Agent 都是一个独立的智能体,接收特定类型的输入数据,经过 AI 模型处理后输出结构化结果。例如,读标拆标 Agent 接收招标文件原文,输出 6 张结构化表(项目摘要、资格条件、评分办法、否决条款、关键时间、文件组成);资格核验 Agent 接收资格条件表和企业资质库,输出每条资格的匹配状态(matched/partial/unmatched)和风险等级(红黄绿)。
所有 Agent 的输出都遵循防编造红线:事实型内容(企业资质、业绩、人员证书)必须绑定来源证据,否则标记为"待人工确认"。创作型内容(技术建议书大纲)可以生成,但不能直接定稿,必须经过人工审核。
| Agent | 类型 | 做什么 | 输出 |
|---|---|---|---|
| 读标拆标 | 核心工作流 | 解析招标文件/补遗/答疑,提取项目摘要、资格、评分、否决、关键时间 | 6 张结构化表 + 来源证据 |
| 🛡 资格核验 | 核心工作流 | 匹配企业资质、设计业绩、人员、证书、信誉 | matched/partial/unmatched + 红黄绿 |
| 🎯 评分响应 | 核心工作流 | 把每个评分项对应到材料、章节、责任人 + 推荐业绩人员 | 拿分作战矩阵 |
| 封标风控 | 核心工作流 | 封标前红黄绿检查 —— 签章、格式、暗标、补遗、上传、时间 | 封标前风险报告 + 整改建议 |
| 🤝 作战助手 Copilot | 辅助增强 | 基于数据库回答"现在最危险的问题/今日必办" | 问答 + 证据查看器 |
| 业绩人员匹配 | 辅助增强 | 按项目类型/规模/阶段,推荐最优业绩组合与人员组合 | Top 3 业绩方案 + 人员矩阵 |
| 技术建议书 | 辅助增强 | 生成技术标目录与每章响应要点 | Markdown 提纲 + 章节要点 |
在作战台「概览」Tab,你会看到 7 个 Agent 的运行网格。每个 Agent 卡片右下角有一个「▶ 运行」按钮。点击后,系统会调用对应的 AI 模型处理数据,运行状态会显示为"运行中"。运行完成后,卡片下方会显示输出摘要,点击「▶ 详情」可展开右侧抽屉查看完整的结构化输出、证据来源列表、以及人工确认状态(已确认/待确认/已驳回)。
「招采执行」Tab 把投标人侧真实过程数字化:从报名、拿标书、澄清、CA、版本、递交、开标到退还,12 类实体全程留痕,一键导出 22 章档案包,归档完整性自动校验。
除 4 分区外,面板顶部还有 5 类核心实体的快捷网格:保证金/保函、补遗/答疑、签章/CA/暗标、递交回执、开标记录。每类显示计数 + 状态。
归档完整性检查通过后,一键导出完整投标执行档案包(DOCX 格式),包含 22 个章节:
WorkflowBlockingItem 中 severity=red & status=open 的项必须为 0。
保证金已确认/豁免 · 补遗已响应 · 签章已满足 · 递交回执已提交。
项目必须有 PostBidReview 记录。
完成态实体的 evidenceRefs 必须真实存在、同项目、未归档。
BusinessEntityLink 勾稽缺口只进 warnings(不阻塞)。
项目已处于 archived 阶段时,必须有 project.archived 事件。
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
bid_registration · tender_document_acquisition · tender_clarification · ca_credential · bid_document_version · deposit_return · bid_result_notice
把每次投标的经验自动沉淀,按当前项目智能推荐,一键采纳即落地为任务。让"每次从头踩坑"变成"组织记忆持续增值"。
项目类型"高速"命中 · 含 BIM 评分项
materialType"承诺函"命中 · 评分项"服务承诺"命中
已创建任务 T-2041
| 表名 | 作用 | 关键字段 |
|---|---|---|
| ReusableLesson 可复用经验 | 沉淀中标/失标经验 | lessonType(中标因素/失标原因/风险模式/资格策略/评分策略/交付策略)· confidence · evidenceRefs · tags |
| ReusableMaterial 可复用材料 | 沉淀可复用文档/模板 | materialType · contentSummary · reuseCount · evidenceRefs · sourceEntityType(4 类来源) |
| ProjectReuseRecommendation 复用推荐 | 为当前项目生成推荐 | targetType · reason(含命中字段)· similarityScore · riskLevel · status · createdTaskId |
面向经营层的全局视角:项目漏斗、风险分布、复用转化、成本台账、胜率与最近复盘,第一屏即可用看板。
投标负责人和经营负责人经常需要回答这些问题:我们同时在投多少个项目?哪些项目风险最高?历史胜率如何?投标成本花在哪里?管理看板用 6 个 KPI 卡片和多个可视化图表,让这些问题的答案一目了然,不需要手动统计或到处翻数据。
当前用户可见项目总数。hint 显示"在研 N · 已归档 N"。说明:让你一眼知道团队当前负荷。
won / (won + lost)。hint 显示"中标 N / 未中 N(废 N 单独统计)"。≥ 50% 时绿色高亮。说明:衡量投标质量的核心指标,持续跟踪可发现改进空间。
reuseAccepted / reuseTotal。hint 显示"采纳 N / 总推荐 N"。说明:衡量知识库价值,采纳率高说明历史经验确实有用。
所有 BidCostItem 金额合计。hint 含无证据条数时黄色警告。说明:投标总花费,无证据条数提示成本数据可能不完整。
totalCost / visibleProjectCount。说明:单个项目平均花费,用于预算规划。
totalCost / submittedCount(submitted/post_bid_review/archived 三阶段计为已递交)。说明:已完成项目的平均成本,更准确反映实际花费。
每个阶段显示项目数 + 占总数百分比,条形图可视化。阶段顺序与流程总线一致:待启动 → 文件接收 → 文档索引 → 读标中 → 需求确认 → 资格核验 → 投标决策 → 响应规划 → 编标中 → 风险复核 → 封标中 → 已递交 → 投后复盘 → 已归档。
说明:漏斗图让你看到项目在哪个阶段堆积最多。如果"编标中"阶段项目过多,可能说明团队资源紧张;如果"封标中"阶段项目多,说明临近截止需要重点关注。
red / yellow / green 计数。说明:红色风险必须立即处理,黄色需要关注,绿色已通过。
RiskFinding.status 的去重计数。说明:看风险的处理进度(待处理/处理中/已关闭)。
按 RiskFinding.category 聚合(最多 10 项):资格风险 / 签章风险 / 价格风险 / 暗标风险 / 格式风险 / 补遗风险 / 上传风险 / 截止风险 / 未分类。说明:找出哪类风险最多,针对性加强管理。
统计 ProjectReuseRecommendation:状态分布(pending/accepted/ignored/dismissed)+ 类型分布(经验/材料)+ 转化率(accepted/total)。
说明:看团队是否在积极使用知识库。如果 ignored/dismissed 比例高,可能推荐质量需要优化;如果 accepted 比例高,说明知识库价值得到认可。
每个类别显示金额 + 占比条形图。另有 Top 10 成本最高项目列表。说明:找出成本大头,优化资源配置。如果"人工"占比过高,考虑引入更多自动化工具;如果"保证金占用"过高,优化资金周转。
取最近 10 条 PostBidReview,列 = 项目 / 结果(中标/未中标/废标/暂无结果)/ 复盘时间。结果用彩色 badge 区分。
说明:快速浏览最近的投标结果,中标用绿色、未中标用黄色、废标用红色,一目了然。
独立的「找项目/比项目/打开项目」主页面。当项目数变多、侧栏无法承载时,这里提供完整搜索、筛选、排序与多分辨率适配。
入口:顶部导航「项目管理」或作战台侧栏「项目管理」按钮 → 路由 /projects
作战台侧栏只显示最近 6 个项目,适合快速切换当前工作项目。但当团队同时投标 10+ 个项目时,侧栏就不够用了。项目管理页提供完整的搜索、筛选、排序能力,让你快速定位到需要处理的项目。
单搜索框,对项目名 / 业主 / 地点 / 类型四字段做包含匹配。说明:输入"高速",会匹配到项目名含"高速"、业主含"高速"、地点含"高速"、类型含"高速"的所有项目。
类型 · 状态(7 值)· 风险(红黄绿)· 业主 · 投标截止区间。说明:组合筛选,例如"高速公路 + 编标中 + 红色风险",快速找出高风险项目。
更新时间 · 投标截止 · 风险等级 · 状态 · 项目名。方向可切换。说明:按"投标截止"升序排列,优先处理临近截止的项目。
置顶按钮 · 项目名称(含地点副行)· 业主 · 类型 · 设计阶段 · 地点 · 状态(badge 着色)· 总风险(红黄绿)· 投标截止 · 更新时间 · 操作(打开)
说明:每行显示一个项目的关键信息。状态列用彩色 badge 区分(编标中=蓝色、读标中=黄色、已封标=绿色),风险列用红黄绿圆点标识。点击"打开"按钮进入该项目的作战台。
筛选并入顶部工具栏,表格全宽,预览隐藏。说明:适合笔记本屏幕,聚焦表格数据。
三栏:左筛选栏(260px)+ 中表格 + 右预览面板(360px)。说明:选中表格某行后,右侧显示该项目详情,无需跳转页面。
四栏:左筛选 + 表格 + 预览 + 洞察面板(含距投标截止倒计时)。说明:大屏显示器专用,信息密度最高。
建立 integrations 模块,为 CA 签章、交易平台递交、飞书/企业微信通知提供 Adapter 骨架。当前全部默认走 stub/sandbox,不发真实网络请求。
投标过程中需要与多个外部系统交互:CA 证书签章(用于电子投标)、交易平台递交(上传投标文件到招标平台)、通知推送(飞书/企业微信消息提醒)。系统建立统一的集成框架,未来接入真实平台时只需替换 stub 实现,业务逻辑无需改动。
ca.sign.* 操作骨架。默认走 sandbox,不接真实 CA 生产接口。说明:未来接入真实 CA 时,只需实现 sign 方法,业务代码无需改动。
trading.submission.* 操作骨架。默认走 sandbox,不接真实交易平台。说明:未来接入各地公共资源交易中心时,统一接口适配。
notification.* 操作骨架。默认走 sandbox,不发真实飞书消息。说明:未来接入飞书机器人时,审批通过/风险告警等事件自动推送。
notification.* 操作骨架。默认走 sandbox,不发真实企业微信消息。说明:与飞书通知互斥,根据团队使用的 IM 工具选择。
EXTERNAL_ADAPTER_ALLOW_NETWORK 未设置即走 stub,不发真实网络请求。说明:防止开发/测试环境误操作真实平台。外部集成已完成真实 sandbox 联调闭环:CA 签章、交易平台递交、飞书/企业微信通知均接入真实 sandbox 环境验证,不再是纯 stub。联调通过后,配置真实生产凭证即可切换到生产环境,业务代码无需改动。
说明:sandbox 联调确保接口协议、签名验证、幂等处理、回调处理等关键链路在生产环境可用,降低上线风险。
系统内置运维告警机制。当外部集成调用失败、任务队列堆积、数据库连接异常等关键事件发生时,自动生成 OpsAlert 记录。告警分两个级别:critical(严重,需立即处理)和 warning(警告,需关注)。
管理员可在告警面板(AlertsPanel)查看全部告警 / 未确认告警,按级别筛选,一键确认告警(POST /api/ops/alerts/:id/ack)。告警持久化存储,便于事后追溯。
系统不绑定单一厂商。8 家国内主流大模型全部兼容 OpenAI Chat Completions 协议,前端面板零代码切换。
进入作战台后,点击左侧边栏的「⚙ AI 模型设置」按钮,弹出配置面板。在面板中选择 Provider(如智谱 GLM、DeepSeek 等),填入对应的 API Key,点击「测试连接」验证配置是否正确,最后点击「保存」。配置完成后,顶部状态栏会显示当前使用的 AI 模型(如"AI · 智谱 GLM")。
说明:API Key 经 AES-256-GCM 加密后入库,明文永不落库、永不入日志。所有读取接口只返回掩码(如 sk-abcd****wxyz),测试连接响应只含 success/latency/error,无 key 字段。
| Provider | 中文标签 | 默认模型 | 控制台地址 |
|---|---|---|---|
| zhipu | 智谱 GLM | glm-4.5 | open.bigmodel.cn/usercenter/apikeys |
| deepseek | DeepSeek 深度求索 | deepseek-chat | platform.deepseek.com/api_keys |
| minimax | MiniMax 稀宇 | MiniMax-M2 | platform.minimax.io |
| qwen | 通义千问 / 阿里百炼 | qwen-plus | bailian.console.aliyun.com |
| moonshot | Kimi / 月之暗面 | moonshot-v1-8k | platform.moonshot.cn/console/api-keys |
| hunyuan | 腾讯元宝 / 混元 | hunyuan-turbos-latest | console.cloud.tencent.com/hunyuan/api-key |
| mimo | 小米 MiMo | mimo-v2-pro | mimo.mi.com |
| doubao | 豆包 / 火山方舟 | doubao-seed-1-6 | console.volcengine.com/ark |
系统默认优先级为:Ollama > DeepSeek > Zhipu。如果配置了多个 Provider,系统会按优先级自动选择可用的模型。健康检查接口(GET /api/settings/ai/health)统一探测各 Provider 的可用性,返回延迟和状态。
说明:未配置任何 AI 模型时,所有 Agent 自动走 rule-fallback 规则引擎(基于正则与关键词模板),事实型条目标记 needs_review。这意味着"不接外部模型也能演示系统全流程",但建议接上模型以获得更好的 AI 辅助效果。
投标数据是公司核心资产。系统在密钥、证据、权限、审计四道防线上做了硬约束。
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,否则密钥等同于明文存储;同时定期轮换,避免长期暴露。系统已完成生产级身份认证闭环:支持真实 OIDC 单点登录(SSO)、外部身份与本地账号链接、多组织(租户)隔离管理。
系统支持通过企业身份提供商(IdP)进行 OIDC 协议单点登录,用户无需在系统内重复注册账号,用企业统一身份即可登录。登录页提供「SSO 登录」入口,跳转到 IdP 完成认证后回调到系统,自动建立登录态。
说明:回调页(SsoCallbackPage)从 URL 读取 code + state,POST 到后端换取 JWT Token,成功后写入登录态并跳转主页;失败时展示可读错误并提供返回登录的链接。state 参数防止 CSRF 攻击,使用后自动清理。
首次通过 SSO 登录时,系统会根据 IdP 返回的用户信息(邮箱、外部 ID)自动创建本地账号或链接到已有账号。一个本地账号可链接多个外部身份(如同时绑定飞书、企业微信),登录时任选其一即可。链接关系存储在 SsoExternalIdentity 表,支持解绑。
管理员在「设置」弹窗中可配置 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,防止数据泄露。
前后端分离 + 共享类型 + 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 install → npm run dev。生产环境:PostgreSQL + MinIO/S3 + Worker 服务,通过 docker-compose 编排。健康检查 /health,就绪检查 /ready。系统已具备生产部署能力,涵盖 PostgreSQL 主库、对象存储、后台任务队列、生产认证、权限硬化五大基础设施。
系统将耗时的业务流程(文件抽取、材料索引、Agent 运行、文档生成、档案包导出、开标知识沉淀、外部集成派发)后台化,使用 pg-boss 作为任务队列引擎。任务状态面板(JobStatusPanel)实时展示每个项目的任务执行进度。
| 任务类型 | 说明 | 典型耗时 |
|---|---|---|
| file.extract 文件抽取 | 从上传的 PDF/Word 文档中抽取文本与结构化内容 | 几秒 ~ 几十秒 |
| material.index 材料索引 | 建立材料索引以供快速检索 | 几秒 ~ 几十秒 |
| agent.run Agent 运行 | 调用 AI 模型执行读标拆标、资格核验等任务 | 10 秒 ~ 几分钟 |
| document.generate 文档生成 | 生成技术标初稿、商务清单、风险报告等 DOCX | 几十秒 ~ 几分钟 |
| procurement.dossier.export 档案包导出 | 生成 22 章档案包 DOCX | 几十秒 ~ 几分钟 |
| procurement.opening_knowledge.extract 开标知识沉淀 | 从开标结果中提取经验沉淀到知识库 | 几秒 ~ 几十秒 |
任务已提交,等待 Worker 调度。灰色显示。
Worker 正在处理。蓝色 + 旋转图标。
任务成功完成。绿色显示。
任务执行失败,红色 + 错误消息,可重试(需 project:update 权限)。
任务被手动取消。灰色显示。
在项目工作台的任务面板,实时展示该项目的所有后台任务。轮询策略:有运行中或排队中的任务时每 3 秒刷新一次,空闲时 10 秒刷新一次。失败的任务可点击"重试"重新执行(需 project:update 权限),运行中或排队的任务可点击"取消"终止。
系统通过 StorageService 抽象层统一管理文件存储,业务代码无需关心底层实现。当前支持两种 adapter:
文件系统存储。适合开发与单机部署,默认路径在 apps/api/storage/。
对象存储。生产环境推荐,支持 MinIO 自建或 AWS S3 托管,通过环境变量配置 endpoint/bucket/credentials。
系统已切换到生产认证模式,不再依赖可伪造的 header 传递用户身份。登录页(LoginPage)支持邮箱 + 密码登录,登录成功后在 HttpOnly Cookie 中存储 JWT Token,所有 API 请求自动携带 Token,服务端校验后识别用户身份。
首次部署时通过 bootstrap admin 流程创建初始管理员账号,登录后即可使用系统全部功能。
即使前端按钮被禁用或隐藏,服务端仍然二次校验权限。viewer 角色调用写接口直接返回 403,红色风险关闭必须走审批流程,跨项目访问返回 404(防止存在性泄露),所有写操作记录 AuditLog。
ops 模块提供生产运维能力:审计日志批量导出(支持按时间范围/项目/用户过滤)、生产就绪检查清单(验证数据库/对象存储/任务队列/外部集成配置正确性)、运行检查清单(监控关键指标)。
生产环境通过 docker-compose 编排:API 服务 + Worker 服务(消费 pg-boss 任务队列)+ MinIO(对象存储)+ PostgreSQL(主数据库)。Worker 与 API 分离部署,互不影响:Worker 宕机不影响 API 接收请求,任务会在队列中等待 Worker 恢复后处理。
可以。Agent 自动走 rule-fallback,事实型条目标记 needs_review。建议接上模型效果更佳。
顶部右上角切换到对应角色(要审批切 reviewer,要管资料库切 business_owner)。鼠标悬停灰按钮显示所需权限。
红色风险关闭走审批。点关闭后系统自动创建 risk_close 审批,到「协作」Tab 等 reviewer 批准。
到「流程」Tab 看顶部红色 Gate 警告,列出阻塞项。解决后系统自动放行,或点「下一步行动」一键执行。
导出档案包必须归档完整性检查通过。到「招采执行」Tab 看完整性检查结果,解决阻塞项(如保证金未确认、补遗未响应)后即可导出。
点侧栏「项目管理」或顶部导航「项目管理」,进入独立项目管理页,支持搜索、5 维筛选、5 排序键、11 列表格。
「流程」Tab 内有「历史复用推荐」+「历史知识库」面板。前者按当前项目字段自动推荐,点「采纳」即创建任务;后者可浏览/筛选全部沉淀的经验和材料。
不能。已归档项目只读,所有编辑/运行/招采编辑按钮禁用,保留全部历史供复盘与举证。
AI Agent 任务在后台队列执行(pg-boss),可在项目工作台的任务状态面板查看进度。失败的任务可点击「重试」重新执行。
首次部署需通过 bootstrap admin 流程创建初始管理员账号。登录页提供「首次使用引导」入口,按提示设置邮箱和密码即可。
系统通过 StorageService 抽象统一管理文件存储。开发环境默认本地文件系统,生产环境支持 S3/MinIO 对象存储,通过环境变量切换 adapter。