AgentDrift
Detect when your AI agents get dumber.
Open-source quality drift monitoring for AI agents. Track agent outputs over time, detect quality degradation, and get alerts before your agents go off the rails.
Live Demo | API Docs | Roadmap | Contributing
The Problem
AI agents degrade over time. Context pollution, error accumulation, prompt drift, and model updates silently erode output quality. By the time you notice, your users already have.
Quick Start
pip install agentdrift
from agentdrift import track_agent
@track_agent("my-agent")
def my_agent(query: str) -> str:
return llm.call(query)
Check drift status:
agentdrift status
┌──────────────────────────────────────┐
│ Agent Drift Status │
├──────────┬──────────┬───────┬───────┤
│ Agent │ Status │ Score │ Change│
├──────────┼──────────┼───────┼───────┤
│ my-agent │ STABLE │ 0.847 │ +2.1% │
│ qa-bot │ DRIFTING │ 0.612 │-18.3% │
└──────────┴──────────┴───────┴───────┘
How It Works
Agent Call → Log Trace → Score Quality → Detect Drift → Alert
↓
Dashboard / OTel Export
- Track — Log every agent input/output with the SDK
- Score — LLM-as-Judge rates output quality (0.0 - 1.0)
- Compare — Recent scores vs baseline period
- Alert — Notify when quality drops below threshold
Key Features
- 1-line integration —
@track_agentdecorator or manualtracker.log() - Web dashboard — Real-time quality trends, trace trees, golden tests management
- Golden tests — Regression testing from your best agent outputs
- Alert webhooks — Slack, Discord, Email on drift detection
- Multi-agent tracing — Parent/child trace relationships
- OpenTelemetry export — Jaeger, Zipkin, any OTLP backend
- REST API — Language-agnostic trace ingestion (
POST /api/traces) - TypeScript SDK —
@agentdrift/sdkfor Node.js agents - PostgreSQL — Production-ready storage (
pip install agentdrift[postgres]) - Docker + Helm — Kubernetes deployment ready
Usage
Web Dashboard
pip install agentdrift[dashboard]
agentdrift serve # API server on :8888
cd web && npm run dev # Dashboard on :3000
Manual Logging
from agentdrift import AgentTracker
tracker = AgentTracker("my-agent")
tracker.log(input=query, output=result, latency_ms=1200)
Multi-Agent Tracing
orchestrator = AgentTracker("orchestrator")
worker = AgentTracker("worker")
parent = orchestrator.log(input="plan task", output="delegating")
worker.log(input="subtask", output="result", parent_trace_id=parent.trace_id)
HTTP API
curl -X POST http://localhost:8888/api/traces \
-H "Content-Type: application/json" \
-d '{"agent_name": "my-agent", "input": "hello", "output": "world"}'
TypeScript SDK
import { AgentDriftClient, AgentTracker } from "@agentdrift/sdk";
const client = new AgentDriftClient({ baseUrl: "http://localhost:8888" });
const tracker = new AgentTracker("my-agent", client);
await tracker.log({ input: "hello", output: "world" });
Golden Tests
agentdrift test init my-agent --count 10 --min-score 0.8
agentdrift test run my-agent --module my_app:my_agent --threshold 0.7
Configuration
agentdrift init --config # Generate agentdrift.toml
See examples/ for more integration patterns.
Deployment
# Docker
docker compose up
# Kubernetes
helm install agentdrift chart/agentdrift/
# Vercel (dashboard only)
cd web && vercel
Documentation
| Resource | Description |
|---|---|
| API Reference | REST API endpoints |
| Roadmap | Completed features & future plans |
| Contributing | Development setup & guidelines |
| Changelog | Release notes |
License
MIT
Release files for agentdrift 0.4.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| agentdrift-0.4.3.tar.gz | 284.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| agentdrift-0.4.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 326.5 kB
Release files / agentdrift-0.4.3.tar.gz
| Download URL | agentdrift-0.4.3.tar.gz |
|---|---|
| Size | 284.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
513ed57b7535e7516da06f3198494a24c1cc007ef1cea067367829cc3ffe55bf
|
|
BLAKE2b-256 checksum How to use checksums |
f9a6cabc16fb35e9fd357a8369d65653b6999915e5fa1967a3f46ad011777a05
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Feb 12, 2026.
Transparency logRelease files / agentdrift-0.4.3-py3-none-any.whl
| Download URL | agentdrift-0.4.3-py3-none-any.whl |
|---|---|
| Size | 42.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
defe3658eb0c6211f610aecc404da804aee20b97705ff72e645ffdc14fac9e9a
|
|
BLAKE2b-256 checksum How to use checksums |
79868d480088f5230efbe051d39f67b9a174a26a1b483262ffe45db0f72f9807
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Feb 12, 2026.
Transparency log