Find where agent
failures begin

Follow changes across agents, handoffs, and routing to the most likely source.

Overview

From observability to findings.

AgentPulse console — OverviewAgentPulse console — Run HistoryAgentPulse console — Drift InvestigationAgentPulse console — Metrics Explorer
Investigation

From symptom to source.

The failing agent may only be the symptom. AgentPulse follows the evidence across agents, handoffs, and changes to find where the failure actually began.

The investigation plays here as it enters view…
Researcher
success98%
latency2.1s
inputstable
Analyst
success97%
latency3.4s
inputstable
Root cause
Writer
inputstable
output styledrifted
prompt + modelchanged @ run 18
payload length +180% · structure drifted
Symptom
Critic
success92% → 22%
retries×3
tokens / turn+45%
$ git clone https://github.com/prove-ai/agentpulse

# your entrypoint — before any agent imports
from sdk import instrument
instrument(task_type='my-system', prompt_version=1,
           db_name='my-system')
Integration

Instrument once.

One call adds OpenTelemetry-native tracing across your agents, tools, and handoffs, without changing their implementation.

Works withLangChainLangGraphOpenAI SDKAnthropic SDK
Claude Code

Debug agent behavior from Claude Code.

Ask what changed, trace the failure across agents, and get the next debugging steps without leaving your development workflow.

Claude Code
you
morning — anything break overnight?
get_todays_findingAgentPulse MCP
One finding, flagged around run 110 in demo:
criticsuccess rate went 92% → 22% and is still low as of the latest run. Retries are up 3×, tokens/turn +45% — it’s retrying and rambling, which usually means it can’t parse what it’s given.
critic’s own config is unchanged — same prompt hash and model since v1. What did change is the payload it receives from writer, starting at the same run. So critic is probably downstream damage, not the source.
you
what changed in writer?
get_version_comparisonAgentPulse MCP
Two things, both at run 110: the writer prompt hash changed (270339fa78f0f7) and the model went from gpt-4o-mini to gpt-4-turbo.
After the change, writer responses run ~180% longer and drop the section structure critic expects — earlier payloads were structured summaries, newer ones read as prose. writer’s input from analyst is unchanged (same structure, same length distribution), so this isn’t upstream noise.
you
ok, what do I look at first?
get_next_check_stepsAgentPulse MCP
I’d go in this order:
  1. Diff the two writer prompts — check whether the formatting constraints got dropped in the rewrite.
  2. Pull two or three writer→critic handoffs from each side of run 110 and compare payload structure.
  3. Replay a few pre-change inputs through both writer versions — if the old one still produces structured output, that confirms the prompt/model change as the cause.
If restoring the format fixes critic, make the fix in writer. Patching critic to accept prose would just hide the regression.
Get started

Try it on a real production trace

Bring a failed run or connect AgentPulse to your stack. We'll walk through the investigation with you in 30 minutes.