The Reliability, Safety, and Observability Layer for AI Agents
Project description
AgentWatch
Your AI agent is lying to you.
AgentWatch catches it — before it deletes your database.
pip install agentwatch-ai
agentwatch watch "your agent command"
One command. Every failure caught. Before it runs.
Quick Start · How It Works · Supported Frameworks · Discord · Contribute
The Problem Nobody Is Solving
Agent runs.
Output looks correct.
Database is corrupted.
You find out 3 hours later when a customer complains.
1 in 20 AI agent requests fail silently in production.
Current observability tools — Langfuse, Phoenix, Datadog — tell you what happened after it happened. By then the damage is done.
The real problem: an agent that confidently fails is indistinguishable from an agent that correctly succeeds.
Unless you have a layer watching the reasoning, not just the output.
That layer didn't exist.
Until now.
How It Works
AgentWatch sits between your agent and the world.
Your Agent
│
▼
┌─────────────────────────────────────┐
│ AgentWatch │
│ │
│ 1. Captures every reasoning step │
│ 2. Independent model scores it │
│ 3. Blocks dangerous actions │
│ 4. Fires alert if confidence drops │
│ 5. Checkpoints for rollback │
└─────────────────────────────────────┘
│
▼
The World (tools, APIs, databases)
The key insight: an agent scoring its own reasoning is structurally biased toward overconfidence. It almost always thinks it did well — even when it didn't.
AgentWatch deploys a second model, architecturally separate, with no access to the agent's own reasoning trace. Its only job: find failure before the next action fires.
Quick Start
# Install
pip install agentwatch
# Start the dashboard
docker compose up -d
# Wrap your agent
agentwatch watch "Build me a REST API"
Dashboard → http://localhost:3000
API Docs → http://localhost:8000/docs
That's it. Zero config. Real data immediately.
Supported Frameworks
AgentWatch wraps your existing agent. You change nothing.
Claude Code
agentwatch watch "Build me a REST API"
LangChain
from agentwatch.adapters.langchain import AgentWatchCallbackHandler
handler = AgentWatchCallbackHandler()
agent = AgentExecutor(agent=..., callbacks=[handler])
CrewAI
from agentwatch.adapters.crewai import AgentWatchCrewAdapter
adapter = AgentWatchCrewAdapter(crew=my_crew)
await adapter.run()
AutoGPT
from agentwatch.adapters.autogpt import AutoGPTAdapter
adapter = AutoGPTAdapter(session_id="session-1")
await adapter.on_action(action)
LangGraph
from agentwatch.adapters.langgraph import AgentWatchLangGraphAdapter
adapter = AgentWatchLangGraphAdapter(graph=my_graph)
result = await adapter.run(input)
AutoGen
from agentwatch.adapters.autogen import AgentWatchAutoGenAdapter
adapter = AgentWatchAutoGenAdapter(agents=agent_list)
await adapter.run(task)
Universal one-liner (any framework)
from agentwatch import watch
agent = watch(your_agent) # auto-detects framework
Core Features
🧠 Reasoning Auditor
The feature nobody else has built.
from agentwatch.reasoning.auditor import ReasoningAuditor
auditor = ReasoningAuditor()
result = await auditor.score_step(step)
print(result.confidence) # 0.0 – 1.0
print(result.hallucination_risk) # low / medium / high
print(result.goal_drift) # True if agent is off-task
When confidence drops below your threshold, the next action is held — not logged after the fact. An alert fires. You decide what happens next.
🛡️ Safety Engine
from agentwatch.core.safety import SafetyEngine
engine = SafetyEngine()
result = await engine.check_event(event)
if result.is_blocked:
print(f"Blocked: {result.safety.reasons}")
print(f"Risk level: {result.safety.risk_level.value}")
Blocked by default:
rm -rf /·curl | bash· disk formatting- Credential exfiltration ·
DROP TABLE - Mass deletion · privilege escalation
- 40+ additional critical patterns
Pre-execution. Not post-hoc logging.
⏪ One-Click Rollback
agentwatch rollback <session-id> --to-step 12
Every step is a git-backed filesystem snapshot. Irreversible actions become reversible. Click rollback in the dashboard or use the CLI.
📊 Live Dashboard
Real-time WebSocket stream of every action your agent takes. Confidence meter updating per step. Colour-coded by span type. No polling. No refresh.
💾 Persistent Memory
Cross-session episodic, semantic, and procedural memory. Your agent remembers what it decided and why — across restarts, across sessions.
💰 Cost Intelligence
Per-session token budget with hard stop. Real-time spend tracking. Alerts at 80%. Blocks at 100%. Prevents runaway agents from bankrupting you overnight.
🔔 Alerting
Slack + PagerDuty when confidence drops or actions are blocked. Every alert contains full context — not just "something failed."
REST API
GET /api/v1/sessions
GET /api/v1/sessions/{id}/replay
GET /api/v1/sessions/{id}/confidence
GET /api/v1/sessions/{id}/checkpoints
POST /api/v1/sessions/{id}/rollback
GET /api/v1/safety/blocked
GET /api/v1/dashboard/summary
WS /ws/events
Full Swagger docs at localhost:8000/docs
What Nobody Else Has Built
| Feature | AgentWatch | Langfuse | Phoenix | Datadog |
|---|---|---|---|---|
| Pre-execution blocking | ✅ | ❌ | ❌ | ❌ |
| Independent reasoning auditor | ✅ | ❌ | ❌ | ❌ |
| Git-backed rollback | ✅ | ❌ | ❌ | ❌ |
| Session replay | ✅ | ❌ | ✅ | ⚠️ |
| Cross-session memory | ✅ | ❌ | ❌ | ❌ |
| Goal drift detection | ✅ | ❌ | ❌ | ❌ |
| Hallucination risk per step | ✅ | ❌ | ❌ | ❌ |
Stack
| Layer | Tech |
|---|---|
| Backend | FastAPI · PostgreSQL · Redis · Celery |
| Frontend | Next.js · Tailwind · Recharts · WebSockets |
| Infra | Docker Compose · GitHub Actions CI |
| Telemetry | OpenTelemetry compatible |
Verified
✅ 47/47 tests passing
✅ docker compose up — zero errors
✅ API live at localhost:8000
✅ Dashboard live at localhost:3000
✅ Claude Code, LangChain, CrewAI, AutoGPT adapters working
Contributing
AgentWatch is built in the open. Contributors get their name on the landing page after their first merged PR.
Before you start → join the Discord: https://discord.gg/n2RzUmZ4
Get help picking the right issue, discuss your approach, and ship faster.
git clone https://github.com/sreerevanth/AgentWatch
cd AgentWatch
docker compose up -d
pip install -e ".[dev]"
pytest tests/
Browse open issues — tagged by difficulty: good first issue · intermediate · advanced
Roadmap
AgentWatch v0.2.0 is being built now — 90 features across 10 phases including:
- Causal memory graph (cross-session reasoning trails)
- Inter-agent causal DAG (multi-agent failure tracing)
- OWASP Agentic Top 10 scanner
- EU AI Act Article 15 compliance package
- Counterfactual replay ("what if step 3 was different")
- Open reasoning trace schema (the OTEL play)
Every open issue on the roadmap is available to contributors. Browse them here.
Community
💬 Discord — discord.gg/n2RzUmZ4
Contributors discuss issues, get unblocked, and ship together.
Your name on the landing page after your first PR merges.
License
Apache 2.0 — use it, fork it, build on it.
Built by sreerevanth
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 agentwatch_ai-0.2.0.tar.gz.
File metadata
- Download URL: agentwatch_ai-0.2.0.tar.gz
- Upload date:
- Size: 79.6 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
698009d09bb36136467d58ecdfd990f6be8d48df9e175f2d9e834213f5e33f87
|
|
| MD5 |
c861cb80d21ee9c62d7cfe125ac568bb
|
|
| BLAKE2b-256 |
0089bb219ac723c82e97144a94a436e5e6d66ce0324e3eed896e731236921406
|
File details
Details for the file agentwatch_ai-0.2.0-py3-none-any.whl.
File metadata
- Download URL: agentwatch_ai-0.2.0-py3-none-any.whl
- Upload date:
- Size: 173.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9ad75eb2bbb8cb97a8a2254acc3f3ac2179bb6d6cdea9384c62fac24b58a6436
|
|
| MD5 |
c0b51af4dfb14d408ff1d17629412f86
|
|
| BLAKE2b-256 |
7d0208ad41cc88aeb492baee31f928637ba78b49f5872619db41fcc0121ab6e8
|