Skip to main content

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.


Tests License Python Discord Stars Forks NSoC


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.


Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

agentwatch_ai-0.2.0.tar.gz (79.6 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

agentwatch_ai-0.2.0-py3-none-any.whl (173.3 kB view details)

Uploaded Python 3

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

Hashes for agentwatch_ai-0.2.0.tar.gz
Algorithm Hash digest
SHA256 698009d09bb36136467d58ecdfd990f6be8d48df9e175f2d9e834213f5e33f87
MD5 c861cb80d21ee9c62d7cfe125ac568bb
BLAKE2b-256 0089bb219ac723c82e97144a94a436e5e6d66ce0324e3eed896e731236921406

See more details on using hashes here.

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

Hashes for agentwatch_ai-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9ad75eb2bbb8cb97a8a2254acc3f3ac2179bb6d6cdea9384c62fac24b58a6436
MD5 c0b51af4dfb14d408ff1d17629412f86
BLAKE2b-256 7d0208ad41cc88aeb492baee31f928637ba78b49f5872619db41fcc0121ab6e8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page