OMNIA_API_KEY when asked,
and read its report.
Integration paths
The prompt has your agent pick one of the four integration paths, based on what your repo actually uses: Gateway (your app calls an OpenAI-compatible API and can use Omnia’s catalog): points your existing client athttps://gateway.omnia-voice.com/v1
with your Omnia key. Model names pass through unchanged. The agent also tags
your traffic (X-Omnia-Tag) so it lands as one evaluation population, and
threads a run id (X-Omnia-Trace-Id, or your existing W3C traceparent)
when your app makes several calls per run.
Your provider key (BYOK) (you run GPT, Claude, or Gemini and intend to keep
it): same base-URL swap, but your model doesn’t change; you paste your
provider’s API key into Settings → Workspace → Provider keys, the model name
gains a provider prefix (anthropic/claude-sonnet-4-5), and your provider
keeps billing you directly; Omnia bills nothing for those tokens. You get
capture, tags, caching, and fallbacks with zero model risk.
OpenTelemetry (your app already emits OTel traces: Vercel AI SDK
telemetry, Pydantic AI, an existing OTel SDK): no packages, no code, three
environment variables:
gen_ai.* conventions plus the
Traceloop, Vercel ai.*, and OpenInference attribute dialects, and normalizes
them all into one gradeable shape.
Tracing SDK (no OTel yet, and your inference stays where it is):
one package, one line, standard OpenTelemetry underneath.
node --import @omnia-voice/tracing/register.
OpenAI, Anthropic, Gemini (Python), and LangChain are captured automatically,
only libraries actually installed are instrumented. The SDK contains no
instrumentation code of its own, and its README documents the identical setup
in vanilla OTel: eject anytime, your spans don’t change.
Whichever path the agent picks, the traffic becomes gradeable population: you
can grade it, calibrate a judge against your grades, and run screening
comparisons; the BYOK, OpenTelemetry, and Tracing SDK paths do all of that
before a single inference decision changes. Model-call content is stored only
if your workspace has request logging enabled, under your retention window;
span structure is kept either way.
Verifying by hand
The same check the agent runs:-- --no-inference to skip the one-cent test completion.