Skip to content

Zen Go: deepseek-v4.1-flash decodes ~30% slower than the same model on Command Code and DeepSeek's own API #51010

Closed as not planned

Description

@tigerwho1888

Description

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

  1. 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.
  2. Compute output tokens ÷ stream duration.
  3. 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.

Operating System

macOS, Apple Silicon, wired connection.

Activity

  1. tigerwho1888 commented on Oct 15, 2026

    @tigerwho1888
    Author

    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.

  2. neriousy commented on Oct 21, 2026

    @neriousy
    Member

    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.

  3. LOFWagner commented on Oct 26, 2026

    @LOFWagner

    Its now sitting at sub 40 tok/s for me, anyone else having the same performance?

  4. Wulgaren commented on Oct 28, 2026

    @Wulgaren

    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) 3.1 / 6.5–9.1 (max 184) 5.9–6.1 / 16.8–19.0 69–87 5.7%
    OpenCode free (opencode/deepseek-v4.1-flash-free, 4,500 steps) 2.4–2.5 / 6.2–7.8 (max 249) 5.0–5.9 / 13.7–29.7 72–98 6.1%

    Questions:

    1. Regions: the Go docs say DeepSeek V4.1 Flash / V4 Pro need the Global region (the default allowed regions are Europe and US), and DeepSeek V4 Flash on suddenly requires "Enable models hosted in China" for OpenCode Go subscription #39845 shows "only available hosted in China". When will DeepSeek be served from the US or Europe? From Europe, that would likely cut TTFT a lot.
    2. Go vs free capacity: would you separate OpenCode Go (paid) traffic from free-tier traffic for DeepSeek, so Go users get faster, steadier responses?

    Related: #57055, #57849, #57403, #58003, #57270, #55579, #39845, #50155. I can share the aggregation query and anonymised timing rows if that helps.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions