closed beta · LangGraph, CrewAI & Claude Code supported · Book a Demo →
Home How It Works Frameworks Reports Claude Code FinOps FAQ GitHub Discord

Silent loops, runaway costs, stuck tools, subagent explosions — caught the moment they form in your agentic workflows, before they hit your bill.

LangGraph · one line
# wire it into LangGraph
from agentsonar import monitor

graph = monitor(your_graph.compile())
01

Your trace tool says
everything passed.
Your bill says otherwise.

Standard observability watches individual spans. It doesn't model the shape of traffic between agents. A loop burning 14,820 tokens looks like 73 clean spans.

what standard tracing sees
 session_start          250 tok
   researcher.run       210 tok
     retrieve_sources   150 tok
   writer.run           220 tok
     draft              150 tok
   reviewer.run         195 tok
   researcher.run       210 tok
  [...repeats 14 more times...]

Status: All checks passed.
0 errors · 73 spans · 14,820 tokens
// what agentSonar sees
researcher writer reviewer
🚨 CRITICAL  Silent loop between agents

  Loop:       researcher → writer → reviewer → researcher
  Rotations:  0
  First seen: 2026-04-19 14:32:01 UTC
  Severity:   CRITICAL
  Suggested:  Enable Prevent Mode → auto-stop at rotation 5

Same session. 73 spans. Every individual span succeeded.
agentSonar watches the shape — and sees the loop that's been running since 14:32:01.

02

The failures that
don't throw errors.

Eight failure classes shipped. Each one silent — no exceptions thrown, no logs, just tokens burning.

Silent loops

Your agents keep passing work to each other in a circle and never finish. No error is thrown — it just burns tokens forever.

Repeated agent calls

One agent calls another with the exact same request over and over. Gets the same answer every time, makes no progress.

Traffic spikes

A sudden burst of agent-to-agent calls, way outside the normal rate. Usually means something went wrong with orchestration logic.

Redundant work

The same tool is called with the same inputs, producing the same output, again and again. Nothing new is learned, but tokens keep burning.

Stuck tool calls

An agent calls a tool and it never responds. The agent just waits — blocking the whole pipeline while time and tokens drain.

Subagent explosion

An orchestrator spins up far more subagents than expected. Each one runs, your bill grows — often silently, since each agent looks healthy on its own.

Failed-tool retry storms

A tool fails, so the agent retries it. Then retries it again. And again. No backoff, no fallback — just hammering the same broken endpoint.

Context-window cliff

The session's context is nearly full. Once it hits the limit, quality degrades sharply or the run fails entirely — agentSonar catches it before you get there.

coming soon

Deadlocks

Agent A waits on B. B waits on A. Neither moves. Pipeline hangs silently.

coming soon

Cost runaway

Live projection mid-run: "at this rate, this run will cost $X." Catch it early.

coming soon

Groundless response

Agent answers without consulting any tool. No grounding, no retrieval — just guessing.

03

Detect while it runs.
Prevent before it burns.

Detect Mode streams alerts to stderr as the loop forms. Enable Prevent Mode and agentSonar raises a typed PreventError before the next LLM call.

stderr · live during the run
[SONAR 14:32:01] session started (id: 43b4782630244f8d)
[SONAR 14:32:02] delegation: researcher → writer (#1)
[SONAR 14:32:02] delegation: writer → reviewer (#2)
[SONAR 14:32:03] delegation: reviewer → researcher (#3)
[SONAR 14:32:03] cycle found · 1 rotation
[SONAR 14:32:09] ⚠  WARNING  cycle · 5 rotations
[SONAR 14:32:18] 🚨 CRITICAL cycle · 15 rotations
[SONAR 14:32:18] PreventError raised · run halted · ~11,400 tokens saved

agentSonar writes a standalone HTML report on every run — no external CSS, no JS, no network calls. Email it, attach to a ticket, or commit it to the repo.

What a loop looks like
on your invoice.

A real incident: two agents stuck in a cycle for 11 days. No alert fired. Weekly costs climbed from $127 to $18,400 before anyone noticed.

$0K
API bill from one real incident,
undetected for 11 days
0×
Cost increase — $127/week
to $18,400/week
0
Errors thrown.
Every span returned 200 OK.
0
Rotations before AgentSonar
fires its first alert (default)

Source: public incident report → · agentSonar would have caught it on rotation 5.

04

See it work before
you wire it in.

Bundled hello-world — three agents loop forever in a silent failure. AgentSonar catches it, stops the run, and writes an HTML report. No API keys. No config. No remote service.

Python
pip install agentsonar

agentsonar demo

# if agentsonar isn't on PATH:
python -m agentsonar demo
Node / TypeScript
npm install agentsonar

npx agentsonar demo

Reports land at ./agentsonar_logs/run-<slug>/report.html

Every run writes four output files — alerts log, JSON report, JSONL timeline, and a standalone HTML report. See real output →

05

Two lines.
Any framework.

Apache-2.0 licensed. Closed beta, expanding fast.

# install
pip install agentsonar

# wire in
from agentsonar import monitor, AgentSonarConfig

config = AgentSonarConfig(prevent=True)
monitored = monitor(your_system, config=config)
# install
pip install agentsonar[langgraph]

# one line wraps your compiled graph
from agentsonar import monitor

graph = monitor(your_graph.compile())
# install
pip install agentsonar[crewai]

# wrap your crew
from agentsonar import monitor

crew = monitor(your_crew)
result = crew.kickoff()
# install once — wires .claude/settings.json automatically
pip install agentsonar
agentsonar install-claude-hooks

# start a fresh Claude Code session — agentSonar is live
# every tool call and subagent is watched
# no code changes needed in your project
// install
npm install agentsonar

// wire in
import { monitor } from 'agentsonar'

const monitored = monitor(yourAgentSystem)

Python (any)

pip install agentsonar

LangGraph

pip install agentsonar[langgraph]

CrewAI

pip install agentsonar[crewai]

Claude Code

agentsonar install-claude-hooks

Node / TS

npm install agentsonar