LangGraph银行数据分析群体智能代理:Text-to-SQL、EDA可视化与动态任务编排|附代码数据
全文链接:https://tecdat.cn/?p=45116 在此对Pin Vi对本文所作的贡献表示诚挚感谢,她是一名热衷于数据科学和机器学习的爱好者,拥有扎实的数据分析、机器学习算法和编程基础。她有建模、管理混乱数据和解决现实问题的实践经验。她的目标是运用数据驱动的洞察,创造能够带来成果的切实可行的解决方案。她渴望在协作环境中贡献技能,同时继续在数据科学、机器学习和自然语言处理领域学习和成长。 作为一名分析师,我经常面对企业客户这样的困惑:“我们拥有海量数据,却很难快速从中提取 actionable insights。” 传统的数据分析流程往往需要人工编写SQL、手动绘制图表,效率低下且容易出错。而在谷歌开发团队与高校实验室的交叉实践中,我们发现:群体智能(Swarm Intelligence) 的协作模式可以完美解决这一痛点——让多个AI代理像蚁群一样分工协作,各自发挥专长,最终输出高质量的分析结果。 本文内容改编自过往客户咨询项目的技术沉淀并且已通过实际业务校验,该项目完整代码与数据已分享至交流社群。阅读原文进群获取更多最新AI见解和行业洞察,可与900+行业人士交流成长;还提供人工答疑,拆解核心原理、代码逻辑与业务适配思路,帮大家既懂“怎么做”,也懂“为什么这么做”;遇代码运行问题,更能享24小时调试支持。 本文将带领读者从零构建一个基于 LangGraph Swarm 的多智能体系统,其中包含两个核心代理: 通过一个银行客户分层分析的端到端案例,我们将展示群体代理如何以去中心化、角色专精的方式协同工作,最终输出可直接用于决策的图表与结论。全文脉络如下: 群体代理(Swarm Agents)是指一组自治的AI实体,每个实体执行特定的子任务,并通过结构化通信共同完成复杂目标。这种设计模仿了自然界中的蚁群或蜂群:没有中央指挥官,但个体通过简单规则和局部信息交互,涌现出全局智能。 在数据分析场景中,我们可以将任务拆分为“数据获取”、“数据清洗”、“统计分析”、“可视化”等多个环节,每个环节由一个专门的代理负责。代理之间通过预定义的切换工具(handoff tools)传递上下文,从而实现流水线式的协作。 成功的群体代理系统通常遵循以下原则: 本系统包含两个核心代理和一个隐式协调者(由LangGraph Swarm框架自动管理): 代理之间的协作通过切换工具(handoff tools)实现。当一个代理完成其任务后,可以主动调用切换工具,将控制权转交给另一个代理。整个数据流如下: 这种动态切换机制使得系统能够处理多轮迭代查询。 相关文章(后面要换一行) 原文链接:https://tecdat.cn/?p=44060 首先安装所需Python库。我们使用LangChain生态的LangGraph Swarm模块来构建多代理系统。 此外需要SQLite支持(本例使用本地银行数据库 每个代理需要明确的系统提示词来限定其行为。 代理之间通过切换工具进行通信。 现在创建两个代理实例。 获取完整代码请阅读原文加入社群。 使用 最后定义一个执行函数作为对外接口。 我们用一个典型的多层下钻查询来测试系统:从省份维度开始,逐层深入到支行和账户类型,统计账户数量。 执行过程中,代理会自动完成SQL编写、数据提取和图表绘制。以下是部分输出摘要: 获取完整代码请阅读原文加入社群。 可视化代理生成了分组条形图,展示了各省份、支行、账户类型的账户数量分布。 可视化代理进一步提供了业务洞察: ...... 获取完整代码请阅读原文加入社群。 本文展示了如何利用LangGraph Swarm框架构建一个由数据分析代理和可视化代理组成的群体智能系统。通过将复杂查询拆解为SQL提取与图表绘制两个子任务,并让专业代理各司其职,系统实现了: 这一模式已在多个咨询项目中验证其有效性,特别适合需要快速响应、多维度下钻的数据分析场景。随着大语言模型能力的不断提升,群体智能代理将成为企业数据决策的核心引擎。
原文出处:拓端数据部落公众号关于分析师
引言
用户查询
↓
协调代理(入口)
↓
数据分析代理(Text-to-SQL)
↓
数据可视化代理(EDA绘图)
↓
结果输出(图表+洞察)1. 群体智能代理概述
1.1 什么是群体代理?
1.2 核心设计原则
2. 系统架构设计
2.1 代理角色与职责
职责:接收用户查询,解析为SQL语句,从数据库中提取数据,并返回结构化结果(如表格)。
工具:SQL数据库工具包(SQLDatabaseToolkit),包含查询数据库、获取表结构等函数。
职责:接收分析结果,选择合适的图表类型(如条形图、折线图),使用Python绘图库生成图表,并附带业务洞察。
工具:Python REPL工具,用于执行绘图代码。
由LangGraph Swarm内置,负责根据用户查询激活合适的代理,并在代理之间传递上下文。它相当于一个智能路由器。2.2 数据流与协作机制
DeepSeek、LangGraph和Python融合LSTM、RF、XGBoost、LR多模型预测NFLX股票涨跌|附完整代码数据
3. 基于LangGraph Swarm的实现
3.1 环境配置与依赖
pip install langchain==1.2.4 \
langgraph==1.0.6 \
langgraph-swarm \
langchain-openai==1.1.4 \
langchain-community==0.4.1 \
langchain-experimental==0.4.0banking_insights.db)。# 导入必要模块
from langchain_openai import ChatOpenAI
from langgraph_swarm import create_swarm, create_handoff_tool, SwarmState
from langgraph.checkpoint.memory import MemorySaver
from langchain_community.utilities import SQLDatabase
from langchain_community.agent_toolkits import SQLDatabaseToolkit
from langchain_experimental.utilities import PythonREPL
# 初始化大语言模型
model = ChatOpenAI(model="gpt-4.1-mini", temperature=0)
# 连接数据库
database = SQLDatabase.from_uri("sqlite:///banking_insights.db")
# 创建SQL工具包
sql_tools_kit = SQLDatabaseToolkit(db=database, llm=model)
sql_tools = sql_tools_kit.get_tools()3.2 代理提示词设计
# 数据分析代理提示词
DATA_ANALYST_PROMPT = """
你是一位数据分析专家,精通零售银行业务的SQL查询。
你的主要任务:
- 将用户的问题转换为正确的SQL语句
- 从数据库中准确提取数据
- 提供简洁的事实性摘要
- 当需要可视化时,将结果交给EDA可视化代理
"""
# 可视化代理提示词
EDA_VISUALIZER_PROMPT = """
你是一位EDA可视化专家,擅长数据分析和图表绘制。
你的职责:
- 创建清晰、业务就绪的图表
- 使用Python进行绘图
- 返回支持决策的可视化洞察
"""3.3 切换工具与代理创建
3.4 构建群体工作流
create_swarm将两个代理组合成群体,并指定默认激活代理。4. 银行数据分析案例
4.1 查询执行与结果
4.2 可视化输出与解读
5. 结论与展望