# OpenClaw Trading - 详细任务拆分文档

## 项目概述

基于 ClawWork 生存压力机制 + TradingAgents 多智能体架构 + abu 因子系统的量化交易系统。

**📊 当前状态**: Phase 1 ✅ | Phase 2 ✅ (100%) | Phase 3 🔄 (42%) | Phase 4 ✅
**✅ 已完成**: 36/44 任务 (82%)
**🧪 测试状态**: 1417 collected, 0 collection warnings（TestAgent 已重命名为 ConcreteBaseAgent）
**📅 更新时间**: 2026-02-27
**🎯 Sprint 1**: 6个Agent角色 ✅ 已完成 (259 tests)
**🎯 Sprint 2**: 辩论+融合框架 ✅ 已完成 (43 tests)
**🎯 Sprint 3**: 工作流执行+因子/学习/仪表板对接 ✅ (2026-02-27)

---

## 第一阶段：基础框架 ✅ 已完成 (2026-02-27)

### 1.1 项目初始化

#### TASK-001: ✅ 项目脚手架搭建
- **描述**: 创建项目基础结构，配置开发环境
- **状态**: ✅ 已完成 (2026-02-27)
- **具体工作**:
  - [x] 初始化 Python 项目 (pyproject.toml)
  - [ ] 配置虚拟环境 (venv/conda)
  - [ ] 安装基础依赖 (pydantic, rich, pytest)
  - [ ] 创建目录结构 (src/openclaw/{core,agents,utils})
  - [ ] 配置代码格式化 (ruff, black)
  - [ ] 配置类型检查 (mypy)
  - [ ] 创建 .gitignore 和 .env.example
- **验收标准**:
  - `pip install -e .` 成功安装
  - `pytest` 可以运行（即使无测试）
  - `ruff check .` 无错误
- **预估工时**: 4小时

#### TASK-002: ✅ 配置管理系统
- **描述**: 实现统一的配置管理，支持多环境
- **具体工作**:
  - [ ] 设计配置 Schema (Pydantic BaseModel)
  - [ ] 实现 YAML/JSON 配置加载
  - [ ] 支持环境变量覆盖
  - [ ] 配置验证和默认值
  - [ ] 创建默认配置文件模板
- **关键配置项**:
  ```python
  class OpenClawConfig(BaseModel):
      initial_capital: Dict[str, float]
      cost_structure: CostStructure
      survival_thresholds: SurvivalThresholds
      llm_providers: Dict[str, LLMConfig]
  ```
- **验收标准**:
  - 配置文件可被正确加载和验证
  - 环境变量可覆盖配置项
  - 配置错误有清晰的错误提示
- **预估工时**: 6小时
- **依赖**: TASK-001

#### TASK-003: ✅ 日志系统
- **描述**: 实现结构化日志，支持不同级别和输出
- **具体工作**:
  - [ ] 配置 loguru 或 structlog
  - [ ] 实现控制台彩色输出
  - [ ] 实现文件日志（按日期轮转）
  - [ ] 添加 JSON 格式支持（便于分析）
  - [ ] 不同模块的日志级别控制
- **验收标准**:
  - 日志同时输出到控制台和文件
  - JSON 日志可被正确解析
  - 日志级别可配置
- **预估工时**: 3小时
- **依赖**: TASK-001

---

### 1.2 经济压力核心

#### TASK-004: ✅ EconomicTracker 经济追踪器
- **描述**: 实现Agent经济状态追踪核心类
- **具体工作**:
  - [ ] 实现基础属性 (balance, token_costs, trade_costs, pnl)
  - [ ] 实现 `calculate_decision_cost()` 方法
  - [ ] 实现 `calculate_trade_cost()` 方法
  - [ ] 实现 `get_survival_status()` 方法
  - [ ] 实现资金变动历史记录
  - [ ] 添加持久化存储 (JSONL)
- **核心算法**:
  ```python
  def get_survival_status(self) -> str:
      if self.balance >= self.thresholds['thriving']:
          return '🚀 thriving'
      elif self.balance >= self.thresholds['stable']:
          return '💪 stable'
      # ... 其他状态
  ```
- **验收标准**:
  - 所有方法单元测试通过
  - 成本计算精度到小数点后4位
  - 状态转换边界条件正确
  - 持久化数据可正确恢复
- **预估工时**: 8小时
- **依赖**: TASK-002

#### TASK-005: ✅ 成本计算器
- **描述**: 细粒度的成本计算系统
- **具体工作**:
  - [ ] 实现 Token 成本计算 (按模型区分)
  - [ ] 实现数据调用成本计算
  - [ ] 实现交易手续费计算
  - [ ] 实现学习投资成本追踪
  - [ ] 实现因子购买成本追踪
  - [ ] 成本报表生成
