With two agents per power user, one 4x B200 machine takes the Claude Code load of about 200 subscriptions for about 30% less
DeepInfer and the inferencekey cache on 4x B200: 100 agents at 450K tokens, half the answers start in 2.5 s, 0 errors, about 30% less than subscriptions.
Can one machine do the Claude Code work of 200 subscriptions? We measured 100 agents. The 200 is modelled from those runs. One server with four NVIDIA B200 graphics cards in the inferencekey cloud ran DeepSeek V4.1 Flash on DeepInfer, the engine DeepSeek open-sourced in October. We added the piece the engine ships without, a cache. A hundred synthetic agents, sized like real Claude Code sessions, worked at once, each carrying almost half a million tokens of conversation. Half their answers started within about 2.5 seconds, and not one request failed. A simulator calibrated on those runs puts the machine at about 400 agents at once. If your power users run two agents each, that is the load of about 200 subscriptions, for about 30% less.

200 subscriptions assumes 2 agents at once per power user (400 agents, modelled). If every user were as intensive as our reference user, the simulator gives about 80.
| 200 Claude Max 20x subscriptions | 40,000 USD a month |
| One 4x B200 machine in the inferencekey cloud | 27,900 USD a month, about 30% less |
| Break-even against Claude Max 20x | about 140 subscriptions |
| Measured: 100 agents at about 450K tokens each | half the answers start within 2.55 s, 0 errors |
| Measured: tokens read per second with the cache | about 1.8 million, 96% of them from the cache |
| Measured: 397 new conversations of 440K, nothing cached, launched 16 at a time | 176 million tokens read in under 15 minutes, 0 errors |
| Modelled: agents at once, slowest 5% starting within 30 s | about 400 |
| Price per million tokens read | about 0.006 USD, about 80 times less than the Claude API |
| Claude Code changes needed | none, a few environment variables (endpoint, key, model name) |
A coding agent mostly re-reads, and the cache makes re-reading nearly free
Every time Claude Code takes a step (opening a file, running a test, editing a line), it sends the model the entire conversation again. In our tests that conversation was about 450,000 tokens, roughly a 1,300-page book. The model writes a few hundred tokens of answer, and on the next step the agent sends the whole book again, plus one new page.
In our last research post we measured one heavy developer for a month and found the same thing: 96.8% of what his agent read was material it had already read. Think of a shelf next to the model. What it read once stays on the shelf, and next time it picks it up ready instead of reading it again.
DeepInfer ships without that shelf. DeepSeek's own page for the project lists the cache as one of the pieces you have to build yourself. Without it, our machine read under half a book a second, every conversation from scratch. With the inferencekey cache, it read four books a second. The bill for coding agents is mostly a bill for re-reading, and whoever keeps the shelf sets the price.

Same machine, same model: the cache turns about 200 K tokens read per second into about 1.8 M.
Claude Code needs only a few environment variables, and finished a real task in 39 seconds
A few environment variables tell Claude Code where to send its requests, which key to use and which model to ask for. Point them at your inferencekey endpoint and it talks to DeepSeek V4.1 Flash instead of Anthropic, with the same commands and the same tools.

Environment variables point Claude Code at your endpoint. The inferencekey cache keeps every conversation in GPU memory and RAM.
The shelf has two levels. The fast one lives in the graphics cards' own memory and holds about 57 million tokens, roughly 120 conversations of our size. Behind it sits a second level in the server's ordinary memory, about ten times bigger at 617 million tokens, for conversations that have gone quiet for a moment.
On 24 October, Claude Code 2.1.310 set up this way finished a small real task in 39 seconds. The task was to implement a function called parse_duration so that a file of 15 tests passes. The agent made 14 tool calls (reading files, running the tests, editing the code) and all 15 tests passed.

