Master Agent:Chatbot MAS 中枢路由设计
文档版本:v2.0
更新日期:2026-06-04
所属体系:本文档描述 Chatbot MAS(对话式多智能体系统) 的中枢路由层,属于整个空间智能体项目的一个子系统。项目整体架构参见 整体架构概览。
1. 核心定位与架构总览
1.1 角色定位
Master Agent 是 Chatbot MAS 对话式多智能体系统的中枢,承担以下职责:
- 意图分发:L1 意图识别后将用户请求路由至对应子 Agent
- 调度编排:维护子 Agent 注册清单与调用协议
- 记忆管理:维护跨 Agent 的 Short-term Memory,保证对话连续性
- 冲突协调:当多 Agent 指令冲突时执行全局裁定策略
核心原则:Master Agent 只做路由不执行业务,具体对话逻辑、槽位提取、业务编排全部下沉至子 Agent。
适用范围:仅覆盖 Chatbot MAS 内部。独立后台 Agent(智能整备、一键诊断)不经过 Master Agent 路由,详见 整体架构概览。
1.2 Chatbot MAS 子 Agent 全景图
1.3 与现有文档的关系
| 文档 | 关系 |
|---|---|
整体架构概览.md | 定义项目三大 Agent 体系及边界,本文档是其 Chatbot MAS 子体系的详细设计 |
2026_AI空间智能体_权限体系设计.md | 定义两段式权限校验:Master Agent 负责功能准入(L1 路由前校验 branch_id) |
SA_空间预约_Agent设计.md | Master Agent 的 MEETING 分支路由目标 |
SA_设备控制_Agent设计.md | Master Agent 的 IOT 分支路由目标 |
QA_闲聊对话_Agent设计.md | Master Agent 的 QA 分支路由目标 |
Data_Query — ChatBI API | Master Agent 的 DATA 分支路由目标,无独立 PRD,直接复用 ChatBI 工具 |
FA_设备协同官_业务流程设计.md | Master Agent 的 TICKET 分支路由目标 |
2. L1 意图识别与路由
2.1 意图分类定义
| 意图 | 标签 | 覆盖范围 | 路由目标 |
|---|---|---|---|
| 会议 | MEETING | 会议室预定、查询、修改、取消 | SA_Reservation Agent |
| 设备控制 | IOT | 环境调节、设备开关、模式切换 | SA_Device_Control Agent |
| 数据查询 | DATA | 动态数据:能耗报表、人流量、会议室利用率、设备运行统计等 | Data_Query Agent (→ ChatBI) |
| 闲聊/问答 | QA | 静态知识:寒暄、楼宇流程/规定、开放式问答、模糊输入 | QA_Chat Agent |
DATA 与 QA 的核心区分:DATA 查询的是实时/统计数据(走 ChatBI 结构化管道),QA 查询的是静态知识(走 KB RAG 非结构化管道)。两者管道不同,不宜合并。
2.2 L1 Router 提示词设计 (仅参考)
# 角色:智能中控路由
你的唯一任务是判断用户输入的意图类别。不要做槽位提取。
# 意图类别
1. **MEETING**: 涉及会议室预定、查询会议、修改日程、取消会议。
- 示例:"定个明天的会"、"查一下305有人吗"、"取消下周的例会"
2. **IOT**: 涉及物理环境控制、设备操作、环境调节。
- 示例:"太热了"、"把灯关一下"、"305 空调调到 25 度"
3. **DATA**: 涉及**动态数据**查询:数字、统计、趋势、排名、对比、当月/上月/同比环比。
- 示例:"上个月电费多少"、"昨天人流量大吗"、"305本周利用率"、"哪个楼层能耗最高"
4. **QA**: 涉及**静态知识**或非业务输入:
- 流程/规定/方法/定义/说明:如"会议室怎么预约"、"停车费怎么收"、"什么是碳中和"
- 问候/寒暄:如"你好"、"谢谢"
- 模糊/无法归类:如"帮我看看"、"随便聊聊"
# DATA vs QA 区分规则
- 涉及 数字/统计/趋势/排名/对比 → **DATA**
- 涉及 流程/规定/方法/定义/说明 → **QA**
# 输出格式
仅输出 JSON,包含 intent 和 confidence。
{
"intent": "MEETING" | "IOT" | "DATA" | "QA",
"confidence": 0.0 ~ 1.0
}2.3 置信度策略
| 置信度区间 | 策略 | 说明 |
|---|---|---|
>= 0.8 | 直接路由 | 确信度高,直接分发至对应子 Agent |
0.5 ~ 0.8 | 路由 + 澄清标记 | 分发至子 Agent,同时传递 ambiguous: true,子 Agent 可主动发起澄清反问 |
< 0.5 | 全部归入 QA | 低置信度时不做强行分类,将模糊输入交由 QA_Chat Agent 统一处理 |
关于 DATA 分支:DATA 分支走 ChatBI 管道,与 QA 的 KB RAG 管道完全隔离。详见 §4.4。
2.4 权限前置校验
L1 路由完成后、分发至子 Agent 前,Master Agent 需执行一步权限检查:
- 根据当前用户的
permission_profile,确认其是否有权访问该intent(即对应的branch_id) - 有权限 → 正常分发
- 无权 → 返回统一话术"抱歉,您没有使用此功能的权限,请联系管理员开通"
权限模型详细定义参见:2026_AI空间智能体_权限体系设计.md
两段式校验分工:Master Agent 只做功能准入(能/不能用这个意图),数据层面的过滤(用户能看哪些空间/设备)由子 Agent 代码层自行处理。
2.5 路由性能要求
- L1 意图识别(含 LLM 调用)应控制在 2s 以内
- L1 阶段不做知识库检索,仅依赖 LLM 自身分类能力,确保轻量快速
- 若后续需要接入知识库辅助意图增强(KB RAG for Intent Enhancement),仅在 confidence < 0.7 的边缘场景下选择性触发
3. 子 Agent 调度协议
3.1 输入协议(Master → Sub-Agent)
当 L1 判定意图后,Master 向子 Agent 传递以下结构:
{
"query": "用户原始输入文本",
"context": {
"user_id": "用户标识",
"current_space": "当前所在空间",
"current_time": "当前系统时间",
"chat_history": ["最近 N 轮对话摘要"],
"cross_domain_memo": "跨域记忆摘要(如有)"
},
"intent_l1": "MEETING | IOT | DATA | QA",
"confidence": 0.95,
"ambiguous": false
}| 字段 | 类型 | 说明 |
|---|---|---|
query | String | 用户原始输入,子 Agent 可进一步做 NLU |
context | JSON | 全局上下文,包含空间/用户/时间信息 |
intent_l1 | String | L1 判定的顶层意图 |
confidence | Float | L1 置信度 |
ambiguous | Boolean | 是否处于置信度边缘区间,子 Agent 可据此决定是否主动澄清 |
3.2 输出协议(Sub-Agent → Master)
子 Agent 处理完毕后,向 Master 回传执行状态:
{
"status": "COMPLETED | CLARIFY | REJECTED",
"payload": {
"text": "回复给用户的文本",
"action": "ACTION_TYPE (可选,如 RENDER_CARD | TRIGGER_API)",
"params": {}
}
}| 状态 | 说明 |
|---|---|
COMPLETED | 子 Agent 正常完成处理,返回回复内容 |
CLARIFY | 子 Agent 需用户进一步澄清,返回追问文案 |
REJECTED | 子 Agent 无法处理(超出能力范围),Master 执行兜底 |
3.3 子 Agent 能力注册规范
每个子 Agent 必须在 Master Agent 中注册其能力标签,格式:
agent_name: QA_Chat
display_name: "闲聊对话助手"
capabilities:
- casual_chat # 寒暄社交对话
- knowledge_qa # 知识问答(含 KB RAG)
- fuzzy_input # 模糊输入处理
input_type: raw_text # 输入类型:raw_text | structured_slots4. 分支编排流程
4.1 MEETING → SA_Reservation Agent
用户输入 → L1 Router(MEETING)
→ 注入上下文 (当前空间、时间、用户)
→ 调用 SA_Reservation Agent
├── Slot Filling → 后端会议 API
├── 多轮澄清 (如有缺失槽位)
└── 返回会议推荐/执行结果
→ Master 接收结果 → 返回用户详细设计参见:SA_空间预约_Agent设计
4.2 IOT → SA_Device_Control Agent
用户输入 → L1 Router(IOT)
→ 注入上下文 (当前空间、设备状态摘要)
→ 调用 SA_Device_Control Agent
├── Slot Filling → 3x3 Composite Search
├── L3 深度注入 → 产品级聚合能力
└── 返回控制卡片/执行结果
→ Master 接收结果 → 返回用户详细设计参见:SA_设备控制_Agent设计
4.3 QA → QA_Chat Agent(本期核心)
用户输入 → L1 Router(QA 或 < 0.5 置信度)
→ 注入上下文 (对话历史、当前空间)
→ 调用 QA_Chat Agent
├── 场景分类 → 寒暄/知识/模糊
├── [知识类] KB RAG 检索 → 增强生成
├── [寒暄类] 直接 LLM 生成
└── [模糊类] 澄清反问
→ Master 接收结果 → 返回用户详细设计参见:QA_闲聊对话_Agent设计
4.4 DATA → Data_Query Agent
设计背景
公司已有 ChatBI 工具(纯 API),可以查询动态数据、召回仪表盘报表、动态生成数据报表,且不区分业务域(覆盖能耗、会议、人流等所有领域)。
Master Agent 将 DATA 意图路由至 Data_Query 子 Agent,由它调用 ChatBI API 完成数据查询。
处理流程
用户输入 → L1 Router(DATA)
→ 注入上下文 (用户身份、当前空间、时间范围)
→ 调用 Data_Query Agent
├── 自然语言 → 转换为 ChatBI 查询参数
├── 调用 ChatBI API → 返回数据/报表
└── 格式化结果返回用户
→ Master 接收结果 → 返回用户与 QA 分支的管道对比
| 维度 | DATA(动态数据) | QA(静态知识) |
|---|---|---|
| 数据源 | ChatBI API(实时数仓/报表系统) | KB 知识库(文档/FAQ) |
| 查询方式 | 结构化查询(SQL/API) | 向量检索 + LLM 生成 |
| 返回形态 | 数字、趋势图、报表 | 文字说明、流程指引 |
| 典型问题 | "本月电费"、"305利用率"、"人流量排名" | "怎么预约"、"收费标准"、"管理制度" |
实现方式
Data_Query Agent 为轻量子 Agent,结构:
- Prompt:将用户自然语言查询转化为 ChatBI API 可理解的参数
- Tool:挂载 ChatBI API 作为唯一工具节点
- 输出:直接透传 ChatBI 返回的数据/报表结果,或由 LLM 格式化后呈现
无独立 PRD,直接复用 ChatBI 现有能力。
4.5 冲突协调策略
| 冲突场景 | 策略 |
|---|---|
| Agent A 要关灯,Agent B 表示会议进行中 | 会议优先:环境控制需确认用户意图 |
| 用户同时发控制+问答混合指令 | 单意图优先:仅路由 L1 最高置信度意图,另一意图在回复中提示 |
5. 全局上下文与记忆管理
5.1 Short-term Memory(会话级)
Master Agent 维护当前对话线程的 Short-term Memory,包括:
- 当前用户身份与所属空间
- 最近 10 轮对话摘要
- 本轮已调用的子 Agent 记录
5.2 跨域记忆共享
当用户在不同子 Agent 间切换时,Master Agent 负责跨域记忆的传递:
用户: "帮我把305的灯关掉" → L1: IOT → SA_Device_Control
用户: "顺便帮我订个会议室" → L1: MEETING → SA_Reservation
(注入:用户刚在 305 关了灯)跨域记忆摘要由 Master Agent 维护,每次切换 Agent 时注入至目标子 Agent 的 context.cross_domain_memo 字段。
5.3 主动述职机制(预留)
Master Agent 每日汇集各子 Agent 离线执行的任务(预热、调优、定时策略等),生成数字员工日报。本期不实现,预留接口。
6. 与独立后台 Agent 的关系
以下 Agent 不经过 Master Agent 路由,属于独立的 Agent 体系,详见 整体架构概览:
- SA_Prep(智能整备):时间/事件驱动的后台定时任务,会前自动预热预冷
- FA_Diagnosis(一键诊断):嵌入工单系统的独立 Agent,工单详情页按钮触发
详细设计参见:SA_主动整备_Agent设计
7. 附录
7.1 子 Agent 接入清单
| Agent | 编号 | 能力标签 | 接入状态 | 依赖文档 |
|---|---|---|---|---|
| SA_Reservation | SA-01 | resource_booking, availability_check, conflict_recommendation | ✅ 已接入 | SA_空间预约_Agent设计.md |
| SA_Device_Control | SA-02 | device_control, environment_control, implicit_recovery | ✅ 已接入 | SA_设备控制_Agent设计.md |
| Data_Query | DA-01 | data_query, report_recall, dynamic_chart | 🆕 本期新增 | ChatBI API(无独立 PRD) |
| QA_Chat | QA-01 | casual_chat, knowledge_qa, fuzzy_input | 🆕 本期新增 | QA_闲聊对话_Agent设计.md |
| FA_Ticket | FA-01 | ticket_creation, multimodal_input | 🔜 本期新增 | FA_设备协同官_业务流程设计.md |