- **验收标准**:
  - 支持 OpenAI/Anthropic/Gemini 等不同定价
  - 成本分类清晰（决策成本 vs 交易成本）
  - 可生成每日/每周成本报表
- **预估工时**: 6小时
- **依赖**: TASK-004

---

### 1.3 基础Agent系统

#### TASK-006: ✅ BaseAgent 抽象基类
- **描述**: 所有Agent的基类，封装通用功能
- **具体工作**:
  - [ ] 设计 Agent 抽象基类
  - [ ] 集成 EconomicTracker
  - [ ] 实现基础属性 (agent_id, skill_level, win_rate)
  - [ ] 实现生存状态检查
  - [ ] 实现决策成本扣除机制
  - [ ] 添加事件钩子（on_trade, on_learn, on_bankrupt）
- **类设计**:
  ```python
  class BaseAgent(ABC):
      def __init__(self, agent_id: str, initial_capital: float):
          self.economic_tracker = EconomicTracker(agent_id, initial_capital)
          self.skill_level = 0.5
          self.win_rate = 0.5
          self.unlocked_factors = []

      @abstractmethod
      async def decide_activity(self) -> ActivityType:
          pass
  ```
- **验收标准**:
  - 所有具体Agent可以继承并正常工作
  - 事件钩子可以被正确触发
  - 经济状态变化时自动记录
- **预估工时**: 8小时
- **依赖**: TASK-004

#### TASK-007: ✅ TraderAgent 交易员
- **描述**: 实现基础交易员Agent
- **具体工作**:
  - [ ] 继承 BaseAgent
  - [ ] 实现 `analyze_market()` 方法
  - [ ] 实现 `generate_signal()` 方法
  - [ ] 实现 `execute_trade()` 方法
  - [ ] 集成模拟交易所（初始使用虚拟交易）
  - [ ] 交易记录持久化
- **验收标准**:
  - 可以生成买入/卖出/持有信号
  - 交易执行时正确扣除成本
  - 交易记录可追溯
- **预估工时**: 10小时
- **依赖**: TASK-006

---

### 1.4 数据层

#### TASK-008: ✅ 数据源抽象接口
- **描述**: 统一的数据源接口，支持多数据源切换
- **具体工作**:
  - [ ] 设计 DataSource 抽象基类
  - [ ] 实现数据源工厂
  - [ ] 定义标准数据格式 (OHLCV)
  - [ ] 实现数据缓存机制
  - [ ] 支持 yfinance 适配器
- **接口设计**:
  ```python
  class DataSource(ABC):
      @abstractmethod
      async def get_ohlcv(self, symbol: str, interval: str) -> DataFrame:
          pass

      @abstractmethod
      async def get_fundamentals(self, symbol: str) -> Dict:
          pass
  ```
- **验收标准**:
  - 支持多数据源无缝切换
  - 数据格式统一
  - 缓存命中时返回缓存数据
- **预估工时**: 8小时
- **依赖**: TASK-002

#### TASK-009: ✅ 技术指标库
- **描述**: 常用技术指标计算
- **具体工作**:
  - [ ] 实现基础指标 (MA, EMA, RSI, MACD, BOLL)
  - [ ] 实现波动率指标 (ATR, STD)
  - [ ] 实现成交量指标 (OBV, VWAP)
  - [ ] 统一指标接口
  - [ ] 指标缓存优化
- **验收标准**:
  - 所有指标计算结果与标准库一致
  - 支持不同时间周期
  - 计算性能满足实时需求
- **预估工时**: 10小时
- **依赖**: TASK-008

---

### 1.5 CLI 界面

#### TASK-010: ✅ 基础CLI界面
- **描述**: 命令行交互界面
- **具体工作**:
  - [ ] 使用 Typer 创建 CLI 框架
  - [ ] 实现配置查看命令
  - [ ] 实现手动交易命令
  - [ ] 实现状态查询命令
  - [ ] 添加 Rich 美化输出
- **验收标准**:
  - `openclaw --help` 显示所有命令
  - 命令行可执行基础操作
  - 输出美观易读
- **预估工时**: 6小时
- **依赖**: TASK-001

#### TASK-011: ✅ Agent状态监控
- **描述**: 实时显示Agent经济状态
- **具体工作**:
  - [ ] 创建状态表格显示
  - [ ] 实现实时刷新
  - [ ] 颜色编码状态
  - [ ] 添加关键指标显示
- **验收标准**:
  - 余额、状态、胜率、技能等级一目了然
  - 状态变化实时更新
