TradingAgents/workflow_diagram.md

3.2 KiB

TradingAgents Workflow Diagram

完整工作流程图

graph TD
    START([START]) --> FirstAnalyst[第一个分析师<br/>Market/Social/News/Fundamentals]
    
    subgraph AnalystLoop["分析师循环 (可配置)"]
        Analyst[分析师节点] -->|需要工具调用| Tools[工具节点<br/>tools_market/social/news/fundamentals]
        Tools --> Analyst
        Analyst -->|分析完成| ClearMsg[清理消息节点<br/>Msg Clear]
        ClearMsg -->|下一个分析师| NextAnalyst[下一个分析师]
        ClearMsg -->|最后一个分析师完成| BullResearcher
    end
    
    FirstAnalyst --> AnalystLoop
    
    subgraph ResearchPhase["研究与投资决策阶段"]
        BullResearcher[Bull Researcher<br/>看涨研究员] -->|继续辩论| BearResearcher[Bear Researcher<br/>看跌研究员]
        BearResearcher -->|继续辩论| BullResearcher
        BullResearcher -->|达到最大轮次| ResearchManager[Research Manager<br/>研究经理/投资裁判]
        BearResearcher -->|达到最大轮次| ResearchManager
        ResearchManager --> Trader[Trader<br/>交易员]
    end
    
    subgraph RiskPhase["风险分析阶段"]
        Trader --> RiskyAnalyst[Risky Analyst<br/>激进分析师]
        RiskyAnalyst -->|继续辩论| SafeAnalyst[Safe Analyst<br/>保守分析师]
        SafeAnalyst -->|继续辩论| NeutralAnalyst[Neutral Analyst<br/>中性分析师]
        NeutralAnalyst -->|继续辩论| RiskyAnalyst
        RiskyAnalyst -->|达到最大轮次| RiskJudge[Risk Judge<br/>风险经理]
        SafeAnalyst -->|达到最大轮次| RiskJudge
        NeutralAnalyst -->|达到最大轮次| RiskJudge
    end
    
    RiskJudge --> END([END])
    
    style START fill:#90EE90
    style END fill:#FFB6C1
    style ResearchManager fill:#87CEEB
    style Trader fill:#DDA0DD
    style RiskJudge fill:#F0E68C

详细流程说明

阶段 1: 分析师阶段 (Analyst Phase)

  • 顺序执行: 根据 selected_analysts 配置,按顺序执行各个分析师
  • 每个分析师:
    1. 分析师节点分析市场数据
    2. 如果需要数据 → 调用工具节点 (tools_xxx)
    3. 工具返回数据 → 回到分析师节点继续分析
    4. 分析完成 → 清理消息 → 进入下一个分析师

阶段 2: 研究辩论阶段 (Research Debate Phase)

  • Bull ResearcherBear Researcher 循环辩论
  • 辩论轮次由 max_debate_rounds 控制
  • 达到最大轮次后 → Research Manager 做出投资判断
  • Research ManagerTrader 制定交易计划

阶段 3: 风险分析阶段 (Risk Analysis Phase)

  • TraderRisky Analyst (激进观点)
  • RiskySafeNeutralRisky (循环辩论)
  • 辩论轮次由 max_risk_discuss_rounds 控制
  • 达到最大轮次后 → Risk Judge 做出最终风险决策
  • Risk JudgeEND (输出最终交易决策)

条件判断逻辑

  • 分析师条件: 检查是否有 tool_calls,决定是否需要调用工具
  • 辩论条件: 检查辩论轮次 (count) 和当前响应者,决定继续辩论或进入下一阶段
  • 风险分析条件: 检查风险讨论轮次和最新发言者,决定继续讨论或进入风险判断