diff --git a/src/strands_tools/workflow.py b/src/strands_tools/workflow.py index b8726d13..7af4d6f5 100644 --- a/src/strands_tools/workflow.py +++ b/src/strands_tools/workflow.py @@ -444,8 +444,21 @@ def execute_task(self, task: Dict, workflow: Dict) -> Dict: result = task_agent(task_prompt) # Extract response content - handle both dict and custom object return types + # Check result and result.message try: - content = result.get("content", []) if hasattr(result, "get") else getattr(result, "content", []) + content = [] + if hasattr(result, "get"): + content = result.get("content", []) + elif hasattr(result, "content"): + content = getattr(result, "content", []) + elif hasattr(result, "message"): + message = result.message + if hasattr(message, "get"): + content = message.get("content", []) + elif hasattr(message, "content"): + content = getattr(message, "content", []) + if not content: + content = [{"text": str(result)}] except AttributeError: content = [{"text": str(result)}]