Skip to main content

🔍 AgentTrace

Zero-config visual debugging and auto-evaluation for LLM agents.

License: MIT Python 3.9+ OpenTelemetry

One import. Zero config. Instant visual timeline of every LLM call, tool execution, and crash your agent makes.


The Problem

You build an AI agent. It calls an LLM, uses tools, chains prompts together. Then it hallucinates, loops infinitely, or silently drops context — and you have no idea where it went wrong.

Every other observability tool requires accounts, API keys, cloud dashboards, and framework-specific setup. You just want to see what happened.

The Solution

import agenttrace.auto  # ← That's it. One line.

# ... your existing agent code runs normally ...
# When it finishes, a local dashboard opens automatically at localhost:8000

AgentTrace intercepts every LLM call, tool execution, and unhandled crash — then serves a beautiful local timeline you can replay step-by-step.


✨ Features

🪄 True Zero-Config

Add import agenttrace.auto to the top of your script. No API keys, no accounts, no cloud. Works with OpenAI, Groq, LangChain, and CrewAI out of the box.

🧠 Smart Auto-Judge

AgentTrace doesn't just show you what happened — it tells you what went wrong:

Evaluation How It Works Cost
🔁 Loop Detection Flags 3+ identical consecutive tool calls Free (pure Python)
💰 Cost Anomaly Flags steps using >2x average tokens Free (pure Python)
⏱️ Latency Regression Flags steps >3x slower than average Free (pure Python)
🔧 Tool Misuse Detects wrong arguments or failed tool calls LLM-powered (optional)
📝 Instruction Drift Detects when LLM ignores the system prompt LLM-powered (optional)

LLM-powered checks require a free Groq API key. Install with pip install "agenttrace-ai[judge]".

▶️ Trace Replay

Press Play and watch your agent's execution animate step-by-step — like a video recording of its thought process. Drag the scrubber to jump to any moment. Flagged steps pulse red.

💥 Crash Detection

If your agent throws an unhandled exception, AgentTrace catches it and logs the full traceback as a trace step — so you never lose debugging data.

🔌 Framework Support

Framework Status Setup Required
OpenAI SDK ✅ Native pip install "agenttrace-ai[openai]"
Groq SDK ✅ Native pip install "agenttrace-ai[openai]"
LangChain ✅ Adapter None (auto-detected)
CrewAI ✅ Adapter None (auto-detected)

🚀 Quickstart

Install

# Core (works with LangChain out of the box)
pip install agenttrace-ai

# With OpenAI/Groq support
pip install "agenttrace-ai[openai]"

# With everything (OpenAI + Auto-Judge + LangChain)
pip install "agenttrace-ai[all]"

Basic Usage (OpenAI / Groq)

import agenttrace.auto  # ← Add this one line
import openai

client = openai.OpenAI()
response = client.chat.completions.create(
    model="gpt-4",
    messages=[{"role": "user", "content": "What is the capital of France?"}]
)
print(response.choices[0].message.content)
# Dashboard opens automatically at http://localhost:8000 when your script finishes

LangChain (Zero-Config)

import agenttrace.auto  # ← Same one line
from langchain_openai import ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate

llm = ChatOpenAI(model="gpt-4")
prompt = ChatPromptTemplate.from_messages([
    ("system", "You are a helpful assistant."),
    ("human", "{input}")
])

chain = prompt | llm
result = chain.invoke({"input": "Explain quantum computing"})
# All LLM calls automatically appear in the AgentTrace dashboard

Custom Tool Tracking

from agenttrace import track_tool, track_agent

@track_tool
def search_database(query: str) -> str:
    return db.search(query)

@track_agent
def my_agent(task: str) -> str:
    data = search_database(task)
    return llm.complete(f"Answer based on: {data}")

🏗️ Architecture

Your Agent Script
       │
       ▼
  import agenttrace.auto
       │
       ├─── OpenTelemetry TracerProvider
       │         │
       │         ├── OpenAI Instrumentor (optional)
       │         ├── LangChain Callback Adapter
       │         └── CrewAI Callback Adapter
       │         │
       │         ▼
       │    AgentTraceExporter → SQLite (.agenttrace.db)
       │
       ├─── sys.excepthook → Crash capture
       │
       └─── atexit → FastAPI Server (localhost:8000)
                         │
                         ├── /api/traces
                         ├── /api/trace/{id}
                         └── React Dashboard (Vite + Tailwind)

Key Design Decisions

  • OpenTelemetry for instrumentation (industry standard, not fragile monkey-patching)
  • SQLite with WAL mode for zero-config persistence that survives crashes
  • contextvars for thread-safe multi-agent isolation
  • Pre-compiled React UI bundled inside the Python package

📁 Project Structure

agenttrace/
├── auto.py              # Zero-config entry point (import this)
├── exporter.py          # OTel SpanExporter → SQLite
├── judge.py             # Smart Auto-Judge engine (5 eval types)
├── models.py            # Pydantic data models
├── storage.py           # SQLite with WAL mode
├── server.py            # FastAPI dashboard server
├── decorators.py        # @track_tool, @track_agent
├── utils.py             # Payload truncation
├── integrations/
│   ├── langchain.py     # LangChain callback adapter
│   └── crewai.py        # CrewAI callback adapter
└── static/              # Pre-compiled React dashboard

⚙️ Configuration

Environment Variable Default Description
GROQ_API_KEY Required for LLM-powered judge evaluations
AGENTTRACE_DB_PATH .agenttrace.db Custom database file path
AGENTTRACE_FULL_PAYLOAD 0 Set to 1 to disable payload truncation
AGENTTRACE_MAX_CONTENT 500 Max characters before truncation

🤝 Contributing

We welcome contributions! Here's how to set up the dev environment:

git clone https://github.com/CURSED-ME/AgentTrace.git
cd AgentTrace
pip install -e ".[all]"

# Frontend development
cd ui
npm install
npm run dev    # Dev server with hot reload
npm run build  # Compile to agenttrace/static/

See .env.example for required environment variables.


📄 License

MIT License — see LICENSE for details.


Built with ❤️ for the agent builder community.

If AgentTrace helped you debug an agent, give us a ⭐ on GitHub!

Release files for agenttrace-ai 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for agenttrace-ai 0.1.1
File Size Uploaded
agenttrace_ai-0.1.1.tar.gz 75.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for agenttrace-ai 0.1.1
File Interpreter ABI Platform
agenttrace_ai-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 151.5 kB

Release files / agenttrace_ai-0.1.1.tar.gz

Download URL agenttrace_ai-0.1.1.tar.gz
Size 75.7 kB
Tags Source
SHA-256 checksum
How to use checksums
251407a8fb50c87ad9a6cc506017737f7b09a6385e75c0a8737805a314ccd0d3
BLAKE2b-256 checksum
How to use checksums
fc2b523a863844694b40ef62d6cac2957f7a79d55f4ccde7944ddee4357ece3f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / agenttrace_ai-0.1.1-py3-none-any.whl

Download URL agenttrace_ai-0.1.1-py3-none-any.whl
Size 75.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d27627e5abf2aca96c5e6a8ff07856bb858c04845df7cfcb740e8a70c0be7d42
BLAKE2b-256 checksum
How to use checksums
ec659dabb81a8dda4227256f9458ab3a4b3cad3381c4a759cd376a237ab5b7ea
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page