Agents
One key for the whole agent loop.
Planning, tool calls, retries and long context all hit the same endpoint. Swap the model mid-loop without touching auth, billing or streaming code.
01 — Agents
Why agents work well here
An agent loop makes many small calls and a few large ones. Per-token billing, a single credential and a stable request shape mean you can route each step to the cheapest model that can handle it.
Route by step
Send planning to a reasoning tier and tool-call turns to a fast tier. One key covers both.
No seat pricing
Agent loops burn tokens unpredictably. Prepaid per-token billing keeps the cost linear.
1M-token context
GPT-6 Astra, Kimi K3 and GLM-5.3 hold whole repositories and long transcripts in one call.
Tool calling
The standard tools array is forwarded upstream, so function calling works without a shim.
Streaming
SSE deltas keep interactive agents responsive; usage arrives in the final frame.
One credential
Every framework reads the same key and base URL, so a second agent stack costs nothing to add.
Frameworks and runtimes
Each of these accepts a custom OpenAI-compatible base URL. Pick the one your team already uses.
OpenAI Agents SDK
NativeSet baseURL and apiKey on the client. Handoffs, guardrails and tracing work unchanged.
LangGraph
NativePoint ChatOpenAI at /v1 and keep your graph, checkpointing and human-in-the-loop nodes.
CrewAI
NativeConfigure the LLM with the gateway base URL; roles and tasks stay in your code.
AutoGen
NativeUse the OpenAI-compatible client config for multi-agent conversations and code executors.
Claude Agent SDK
Via bridgeRoute through the Anthropic-compatible bridge described in the Claude Code guide.
MCP servers
NativeAny MCP host that speaks the OpenAI protocol can call this catalog as its model backend.
02 — Loop
A loop that stays cheap
The pattern that keeps agent runs affordable: classify, then escalate only when the cheap tier fails.
- 01
Plan on a reasoning tier
One call to GPT-6 Sol or Claude Opus 5.5 to decompose the task. This is where quality matters most.
- 02
Execute on a fast tier
Tool-call turns and file reads go to DeepSeek V4.1 Flash or MiMo V2.6 Flash at a fraction of the cost.
- 03
Escalate on failure
Retry a failed step on a stronger model instead of rerunning the whole loop.
- 04
Reconcile from usage
Read token counts and cost from the usage object on each response; no separate metering service.
Minimal agent client
The same client works for every framework below — only the base URL and key change.
from openai import OpenAI
client = OpenAI(
base_url="https://uncensoredai.dev/v1",
api_key="sk-ua-XXXX-XXXX-XXXX-XXXX",
)
# Plan on the reasoning tier.
plan = client.chat.completions.create(
model="gpt-6-sol",
messages=[{"role": "user", "content": "List the steps to rename a symbol."}],
)
# Execute tool turns on the cheap tier.
step = client.chat.completions.create(
model="deepseek-v4.1-flash",
messages=[{"role": "user", "content": "Apply step 1."}],
)