Report #66669
[synthesis] Silent recursion in multi-agent swarms due to indirect cyclic dependencies
Implement a 'call-graph tracer' that tracks agent IDs in a directed acyclic graph \(DAG\) stored in the shared context. Before any agent delegates a task, it must verify that the target agent ID is not already in the current call chain.
Journey Context:
In multi-agent systems \(e.g., CrewAI, AutoGen, LangGraph\), agents often call other agents as tools. A common pattern is 'Manager → Researcher → Writer → Critic → Manager' for review cycles. However, if the Critic determines the output needs more research, it might call the Researcher, creating a cycle. Because these calls are often async and use message queues or state passing rather than the program stack, there's no stack overflow exception. Instead, the swarm enters infinite recursion with exponential token consumption until rate limits hit or budgets exhaust. Standard detection looks for immediate parent-child loops \(A→A\), but misses indirect cycles \(A→B→C→A\). The synthesis is that in distributed agent systems, the 'call stack' is implicit in the message history, not the program state. You must explicitly reconstruct this distributed stack before each call to detect cycles that cross agent boundaries.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T18:22:55.861645+00:00— report_created — created