From ff6b014a0757262f6ee24acdac466e1b93bb0ab0 Mon Sep 17 00:00:00 2001 From: chengyongru Date: Sat, 9 May 2026 14:38:02 +0800 Subject: [PATCH] refactor: allow model/context_window_tokens override in from_config() - Pop model and context_window_tokens from extra kwargs before forwarding to __init__, allowing callers like _run_gateway to pass snapshot-derived values instead of config defaults - _run_gateway now explicitly passes model/context_window_tokens from provider_snapshot to preserve pre-refactor behavior --- nanobot/agent/loop.py | 6 ++++-- nanobot/cli/commands.py | 2 ++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/nanobot/agent/loop.py b/nanobot/agent/loop.py index b22332a30..84758787d 100644 --- a/nanobot/agent/loop.py +++ b/nanobot/agent/loop.py @@ -360,13 +360,15 @@ class AgentLoop: bus = MessageBus() defaults = config.agents.defaults provider = extra.pop("provider", None) or make_provider(config) + model = extra.pop("model", None) or defaults.model + context_window_tokens = extra.pop("context_window_tokens", None) or defaults.context_window_tokens return cls( bus=bus, provider=provider, workspace=config.workspace_path, - model=defaults.model, + model=model, max_iterations=defaults.max_tool_iterations, - context_window_tokens=defaults.context_window_tokens, + context_window_tokens=context_window_tokens, context_block_limit=defaults.context_block_limit, max_tool_result_chars=defaults.max_tool_result_chars, provider_retry_mode=defaults.provider_retry_mode, diff --git a/nanobot/cli/commands.py b/nanobot/cli/commands.py index 23ed6ab1d..a610f256f 100644 --- a/nanobot/cli/commands.py +++ b/nanobot/cli/commands.py @@ -655,6 +655,8 @@ def _run_gateway( agent = AgentLoop.from_config( config, bus, provider=provider_snapshot.provider, + model=provider_snapshot.model, + context_window_tokens=provider_snapshot.context_window_tokens, cron_service=cron, session_manager=session_manager, image_generation_provider_configs={