Source code for atomic_agents.lib.utils.format_tool_message

import json
import uuid
from pydantic import BaseModel
from typing import Dict, Optional, Type


[docs] def format_tool_message(tool_call: Type[BaseModel], tool_id: Optional[str] = None) -> Dict: """ Formats a message for a tool call. Args: tool_call (Type[BaseModel]): The Pydantic model instance representing the tool call. tool_id (str, optional): The unique identifier for the tool call. If not provided, a random UUID will be generated. Returns: Dict: A formatted message dictionary for the tool call. """ if tool_id is None: tool_id = str(uuid.uuid4()) # Get the tool name from the Config.title if available, otherwise use the class name return { "id": tool_id, "type": "function", "function": { "name": tool_call.__class__.__name__, "arguments": json.dumps(tool_call.model_dump(), separators=(", ", ": ")), }, }