diff --git a/lib/crewai/src/crewai/tools/agent_tools/base_agent_tools.py b/lib/crewai/src/crewai/tools/agent_tools/base_agent_tools.py index 8e5b959a4..40fdb0f1a 100644 --- a/lib/crewai/src/crewai/tools/agent_tools/base_agent_tools.py +++ b/lib/crewai/src/crewai/tools/agent_tools/base_agent_tools.py @@ -4,6 +4,7 @@ from typing import Any from pydantic import Field from crewai.agents.agent_builder.base_agent import BaseAgent +from crewai.events.event_context import get_current_parent_id from crewai.task import Task from crewai.tools.base_tool import BaseTool from crewai.utilities.i18n import I18N, get_i18n @@ -126,7 +127,20 @@ class BaseAgentTool(BaseTool): logger.debug( f"Created task for agent '{self.sanitize_agent_name(selected_agent.role)}': {task}" ) - return selected_agent.execute_task(task_with_assigned_agent, context) + # DEBUG: Verify parent event ID propagation during delegation + parent_id_before = get_current_parent_id() + logger.debug( + f"[DELEGATION SCOPE] Before execute_task - parent_event_id: {parent_id_before}, " + f"delegating to agent: {self.sanitize_agent_name(selected_agent.role)}" + ) + result = selected_agent.execute_task(task_with_assigned_agent, context) + # DEBUG: Verify scope chain after delegation completes + parent_id_after = get_current_parent_id() + logger.debug( + f"[DELEGATION SCOPE] After execute_task - parent_event_id: {parent_id_after}, " + f"delegation complete for agent: {self.sanitize_agent_name(selected_agent.role)}" + ) + return result except Exception as e: # Handle task creation or execution errors return self.i18n.errors("agent_tool_execution_error").format(