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