GeezerVison is showing github.com — fix(langgraph): sync tutorial span output stores final text, not usag… · scaleapi/scale-agentex-python@6ac00e3
File tree
Expand file treeCollapse file tree
Open diff view settings
examples/tutorials/00_sync/harness_langgraph/project
Expand file treeCollapse file tree
Open diff view settings
Collapse file
Copy file name to clipboardExpand all lines: examples/tutorials/00_sync/harness_langgraph/project/acp.py +8-1Lines changed: 8 additions & 1 deletion | Original file line number | Diff line number | Diff line change |
|---|
|
33 | 33 | from agentex.lib.utils.logging import make_logger |
34 | 34 | from agentex.lib.sdk.fastacp.fastacp import FastACP |
35 | 35 | from agentex.lib.core.harness.emitter import UnifiedEmitter |
| 36 | +from agentex.types.task_message_delta import TextDelta |
36 | 37 | from agentex.types.task_message_update import TaskMessageUpdate |
37 | 38 | from agentex.types.task_message_content import TaskMessageContent |
38 | 39 | from agentex.lib.adk._modules._langgraph_turn import LangGraphTurn |
@@ -93,8 +94,14 @@ async def handle_message_send( |
93 | 94 | parent_span_id=turn_span.id if turn_span else None, |
94 | 95 | ) |
95 | 96 |
|
| 97 | + final_text = "" |
96 | 98 | async for event in emitter.yield_turn(turn): |
| 99 | + # Accumulate text deltas so the span's final_output is the assistant |
| 100 | + # text (matching the async tutorial), not the usage metrics. |
| 101 | + delta = getattr(event, "delta", None) |
| 102 | + if isinstance(delta, TextDelta) and delta.text_delta: |
| 103 | + final_text += delta.text_delta |
97 | 104 | yield event |
98 | 105 |
|
99 | 106 | if turn_span: |
100 | | - turn_span.output = {"final_output": turn.usage().model_dump()} |
| 107 | + turn_span.output = {"final_output": final_text, "usage": turn.usage().model_dump()} |