Skip to content

Bugfix/Refactor agentflow image handling to tag-and-revert#5924

Closed
HenryHengZJ wants to merge 8 commits intomainfrom
bugfix/Image-References
Closed

Bugfix/Refactor agentflow image handling to tag-and-revert#5924
HenryHengZJ wants to merge 8 commits intomainfrom
bugfix/Image-References

Conversation

@HenryHengZJ
Copy link
Contributor

Bug

Images are mixed up and base64 data was accidentally saved to database, causing images not able to render correctly:
image
image

Expected

Base64 data is only sent for LLM invocation, not saved to database.

Fix

  • Refactors how agentflow nodes (Agent, ConditionAgent, LLM) handle images in chat messages so that base64 is only used during model invocation.
  • Storage and chat history keep file references only. The approach is simplified by tagging base64 image items with _fileName/_mime and reverting them in one pass instead of maintaining separate “file-ref” message arrays.

Motivation

  • Replacing dual-tracking (runtimeImageMessagesWithFileRef, pastImageMessagesWithFileRef) with a single tagged-message flow reduces state and makes the code easier to follow.
  • Past history, runtime uploads, and image artifacts are all handled via the same “tag base64 → invoke → revert to file refs” path.
image

…mages in chat messages so that base64 is only used during model invocation

- Storage and chat history keep file references only
- Added comprehensive test cases to ensure correct handling of base64 image data and file references
@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request addresses a critical bug where image data was being mishandled, resulting in base64 encoded images being persisted in the database instead of file references. The core of the solution is a refactoring of how images are processed within agentflow nodes, adopting a 'tag-and-revert' strategy. This approach ensures that images are converted to base64 for model interaction but are consistently stored as file references, streamlining the image lifecycle and improving data integrity.

Highlights

  • Bug Fix: Image Handling: Resolved a bug where base64 image data was accidentally saved to the database, leading to incorrect image rendering. The system now ensures base64 data is only used for LLM invocation.
  • Refactor: Tag-and-Revert Image Strategy: Implemented a new 'tag-and-revert' mechanism for image handling across Agent, ConditionAgent, and LLM nodes. Base64 image items are now tagged with _fileName and _mime during LLM invocation and then reverted to file references for storage.
  • Simplified State Management: Eliminated the need for separate tracking arrays (runtimeImageMessagesWithFileRef, pastImageMessagesWithFileRef), reducing state complexity and making the code easier to follow.
  • New Utility Function: Introduced revertBase64ImagesToFileRefs to efficiently convert tagged base64 image messages back to stored-file references.
  • Comprehensive Testing: Added a new dedicated test file (utils.test.ts) to ensure the robustness and correctness of the new image handling utility functions.
  • Default Model Update: Updated the default model name for ChatAnthropic to 'claude-haiku-4-5'.
Changelog
  • packages/components/nodes/agentflow/Agent/Agent.ts
    • Updated import to use revertBase64ImagesToFileRefs instead of replaceBase64ImagesWithFileReferences.
    • Removed runtimeImageMessagesWithFileRef and pastImageMessagesWithFileRef variables and their related logic.
    • Modified handleMemory and main run method to utilize the new revertBase64ImagesToFileRefs for message processing.
  • packages/components/nodes/agentflow/ConditionAgent/ConditionAgent.ts
    • Updated import to use revertBase64ImagesToFileRefs instead of replaceBase64ImagesWithFileReferences.
    • Removed runtimeImageMessagesWithFileRef and pastImageMessagesWithFileRef variables and their related logic.
    • Modified handleMemory and main run method to utilize the new revertBase64ImagesToFileRefs for message processing.
  • packages/components/nodes/agentflow/LLM/LLM.ts
    • Updated import to use revertBase64ImagesToFileRefs instead of replaceBase64ImagesWithFileReferences.
    • Removed runtimeImageMessagesWithFileRef and pastImageMessagesWithFileRef variables and their related logic.
    • Modified handleMemory and main run method to utilize the new revertBase64ImagesToFileRefs for message processing.
  • packages/components/nodes/agentflow/utils.test.ts
    • Added a new test file to cover revertBase64ImagesToFileRefs, processMessagesWithImages, addImageArtifactsToMessages, and getUniqueImageMessages.
  • packages/components/nodes/agentflow/utils.ts
    • Renamed addImagesToMessages to _addImagesToMessages to indicate internal usage.
    • Modified _addImagesToMessages to tag base64 image objects with _fileName and _mime properties.
    • Modified processMessagesWithImages to tag base64 image objects with _fileName and _mime properties when converting stored files.
    • Replaced replaceBase64ImagesWithFileReferences with a simplified revertBase64ImagesToFileRefs function that uses the new tags.
    • Updated addImageArtifactsToMessages to directly convert image artifacts to tagged base64 messages for insertion, removing a subsequent processMessagesWithImages call.
  • packages/components/nodes/chatmodels/ChatAnthropic/ChatAnthropic.ts
    • Updated the default model name from 'claude-3-haiku' to 'claude-haiku-4-5'.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@HenryHengZJ HenryHengZJ requested review from 0xi4o and yau-wd March 7, 2026 00:24
Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request significantly improves the image handling logic within agentflow nodes by moving to a 'tag-and-revert' mechanism, simplifying the code and preventing base64 data storage. However, it introduces several Path Traversal vulnerabilities due to unsanitized filenames from user uploads or LLM-generated content. Additionally, there are opportunities for code maintainability improvements, type safety enhancements, and a critical correction needed for a default model name. The refactor is strong and includes comprehensive unit tests, and the provided comments aim to address these security concerns, improve code quality, and ensure correct functionality.

@HenryHengZJ
Copy link
Contributor Author

HenryHengZJ commented Mar 7, 2026

Tihs commit resolved this error by adding the ref into additonal_kwargs:
image

… references to base64 for model invocation, and implement interfaces
@yau-wd
Copy link
Contributor

yau-wd commented Mar 9, 2026

Pass - Local test via Postman

Before After
image image image image

Fail - Cloud test via Postman

Before After
image image image image

Copy link
Contributor

@yau-wd yau-wd left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fail - Cloud test via Postman

{
    "question": "what's this?",
    "chatId": "22c51311-569e-4c75-9e7f-fecd749e90f0",
    "uploads": [
        {
            "data": "data:image/webp;base64,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",
            "type": "file",
            "name": "pineapple.webp",
            "mime": "image/webp"
        }
    ],
    "streaming": true
}

@HenryHengZJ
Copy link
Contributor Author

super strange, works locally but not when deployed, perhaps its the openai sdk version during install?

@HenryHengZJ
Copy link
Contributor Author

maybe we'll have to wait #5893 to be merged as this updates the sdk version - experimenting by deploying to dev

@HenryHengZJ
Copy link
Contributor Author

Closing as this change will be in #5893

@HenryHengZJ HenryHengZJ closed this Mar 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants