[Bug] Incomplete LangGraph Visualization for Langmanus Agent: Only Nodes Detected
Is there an existing issue for the same bug?
- [x] I have checked the existing issues.
Describe the bug
agentic_radar_langmanus_issue.zip
I am running agentic-radar on the Langmanus agent, an open-source LangGraph-based agent available at: https://github.com/Darwin-lfl/langmanus.
When I scan this agent, the generated "Agentic Workflow Graph" in the HTML report is incomplete. It only displays the nodes (like supervisor, coder, planner, etc.) but fails to show any edges (connections) between them. Furthermore, it appears that no tools or specific agent roles are being visualized by the scan, only the basic nodes.
Steps to Reproduce
- Clone or have the Langmanus agent code available (
https://github.com/Darwin-lfl/langmanus). - Run
agentic-radarwith the following command (adjust path if necessary):agentic-radar scan -i /path/to/langmanus/ -o langmanus_agentic_radar_scan.html langgraph - Open the generated
langmanus_agentic_radar_scan.htmlfile. - Observe that the "Agentic Workflow Graph" only shows nodes, with no connecting edges, tools, or agent icons.
Expected behavior
I expect to see a fully connected graph that visualizes all the defined nodes from Langmanus, the edges (connections) between them, any tools it uses, and potentially highlights different agent roles, accurately representing its LangGraph workflow.
Agentic Radar Version
0.10.1
Operating System
Linux
Screenshots/Logs (if applicable)
No response
Hi @AndrijaDumancic, this issue seems to be a duplicate of https://github.com/splx-ai/agentic-radar/issues/89, check it out. There, we implemented detection of Agent type nodes, but only for a limited number of use cases (due to static analysis limitations).
I skimmed the langmanus example, and it looks that in order to cover it, we should expand this function https://github.com/splx-ai/agentic-radar/blob/aa4e86aaa9294feb4d8a7a1f482473a785655ed0/agentic_radar/analysis/langgraph/agent_tracking.py#L7 to also parse assignments in the form of: some_agent = create_react_agent(...). Agent-Tool connections could also potentially be parsed from the create_react_agent arguments. We welcome any contributions regarding these improvements.
I'd like to work on this issue. Based on @jsrzic's guidance, I understand the task is to expand the agent_tracking.py function to parse assignments like some_agent = create_react_agent(...) and extract agent-tool connections from the function arguments.
Before I start, I'd like to confirm the approach:
- Modify
agentic_radar/analysis/langgraph/agent_tracking.pyto detectcreate_react_agentpatterns - Parse function arguments to extract tool connections
- Add test coverage using the langmanus example as a test case
Is this the correct direction? Are there any specific implementation preferences or constraints I should be aware of?
Happy to contribute following the TDD approach outlined in CONTRIBUTING.md.