For teams shipping AI agents, chat and copilots
v1.0 · 25 September 2026 · Changelog
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.
- 0.82 ms p95 gateway overhead, measured — how we measured gateway overhead
- 3‑day trial with Pro features, no card
- No provider key needed to try: built‑in simulator
- No mark‑up on model tokens: your provider key
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,)import OpenAI from "openai" const client = new OpenAI({ baseURL: "https://api.openai.com/v1", baseURL: "https://gateway.worksi.ai/v1", apiKey: process.env.OPENAI_API_KEY, apiKey: process.env.AIW_API_KEY,}) // every call is now traced and pricedconst reply = await client.chat .completions.create({ model: "gpt-5-mini", messages, })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
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.
The management loop
From the first request to measured value.
Six stages, one product. Each stage feeds the next, and the loop closes when what you measure changes what you control.
- 01ConnectIntegrationsSwap the base URL, add an SDK, connect over MCP or send OpenTelemetry.
- 02ObserveObservabilityLive activity, traces, runs and cost per call, plus an inventory of every agent and model.
- 03DetectIncidentsEleven detectors open deduplicated incidents for loops, outages, spikes and stuck runs.
- 04UnderstandDiagnosisEvidence packs, the failure location and a diagnosis that cites its evidence.
- 05ControlGovernancePolicies, approvals, end‑user quotas, pause and stop, enforced at the gateway.
- 06MeasureROI & costSpend by agent, team and model, outcomes and ROI in management language.
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. The run: support‑ticket‑resolution, 9 spans on a 1.5 s timeline.
2. The first failure, flagged: lookup_order failed, and a line marks the moment.
3. Latency and cost on every span: 443 ms and $0.00041 for this model call.
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
- run
triage‑agent starts a support‑ticket‑resolution run in production and hands the research step to resolver‑agent.
- tool
lookup_ordercalls orders-db:503Service Unavailable (connection pool exhausted). - ×3
Third failure within 10 minutes: the
tool_failuredetector’s threshold. - INC‑5
Incident opened. Critical. Later failures are counted as occurrences (44 so far), not opened again.
- evidence
Failure location and evidence: failing span
3eb91d0f65c815a4, the error message and an 18% tool error rate. - 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.
- 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
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.
{ "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"}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"HTTP/1.1 403 Forbidden{ "error": { "message": "model \"gpt-4o\" is not in the allowed models of policy \"Production model allowlist\"", "type": "permission_error", "code": "model_not_allowed", "param": null, "aiw_request_id": "req_…" }}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-UserandX-AIW-End-User-Plan. Over the limit, the gateway answers429 end_user_quota_exceeded. - Pause and stop
- Pause an agent or stop a run from the console. The gateway answers
423 agent_pausedor409 run_stopped.
- Approvals. Risky tools and recovery actions wait for a person. Four‑eyes approval on Business.
- End‑user plans. Send
X-AIW-End-UserandX-AIW-End-User-Plan. Over the limit, the gateway answers429 end_user_quota_exceeded. - Pause and stop. Pause an agent or stop a run from the console. The gateway answers
423 agent_pausedor409 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.
| Metric | Result | Conditions |
|---|---|---|
| Streaming time to first byte, p95 | 1.09ms | Streaming chat completions ramped to 100 streams/s; 27,906 streams, 0 failures. |
| Span ingestion on one replica | 2,000spans/s | 360,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
- Provider outage, provider_failure: 0.13 s
- Policy violation, policy_violation: 0.54 s
- Repeated tool call, repeated_tool_call: 0.72 s
- Cost spike, token_anomaly: 0.97 s
- Tool failure, tool_failure: 1.3 s
- Agent loop, agent_loop: 1.9 s
- Provider timeout, timeout: 5.0 s
- Stuck workflow, stuck_workflow, 60 s threshold: 63.2 s
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 requestsRequests
- 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 requestsRequests
- 1M / mo
- Spans
- 10M / mo
- Retention
- 30 days
Business
Growing companies
$99/ month
or $990 / year, two months free
- Seats
- 25
- Gateway requestsRequests
- 10M / mo
- Spans
- 100M / mo
- Retention
- 90 days
Enterprise
Large / regulated orgs
Custom
Limits and terms set with you
- Seats
- Custom
- Gateway requestsRequests
- 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.
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