Skip to main content

Post-mortem debugger for AI agents

Project description

AgentAutopsy

AgentAutopsy CI PyPI version PyPI downloads GitHub stars License: MIT Python 3.8+

When your agent fails, this tells you exactly why.

Install

pip install agentautopsy

Features

  • LLM interceptor — Monkey-patches OpenAI and Anthropic calls; records every prompt, response, and error
  • HTTP interceptor — Captures outbound HTTP requests, responses, and connection failures (http_error events)
  • Zero-config watch — One line (import agentautopsy.auto or agentautopsy.watch()) instruments your existing agent code
  • MCP proxy tracing — Natively intercepts and parses JSON-RPC streams between Claude Desktop and your MCP servers
  • SQLite trace store — Persists full decision traces locally in agentautopsy.db
  • Cassette recording — Serializes LLM responses for offline replay
  • Failure detection — Finds the exact failing step in a run
  • Root-cause analysis — AI-powered diagnosis with concrete fix suggestions (Anthropic)
  • Fix cache — Remembers verified fixes so repeat failures resolve instantly
  • Replay — Step through failed runs in the CLI and web UI (agentautopsy replay <run_id>)
  • Web UI — Local dashboard with event timeline, stats, and debug chat (agentautopsy ui)
  • Auto-fix — Applies patch suggestions to your codebase (agentautopsy fix <run_id>)
  • GitHub PR — Opens a pull request with the proposed fix (agentautopsy fix <run_id> --create-pr)
  • Slack alerts — Notifies your channel when a run fails (AGENTAUTOPSY_SLACK_WEBHOOK)
  • Prompt diffing — Compares prompts in the current run vs. the previous run
  • Divergence detection — Flags when a run behaves differently from past successful runs
  • Multi-agent graph — Visualizes parent/child runs and agent chains (agentautopsy agents)
  • Share/export — Export a run trace to JSON (agentautopsy share <run_id>)
  • LangChain supportget_callback_handler() for LangChain callbacks
  • LangGraph supportget_langgraph_handler() for node, edge, and state tracing
  • CrewAI supportget_crewai_handler() for task, tool, and handoff tracing
  • GitHub Actions — Posts root cause + fix on PR test failures

What it does

Before (broken agent)

Traceback (most recent call last):
  File "agent.py", line 42, in run
    response = client.chat.completions.create(...)
openai.APIConnectionError: Connection error.

No context. No failing step. No fix.

After (with AgentAutopsy)

POST /v1/chat/completions
POST /v1/chat/completions
ERROR: APIConnectionError
Root cause: OpenAI connection failed
Run status: failed

FAILURE NODE: HTTP call to OpenAI chat completions
ROOT CAUSE: Network connection to api.openai.com failed after retries
FIX: Add timeout=60, max_retries=3, and verify OPENAI_API_KEY / network access

AgentAutopsy captures the full trace, pinpoints the failure, explains why it happened, and suggests a verified fix.

Why this exists

Every time an AI agent fails, you get a useless stack trace. No context. No reason. No fix. AgentAutopsy gives you the exact failure step, root cause, and a verified fix — automatically.

demo

Zero Config Works with

CLI

agentautopsy runs # see all agent runs agentautopsy replay # replay any failure agentautopsy mcp # transparently proxy and trace an MCP server via stdio agentautopsy stats # fix cache stats

GitHub Actions

Add AgentAutopsy to your test workflow so failed Python tests get an automatic root-cause analysis and a suggested fix posted on the pull request.

Create or update .github/workflows/test.yml:

name: Tests

on:
  pull_request:
  push:
    branches: [main]

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - uses: actions/setup-python@v5
        with:
          python-version: "3.10"

      - name: Install dependencies
        run: pip install -r requirements.txt

      - name: AgentAutopsy
        uses: Abhisekhpatel/AgentAutopsy@v1
        with:
          anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
          github_token: ${{ secrets.GITHUB_TOKEN }}
          test_command: pytest

Inputs

Input Required Default Description
anthropic_api_key yes Anthropic API key for analysis
github_token yes Token with pull-requests: write (use secrets.GITHUB_TOKEN)
test_command no pytest Shell command run before analysis

On test failure the action runs agentautopsy analyze (via the bundled entrypoint), then posts root cause and fix as a PR comment. Store ANTHROPIC_API_KEY in repository secrets.

Examples

# Basic usage
import agentautopsy
agentautopsy.watch()

# LangChain
from agentautopsy import get_callback_handler
handler = get_callback_handler()
agent.run(input, config={"callbacks": [handler]})

