From 47087007238bdc6ca88f801613e3279318dde732 Mon Sep 17 00:00:00 2001 From: Jason <101583541+JasonOA888@users.noreply.github.com> Date: Fri, 27 Mar 2026 17:33:17 +0800 Subject: [PATCH] fix(middleware): return proper content format when no images viewed (#1454) - Fix OpenAI BadRequestError: 'No images have been viewed.' was returned as a plain string array instead of a properly formatted content block - The OpenAI API expects message content to be either a string or an array of objects with 'type' field, not an array of plain strings - Changed return from ['No images have been viewed.'] to [{'type': 'text', 'text': 'No images have been viewed.'}] Fixes #1441 Co-authored-by: JasonOA888 --- .../deerflow/agents/middlewares/view_image_middleware.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/backend/packages/harness/deerflow/agents/middlewares/view_image_middleware.py b/backend/packages/harness/deerflow/agents/middlewares/view_image_middleware.py index c4ec9ff..29b3871 100644 --- a/backend/packages/harness/deerflow/agents/middlewares/view_image_middleware.py +++ b/backend/packages/harness/deerflow/agents/middlewares/view_image_middleware.py @@ -102,7 +102,8 @@ class ViewImageMiddleware(AgentMiddleware[ViewImageMiddlewareState]): """ viewed_images = state.get("viewed_images", {}) if not viewed_images: - return ["No images have been viewed."] + # Return a properly formatted text block, not a plain string array + return [{"type": "text", "text": "No images have been viewed."}] # Build the message with image information content_blocks: list[str | dict] = [{"type": "text", "text": "Here are the images you've viewed:"}]