Repository navigation
Description
Description
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. #51010 was closed with a pointer to #50206, but that thread is about malformed tool calls, so I'm opening this one for latency and two direct questions.
Questions
- 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.
- Go vs free capacity: would you separate OpenCode Go (paid) traffic from free-tier traffic for DeepSeek, so Go users get faster, steadier responses? On my data Go is barely better than the free tier.
Data
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% |
Median / p90 TTFT at matched context size (~99% cache hits):
| context | direct | Go |
|---|---|---|
| <50k | 1.1 / 1.5 | 1.9 / 7.7 |
| 50–150k | 1.3 / 1.9 | 2.1 / 5.8 |
| 150–300k | 1.7 / 2.4 | 3.0 / 6.3 |
| >300k | 2.2 / 3.2 | 4.0 / 8.7 |
- Decode speed is similar on every route. The difference is the first-token wait and its long tail. Go's TTFT also grows with context, the same pattern as opencode-go: deepseek-v4.1-flash first-token latency scales with context (p90 ~25s at 657k, minutes at the tail), plus empty completions and missing finish_reason #57055.
- 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.
- Errors are rare (<0.5%): free-tier 429s, a few
ECONNRESET/ timeouts, and "This Go model requires Global regions" (400).
Expected
First-token latency like the direct API (~1.5 s median, no tail over 10 s) on the Go route, or DeepSeek served from the EU/US.
Related: #51010, #57055, #57849, #57403, #58003, #57270, #55579, #39845, #50155
OpenCode version: 2.2.0
OS: macOS 27.0.1 (Apple Silicon)
Plugins: none
Steps to reproduce: there's no single repro. In sessions on opencode-go/deepseek-v4.1-flash, compare the per-step first-part timestamps in session_message against deepseek/deepseek-flash. I can share the aggregation query and anonymised timing rows.
Plugins
none
OpenCode version
2.2.0
Steps to reproduce
No response
Screenshot
No response
Operating System
macOS 27.0.1
Terminal
MacOS Terminal
Activity
opencodejr commentedon Oct 28, 2026
Thanks for the detailed measurements, and for splitting the latency out from the malformed tool-call thread.
You're asking two things about the OpenCode Go service: whether DeepSeek V4.1 Flash / V4 Pro will be served from EU or US regions instead of only China (Global region), and whether paid Go traffic could get capacity separate from free-tier traffic so time to first token is faster and steadier. Your data shows the client itself isn't slow: OpenCode reaches the first token in ~1.5 s against DeepSeek's API directly. So these are service and hosting questions rather than bugs in the app. I've recorded this as a feature request for the maintainers to consider. I can't promise anything about whether or when the hosting or capacity will change.
Related issues:
deepseek-v4.1-flashTTFT grows with context and has a long tail, also reproduced with raw HTTPdeepseek-v4.1-flashon Go than on DeepSeek's own APIYour aggregation query and anonymised timing rows could help if maintainers want to compare against server-side logs, so please keep them handy.
J-eremy commentedon Nov 2, 2026
Cross-posting from #61077 (closed as duplicate of this issue), because the jurisdiction-based part of this ask doesn't exist in this thread yet — only the latency angle does. I'm not reopening a forum war; I'd just like the substantive question visible in whichever thread maintains answer it. Background and full context: #61077
On top of the EU latency question above, there's a second reason DeepSeek-as-Global-only on Go deserves an answer: jurisdiction, and what a paid subscription actually covers.
What I'd consider an answer here (either or explicit-no):
The history here is that predecessor issues (#39845 closed as not-planned, #50155 closed with Global-toggle instructions, #58044 closed alongside it) all closed without a position statement on hosting. One labeled answer in one of these threads — either yes or no — would end the recurrence.