When your agent fails, this tells you exactly why.
Project description
AgentAutopsy
When your agent fails, this tells you exactly why.
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.
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.
Install
pip install agentautopsy
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
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file agentautopsy-1.6.0.tar.gz.
File metadata
- Download URL: agentautopsy-1.6.0.tar.gz
- Upload date:
- Size: 6.4 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
227ec52d7b10545ca787ee674596ed4868e0eec1f80d89dca38d9db262ddc245
|
|
| MD5 |
0f655d8ae8ca36790570418dbe39f5de
|
|
| BLAKE2b-256 |
d73a5166d59c4e90f67988532337eacfd7ee6d2353229e74ae8cf1279e97d9fb
|
File details
Details for the file agentautopsy-1.6.0-py3-none-any.whl.
File metadata
- Download URL: agentautopsy-1.6.0-py3-none-any.whl
- Upload date:
- Size: 47.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a1d9adebf6264ba2ac37a66e6ced4b91b191f6085ed375a9e1d993e83e25cb7d
|
|
| MD5 |
b8e15e6a7a667a0084458ddb6740e991
|
|
| BLAKE2b-256 |
8172f1ccbb2a4ac8963dfa65b20a81231a68e1a8319d90408fba72ab037f086b
|