Skip to content

Add Support for Image Return in Agent Tools #341

New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Open
gabriansa opened this issue Mar 25, 2025 · 3 comments
Open

Add Support for Image Return in Agent Tools #341

gabriansa opened this issue Mar 25, 2025 · 3 comments
Labels
enhancement New feature or request

Comments

@gabriansa
Copy link

Describe the feature

I would like to propose adding support for tools that can return images. This would enable agents to generate, process, and analyze visual data as part of their workflow.

Use Cases:

  1. Data Visualization

    • Agents could generate plots and charts from numerical data
    • Analyze trends and patterns visually
    • Make data-driven decisions based on visual representations
  2. Image Processing

    • Generate or modify images based on specifications
    • Create diagrams or flowcharts
    • Process and return modified images

Dummy Example Scenario:

@function_tool
def create_plot(data: list[float]) -> Image:  # New Image return type
    """Creates a line plot from the given data and returns it as an image."""
    plt.figure()
    plt.plot(data)
    # Convert plot to image
    return plot_to_image()
@gabriansa gabriansa added the enhancement New feature or request label Mar 25, 2025
@gabriansa gabriansa changed the title Add Support for Image Return Type in Agent Tools Add Support for Image Return in Agent Tools Mar 25, 2025
@rm-openai
Copy link
Collaborator

We should definitely do this at some point. Main blocker is that the OpenAI API doesn't support this yet.

@gabriansa
Copy link
Author

What about as an additional message after the tool call?

Dummy Example

messages.append({
    "role": "assistant",
    "content": [
        {
            "type": "image_url",
            "image_url": {
                "url": f"data:image/jpeg;base64,{base64_image}",
            },
        },
    ],
})

@rm-openai
Copy link
Collaborator

Yeah that would be cool. Would require a somewhat large refactor to the tools pipeline, to allow returning Content from a tool call instead of just str

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants