diff --git a/backend/app/agent/factory/browser.py b/backend/app/agent/factory/browser.py index f9cd387e..a6675759 100644 --- a/backend/app/agent/factory/browser.py +++ b/backend/app/agent/factory/browser.py @@ -308,7 +308,7 @@ def browser_agent(options: Chat): ), options, tools, - prune_tool_calls_from_memory=True, + prune_tool_calls_from_memory=False, tool_names=[ SearchToolkit.toolkit_name(), HybridBrowserToolkit.toolkit_name(), diff --git a/backend/app/service/chat_service.py b/backend/app/service/chat_service.py index 85612c42..622a9721 100644 --- a/backend/app/service/chat_service.py +++ b/backend/app/service/chat_service.py @@ -620,10 +620,6 @@ async def step_solve(options: Chat, request: Request, task_lock: TaskLock): # Factory internally sends create_agent # via ActionCreateAgentData in the queue agent = await _create_persistent_agent(target, options) - # Persistent agents are reused across turns; - # keep tool call history so the LLM remembers - # what it did in previous turns. - agent.prune_tool_calls_from_memory = False task_lock.persistent_agents[target] = agent logger.info( f"[DIRECT-AGENT] Created NEW " @@ -655,9 +651,9 @@ async def step_solve(options: Chat, request: Request, task_lock: TaskLock): agent.process_task_id = options.task_id - # Build prompt: reused agents already have - # conversation history in their CAMEL memory, - # so only prepend context for brand-new agents. + # New agents need prior conversation context + # injected into the prompt; reused agents + # already have it in CAMEL memory. if is_new_agent: conv_ctx = build_conversation_context( task_lock,