Files
vibe_data_ana/require.md

12 KiB
Raw Blame History

真正的 AI 数据分析 Agent - 需求文档

1. 项目背景

1.1 当前问题

现有系统是"四不像"

  • 任务规划基于模板的规则生成固定90个任务
  • 任务执行AI 驱动的 ReAct 模式
  • 结果:规则 + AI = 不协调、不灵活

1.2 核心问题

用户的真实需求

"我有数据,帮我分析一下" "我想了解工单的健康度" "按照这个模板分析,但要灵活调整"

系统应该做什么

  • 像人类分析师一样理解数据
  • 自主决定分析什么
  • 根据发现调整分析计划
  • 生成有洞察力的报告

而不是

  • 机械地执行固定任务
  • 死板地按模板填空

2. 用户故事

2.1 场景1完全自主分析

作为 数据分析师
我想要 上传数据文件,让 AI 自动分析
以便 快速了解数据的关键信息

验收标准

  • AI 能识别数据类型(工单、销售、用户等)
  • AI 能推断关键字段的业务含义
  • AI 能自主决定分析维度
  • AI 能生成合理的分析计划
  • AI 能执行分析并生成报告
  • 报告包含关键发现和洞察

示例

输入cleaned_data.csv
输出:
  - 数据类型:工单数据
  - 关键发现:
    * 待处理工单占比50%(异常高)
    * 某车型问题占比80%
    * 平均处理时长超过标准2倍
  - 建议:优先处理该车型的积压工单

2.2 场景2指定分析方向

