Files
eosphoros-ai--db-gpt/docs/data_analysis_planning_agent.md
T
wehub-resource-sync d13100ebf3
Update draft releases / main (push) Has been cancelled
Build and push docs image / build-image (push) Has been cancelled
Build Web Application / build-web (macos-latest) (push) Has been cancelled
Build Web Application / build-web (ubuntu-latest) (push) Has been cancelled
Python Code Quality Checks / build (push) Has been cancelled
Test Python / test-python (macos-latest, 3.10) (push) Has been cancelled
Test Python / test-python (macos-latest, 3.11) (push) Has been cancelled
Test Python / test-python (ubuntu-latest, 3.10) (push) Has been cancelled
Test Python / test-python (ubuntu-latest, 3.11) (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 13:27:08 +08:00

302 lines
7.1 KiB
Markdown

# Data Analysis Planning Agent
基于`react_agent.py`开发的具有自主规划能力的数据分析智能体,能够理解数据分析需求、制定分析计划并系统性地执行。
## 核心特性
### 🎯 自主规划能力
- **需求理解**: 深度理解业务问题和分析目标
- **计划制定**: 创建系统性的数据分析步骤计划
- **动态调整**: 根据分析结果动态调整后续步骤
### 📊 全流程分析
- **数据源检查**: 自动识别和检查可用数据源
- **数据加载**: 智能加载和预处理数据
- **探索性分析**: 进行全面的数据探索
- **统计分析**: 执行统计检验和深度分析
- **可视化**: 生成图表和可视化结果
- **洞察提取**: 提供业务洞察和建议
### 🤖 智能决策
- **步骤优化**: 根据数据特点优化分析步骤
- **工具选择**: 智能选择最适合的分析工具
- **结果验证**: 验证分析结果的可靠性
## 架构设计
### 继承结构
```
DataAnalysisPlanningAgent
├── 继承自 ConversableAgent
├── 扩展 ReActAgent 的规划能力
└── 集成数据分析专用工具
```
### 核心组件
#### 1. 规划状态管理
```python
class DataAnalysisPlanningAgent(ConversableAgent):
analysis_plan: Optional[List[Dict[str, Any]]] # 分析计划
current_step: int = Field(default=0) # 当前步骤
planning_complete: bool = Field(default=False) # 规划完成状态
```
#### 2. 专用工具集
- `create_analysis_plan`: 创建分析计划
- `examine_data_sources`: 检查数据源
- `load_data`: 加载数据
- `explore_data`: 探索性分析
- `statistical_analysis`: 统计分析
- `create_visualization`: 创建可视化
- `generate_insights`: 生成洞察
#### 3. 智能提示模板
```python
_DATA_AGENT_SYSTEM_TEMPLATE = """
You are an expert data analyst with strong planning and execution capabilities.
1. Planning Phase: 理解目标、识别数据、创建计划
2. Execution Phase: 加载数据、执行分析、生成结果
3. Communication Phase: 展示发现、提供洞察、建议后续
"""
```
## 使用方法
### 基础使用
```python
from dbgpt.agent.expand.data_agent import DataAnalysisPlanningAgent
from dbgpt.agent.resource import ToolPack, ResourcePack
# 1. 创建工具
tools = [DataSourceTool(), LoadDataTool(), ExploreDataTool()]
tool_pack = ToolPack(tools=tools)
# 2. 创建资源包
resource_pack = ResourcePack()
resource_pack._resources["tools"] = tool_pack
# 3. 创建Agent
agent = DataAnalysisPlanningAgent(resource=resource_pack)
# 4. 发送分析请求
message = AgentMessage(content="分析销售数据趋势,提供业务洞察")
response = await agent.act(message, sender=None)
```
### 高级配置
```python
# 自定义规划参数
agent = DataAnalysisPlanningAgent(
max_retry_count=25, # 增加重试次数
resource=resource_pack,
llm_client=your_llm_client
)
# 设置分析目标
agent.profile.goal = "专注于电商数据分析,提供精准的业务洞察"
```
## 工作流程
### 1. 需求理解阶段
```
用户输入 → 理解业务问题 → 识别分析目标 → 确定数据需求
```
### 2. 规划制定阶段
```
数据需求 → 检查数据源 → 制定分析计划 → 估算时间和资源
```
### 3. 执行分析阶段
```
执行计划 → 数据加载 → 探索分析 → 深度分析 → 结果验证
```
### 4. 结果呈现阶段
```
分析结果 → 生成洞察 → 创建可视化 → 提供建议 → 完成任务
```
## 示例场景
### 场景1: 销售趋势分析
```python
question = "分析我们的销售数据,识别趋势并提供业务规划洞察"
# Agent会自动执行:
# 1. 创建销售趋势分析计划
# 2. 检查可用的销售数据源
# 3. 加载销售数据
# 4. 进行趋势分析
# 5. 生成可视化图表
# 6. 提供业务洞察和建议
```
### 场景2: 客户细分分析
```python
question = "进行客户细分分析,识别不同客户群体特征"
# Agent会自动执行:
# 1. 制定客户细分分析计划
# 2. 检查客户数据
# 3. 执行细分算法
# 4. 分析各群体特征
# 5. 提供营销建议
```
## 扩展开发
### 添加自定义工具
```python
class CustomAnalysisTool(BaseTool):
@property
def name(self) -> str:
return "custom_analysis"
@property
def description(self) -> str:
return "执行自定义分析逻辑"
async def async_execute(self, **kwargs):
# 实现自定义分析逻辑
return {"result": "自定义分析结果"}
# 添加到Agent
agent.resource._resources["custom_analysis"] = CustomAnalysisTool()
```
### 自定义规划逻辑
```python
class CustomDataAnalysisAgent(DataAnalysisPlanningAgent):
async def create_custom_plan(self, objective: str):
# 实现自定义规划逻辑
custom_plan = [
{"step": 1, "action": "custom_preprocessing"},
{"step": 2, "action": "custom_analysis"},
]
self.analysis_plan = custom_plan
return custom_plan
```
## 最佳实践
### 1. 数据准备
- 确保数据源可访问
- 提供数据文档和元数据
- 预处理常见数据质量问题
### 2. 目标设定
- 明确分析目标和业务问题
- 提供背景信息和约束条件
- 设定期望的输出格式
### 3. 工具配置
- 根据分析需求配置合适工具
- 确保工具参数正确设置
- 提供工具使用文档
### 4. 结果验证
- 验证分析结果的合理性
- 检查数据质量影响
- 确认业务洞察的准确性
## 故障排除
### 常见问题
#### 1. 规划失败
```
问题: Agent无法创建有效的分析计划
解决: 检查数据源可用性,明确分析目标
```
#### 2. 工具执行错误
```
问题: 数据分析工具执行失败
解决: 检查工具参数,验证数据格式
```
#### 3. 结果质量差
```
问题: 分析结果不够深入或准确
解决: 提供更多背景信息,调整分析策略
```
### 调试方法
```python
# 启用详细日志
import logging
logging.basicConfig(level=logging.DEBUG)
# 检查Agent状态
print(f"Planning complete: {agent.planning_complete}")
print(f"Current step: {agent.current_step}")
print(f"Analysis plan: {agent.analysis_plan}")
```
## 性能优化
### 1. 缓存策略
- 缓存数据加载结果
- 缓存分析计算结果
- 缓存常用查询结果
### 2. 并行处理
- 并行执行独立分析任务
- 异步处理数据加载
- 批量处理相似请求
### 3. 资源管理
- 合理管理内存使用
- 优化计算资源分配
- 控制并发任务数量
## 未来规划
### 短期目标
- [ ] 添加更多预定义分析模板
- [ ] 优化规划算法
- [ ] 增强错误处理能力
### 中期目标
- [ ] 支持多数据源联合分析
- [ ] 集成机器学习模型
- [ ] 添加实时分析能力
### 长期目标
- [ ] 支持自然语言交互
- [ ] 自动化报告生成
- [ ] 智能推荐系统
## 贡献指南
欢迎提交Issue和Pull Request来改进这个项目!
### 开发环境设置
```bash
# 安装依赖
pip install -r requirements.txt
# 运行测试
pytest tests/
# 代码格式化
black src/
```
### 提交规范
- 使用清晰的提交信息
- 添加适当的测试用例
- 更新相关文档
## 许可证
MIT License - 详见LICENSE文件