# LangGraph
from agentautopsy import get_langgraph_handler
handler = get_langgraph_handler()
graph.invoke(input, config={"callbacks": [handler]})

# CrewAI
from agentautopsy import get_crewai_handler
handler = get_crewai_handler()
crew = Crew(agents=[...], callbacks=[handler])
# Slack alerts
export AGENTAUTOPSY_SLACK_WEBHOOK=https://hooks.slack.com/...

# Web UI
agentautopsy ui

# CLI
agentautopsy runs
agentautopsy replay <run_id>
agentautopsy stats

LangGraph

import agentautopsy
from agentautopsy import get_langgraph_handler

agentautopsy.watch()
handler = get_langgraph_handler()

# Pass the handler into LangGraph invoke config
result = graph.invoke(
    {"messages": [("user", "research competitors")]},
    config={"callbacks": [handler]},
)

The handler records node start/end, edge traversals, state updates between nodes, tool and LLM activity, and any graph errors in agentautopsy.db.

CrewAI

import agentautopsy
from agentautopsy import get_crewai_handler
from crewai import Crew

agentautopsy.watch()
handler = get_crewai_handler()

crew = Crew(agents=[researcher, writer], tasks=[...], callbacks=[handler])
crew.kickoff()

# Or use step_callback on Crew / Agent (supported by current CrewAI releases)
crew = Crew(agents=[...], step_callback=handler.step_callback)

The handler records task start/end, tool usage, agent handoffs, final crew output, and errors.

Usage

import agentautopsy.auto
# your existing agent code here — nothing else changes

AgentAutopsy automatically intercepts every LLM call, detects failures, finds root cause, outputs a verified fix, and caches it for next time.

Why AgentAutopsy vs LangSmith / Helicone?

Feature AgentAutopsy LangSmith Helicone
Works offline
Zero config
Replay failed runs partial
AI debug assistant
Prompt diffing partial
Divergence detection
Free and open source partial
No cloud required

Setup

Windows: set ANTHROPIC_API_KEY=your-key-here Mac/Linux: export ANTHROPIC_API_KEY=your-key-here Get your free key at console.anthropic.com

Set AGENTAUTOPSY_SLACK_WEBHOOK=your-webhook-url and AgentAutopsy will automatically alert your Slack channel when any agent fails.

Quick start

pip install agentautopsy

Create test_agent.py and paste this:

import agentautopsy.auto

Run: python test_agent.py

Trace Model Context Protocol (MCP) Servers

If you are building an MCP server for Claude Desktop, you can trace all tools being called by running your server through the agentautopsy proxy:

agentautopsy mcp python my_mcp_server.py

The Web UI (agentautopsy ui) will elegantly parse and highlight all mcp_initialize, mcp_tool_call and mcp_response JSON payloads in your trace timeline.

Works with

OpenAI, Anthropic, LangChain, LangGraph, CrewAI, any framework using openai or anthropic

Requirements

Python 3.8+, ANTHROPIC_API_KEY (for AI root-cause analysis)

License

MIT

Roadmap

  • VS Code extension
  • GitHub Actions integration
  • Multi-agent tracing
  • Auto-fix applier
  • LangChain support
  • LangGraph support
  • CrewAI support
  • Slack alerts
  • Web UI
  • Prompt diffing
  • Divergence detection
  • MCP Proxy Interceptor

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

agentautopsy-1.8.0.tar.gz (63.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

agentautopsy-1.8.0-py3-none-any.whl (64.9 kB view details)

Uploaded Python 3

File details

Details for the file agentautopsy-1.8.0.tar.gz.

File metadata

  • Download URL: agentautopsy-1.8.0.tar.gz
  • Upload date:
  • Size: 63.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for agentautopsy-1.8.0.tar.gz
Algorithm Hash digest
SHA256 5caf205544e3ff2e5b97702f17bdbac3277dafc64ee3646f4eb7958324c7e542
MD5 78566ad4e412cab21f21a86c507983c0
BLAKE2b-256 e9d25cd8a3346f0624442bcf8dc5e84d30c5e84e1ea307a83dde9a8464fe0db2

See more details on using hashes here.

File details

Details for the file agentautopsy-1.8.0-py3-none-any.whl.

File metadata

  • Download URL: agentautopsy-1.8.0-py3-none-any.whl
  • Upload date:
  • Size: 64.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for agentautopsy-1.8.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e6aee5c20c23402a667873cd4ef927d102046695e2144cef22737cf08f2e5bf2
MD5 7079eb205f37fd8fa81e8ecf9f61b495
BLAKE2b-256 24dd371c4e6281d26214b8ab8fd206ce30f7d0486af6116d5aa53579c3d28b8d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page