Orkes Watcher
An observability platform for graph-based agents. Every node, every edge, every loop, traced.
Orkes Watcher shows exactly what happened in every run of a graph-based agent: which nodes executed, which edges were traversed, how many times a loop re-entered, and what the state looked like at every step. It doesn't run your graph or wrap your logic in a new framework. Point an instrumented graph at a project's ingest endpoint, and every run becomes an inspectable, live-updating trace.
🔹 Features
- Live trace inspector: a graph view of a run that updates node by node while it's still executing
- Dashboard: runs by outcome, p50/p95 run time, slowest nodes and top errors
- Project-scoped API keys: ingest or read-only, hashed at rest
- Role-based access: Admin, Developer and Viewer roles with per-project grants
- Retention and sampling: per-project limits on how long traces are kept
- Single-command deploy: self-host with one
docker compose up
🔹 Works with Orkes
Attach a WatcherSink to an Orkes graph (v0.1.4 or later) and traces are sent in the background. A watcher that's down never breaks your run.
from orkes.exporters.watcher import WatcherSink
sink = WatcherSink(api_key="<project ingest key>", base_url="http://localhost:8000")
graph = OrkesGraph(SearchState, name="search", trace_sinks=[sink])
👉 Check out the repo