Sync ThreadPoolExecutor doesn't truly parallelize inside LangGraph nodes. Switched to async functions with asyncio.to_thread() + asyncio.gather() — the same pattern that works for the parallel analyst node. Result: Research (Bull+Bear) and Risk (Agg+Con+Neu) now run concurrently. Total analysis time reduced from ~450s to ~280s (~38% faster). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| agents | ||
| dataflows | ||
| graph | ||
| llm_clients | ||
| default_config.py | ||