Get started
Architecture
Agents and apps send inference through Inferix. The control plane records metrics and spans, applies RouteIQ policy, forwards to an owned model or provider, then feeds DriftWatch and FineForge.
Request path
Agent / app / SDK
|
| POST /v1/chat/completions
v
+---------------------+
| Inferix :4000 |
| auth (master key) |
| LensAI sample |
| TraceForge root |
| RouteIQ decide |
+----------+----------+
|
| invoke chosen model
v
+----------+-----------+
| owned/* endpoints |
| provider APIs |
+----------+-----------+
|
| response + usage
v
LensAI metrics · TraceForge spans
|
v
DriftWatch windows → FineForge jobs
(promote / rollback)Inferix sits next to gateways and existing traces. Point clients at :4000; keep your gateway for auth federation or rate limits if you already have one.
Product roles
| Product | Where it sits | Operator output |
|---|---|---|
| LensAI | On every call ingress/egress | Latency, cost, errors, volume by model/agent/tenant |
| TraceForge | Around route + tool + model spans | Debuggable traces for a single user request |
| RouteIQ | Before model invoke | Policy decision: model name + fallback chain |
| DriftWatch | Async over golden / live windows | Alerts when quality score drops |
| FineForge | Job runner after drift (or schedule) | Train → evaluate → promote or rollback |
Data stores (high level)
- Config —
inferix.yaml(models, routing, observe, drift). Hot-reload where supported; see Configuration. - Metrics buffer — LensAI time series (in-process + optional remote write).
- Span store — TraceForge traces in local volume or Postgres; optional OTLP export.
- Drift state — golden sets, window scores, alert history.
- FineForge artifacts — job logs, candidate revisions, promote history.
Failure domains
Design for partial failure
- If an owned model is down, RouteIQ walks the fallback chain and LensAI records the error class.
- If TraceForge storage is slow, spans buffer locally; completions still return.
- DriftWatch and FineForge are off the hot path — a stuck job does not block inference.
Full inferix.yaml reference.
Configuration →