fix(aux): add session_search extra_body and concurrency controls

Adds auxiliary.<task>.extra_body config passthrough so reasoning-heavy
OpenAI-compatible providers can receive provider-specific request fields
(e.g. enable_thinking: false on GLM) on auxiliary calls, and bounds
session_search summary fan-out with auxiliary.session_search.max_concurrency
(default 3, clamped 1-5) to avoid 429 bursts on small providers.

- agent/auxiliary_client.py: extract _get_auxiliary_task_config helper,
  add _get_task_extra_body, merge config+explicit extra_body with explicit winning
- hermes_cli/config.py: extra_body defaults on all aux tasks +
  session_search.max_concurrency; _config_version 19 -> 20
- tools/session_search_tool.py: semaphore around _summarize_all gather
- tests: coverage in test_auxiliary_client, test_session_search, test_aux_config
- docs: user-guide/configuration.md + fallback-providers.md

Co-authored-by: Teknium <teknium@nousresearch.com>
This commit is contained in:
helix4u 2026-04-20 00:44:32 -07:00 committed by Teknium
parent 904f20d622
commit 6ab78401c9
8 changed files with 207 additions and 26 deletions

View file

@ -39,6 +39,15 @@ def test_title_generation_present_in_default_config():
assert tg["provider"] == "auto"
assert tg["model"] == ""
assert tg["timeout"] > 0
assert tg["extra_body"] == {}
def test_session_search_defaults_include_extra_body_and_concurrency():
ss = DEFAULT_CONFIG["auxiliary"]["session_search"]
assert ss["provider"] == "auto"
assert ss["model"] == ""
assert ss["extra_body"] == {}
assert ss["max_concurrency"] == 3
def test_aux_tasks_keys_all_exist_in_default_config():