数据分析与商业智能
数据分析是 Agent 最具价值的应用场景之一——Agent 可以连接数据库、执行代码、生成图表,将"问数据"变成"对话式探索"。本章讲解数据分析 Agent 的架构、核心能力和实现方案。
一句话理解
数据分析是 Agent 最具价值的应用场景之一——Agent 可以连接数据库、执行代码、生成图表,将"问数据"变成"对话式探索"。本章讲解数据分析 Agent 的架构、核心能力和实现方案。
阅读前置
具备大模型与 Agent 全局认识
本文关注
数据分析 Agent 的能力、架构设计、多工具协作分析
所在知识层
业务落地 · 实际应用场景
文章导航
点击图中节点可定位到对应正文。
核心主题关系与流向
引言
数据分析是 Agent 最具价值的应用场景之一——Agent 可以连接数据库、执行代码、生成图表,将"问数据"变成"对话式探索"。本章讲解数据分析 Agent 的架构、核心能力和实现方案。
1. 数据分析 Agent 的能力
1.1 传统 BI vs Agent BI
| 对比维度 | 传统 BI 工具 | Agent BI |
|---|---|---|
| 交互方式 | 拖拽式 / SQL 编写 | 自然语言对话 |
| 学习门槛 | 需要学习工具操作 | 会说中文就能用 |
| 分析深度 | 受限于预设功能 | Agent 可自主探索 |
| 灵活性 | 固定仪表盘 | 动态生成分析 |
| 解释能力 | 展示数字 | 解释趋势、原因和建议 |
1.2 典型工作流
根据原图的箭头、并列、分层与循环关系选择对应图形;可展开核对原文结构。
查看原文结构
Agent 执行流程:
1. 理解意图 → 需要销售数据分析
2. 查询数据库 → SELECT product, SUM(sales) FROM ...
3. 获取数据 → Top 10 产品销售数据
4. 深入分析 → 查询营销活动数据、竞品动态
5. 生成图表 → 柱状图 + 趋势线
6. 生成洞察 → "A 产品销售最佳,主要因为双11促销..."
7. 提出建议 → "建议加大 A 产品的推广力度"2. 架构设计
2.1 Text-to-SQL Agent
根据原图的箭头、并列、分层与循环关系选择对应图形;可展开核对原文结构。
查看原文结构
async def query(self, question: str) -> str:
# Step 1: 生成 SQL
sql = await self.llm.generate(f"""
数据库 Schema:
{self.schema}2.2 Python 代码执行 Agent
PYTHON
class CodeExecutionAgent:
"""通过执行 Python 代码进行数据分析"""
def __init__(self):
self.sandbox = PythonSandbox(
allowed_packages=["pandas", "numpy", "matplotlib", "scipy"],
timeout=30,
memory_limit="512MB"
)
async def analyze(self, data: pd.DataFrame, question: str):
# 生成分析代码
code = await self.llm.generate(f"""
数据列: {data.columns.tolist()}
数据样本: {data.head(5).to_string()}
分析需求: {question}
请编写 Python 代码完成分析。
使用 pandas 处理数据,matplotlib 生成图表。
代码必须完整可运行。
""")
# 在沙箱中执行
result = self.sandbox.execute(code)
if result.success:
return {
"output": result.stdout,
"charts": result.images,
"code": code
}
else:
# 自动修复
fixed_code = await self.llm.generate(f"""
代码执行错误: {result.error}
原始代码: {code}
请修复代码。
""")
return self.sandbox.execute(fixed_code)3. 多工具协作分析
3.1 分析工具链
根据原图的箭头、并列、分层与循环关系选择对应图形;可展开核对原文结构。
查看原文结构
┌─ 数据获取工具 ─────────────────────────────────────┐
│ query_database: SQL 查询 │
│ fetch_api: 调用外部 API 获取数据 │
│ read_csv: 读取 CSV/Excel 文件 │
├─ 数据处理工具 ─────────────────────────────────────┤
│ run_python: 执行 Python 代码(pandas 处理) │
│ clean_data: 数据清洗和预处理 │
├─ 分析工具 ─────────────────────────────────────────┤
│ statistical_test: 统计检验(t检验、卡方检验等) │
│ trend_analysis: 趋势分析和预测 │
│ correlation: 相关性分析 │
├─ 可视化工具 ───────────────────────────────────────┤
│ create_chart: 生成各类图表 │
│ create_dashboard: 生成仪表盘 │
└────────────────────────────────────────────────────┘3.2 端到端分析示例
PYTHON
async def end_to_end_analysis(question: str):
"""端到端数据分析流程"""
agent = DataAnalysisAgent()
# 1. 理解需求并规划
plan = await agent.plan_analysis(question)
# 2. 获取数据(可能需要多个数据源)
data_sources = []
for source in plan["data_sources"]:
if source["type"] == "database":
data = await agent.query_database(source["sql"])
elif source["type"] == "api":
data = await agent.fetch_api(source["url"], source["params"])
data_sources.append(data)
# 3. 数据处理
merged = await agent.merge_data(data_sources)
cleaned = await agent.clean_data(merged)
# 4. 分析
results = []
for step in plan["analysis_steps"]:
result = await agent.run_python(step["code"])
results.append(result)
# 5. 可视化
charts = []
for viz in plan["visualizations"]:
chart = await agent.create_chart(viz)
charts.append(chart)
# 6. 生成报告
report = await agent.generate_report(question, results, charts)
return report4. 安全与合规
4.1 数据安全
根据原图的箭头、并列、分层与循环关系选择对应图形;可展开核对原文结构。
查看原文结构
def sanitize_result(self, result: dict) -> dict:
"""对查询结果进行脱敏"""
for row in result["rows"]:
for col in self.SENSITIVE_COLUMNS:
if col in row:
row[col] = self.mask_value(row[col])
return result根据原图的箭头、并列、分层与循环关系选择对应图形;可展开核对原文结构。
查看原文结构
def mask_value(self, value: str) -> str:
"""脱敏处理"""
if "@" in value: # 邮箱
name, domain = value.split("@")
return f"{name[0]}***@{domain}"
elif len(value) == 18: # 身份证
return f"{value[:6]}********{value[-4:]}"
elif len(value) == 11: # 手机号
return f"{value[:3]}****{value[-4:]}"
return value5. 本章小结
| 维度 | 要点 |
|---|---|
| 核心能力 | 自然语言查询 + 代码执行 + 图表生成 + 洞察解读 |
| 工具集 | SQL 查询 + Python 执行 + 统计分析 + 可视化 |
| 安全 | SQL 白名单 + 数据脱敏 + 沙箱执行 |
| 价值 | 降低数据分析门槛,让业务人员直接用自然语言分析数据 |
相关章节
- 工具调用(Function Calling) — 数据分析 Agent 调用数据库与 API 的能力
- 工具使用(Tool Use) — 代码执行等工具的使用范式
- 自动化办公与工作流 — 相邻的办公自动化应用场景
延伸阅读
- Anthropic (2024). "Claude for Data Analysis"
- Text-to-SQL Benchmarks: Spider, BIRD
- Pandas AI: github.com/gventuri/pandas-ai