See who said what, and when.
Messages, tool calls, memories, and interventions share one timeline. Click any event to see what that agent could read at that moment.
Exploring traces →Swarm Lens puts every message, tool call, and memory from your agents on one timeline. Pick a moment, change a prompt or a goal, and run the conversation forward from there.
2 minutes 44 seconds. We replay a medical debate, fork it
where one agent goes wrong, and watch the answer change.
Recorded on main with an ACIArena medical debate.
We open an ACIArena debate where three agents argue a medical question and a fourth aggregates their answers. One debater, Debater 0, has been prompted to argue for a wrong answer. We replay the run and use the Influence and Echo views to see who read and repeated whom. Then we fork at Debater 0's first message, replace only its prompt, and continue the run with CrewAI: the team's final answer changes from (B) to (A). After that we open a saved MAST report from another debate in the same benchmark, show how plugins are written, flag moments with comments, and watch a run stream in live. It's a tour of the tool, not a benchmark.
Reading, forking, and analysis all work from
the same ordered event log.
Messages, tool calls, memories, and interventions share one timeline. Click any event to see what that agent could read at that moment.
Exploring traces →Change a goal or an agent's prompt and continue the run in CrewAI from that point. The original branch stays as it was, so you can compare the two.
How branching works →Compare branches side by side, read saved MAST failure reports, or write a plugin that adds its own API and view to the explorer.
Writing a plugin →Most evals grade each agent's final answer. We wanted to see the conversation in between.
Who read what? Who started repeating whom? Where did a bad idea first show up? Swarm Lens doesn't answer those for you. It gives you the trace, where each message came from, and a way to rerun the experiment with one thing changed.
Methods and limitations →An LLM judge labels a saved trace with the MAST failure taxonomy. Each judgment links to the messages it cites, so you can check its reasoning.
Cemri et al. (2025), arXiv:2503.13657 ↗The same task run twice, with and without an attacking agent. Whether the attack worked and whether behavior spread are separate questions.
An et al. (2026), arXiv:2604.07775 ↗Cascade detection and attribution. Still experimental, and as far as we know the first public implementation of the paper.
Venkatesh et al. (2026), arXiv:2605.19240 ↗You need Python 3.11+ and Git. Replaying a trace
doesn't call a model, so no API key yet.
git clone https://github.com/agencyenterprise/swarm_lens.git
cd swarm_lens
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -e '.[web]'
swarm-lens --data data --port 8765Open localhost:8765, choose ⋯ → Import trace, and paste a transcript.
Want the medical debate from the demo, or to record a live CrewAI run? The docs have a recipe for each.
Read the quickstart