三模型协同架构概述

考勤制度生成与风险分析系统采用三模型协同架构,通过明确的职责划分和协作机制,确保系统回答的准确性和可靠性。

三模型数据流转过程 用户输入: "请帮我制定一套适合IT公司的考勤制度" 工具调用决策模型 分析意图: "生成类场景-第一步", 决定调用标准规范工具和劳动法工具 工具执行模型 执行工具调用: searchStandardTemplate + searchLaborLaw 回答生成模型 基于工具结果组织回答,提供IT公司考勤制度框架,询问用户是否生成完整模板

三模型协同优势

考勤制度生成与风险分析系统的三模型协同架构将复杂任务分解为专门的模型处理,通过明确的职责划分,确保每个模型专注于自己的专长领域。这种设计带来以下优势:

  • 职责明确分离:每个模型专注于特定任务,提高系统可维护性
  • 结果可靠性提升:工具执行模型严格按照决策执行,避免偏差
  • 灵活性与可扩展性:可以独立优化或升级各模型,不影响整体架构
  • 错误隔离与处理:单一模型出错不会影响整个系统,便于故障排除

工具调用决策模型详解

第一个模型负责分析用户意图,确定场景类型,并决定需要调用的工具组合。

工具调用决策模型

分析用户意图并决定调用哪些工具

工具调用决策模型是系统的"大脑",负责理解用户需求并规划相应的工具调用策略。它分析用户问题、上下文信息和对话历史,确定当前场景类型和处理步骤,然后决定调用哪些工具及其参数。

主要职责与功能:

1
用户意图识别

通过分析用户提问的内容、关键词和上下文,识别用户的真实意图,如咨询政策、分析文档、生成制度等。

2
场景类型判断

将用户问题归类为咨询类、分析类、生成类、可视化类等不同场景,并确定处于场景的哪个步骤。

3
工具组合选择

根据场景类型和步骤选择最合适的工具组合,遵循"知识先行"原则,优先调用知识库工具。

4
搜索参数定制

根据用户角色、部门和问题特点定制搜索参数,确保工具返回最相关的结果。

5
生成决策JSON

将决策结果组织为结构化的JSON格式,包含工具名称、参数和决策原因,传递给工具执行模型。

决策输出示例:

// 用户问题:"请帮我制定一套IT公司的考勤制度" { "toolDecision": [ { "toolName": "标准规范模板知识库搜索工具", "parameters": { "searchQuery": "IT行业 考勤制度 模板 弹性工作" } }, { "toolName": "中华人民共和国劳动法知识库搜索工具", "parameters": { "searchQuery": "考勤管理 法律要求 必备条款" } } ], "reasoning": "用户需要制定新政策,需检索相关标准和法律依据", "contextFactors": { "userRole": "HR专员,需要全面政策信息", "scenarioType": "生成类场景", "currentStep": "第一步-收集法律依据", "industryFocus": "IT行业考勤特点", "frontendImpact": "不触发前端组件更新" } }

工具执行模型详解

第二个模型负责严格按照决策模型的指示调用工具,基于大模型的function calling能力实现工具调用。

工具执行模型

基于function calling能力执行工具调用

工具执行模型利用大模型的function calling能力,充当系统的"执行者"。它不进行复杂的决策判断,而是专注于将决策模型的JSON指令转化为实际的工具调用。模型被严格约束,确保只按照决策模型的要求执行操作,保证系统调用流程的可控性和安全性。

工作原理:

1
接收决策指令

工具执行模型接收来自决策模型的JSON格式指令,包含需要调用的工具名称和参数。

2
大模型function calling触发

模型基于预定义的function schema,自动调用对应的函数,无需额外的代码转换处理。

3
执行函数调用

模型直接调用系统注册的工具函数,如searchStandardTemplate、searchLaborLaw等。

4
结果传递

工具调用结果直接返回,不经过任何处理或分析,保持原始数据格式。

Function Calling工作示例:

// 工具执行模型的函数调用定义 const tools = [ { "name": "searchStandardTemplate", "description": "检索考勤管理相关法规标准和最佳实践", "parameters": { "type": "object", "properties": { "searchQuery": { "type": "string", "description": "搜索关键词字符串" } }, "required": ["searchQuery"] } }, { "name": "searchLaborLaw", "description": "检索劳动法律法规条款和解释", "parameters": { "type": "object", "properties": { "searchQuery": { "type": "string", "description": "搜索关键词字符串" } }, "required": ["searchQuery"] } } // 其他工具定义... ]; // 大模型的响应会自动触发函数调用 const modelResponse = { "tool_calls": [ { "type": "function", "function": { "name": "searchStandardTemplate", "arguments": "{\"searchQuery\":\"IT行业 考勤制度 模板 弹性工作\"}" } }, { "type": "function", "function": { "name": "searchLaborLaw", "arguments": "{\"searchQuery\":\"考勤管理 法律要求 必备条款\"}" } } ] };

