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

  • Interceptor — Captures OpenAI, Anthropic, and HTTP traffic automatically with zero code changes (agentautopsy.watch())
  • Web UI — Browse runs, inspect events, and debug failures in a local dashboard (agentautopsy ui)
  • Auto-fix — Generates and applies patch suggestions for failed runs (agentautopsy fix <run_id>)
  • GitHub PR — Opens a pull request with the proposed fix (agentautopsy fix <run_id> --create-pr)
  • Slack alerts — Posts failure notifications to your channel when a run fails
  • Prompt diffing — Compares prompts in the current run against the previous run
  • Replay — Step through failed runs event-by-event in the UI and CLI (agentautopsy replay <run_id>)
  • Multi-agent graph — Visualizes agent handoffs and parent/child run chains (agentautopsy agents)

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

Python License Zero Config Works with

CLI

agentautopsy runs # see all agent runs agentautopsy replay # replay any failure 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.11"

      - 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
agentautopsy.watch()
# 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
agentautopsy.watch()

Run: python test_agent.py

Works with

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

Requirements

Python 3.11+, ANTHROPIC_API_KEY

License

Apache 2.0

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

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.7.0.tar.gz (49.6 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.7.0-py3-none-any.whl (52.6 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for agentautopsy-1.7.0.tar.gz
Algorithm Hash digest
SHA256 3b2e6696da80cb78ace4496f0969f2fe006525bf7cad03c9c3094d1f4f50d2f1
MD5 401f61bf7966c8a97654c321ae38aa7a
BLAKE2b-256 a06116f40ba38e4c8afbfa91eacd1d68b08a720cb7b024650f8098f15da2d6c3

See more details on using hashes here.

File details

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

File metadata

  • Download URL: agentautopsy-1.7.0-py3-none-any.whl
  • Upload date:
  • Size: 52.6 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.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 586c2ff4c215523ceac23cd25ae87883fb8744e471f90424a4483c1ce0f3c666
MD5 4bf5857ee47b4984e8238b61c76c5afe
BLAKE2b-256 2b055d46c4ccfb161018e50a176e7e98537570edd4e6c701565a3b1f79bc3f17

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