From 168d90a164e8be76fee632baf78299fa98dd46c3 Mon Sep 17 00:00:00 2001 From: Brian Krabach Date: Wed, 22 Apr 2026 22:02:52 -0700 Subject: [PATCH] fix(loop-events): pass provider= kwarg to context_manager.get_messages_for_request MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The context-manager budget resolution cascade (see amplifier-module-context-simple:1157-1223) reads provider.get_info().defaults["context_window"] and ["max_output_tokens"] via the provider kwarg. Missing the kwarg silently disables kernel-side token budgeting — the cascade falls through to the context manager's generic max_tokens fallback (200k default), producing prompts that overflow smaller servers (llama.cpp, LM Studio, vLLM). loop-basic and loop-streaming pass provider= correctly at their equivalent sites. This brings loop-events to parity. Co-authored-by: Amplifier --- amplifier_module_loop_events/__init__.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/amplifier_module_loop_events/__init__.py b/amplifier_module_loop_events/__init__.py index 290ea3b..38415a5 100644 --- a/amplifier_module_loop_events/__init__.py +++ b/amplifier_module_loop_events/__init__.py @@ -156,7 +156,9 @@ async def execute( # Get messages for LLM request (context handles compaction internally) if hasattr(context, "get_messages_for_request"): - message_dicts = await context.get_messages_for_request() + message_dicts = await context.get_messages_for_request( + provider=provider + ) else: # Fallback for simple contexts without the method message_dicts = await context.get_messages() @@ -586,7 +588,9 @@ async def execute( # Get one final response with the reminder if hasattr(context, "get_messages_for_request"): - message_dicts = await context.get_messages_for_request() + message_dicts = await context.get_messages_for_request( + provider=provider + ) else: message_dicts = await context.get_messages() message_dicts = list(message_dicts)