From ae4490c5b360e003a9dbd412aad422ddf0343435 Mon Sep 17 00:00:00 2001 From: Sarah Wooders Date: Wed, 17 Dec 2025 14:32:17 -0800 Subject: [PATCH] fix: filter out stop reason from response streaming (#7332) --- letta/agents/letta_agent_v3.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/letta/agents/letta_agent_v3.py b/letta/agents/letta_agent_v3.py index 42573e3e..cf3e71bb 100644 --- a/letta/agents/letta_agent_v3.py +++ b/letta/agents/letta_agent_v3.py @@ -368,7 +368,9 @@ class LettaAgentV3(LettaAgentV2): # Cleanup and finalize (only runs if no exception occurred) try: if run_id: - result = LettaResponse(messages=response_letta_messages, stop_reason=self.stop_reason, usage=self.usage) + # Filter out LettaStopReason from messages (only valid in LettaStreamingResponse, not LettaResponse) + filtered_messages = [m for m in response_letta_messages if not isinstance(m, LettaStopReason)] + result = LettaResponse(messages=filtered_messages, stop_reason=self.stop_reason, usage=self.usage) if self.job_update_metadata is None: self.job_update_metadata = {} self.job_update_metadata["result"] = result.model_dump(mode="json")