feat(auxiliary): per-task reasoning_effort for auxiliary models (#64597)

Every auxiliary task block (vision, web_extract, compression,
title_generation, curator, background_review, moa_reference, ...) now
accepts a reasoning_effort shorthand:

  auxiliary:
    compression:
      reasoning_effort: low
    vision:
      reasoning_effort: none

_get_task_extra_body() folds it into extra_body.reasoning, which every
auxiliary wire already translates: chat.completions passes it through,
the Codex Responses adapter maps it to top-level reasoning/include, and
the Anthropic auxiliary adapter now forwards it into
build_anthropic_kwargs(reasoning_config=...) (previously hardcoded None).

An explicit extra_body.reasoning on the same task wins over the
shorthand. Invalid levels are ignored with a warning. Empty string
(the shipped default) is a no-op — zero behavior change.

Config: reasoning_effort added to all 16 auxiliary task blocks in
DEFAULT_CONFIG (no version bump — deep-merge handles new keys).
This commit is contained in:
Teknium 2026-07-14 14:07:43 -07:00 committed by GitHub
parent f7198a2055
commit df5700ebe3
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 195 additions and 5 deletions

View file

@ -506,11 +506,19 @@ prompt_caching:
# timeout: 30 # LLM API call timeout (seconds)
# download_timeout: 30 # Image HTTP download timeout (seconds)
# # Increase for slow connections or self-hosted image servers
# reasoning_effort: "" # Per-task thinking level: none, minimal, low, medium,
# # high, xhigh, max, ultra. Empty = provider default.
# # Works on every auxiliary task block (vision,
# # web_extract, compression, title_generation, curator,
# # background_review, moa_reference, ...). Example: run
# # compression at "low" and vision at "none" to cut
# # side-task latency/cost on reasoning models.
#
# # Web page scraping / summarization + browser page text extraction
# web_extract:
# provider: "auto"
# model: ""
# reasoning_effort: "low"
#
# # Gemini 3.1 TTS hidden audio-tag insertion
# tts_audio_tags: