Files
vibe_data_ana/.kiro/specs/true-ai-agent/tasks.md

15 KiB
Raw Blame History

实施计划:真正的 AI 数据分析 Agent

概述

本实施计划将设计转化为具体的编码任务。系统采用五阶段流水线架构,每个阶段由 AI 驱动,具有自主决策能力。实施将按照从核心数据结构到各个引擎组件,最后到集成的顺序进行。

任务列表

  • 1. 搭建项目结构和核心数据模型

    • 创建项目目录结构src/models, src/engines, src/tools, tests
    • 定义核心数据类DataProfile, ColumnInfo, RequirementSpec, AnalysisObjective, AnalysisPlan, AnalysisTask, AnalysisResult
    • 实现数据类的序列化和反序列化方法
    • 设置测试框架pytest, hypothesis
    • 需求FR-1.1, FR-1.2
  • 2. 实现数据访问层和隐私保护机制

    • 2.1 实现 DataAccessLayer 类

      • 实现数据加载功能(支持多种编码)
      • 实现数据画像生成(不暴露原始数据)
      • 实现结果过滤机制sanitize_result
      • 需求约束条件5.3
    • 2.2 编写属性测试:数据访问限制

      • 属性 18数据访问限制
      • 验证需求约束条件5.3
    • 2.3 编写单元测试

      • 测试多种编码的数据加载
      • 测试空文件和格式错误的处理
      • 测试结果过滤功能
  • 3. 实现工具系统基础设施

    • 3.1 定义工具接口AnalysisTool 抽象类)

      • 定义标准接口name, description, parameters, execute, is_applicable
      • 实现工具注册机制
      • 需求FR-4.1
    • 3.2 实现基础数据查询工具

      • 实现 get_column_distribution 工具
      • 实现 get_value_counts 工具
      • 实现 get_time_series 工具
      • 实现 get_correlation 工具
      • 确保所有工具返回聚合数据而非原始数据
      • 需求FR-4.1, 约束条件5.3
    • 3.3 实现基础统计分析工具

      • 实现 calculate_statistics 工具
      • 实现 perform_groupby 工具
      • 实现 detect_outliers 工具
      • 实现 calculate_trend 工具
      • 需求FR-4.1
    • 3.4 编写属性测试:工具接口一致性和输出过滤

      • 属性 10工具接口一致性
      • 属性 19工具输出过滤
      • 验证需求FR-4.1, 约束条件5.3
    • 3.5 编写单元测试

      • 测试每个工具的基本功能
      • 测试工具参数验证
      • 测试工具执行错误处理
  • 4. 实现可视化工具

    • 4.1 实现图表生成工具

      • 实现 create_bar_chart 工具

      • 实现 create_line_chart 工具

      • 实现 create_pie_chart 工具

      • 实现 create_heatmap 工具

      • 实现 ai_picture 依据数据特性画图工具

      • 使用 matplotlib 生成图表并保存为文件

      • 需求FR-4.1

    • 4.2 编写单元测试

      • 测试图表生成功能
      • 测试图表文件保存
  • 5. 检查点 - 确保工具系统测试通过

    • 确保所有测试通过,如有问题请询问用户
  • 6. 实现工具管理器

    • 6.1 实现 ToolManager 类

      • 实现工具选择逻辑select_tools 方法)
      • 根据数据特征启用/禁用工具
      • 实现工具适用性判断
      • 需求FR-4.2, FR-4.3
    • 6.2 实现动态工具调整策略

      • 检查时间字段并启用时间序列工具
      • 检查分类字段并启用分布分析工具
      • 检查数值字段并启用统计工具
      • 检查地理字段并启用地理工具
      • 需求FR-4.2, FR-4.3
    • 6.3 编写属性测试:工具选择和适用性

      • 属性 9工具选择适配性
      • 属性 11工具适用性判断
      • 属性 12工具需求识别
      • 验证需求FR-4.2, FR-4.3, 工具动态性验收.1, .2, .3
    • 6.4 编写单元测试

      • 测试不同数据特征的工具选择
      • 测试工具适用性判断
  • 7. 实现数据理解引擎

    • 7.1 实现基础统计生成

      • 实现 generate_basic_stats 函数
      • 生成列信息(名称、类型、缺失率、唯一值数量)
      • 生成示例值每列最多5个
      • 需求FR-1.2, FR-1.3
    • 7.2 实现 AI 驱动的数据理解

      • 实现 understand_data 函数
      • 调用 LLM 推断数据类型
      • 调用 LLM 识别关键字段和业务含义
      • 调用 LLM 评估数据质量
      • 生成 DataProfile 对象
      • 需求FR-1.2, FR-1.3, FR-1.4
    • 7.3 编写属性测试:数据理解

      • 属性 1数据类型识别
      • 属性 2数据画像完整性
      • 验证需求场景1验收.1, FR-1.2, FR-1.3, FR-1.4
    • 7.4 编写单元测试

      • 测试工单数据识别
      • 测试销售数据识别
      • 测试数据质量评估
  • 8. 实现需求理解引擎

    • 8.1 实现用户需求解析

      • 实现 understand_requirement 函数
      • 调用 LLM 解析自然语言需求
      • 将抽象概念转化为具体指标
      • 生成 RequirementSpec 对象
      • 需求FR-2.1, FR-2.2
    • 8.2 实现模板解析功能

      • 实现 parse_template 函数
      • 解析模板文件结构
      • 提取模板要求的指标和图表
      • 需求FR-2.3
    • 8.3 实现数据-需求匹配检查

      • 实现 check_data_requirement_match 函数
      • 检查数据是否满足需求
      • 标记缺失的字段或能力
      • 需求FR-2.3
    • 8.4 编写属性测试:需求理解

      • 属性 3抽象需求转化
      • 属性 4模板解析
      • 属性 5数据-需求匹配检查
      • 验证需求场景2验收.1, .2, 场景3验收.1, .2, FR-2.1, FR-2.2, FR-2.3
    • 8.5 编写单元测试

      • 测试"健康度"需求的理解
      • 测试模板解析
      • 测试数据不满足需求的情况
  • 9. 检查点 - 确保数据和需求理解测试通过

    • 确保所有测试通过,如有问题请询问用户
  • 10. 实现分析规划引擎

    • 10.1 实现 AI 驱动的任务生成

      • 实现 plan_analysis 函数
      • 调用 LLM 根据数据特征和需求生成任务列表
      • 为每个任务分配优先级
      • 识别任务依赖关系
      • 生成 AnalysisPlan 对象
      • 需求FR-3.1, FR-3.2
    • 10.2 实现任务依赖验证

      • 实现 validate_task_dependencies 函数
      • 检查依赖关系是否形成 DAG
      • 检查所有依赖的任务是否存在
      • 需求FR-3.1
    • 10.3 编写属性测试:分析规划

      • 属性 6动态任务生成
      • 属性 7任务依赖一致性
      • 验证需求场景1验收.2, FR-3.1, FR-3.2
    • 10.4 编写单元测试

      • 测试任务生成
      • 测试循环依赖检测
      • 测试任务优先级排序
  • 11. 实现任务执行引擎ReAct 模式)

    • 11.1 实现 ReAct 执行循环

      • 实现 execute_task 函数
      • 实现思考-行动-观察循环
      • 调用 LLM 进行思考和决策
      • 选择并调用工具
      • 记录执行历史
      • 实现循环终止条件(完成或达到最大迭代次数)
      • 需求FR-5.1
    • 11.2 实现工具调用和结果处理

      • 实现 call_tool 函数
      • 根据 AI 决策选择工具
      • 传递参数并执行工具
      • 处理工具执行结果
      • 需求FR-5.2
    • 11.3 实现洞察提炼

      • 实现 extract_insights 函数
      • 从执行历史中提炼关键发现
      • 识别异常和趋势
      • 需求FR-5.4
    • 11.4 编写属性测试:任务执行

      • 属性 13任务执行完整性
      • 属性 14ReAct 循环终止
      • 属性 15异常识别
      • 验证需求场景1验收.3, 场景4验收.1, FR-5.1
    • 11.5 编写单元测试

      • 测试 ReAct 循环
      • 测试工具选择和调用
      • 测试异常数据的识别
  • 12. 实现动态计划调整

    • 12.1 实现计划调整逻辑

      • 实现 adjust_plan 函数
      • 分析已完成任务的结果
      • 识别关键发现和异常
      • 决定是否需要深入分析
      • 生成新任务或调整优先级
      • 需求FR-3.3, FR-5.4
    • 12.2 编写属性测试:计划调整

      • 属性 8计划动态调整
      • 验证需求场景4验收.2, .3, FR-3.3
    • 12.3 编写单元测试

      • 测试发现异常后的计划调整
      • 测试新任务的生成
      • 测试任务跳过逻辑
  • 13. 检查点 - 确保规划和执行引擎测试通过

    • 确保所有测试通过,如有问题请询问用户
  • 14. 实现报告生成引擎

    • 14.1 实现关键发现提炼

      • 实现 extract_key_findings 函数
      • 从所有分析结果中提炼关键发现
      • 识别最重要的异常和趋势
      • 排序和优先级排列
      • 需求FR-6.1
    • 14.2 实现报告结构组织

      • 实现 organize_report_structure 函数
      • 根据分析内容组织报告结构
      • 如果有模板,参考模板结构
      • 如果没有模板,生成合理的结构
      • 需求FR-6.2
    • 14.3 实现 AI 驱动的报告生成

      • 实现 generate_report 函数
      • 调用 LLM 生成报告内容
      • 包含执行摘要、详细分析、结论和建议
      • 嵌入图表和可视化
      • 格式化为 Markdown
      • 需求FR-6.1, FR-6.2, FR-6.3
    • 14.4 实现报告追溯性

      • 确保报告中的所有发现都能追溯到分析结果
      • 说明哪些分析被跳过及原因
      • 需求FR-6.1
    • 14.5 编写属性测试:报告生成

      • 属性 16报告结构完整性
      • 属性 17报告内容追溯性
      • 验证需求场景3验收.3, .4, 场景4验收.4, FR-6.1, FR-6.2
    • 14.6 编写单元测试

      • 测试报告结构生成
      • 测试模板结构遵循
      • 测试跳过分析的说明
  • 15. 实现错误处理机制

    • 15.1 实现数据加载错误处理

      • 实现 load_data_with_retry 函数
      • 支持多种编码尝试
      • 处理文件过大的情况(采样)
      • 处理格式错误
      • 需求NFR-2.1
    • 15.2 实现 AI 调用错误处理

      • 实现 call_llm_with_fallback 函数
      • 实现重试机制(指数退避)
      • 实现降级策略(规则方法)
      • 需求NFR-2.1
    • 15.3 实现工具执行错误处理

      • 实现 execute_tool_safely 函数
      • 验证工具参数
      • 捕获执行异常
      • 返回错误信息而不是崩溃
      • 需求NFR-2.1
    • 15.4 实现任务执行错误处理

      • 实现 execute_task_with_recovery 函数
      • 检查依赖任务状态
      • 处理依赖失败的情况
      • 单个任务失败不影响整体流程
      • 需求NFR-2.1
    • 15.5 编写单元测试

      • 测试各种错误场景
      • 测试重试机制
      • 测试降级策略
      • 测试错误恢复
  • 16. 实现主流程编排

    • 16.1 实现完整分析流程

      • 实现 run_analysis 主函数
      • 编排五个阶段的执行顺序
      • 处理阶段之间的数据传递
      • 实现进度显示
      • 需求:所有功能需求
    • 16.2 实现命令行接口

      • 实现 CLI 参数解析
      • 支持指定数据文件
      • 支持指定用户需求
      • 支持指定模板文件
      • 支持指定输出目录
      • 需求NFR-3.1
    • 16.3 实现日志和可观察性

      • 配置日志系统
      • 记录每个阶段的执行状态
      • 显示 AI 的思考过程
      • 记录错误和警告
      • 需求NFR-3.2
    • 16.4 编写集成测试

      • 测试端到端分析流程
      • 测试基于模板的分析
      • 测试错误恢复流程
  • 17. 实现配置和环境管理

    • 17.1 创建配置文件

      • 定义 LLM API 配置
      • 定义性能参数(超时、重试次数)
      • 定义输出路径配置
      • 需求约束条件5.1
    • 17.2 实现环境变量支持

      • 支持从环境变量读取 API 密钥
      • 支持配置文件覆盖
      • 需求约束条件5.1
    • 17.3 编写单元测试

      • 测试配置加载
      • 测试环境变量读取
  • 18. 检查点 - 确保所有测试通过

    • 确保所有测试通过,如有问题请询问用户
  • 19. 创建测试数据和示例

    • 19.1 创建测试数据集

      • 创建工单数据示例ticket_sample.csv
      • 创建销售数据示例sales_sample.csv
      • 创建用户数据示例user_sample.csv
      • 创建包含异常的数据集
      • 需求:验收标准
    • 19.2 创建分析模板

      • 创建工单分析模板ticket_analysis.md
      • 创建问题分析模板problem_analysis.md
      • 创建基于数据特征的分析模板data_analysis.md
      • 需求场景3验收
    • 19.3 编写示例脚本

      • 创建完全自主分析示例
      • 创建指定需求分析示例
      • 创建基于模板分析示例
  • 20. 编写文档

    • 20.1 编写 README

      • 项目介绍
      • 安装说明
      • 使用示例
      • 配置说明
      • 需求NFR-3.1
    • 20.2 编写 API 文档

      • 核心类和函数的文档字符串
      • 工具接口文档
      • 配置参数文档
      • 需求NFR-3.1
    • 20.3 编写开发者指南

      • 如何添加新工具
      • 如何扩展功能
      • 架构说明
      • 需求NFR-4.1
  • 21. 性能优化和验证

    • 21.1 运行性能测试

      • 测试数据理解阶段性能(< 30秒
      • 测试完整分析流程性能(< 30分钟
      • 测试大数据集处理100万行
      • 需求NFR-1.1, NFR-1.2
    • 21.2 优化性能瓶颈

      • 优化数据加载
      • 优化 AI 调用(批处理、缓存)
      • 优化工具执行
      • 需求NFR-1.1
    • 21.3 编写性能测试

      • 测试各阶段的性能指标
      • 测试内存使用
  • 22. 最终检查点 - 完整系统验证

    • 运行所有测试套件
    • 验证所有验收标准
    • 运行端到端示例
    • 确保所有测试通过,如有问题请询问用户

注意事项

  • 所有任务都是必需的,确保从一开始就有完整的测试覆盖
  • 每个任务都引用了具体的需求以便追溯
  • 检查点确保增量验证
  • 属性测试验证通用正确性属性
  • 单元测试验证特定示例和边缘情况
  • 所有属性测试应使用 hypothesis 库,最少运行 100 次迭代
  • 每个属性测试必须包含注释标签:# Feature: true-ai-agent, Property {number}: {property_text}

实施顺序说明

  1. 阶段1任务1-5:搭建基础设施,实现工具系统
  2. 阶段2任务6-9:实现数据理解和需求理解引擎
  3. 阶段3任务10-13:实现分析规划和任务执行引擎
  4. 阶段4任务14-15:实现报告生成和错误处理
  5. 阶段5任务16-18:集成和主流程编排
  6. 阶段6任务19-22:测试数据、文档和性能优化

每个阶段都有检查点,确保在继续之前验证功能正确性。


版本: v1.0.0
日期: 2026-03-06
状态: 任务计划完成