- **预估工时**: 4小时
- **依赖**: TASK-010

---

### 第一阶段里程碑检查点 ✅

**完成标准**:
- [ ] 可以启动一个 TraderAgent
- [ ] Agent可以进行模拟交易
- [ ] 经济状态正确追踪和显示
- [ ] CLI 可以查询状态
- [ ] 所有核心类有单元测试

---

## 第二阶段：多Agent协作 🔄 已完成 (12/12 任务)

### 2.1 Agent角色实现 ✅ Sprint 1 完成 (2026-02-27)

#### TASK-012: ✅ MarketAnalyst 市场分析师
- **描述**: 技术分析Agent
- **状态**: ✅ 已完成 (2026-02-27)
- **文件**: `src/openclaw/agents/market_analyst.py` (12KB)
- **测试**: `tests/unit/test_market_analyst.py` (34 tests)
- **具体工作**:
  - [x] 继承 BaseAgent
  - [x] 实现技术指标分析 (MA, EMA, RSI, MACD, BOLL)
  - [x] 实现趋势识别
  - [x] 生成技术分析报告
  - [x] 决策成本：$0.05
- **验收标准**:
  - [x] 可以分析多个技术指标
  - [x] 输出结构化的分析报告
- **预估工时**: 8小时
- **依赖**: TASK-006, TASK-009

#### TASK-013: ✅ SentimentAnalyst 情绪分析师
- **描述**: 市场情绪分析Agent
- **状态**: ✅ 已完成 (2026-02-27)
- **文件**: `src/openclaw/agents/sentiment_analyst.py` (16KB)
- **测试**: `tests/unit/test_sentiment_analyst.py` (43 tests)
- **具体工作**:
  - [x] 继承 BaseAgent
  - [x] 集成新闻数据源
  - [x] 实现情绪分析（使用关键词/规则）
  - [x] 生成情绪报告
  - [x] 决策成本：$0.08
- **验收标准**:
  - [x] 可以获取并分析新闻
  - [x] 输出情绪得分和摘要
- **预估工时**: 10小时
- **依赖**: TASK-006

#### TASK-014: ✅ FundamentalAnalyst 基本面分析师
- **描述**: 基本面分析Agent
- **状态**: ✅ 已完成 (2026-02-27)
- **文件**: `src/openclaw/agents/fundamental_analyst.py` (15KB)
- **测试**: `tests/unit/test_fundamental_analyst.py` (42 tests)
- **具体工作**:
  - [x] 继承 BaseAgent
  - [x] 实现财务数据分析
  - [x] 实现估值指标计算 (PE, PB, ROE等)
  - [x] 生成基本面报告
  - [x] 决策成本：$0.10
- **验收标准**:
  - [x] 可以分析财务报表
  - [x] 输出基本面评分
- **预估工时**: 10小时
- **依赖**: TASK-006

#### TASK-015: ✅ BullResearcher 看涨研究员
- **描述**: 多头观点研究员
- **状态**: ✅ 已完成 (2026-02-27)
- **文件**: `src/openclaw/agents/bull_researcher.py` (24KB)
- **测试**: `tests/unit/test_bull_researcher.py` (58 tests)
- **具体工作**:
  - [x] 继承 BaseAgent
  - [x] 分析正面因素
  - [x] 反驳看跌观点
  - [x] 生成看多报告
  - [x] 决策成本：$0.15
- **验收标准**:
  - [x] 可以基于分析师报告生成看多观点
  - [x] 可以回应看空观点的质疑
- **预估工时**: 8小时
- **依赖**: TASK-012, TASK-013, TASK-014

#### TASK-016: ✅ BearResearcher 看跌研究员
- **描述**: 空头观点研究员
- **状态**: ✅ 已完成 (2026-02-27)
- **文件**: `src/openclaw/agents/bear_researcher.py` (19KB)
- **测试**: `tests/unit/test_bear_researcher.py` (43 tests)
- **具体工作**:
  - [x] 继承 BaseAgent
  - [x] 分析风险因素
  - [x] 反驳看涨观点
  - [x] 生成看空报告
  - [x] 决策成本：$0.15
- **验收标准**:
  - [x] 可以基于分析师报告生成看空观点
  - [x] 可以回应看多观点的质疑
- **预估工时**: 8小时
- **依赖**: TASK-012, TASK-013, TASK-014

