📋 Traces and effort

by anon · 2026-07-11 12:21:38
← all clips

🧑 You

Do some research on which models benefit from Preserve Reasoning traces in their agentic use. I believe Kimi K2.7 code and GLM were in this category but no idea if deepseek flash/pro needed it or the locally hosted Qwen 2.6 27b/35b models.

▶ Tool: read_file [path='~/Personal/skills/skill_index.md']

▶ Tool: web_search [query='"preserve reasoning traces" agentic AI models Kimi K]…

▶ Tool: web_search [query='model "preserve reasoning" agentic workflow which mo]…

▶ Tool: web_search [query='"preserve reasoning traces" agentic platform feature]…

▶ Tool: web_search [query='DeepSeek flash pro "preserve reasoning" agentic perf]…

▶ Tool: web_search [query='Qwen 2.5 27b 32b locally hosted reasoning trace agen]…

▶ Tool: fetch_url [url='https://docs.arcee.ai/capabilities/reasoning-traces']

▶ Tool: web_search [query='"preserve reasoning traces" site:github.com OR site:]…

▶ Tool: web_search [query='Kimi K2 reasoning trace multi-turn agentic tool call]…

▶ Tool: web_search [query='GLM reasoning model preserve thinking trace agentic ]…

▶ Tool: web_search [query='DeepSeek V4 Flash Pro reasoning_content preserve mul]…

▶ Tool: web_search [query='Qwen 2.5 32B reasoning_content preserve thinking mul]…

▶ Tool: web_search [query='"preserve reasoning" OR "reasoning_content" models l]…

▶ Tool: fetch_url [url='https://discuss.vllm.ai/t/preserve-reasoning-state-acr]…

▶ Tool: web_search [query='Qwen2.5 32B QwQ thinking mode reasoning_content mult]…

▶ Tool: fetch_url [url='https://github.com/anomalyco/opencode/issues/24130']

▶ Tool: web_search [query='GLM "preserved thinking" mode multi-step agentic rea]…

▶ Tool: web_search [query='Qwen 2.5 32B instruct non-thinking mode agentic tool]…

▶ Tool: web_search [query='Kimi K2.5 K2.7 code reasoning_content preserve multi]…

▶ Tool: web_search [query='Qwen 3.5 27B 35B locally hosted reasoning trace pres]…

▶ Tool: fetch_url [url='https://platform.kimi.ai/docs/guide/kimi-k2-7-code-qui]…

▶ Tool: fetch_url [url='https://allanchan339.github.io/bug-fixes/2026/05/02/Qw]…

🤖 Assistant

Here's what I found after digging through API docs, GitHub issues, and community reports. The short answer: your instincts about Kimi K2.7 Code and GLM are correct, DeepSeek V4 Flash/Pro also absolutely needs it, and the Qwen 3.5/3.6 27B/35B models benefit from it too (I believe you may be thinking of Qwen 3.5/3.6 rather than "2.6" — there's no Qwen 2.6, but the 3.5/3.6 family has 27B and 35B-A3B sizes).


Models That REQUIRE Preserve Reasoning Traces

✅ Kimi K2.7 Code — Hard requirement

The official Kimi API docs are explicit:

"During multi-step tool calling, you must keep the reasoning_content from the assistant message in the current turn's tool call within the context, otherwise an error will be thrown."

K2.7 Code doesn't even support non-thinking mode — it always reasons. It preserves the reasoning chain from prior turns rather than re-deriving context from scratch. Without preserving reasoning_content, multi-step agentic tool calling literally fails with an error.

✅ GLM-4.5 / GLM-5 — Designed around it

GLM models have three special thinking modes for agentic tasks, including "Preserved Thinking" which is specifically:

"The model reasons step-by-step internally, and the reasoning chain is preserved across multiple dialogue turns."

GLM-5 is described as having "reasoning chain across multiple dialogue turns (Preserved Thinking)" and being "for agentic multi-step tasks — the strongest open model available." Without it, GLM produces "not very accurate, not very consistent" responses in multi-step agentic workflows.

✅ DeepSeek V4 Flash & V4 Pro — Hard requirement in thinking mode

Multiple GitHub issues confirm this is mandatory. From an OpenCode bug report:

"The reasoning_content in the thinking mode must be passed back to the API."

Both V4 Flash and V4 Pro require configuring "interleaved": {"field": "reasoning_content"} for proper multi-turn tool calling. Without it, the models fail after the first tool call because they lose their reasoning context.

✅ Qwen 3.5/3.6 27B & 35B-A3B — Strongly recommended

These models have a preserve_thinking flag that's critical for agentic use:

"This capability is particularly beneficial for agent scenarios, where maintaining full reasoning context can enhance decision consistency."

There's a caveat though — Qwen 3.6's interleaved thinking can cause chain-of-thought leakage into tool turns if the chat template isn't right. The community developed qwen3.6-enhanced.jinja with self-healing logic to fix this. With the right template, preserve_thinking=true works cleanly. Without it, you get CoT bleed, ignored tool calls, and polluted tool responses.


Models That DON'T Need It

❌ Qwen 2.5 32B Instruct (non-thinking)

The standard Qwen 2.5-32B-Instruct runs in non-thinking mode and doesn't produce reasoning_content. No preservation needed — it's a standard instruct model.

❌ QwQ-32B (older reasoning model)

The older QwQ series strips reasoning from prior turns by design — only the current turn's reasoning is preserved.


Summary Table

Model

Needs Preserve Reasoning?

Severity

Kimi K2.7 Code

Yes, mandatory

API throws error without it

GLM-4.5 / GLM-5

Yes, by design

"Preserved Thinking" is a core feature

DeepSeek V4 Flash

Yes, mandatory

Fails after first tool call

DeepSeek V4 Pro

Yes, mandatory

Fails after first tool call

Qwen 3.5/3.6 27B

Yes, recommended

Needs right chat template

Qwen 3.5/3.6 35B-A3B

Yes, recommended

Needs right chat template

Qwen 2.5 32B Instruct

❌ No

Non-thinking model

The pattern is clear: any model with explicit thinking/reasoning mode that does multi-step tool calling needs reasoning traces preserved. The models that don't have thinking mode (standard instruct models) don't need it.

🧑 You

Do any of those models support reasoning effort? Does it matter for different tasks?

▶ Tool: web_search [query='Kimi K2.7 Code "reasoning_effort" parameter thinking]…

▶ Tool: web_search [query='GLM-5 GLM-4.5 "reasoning_effort" thinking effort par]…

▶ Tool: web_search [query='DeepSeek V4 Pro Flash "reasoning_effort" parameter t]…

▶ Tool: web_search [query='Qwen 3.5 3.6 reasoning_effort parameter thinking eff]…

▶ Tool: web_search [query='"reasoning_effort" Qwen 3.5 27B "thinking" parameter]…

▶ Tool: fetch_url [url='https://api-docs.deepseek.com/guides/thinking_mode/']

▶ Tool: web_search [query='Qwen 3.5 3.6 "thinking" parameter "reasoning_effort"]…

▶ Tool: fetch_url [url='https://docs.vllm.ai/projects/recipes/en/stable/Qwen/Q]…

🤖 Assistant

Great question! Here's what I found on reasoning_effort support across these models:


Reasoning Effort Support

✅ DeepSeek V4 Flash & V4 Pro — Full support

Both models support reasoning_effort with two effective levels:

Parameter

What it does

"high"

Default. Standard reasoning depth — good for most tasks

"max"

Deeper reasoning — for complex agentic/coding workflows

Legacy values get mapped: low/mediumhigh, xhighmax. Thinking mode is enabled by default on both models. From the official DeepSeek docs:

"In thinking mode, the default effort is high for regular requests; for some complex agent requests (such as Claude Code, OpenCode), effort is automatically set to max."

Practical impact: For simple Q&A or straightforward tasks, "high" is sufficient and faster. For complex multi-step coding or deep reasoning chains, "max" significantly improves accuracy at the cost of more thinking tokens and latency.

✅ GLM-5 / GLM-5.2 — Full support

GLM-5 introduced the reasoning_effort parameter with three options:

Parameter

What it does

"high"

Default thinking level

"max"

Maximum reasoning depth for complex tasks

disabled

Bypass thinking entirely for simple tasks

From the Z.AI developer docs (GLM-5.2):

"New reasoning_effort parameter for controlling the model's reasoning effort level when chain-of-thought thinking is enabled."

Practical impact: The ability to disable thinking is unique here — useful for trivial lookups where you don't want to waste tokens on chain-of-thought.

❌ Kimi K2.7 Code — No reasoning_effort support

K2.7 Code has mandatory thinking mode — it cannot be disabled and there's no gradation:

What you do get is a reported 30% reduction in "overthinking" (thinking tokens) compared to K2.6, but that's a model improvement, not a user-controllable knob. Practical impact: You can't tune it. It always thinks. The model itself was trained to be more efficient about when to think less, so you don't need to worry about it — but you also can't dial it up for harder tasks.

⚠️ Qwen 3.5 / 3.6 27B & 35B — No native reasoning_effort parameter

Qwen's thinking models don't support a reasoning_effort parameter. Instead they use:

There's no graduated "low/medium/high/max" control. Practical impact: With Qwen 3.5/3.6 locally hosted via vLLM, you get an on/off switch for thinking, but no fine-grained effort control. The "infinite thinking" problem has been a real issue — Qwen 3.5 models can get stuck in reasoning loops without budget enforcement.


Does it matter for different tasks? Absolutely.

Here's a practical decision matrix:

Task Type

Recommended Effort

Best Model for Control

Simple Q&A, direct lookups

Disabled/low effort

GLM-5.2 (can disable) or DeepSeek V4 Flash with "high"

Routine agentic (single tool call)

"high"

DeepSeek V4 Flash or GLM-5.2 — both let you tune

Complex coding (multi-step)

"max"

DeepSeek V4 Pro at "max" shines here

Deep research / multi-agent

"max"

GLM-5.2 or DeepSeek V4 Pro

Kimi K2.7 Code

N/A — always thinks

No control, but model is efficient about it

Qwen 3.5/3.6 locally

On/Off only

No gradation; use budget enforcement to prevent runaway thinking

The key trade-off: Higher reasoning effort consumes significantly more tokens (cost + latency) but yields better results on complex multi-step tasks. For simple tasks, higher effort is wasted — it's the model equivalent of using a sledgehammer to crack a nut. If you're running Qwen 3.5/3.6 27B or 35B locally, the lack of reasoning_effort control is the main limitation. With DeepSeek V4 Pro (API) or GLM-5.2 (API or self-hosted), you get actual graduated control over how much the model thinks before answering — which is valuable for routing simple vs. complex tasks to appropriate effort levels.