Claude Code 2.1.310, unchanged, on our endpoint: a real task done in 39 s with 14 tool calls and 15 of 15 tests passing. One small task, not a benchmark.
The scene in the video above is the real app doing that task again, playing back the model answers recorded that day while the tools really run.
The credit is shared. DeepSeek's team trained DeepSeek V4.1 Flash, wrote DeepInfer and released it under the Apache 2.0 licence. NVIDIA's aiperf tool load-tested our simulator. Anthropic's Claude Code ran on top. Our part is the cache, the adapter that lets inferencekey run DeepInfer, the API that speaks Claude Code's language with your own keys, and the measurements.
100 agents at half a million tokens each: half the answers start in 2.5 seconds, zero errors
With 100 agents at once, each with about 450,000 tokens already on the shelf, half the answers started within 2.55 seconds and none failed. That is the size of a long Claude Code session late in the day. We ran it on 25 October, and over a one-minute window the machine took 237 agent turns. Each agent's answer streamed at about 135 tokens a second, a page in a few seconds.

100 agents, caches warm: 0 errors and answers starting in about 2.5 s. The slowest 5% wait behind new 450K conversations and miss the 15 s target.
Now the part that did not pass. Our bar is strict: 95% of turns must start answering within 15 seconds. Only 2 of our 8 test runs cleared it. All 8 had zero errors. In this run, 83% of the turns whose conversation was already on the shelf started within 15 seconds. The slowest 5% waited 37 seconds or more, so the run failed. Seven brand-new conversations arrived in that minute, each needing its full 450,000 tokens read from scratch. The waiting turns queued behind them, like a band waiting while the one before packs up all its gear. Giving priority to turns already on the shelf, or capping how many new conversations start at once, would likely help. We have not tested that.
Stress test from cold: 176 million tokens read from scratch in under 15 minutes, zero errors
With nothing on the shelf, the machine read conversations from scratch at a steady 200,000 tokens per second without a single error. On 24 October we fed it 399 new conversations of about 440,000 tokens each, 16 at a time, with an empty cache. That is harsher than any real morning, where sessions start small.
In 14.6 minutes, 397 of them were read in full and answering: 176 million tokens. Counted from when each one was let in, the first answer took about 14 seconds (median). Counted from the start of the test, half waited more than six minutes and the last nearly 15. The last two were still in line when our 15-minute test limit ran out. If a whole team arrived at once with giant conversations, the queue would be the problem, not errors.

Stress test with nothing cached: 397 conversations of 440K tokens, 176 M tokens read from scratch in under 15 minutes, 0 errors.
Day to day, about 400 agents fit, according to a simulator built on 7,879 real turns
Everything above is measured. This section is modelled, and the difference matters.
About 250 agents fit if 95% of answers must start within 15 seconds, about 400 if 30 seconds is fine. At 400, a typical answer takes about 21 seconds to start, and 1 in 20 waits about 30 seconds or more.

Modelled: a simulator calibrated on 7,879 real turns fits 250 agents if 95% of answers start within 15 s, 400 within 30 s.
Our measured tests were deliberately harsh: every agent paused only three seconds between steps. Real sessions are calmer, so we built a simulator of this machine. We calibrated it on every turn from both test campaigns until it reproduced what the real machine did, including its breaking point. Then we drove it with 30 days of Claude Code usage from our reference user: 140,300 model calls, with their real pauses.
The machine does not do more work at 400 than at 250. It answers about 450 model calls a minute either way. With more agents, each one simply waits longer and calls less often, every 52 seconds instead of every 34.
200 subscriptions if power users run two agents each, and below about 140 the machine costs more
The 200 in the title rests on one assumption: a power user runs two agents at once, all day. The simulator's 400 agents divided by two gives about 200 subscriptions.
The catch is speed. On Claude, our reference user's agents call the model every 27 seconds on average. At 400 agents on this machine, each one calls every 52 seconds. A task would take almost twice as long.
There is a stricter way to count. Our reference user is a very heavy user of ours. In an average peak hour he calls the model about every 11 seconds. At 450 calls a minute, the machine keeps about 80 people like him at full speed. The machine only costs less than Claude Max 20x subscriptions above about 140 subscriptions. At the stricter count of 80, it costs 27,900 USD a month against 16,000 in subscriptions, about 75% more.
Our reference user is not typical, though. Besides his own sessions he runs autonomous agents for workflows and business tasks, so an ordinary Claude Max user loads the machine less. Your own Claude Code logs can tell you where your team sits.
About 0.006 USD per million tokens, 80 times less than the Claude API
The other comparison is the API. Our reference user's real month of Claude Code, priced at Claude's API list rates, came to 12,365 USD for 26.2 billion tokens, or 0.47 USD per million. The machine works out about 80 times cheaper per token read. That rests on the 1.8 million tokens per second of one busy minute in our harshest test, stretched over all 730 hours of a month, so treat it as a best case.