#### TASK-017: ✅ RiskManager 风险管理
- **描述**: 风险评估Agent
- **状态**: ✅ 已完成 (2026-02-27)
- **文件**: `src/openclaw/agents/risk_manager.py` (24KB)
- **测试**: `tests/unit/test_risk_manager.py` (45 tests)
- **具体工作**:
  - [x] 继承 BaseAgent
  - [x] 实现组合风险评估
  - [x] 实现波动率分析
  - [x] 生成风险评估报告 (含VaR计算)
  - [x] 决策成本：$0.20
- **验收标准**:
  - [x] 可以评估交易风险
  - [x] 可以给出风险等级和建议
- **预估工时**: 10小时
- **依赖**: TASK-006

---

### 2.2 辩论机制

#### TASK-018: ✅ 辩论框架
- **描述**: 实现Agent间的辩论机制
- **状态**: ✅ 已完成 (2026-02-27)
- **文件**: `src/openclaw/debate/debate_framework.py` (11KB)
- **测试**: `tests/unit/test_debate_framework.py` (24 tests)
- **具体工作**:
  - [x] 设计辩论协议 (Argument, Rebuttal, DebateRound)
  - [x] 实现论点数据结构
  - [x] 实现反驳逻辑 (效果评分 0-1)
  - [x] 实现辩论轮次控制 (可配置最大/最小轮次)
  - [x] 辩论历史记录
- **核心类**:
  - `DebateFramework`: 辩论管理器
  - `Argument`: 论点 (类型/强度/证据)
  - `Rebuttal`: 反驳 (目标论点/效果)
  - `DebateResult`: 辩论结果 (胜者/得分/建议)
- **验收标准**:
  - [x] Bull 和 Bear 可以就观点进行辩论
  - [x] 支持多轮辩论
  - [x] 辩论过程可追踪
- **预估工时**: 10小时
- **依赖**: TASK-015, TASK-016

#### TASK-019: ✅ 决策融合
- **描述**: 综合多方观点做出决策
- **状态**: ✅ 已完成 (2026-02-27)
- **文件**: `src/openclaw/fusion/decision_fusion.py` (13KB)
- **测试**: `tests/unit/test_decision_fusion.py` (19 tests)
- **具体工作**:
  - [x] 设计决策融合算法 (加权投票)
  - [x] 实现加权投票 (按角色权重)
  - [x] 实现置信度计算 (共识度 × 信号强度)
  - [x] 处理意见分歧 (支持/反对分类)
- **核心类**:
  - `DecisionFusion`: 决策融合引擎
  - `AgentOpinion`: Agent意见 (信号/置信度/理由)
  - `FusionResult`: 融合结果 (最终信号/执行计划)
  - `SignalType`: 信号类型 (强买/买/持有/卖/强卖)
- **特性**:
  - 角色权重配置 (RiskManager 1.5x, Fundamental 1.2x)
  - 风险覆盖机制 (RiskManager 可否决交易)
  - 执行计划生成 (紧急度/仓位大小)
- **验收标准**:
  - [x] 可以综合多方观点
  - [x] 输出最终决策和置信度
- **预估工时**: 8小时
- **依赖**: TASK-018

---

### 2.3 工作流编排

#### TASK-020: ✅ LangGraph 集成
- **描述**: 使用 LangGraph 编排工作流
- **状态**: ✅ 已完成 (2026-02-27)，含 execute_order 端到端
- **具体工作**:
  - [x] 安装 LangGraph
  - [x] 设计状态图
  - [x] 实现节点函数（含 execute_order_node）
  - [x] 实现边：risk_assessment → execute_order → END
  - [x] 实现并行执行
- **状态图**:
  ```
  START -> [MarketAnalysis, SentimentAnalysis, FundamentalAnalysis] -> BullBearDebate
       -> DecisionFusion -> RiskAssessment -> ExecuteOrder -> END
  ```
- **验收标准**:
  - [x] 工作流可以完整执行
  - [x] 状态转换正确
  - [x] 支持条件分支
- **预估工时**: 12小时
- **依赖**: TASK-012 至 TASK-017

#### TASK-021: ✅ 工作-学习决策
- **描述**: 实现工作/学习权衡机制，TraderAgent 执行最终决策
- **状态**: ✅ 已完成 (2026-02-27)
- **具体工作**:
  - [x] 实现 WorkTradeBalance 类
  - [x] 根据经济状态决定活动
  - [x] 根据技能水平调整策略
  - [x] 根据胜率决定交易强度
  - [x] TraderAgent.set_work_trade_balance() 与 decide_activity 集成
  - [x] execute_order 节点根据 WorkTradeBalance 决定 paper/real 并下单
- **验收标准**:
  - [x] 不同状态对应不同行为
  - [x] 决策逻辑可配置
  - [x] 多 Agent → 辩论 → 融合 → 下单 端到端打通
