From cb26dc592813e8000bcbaebab6b81fe3f8ecb6fc Mon Sep 17 00:00:00 2001 From: yicheng <928596708@qq.com> Date: Mon, 22 Jun 2026 08:21:07 +0800 Subject: [PATCH] fix(swarm): extract content from AgentResult.message instead of non-existent .content AgentResult has .message (a dict with 'content' key), not .content directly. The hasattr check always returned False, silently dropping ALL sub-agent output. Fixes #437 --- src/strands_tools/swarm.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/strands_tools/swarm.py b/src/strands_tools/swarm.py index ff6237c7..4494393b 100644 --- a/src/strands_tools/swarm.py +++ b/src/strands_tools/swarm.py @@ -448,9 +448,9 @@ def swarm( if hasattr(result, "results") and result.results: response_parts.append("\n**🤖 Individual Agent Contributions:**") for agent_name, node_result in result.results.items(): - if hasattr(node_result, "result") and hasattr(node_result.result, "content"): + if hasattr(node_result, "result") and hasattr(node_result.result, "message"): agent_content = [] - for content_block in node_result.result.content: + for content_block in (node_result.result.message.get("content", []) if hasattr(node_result.result, "message") else []): if hasattr(content_block, "text") and content_block.text: agent_content.append(content_block.text) @@ -463,9 +463,9 @@ def swarm( last_agent = result.node_history[-1].node_id if last_agent in result.results: last_result = result.results[last_agent] - if hasattr(last_result, "result") and hasattr(last_result.result, "content"): + if hasattr(last_result, "result") and hasattr(last_result.result, "message"): response_parts.append("\n**🎯 Final Team Result:**") - for content_block in last_result.result.content: + for content_block in (last_result.result.message.get("content", []) if hasattr(last_result.result, "message") else []): if hasattr(content_block, "text") and content_block.text: response_parts.append(content_block.text)