from typing import Any from smolagents.tools import Tool from smolagents.agent_types import AgentImage import os from uuid import uuid4 class FinalAnswerTool(Tool): name = "final_answer" description = "Provides a final answer to the given problem." inputs = {'answer': {'type': 'any', 'description': 'The final answer to the problem'}} output_type = "any" def forward(self, answer: Any) -> Any: # If it's an AgentImage, save it to file and return an updated object if isinstance(answer, AgentImage): image = answer # Save to temp folder inside the Space output_dir = "/tmp/final_outputs" os.makedirs(output_dir, exist_ok=True) path = os.path.join(output_dir, f"{uuid4().hex}.png") image.save(path) # Patch the object so `to_string()` will work image.path = path return image return answer