Skip to content

Commit 11920d0

Browse files
Fix sub_results iteration in the skills examples
sub_results is a dict keyed by agent name, so iterating it yields strings. 32_skills_multi_agent.py parallel died on the print — PARALLEL is the strategy that actually populates it: AttributeError: 'str' object has no attribute 'status' The other two call sites have the same bug and survived only because their sub_results was empty. Iterate .items() and print the agent name with its output. Verified against a 3.32.0-rc18 server: all 8 modes across both examples now complete, and parallel prints all three sub-agent outputs.
1 parent 61dc179 commit 11920d0

2 files changed

Lines changed: 13 additions & 10 deletions

File tree

examples/agents/30_skills_dg_review.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -70,11 +70,12 @@ def run_standalone():
7070
print(f"Status: {result.status}")
7171
print(f"Tokens: {result.token_usage}")
7272

73-
# Sub-agent results are individually visible
73+
# Sub-agent results are individually visible: a dict keyed by agent
74+
# name — see AgentResult.sub_results.
7475
if result.sub_results:
75-
print(f"\nSub-agent executions:")
76-
for sub in result.sub_results:
77-
print(f" - {sub.agent_name}: {sub.status} ({sub.token_usage})")
76+
print(f"\nSub-agent outputs:")
77+
for agent_name, agent_output in result.sub_results.items():
78+
print(f" - {agent_name}: {str(agent_output)[:120]}")
7879

7980

8081
# ── Example 2: Compose with regular agent in pipeline ──────────────

examples/agents/32_skills_multi_agent.py

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -151,10 +151,11 @@ def example_pipeline():
151151
print(f"Execution ID: {result.execution_id}")
152152
print(f"Status: {result.status}")
153153
print(f"Tokens: {result.token_usage}")
154+
# sub_results is a dict keyed by agent name — see AgentResult.sub_results.
154155
if result.sub_results:
155-
print("\nSub-agent executions:")
156-
for sub in result.sub_results:
157-
print(f" - {getattr(sub, "execution_id", "?")}: {sub.status}")
156+
print("\nSub-agent outputs:")
157+
for agent_name, agent_output in result.sub_results.items():
158+
print(f" - {agent_name}: {str(agent_output)[:120]}")
158159
result.print_result()
159160

160161

@@ -213,10 +214,11 @@ def example_parallel():
213214
print(f"Execution ID: {result.execution_id}")
214215
print(f"Status: {result.status}")
215216
print(f"Tokens: {result.token_usage}")
217+
# sub_results is a dict keyed by agent name — see AgentResult.sub_results.
216218
if result.sub_results:
217-
print("\nParallel sub-agent executions:")
218-
for sub in result.sub_results:
219-
print(f" - {getattr(sub, "execution_id", "?")}: {sub.status}")
219+
print("\nParallel sub-agent outputs:")
220+
for agent_name, agent_output in result.sub_results.items():
221+
print(f" - {agent_name}: {str(agent_output)[:120]}")
220222
result.print_result()
221223

222224

0 commit comments

Comments
 (0)