Skip to main content
ELI5: every provider sells “think harder” under a different name (extended thinking, reasoning effort, thinking level). deeda gives you one workflow field plus per-provider knobs; the harness maps them.

The portable field

agent:
  thinking:
    type: enabled        # enabled | disabled | adaptive
    budget_tokens: 16000 # or "{{thinking_budget}}" template

Per-provider mapping

Provider/runtimeKnob (under harness_config.sdk_settings.<provider>)Values
anthropic-agent-sdkthinking_type, thinking_budget_tokensenabled/disabled/adaptive + token cap; interleaved & adaptive thinking implemented
openai-codex-sdk, openai-agents-sdk, openai-responses-apireasoning_effortmodel-dependent (o-series / GPT-5 class)
gemini-antigravity-cliantigravity_thinking_levelMINIMAL | LOW | MEDIUM | HIGH
gemini-genai-sdkthinking on/off/dynamic is implemented at the capability level; no extra knob needed
local-llm, local-voicenone — local models expose no thinking control
Caveats worth knowing: Anthropic summarized thinking is model-dependent (4-series vendor default, no deeda selector); OpenAI reasoning_effort is rejected by non-reasoning models — pin a supporting model; Gemini deep-research is policy-blocked (long-running paid surface).

Example: pay for reasoning only on the hard stage

state_machine:
  stage_order: [scan, deep_fix]
  states:
    scan:
      agent:
        thinking: { type: disabled }
    deep_fix:
      agent:
        thinking: { type: enabled, budget_tokens: 24000 }

When to use

TaskSetting
Bulk/mechanical edits, summariesdisabled — thinking is wasted spend
Debugging, architecture, proofsenabled with 16–32k budget
Mixed/unknown difficultyadaptive (Anthropic) — model decides

See also