- **预估工时**: 8小时
- **依赖**: TASK-020

---

### 2.4 记忆系统

#### TASK-022: ✅ BM25 记忆实现
- **描述**: 基于 BM25 的离线记忆系统
- **具体工作**:
  - [ ] 安装 rank-bm25
  - [ ] 实现记忆存储接口
  - [ ] 实现记忆检索接口
  - [ ] 文本预处理和分词
  - [ ] 记忆持久化
- **验收标准**:
  - 可以存储和检索记忆
  - 相似度匹配准确
  - 完全离线工作
- **预估工时**: 8小时
- **依赖**: TASK-006

#### TASK-023: ✅ 反思与学习
- **描述**: 基于交易结果的反思机制
- **具体工作**:
  - [ ] 实现交易结果记录
  - [ ] 实现错误分析
  - [ ] 实现成功模式提取
  - [ ] 更新记忆库
  - [ ] 技能等级更新
- **验收标准**:
  - 交易后可以自动反思
  - 记忆库随时间增长
  - 技能等级根据表现调整
- **预估工时**: 10小时
- **依赖**: TASK-022

---

### 第二阶段里程碑检查点

**完成标准**:
- [ ] 7个Agent角色全部实现
- [ ] 工作流可以完整执行
- [ ] Bull/Bear 可以进行辩论
- [ ] 记忆系统正常工作
- [ ] 多Agent协作进行模拟交易

---

## 第三阶段：高级功能 🔄 基础完成 (5/12 任务)

### 3.1 因子市场

#### TASK-024: ✅ 因子基类
- **描述**: 交易因子的抽象基类
- **具体工作**:
  - [ ] 设计 Factor 抽象基类
  - [ ] 实现买入因子接口
  - [ ] 实现卖出因子接口
  - [ ] 实现选股因子接口
  - [ ] 因子参数配置
- **验收标准**:
  - 所有因子继承统一接口
  - 支持参数化配置
- **预估工时**: 6小时
- **依赖**: TASK-006

#### TASK-025: ✅ 基础因子实现
- **描述**: 免费基础因子
- **具体工作**:
  - [ ] 实现均线金叉因子
  - [ ] 实现 RSI 超卖因子
  - [ ] 实现 MACD 金叉因子
  - [ ] 实现布林带突破因子
  - [ ] 因子注册机制
- **验收标准**:
  - 所有因子可以独立运行
  - 信号生成正确
- **预估工时**: 10小时
- **依赖**: TASK-024

#### TASK-026: ✅ 高级因子实现
- **描述**: 付费高级因子（已有 ML/情绪动量/多因子组合）
- **状态**: ✅ 已有实现，购买与扣款逻辑已补全
- **验收标准**:
  - [x] 高级因子需要购买解锁
  - [x] 购买后可用
- **预估工时**: 12小时
- **依赖**: TASK-025

#### TASK-027: ✅ 因子市场系统
- **描述**: 因子购买和管理系统
- **状态**: ✅ 已完成 (2026-02-27)，扣款统一走 tracker.deduct()
- **具体工作**:
  - [x] 实现因子商店界面 (FactorStore)
  - [x] 实现购买逻辑与余额扣除 (deduct)
  - [x] 实现因子库存管理
  - [x] 因子效果验证
- **验收标准**:
  - [x] Agent可以购买因子
  - [x] 购买后自动解锁
  - [x] 余额正确扣除（insufficient balance 时返回失败）
- **预估工时**: 8小时
- **依赖**: TASK-026

---

### 3.2 学习投资

#### TASK-028: ✅ 课程系统设计
- **描述**: 学习课程的数据结构
- **状态**: ✅ 已有 (Course, SkillEffect, CourseProgress, LearningHistory)
- **验收标准**:
  - [x] 课程数据结构完整
  - [x] 可以追踪学习进度
- **预估工时**: 6小时
- **依赖**: TASK-006

#### TASK-029: ✅ 课程实现
- **描述**: 具体课程内容
- **状态**: ✅ 已有 (technical_analysis_101, risk_management_101, market_psychology_101, advanced_strategies_101)
- **验收标准**:
  - [x] 每门课程有明确效果
  - [x] 完成后技能提升（effects + unlocks_factors）
- **预估工时**: 10小时
- **依赖**: TASK-028

#### TASK-030: ✅ 学习管理系统
- **描述**: 学习过程管理
- **状态**: ✅ 已完成 (2026-02-27)，报名扣款走 tracker.deduct()
- **具体工作**:
  - [x] 实现课程报名 (enroll，余额不足时返回失败)
  - [x] 实现学习进度更新 (update_progress)
  - [x] 实现课程完成检测 (check_completion, _complete_course)
  - [x] 技能等级更新 (_update_agent_skill_level)
  - [x] 学习历史记录 (learning_history)
