omega-api-otel
OpenTelemetry instrumentation for Ω-API evaluation events.
Put the judge's verdict into the observability stream without turning the verdict into a metric.
Emit Ω-API decisions as OpenTelemetry evaluation events: label, reason, side, and gate — never geometry.
This is an emitter, not an exporter. It turns each Ω-API judgment into one
gen_ai.evaluation.result event and hands it to the OpenTelemetry pipeline you already run.
It hosts no collector, no backend, no OTLP exporter, no dashboard, and no storage — those stay yours.
Install
pip install omega-api-otel
Depends on omega-api and opentelemetry-api. Your application owns the OpenTelemetry SDK and
decides where events go.
Use
You already have a Decision from omega-api:
from omega_api import Omega
from omega_api_otel import emit_decision
omega = Omega() # reads OMEGA_API_KEY
decision = omega.judge(input=user_msg, output=agent_reply, session_id="conv-42")
emit_decision(decision, session_id="conv-42")
# -> one gen_ai.evaluation.result event on your OTel pipeline
Or judge and emit in one call:
from omega_api_otel import judge_and_emit
decision = judge_and_emit(input=user_msg, output=agent_reply, session_id="conv-42")
emit_decision performs no network I/O and needs no API key — it maps a decision you already have.
judge_and_emit reuses omega-api for the HTTP call, then emits.
What lands on the event
event gen_ai.evaluation.result
gen_ai.evaluation.name "omega_process_movement"
gen_ai.evaluation.score.label PROCEED | CLARIFY | STOP | UNKNOWN
gen_ai.conversation.id your session_id (only when you pass one)
omega.turn_id the turn id the server assigned
omega.reason_family drift | security | residue | missing_limit | ok | unknown
omega.side user | agent | coupling | unknown
omega.gate_action release | clarify | suppress | none
omega.judged true, or false for a fail-open synthetic decision
There is no numeric score on the event. Omega-API measures whether the process moved on each turn; it does not tell you whether the agent reached the user's goal. Read the label and the gate, act on the gate before showing the reply, and read outcome separately through your own events.
Unreachable judge with judge_and_emit(..., fail_open=True): the event is emitted honestly with
score.label="UNKNOWN" and omega.judged=false, never a fabricated verdict.
Note on the convention
The GenAI evaluation event is part of the OpenTelemetry GenAI semantic conventions, which are
currently in Development status. The convention strings this package emits are pinned to a
recorded commit of open-telemetry/semantic-conventions-genai and isolated in a single module, so
a convention change is one edit here rather than a change across your code.
License
Apache-2.0.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file omega_api_otel-0.1.0.tar.gz.
File metadata
- Download URL: omega_api_otel-0.1.0.tar.gz
- Upload date:
- Size: 11.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/7.0.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5a08fbe15dea3bb6792605ad832d420330477205fccaef50caa11d900a575837
|
|
| MD5 |
63c647f8a6708381ad918c2d6502008c
|
|
| BLAKE2b-256 |
6c66f4bde81b238ab1053f62218b51a8d2ef920a8f50453690e3abe47c94f65d
|
File details
Details for the file omega_api_otel-0.1.0-py3-none-any.whl.
File metadata
- Download URL: omega_api_otel-0.1.0-py3-none-any.whl
- Upload date:
- Size: 11.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/7.0.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8d8e3cf7d7ba3a760b463885359f1ce6a2043e310e468d65ff04e975581af8c9
|
|
| MD5 |
f6267f46f5c55b7ecd498444bf6cfefd
|
|
| BLAKE2b-256 |
a80cb2b7a3b6aa0cccef26cb12db6ddafaa229adcaa738387a24392dae3daa48
|