作为 业务负责人
我想要 指定分析方向(如"健康度"
以便 获得针对性的分析结果

验收标准

  • AI 能理解"健康度"的业务含义
  • AI 能将抽象概念转化为具体指标
  • AI 能根据数据特征选择合适的分析方法
  • AI 能生成针对性的报告

示例

输入:
  - 数据cleaned_data.csv
  - 需求:"我想了解工单的健康度"

AI 理解:
  - 健康度 = 关闭率 + 处理效率 + 积压情况 + 响应及时性

AI 分析:
  - 关闭率75%(中等)
  - 平均处理时长48小时偏长
  - 积压工单50%(严重)
  - 健康度评分60/100需改进

2.3 场景3参考模板分析

作为 数据分析师
我想要 使用模板作为参考框架
以便 保持报告结构的一致性,同时保持灵活性

验收标准

  • AI 能理解模板的结构和要求
  • AI 能检查数据是否满足模板要求
  • 如果数据缺少某些字段AI 能灵活调整
  • AI 能按模板结构组织报告
  • AI 不会因为数据不完全匹配而失败

示例

输入:
  - 数据cleaned_data.csv
  - 模板issue_analysis.md要求14个图表

AI 检查:
  - 模板要求"严重程度分布",但数据中没有"严重程度"字段
  - 决策:跳过该分析,在报告中说明

AI 调整:
  - 执行其他13个分析
  - 报告中注明:"数据缺少严重程度字段,无法分析该维度"

2.4 场景4迭代深入分析

作为 数据分析师
我想要 AI 能根据发现深入分析
以便 找到问题的根因

验收标准

  • AI 能识别异常或关键发现
  • AI 能自主决定是否需要深入分析
  • AI 能动态调整分析计划
  • AI 能追踪问题的根因

示例

初步分析:
  - 发现待处理工单占比50%(异常高)

AI 决策:需要深入分析

深入分析1
  - 分析待处理工单的特征
  - 发现某车型占80%

AI 决策:继续深入

深入分析2
  - 分析该车型的问题类型
  - 发现:都是"远程控制"问题

AI 决策:继续深入

深入分析3
  - 分析"远程控制"问题的模块分布
  - 发现90%是"车门模块"

结论:车门模块的远程控制功能存在系统性问题

3. 功能需求

3.1 数据理解Data Understanding

FR-1.1 数据加载

  • 系统应支持 CSV 格式数据
  • 系统应自动检测编码UTF-8, GBK等
  • 系统应处理常见的数据格式问题

FR-1.2 数据类型识别

  • AI 应分析列名、数据类型、值分布
  • AI 应推断数据的业务类型(工单、销售、用户等)
  • AI 应识别关键字段(时间、状态、分类、数值)

FR-1.3 字段含义理解

  • AI 应推断每个字段的业务含义
  • AI 应识别字段之间的关系
  • AI 应识别可能的分析维度

FR-1.4 数据质量评估

  • AI 应检查缺失值
  • AI 应检查异常值
  • AI 应评估数据质量分数

3.2 需求理解Requirement Understanding

FR-2.1 自主需求推断

  • 当用户未指定需求时AI 应根据数据类型推断常见分析需求
  • AI 应生成默认的分析目标

FR-2.2 用户需求理解

  • AI 应理解用户的自然语言需求
  • AI 应将抽象概念转化为具体指标
  • AI 应判断数据是否支持用户需求

FR-2.3 模板理解

  • AI 应解析模板结构
  • AI 应理解模板要求的指标和图表
  • AI 应检查数据是否满足模板要求
  • AI 应在数据不满足时灵活调整

3.3 分析规划Analysis Planning

FR-3.1 动态任务生成

  • AI 应根据数据特征和需求生成分析任务
  • 任务应是动态的,不是固定的
  • 任务应包含优先级和依赖关系

FR-3.2 任务优先级

  • AI 应根据重要性排序任务
  • 必需的分析应优先执行
  • 可选的分析应后执行

FR-3.3 计划调整

  • AI 应能根据中间结果调整计划
  • AI 应能增加新的深入分析任务
  • AI 应能跳过不适用的任务

3.4 工具集管理Tool Management

FR-4.1 预设工具集

  • 系统应提供基础数据分析工具集
  • 基础工具包括:数据查询、统计分析、可视化、数据清洗
  • 工具应有标准的接口和描述

FR-4.2 动态工具调整

  • AI 应根据数据特征决定需要哪些工具
  • AI 应根据分析需求动态启用/禁用工具
  • AI 应能识别缺少的工具并请求添加

FR-4.3 工具适配

  • AI 应根据数据类型调整工具参数
  • 例如:时间序列数据 → 启用趋势分析工具
  • 例如:分类数据 → 启用分布分析工具
  • 例如:地理数据 → 启用地图可视化工具

FR-4.4 自定义工具生成

  • AI 应能根据特定需求生成临时工具
  • AI 应能组合现有工具创建新功能
  • 自定义工具应在分析结束后可选保留

示例

数据特征:
  - 包含时间字段created_at, closed_at
  - 包含分类字段status, type, model
  - 包含数值字段duration

AI 决策:
  - 启用工具:时间序列分析、分类分布、数值统计
  - 禁用工具:地理分析(无地理字段)
  - 生成工具计算处理时长closed_at - created_at

3.5 分析执行Analysis Execution

FR-5.1 ReAct 执行模式

  • 每个任务应使用 ReAct 模式执行
  • AI 应思考 → 行动 → 观察 → 判断
  • AI 应能从错误中学习

FR-5.2 工具调用

  • AI 应从可用工具集中选择合适的工具
  • AI 应能组合多个工具完成复杂任务
  • AI 应能处理工具调用失败的情况

FR-5.3 结果验证

  • AI 应验证每个任务的结果
  • AI 应识别异常结果
  • AI 应决定是否需要重试或调整

FR-5.4 迭代深入

  • AI 应识别关键发现
  • AI 应决定是否需要深入分析
  • AI 应动态增加深入分析任务

3.6 报告生成Report Generation

FR-6.1 关键发现提炼

  • AI 应从所有结果中提炼关键发现
  • AI 应识别异常和趋势
  • AI 应提供洞察而不是简单罗列数据

FR-6.2 报告结构组织

  • AI 应根据分析内容组织报告结构
  • 如果有模板,应参考模板结构
  • 如果没有模板,应生成合理的结构

FR-6.3 结论和建议

  • AI 应基于分析结果得出结论
  • AI 应提供可操作的建议
  • AI 应说明建议的依据

FR-6.4 多格式输出

  • 系统应生成 Markdown 格式报告
  • 系统应支持导出为 Word 文档(可选)
  • 报告应包含所有生成的图表

4. 非功能需求

4.1 性能需求

NFR-1.1 响应时间

  • 数据理解阶段:< 30秒
  • 分析规划阶段:< 60秒
  • 单个任务执行:< 120秒
  • 完整分析流程:< 30分钟取决于数据大小和任务数量

NFR-1.2 数据规模

  • 支持最大 100MB 的 CSV 文件
  • 支持最大 100万行数据
  • 支持最大 100列

4.2 可靠性需求

NFR-2.1 错误处理

  • AI 调用失败时应有降级策略
  • 单个任务失败不应影响整体流程
  • 系统应记录详细的错误日志

NFR-2.2 数据安全

  • 数据应在本地处理,不上传到外部服务
  • 生成的报告应保存在用户指定的目录
  • 敏感信息应脱敏处理

4.3 可用性需求

NFR-3.1 易用性

  • 用户只需提供数据文件即可开始分析
  • 分析过程应显示进度和状态
  • 错误信息应清晰易懂

NFR-3.2 可观察性

  • 系统应显示 AI 的思考过程
  • 系统应显示每个阶段的进度
  • 系统应记录完整的执行日志

4.4 可扩展性需求

NFR-4.1 工具扩展

  • 应易于添加新的分析工具
  • 工具应有标准接口
  • AI 应能自动发现和使用新工具
  • 工具应支持热加载,无需重启系统

NFR-4.2 工具动态性

  • 工具集应根据数据特征动态调整
  • 工具参数应根据数据类型自适应
  • 系统应支持运行时生成临时工具

NFR-4.3 模型扩展

  • 应支持不同的 LLM 提供商
  • 应支持本地模型和云端模型
  • 应支持模型切换

5. 约束条件

5.1 技术约束

  • 使用 Python 3.8+
  • 使用 OpenAI 兼容的 LLM API
  • 使用 pandas 进行数据处理
  • 使用 matplotlib 进行可视化

5.2 业务约束

  • 系统应在离线环境下工作(除 LLM 调用外)
  • 系统不应依赖特定的数据格式或业务领域
  • 系统应保持通用性,适用于各种数据分析场景

5.3 隐私和安全约束

数据隐私保护

  • AI 不能访问完整的原始数据内容
  • AI 只能读取:
    • 表头(列名)
    • 数据类型信息
    • 基本统计摘要(行数、列数、缺失值比例、数据类型分布)
    • 工具执行后的聚合结果(如分组统计结果、图表数据)
  • 所有原始数据处理必须在本地完成,不发送给 LLM
  • AI 通过调用本地工具来分析数据,工具返回摘要结果而非原始数据

5.3 隐私和安全约束

数据隐私保护

  • AI 不能访问完整的原始数据内容
  • AI 只能读取:
    • 表头(列名)
    • 数据类型信息
    • 基本统计摘要(行数、列数、缺失值比例、数据类型分布)
    • 工具执行后的聚合结果(如分组统计结果、图表数据)
  • 所有原始数据处理必须在本地完成,不发送给 LLM
  • AI 通过调用本地工具来分析数据,工具返回摘要结果而非原始数据

6. 验收标准

6.1 场景1验收

  • 上传任意 CSV 文件AI 能识别数据类型
  • AI 能自主生成分析计划
  • AI 能执行分析并生成报告
  • 报告包含关键发现和洞察

6.2 场景2验收

  • 指定"健康度"等抽象需求AI 能理解
  • AI 能生成相关指标
  • AI 能执行针对性分析
  • 报告聚焦于用户需求

6.3 场景3验收

  • 提供模板AI 能理解模板要求
  • 数据缺少字段时AI 能灵活调整
  • 报告按模板结构组织
  • 报告说明哪些分析被跳过及原因

6.4 场景4验收

  • AI 能识别异常发现
  • AI 能自主决定深入分析
  • AI 能动态调整分析计划
  • 报告包含深入分析的结果

6.5 工具动态性验收

  • 系统根据数据特征自动启用相关工具
  • 系统根据数据特征自动禁用无关工具
  • AI 能识别需要但缺失的工具
  • AI 能生成临时工具满足特定需求
  • 工具参数根据数据类型自动调整

7. 成功指标

7.1 功能指标

  • 数据类型识别准确率 > 90%
  • 字段含义推断准确率 > 80%
  • 分析计划合理性(人工评估)> 85%
  • 报告质量(人工评估)> 80%

7.2 性能指标

  • 完整分析流程完成率 > 95%
  • AI 调用成功率 > 90%

7.3 用户满意度

  • 用户认为分析结果有价值 > 80%
  • 用户愿意再次使用 > 85%
  • 用户推荐给他人 > 75%

版本: v3.0.0
日期: 2026-03-06
状态: 需求定义完成