Skip to main content
Origin works with any trace you can produce. There are three on-ramps depending on what you already have.

1. Turnkey — live pipeline

The recommended starting point. Give Origin your pipeline and it handles tracing and scoring automatically. Your pipeline only needs @span decorators from aevyra_witness.runtime:
See Quick start for the full example with a Verdict judge.

2. Adapter — existing framework logs

Already emitting telemetry from another framework? Parse the logs into an AgentTrace and hand it directly to Origin.

OpenClaw JSONL

OpenClaw streams telemetry as JSONL — one event per line. The from_openclaw_jsonl adapter handles start/end pairing, auto-parents tool calls via tool_call_id, and covers all OpenClaw event families including Task Brain (task.*, cron.*, acp.*):
To mark prompts as Reflex optimization targets without annotating the event stream:

OpenTelemetry (LangGraph, CrewAI, AutoGen, Vercel AI SDK)

Any framework that emits OpenTelemetry spans with the GenAI semantic conventions works out of the box:
Plain dicts from an OTLP JSON export are also accepted by from_otel_spans.

Bring your own format

For structured logs from Langfuse, LangSmith, or a home-grown JSONL store, the BYO trace tutorial shows a 30-line adapter pattern that works for any source format.

3. Raw — AgentTrace + score

Already have an AgentTrace and a score? Use Origin.diagnose directly:
Or via the CLI if you have the trace as a JSON file:
AgentTrace.to_dict() / AgentTrace.to_json() serialize the trace; AgentTrace.from_dict() / AgentTrace.from_json() restore it. Non-Python producers can emit a conforming JSON object directly — see the Witness schema spec.