单一模型"一步到位"生成SQL+分析+报告的模式,在复杂场景下准确率和质量都会急剧下降。鲲溟智能采用多Agent协同架构,将"理解→生成→分析→表达"拆解为4个专业化Agent,各司其职、相互校验、协同工作。本文深度解析每个Agent的职责、输入输出、协同机制和工程实现。
📖 导读
一个真实场景:用户问"帮我分析一下上个月经营情况,和去年同期对比,找出主要问题,给出改善建议"。
这个问题需要:①理解"经营情况"包含哪些指标;②生成多条SQL(收入/成本/利润/客户/产品);③执行查询并对比同比数据;④分析差异、归因;⑤生成结构化报告+可视化+建议。
如果让一个模型"一口气"完成,结果往往是:SQL写错、分析肤浅、建议空泛。但如果拆成4个专家Agent协作------规划师、SQL工程师、分析师、报告撰写人------每个环节都能做到专业级水准。
关键词:多Agent架构、Agentic Analytics、NL2SQL、协同推理、查询规划、鲲溟智能
一、为什么需要多Agent?
1.1 单Agent的局限性
1.2 鲲溟智能四Agent架构总览
二、Agent 1:查询规划(Query Planner)
2.1 职责
将用户的自然语言问题转化为结构化的"查询计划"------决定查什么、怎么查、分析什么。
2.2 工作流程
2.3 规划策略
| 意图类型 | 子任务数 | 分析深度 | 典型耗时 |
|---|---|---|---|
| 简单查询 | 1 | 无 | <3秒 |
| 对比分析 | 2-3 | 对比+差异 | 5-10秒 |
| 归因分析 | 4-6 | 多维拆解+因素 | 15-30秒 |
| 综合报告 | 8-12 | 全景分析+归因+建议 | 2-5分钟 |
| 预测分析 | 3-5 | 趋势+模型+区间 | 10-20秒 |
三、Agent 2:SQL生成(SQL Generator)
3.1 职责
按照查询计划,逐条生成SQL,自校验后执行,返回结果集。
3.2 工作流程
3.3 并行执行优化
python
# 多条SQL的并行执行策略
class SQLExecutor:
def execute_plan(self, plan):
# 1. 依赖分析:哪些SQL可以并行?
# 无依赖关系的SQL并行执行
# 有依赖的(如需要前一条结果作为条件)串行
independent_tasks = self.find_independent(plan.tasks)
dependent_tasks = self.find_dependent(plan.tasks)
# 2. 并行执行独立任务(通常5-8条可以并行)
results = parallel_execute(independent_tasks, max_workers=5)
# 3. 串行执行依赖任务
for task in dependent_tasks:
result = self.execute_with_context(task, results)
results[task.id] = result
# 4. 结果汇总
return results
四、Agent 3:洞察分析(Insight Analyst)
4.1 职责
对查询结果进行深度分析:发现异常、对比差异、归因分析、生成建议。
4.2 分析能力矩阵
| 分析类型 | 输入 | 方法 | 输出 |
|---|---|---|---|
| 趋势分析 | 时间序列数据 | 环比/同比/趋势线 | "连续3个月下降" |
| 异常检测 | 多维数据 | 统计阈值/孤立森林 | "华东区异常偏离" |
| 对比分析 | 多组数据 | 差异计算/排名 | "A比B高15%" |
| 归因分析 | 差异+维度数据 | 贡献度分解/因素拆解 | "主因是X(贡献60%)" |
| 相关分析 | 多指标数据 | 相关性/因果推断 | "与Y强相关(r=0.85)" |
| 建议生成 | 分析结论+知识库 | 规则匹配/案例推理 | "建议采取Z措施" |
4.3 归因分析示例
4.4 洞察质量标准
python
# 洞察质量评估标准
class InsightQuality:
def evaluate(self, insight):
criteria = {
# 1. 数据支撑:每个结论必须有数据依据
"data_backed": insight.has_specific_numbers,
# 2. 可操作性:建议是否具体可执行
"actionable": insight.has_specific_actions,
# 3. 优先级:是否标注了重要程度
"prioritized": insight.has_priority_ranking,
# 4. 因果而非相关:是否区分了因果和相关
"causal_not_correlational": insight.distinguishes_causation,
# 5. 量化影响:是否量化了影响大小
"quantified_impact": insight.has_impact_numbers,
}
# 不合格的洞察不输出(宁缺毋滥)
if not all(criteria.values()):
return self.refine(insight) # 要求重新分析
return insight
五、Agent 4:报告生成(Report Writer)
5.1 职责
将分析结果转化为用户友好的结构化报告:选图表、写文字、排结构。
5.2 报告结构模板
5.3 智能图表选择
| 数据特征 | 推荐图表 | 选择逻辑 |
|---|---|---|
| 时间趋势 | 折线图 | 有时间轴+连续变化 |
| 分类对比 | 柱状图 | 离散类别+数值对比 |
| 占比构成 | 饼图/环形图 | 部分vs整体(≤7类) |
| 多维对比 | 雷达图 | 3+维度综合评价 |
| 分布特征 | 直方图/箱线图 | 数据分布+离群值 |
| 相关关系 | 散点图 | 两变量相关性 |
| 排名 | 横向柱状图 | 排名+数值 |
| 流程转化 | 漏斗图 | 阶段转化率 |
六、Agent间协同机制
6.1 消息传递协议
python
# Agent间通信消息格式
class AgentMessage:
from_agent: str # 发送方
to_agent: str # 接收方
msg_type: str # "task" / "result" / "feedback" / "error"
payload: dict # 具体内容
trace_id: str # 全链路追踪ID
timestamp: datetime
# 示例:Planner → SQL Generator
msg = AgentMessage(
from_agent="query_planner",
to_agent="sql_generator",
msg_type="task",
payload={
"task_id": "T001",
"description": "查询本月各区域营收及同比",
"metrics": ["revenue"],
"dimensions": ["region", "month"],
"filters": {"month": "2026-08"},
"comparison": "yoy",
"priority": "high"
}
)
6.2 反馈与重试机制
6.3 质量门控
七、性能与工程
7.1 延迟优化
| 环节 | 优化策略 | 效果 |
|---|---|---|
| Planner | 意图分类缓存(相似问题复用计划模板) | -50%规划时间 |
| SQL Gen | 多条SQL并行生成+并行执行 | -60%执行时间 |
| Analyst | 预计算统计指标(均值/标准差/趋势) | -40%分析时间 |
| Reporter | 模板化生成(结构固定,填充内容) | -30%生成时间 |
| 全链路 | 流式输出(边分析边展示) | 用户感知-50% |
7.2 可观测性
python
# 全链路追踪
class AgentTracer:
def trace(self, trace_id):
return {
"trace_id": trace_id,
"total_time": "3.2s",
"agents": [
{"name": "planner", "time": "0.5s",
"output": "8 tasks planned"},
{"name": "sql_generator", "time": "1.2s",
"output": "8/8 SQL success, 0 retry"},
{"name": "analyst", "time": "0.8s",
"output": "5 insights, 3 recommendations"},
{"name": "reporter", "time": "0.7s",
"output": "report generated, 3 charts"}
],
"token_usage": {"input": 12500, "output": 3200},
"confidence": 0.94
}
📌 本文要点回顾
- 多Agent架构将"理解→生成→分析→表达"拆解为4个专业化Agent,每个环节做到专业级
- Query Planner:理解意图、展开指标、规划子任务(综合报告=8-12条子任务)
- SQL Generator:逐条生成SQL+三重自校验+错误自动恢复,支持并行执行
- Insight Analyst:五层归因(总量→区域→产品线→客户→外部因素),每个洞察必须有数据支撑+可执行建议
- Report Writer:智能图表选择+结构化表达+多格式输出(PDF/PPT/在线)
- 协同机制:任务分发→结果回传→反馈重试→质量门控,全链路可追踪、可调试
❓ FAQ
Q1:多Agent会不会比单Agent慢很多?
A:总耗时确实比单Agent长(单Agent 3-5秒,多Agent综合报告2-5分钟),但两者解决的问题不同:单Agent适合简单查询(秒级返回),多Agent适合复杂分析(分钟级但质量远超人工)。对于简单问题,系统自动走"快速通道"(只经过SQL Gen),不触发完整4-Agent流程。
Q2:Agent之间的"对话"会不会产生幻觉?
A:每个Agent的输出都有质量门控:①SQL Gen的结果必须来自真实数据库执行(不是模型编造);②Analyst的每个结论必须引用具体数据(可追溯到SQL结果);③Reporter的文字必须与数据一致(交叉校验)。这种"数据锚定"机制有效防止幻觉。
Q3:这个架构支持自定义扩展吗?比如加一个"预测Agent"?
A:完全支持。Agent架构是插件化的:新增Agent只需定义输入/输出接口和协同规则。例如增加"Prediction Agent"(时序预测),只需在Planner的计划中增加"预测类任务",Analyst在需要时调用即可。不影响其他Agent。
💬 互动话题:你在做AI Agent相关的工程实践吗?你更倾向于"单模型一步到位"还是"多Agent协同"?在实践中遇到过哪些Agent协同的挑战?
欢迎在评论区分享你的AI Agent工程经验!
本文作者:鲲溟智能 · 产品与解决方案部
鲲溟智能官网:www.trionesagent.com
下一篇预告:【AI问数·技术】Agentic Analytics深度解析:5步自主分析的技术内核