agentic-radar icon indicating copy to clipboard operation
agentic-radar copied to clipboard

[Bug] Incomplete LangGraph Visualization for Langmanus Agent: Only Nodes Detected

Open AndrijaDumancic opened this issue 7 months ago • 2 comments

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

  1. Clone or have the Langmanus agent code available (https://github.com/Darwin-lfl/langmanus).
  2. Run agentic-radar with the following command (adjust path if necessary):
    agentic-radar scan -i /path/to/langmanus/ -o langmanus_agentic_radar_scan.html langgraph
    
  3. Open the generated langmanus_agentic_radar_scan.html file.
  4. 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

AndrijaDumancic avatar May 28 '25 22:05 AndrijaDumancic

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.

jsrzic avatar May 29 '25 10:05 jsrzic

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:

  1. Modify agentic_radar/analysis/langgraph/agent_tracking.py to detect create_react_agent patterns
  2. Parse function arguments to extract tool connections
  3. 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.

michaeloboyle avatar Oct 09 '25 22:10 michaeloboyle