27,900 USD a month at 1.8 M tokens per second is about 0.006 USD per million tokens. That is about 80 times less than a real heavy month on the Claude API.
The comparison is fair because both sides are mostly re-reading: 96% from the cache in our test, 96.8% in the real Claude month. A team that sleeps at night pays more per useful token. The 30% and the 80 times answer different questions, so do not multiply them.
Quality: first on LiveBench agentic coding, and cached answers match fresh ones
On an outside coding benchmark, DeepSeek V4.1 Flash ranks first. LiveBench runs an agentic coding category, where a model has to finish a real coding task step by step. On 10 October, DeepSeek V4.1 Flash scored 77.3 and ranked first of 69 models. Claude Opus 5.5 scored 71.7. We did not run this benchmark ourselves.

LiveBench agentic coding (livebench.ai, 2026-10-10): DeepSeek V4.1 Flash 77.3 against Claude Opus 5.5 71.7. External benchmark, not measured by us.
A broader index from Artificial Analysis points the other way: Opus 5.5 scores 58 and Flash 39. For a team moving from Opus, that gap is the honest caveat, so try Flash on your own tasks before you switch.
Our own check is that the shelf does not change the answers. We hid one fact in a long document, up to 200,000 tokens, and asked for it twice: once read from scratch, once served from the cache. Five documents out of five gave the same right answer both ways. The cached version answered in under a second. The 200,000-token one took 13 seconds read from scratch.
That check earned its place. An earlier version of our adapter served nothing from the cache, and this check caught it before any load test ran. We fixed it, and the fixed version served repeats 95 to 99% from the cache. Every measured number in this post comes from it.
Your code goes where you decide
With Claude, or with DeepSeek's API, your code and the data it touches end up with a model provider. With inferencekey on your own GPUs, it never leaves your network. With the inferencekey cloud, where these tests ran, it goes to our GPUs, not to Anthropic or OpenAI. In both cases the API keys stay on your side, inside your network. If one leaks, you rotate it there. The price and the tests here are for the inferencekey cloud. We have not priced or tested the on-premise case.
200 agents at 500K overflow the fast shelf, so about 120 is the ceiling at that size
At 500,000-token conversations the fast shelf is the ceiling. With 200 agents all asking at once, their conversations did not fit in the graphics cards' memory. The run collapsed: half the answers took over two minutes to start. Nothing was lost and nothing errored, but it was unusable. At that harsh pace, about 120 conversations of this size can be served at once.
Most tests skipped the inferencekey API and called the engine directly. The one that used it had zero errors, but its slowest answers took 22 seconds to start, not 15. It was a single short window, so we cannot yet say how much the extra hop costs on long conversations.
Worth it above about 140 subscriptions, if slower answers at peak are acceptable
Above about 140 Claude Max 20x subscriptions, one machine is a flat bill with no per-person usage cap. The ceiling is shared, about 400 agents, and you keep Claude Code. Below about 140, subscriptions cost less. If your code cannot leave the building, the same setup can run on your own GPUs. If you have ten developers, subscriptions or DeepSeek's API are still the simpler choice.
Run it yourself
Follow the DeepInfer on 4x B200 guide to serve DeepSeek V4.1 Flash and point Claude Code at it. You need four B200 cards, or a workload on the inferencekey cloud, and an inferencekey API key. With the weights on disk, our workload was ready in under two minutes.
For engineers
Exact figures, method and limits behind the narrative. All measured runs used DeepSeek-V4.1-Flash on DeepInfer, 4x NVIDIA B200 on the inferencekey cloud. Dates are UTC.
Hardware and software
| Item | Value |
|---|---|
| GPUs | 4x NVIDIA B200 |
| Model | DeepSeek-V4.1-Flash, weights 476 GB, loaded from local container disk |
| Engine | DeepInfer, wrapped as the inferencekey custom Python backend deepinfer-v41-flash, 4 ranks, expert parallelism |
| Backend version | 0.3.2 for every measured step (fix in inferencekey SDK commit 66bf620) |
| GPU KV pool | 57,065,472 tokens (14.27 M per rank) |
| L1 host RAM tier | 128 GiB per rank, 617,009,664 tokens in total |
| Max model length | 1,064,960 tokens |
| Endpoint paths | OpenAI /v1/chat/completions and Anthropic /v1/messages |
| Machine setup | weights plus DeepInfer install 5 min (b200-final) and 4 min (b200-500k), 11 min on an earlier machine |
| Workload deploy through inferencekey | ready in 105 s |
Deploy and connect
The deploy uses the inferencekey SDK:
package_backend:deepinfer-v41-flash0.3.2, entrypointdeepinfer_backend:DeepInferBackend, apiopenai-chat.publish_custom_backendto the tenant.ManagementClient.ensure(WorkloadSpec(slug="deepinfer-v41-flash", model="deepseek-v4.1-flash", backend="deepinfer-v41-flash", ...))with configengine=deepinfer,ep=4,CUDA_VISIBLE_DEVICES=0,1,2,3.wait_until_ready.
The manager serves /endpoint/<project>/<workload>/v1/messages (Anthropic) next to /v1/chat/completions and /v1/models. Auth is Authorization: Bearer, with x-api-key as a fallback. Different values in both headers give a 401. /v1/messages needs a local GPU chat workload. Claude Code appends /v1/messages itself:
export ANTHROPIC_BASE_URL=https://api.inferencekey.com/endpoint/<project>/<workload>
export ANTHROPIC_AUTH_TOKEN=ik_live_...
export ANTHROPIC_MODEL=deepseek-v4.1-flash
export ANTHROPIC_DEFAULT_HAIKU_MODEL=deepseek-v4.1-flash
export ANTHROPIC_DEFAULT_SONNET_MODEL=deepseek-v4.1-flash
export ANTHROPIC_DEFAULT_OPUS_MODEL=deepseek-v4.1-flash
export CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1
claude
Smoke test before the campaign: OpenAI chat, streaming, and Anthropic /v1/messages with a tool all answered correctly (stop_reason: tool_use with a Read call). Step by step, with the backend code, in the docs guide.
Workload and pass criteria
Each user is an agent session that starts at the tier size (128K tier: 96,000 tokens, compacts at 128,000. 500K tier: 440,000, compacts at 500,000. 1M tier: 940,000, compacts at 1,000,000). New input per turn p50 / p90 / p99 1,100 / 5,500 / 51,000 tokens, output p50 / p90 423 / 1,700 (capped at 1,700), drawn from real Claude Code percentiles. Think time 3 s mean, warm-up 16 sessions at a time, temperature 0.6.
A step passes when, over warm measured turns: TTFT p95 <= 15 s, tok/s per user p50 >= 20 and p10 >= 10, errors <= 1%, cache hit >= 90%.
Every measured step
| Step | Path | Verdict | Turns (cold) | TTFT p50 / p95 (s) | tok/s p50 / p10 | Cache | Goodput | Errors |
|---|---|---|---|---|---|---|---|---|
| 500K x 50 | direct | PASS | 75 (0) | 2.47 / 4.41 | 162.9 / 99.5 | 100% | 100% | 0 |
| 500K x 100 | direct | FAIL (TTFT p95) | 237 (7) | 2.55 / 36.98 | 134.6 / 39.1 | 99% | 83% | 0 |
| 500K x 200 | direct | FAIL | 17 (0) | 151.09 / 160.74 | 26.2 / 9.2 | 41% | 0% | 0 |
| 128K x 300 | direct | PASS | 521 (48) | 5.57 / 14.76 | 35.4 / 16.3 | 98% | 91% | 0 |
| 128K x 350 | direct | FAIL | 676 (85) | 7.39 / 20.98 | 22.3 / 8.4 | 98% | 76% | 0 |
| 128K x 400 | direct | FAIL | 652 (52) | 7.27 / 16.93 | 29.1 / 9.5 | 98% | 80% | 0 |
| 1M x 48 | direct | FAIL (TTFT p95) | 100 (3) | 3.64 / 28.85 | 69.4 / 22.4 | 100% | 80% | 0 |
| 128K x 300 | inferencekey | FAIL (TTFT p95) | 479 (28) | 5.61 / 22.17 | 40.1 / 13.8 | 98% | 83% | 0 |
TTFT, tok/s and Cache cover warm measured turns, which is why 500K x 100 shows 99% here against 96.1% over all measured input tokens (cold turns included) in the narrative. Goodput is the share of warm turns with TTFT <= 15 s and tok/s >= 10. At 128K the limit is new-prefill compute (above about 100 to 116 K new tokens/s the first token climbs). At 500K the limit is GPU KV memory.
The 100-agent warm run (direct-500K-0100-01, 2026-10-25)
237 measured turns (7 cold), 0 errors, 60.2 s window (first measured turn start to last measured turn end). Input 108,173,087 tokens, of which 103,989,632 cached (96.1%): 1,797,048 input tok/s. Output 129,332 tokens: 2,149 tok/s. New prefill 69,499 tok/s. Warm TTFT p50 2.55 s, p95 36.98 s. Cold TTFT in the window p50 26.55 s. tok/s per user p50 134.61, p10 39.07. KV ratio 0.79. These rates are token sums over the window, not engine counters. The slow warm turns queued behind the 7 cold 450K prefills, not behind L1. Prioritising warm turns or capping concurrent cold sessions would likely help (untested). The simulator attributes the tail to a burst of simultaneous compactions, because every campaign session started at 440K together.
The cold stress run (direct-500K-0400-00, 2026-10-24)
399 fresh sessions of about 440K launched 16 at a time, nothing cached. 397 finished with 0 errors before the step hit max_step_s 900 s, so its formal verdict is "warmup timeout" and it has no measured phase. Prompt p50 440,993. Input 176,154,816 tokens (0 cached), output 222,439. Window 878.2 s (14.64 min): about 200.6 K input tok/s. Per-minute read rate, binned by first token, 206 to 237 K tok/s for the first 12 minutes, then falling as the last sessions finish. TTFT p50 13.72 s, p95 28.73 s, counted from each session's own launch after the 16-at-a-time queue. Counted from the start of the step, first tokens arrived at median 381 s and at most 874.7 s. L1 active, 58 GB used per rank, promotions at 4.1 GB/s. Cold prefill in the other 500K warm-ups: 191.7 K tok/s (50 sessions), 214.3 K (100), 244.6 K (200), cold TTFT p50 12.5 to 12.8 s.
Why 500K x 200 collapsed
About 50 requests in flight per rank at about 445K tokens each is about 22 M tokens, against 14.27 M of GPU KV per rank. L1 lost nothing (dropped = 0) and logged 54 to 56 promotion timeouts per rank: a session promoted from L1 waited up to 2 s for GPU room and was then recomputed. L1 helps idle sessions, not sessions that are all in flight at once. At 3 s think time, about 120 sessions of 450K is the most that can decode at once (57.1 M / 0.45 M, with some headroom).
Simulator (modelled)
Event-driven model of DeepInfer 0.3.2 on 4x B200: session-affinity routing to one rank, GPU cache 14,266,368 and L1 154,252,416 tokens per rank, EP lockstep, chunked prefill sharing steps with decode, L1 promotion with a 2.0 s wait, and an inferred per-GPU front queue. Calibrated by replaying all 7,879 recorded turns of both campaigns and fitted on the warm measured turns of 6 direct steps. It reproduces the 500K x 200 collapse in closed loop (model about 200 s TTFT p50, real 151 s). Cold-run time 822 s modelled against 878 s real.
Workload: 30 days of the reference user's Claude Code transcripts, 140,300 calls from 3,912 agents. Context grows by a mean 2,597 tokens per call (median 1,406), mean output 663 tokens, mean pause 13.9 s (pauses over 600 s excluded), compaction at 500K back to about 43K.
NVIDIA aiperf 0.13.0 against the simulator, fixed-schedule closed loop, 600 s measured after 90 s warm-up, one run per point:
| Agents | SLO | TTFT p50 / p95 (s) | req/s | Interval per agent (s) | Errors | Verdict |
|---|---|---|---|---|---|---|
| 250 | 15 s | 3.68 / 13.54 | 7.428 | 33.65 | 0 | PASS |
| 275 | 15 s | 6.63 / 15.42 | 7.525 | 36.54 | 0 | FAIL (narrow) |
| 300 | 15 s | 7.97 / 18.37 | 7.652 | 39.21 | 0 | FAIL |
| 400 | 30 s | 20.82 / 29.59 | 7.632 | 52.41 | 0 | PASS |
| 425 | 30 s | 22.63 / 34.37 | 7.613 | 55.82 | 0 | FAIL |
Throughput saturates near 7.5 req/s whatever the SLO.
From agents to subscriptions (derived from modelled)
- About 200: 400 agents (TTFT p95 <= 30 s) / 2 agents at once per power user, all day (our assumption). Each agent calls every 52 s, against 27 s on Claude for the reference user.
- About 80: 7.5 req/s / 0.092 calls/s, the reference user's mean peak-hour call rate. Same for both SLOs.
- Other counts: about 170 counting the reference user's 2.3 active agents at peak (400 / 2.3), about 140 on his monthly mean of 0.054 calls/s (not valid for sizing), about 38 if everyone is in their busiest hour at once (0.198 calls/s).
- The reference user includes autonomous agents, so a typical Claude Max user loads the machine less. The call rates come from our internal analysis of his transcripts. No saved script reproduces them, though the division checks out.
Cost (derived)
- Machine: 27,900 USD a month, public price of the 4x B200 machine in the inferencekey cloud.
- Subscriptions: 200 x 200 USD (Claude Max 20x) = 40,000 USD. 1 - 27,900 / 40,000 = 30.25%, 12,100 USD a month less. Break-even against Max 20x at 27,900 / 200 = about 140 subscriptions. At the stricter count of 80: 16,000 USD in subscriptions, so the machine costs about 75% more.
- Per million input tokens: 27,900 / (1.8 M x 3,600 x 730 / 1e6) = 0.0059 USD, about 0.006, at full use for 730 h. It prices input tokens only, with a cache-heavy mix (96.1% here, 96.8% cache reads in the real Claude month).
- Claude API, one heavy developer's month (2026-09-21 to 2026-10-20): 12,365 USD / 26,161 M tokens = 0.47 USD per million. 0.47 / 0.006 = about 80x. This is a different 30-day window from the simulator's reference month, same user.
- DeepSeek API, same month: 274 USD, about 0.0105 USD per million, almost double our machine. It is the cheap hosted option, but the code still goes to a model provider.
- The 30% (against subscriptions) and the 80x (per token, against the API) answer different questions. Do not combine them.
Quality
- Quality gate (
quality_check.py): one fact hidden in filler at a given depth, sent cold and then from the prefix cache at temperature 0. Run 3 (2026-10-25, backend 0.3.2):
| Case | Prompt tokens | Cached tokens | Cold (s) | Cached (s) | Answer |
|---|---|---|---|---|---|
| 16K, needle at 50% | 15,570 | 15,232 | 1.25 | 0.79 | match |
| 64K, needle at 10% | 63,767 | 63,488 | 3.93 | 0.78 | match |
| 64K, needle at 50% | 63,667 | 63,360 | 4.31 | 0.80 | match |
| 64K, needle at 90% | 63,715 | 63,360 | 3.91 | 0.79 | match |
| 200K, needle at 30% | 200,542 | 200,192 | 12.97 | 0.80 | match |
Run 2 (2026-10-24, 0.3.2) also passed 5/5. The gate checks needle retrieval only, not coding quality. L1 answer equivalence was checked only on synthetic weights in a 1x B200 test.
- Backend 0.3.1 served 0 cached tokens on 4 ranks: the rank loop called
cache.forget()on the last output, but DeepInfer finalizes the sequence one step later. Fixed in SDK commit66bf620(output_finishedplus a reap after 30 s), shipped as 0.3.2, which served repeats 95 to 99% from cache. - LiveBench agentic coding (2026-10-10, max effort, full models by their own providers): DeepSeek-V4.1-Flash 77.3 (1st of 69), Claude Opus 5.5 71.7, Claude Fable 5.1 66.1, Claude Opus 5 65.2. Artificial Analysis Intelligence Index (2026-10-16): Opus 5.5 58, Flash 39. Cited from our 2026-10-20 post, not re-verified.
Claude Code task (2026-10-24)
Claude Code 2.1.310, unchanged, ANTHROPIC_BASE_URL at the endpoint, model deepseek-v4.1-flash. Task: implement parse_duration in durations.py so test_durations.py passes. 15/15 tests, 39 s wall clock, 37.3 s inside Claude Code (API time 32.0 s, first token 2.6 s). 14 tool calls (Read 7, Bash 4, Edit 2, Write 1, one Bash call denied by permissions), 15 turns, 22,117 input, 173,696 cache read and 3,549 output tokens. The video's Claude Code scene is the real app filmed doing the same task again against a local Anthropic Messages server that streams back the model answers recorded in this session, with the tools running for real.
Limits
- Every measured step used a 3 s mean think time, so nearly every agent was active at once. These are worst-case agent loads, not human pacing. No human-paced run was measured, so L1's benefit for idle sessions is unmeasured.
- Throughput figures are token sums over short windows (22 to 175 s), not engine counters. The cold run only completed warm-up, so its rate is a prefill rate.
- The inferencekey gateway path had one confirmation step (128K x 300: TTFT p95 22.17 s against 14.76 s direct), 479 turns in a 59 s window. Its overhead on long-context latency is not established. The 1M tier did not run through the gateway (it needs
max_model_len1,068,000, above the 1,064,960 configured). - All agent and subscription counts are modelled. The simulator's front queue is inferred and sets the about 7.5 req/s ceiling. Decode speed in the model is pessimistic at 128K and 500K and optimistic at 1M, and it understates the slow tail (closed-loop p95 5.90 s against 36.98 s real at 500K x 100). Its simulated context averages about 270K per call against about 200K for the reference user. One aiperf run per point, no confidence intervals.
- The price per million assumes 730 h of full use and covers input tokens only.
- The Claude Code task is one small task, not a benchmark. Coding quality on your codebase was not measured.
- Not measured: 500K x 300 (stopped during warm-up), 1M x 36 (skipped).
Sources
Internal engineering record docs/deepinfer-4xb200/ in the inferencekey repository (README.md, real-tests.md, simulation.md, cost-and-quality.md, methodology.md, data/). Raw step files of campaigns b200-final and b200-500k, from which we recomputed the 100-agent and cold-run figures. Simulator outputs rehearsal/sim500k/runs/aiperf_results.json (15 s SLO) and rehearsal/sim500k/runs/aiperf_results_ttft30.json (30 s SLO). DeepInfer (Apache 2.0). LiveBench. Artificial Analysis. Claude pricing. Our earlier post on what a month of coding agent costs.