Catalog PyPI
PACKAGE EXPLORERView in registry

agentwatch-core

PyPI

Open-source observability, cost tracking, and governance for AI agents

agentsaillmmonitoringobservabilityopentelemetry
Versions collected1
Direct dependencies4From release 0.1.0
Last observed21 Oct, 08:56 UTC

README

Version 0.1.0 documentation

🔭 AgentWatch

Open-source observability, cost tracking, and governance for AI agents

PyPI License: MIT Python Status

OpenAI · Anthropic · LangChain · CrewAI · AutoGen · LlamaIndex

Quickstart · Self-Hosting · Dashboard · Docs · Contributing

⚠️ Alpha: Core SDK and self-hosting work. Human approval workflows and full dashboard are in active development. See the roadmap.


Why AgentWatch?

Organizations deploy AI agents in production every day — customer support, code generation, document processing, and more. But once deployed, nobody can answer: What did the agent do? How much did it cost? Did it get approval before taking action?

AgentWatch is the missing observability layer. Unlike closed-source alternatives:

  • 🏠 Fully self-hostable — the entire stack (SDK + API + dashboard) runs on your infra. Not just the SDK — everything.
  • 📡 OpenTelemetry-native — no proprietary event format. Your data stays portable.
  • ⚖️ MIT licensed — no AGPL copyleft triggers. Enterprise-friendly from day one.
  • 🛡️ Human approval workflows — built into the core, not gated behind an Enterprise tier.
  • 🔌 Framework-agnostic — one SDK works with OpenAI, Anthropic, LangChain, CrewAI, AutoGen, and LlamaIndex.

⚡ Quickstart

pip install agentwatch

OpenAI

import agentwatch
import openai

agentwatch.init(api_key="aw_your_key")  # That's it. All OpenAI calls are now traced.

client = openai.OpenAI()
response = client.chat.completions.create(
    model="gpt-4o",
    messages=[{"role": "user", "content": "Hello!"}]
)

LangChain

import agentwatch
agentwatch.init(api_key="aw_your_key")

from langchain_openai import ChatOpenAI
llm = ChatOpenAI(model="gpt-4o")
result = llm.invoke("Explain quantum computing")

CrewAI

import agentwatch
agentwatch.init(api_key="aw_your_key")

from crewai import Crew, Agent, Task
crew = Crew(agents=[...], tasks=[...])
result = crew.kickoff()  # Automatically traced

Custom Instrumentation

@agentwatch.session
def my_agent_pipeline():
    result = research()
    return summarize(result)

@agentwatch.tool
def research():
    return search_web("latest AI news")

🏠 Self-Hosting

Deploy the entire AgentWatch stack in under 5 minutes:

git clone https://github.com/mukktinaadh/agentwatch
cd agentwatch
cp .env.example .env    # Edit with your secrets
docker compose up -d    # That's it.

Dashboard: http://localhost · API: http://localhost:8000/docs

Point your SDK to your self-hosted instance:

agentwatch.init(
    api_key="aw_your_key",
    endpoint_url="http://your-server:8000"
)

📊 Dashboard

AgentWatch ships with a production-ready dashboard:

  • Sessions View — All agent runs with status, cost, duration, error count
  • Trace Waterfall — OTel-style span visualization with timing bars
  • Cost Analytics — Spend by day, model, and agent with trend charts
  • Alerts — Configure cost overrun and failure threshold alerts
  • Approvals — Human-in-the-loop approval workflows with real-time polling
  • Settings — API key management and self-hosting configuration

🏗️ Architecture

┌─────────────────┐     OTel Spans      ┌──────────────────┐
│   Your Agent    │ ──────────────────▶ │  AgentWatch API  │
│  + SDK (pip)    │                     │   (FastAPI)      │
└─────────────────┘                     └────────┬─────────┘
                                                 │
                                    ┌────────────┼────────────┐
                                    ▼            ▼            ▼
                              ┌──────────┐ ┌──────────┐ ┌──────────┐
                              │ PostgreSQL│ │  Redis   │ │ Dashboard│
                              │  (data)  │ │ (buffer) │ │  (React) │
                              └──────────┘ └──────────┘ └──────────┘

Approval Flow:
  Agent ──▶ SDK blocks ──▶ API ──▶ Dashboard (human review) ──▶ Agent resumes

🆚 Comparison

FeatureAgentWatchAgentOps.aiLangfuseLangSmith
Fully self-hostable (entire stack)✅❌✅❌
Open source (MIT)✅⚠️ SDK only✅❌
OpenTelemetry-native✅❌⚠️❌
Human approval workflows✅❌❌❌
Cost analytics✅✅⚠️⚠️
Framework-agnostic✅✅✅❌
Compliance in open tier✅❌✅❌

🗺️ Roadmap

See our GitHub Projects board for the full roadmap.

Phase 1 (MVP): ✅ OTel traces · ✅ Cost analytics · ✅ Self-hosting · ✅ Dashboard Phase 2: ✅ Human approval workflows · Cross-run analysis · Alert webhooks (Slack) Phase 3: Compliance reporting · Memory management · Enterprise SSO/RBAC · AgentWatch Cloud


🤝 Contributing

We welcome contributions! See CONTRIBUTING.md for details.

# Local development
make dev                    # Start Postgres + Redis
cd api && uvicorn agentwatch_api.main:app --reload
cd dashboard && npm run dev

📄 License

MIT — see LICENSE. Use it however you want. No AGPL, no copyleft triggers.


Built by MukktiNaadh Raghavarapu · Star ⭐ if this is useful

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Versions 1

Collected releases
VersionPublishedDirect dependenciesOpen version
0.1.026 Jun 20264

Package advisories

0
No matching advisories collected

This describes our collected data; it is not a security assessment.

Repository

ACCESSIBLE
mukktinaadh/agentwatch

Shared repository data · GitHub

License detected in repository
Not collected
Last push
26 Jun 2026
Archived
No
Contributor identities
— · partial collection

Public sponsor counts have not been collected. These signals belong to the repository owner.

Downloads & popularity

0count
Gauge · observed snapshots22 Oct 2026
10.50
2026-10-22: 0 · observed 2026-10-22T20:54:40.6617829Z
22 Oct22 Oct

github · 1 observations shown. Missing days are unknown.

View observed values
Date / source periodValueObserved at
2026-10-2202026-10-22T20:54:40.6617829Z

Metadata history

Meaningful changes
Current collected state Current

Observed since 21 Oct, 08:56 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package:5c8cfc634ef49aed0ba8f2a3e03a490d3c6bf1e1fee4d78d32a8a1d7bb4ce554