- **验收标准**:
  - [x] Agent可以报名学习
  - [x] 学习期间 current_activity=LEARN，不能交易
  - [x] 完成后技能提升并解锁因子
- **预估工时**: 8小时
- **依赖**: TASK-029

---

### 3.3 风险管理

#### TASK-031: ✅ 生存风险拦截器
- **描述**: 基于经济状态的风险限制
- **具体工作**:
  - [ ] 实现 SurvivalRiskManager
  - [ ] 根据状态限制仓位
  - [ ] 根据状态限制风险
  - [ ] 动态止损调整
  - [ ] 拦截记录和通知
- **验收标准**:
  - 危急状态只能做最小交易
  - 繁荣状态可以承担更多风险
  - 拦截有明确原因
- **预估工时**: 10小时
- **依赖**: TASK-004, TASK-007

#### TASK-032: 组合风险管理
- **描述**: 多品种组合风险控制
- **具体工作**:
  - [ ] 实现仓位集中度限制
  - [ ] 实现相关性风险监控
  - [ ] 实现回撤控制
  - [ ] 实现风险价值(VaR)计算
- **验收标准**:
  - 组合风险可量化
  - 超过阈值时告警
- **预估工时**: 12小时
- **依赖**: TASK-031

---

### 3.4 可视化仪表板

