diff --git a/agent_loop.py b/agent_loop.py index 7afb58507..fb3cb39d8 100644 --- a/agent_loop.py +++ b/agent_loop.py @@ -46,7 +46,11 @@ def agent_runner_loop(client, system_prompt, user_input, handler, tools_schema, {"role": "user", "content": initial_user_content if initial_user_content is not None else user_input} ] turn = 0; handler.max_turns = max_turns - _hook('agent_before', locals()) + result = _hook('agent_before', locals()) + if isinstance(result, dict): + # Hook 可能修改了 locals,需要更新变量 + if 'system_prompt' in result: + messages[0]['content'] = result['system_prompt'] while turn < handler.max_turns: turn += 1; turnstr = f'LLM Running (Turn {turn}) ...' if handler.parent.task_dir: turnstr = f'Turn {turn} ...'