Skip to content

fix(providers): support thinking toggle for Volcengine Ark (Doubao Seed) - #1193

Merged
H-Chris233 merged 1 commit into
Open-Less:betafrom
MDR-EX1000:fix/ark-thinking-toggle
Oct 20, 2026
Merged

H-Chris233 merged 1 commit into
Open-Less:betafrom
MDR-EX1000:fix/ark-thinking-toggle

Conversation

@MDR-EX1000

Copy link
Copy Markdown
Contributor

Problem

The Volcengine Ark (火山方舟) provider has no thinking-control dispatch: openai_compatible_thinking_control() has no entry for ark, and the base_url fallback doesn't recognize volces.com. As a result the thinking toggle in settings is silently dropped for Ark.

Doubao Seed 2.x models default to thinking on, so every dictation-polish request pays several seconds of extra TTFT (measured: ~3-4s first-token latency, response stream carries reasoning_content) even when the user disabled thinking.

Fix

  • Add ThinkingControl::VolcengineThinking sending Ark's official thinking: { "type": "enabled" | "disabled" } field (documented for Doubao Seed models, e.g. doubao-seed-2-1-lite, doubao-seed-2-0-mini)
  • Dispatch the ark / volcengine provider ids to it
  • base_url fallback covers volces.com (Ark CN) and bytepluses.com (BytePlus ModelArk — same Doubao Seed API)
  • New tests: preset path (ark) and custom-provider host fallback

Same schema/literals as DeepSeekThinking, but kept as a separate variant per the existing convention (cf. MiniMaxThinking) so channel defaults stay independent.

Verification

cargo test -p openless-core --lib thinking — 19 passed, including the two new tests. Behavior verified end-to-end against the live Ark endpoint with doubao-seed-2-1-lite-260915.

The Ark provider had no thinking-control dispatch: neither the provider-id
table nor the base_url fallback recognized it, so the thinking toggle in
settings was silently dropped. Doubao Seed 2.x models default to thinking
ON, adding several seconds of TTFT to every dictation-polish request even
when the user disabled thinking.

- Add ThinkingControl::VolcengineThinking sending Ark's official
  thinking: { type: enabled | disabled } field
- Dispatch the ark / volcengine provider ids to it
- base_url fallback covers volces.com (Ark) and bytepluses.com (BytePlus
  ModelArk, same Doubao Seed API)
- Tests cover the preset path and the custom-provider host fallback

Verified locally with doubao-seed-2-1-lite-260915: before the fix the
response stream carries reasoning_content despite the toggle being off;
with thinking.type=disabled the model answers directly.
@H-Chris233 H-Chris233 added area:provider Provider area bug Something isn't working needs-review Needs review P2 Medium priority labels Oct 20, 2026
@H-Chris233
H-Chris233 merged commit 101f514 into Open-Less:beta Oct 20, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:provider Provider area bug Something isn't working needs-review Needs review P2 Medium priority

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants