|
47 | 47 | from ._conversation_state import decode_chat_messages, encode_chat_messages |
48 | 48 | from ._executor import Executor |
49 | 49 | from ._orchestration_request_info import AgentApprovalExecutor |
| 50 | +from ._orchestrator_helpers import clean_conversation_for_handoff |
50 | 51 | from ._workflow import Workflow |
51 | 52 | from ._workflow_builder import WorkflowBuilder |
52 | 53 | from ._workflow_context import WorkflowContext |
@@ -193,6 +194,8 @@ async def _handle_response( |
193 | 194 | ) -> None: |
194 | 195 | """Handle a participant response.""" |
195 | 196 | messages = self._process_participant_response(response) |
| 197 | + # Remove tool-related content to prevent API errors from empty messages |
| 198 | + messages = clean_conversation_for_handoff(messages) |
196 | 199 | self._append_messages(messages) |
197 | 200 |
|
198 | 201 | if await self._check_terminate_and_yield(cast(WorkflowContext[Never, list[ChatMessage]], ctx)): |
@@ -360,6 +363,8 @@ async def _handle_response( |
360 | 363 | ) -> None: |
361 | 364 | """Handle a participant response.""" |
362 | 365 | messages = self._process_participant_response(response) |
| 366 | + # Remove tool-related content to prevent API errors from empty messages |
| 367 | + messages = clean_conversation_for_handoff(messages) |
363 | 368 | self._append_messages(messages) |
364 | 369 | if await self._check_terminate_and_yield(cast(WorkflowContext[Never, list[ChatMessage]], ctx)): |
365 | 370 | return |
|
0 commit comments