Skip to main content
bryel is OpenTelemetry-native, so it traces any library that has an OpenInference instrumentor. You don’t map anything — install the instrumentor for your stack and bryel exports the spans. In Python, one call wires up every instrumentor you have installed:
instrument=True scans for the libraries below and turns on the ones present. Prefer to be explicit? Call a single instrumentor yourself — the table shows how.
In TypeScript/JavaScript, add any OpenTelemetry GenAI instrumentation to your NodeSDK and ship it with bryelSpanProcessor — see TypeScript. Any other language can send over the HTTP API.

Provider SDKs

Agent SDKs

Frameworks

Two special cases:
  • AutoGen instruments the classic ConversableAgent API (the ag2 package), not the newer autogen-agentchat rewrite.
  • MCP (openinference-instrumentation-mcpMCPInstrumentor) propagates trace context across the MCP client/server boundary so tool calls stay on the same trace — it stitches spans rather than emitting model spans itself. Add it alongside the instrumentor for whatever runs your model.

Turning one on explicitly

Install the instrumentor and call it after bryel.init():
That’s the same thing instrument=True does — it just calls every instrumentor it finds. Use the explicit form when you want to trace one library and not the rest.
Don’t see your framework? If it emits OpenTelemetry GenAI or OpenInference spans, bryel already accepts them — point your OTLP exporter at the HTTP API. If it doesn’t, tell us and we’ll add it.