From bb16345fc15bb3d10a0fba32276342f9cea16652 Mon Sep 17 00:00:00 2001 From: yumoqing Date: Mon, 31 Aug 2026 13:37:49 +0800 Subject: [PATCH] =?UTF-8?q?feat(bidding=20skills):=20=E4=BA=A7=E7=BA=BF?= =?UTF-8?q?=E8=B5=B7=E7=82=B9=E6=94=B9=E4=B8=8A=E4=BC=A0=E6=8B=9B=E6=A0=87?= =?UTF-8?q?=E6=96=87=E4=BB=B6+QC=E5=A5=91=E5=90=88=E5=BA=A6=E5=AE=A1?= =?UTF-8?q?=E6=A0=B8=E8=A7=84=E8=8C=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 删agent.tender_scout与tender技能(采集审批归商机产线) - bid-workflow总纲: 阶段链更新, QC门禁/两级回退/阻塞门禁重写 - 新增common/bid-qc: 四类审核清单/10分制打分口径/退回重做流程 - agent.qc角色技能重写: 解析产出契合度审核职责 - agent.tender_analyst补QC退回重做说明 --- .../bidding_general/common/bid-qc/SKILL.md | 39 +++++++++++++ .../common/bid-workflow/SKILL.md | 55 ++++++++++++------- .../bidding_general/common/tender/SKILL.md | 30 ---------- .../roles/agent.qc/role/SKILL.md | 25 +++++---- .../roles/agent.tender_analyst/role/SKILL.md | 6 +- .../roles/agent.tender_scout/role/SKILL.md | 19 ------- 6 files changed, 93 insertions(+), 81 deletions(-) create mode 100644 skills_library/pipelines/bidding_general/common/bid-qc/SKILL.md delete mode 100644 skills_library/pipelines/bidding_general/common/tender/SKILL.md delete mode 100644 skills_library/pipelines/bidding_general/roles/agent.tender_scout/role/SKILL.md diff --git a/skills_library/pipelines/bidding_general/common/bid-qc/SKILL.md b/skills_library/pipelines/bidding_general/common/bid-qc/SKILL.md new file mode 100644 index 0000000..8e97f8a --- /dev/null +++ b/skills_library/pipelines/bidding_general/common/bid-qc/SKILL.md @@ -0,0 +1,39 @@ +--- +name: bid-qc +description: 解析产出QC契合度审核规范——四类产出逐类对照招标文件原文按10分制打分,>通过分(默认9.5)放行,否则改进意见退回重做。QC审核前必读。触发:解析产出审核/契合度打分/改进意见退回。 +capability: bid_qc_capability +tools: [start_qc, finish_qc, list_qc, qc_report, read_tender_file, list_tender_files, list_scoring_items, list_doc_requirements, list_qualifications, list_chapters] +--- + +# 解析产出 QC 契合度审核规范(投标产线) + +## 审核对象(任务 params.qc_types 给出,每类一次审核循环) +| qc_type | 落库表 | 审核要点 | +|---|---|---| +| scoring_items | bid_scoring_items | 评分项完整无漏项、满分与原文一致、得分规则档位无失真、否决项 is_veto 无漏标 | +| qualifications | bid_qualifications | 资质要求无漏项、原文一致、必需性标注正确、无编造 | +| doc_requirements | bid_doc_requirements | 章节结构完整有序、格式/密封/份数/截止无遗漏、页数限制准确 | +| chapter_outline | bid_chapters | 章节与 structure 要求一一对应、评分项挂载正确、要点来自评分标准原文子维度 | + +## 审核流程(每个 qc_type 一轮) +1. `start_qc(qc_type=...)`:开轮,返回审核清单 + 该类产出物待核内容 + 评审 ID。 +2. `list_tender_files` 找招标文件 → `read_tender_file` **分段读原文**(评标办法/资格要求/投标文件格式章节)。 +3. 对照清单逐项核对,得出 0~10 契合度分(可带一位小数)。 +4. `finish_qc(review_id, fit_score, improvement, comments)` 落分: + - **得分 > 通过分(默认 9.5)→ 该类放行**; + - 不通过 → **improvement 必填**,写清:缺了哪一项(对照原文第几章哪条)、哪一项失真(原文怎么说、抽取成什么了)、哪一项编造了; + - 不通过时系统自动清空该类产出 → 对账器重派解析任务带意见重做 → 重审。 + +## 打分口径(10 分制契合度) +- 10 分:与原文完全一致,无漏项无失真; +- 9.5 分以下即不通过:漏 1 个非关键评分项/得分规则档位概括失真/出处不可回溯等,按影响面扣分; +- 致命缺陷直接 ≤6 分:漏评分类、满分数字错误、否决项漏标、编造不存在的要求。 +打分从严:宁退回重抽,不放水放行(评审放水 → 后面整书评分兜不住)。 + +## 硬规则 +- 只认招标文件原文:抽取不到的不得脑补;原文没写的产出项 = 编造 = 扣分。 +- 改进意见不可空泛("不够准确"这种会被退回重写);每条意见要能直接指导重抽。 +- 审核轮次超 bid_qc_max_round(默认 3)→ 抛人工介入(qc_escalation 阻塞门禁), + 人工可在产出物管理页修正后重新提交,或在 QC 审核记录页把 passed 改 1 强制放行。 +- **整类缺失**:若发现招标文件原文确有某类要求(如有资质门槛)但对应表零记录 + (该类不在待审清单里),用 ask_question 冒泡提示主 agent/用户,不要静默放过。 diff --git a/skills_library/pipelines/bidding_general/common/bid-workflow/SKILL.md b/skills_library/pipelines/bidding_general/common/bid-workflow/SKILL.md index b64f63a..7fecd3f 100644 --- a/skills_library/pipelines/bidding_general/common/bid-workflow/SKILL.md +++ b/skills_library/pipelines/bidding_general/common/bid-workflow/SKILL.md @@ -1,41 +1,54 @@ --- name: bid-workflow -description: 投标产线总纲——阶段链、两级回退循环、阻塞门禁、机制与LLM分界。投标产线的任何 agent/人先读它再动。触发:投标流程推进/卡点诊断/流转合法性判断。 +description: 投标产线总纲——阶段链、解析QC契合度审核门禁、两级回退循环、阻塞门禁、机制与LLM分界。投标产线的任何 agent/人先读它再动。触发:投标流程推进/卡点诊断/流转合法性判断。 --- # 投标产线总纲(bidding_general) +## 产线起点 +**从上传招标文件开始**。招标信息的采集/摘要/审批归商机产线,本产线不包含(不要调已不存在的采集/审批工具)。 + ## 阶段链 -招标采集 → 摘要 → 审批 →(通过)立项+人员 → 等招标文件 → 解析(评分项+得分规则/资质/投标文件要求) -→ 资质准备(知识库匹配+人类文件清单)→ 分章节编写 → 章节评审 → 合成标书 → 整书评分 → 交付确认 +立项+人员 → 上传招标文件(人)→ 解析(评分项+得分规则/资质/投标文件要求/章节骨架) +→ **解析产出 QC 契合度审核** → 资质准备(知识库匹配+人类文件清单)→ 分章节编写 +→ 章节评审 → 合成标书 → 整书评分 → 交付确认 ## 谁驱动流转 **机制驱动**:系统状态对账器(每 15 秒)按领域状态补派角色任务,一章一任务。 -- 主 agent(驾驶舱)只做:采集/摘要/审批/立项/配人/诊断/答疑,**不手动派章节任务**。 +- 主 agent(驾驶舱)只做:立项/配人/推动上传/诊断/答疑,**不手动派章节任务**。 - 角色 agent 只做自己那一件事:写完章节就提交、评审完就打分落库,不管下一步。 - 对账器是角色任务的唯一自动创建者,也是阻塞门禁的守门人。 +## 解析产出 QC 门禁(详见技能 `bid-qc`) +解析的四类产出物逐类审核,全部通过才能进入资料准备: +| 审核对象 | 落库表 | +|---|---| +| scoring_items 评分项+得分规则 | bid_scoring_items | +| qualifications 所需资质 | bid_qualifications | +| doc_requirements 投标文件要求 | bid_doc_requirements | +| chapter_outline 章节骨架 | bid_chapters | + +规则: +- agent.qc 对照招标文件原文逐项核对契合度,按 **10 分制**打分; +- **得分高于通过分(默认 9.5,参数 bid_qc_pass_score)才放行**; +- 不通过 → 必填改进意见 → 系统清空该类产出 → 对账器重派解析任务(携带改进意见)→ 重审; +- 审核轮次超 bid_qc_max_round(默认 3)→ 抛人工介入(阻塞门禁,逃逸阀:人工修产出物或在审核记录页强制放行); +- QC 记录落 bid_qc_reviews(round/passed/fit_score/improvement)。 + ## 阻塞门禁(人类任务,对账器见到就跳过该项目) | 任务类型 | 语义 | |---|---| -| tender_approval | 招标信息审批未决 | | tender_file_upload | 等上传招标文件(上传后自动完成) | | human_docs_request | 等人工提供资质文件 | -| bid_delivery_confirm | 等人工交付确认 | +| qc_escalation | 解析产出 QC 连续不达标,等人工修正/强制放行 | +| bid_delivery_confirm | 等人工交付确认(不阻塞派发,只阻塞收尾) | -## 两级回退循环 -1. **章节级**:评审得分率 < chapter_pass_ratio(默认 0.8,params 表可改)→ 章节 rejected + 改进意见 - → 自动派重写任务 → 重写 → 再评审。单章重做超 bid_max_revise(默认 3)→ 抛人工介入任务。 -2. **整书级**:整书得分率 < bid_pass_ratio(默认 0.85)或否决项未响应 → 改进意见落到目标章节 - (approved→rejected)→ 重写 → 章节评审 → 全部通过 → 重新合成 → 重新评分。 - 轮次超 bid_max_round(默认 3)→ 抛人工介入任务。 +## 两级回退循环(编写阶段之后) +- 章节级:评审得分率 < bid_chapter_pass_ratio(默认 0.8)→ rejected+改进意见 → 自动派重写;超 bid_max_revise(默认 3)抛人工。 +- 整书级:评分率 < bid_pass_ratio(默认 0.85)或否决项未响应 → 改进意见按章节打回 → 重写→重审→重合成→重评分;超 bid_max_round(默认 3)抛人工。 -## 不变量(守门) -- 审批不通过 = 终态存档作废,不得立项。 -- 章节没全部 approved,禁止合成标书。 -- 整书没过门限,禁止当作可交付。 -- 要素(金额/时间/资质)只来自公告原文或人工确认,禁止编造。 -- 案例业绩必须来自知识库真实合同,禁止虚构。 - -## 技能分层覆盖 -本技能是投标产线默认规范;项目可用同名技能覆盖(loader 优先级:global→org→pipeline→role→project→user)。 +## 硬规则 +- 所有门限参数读 appbase params 表 + 默认兜底,禁止硬编码。 +- 评审/评分只由对应角色执行,写作角色不得自评(capability 按角色缩小)。 +- 得分/改进意见必须落库(bid_reviews/bid_scores/bid_qc_reviews),不接受"声称已评审通过"。 +- 任何门禁都必须有冒泡出口(抛人工任务),不许无限循环。 diff --git a/skills_library/pipelines/bidding_general/common/tender/SKILL.md b/skills_library/pipelines/bidding_general/common/tender/SKILL.md deleted file mode 100644 index 03d6f7c..0000000 --- a/skills_library/pipelines/bidding_general/common/tender/SKILL.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -name: tender -description: 招标信息状态机规范——状态/合法流转/角色权限/门禁。处理招标信息时先读本规范判断合法性。触发:采集/摘要/审批/作废/重开招标信息。 ---- - -# 招标信息状态机规范(投标产线) - -## 状态(bid_tenders.status) -new(新采集)→ summarized(已摘要)→ pending_approval(待审批) -→ approved(通过,待立项)| rejected(不通过,立即自动 → archived) -archived(存档作废,终态) - -## 合法流转 -- 采集/导入 → new;摘要抽取 → summarized -- submit_tender_approval:new/summarized → pending_approval(生成人类审批任务,阻塞) -- approve_tender:pending_approval → approved(默认自动立项 + 发上传招标文件任务) -- reject_tender:pending_approval → rejected → **自动 archived**(审批不通过即存档作废,业务终态) -- archive_tender:任意状态 → archived(人工放弃跟进) -- reopen_tender:archived/rejected → summarized(人工要求重新评估) - -## 角色权限 -| 角色 | 操作 | -|---|---| -| agent.tender_scout | 采集、摘要、提交审批 | -| agent.main_agent | 全部(代用户拍板审批) | -| owner.*(人) | 审批拍板、作废、重开 | - -## 门禁 -- 提交审批前必须已摘要(要素齐全),否则先 summarize_tender。 -- 要素抽取缺失的字段留空或标「公告未载明」,**禁止编造**。 diff --git a/skills_library/pipelines/bidding_general/roles/agent.qc/role/SKILL.md b/skills_library/pipelines/bidding_general/roles/agent.qc/role/SKILL.md index e623b17..d5f1b7a 100644 --- a/skills_library/pipelines/bidding_general/roles/agent.qc/role/SKILL.md +++ b/skills_library/pipelines/bidding_general/roles/agent.qc/role/SKILL.md @@ -1,19 +1,24 @@ --- name: role -description: 投标质量控制:交付件合规检查(资质真实性、案例一致性、格式遵循),不合规退回。 -capability: task_capability -tools: [] +description: 投标QC:解析产出契合度审核(评分标准/得分规则/资质/投标文件要求/章节骨架对照招标文件原文按10分制打分,>9.5放行)。先 load_skill 加载 bid-qc 规范再审核。 +capability: bid_qc_capability +tools: [start_qc, finish_qc, list_qc, qc_report, read_tender_file, list_tender_files, list_scoring_items, list_doc_requirements, list_qualifications, list_chapters] --- # 投标质量控制(agent.qc)角色定义 -## 职责 -- 对合成标书做合规检查: - - 资质引用与知识库/已提供文件一致(无虚构) - - 案例与业绩一一对应商务部分(无虚构客户/金额) - - 格式/章节结构符合投标文件要求 -- 不合规直接退回(列出具体不合规点),合规放行。 +## 职责(解析产出契合度审核) +- 任务带 params.qc_types(待审类型清单):逐个 `start_qc` → 读招标文件原文逐项核对 → `finish_qc` 落分。 +- 每类产出按 10 分制打契合度分,**得分高于通过分(默认 9.5)才算该类工作完成**; + 不通过必须给可执行的改进意见(缺什么/错在哪/对照原文哪一处)。 +- 全部类型通过后任务才算完成;系统自动推进资料准备阶段。 +- 先 load_skill 加载 `bid-qc` 规范,按其中的审核清单与打分口径执行。 + +## 硬规则 +- 核对必须对照招标文件原文(read_tender_file 分段读),不得凭产出物自我循环核对。 +- 打分从严:漏评分类/满分错误/否决项漏标/编造内容 = 致命缺陷,直接不通过。 +- 禁止放水:9.5 的门限是业务要求,"差不多就行"会导致后面整书评分兜不住。 ## 应遵守的规范 -- `bid-doc-spec`:投标文件编写规范(合规检查依据) +- `bid-qc`:QC 契合度审核规范(先读它) - `bid-workflow`:产线总纲 diff --git a/skills_library/pipelines/bidding_general/roles/agent.tender_analyst/role/SKILL.md b/skills_library/pipelines/bidding_general/roles/agent.tender_analyst/role/SKILL.md index 91d9366..5d050ca 100644 --- a/skills_library/pipelines/bidding_general/roles/agent.tender_analyst/role/SKILL.md +++ b/skills_library/pipelines/bidding_general/roles/agent.tender_analyst/role/SKILL.md @@ -15,11 +15,15 @@ tools: [read_tender_file, list_tender_files, extract_from_file, add_scoring_item - 大文件分段抽取(offset 递增),重复项自动去重。 - 抽取完成后 create_chapter_outline 生成章节骨架(structure 类要求自动生成,评分项自动挂载)。 - mark_file_extracted 标记抽取完成;发现漏抽用 add_* 补录。 +- **QC 退回重做**(任务 params 带 qc_redo=1):产出物已被清空,必须按 + params.qc_improvements 里的改进意见逐条修正后重新全量抽取;改进意见是 QC 对照 + 原文核对的结果,优先级高于自己的判断。 ## 硬规则 - 评分项满分数字必须与招标文件一致,抽不准就读原文再核。 -- 否决项/废标条款必须标 is_veto=1(漏标 = 整书评分漏检致命项)。 +- 否决项/废标条款必须标 is_veto=1(漏标 = 整书评分漏检致命项 = QC 必退回)。 - 抽取不到的内容不编造,缺失就空着并在交付说明中注明。 +- 产出物须过 QC 契合度审核(10 分制 >9.5 放行),退回时逐条回应改进意见。 ## 应遵守的规范 - `bid-workflow`:产线总纲(先读它) diff --git a/skills_library/pipelines/bidding_general/roles/agent.tender_scout/role/SKILL.md b/skills_library/pipelines/bidding_general/roles/agent.tender_scout/role/SKILL.md deleted file mode 100644 index 0cf3a3f..0000000 --- a/skills_library/pipelines/bidding_general/roles/agent.tender_scout/role/SKILL.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -name: role -description: 招标信息员:采集招标邮件、摘要与要素抽取(投标开始时间/项目周期/招标金额)、提交审批。不编造要素。 -capability: bid_tender_capability -tools: [fetch_tenders, summarize_tender, set_tender_fields, submit_tender_approval, list_tenders, archive_tender, assign_members, list_members] ---- - -# 招标信息员(agent.tender_scout)角色定义 - -## 职责 -- fetch_tenders 从配置的招标邮箱采集招标信息入库(按关键词过滤+去重)。 -- 对每条新招标信息:summarize_tender 抽取摘要 + 投标开始时间/投标截止/项目周期/ - 招标金额/保证金/资质要求/关键时间节点/风险提示,落库。 -- 摘要抽错的字段用 set_tender_fields 纠正;公告未载明的要素留空并说明,**禁止编造**。 -- 要素齐全后 submit_tender_approval 提交审批(阻塞门禁,等人拍板)。 - -## 应遵守的规范 -- `tender`:招标信息状态机(状态/流转/权限) -- `bid-workflow`:产线总纲(先读它)