实现阶段与验收标准
定义从第一行代码到系统完整运行的分阶段计划,每个阶段的交付物、依赖和验收标准。
原则:先跑通主线,再扩展支线。 每个 Phase 结束时,系统应该可以独立运行并产生价值。
依赖关系图
Phase 1: 项目骨架 + 记忆系统
│
├──→ Phase 2: 叙事发现引擎
│ │
│ └──→ Phase 5: Persona Agent 池
│ │
├──→ Phase 3: 数据采集引擎 ──┐
│ ├──→ Phase 6: 错配检测 + 合成层
├──→ Phase 4: 情绪引擎 ─────┘
│
└──→ Phase 7: 自动化运行
并行可能:
Phase 2 (叙事) 和 Phase 3 (数据) 和 Phase 4 (情绪) 可以并行开发
但都依赖 Phase 1 完成MVP 定义
最小可用系统 = Phase 1 + Phase 2 + Phase 5(部分)
即:记忆系统 + 叙事发现 + 2个 Persona 的基础分析。可以开始从新闻中发现叙事并给出初步判断,即使没有数据校准和错配检测。
Phase 1:项目骨架 + 记忆系统
目标:搭建可运行的项目基础,完成数据存储层。
交付物
1. 项目初始化
- pyproject.toml + 依赖安装
- 目录结构创建
- 配置管理(config.py + .env)
2. 数据库层
- embedded-postgres 连接管理
- SQLAlchemy ORM 模型(对应 02-data-model.md 的所有表)
- 数据库迁移脚本(Alembic)
- 初始化脚本(init_db.py)
3. 事件总线
- 进程内 EventBus 实现
- 事件持久化到数据库
4. 存储接口
- NarrativeStore 实现(CRUD + 语义搜索)
- IndicatorStore 实现
- SentimentStore 实现
- JudgmentStore 实现
5. LLM 调用层
- LiteLLM 封装
- 结构化输出校验
- 重试和降级逻辑
6. 测试
- 数据库 CRUD 单元测试
- 事件总线单元测试
- LLM 调用 mock 测试验收标准
□ pip install -e ".[dev]" 成功
□ python scripts/init_db.py 成功创建所有表
□ pytest tests/unit/ 全部通过
□ 可以通过代码创建/查询 Narrative、Judgment 等实体
□ EventBus 可以发布和订阅事件,事件持久化到 DB
□ LLM 调用层可以正常调用 Claude 并返回结构化 JSON预估工作量
核心开发:数据库模型 + ORM + 存储接口
重点难点:embedded-postgres 配置、pgvector 扩展安装、SQLAlchemy async 模式Phase 2:叙事发现引擎
目标:从新闻中自动提取和追踪叙事。
交付物
1. 叙事提取
- LLM Prompt 设计和调优
- 结构化输出校验
- 批量处理能力
2. 语义匹配
- Embedding 接口实现(前期用 OpenAI,可切换)
- pgvector 语义搜索
- 相似度阈值调优
3. 叙事状态机
- 状态转换逻辑
- candidate → active 验证规则
- active → fading 衰退检测
4. 叙事关系图
- NarrativeEdge CRUD
- 合并/分裂检测(基础版)
5. RSS 接入
- 至少接入 2-3 个财经 RSS 源
- 定时拉取和去重
6. 测试
- 叙事提取单元测试(mock LLM 输出)
- 语义匹配准确率测试
- 状态机转换测试验收标准
□ 输入一篇新闻,可以输出结构化的叙事命题
□ 新叙事可以自动匹配到已有叙事(相似度 > 0.85)
□ 不相似的叙事自动创建为 candidate
□ candidate 满足条件后自动转为 active
□ RSS 源可以定时拉取,去重后送入叙事提取
□ narrative_events 表记录了所有状态变化Phase 3:数据采集引擎
目标:从多个数据源采集指标,计算宏观信号。
交付物
1. OpenBB 集成
- Provider 实现
- 核心指标采集(利率、利差、股指、外汇、商品)
2. Binance 集成
- 资金费率采集
- 持仓量采集
- 清算数据采集
3. 指标计算引擎
- Z-score 计算
- 百分位计算
- 趋势判断
- 异常标记
4. 采集调度
- APScheduler 配置
- 分频率采集
5. 测试
- 指标计算单元测试(已知输入 → 预期输出)
- 数据源 mock 测试验收标准
□ 可以从 OpenBB 获取至少 10 个核心宏观指标
□ 可以从 Binance 获取资金费率和持仓量
□ 指标计算(Z-score、百分位、趋势)结果正确
□ 异常指标自动标记并发布事件
□ indicator_snapshots 表持续积累数据暂不实现
- IBKR 实时数据(复杂度高,OpenBB 已覆盖大部分需求)
- Longbridge 接入(Phase 3 可先跳过,后续补充中国市场)
Phase 4:情绪引擎
目标:采集市场情绪数据。
交付物
1. 散户情绪
- Fear & Greed Index 采集
- 融资融券数据(如 Longbridge 可用)
2. 媒体情绪
- 新闻标题情绪(LLM 批量打分)
- 央行声明鸽鹰度分析
3. 机构行为
- ETF 资金流(OpenBB 覆盖)
- CFTC 持仓(OpenBB 覆盖)
4. 极端情绪检测
- 阈值配置
- 事件发布
5. 测试
- 情绪打分单元测试
- 极端检测测试验收标准
□ 可以输出 SentimentSnapshot(散户 + 媒体 + 机构)
□ 极端情绪自动检测并发布事件
□ sentiment_snapshots 表持续积累数据暂不实现
- 社交媒体爬取(需要额外的反爬策略,优先级低)
- KOL 观点聚合(数据源不稳定)
Phase 5:Persona Agent 池
目标:实现蒙特卡罗式的多 Persona 对抗分析。
交付物
1. Persona 管理
- skill.md 解析器
- Persona 同步脚本
- PersonaVersion 管理
2. 首批 Persona(2-3个)
- Soros(反身性)
- Buffett(价值投资)
- 周金涛(周期论)
- 从 skill.md 加载配置
3. 独立分析
- Persona 分析 Prompt
- 结构化输出
- 超时和降级处理
4. 对抗辩论(基础版)
- 单轮质疑-回应
- 辩论记录持久化
5. Ensemble 合成
- 加权投票
- 共识度计算
6. 测试
- 单个 Persona 分析测试
- 辩论流程测试
- 合成逻辑测试验收标准
□ 3 个 Persona 可以从 skill.md 加载配置
□ 输入叙事 + 指标 + 情绪,每个 Persona 输出独立判断
□ 对抗辩论可以生成质疑和回应
□ Ensemble 输出加权合成的 regime 判断
□ persona_judgments 表记录了每次独立判断Phase 6:错配检测 + 合成层
目标:实现智库 vs 情绪的错配检测,输出 Alpha/Beta 信号。
交付物
1. 错配检测
- 智库共识提取
- 情绪方向计算
- 错配度量化
- 四象限分类
2. 信号过滤
- 阈值配置
- 持续时间追踪
3. 交易提案(预留)
- TradeProposal 基础结构
- 投资逻辑自动生成(LLM)
4. 事后验证
- 验证引擎实现
- Persona 表现统计更新
5. 测试
- 错配计算单元测试
- 四象限分类测试
- 信号过滤测试验收标准
□ judgment.completed 事件触发后自动计算错配度
□ 四象限分类正确
□ 满足阈值的信号自动发布 mismatch.detected 事件
□ 事后验证可以对比判断 vs 实际结果
□ Persona 权重根据验证结果自动更新Phase 7:自动化运行
目标:系统全自动运行,可定时产出分析报告。
交付物
1. 主循环
- 所有引擎串联运行
- 定时调度配置
- 事件驱动的自动触发
2. 报告生成
- 每日/每周分析报告(Markdown 格式)
- 当前 regime、活跃叙事、错配信号汇总
3. 告警
- 高置信度信号通知
- 数据源故障告警
- 异常检测告警
4. Streamlit Dashboard(可选)
- 叙事图谱可视化
- 指标仪表盘
- 信号历史
5. 元学习(基础版)
- 每周回顾
- Persona 表现统计
- 优化建议生成
6. 测试
- 端到端集成测试
- 24小时稳定性测试验收标准
□ 系统可以 24/7 自动运行,无需人工干预
□ 每日产出分析报告
□ 高信号强度的错配触发告警
□ 系统运行 7 天无崩溃
□ 元学习模块可以产出可操作的优化建议总览
Phase 1 项目骨架 + 记忆系统 ← 基础,所有后续依赖
Phase 2 叙事发现引擎 ← 系统的"眼睛"
Phase 3 数据采集引擎 ← 系统的"校准器"
Phase 4 情绪引擎 ← 系统的"温度计"
Phase 5 Persona Agent 池 ← 系统的"大脑"
Phase 6 错配检测 + 合成层 ← 系统的"决策层"
Phase 7 自动化运行 ← 系统的"心脏"
Phase 2/3/4 可并行开发
Phase 5 依赖 Phase 2
Phase 6 依赖 Phase 3 + 4 + 5
Phase 7 依赖所有