10 KiB
Agent Core 模块需求分析
1. 模块定位
agent_core 是整套系统的能力中枢。在本题中,它不应再被描述为“一个通用 Prompt + RAG + Tool 的抽象核心”,而应被明确定位为:
注册申报资料审核编排引擎
它负责把法规规则、文档解析结果、字段抽取逻辑、一致性核查逻辑、风险输出模板和大模型能力组织成一个可执行的审核流程。
2. 模块总目标
本模块需要完成以下目标:
- 基于题面要求完成文件目录汇总、完整性核查、字段抽取、回填准备、一致性检查和风险预警。
- 形成规则优先、模型辅助的审核框架,而不是完全依赖自由生成。
- 提供结构化、可追溯、可测试的输出。
- 保持与 Django 页面层和数据层的边界清晰。
3. 为什么 Agent Core 是本题真正的“答题核心”
本题的难点不在“接个大模型接口”,而在于以下几点如何落到一个统一编排里:
- 资料目录与法规目录如何比对。
- 产品说明书、申请表、产品列表、声明文件之间如何抽取统一字段。
- 不同字段的“一致”与“不一致”如何定义。
- 风险预警如何从规则结果和模型解释中生成。
这些都属于 agent_core 的职责范围。
4. 核心能力拆分
建议将 agent_core 的能力拆成以下几个子域理解。
4.1 任务编排
根据不同任务入口,组织不同处理链路。例如:
- 目录汇总链路
- 完整性检查链路
- 字段抽取链路
- 一致性核查链路
- 综合风险链路
4.2 规则引擎
对以下事项优先使用规则处理:
- 章节点完整性
- 必交文件判断
- 文件归类
- 固定字段抽取
- 强一致字段比对
4.3 LLM 辅助推理
对以下事项由 LLM 作为辅助:
- 长段文本中的字段归纳
- 语义等价判断
- 风险说明文案生成
- 处理建议生成
- 无法通过简单规则覆盖的异常解释
4.4 RAG 检索
用于在文档较长、规则或用户问题较细时,从已入库资料中定位证据片段,为回答和审计提供支撑。
4.5 结构化输出
将每类任务输出为明确 schema,而不是一段随意文本。
5. 按题面要求拆解的能力需求
5.1 文件目录汇总能力
目标
自动汇总注册申报文件夹中的所有文件及页数。
需要的输入
- Documents 模块提供的文档记录
- 文件页数
- 文档归类信息
处理逻辑
- 遍历当前项目 / 批次所有资料。
- 汇总文件名、章节点、页数、状态。
- 识别目录类文档与普通文档。
- 输出目录总表。
输出要求
结构化输出中至少包含:
- 文件清单
- 文件数量
- 总页数
- 已识别章节点
- 待确认文档
5.2 法规完整性核查能力
目标
对照 NMPA 法规要求,检查所需资料是否齐全,并识别缺失项。
规则依据
当前材料已明确可用依据包括:
附件 4 体外诊断试剂注册申报资料要求及说明CH1.2 监管信息目录- 题面中提及的 NMPA / CMDE 法规来源
处理逻辑
- 装载法规目录模板。
- 装载当前资料实际清单。
- 以章节点和资料名称进行匹配。
- 区分:
- 已提供
- 缺失
- 疑似已提供但命名不规范
- 需人工判断
- 生成缺失项清单和建议动作。
关键难点
不是所有缺失都等价。需要区分:
- 监管强制项缺失
- 目录中声明有但实际文件找不到
- 文件存在但内容不符合该章节点用途
输出要求
- 命中项列表
- 缺失项列表
- 风险等级
- 建议补充动作
- 规则依据
5.3 产品关键信息抽取能力
目标
从产品文件中提取关键信息并自动填写到目标文件或结构化结果中。
目标字段建议
至少包括题面点名字段:
- 产品名称
- 检测靶标
- 适用范围 / 预期用途
- 储存条件
- 性能指标
结合样例材料,建议进一步扩展:
- 包装规格
- 适用样本类型
- 适用仪器
- 分类编码
- 临床评价路径
- 申请人名称
- 生产地址
- 标准清单
- 申报日期
字段来源优先级
需要明确来源优先级,例如:
- 申请表
- 产品说明书
- 产品列表
- 声明类文件
- 其他说明材料
或根据字段类型分别设定优先级。
抽取逻辑
- 规则抽取显式字段。
- 表格抽取规格、组分、标准清单等。
- 对长文本字段使用 LLM 归纳。
- 将结果写入统一字段池。
- 标记字段来源和置信状态。
输出要求
- 字段名
- 字段值
- 来源文档
- 来源片段
- 是否冲突
- 是否可直接回填
5.4 自动回填准备能力
目标
将抽取得到的信息填入目标文件或目标字段。
首版建议范围
首版不必以“完整保真写回 Word 模板”为核心验收,而可以先实现:
- 申请表字段回填数据集
- 对照清单字段回填数据集
- 页面可视化回填预览
处理逻辑
- 根据目标模板定义字段映射。
- 从统一字段池读取值。
- 对冲突字段进行拦截或提示。
- 生成回填预览结果。
后续扩展
如需求方确认需要真实文档导出,再增加 Word 模板写回。
5.5 一致性核查能力
目标
核查不同文档间相同信息是否一致,检测章节结构和规范性问题。
强一致字段
建议首版按强一致处理的字段包括:
- 产品名称
- 申请人名称
- 规格型号 / 包装规格
- 分类编码
- 申报产品名称对应的章节点标题
语义一致字段
可按语义一致或近似一致处理的字段包括:
- 预期用途 / 适用范围
- 储存条件描述
- 适用样本类型
结构核查
除字段一致性外,还应检查:
- 说明书是否包含关键章节
- 目录页是否覆盖当前章节点
- 文档标题是否规范
- 是否存在不属于本产品的资料混入
典型异常示例
根据当前样例,系统应能识别:
- 说明书产品是“2019-nCoV”,申请表和产品列表是“呼吸道合胞病毒、肺炎支原体”。
- 这类冲突应被直接标记为高风险或至少中高风险。
输出要求
- 一致字段列表
- 冲突字段列表
- 冲突明细
- 风险等级
- 处理建议
5.6 合规风险预警能力
目标
把完整性检查、字段抽取和一致性核查的结果汇总成可执行的风险清单。
风险类型建议
- 缺失风险
- 混档风险
- 字段冲突风险
- 章节不规范风险
- 历史申报事项风险
- 资料真实性 / 版本一致性风险
风险分级建议
首版可采用:
- 高风险
- 中风险
- 低风险
- 待人工确认
处理建议生成逻辑
规则部分负责给出基础动作,例如:
- “补充缺失文件”
- “核对产品名称”
- “重新确认临床资料版本”
LLM 负责把这些动作组织成自然语言建议,但不能改变底层规则结论。
6. 统一字段池设计需求
为支撑抽取、回填和一致性核查,建议在 agent_core 内形成统一字段池概念。
字段池至少记录:
- 字段名
- 标准化字段值
- 原始字段值
- 来源文档
- 来源位置
- 置信度
- 冲突状态
- 最终推荐值
这是本题从“简单聊天 Demo”走向“资料审核系统”的关键能力之一。
7. 规则体系需求
7.1 完整性规则
用于判断:
- 某章节点是否必交
- 当前资料是否命中
- 缺失是否构成高风险
7.2 抽取规则
用于:
- 标题识别
- 表格字段映射
- 固定格式声明提取
7.3 一致性规则
用于定义:
- 哪些字段必须完全一致
- 哪些字段允许近似匹配
- 如何判断冲突严重度
7.4 风险映射规则
用于把缺失、冲突、不确定结果映射为风险级别和处理建议。
8. 工具体系需求
题面附加要求提到需要展示实际调用的关键工具/库。因此 agent_core.tools 中应逐步沉淀出与本题强相关的工具,而不是只保留通用样例工具。
建议工具方向包括:
- 文档页数统计工具
- 章节点识别工具
- 必交项检查工具
- 字段抽取工具
- 字段一致性比对工具
- 风险汇总工具
这些工具都应通过 Tool Registry 注册,符合项目既有边界要求。
9. LLM Provider 需求
9.1 不允许业务代码散落模型调用
所有模型调用继续通过 Provider 统一处理。
9.2 模型在本题中的使用原则
本题应坚持:
- 规则优先
- 证据优先
- 模型负责解释、补充和归纳
- 模型不应凭空判断法规完整性
9.3 测试要求
所有核心编排逻辑应继续支持 Mock Provider,以保证回归测试离线可跑。
10. 结构化输出 Schema 需求
建议至少定义以下输出类型:
registration_overview_reportregistration_completeness_reportregistration_field_extraction_reportregistration_consistency_reportregistration_risk_report
每种输出都应有稳定字段,便于页面展示与测试覆盖。
11. 与其他模块的边界
11.1 与 Documents 模块
Documents 负责提供资料事实;Agent Core 负责把这些事实转化为审核结论。
11.2 与 Chat 模块
Chat 负责接收用户意图和展示结果;Agent Core 负责执行任务链路。
11.3 与 Audit 模块
Audit 负责记录过程和结果;Agent Core 负责产出可记录的结构化执行信息。
12. 当前代码基线下的重构建议
12.1 建议保留
- Prompt 编排机制
- 结构化结果对象
- Tool Registry
- RAG fallback / Chroma 双路径思路
- Mock Provider 测试策略
12.2 建议增强
- 从通用场景输出转向注册审核专用输出 schema。
- 增加法规完整性规则和目录模板匹配逻辑。
- 增加统一字段池。
- 增加一致性核查与风险汇总工具。
- 将“回填准备结果”纳入正式输出结构。
13. 验收标准
本模块完成后,应至少满足:
- 能支持目录汇总、完整性检查、字段抽取、一致性核查、风险预警五类核心任务。
- 核心结论有结构化输出,不依赖随意文本。
- 规则和模型分工清晰,法规判断不完全依赖大模型生成。
- 输出能关联到具体文档和证据片段。
- 测试环境下可以通过 Mock Provider 验证主要编排逻辑。