config(gen-seat): reasoning_effort=medium default (affects gen-reasoning only)
Measured on the restored model: at the template default xhigh, reasoning runs 4,529-5,532 chars on a 3-turn history and was observed spiking to 9,261; medium holds it to 2,602-3,283 with content length unchanged or better. Per-request overridable; an invalid value 400s. SCOPE CAVEAT, stated because I applied this while chasing the wrong path: this is a NO-OP for the alias, which sends enable_thinking:false and produces zero reasoning. It affects only. The operator's reported multi-turn failure was on , so this does not address it.
This commit is contained in:
@@ -62,13 +62,36 @@ services:
|
||||
- '{"image": 4}'
|
||||
- --reasoning-parser
|
||||
- ${GEN_REASONING_PARSER:-qwen3}
|
||||
# NOTE: a --default-chat-template-kwargs '{"reasoning_effort": "medium"}'
|
||||
# line lived here during the 2026-08-16 AEON-ULTIMATE trial and was
|
||||
# REMOVED on rollback, so that restoring the previous model restores the
|
||||
# previous behaviour exactly and the model stays the only changed
|
||||
# variable. Re-add it only alongside a template that actually reads the
|
||||
# kwarg (AEON's does, at chat_template.jinja:47; the Qwen3.6 line ignores
|
||||
# it entirely, where setting it would be a false lever).
|
||||
# Seat-level DEFAULT reasoning effort. Per-request overridable via
|
||||
# chat_template_kwargs; an invalid value 400s rather than silently
|
||||
# falling back (the template validates and raises).
|
||||
#
|
||||
# WHY: the Qwen3.8 chat template defaults to `xhigh`
|
||||
# (chat_template.jinja:47), and at xhigh reasoning GROWS WITH
|
||||
# CONVERSATION DEPTH and has a long tail. Measured 2026-08-16 on THIS
|
||||
# model (not inferred from a card), 3-turn history, 3 samples each:
|
||||
#
|
||||
# xhigh (default) 4,529-5,532 chars, observed spiking to 9,261
|
||||
# medium 2,602-3,283 chars
|
||||
# low 1,657-2,505 chars
|
||||
#
|
||||
# Content length was unchanged or BETTER at medium (median 335w vs 343w),
|
||||
# so this is ~40% less budget burned for the same answer. Single-turn
|
||||
# probes do not surface it -- single-turn reasoning is only ~1-1.8k chars,
|
||||
# which is why the acceptance gate missed it entirely.
|
||||
#
|
||||
# The failure it prevents: at xhigh the reasoning tail exhausts max_tokens
|
||||
# before any content is emitted, returning finish_reason=length with an
|
||||
# EMPTY content field. That reads as the model being degenerate on long
|
||||
# conversations when it is a budget interaction. Pairs with the
|
||||
# gateway-chat max_tokens default (raised 1024 -> 4096); NEITHER fix alone
|
||||
# is sufficient.
|
||||
#
|
||||
# Only set this for a template that actually reads the kwarg -- the
|
||||
# Qwen3.6 line (Fable-Fusion on char-rp-reasoning) ignores it entirely,
|
||||
# where it would be a false lever.
|
||||
- --default-chat-template-kwargs
|
||||
- '{"reasoning_effort": "${GEN_REASONING_EFFORT:-medium}"}'
|
||||
- --enable-auto-tool-choice
|
||||
- --tool-call-parser
|
||||
- qwen3_coder
|
||||
|
||||
Reference in New Issue
Block a user