# TradingAgents Workflow Diagram ## 完整工作流程图 ```mermaid graph TD START([START]) --> FirstAnalyst[第一个分析师
Market/Social/News/Fundamentals] subgraph AnalystLoop["分析师循环 (可配置)"] Analyst[分析师节点] -->|需要工具调用| Tools[工具节点
tools_market/social/news/fundamentals] Tools --> Analyst Analyst -->|分析完成| ClearMsg[清理消息节点
Msg Clear] ClearMsg -->|下一个分析师| NextAnalyst[下一个分析师] ClearMsg -->|最后一个分析师完成| BullResearcher end FirstAnalyst --> AnalystLoop subgraph ResearchPhase["研究与投资决策阶段"] BullResearcher[Bull Researcher
看涨研究员] -->|继续辩论| BearResearcher[Bear Researcher
看跌研究员] BearResearcher -->|继续辩论| BullResearcher BullResearcher -->|达到最大轮次| ResearchManager[Research Manager
研究经理/投资裁判] BearResearcher -->|达到最大轮次| ResearchManager ResearchManager --> Trader[Trader
交易员] end subgraph RiskPhase["风险分析阶段"] Trader --> RiskyAnalyst[Risky Analyst
激进分析师] RiskyAnalyst -->|继续辩论| SafeAnalyst[Safe Analyst
保守分析师] SafeAnalyst -->|继续辩论| NeutralAnalyst[Neutral Analyst
中性分析师] NeutralAnalyst -->|继续辩论| RiskyAnalyst RiskyAnalyst -->|达到最大轮次| RiskJudge[Risk Judge
风险经理] 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 Researcher** ↔ **Bear Researcher** 循环辩论 - 辩论轮次由 `max_debate_rounds` 控制 - 达到最大轮次后 → **Research Manager** 做出投资判断 - **Research Manager** → **Trader** 制定交易计划 ### 阶段 3: 风险分析阶段 (Risk Analysis Phase) - **Trader** → **Risky Analyst** (激进观点) - **Risky** → **Safe** → **Neutral** → **Risky** (循环辩论) - 辩论轮次由 `max_risk_discuss_rounds` 控制 - 达到最大轮次后 → **Risk Judge** 做出最终风险决策 - **Risk Judge** → **END** (输出最终交易决策) ## 条件判断逻辑 - **分析师条件**: 检查是否有 `tool_calls`,决定是否需要调用工具 - **辩论条件**: 检查辩论轮次 (`count`) 和当前响应者,决定继续辩论或进入下一阶段 - **风险分析条件**: 检查风险讨论轮次和最新发言者,决定继续讨论或进入风险判断