
把上午讲的七个阶段真的连起来:三人一组,A 搭主线、B 接六路检索和七个审查节点、C 测试写文档;主线加三道闸:校验拦抠错的数、分支打回不合格的报告、占比交给代码算。第 3 节画布上每个节点都能点开,里面是全部配置参数和完整提示词,照着抄就行。
deepseek-ai/DeepSeek-V3.2,已跑通并发布):① 结束节点要用「结束 End」不是「直接回复 Answer」——工作流模式下 Answer 节点不渲染变量,输出里会原样留着 {{#…#}}。② 节点 ID 只能是字母数字下划线(平台自建的是纯数字时间戳);DSL 里写成带连字符的 UUID,{{#id.text#}} 会匹配不到、模型拿不到报告正文,然后一本正经地编一个别的项目——这就是“变量没传到”的典型症状,先看节点「上次运行」里的 prompt 有没有被替换。③ 推理模型(DeepSeek-R1)会在输出前带一段 <think>:LLM 节点开「reasoning_format = separated」把思考段剥离;校验 / 指标计算代码再加一层保险——先正则去掉 <think>…</think>、再抓第一个 {…} 才 json.loads。④ C 抽取提示词的「实施效益」必须含「合计、回收期」两个字段,并写明“只填数值不带单位”,否则校验永远报缺合计缺回收期(原手册漏了)。⑤ 模型选 DeepSeek-V3.2,不选 R1:R1 抽取一步 160~200 s、七路审查并发时 SiliconFlow 常返回非标准响应(KeyError: choices);V3.2 非推理、实测全流程约 5 分钟(抽取 41 s、单路审查 30~47 s、概要 51 s、JSON 54 s、HTML 67 s),约 48k tokens。每个 LLM 节点开「失败重试 3 次 / 间隔 10 s」。一次全流程约 35k tokens,赛前确认 SiliconFlow 余额——余额不足是账户级 402,连免费小模型也一起拦,不是换模型能绕的。⑥ 别指望 Gemini 免费额度做保底:每个模型每天 20 次调用、每分钟 5 次,这条线一次要调 11 次,一天只够跑一次;2.5 系列还会把思考 token 算进 max_tokens 把输出截断。⑦ Score 阈值:Qwen3-Embedding + 加权混合检索的正确命中分只有 0.13~0.44,阈值 0.3 会把大半依据拦掉——课堂先关阈值,召回稳定后再按“引了不相干的才抬线”调。⑧ C 抽取的系统提示词末尾要再放一次 {{#B.text#}}(用户消息里也引一次)——DeepSeek 系列对只在 user 里给正文的长文档偶发“看不到表格”,system 末尾再带一遍最稳;校验代码同步做了清洗(去 ```json 围栏、取首个 { 到末个 }、合计缺了用「资金总额」补、回收期缺了从「经济效益」正文正则抓年数)。团体赛_可研审查工作流_课堂版23节点.yml,Dify 工作室 → 创建 → 导入 DSL 文件 → 选它,30 个节点(23 个 + 6 个拼查询词的模板节点 + 1 个打回回复)连线、提示词、代码、知识库绑定全部到位;导入后只需把知识检索节点里的库换成自己工作区的库;LLM 节点默认是 SiliconFlow deepseek-ai/DeepSeek-V3.2,没接硅基就换成自己可用的模型。文件里主线 6 个节点 ID 是平台生成的纯数字时间戳(1792565000000~1792565000005),手册里写的 {{#B.text#}} / {{#C.summary#}} 在导入件里对应 {{#1792565000001.text#}} / {{#1792565000002.text#}},是同一个东西。课堂上仍要求手搭主线 10 个节点,导入件只做对照与兜底。| 角色 | 这 55 分钟干什么 | 产出 | 先后 |
|---|---|---|---|
| A 主线 | 第 4 节:搭主线 10 个节点(开始 / B / C / 校验 / 分支 / 指标计算 / D / E / F / G),定变量名,先不接检索跑通「PDF → HTML 或打回」 | 工作流 .yml | 先动,20 分钟内主线跑通 |
| B 检索 + 提示词 | 第 5 节:把实操三的 R1–R6 与 ①–⑥ 接进来,补 ⑦ 语义一致性,抄七个审查提示词,等 A 主线通了接上 | 十一段提示词文档 | 与 A 并行,20 分钟后接入 |
| C 测试 + 文档 | 第 6、7 节:A 通一段就测一段;对照埋点表查漏;写设计文档(架构图 + 分工 + 节点说明) | HTML 审查报告 + 设计文档 | 全程 |
动手前先读题。下面是团体赛样题题面原文(出处:《题干 + 答案 + 解析》),课堂用虚构 demo 报告代替 demo_report.pdf。
当前,技改项目可行性研究报告(以下简称"可研报告")的人工审核存在三大痛点:
为系统性提升审核效率、增加潜在问题发现率、提升技改项目管理水平,现需要设计一套基于大模型与智能体协同的可研报告智能审查系统。参赛团队需在智能体编排平台上,自行设计智能体架构与工作流,实现多维度自动化审查。
| 审查维度 | 审查要求(题面原文) |
|---|---|
| 项目建设必要性 | NLP 大模型自动审查项目依托的宏观政策或市场背景、项目宏观目标、实施效益,是否具备建设的必要性,先给出结论再详细分析。 |
| 项目建设可行性 | NLP 大模型自动审查项目的国内外发展现状、主要难点与技术路线,是否具有建设的可行性,先给出结论再详细分析。 |
| 项目合规性 | NLP 大模型自动审查项目的保障与条件、计划与效益(包括环境效益等),并根据项目内容检索知识库中项目需依据的相关标准规范,综合判断项目的合规性,先给出结论再详细分析(分析中需输出审查结果依据的具体标准规范的名称与条例)。 |
| 项目创新性 | NLP 大模型自动审查项目的创新点,并根据项目内容检索知识库中相关的历史项目的创新点,综合判断项目的创新性,先给出结论再详细分析(若与知识库历史项目创新点存在重复,分析中需输出历史项目名称及对应创新点内容)。 |
| 项目成本、收益 | NLP 大模型自动审查项目课题经费、成本收益,结合历史同类项目的课题经费、成本收益,判断项目的经费、成本收益是否合理,先给出结论再详细分析(分析中需输出参考的知识库中历史同类项目的经费、成本收益数据)。 |
| 报告提出的设计依据和建设原则合理性 | NLP 大模型自动审查项目的背景、实施方案是否合理,先给出结论再详细分析。 |
审查报告需为 html 格式,章节标题、字体需满足:
章节结构:一、总的部分(一)项目概况:项目基于 xxxx,为了解决 xxx 问题,用 xxx 方法,建设 xxx…(二)是否同意必要性 + 可行性:是否同意 xxx,依据了 xxx 资料(参考的知识库文件,若没有参考则不写),存在 xxx 问题,建议 xxx(后续章节同理)(三)是否同意建设目标(四)是否同意设计依据 + 建设原则 二、总体要求(一)是否同意总体规划方案(二)是否同意项目整体架构方案(三)是否同意各个细化方案(四)是否同意项目建设内容(五)是否同意报告中提出的概念(六)是否同意创新点
(1)工作流导出文件(.yml 或 .dsl);(2)包含团队分工和智能体架构的系统设计说明文档(PDF 或 Markdown);(3)各模块提示词设计内容;(4)对可研报告的审查结果(审查报告文件)。
| 维度 | 分值 | 具体要求 |
|---|---|---|
| 维度覆盖完整性 | 20 分 | 7 个审查维度全部实现,缺失一个扣 3 分。 |
| 审查准确性 | 25 分 | 对各维度的判断合理,能有效发现报告中的典型错误 / 风险,误报 / 漏报少。 |
| 智能体架构与协同设计 | 15 分 | 架构清晰、协同高效,无明显冗余或错误依赖。 |
| 知识库利用质量 | 15 分 | 有效检索并利用知识库,引用的依据相关、准确。 |
| 输出结构化与可追溯性 | 10 分 | 输出报告符合格式要求,完整、易读,审查过程可追溯。 |
| 团队协作与文档 | 5 分 | 分工合理,文档清晰、无歧义。 |
| 创新与扩展 | 10 分 | 超越基础要求的设计。 |
点第 0 节卡片看全文。下表是讲师埋的问题——测试时的标准答案,学员先别看,跑完再对。
| 维度 | 报告里的问题 | 应引用的依据 |
|---|---|---|
| 必要性 | 政策引用只写"国家能源局多次强调",无文件名与年份 | 01 规范 第 2.0.1 条 |
| 可行性 | 周期 2025.3–2026.12 = 22 个月 > 18 个月,未分阶段 | 01 第 3.0.3 条 |
| 可行性 | 国内外现状只有两句,无案例来源 | 01 第 3.0.1 条 |
| 合规性 | 合作单位"协议签订中";未列资质证书名称编号 | 01 第 4.0.3 / 4.0.4 条 |
| 创新性 | 创新点一(LSTM 单步预测)、二(多测点残差漂移自诊断)与 A-2024-01 完全重复 | 02 汇编 A-2024-01;01 第 6.0.2 条 |
| 成本收益 | 设备费 34.9% < 50%;人工费 44.2%;其他 14% > 10% | 01 第 5.0.2 条;03 口径(均值 56/27/7) |
| 成本收益 | 总经费 860 > 同类均值 441 +30%(573);回收期 5.3 > 5 年 | 01 第 5.0.3 / 5.0.4 条;03 对标提示 |
| 设计依据 | 目标有量化指标 ✓;方案科学 ✓ —— 应给"同意" | 01 第 2.0.3 条(正向) |
下面这张画布把 23 个节点逐个画出来了=赛场参考 20 个(主线 7 + 检索 6 + 审查 7)+ 课堂加闸 3 个(校验 / 条件分支 / 指标计算,授课四虚线框那三个),不再省略。点任意节点 → 右侧弹出该节点的全部配置参数与完整提示词,提示词框右上角一键复制。横向拖动可滚动整张画布。
图 3-1 课堂搭建版画布(HTML 绘制示意图,非真实截图):橙虚线=打回重抠,红虚线=打回人回复,校验不过不进检索。连线为主数据流;节点提示词里引用别的节点变量(如审查节点引用 C.summary)时 Dify 会自动补连线,接线以面板「输入」清单为准。
doc_name upload_file;B 文档提取器输出 text;C 摘要抽取输出 summary;校验输出 ok / msg / can_retry;指标计算输出 ratio / pass / note;R1–R6 输出 result;①–⑦ 审查输出 text;D 概要生成 opinion;E JSON 输出 blocks;F HTML 输出 html;G 结束节点输出 result = {{#F.html#}}。
顺序搭、逐段测:C 之后先过三道闸(校验 → 条件分支 → 指标计算),不合格的打回,过了闸的干净数才往后传。每个节点的完整配置、提示词和代码都在画布面板里,这里只写"先搭哪个、接到哪、测什么"。
doc_name(文本·必填)、upload_file(文件·必填)。{{#start.upload_file#}},输出 text(Markdown)。text 不为空、基本情况表的表格还在(不是拍散的一行行字)。{{#C.summary#}},输出 ok / msg / can_retry。{{#①.text#}}…{{#⑦.text#}} 暂时用 {{#C.summary#}} 占位,B 接上后必须改回(占位忘改是赛场最常见事故)。{{#F.html#}} 一个——交付物(4)审查报告文件就是它,多输出会干扰评委查看。实操三已经跑通六路检索和合规、成本收益两路审查。下午把它们接进这条线,补 ⑦ 语义一致性。每路检索只差两处:勾哪几个库和查询词;每个审查节点只差提示词。
| 路 | 服务维度 | 连接知识库 | 查询词(逐字,直接粘) | 召回测试应命中 |
|---|---|---|---|---|
| R1 | 必要性 → ① | 库① + 库② | {{#start.doc_name#}} 技改项目 政策依据 政策文件 发展现状 行业现状 现状差距 量化指标 | 01 第 2.0.1~2.0.3 条;02 同类项目现状 |
| R2 | 可行性 → ② | 库① + 库② | {{#start.doc_name#}} 技术路线 技术难点 国内外同类技术 发展现状 应用案例 试验验证 实施周期 | 01 第 3.0.1~3.0.3 条;02 技术类项目 |
| R3 | 创新性 → ④ | 库② + 库① | {{#start.doc_name#}} 创新点 历史项目 创新 技术方案 工艺 与现有技术差异 重复 | 02 各项目创新点块;01 第 6.0.1 / 6.0.2 条 |
| R4 | 合规性 → ③ | 库① | {{#start.doc_name#}} 标准规范 名称 条例 资质 保障条件 环保排放 合规 符合性 | 01 第 4.0.1~4.0.4 条 |
| R5 | 成本收益 → ⑤ | 库③ + 库① | {{#start.doc_name#}} 同类项目 课题经费 设备费 材料费 人工费 其他费用 成本收益 回收期 效益 | 03 表 + 口径 + 对标;01 第 5.0.1~5.0.4 条 |
| R6 | 设计依据 → ⑥ | 库① + 库② + 库③ | {{#start.doc_name#}} 编制规范 项目背景 实施方案 设计依据 建设原则 相似项目 可比性 合理性 | 01 第 1.0.1 / 2.x / 3.x 条;02、03 相似项目记录 |
| 节点 | 维度 | 结论词(三选一写死) | 分析里必须有什么 |
|---|---|---|---|
| ① | 必要性 | 充分 / 基本充分 / 不充分 | 政策是否注明名称与年份;现状差距是否量化;目标是否回应痛点;效益是否支撑立项 |
| ② | 可行性 | 可行 / 基本可行 / 不可行 | 国内外现状是否注明来源;技术路线能否工程实现;难点是否识别充分;周期超 18 个月是否分阶段 |
| ③ | 合规性 | 合规 / 基本合规 / 存在风险 | 保障条件与协议是否落实;资质名称与编号;排放对比;规范引用是否逐条说明符合性 |
| ④ | 创新性 | 高 / 中等 / 一般 | 逐条与历史项目创新点比对;重复的给出历史项目编号、名称与对应创新点;重复的不认定为创新点 |
| ⑤ | 成本收益 | 合理 / 基本合理 / 不合理 | 逐项「报告值 / 参考值 / 偏差」:设备费占比、其他费用占比、人工费占比、总经费对标、回收期、效益计算过程 |
| ⑥ | 设计依据与建设原则 | 合理 / 基本合理 / 不合理 | 背景描述是否准确;方案是否科学;设计依据引用是否恰当;与相似项目的可比性 |
| ⑦ | 语义一致性(第 7 维度) | 一致 / 基本一致 / 存在矛盾 | 各维度引用的报告数值与摘要字段是否一致;结论词与分析是否自相矛盾;同一事实跨维度是否冲突。不查知识库 |
{{#C.summary#}} + 对应那路 {{#Rn.result#}})→ 判定要点 → 输出格式 → 硬性约束(依据只能来自检索结果、带文档名 + 条款号或项目编号 + 原文摘引)。模型统一:通用大模型、温度 0.2、最大输出 token 2000、不挂知识库;⑦ 温度 0。| 轮次 | 做什么 | 看什么 |
|---|---|---|
| 第一轮 单节点 | A 通到 C 摘要抽取时,拿 summary JSON 对 demo 报告 | 项目名、22 个月、860 万、四项费用、三条创新点、"协议签订中"都抽到了吗 |
| 闸门轮 随时 | 把 demo 回收期改成"5.3年"跑;再删掉人工费跑 | 第一次被校验拦下、重抠一次后放行;第二次走打回路,回复"缺人工费"——三条路都验到 |
| 第二轮 半条线 | B 接上一路(R5 + ⑤ 成本收益)后单独运行审查节点 | 结论"不合理"?依据里有 5.0.2 / 5.0.3 / 台账口径?数值 34.9% / 44.2% / 5.3 年对不对 |
| 第三轮 全流程 | 六路 + ⑦ 全接、上传 PDF 从头跑 | HTML 打开:十个小节齐?字体字号七条?第 2 节埋点表 8 条查出几条? |
可研审查-组X-v1.yml。审查报告-组X.html。各模块提示词-组X.md。| 现象 | 先动哪里 | 怎么调 / 为什么 |
|---|---|---|
| 某路审查结论没有依据 | 该路 R 查询词 | 换本维度技术词;创新性那路要拼摘要抽出的技术词(LSTM / 残差 / 漂移) |
| 七路结论齐但概要里缺某维 | D 概要生成引用 | 查 ①–⑦ 是否都接上、占位变量是否改回——占位忘改是赛场最常见事故 |
| 同一输入两次结论不同 / 条款号是编的 | 审查节点温度 | 0.1 → 0;判定类节点不允许发挥 |
| HTML 打开缺段 / 标签裸露 | F HTML 节点 | 补 & < > 转义;别在 E JSON 节点手工删字符 |
| 成本收益数字与手算不一致 | ⑤ 审查节点 | 查判定要点六项是否列全、是否要求"报告值 / 参考值 / 偏差";先对单位(万元 / 元) |
| 整线停在闸门口 / 被打回 | 校验节点 msg | 读 msg 说清缺哪个字段:改报告或重上传;不要改代码放行——放过去一份报告的数字全不可信 |
| 报告里占比与手算不一致 | ⑤ / D 是否引用 calc | ⑤ 提示词写"以 note 为准,不得自行计算";D / F 不许转述数字;先查单位(万元 / 元) |
| 整线输出空 | 最上游 | 从开始节点逐段单跑,定位第一段空;别在下游提示词里加"如果为空" |
| 评分项 | 在工作流 / 文档里指到哪 |
|---|---|
| 维度覆盖 20 | ①–⑦ 七个审查节点都有、都连进 D 概要生成;HTML 十小节齐 |
| 准确性 25 | 埋点表 8 条查出 ≥6 条 |
| 架构协同 15 | 六路并行无环;变量命名统一;画布截图清晰 |
| 知识库利用 15 | 合规 / 创新 / 成本三个维度输出里有文档名 + 条款号 / 项目号 |
| 结构化可追溯 10 | HTML 字体字号七条;每个维度有"依据"段 |
| 协作文档 5 | 设计文档有分工表、架构图、节点说明 |
| 创新扩展 10 | ⑦ 语义一致性节点 / 问题清单汇总表 / 维度打分 |
# 系统设计说明文档(模板)
## 1 系统目标
一句话:输入技改可研 PDF,输出六维度公文版式 HTML 审查报告
## 2 智能体架构
[Dify 画布截图]
七阶段:输入解析 → 摘要抽取 → 6 路 RAG → 7 维度审查 → 概要 → JSON → HTML
## 3 节点清单
| 节点 | 类型 | 输入 | 输出 | 作用 |
## 4 知识库
文档清单 / 分段方式 / 检索参数 / 召回测试记录
## 5 团队分工
| 成员 | 职责 | 产出 |
## 6 测试记录
三轮测试 / 埋点查出情况 / 迭代记录
## 7 创新与扩展
(如有)| 现象 | 多半原因 | 处理 |
|---|---|---|
| B 文档提取器输出空 | 上传的是 docx 不是 PDF;或 PDF 是扫描图 | 转 PDF;扫描件用 OCR 工具节点 |
| C 摘要 JSON 里预算字段是"设备费"而不是 300 | 取了表头 | 提示词里"取单元格实际值,不取字段标题";温度 0 |
| D 概要节点报变量不存在 | ①–⑦ 还没接 / 节点名拼错 | 先用 C.summary 占位;统一命名表 |
| 创新性没查出重复 | R3 查询词没带技术词 | 查询词加 LSTM 残差 漂移 |
| HTML 打开字体不对 | 电脑没装方正小标宋 / 仿宋_GB2312 | 正常;评分看 CSS 里写了没,不看渲染 |
| HTML 里标题被改了 | F 节点温度不是 0 / 没写"不得改写" | 温度 0 + 加这句 |
| 上午跑通、下午整线停在闸门口 | summary 的 JSON 键名与校验代码对不上(改过字段名) | 以 C 的六类字段名为准(实施效益 / 设备费…),代码和提示词不要各改一边 |
| 六路并行跑太慢 | 模型并发限制 | 赛场可接受;或把六个审查合并为三个(每个两维度) |
工作流 .yml 已导出,重新导入能跑
HTML 审查报告十个小节齐,CSS 七条字体字号都在
合规 / 创新 / 成本三个维度输出里有文档名 + 条款号 / 项目号
埋点表 8 条查出 ≥6 条
设计文档 7 节有草稿,分工表三人齐
十一段提示词存成一个文件(实操三八段 + D / E / F 三段)
三道闸接齐:拦下、重抠一次、打回各有去处;calc 的 note 与手算逐位一致