Sentry for AI Agents โ one-line observability with local SQLite persistence
Project description
๐งฌ AgentDNA โ Sentry for AI Agents
One-line observability for any Python agent. No framework required. No API key. No network calls.
pip install agentdna
Quick Start
from agentdna import observe, get_stats
@observe
def my_agent(prompt):
# your existing agent code
return llm.call(prompt)
my_agent("hello world")
# View stats (persists across restarts)
print(get_stats())
That's it. One decorator. Full observability.
What You Get
๐ Stats: my_agent
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Health: โ
Healthy
Total calls: 42
Success rate: 97.6%
Failed calls: 1
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Avg latency: 1250.5 ms
P50 latency: 980.0 ms
P95 latency: 2100.0 ms
P99 latency: 3500.0 ms
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Errors:
Timeout: 1
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Features
- ๐ Call tracking โ total calls, success/failure rates
- โฑ๏ธ Latency โ avg, p50, p95, p99 percentiles
- โ Error tracking โ error types and frequency
- ๐พ SQLite persistence โ data survives restarts
- ๐ 100% local โ no network calls, no API key
- ๐ Sync & async โ works with both
- ๐ฅ๏ธ CLI included โ
agentdna stats
CLI
agentdna stats # overview of all observed functions
agentdna stats my_agent # detailed view
agentdna stats --export json # export as JSON
agentdna stats --export csv # export as CSV
agentdna stats --reset # clear all data
Usage
Basic
from agentdna import observe
@observe
def my_agent(prompt):
return llm.call(prompt)
With Options
@observe(name="transcriber", tags={"version": "2.0", "model": "whisper"})
def transcribe(audio_path):
return whisper.transcribe(audio_path)
Async Support
@observe
async def my_async_agent(prompt):
result = await llm.acall(prompt)
return result
Get Stats Programmatically
from agentdna import get_stats
stats = get_stats("my_agent")
print(f"Success rate: {stats['success_rate']:.1%}")
print(f"P95 latency: {stats['p95_latency_ms']:.0f}ms")
# All functions
all_stats = get_stats()
for name, s in all_stats.items():
print(f"{name}: {s['total_calls']} calls")
Export Stats
from agentdna import export_stats
json_str = export_stats(format="json")
csv_str = export_stats(format="csv")
How It Works
- Decorator wraps your function
- Each call logs: timestamp, success/failure, latency, input/output sizes, errors
- Data batches to
~/.agentdna/observe.db(SQLite, WAL mode) - Read stats anytime via
get_stats()oragentdna stats
No dependencies beyond Python stdlib. click is only needed for the CLI.
Data Location
Default: ~/.agentdna/observe.db
Custom path:
import os
os.environ["AGENTDNA_DB_PATH"] = "/path/to/my/observe.db"
Why AgentDNA?
| Without AgentDNA | With AgentDNA |
|---|---|
print("done!") |
Track every call with latency + errors |
| Hope nothing breaks | Know exactly when and what breaks |
| Debug blind | P95 latency, error breakdown, trends |
| Lose data on restart | SQLite persistence |
Installation
pip install agentdna
Optional features:
pip install agentdna[discovery] # agent discovery (httpx, PyYAML)
pip install agentdna[server] # run registry server (FastAPI)
License
Apache 2.0
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 agentdna_sdk-0.2.1.tar.gz.
File metadata
- Download URL: agentdna_sdk-0.2.1.tar.gz
- Upload date:
- Size: 26.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2b7489fccd45b352f038fe3a5896998ba4e16cba09dd118ff9aa510b07a5eb2e
|
|
| MD5 |
fe26fd3fc25481cd3057fabb3bf1f594
|
|
| BLAKE2b-256 |
2d5b1b952eebadf79a30322352308763f13dbef2434f51ea0a4b78da789fe16d
|
File details
Details for the file agentdna_sdk-0.2.1-py3-none-any.whl.
File metadata
- Download URL: agentdna_sdk-0.2.1-py3-none-any.whl
- Upload date:
- Size: 34.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f9208ca111cf5c6baf93fbafdeb0687774b4a032acf668d7ab8793d202c16fcf
|
|
| MD5 |
e330bf4409a8c9201b64537a432808b7
|
|
| BLAKE2b-256 |
a59c5d53a0277d47a6926ee4c5071924b2843a1bcce8c71535991805fcdb73bd
|