You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Zen Go: deepseek-v4.1-flash decodes ~30% slower than the same model on Command Code and DeepSeek's own API #51010
Throughput on the Zen Go endpoint (https://opencode.ai/zen/go/v1) for deepseek-v4.1-flash is consistently lower than the same model served elsewhere. Same machine, same client, same model family, measured over the last 4 days:
route
steps
median tok/s
p10
median TTFT
median step
Zen Go — deepseek-v4.1-flash
1,989
184
107
1.7s
6.0s
Command Code — deepseek/deepseek-v4.1-flash
281
271
212
2.3s
4.2s
DeepSeek's own API — deepseek-flash
1,359
233
181
1.0s
3.7s
tok/s is output tokens ÷ streaming window, taken from the client's own session records (3,630 steps, ~100k-token contexts, reasoning effort max). Time to first token is comparable on all three routes, so the gap is decode throughput, not queueing.
It also looks like a regression rather than a constant: in the same records this Go route measured 249-266 tok/s on 09-17 and 09-18, then 169 / 103 / 125 tok/s on 09-19 / 09-20 / 09-21.
Could you confirm whether Go-route requests are served on different capacity than the pay-as-you-go Zen endpoint, and whether the weekly quota affects decode speed? Happy to run a controlled A/B (same prompt, same model, the three routes) if that helps.
Steps to reproduce
Send a long-context request (~100k input tokens, max reasoning effort) to https://opencode.ai/zen/go/v1/chat/completions with model: deepseek-v4.1-flash.
Compute output tokens ÷ stream duration.
Repeat the identical request against Command Code and DeepSeek's own API and compare.
OpenCode version
Not the OpenCode client — a third-party OpenAI-compatible harness, which the Zen docs describe as supported. Requests carry x-opencode-session.
Three weeks on, this route has got worse rather than better, so here are fresh numbers using the same method (output tokens ÷ the message's own stream window, from my client's records):
period
steps
median tok/s
p10
09-17 – 09-18 (launch week)
4,258
254
183
09-24 (the report above)
1,184
183
110
10-13 – 10-14
5,223
119
70
End to end — what the user actually waits for, TTFT included — a step now medians 80 tok/s against 124 at launch, and about a quarter of the last two days' steps come in under 60 tok/s.
The peer routes on the same machine over 10-12 – 10-14 are unchanged: Command Code 177 median (n=2,972) and DeepSeek's own API 194 (n=27). So it still looks specific to the Go gateway rather than the model or my connection.
A controlled probe today — same prompt, 600 output tokens, no context — gave 132 / 143 / 186 tok/s, and one run at 44 tok/s with a 16.2s TTFT, so the route also stalls now rather than just decoding slowly.
Still hoping for an answer on whether Go-route requests are served on different capacity from the pay-as-you-go Zen endpoint. Happy to run the identical-prompt A/B against both endpoints any time if that helps.
Thanks for the report. This is about how the model itself behaves when served through OpenCode Go (repeating itself, broken tool calls, speed, or rejecting large requests), not a bug in the OpenCode app. We pass these reports to our upstream providers. Starting a new session or running /compact usually helps with loops and oversized-request errors. Closing this to keep the tracker focused; the main discussion is in #50206.
Adding data to this, since the Go vs free capacity question here never got an answer.
DeepSeek V4.1 Flash feels slow in OpenCode. The token speed is fine. The problem is the wait before each step produces anything, and it adds up over many agentic steps. I measured it from my local session DB instead of guessing.
Setup: Poland (CET), macOS, OpenCode 2.2.0, 15–28 Oct 2026, 149 sessions, ~14k DeepSeek steps over three routes. TTFT here means the time from when a step is created to its first reasoning or tool part, so it includes OpenCode's own request setup. Error steps are excluded.
route
TTFT median / p90 (s)
whole model stream median / p90 (s)
output tok/s (median)
steps with TTFT > 10 s
DeepSeek API direct (deepseek/deepseek-flash, 1,405 steps)
1.5 / 2.4 (max 6.3)
3.5 / 12.7
~90
0.0%
OpenCode Go (opencode-go/deepseek-v4.1-flash, 8,169 steps)
On Go, steps with a model stream over 30 s are 4% of steps but take 25% of all model time. The mean model time per step is 9.4 s on Go vs 5.9 s direct.
Tools aren't the bottleneck: the shell median is 0.1 s. The median prompt runs 9 steps, and ~92% of turn wall time is model time.
Go TTFT is barely better than the free tier, with the same ~6% of steps waiting more than 10 s.
Activity
tigerwho1888 commentedon Oct 15, 2026
Three weeks on, this route has got worse rather than better, so here are fresh numbers using the same method (output tokens ÷ the message's own stream window, from my client's records):
End to end — what the user actually waits for, TTFT included — a step now medians 80 tok/s against 124 at launch, and about a quarter of the last two days' steps come in under 60 tok/s.
The peer routes on the same machine over 10-12 – 10-14 are unchanged: Command Code 177 median (n=2,972) and DeepSeek's own API 194 (n=27). So it still looks specific to the Go gateway rather than the model or my connection.
A controlled probe today — same prompt, 600 output tokens, no context — gave 132 / 143 / 186 tok/s, and one run at 44 tok/s with a 16.2s TTFT, so the route also stalls now rather than just decoding slowly.
Still hoping for an answer on whether Go-route requests are served on different capacity from the pay-as-you-go Zen endpoint. Happy to run the identical-prompt A/B against both endpoints any time if that helps.
neriousy commentedon Oct 21, 2026
Thanks for the report. This is about how the model itself behaves when served through OpenCode Go (repeating itself, broken tool calls, speed, or rejecting large requests), not a bug in the OpenCode app. We pass these reports to our upstream providers. Starting a new session or running
/compactusually helps with loops and oversized-request errors. Closing this to keep the tracker focused; the main discussion is in #50206.LOFWagner commentedon Oct 26, 2026
Its now sitting at sub 40 tok/s for me, anyone else having the same performance?
Wulgaren commentedon Oct 28, 2026
Adding data to this, since the Go vs free capacity question here never got an answer.
DeepSeek V4.1 Flash feels slow in OpenCode. The token speed is fine. The problem is the wait before each step produces anything, and it adds up over many agentic steps. I measured it from my local session DB instead of guessing.
Setup: Poland (CET), macOS, OpenCode 2.2.0, 15–28 Oct 2026, 149 sessions, ~14k DeepSeek steps over three routes. TTFT here means the time from when a step is created to its first reasoning or tool part, so it includes OpenCode's own request setup. Error steps are excluded.
deepseek/deepseek-flash, 1,405 steps)opencode-go/deepseek-v4.1-flash, 8,169 steps)opencode/deepseek-v4.1-flash-free, 4,500 steps)Questions:
Related: #57055, #57849, #57403, #58003, #57270, #55579, #39845, #50155. I can share the aggregation query and anonymised timing rows if that helps.