Skip to content

For teams shipping AI agents, chat and copilots

Every AI call,
under control.

Change one base URL. Every model call your product makes is traced, priced and checked against your policies, and failures arrive as incidents with evidence.

01Your code
2 lines added, 2 removed
import osfrom openai import OpenAI client = OpenAI(    base_url="https://api.openai.com/v1",    base_url="https://gateway.worksi.ai/v1",    api_key=os.environ["OPENAI_API_KEY"],    api_key=os.environ["AIW_API_KEY"],) # every call is now traced and pricedreply = client.chat.completions.create(    model="gpt-5-mini", messages=history,)
02Gateway responseLatency 443 ms

200 OKPOST /v1/chat/completions

X-AIW-Request-Id
req_af64…fa69
X-AIW-Trace-Id
2bef9e35…6da1
X-AIW-Span-Id
7cdbe47128f3ca27
X-AIW-Provider
simulator
X-AIW-Model
gpt-5-mini
X-AIW-Cost-USD
0.00040925
03Span recorded

llm_callchat.completions

agent
triage-agent
model
gpt-5-mini
tokens
213 → 178
latency
443 ms
cost
$0.00041
status
ok
  • key
  • policies
  • rate limit

Header names are the gateway’s contract. Values come from trace 2bef9e35…6da1 in the built‑in demo organization.

Failures show up as complaints. A failing tool, a looping agent or a cost spike reaches customers, or the invoice, before it reaches an engineer.

02Observe

See every run, not just every request.

Traces follow a run through agents, steps, model calls and tools, with latency, tokens and cost on every span.

  1. 1. The run: support‑ticket‑resolution, 9 spans on a 1.5 s timeline.

  2. 2. The first failure, flagged: lookup_order failed, and a line marks the moment.

  3. 3. Latency and cost on every span: 443 ms and $0.00041 for this model call.

Explore observability
Traces · support-ticket-resolution · sample data from the built‑in demo organization

03Detect04Understand

See what broke, where, and why.

Eleven detectors watch your traffic. Each incident arrives with the failing span, numbered evidence and a diagnosis that has to cite it.

INC‑5, reconstructed

  1. run

    triage‑agent starts a support‑ticket‑resolution run in production and hands the research step to resolver‑agent.

  2. tool

    lookup_order calls orders-db: 503 Service Unavailable (connection pool exhausted).

  3. ×3

    Third failure within 10 minutes: the tool_failure detector’s threshold.

  4. INC‑5

    Incident opened. Critical. Later failures are counted as occurrences (44 so far), not opened again.

  5. evidence

    Failure location and evidence: failing span 3eb91d0f65c815a4, the error message and an 18% tool error rate.

  6. diagnosis

    78%, high confidence. Root cause: orders-db returns 503. It cites ev‑1, ev‑2, ev‑3 and ev‑6, and it is marked LLM‑assisted.

  7. next step

    Suggested: pause the support‑ticket‑resolution workflow until orders-db recovers. The pause is enforced at the gateway: 423 workflow_paused.

In our benchmark, a dependency answering 503 opened an incident 1.3 s after the failing call. How we measured — how we measured time to detect

Explore incidents & diagnosis
Incident · Overview tab · sample data from the built‑in demo organization
Incident · Diagnosis tab · sample data from the built‑in demo organization

05Control

Monitor first. Enforce when you’re sure.

Simulate a policy against your recorded traffic and see what it would have blocked. Then enforce it at the gateway, in the SDKs and in the MCP gateway.

Explore governance
01POST /api/v1/policies
{  "name": "Production model allowlist",  "type": "model_allowlist",  "scope_type": "environment",  "scope_id": "production",  "rules": {    "models": [      "gpt-5",      "gpt-5-mini",      "gpt-5-nano"    ]  },  "enforcement": "monitor"}
02App calls model "gpt-4o"
200 OK
HTTP/1.1 200 OKX-AIW-Model: gpt-4o # nothing is blocked; the span records:aiw.policy_id = <id of this policy>aiw.violation = "model_allowlist"

Example policy. The response bodies are the gateway’s contract.

