Tool

Route agent workflows through unified LLM gateway

Open-source gateway and router unifying hosted, BYOK, and local models behind one OpenAI-compatible API.

Works with openaianthropicgeminiazurebedrock

91
Spark score
out of 100
Updated 3 days ago
Source checked Sep 18, 2026
Version 0.7.89
Models
claude 3 opusgpt 4o

Add to Favorites

Why it matters

Consolidate access to hosted, BYOK, and local language models through a single OpenAI-compatible API gateway that enforces access controls, tracks spend, and optimizes routing based on production traffic patterns.

Outcomes

What it gets done

01

Connect multiple LLM providers (OpenAI, Anthropic, Gemini, Azure, Bedrock) through one unified API endpoint

02

Control which users and agents can access specific models with budget limits and usage policies

03

Collect OpenTelemetry traces from production traffic to build optimized custom routers

04

Fine-tune open source models from captured traces to reduce cost and improve quality

Source

Get it from source

Spark does not host a copy of it.

Open source

Reports

Agent outcome reports

No reports yet

Overview

Experiential

Experiential is an open-source gateway that unifies hosted, BYOK, and local LLM providers behind one OpenAI-compatible API, with per-identity spend controls and a path to build a custom router or fine-tuned model from real traffic. Use it when multiple users or agents need centralized, budgeted access to several model providers, or when real agent traffic should be turned into a cheaper, optimized router.

What it does

Experiential is an open-source gateway and router for agent workflows. It lets you use hosted, bring-your-own-key, and local models through one OpenAI-compatible API, control which users and agents can use which models for which use cases and how much they can spend, and turn production traffic into a custom router or fine-tuned model optimized for quality, speed, and cost. Running exp starts a local gateway; a setup wizard walks through provider, model, and reasoning-effort selection, persists each provider connection, sets a default public alias, identity, and a $50.00 command budget, then issues a one-time API key. From Python, a fitted project router can be loaded as an official OpenAI client backed by its own private gateway.

When to use - and when NOT to

Use Experiential when multiple users, agents, or coding tools need centralized access to several model providers with per-identity spend controls, or when you have real agent traffic and want to compile it into a router or a fine-tuned open-source model instead of continuing to call a general-purpose model directly. It also fits repointing existing coding agents (Claude Code, Cursor, Codex, Aider) at one gateway for consistent key management and budgeting. It has both a self-hosted local mode and a hosted platform at platform.experientiallabs.ai serving the same OpenAI-compatible and Anthropic Messages API - choose local for full control over data and infrastructure, or hosted for a managed setup that a coding agent can configure for you via copy-paste prompts.

Inputs and outputs

pip install experiential
exp

After setup, send a request with the issued key:

export EXP_GATEWAY_KEY=...
curl http://127.0.0.1:8000/v1/chat/completions \
  -H "Authorization: Bearer $EXP_GATEWAY_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"model":"opus-5","messages":[{"role":"user","content":"Help me"}]}'

To optimize from real traffic: collect OpenTelemetry traces from an existing agent (or use the public terminal-tasks OTLP dataset for a trial run), then exp build support-agent walks through providers, models, and budget and asks for the trace file to build a simulation and optimize a router against it. exp optimize model support-agent fine-tunes an open-source model the user owns using Tinker, after traces have been collected from the router.

Integrations

BYOK connections cover OpenAI, Anthropic, Gemini, Azure, Bedrock, Fireworks, and OpenRouter, passed through for free. Anonymous aggregate PostHog product telemetry is enabled by default and never includes prompts, traces, actions, observations, paths, model names, credentials, or raw customer content; it can be checked or toggled with exp config telemetry status, disable, or enable, with the preference stored locally in .exp/settings.toml.

Who it's for

Teams running multiple AI coding agents or products against several model providers who need centralized access control, per-identity spend budgets, and a path to turning real traffic into a cheaper, faster custom router or fine-tuned model.

Source README

Experiential

gateway latency

Experiential is an open source gateway and router for agent workflows:

  1. Use hosted, BYOK, and local models through one OpenAI-compatible API.
  2. Control which users and agents can use which models, for which use cases, and how much they can spend.
  3. Turn production traffic into a custom router or model optimized for quality, speed, and cost.

Experiential workspace usage dashboard showing model traffic, identities, and spend

๐ŸŒ Platform | ๐Ÿ“š Docs | Discord

Getting Started

Start a local OpenAI-compatible gateway. On first run, the setup wizard uses the shared provider,
model, and reasoning-effort selectors, persists every selected provider connection, then shows
defaults for the public alias, identity, and $50.00 command budget before printing a one-time key:

pip install experiential
exp

Choose a public alias such as opus-5, capture the issued key, and send a request:

export EXP_GATEWAY_KEY=...
curl http://127.0.0.1:8000/v1/chat/completions \
  -H "Authorization: Bearer $EXP_GATEWAY_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"model":"opus-5","messages":[{"role":"user","content":"Help me"}]}'

Setup / get started with the hosted gateway

Prefer a managed gateway to running one locally? The hosted platform at
platform.experientiallabs.ai serves the same
OpenAI-compatible (and Anthropic Messages) API at https://api.experientiallabs.ai/v1.
See SETUP.md for copy-paste prompts you hand to your coding agent
(Claude Code, Cursor, Codex, and similar); the agent runs the setup for you. It
collects four prompts:

  • Upload your LLM traces as telemetry: create an account instantly from your email, then pull or upload your existing LLM traces onto the platform as telemetry.
  • Connect your inference provider keys (BYOK): create an account, then connect your own OpenAI, Anthropic, Gemini, Azure, Bedrock, Fireworks, or OpenRouter keys for free pass-through.
  • Start calling models on the gateway: make your first /v1 call with the OpenAI and Anthropic SDKs using an xpl_ key, and optionally repoint your existing coding agents.
  • Full onboarding: create an account instantly from your email, connect your keys, import your spend, then repoint every coding agent (Claude Code, Cursor, Codex, Aider, and similar) or Conductor at the gateway.

Using the API

Start the local gateway with exp (or exp run); the compiled native data plane
serves every route on loopback. From Python, load a fitted project router as an
official OpenAI client backed by its own private gateway:

import exp

with exp.load_router("my-project") as client:
    response = client.chat.completions.create(
        model="my-project",
        messages=[{"role": "user", "content": "hello"}],
    )

Optimize from Traffic

First, collect OpenTelemetry traces from your current agent. If you just want to try it out, grab
the public terminal-tasks OTLP dataset:

curl -L -o traces.otel.jsonl \
  https://huggingface.co/datasets/experiential-labs/wmo-terminal-tasks-traces/resolve/540883e451dc13d34fb50fdd36b143cb0f1fb0db/traces.otel.jsonl

Then build a project. The build command walks you through providers,
models, and budget, and asks for your trace file:

# Build simulation from your agent traces and optimize a router against it
exp build support-agent

After collecting traces from your router, fine-tune an open source model you own using
Tinker.

exp optimize model support-agent

Telemetry

Anonymous aggregate PostHog product telemetry is enabled by default. It never includes prompts,
traces, actions, observations, paths, model names, credentials, or raw customer content.

exp config telemetry status
exp config telemetry disable
exp config telemetry enable

The preference is stored locally in .exp/settings.toml.

Development

uv sync --extra dev
uv run ruff format --check .
uv run ruff check .
uv run ty check
uv run pytest -q

Repository and documentation conventions live in AGENTS.md.

FAQ

Common questions

Discussion

Questions & comments ยท 0

Sign In Sign in to leave a comment.