Observed since 21 Oct, 08:56 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
agentwatch-core
Open-source observability, cost tracking, and governance for AI agents
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.
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:
pip install agentwatch
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!"}]
)
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")
import agentwatch
agentwatch.init(api_key="aw_your_key")
from crewai import Crew, Agent, Task
crew = Crew(agents=[...], tasks=[...])
result = crew.kickoff() # Automatically traced
@agentwatch.session
def my_agent_pipeline():
result = research()
return summarize(result)
@agentwatch.tool
def research():
return search_web("latest AI news")
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"
)
AgentWatch ships with a production-ready dashboard:
┌─────────────────┐ 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
| Feature | AgentWatch | AgentOps.ai | Langfuse | LangSmith |
|---|---|---|---|---|
| Fully self-hostable (entire stack) | ✅ | ❌ | ✅ | ❌ |
| Open source (MIT) | ✅ | ⚠️ SDK only | ✅ | ❌ |
| OpenTelemetry-native | ✅ | ❌ | ⚠️ | ❌ |
| Human approval workflows | ✅ | ❌ | ❌ | ❌ |
| Cost analytics | ✅ | ✅ | ⚠️ | ⚠️ |
| Framework-agnostic | ✅ | ✅ | ✅ | ❌ |
| Compliance in open tier | ✅ | ❌ | ✅ | ❌ |
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
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
MIT — see LICENSE. Use it however you want. No AGPL, no copyleft triggers.
Built by MukktiNaadh Raghavarapu · Star ⭐ if this is useful
Download counts and popularity will appear here as the collector receives them.
| Package / target | Requirement | Relationship |
|---|---|---|
requestsEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.9",
"evaluation": "NOT_EVALUATED"
} | requests>=2.28.0 | runtime |
anthropicEnvironment{
"extras": "",
"marker": "extra == \"all\"",
"requires_python": ">=3.9",
"evaluation": "NOT_EVALUATED"
} | anthropic>=0.20.0; extra == "all" | runtime |
langchainEnvironment{
"extras": "",
"marker": "extra == \"all\"",
"requires_python": ">=3.9",
"evaluation": "NOT_EVALUATED"
} | langchain>=0.1.0; extra == "all" | runtime |
openaiEnvironment{
"extras": "",
"marker": "extra == \"all\"",
"requires_python": ">=3.9",
"evaluation": "NOT_EVALUATED"
} | openai>=1.0.0; extra == "all" | runtime |
anthropicEnvironment{
"extras": "",
"marker": "extra == \"anthropic\"",
"requires_python": ">=3.9",
"evaluation": "NOT_EVALUATED"
} | anthropic>=0.20.0; extra == "anthropic" | runtime |
langchainEnvironment{
"extras": "",
"marker": "extra == \"langchain\"",
"requires_python": ">=3.9",
"evaluation": "NOT_EVALUATED"
} | langchain>=0.1.0; extra == "langchain" | runtime |
openaiEnvironment{
"extras": "",
"marker": "extra == \"openai\"",
"requires_python": ">=3.9",
"evaluation": "NOT_EVALUATED"
} | openai>=1.0.0; extra == "openai" | runtime |
bdist_wheel · 8.97 KB · Python py3
sdist · 92.95 KB · Python source
Shared repository data · GitHub
Public sponsor counts have not been collected. These signals belong to the repository owner.
github · 1 observations shown. Missing days are unknown.
| Date / source period | Value | Observed at |
|---|---|---|
| 2026-10-22 | 0 | 2026-10-22T20:54:40.6617829Z |
Observed since 21 Oct, 08:56 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package_version:660af84dc174e35edc208aebe572da1e55f2dc61dbbbbc2ab19a191dff982d92