Approvals
Risky tools and recovery actions wait for a person. Four‑eyes approval on Business.
End‑user plans
Send X-AIW-End-User and X-AIW-End-User-Plan. Over the limit, the gateway answers 429 end_user_quota_exceeded.
Pause and stop
Pause an agent or stop a run from the console. The gateway answers 423 agent_paused or 409 run_stopped.
  • Approvals. Risky tools and recovery actions wait for a person. Four‑eyes approval on Business.
  • End‑user plans. Send X-AIW-End-User and X-AIW-End-User-Plan. Over the limit, the gateway answers 429 end_user_quota_exceeded.
  • Pause and stop. Pause an agent or stop a run from the console. The gateway answers 423 agent_paused or 409 run_stopped.

Benchmark · 24 September 2026

Measured, not promised.

Results from our own test runs, with the conditions attached. Your numbers depend on your traffic and your provider.

0.82ms

Gateway overhead, p95

Non-streaming chat completions ramped to 200 requests/s; 55,806 requests, 0 failures.note 1

Telemetry never sits on the request path: if the telemetry pipeline is unavailable, the gateway buffers spans and your requests continue.

Gateway and ingestion
MetricResultConditions
Streaming time to first byte, p951.09msStreaming chat completions ramped to 100 streams/s; 27,906 streams, 0 failures.
Span ingestion on one replica2,000spans/s360,000 spans in batches of 100; p95 request time 6.9 ms, 0 rejected spans.

8of 8

Scripted failure scenarios detected

0 false alarms in 6 healthy runs in the same round. Median time to detect: 1.1 s.note 2

  1. Provider outage, provider_failure: 0.13 s
  2. Policy violation, policy_violation: 0.54 s
  3. Repeated tool call, repeated_tool_call: 0.72 s
  4. Cost spike, token_anomaly: 0.97 s
  5. Tool failure, tool_failure: 1.3 s
  6. Agent loop, agent_loop: 1.9 s
  7. Provider timeout, timeout: 5.0 s
  8. Stuck workflow, stuck_workflow, 60 s threshold: 63.2 s
Time from the failing call to an open incident. 8 scripted failures, log scale.

Notes 1 and 2: Internal benchmark, 24 September 2026. Single-replica Docker Compose stack on a 12 vCPU / 16 GB Linux host (gateway limited to 1.5 CPU / 512 MiB), load generated with k6. The built‑in simulator provider answered model calls with a pinned 1 ms latency so the gateway’s own overhead could be isolated. Not covered: real provider latency and errors (simulator only), multiple replicas, cloud networking, TLS termination and managed data stores, multi-hour soak tests. How we measured — how we measured the gateway and detection benchmarks

Pay for the platform, not the tokens.

Bring your own provider key: your provider bills you for tokens, and Worksi never marks them up.

Starter

Indie developers & B2C apps

$9/ month

or $90 / year, two months free

Seats
2
Gateway requests
100k / mo
Spans
1M / mo
Retention
14 days

Adds approvals, AI Graph & ROI

Pro

Startups & small teams

$29/ month

or $290 / year, two months free

Seats
5
Gateway requests
1M / mo
Spans
10M / mo
Retention
30 days

Business

Growing companies

$99/ month

or $990 / year, two months free

Seats
25
Gateway requests
10M / mo
Spans
100M / mo
Retention
90 days

Enterprise

Large / regulated orgs

Custom 

Limits and terms set with you

Seats
Custom
Gateway requests
Custom
Spans
Custom
Retention
365+ days
  • Starter

    Indie developers & B2C apps

    $9 / mo

    2 seats · 100k requests / mo · 14 days

  • Adds approvals, AI Graph & ROI

    Pro

    Startups & small teams

    $29 / mo

    5 seats · 1M requests / mo · 30 days

  • Business

    Growing companies

    $99 / mo

    25 seats · 10M requests / mo · 90 days

  • Enterprise

    Large / regulated orgs

    Custom

    Custom limits · 365+ days

Prices in USD. We don’t take card payments online yet: when your trial ends, choose a plan with Request upgrade in the console or by email, and we activate it. Your data and setup stay. Pricing questions

Trace your first AI call in minutes.

Sign up, create an API key and point any OpenAI client at the gateway. Watch the call arrive in Live activity.

  • 3‑day trial with Pro features, no card.
  • The built‑in simulator answers until you add a provider key.
  • Metadata‑only capture per environment, if you need it.
Terminal
curl -i \  https://gateway.worksi.ai/v1/chat/completions \  -H "Authorization: Bearer $AIW_API_KEY" \  -H "Content-Type: application/json" \  -d '{"model": "gpt-5-mini",       "messages": [{"role": "user",                     "content": "Hello"}]}' # the response headers include# X-AIW-Trace-Id and X-AIW-Cost-USD