Back to Db Gpt

Data Analysis Planning Agent

docs/data_analysis_planning_agent.md

0.8.07.1 KB
Original Source

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文件