Commit b289263
committed
fix(tradingagents): 修复深度分析数据串台与决策展示不匹配
数据串台(最严重):并发跑多只股票深度分析时,_PANWATCH_DATA_CACHE
模块级全局 dict 被后启动的任务覆盖,导致广汽 601238 的报告混入赛力斯
601127 的 K线/价格/新闻。改为 ContextVar(asyncio.to_thread 会
copy_context,每个并发 worker 拿独立副本,天然隔离);route_to_vendor
的 monkeypatch 改引用计数 + 锁,消除安装/卸载嵌套竞态。
决策与正文不匹配:正文写"卖出/Sell"但顶部显示"持有"。评级提取原先
优先信任上游 propagate() 二次提炼的 decision(会失真),改为优先解析
PM 正文(用户可见的最终决策书)显式标签,优先级 正文标签>decision>
模糊兜底;新增 _parse_rating_label 只做精确标签匹配避免干扰词误判。
新增 tests/test_tradingagents_toolkit_isolation.py 并发隔离测试,
test_tradingagents_5_tier_rating.py 增正文/decision 冲突回归。1 parent bad5157 commit b289263
4 files changed
Lines changed: 357 additions & 162 deletions
File tree
- src/agents/tradingagents
- tests
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
55 | 55 | | |
56 | 56 | | |
57 | 57 | | |
58 | | - | |
59 | | - | |
60 | | - | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
61 | 64 | | |
62 | | - | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
63 | 68 | | |
64 | 69 | | |
65 | 70 | | |
| |||
120 | 125 | | |
121 | 126 | | |
122 | 127 | | |
123 | | - | |
124 | | - | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
125 | 134 | | |
126 | 135 | | |
127 | 136 | | |
| |||
131 | 140 | | |
132 | 141 | | |
133 | 142 | | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
134 | 153 | | |
135 | 154 | | |
136 | 155 | | |
| |||
0 commit comments