Function Calling优势

利用大模型的function calling能力实现工具执行有多项关键优势:

  • 无需复杂代码转换:大模型能直接产生符合API规范的函数调用
  • 类型安全:通过JSON Schema定义参数类型,减少类型错误
  • 可扩展性强:新工具只需注册对应的function schema即可被模型使用
  • 调用过程可跟踪:每次函数调用及其参数都有明确记录
  • 自动参数验证:大模型会确保生成符合schema定义的参数

执行约束与防护:

为确保工具执行模型严格按照决策模型的指示执行操作,系统设置了多重约束:

1
指令过滤

执行前验证决策JSON的合法性,拒绝执行未授权或异常指令。

2
工具白名单

模型只能调用预先定义的工具集合,无法执行系统未注册的函数。

3
参数约束

参数必须符合function schema定义,超出范围的参数会被自动拒绝。

4
执行日志

记录每次工具调用的详细信息,包括调用方、参数和返回结果,便于审计。

回答生成模型详解

第三个模型负责基于工具结果组织回答,根据用户角色调整回答风格,并与前端组件状态集成。

回答生成模型

整合工具结果,生成专业回答

回答生成模型是系统的"语言专家",负责将工具调用的原始结果转化为专业、连贯且易于理解的回答。它根据用户角色调整回答风格,检查前端组件状态,并在必要时引导用户查看生成的可视化或模板内容。

主要职责与功能:

1
解析工具结果

分析来自各工具的调用结果,提取关键信息和知识点。

2
知识整合

综合不同工具的结果,将标准规范、法律法规和用户文档信息有机结合。

3
用户角色适配

根据用户角色(普通员工/部门管理者/HR专员)调整回答的专业程度和内容重点。

4
前端组件集成

检查前端组件状态,当有可视化或模板生成时,引导用户查看相应内容。

5
多步骤引导

在多步骤场景中,引导用户完成下一步操作,如"是否需要生成完整模板"。

回答生成示例:

// 基于工具结果和用户角色生成回答 function generateResponse(toolResults, userRole, frontendState) { let response = ""; // 整合不同工具的结果 const standardInfo = toolResults["标准规范模板知识库搜索工具"]; const lawInfo = toolResults["中华人民共和国劳动法知识库搜索工具"]; // 根据用户角色调整回答风格 if (userRole === "HR专员") { response = "为您准备了一份适合IT公司的考勤制度框架,融合了行业最佳实践和法律法规要求:\n\n"; response += "核心要点包括:\n1. 弹性工作时间...\n2. 远程办公规定...\n3. 加班管理...\n"; response += "\n法律依据:\n- 《劳动法》第36-44条...\n- 《关于企业实行不定时工作制...》\n"; } else if (userRole === "部门管理者") { // 为部门管理者量身定制的回答... } // 检查前端组件状态,引导用户查看生成内容 if (frontendState.componentType === "template" && frontendState.componentId) { response += "\n\n已为您生成考勤制度模板,请在右侧界面查看完整内容。"; } else { response += "\n\n如果您确认这个框架符合需求,我可以为您生成一份完整的IT公司考勤制度文档。需要我为您生成完整的考勤制度吗?"; } return response; }

数据流转与状态管理

三模型之间的数据流转和状态管理是系统稳定运行的关键。

数据类型 流向 内容说明 存储方式
用户输入 用户 → 决策模型 用户提问、上传文档等 对话历史表
工具决策 决策模型 → 执行模型 工具名称、参数、决策原因等 临时会话变量
工具结果 执行模型 → 回答模型 各工具返回的原始结果 tool_results表
生成内容 执行模型 → 数据库 可视化数据、制度模板等 visualizations表、templates表
前端状态 数据库 → 回答模型 组件类型、ID等 active_component表
最终回答 回答模型 → 用户 组织后的完整回答 对话历史表

状态管理要点

系统的状态管理遵循以下关键原则:

  • 工具结果持久化:所有工具调用结果都存储在数据库中,便于回溯和分析
  • 组件状态跟踪:active_component表记录当前活动的前端组件,支持前端动态更新
  • 场景状态保持:系统记录当前对话的场景类型和步骤,确保多轮对话的连贯性
  • 状态一致性检查:回答模型严格检查工具结果和前端状态的一致性,避免错误引导