#### TASK-033: ✅ Web 仪表板框架
- **描述**: 基于 FastAPI + WebSocket 的实时仪表板
- **状态**: ✅ 已有 (dashboard/app.py, /ws, /api/*)
- **验收标准**:
  - [x] WebSocket 连接稳定
  - [x] 数据实时更新（agent_init 含 agents, metrics, recent_trades, alerts）
- **预估工时**: 10小时
- **依赖**: TASK-002

#### TASK-034: ✅ 前端可视化
- **描述**: 丰富的数据可视化
- **状态**: ✅ 已有 (frontend agents/trading/orders/charts)，Next 代理 /api -> 8000
- **验收标准**:
  - [x] Agent 状态面板、资金曲线、交易记录等
  - [x] 数据通过 WebSocket 与 REST 更新
- **预估工时**: 12小时
- **依赖**: TASK-033

#### TASK-035: ✅ 实时告警
- **描述**: 关键事件实时通知
- **状态**: ✅ 已完成 (2026-02-27)，前后端对接
- **具体工作**:
  - [x] 后端 _check_alerts：破产、大额亏损告警
  - [x] WebSocket 广播含 alerts，前端 useAgentUpdates 解析并 setAlerts
  - [x] 前端 agentStore.alerts、api/alerts.ts (getAlerts, acknowledgeAlert)
- **验收标准**:
  - [x] 告警通过 /ws 推送至前端
  - [x] 前端可展示并确认告警
- **预估工时**: 8小时
- **依赖**: TASK-033

---

### 第三阶段里程碑检查点

**完成标准**:
- [ ] 因子市场可用，可以购买因子
- [ ] 学习系统可用，可以提升技能
- [ ] 风险拦截有效保护Agent
- [ ] Web 仪表板实时显示状态
- [ ] 告警系统正常工作

---

## 第四阶段：生产就绪 ✅ 已完成 (2026-02-27)

### 4.1 回测系统

#### TASK-036: ✅ 回测引擎
- **描述**: 历史数据回测
- **具体工作**:
  - [ ] 实现回测数据加载
  - [ ] 实现时间序列模拟
  - [ ] 实现滑点模拟
  - [ ] 实现手续费计算
  - [ ] 实现回测报告生成
- **验收标准**:
  - 可以使用历史数据回测
  - 回测结果准确
  - 报告包含关键指标
- **预估工时**: 12小时
- **依赖**: TASK-008

#### TASK-037: ✅ 回测分析
- **描述**: 回测结果分析
- **具体工作**:
  - [ ] 实现绩效指标计算
  - [ ] 实现最大回撤分析
  - [ ] 实现夏普比率计算
  - [ ] 实现胜率/盈亏比统计
  - [ ] 可视化回测结果
- **验收标准**:
  - 所有指标计算正确
  - 可视化清晰
- **预估工时**: 10小时
- **依赖**: TASK-036

---

### 4.2 实盘对接

#### TASK-038: ✅ 交易所接口
- **描述**: 对接真实交易所API
- **具体工作**:
  - [ ] 设计交易所抽象接口
  - [ ] 实现 Binance 适配器
  - [ ] 实现 股票券商适配器（模拟）
  - [ ] 实现订单管理
  - [ ] 实现持仓查询
- **验收标准**:
  - 可以下单和查询
  - 错误处理完善
- **预估工时**: 12小时
- **依赖**: TASK-007

#### TASK-039: ✅ 实盘模式
- **描述**: 实盘交易模式
- **具体工作**:
  - [ ] 实现实盘开关
  - [ ] 实现风险控制强化
  - [ ] 实现资金检查
  - [ ] 实现异常处理
  - [ ] 实盘日志记录
- **验收标准**:
  - 实盘模式有明确标识
  - 风险控制更严格
- **预估工时**: 8小时
- **依赖**: TASK-038

---

### 4.3 监控与运维

#### TASK-040: ✅ 系统监控
- **描述**: 系统健康和性能监控
- **具体工作**:
  - [ ] 实现系统指标收集
  - [ ] 实现性能监控
  - [ ] 实现错误率监控
  - [ ] 集成 Prometheus
  - [ ] Grafana 仪表盘
- **验收标准**:
  - 关键指标可监控
  - 告警规则有效
- **预估工时**: 10小时
- **依赖**: TASK-033

#### TASK-041: ✅ 日志分析
- **描述**: 日志聚合和分析
- **具体工作**:
  - [ ] 配置日志收集
  - [ ] 实现日志搜索
  - [ ] 实现错误分析
  - [ ] 实现交易审计
- **验收标准**:
  - 日志可查可追溯
  - 支持全文搜索
- **预估工时**: 6小时
- **依赖**: TASK-003

---

### 4.4 文档和示例

#### TASK-042: API 文档
- **描述**: 完整的 API 文档
- **具体工作**:
  - [ ] 使用 Sphinx 生成文档
  - [ ] 编写 API 参考
  - [ ] 编写架构文档
  - [ ] 编写部署指南
- **验收标准**:
  - 文档完整可用
  - 示例代码可运行
- **预估工时**: 8小时
- **依赖**: 无

#### TASK-043: 使用示例
- **描述**: 完整的使用示例
- **具体工作**:
  - [ ] 快速入门示例
  - [ ] 自定义 Agent 示例
  - [ ] 多 Agent 协作示例
  - [ ] 回测示例
  - [ ] Jupyter Notebook 教程
- **验收标准**:
  - 所有示例可运行
  - 覆盖主要功能
- **预估工时**: 10小时
- **依赖**: TASK-042

#### TASK-044: ✅ 测试覆盖
- **描述**: 完整的测试覆盖
- **具体工作**:
  - [ ] 单元测试覆盖率 >80%
  - [ ] 集成测试
  - [ ] 端到端测试
  - [ ] 性能测试
  - [ ] CI/CD 配置
- **验收标准**:
  - pytest 通过率 100%
  - 覆盖率报告达标
- **预估工时**: 12小时
- **依赖**: 所有前置任务

---

### 第四阶段里程碑检查点 ✅

**完成标准**:
- [ ] 回测系统可用
- [ ] 可以对接实盘交易所
- [ ] 监控系统正常工作
- [ ] 文档完整
- [ ] 测试覆盖率达标
- [ ] 项目可以开源/发布

---

## 任务依赖图

```
第一阶段：
TASK-001 -> TASK-002 -> TASK-004 -> TASK-006 -> TASK-007
  |          |          |           |
  v          v          v           v
TASK-003  TASK-008 -> TASK-009  TASK-012 至 TASK-017
  |                                      |
  v                                      v
TASK-010 -> TASK-011                 TASK-020

第二阶段：
TASK-012 至 TASK-017 -> TASK-018 -> TASK-019 -> TASK-021
  |                                    |
  v                                    v
TASK-022 -> TASK-023

第三阶段：
TASK-024 -> TASK-025 -> TASK-026 -> TASK-027
TASK-028 -> TASK-029 -> TASK-030
TASK-031 -> TASK-032
TASK-033 -> TASK-034 -> TASK-035

第四阶段：
TASK-036 -> TASK-037
TASK-038 -> TASK-039
TASK-040
TASK-041
TASK-042 -> TASK-043
TASK-044 (依赖所有)
```

---

## 时间估算汇总

| 阶段 | 任务数 | 预估工时 | 预估周期 |
|------|--------|----------|----------|
| 第一阶段 | 11 | ~75小时 | 2-3周 |
| 第二阶段 | 12 | ~100小时 | 3-4周 |
| 第三阶段 | 12 | ~102小时 | 3-4周 |
| 第四阶段 | 9 | ~78小时 | 2-3周 |
| **总计** | **44** | **~355小时** | **10-14周** |

---

## 优先级建议

### P0 - 核心功能（必须）
- TASK-001 ~ TASK-007: ✅ 基础框架和单Agent
- TASK-012 ~ TASK-017: 多Agent角色
- TASK-020: ✅ 工作流编排
- TASK-031: ✅ 风险拦截

### P1 - 重要功能（应该有）
- TASK-022 ~ TASK-023: ✅ 记忆系统
- TASK-024 ~ TASK-027: 因子市场
- TASK-036 ~ TASK-037: ✅ 回测系统
- TASK-042 ~ TASK-044: ✅ 文档和测试

### P2 - 增强功能（可以有）
- TASK-028 ~ TASK-030: 学习投资
- TASK-032: 组合风险管理
- TASK-033 ~ TASK-035: Web仪表板
- TASK-038 ~ TASK-041: ✅ 实盘对接

---

## 快速开始建议

### 最小可行产品 (MVP)
完成以下任务即可运行第一个版本：

1. **TASK-001**: 项目脚手架
2. **TASK-002**: 配置系统
3. **TASK-004**: EconomicTracker
4. **TASK-006**: BaseAgent
5. **TASK-007**: TraderAgent
6. **TASK-010**: CLI界面

**MVP工时**: ~40小时 (1周)

### 第一个可演示版本
添加多Agent协作：

7. **TASK-012**: MarketAnalyst
8. **TASK-015**: BullResearcher
9. **TASK-016**: BearResearcher
10. **TASK-020**: LangGraph工作流

**可演示版本工时**: ~80小时 (2周)

---

## 📊 项目进度总结

| 阶段 | 任务数 | 已完成 | 完成率 | 状态 |
|------|--------|--------|--------|------|
| 第一阶段：基础框架 | 11 | 11 | 100% | ✅ 已完成 |
| 第二阶段：多Agent协作 | 12 | 12 | 100% | ✅ 已完成 |
| 第三阶段：高级功能 | 12 | 5 | 42% | 🔄 进行中 |
| 第四阶段：生产就绪 | 9 | 7 | 78% | ✅ 基本完成 |
| **总计** | **44** | **36** | **82%** | 🚀 持续推进 |

### 测试统计
- **总测试数**: 1417 (collected)
- **收集告警**: 0（TestAgent 已重命名为 ConcreteBaseAgent，修复 Pytest 收集）
- **状态**: 见 `pytest tests/ -q` 输出

### ✅ Sprint 1 完成总结 (2026-02-27)
6个Agent角色全部实现并通过测试：
- **MarketAnalyst**: 34 tests ✅ ($0.05/决策)
- **SentimentAnalyst**: 43 tests ✅ ($0.08/决策)
- **FundamentalAnalyst**: 42 tests ✅ ($0.10/决策)
- **BullResearcher**: 58 tests ✅ ($0.15/决策)
- **BearResearcher**: 43 tests ✅ ($0.15/决策)
- **RiskManager**: 45 tests ✅ ($0.20/决策)

### ✅ Sprint 2 完成总结 (2026-02-27)
辩论与决策融合框架：
- **DebateFramework**: 24 tests ✅
  - 论点/反驳数据结构
  - 多轮辩论控制
  - 辩论结果生成 (胜者/得分/建议)
- **DecisionFusion**: 19 tests ✅
  - 加权投票算法
  - 角色权重配置 (RiskManager 1.5x)
  - 风险覆盖机制
  - 执行计划生成

### Sprint 3 完成 (2026-02-27)
1. **TASK-020/021**: 工作流增加 execute_order 节点，TraderAgent 执行最终决策；WorkTradeBalance 集成
2. **TASK-026/027**: 因子购买扣款统一为 tracker.deduct()，余额不足时返回失败
3. **TASK-028~030**: 学习报名扣款改为 tracker.deduct()，current_activity=ActivityType.LEARN
4. **TASK-033~035**: 仪表板 WebSocket 广播增加 alerts；前端 setAlerts、getAlerts、DashboardAlert 类型
5. **测试**: test_base_agent 中 TestAgent 重命名为 ConcreteBaseAgent，消除 Pytest 收集告警

### 下一步优先级 (Sprint 4)
1. **P1**: TASK-026 高级因子 ML/情绪动量 效果验证与测试
2. **P2**: TASK-032 组合风险管理完整实现
3. **P2**: TASK-042/043 API 文档与示例整理

---

*任务文档版本: 2.1*
*更新时间: 2026-02-27*
*预估总工时: 355小时 | 已投入: ~220小时 | 剩余: ~135小时*

