# Graft AST Analysis Map: langchain-ai/open_deep_research Repository: https://github.com/langchain-ai/open_deep_research Tool: Graft v0.16.0 (Static AST Analysis) Generated: 2026-09-28 ## 1. Summary Statistics - Total Files: 22 - Total Symbols: 180 (128 functions, 49 classes, 22 files, 3 methods) - Total Edges: 485 - Tokens Saved: 89,013 tokens (73,264 from graft map, 15,749 from graft callers) ## 2. Directory Clusters & Hubs - src/legacy/ (10 files, 95 symbols) Hubs: * _load_mcp_tools (multi_agent.py, 2 incoming edges) * azureaisearch_search_async (utils.py, 2 incoming edges) * get_research_tools (multi_agent.py, 2 incoming edges) * get_supervisor_tools (multi_agent.py, 2 incoming edges) * get_search_tool (multi_agent.py, 2 incoming edges) - src/open_deep_research/ (5 files, 53 symbols) Hubs: * get_api_key_for_model (utils.py:L892-L914, 7 incoming edges) * is_token_limit_exceeded (utils.py:L665-L701, 3 incoming edges) * _find_mcp_error_in_exception_chain (utils.py:L399-L409, 2 incoming edges) * get_all_tools (utils.py:L569-L597, 2 incoming edges) * deep_researcher.py (researcher, researcher_tools) - tests/ (6 files, 25 symbols) Hubs: * _format_input_query (evaluators.py:L12-L22, 5 incoming edges) * extract_langsmith_data (extract_langsmith_data.py, 1 incoming edge) * main (extract_langsmith_data.py, 1 incoming edge) * supervisor_parallel_evaluation.py * pairwise_evaluation.py - src/security/ (1 file, 7 symbols) Hubs: * verify_token (auth.py, 1 incoming edge) ## 3. Key Architectural Insights for Hermes Agent Stack 1. Recursive Multi-Agent Research Loops: DeepResearcher coordinates supervisor and worker agents with parallel tool invocation. 2. Dynamic MCP Tool Integration: Seamless MCP loading and error recovery in exception chains (_find_mcp_error_in_exception_chain). 3. Token Budget Guardrails: is_token_limit_exceeded guards context window overflow before triggering report synthesis.