AutoAgent/autoagent/types.py
2025-02-12 21:56:40 +08:00

41 lines
1.2 KiB
Python

from litellm.types.utils import ChatCompletionMessageToolCall, Function, Message
from typing import List, Callable, Union, Optional, Tuple, Dict
# Third-party imports
from pydantic import BaseModel
AgentFunction = Callable[[], Union[str, "Agent", dict]]
class Agent(BaseModel):
name: str = "Agent"
model: str = "gpt-4o"
instructions: Union[str, Callable[[], str]] = "You are a helpful agent."
functions: List[AgentFunction] = []
tool_choice: str = None
parallel_tool_calls: bool = False
examples: Union[List[Tuple[dict, str]], Callable[[], str]] = []
handle_mm_func: Callable[[], str] = None
agent_teams: Dict[str, Callable] = {}
class Response(BaseModel):
messages: List = []
agent: Optional[Agent] = None
context_variables: dict = {}
class Result(BaseModel):
"""
Encapsulates the possible return values for an agent function.
Attributes:
value (str): The result value as a string.
agent (Agent): The agent instance, if applicable.
context_variables (dict): A dictionary of context variables.
"""
value: str = ""
agent: Optional[Agent] = None
context_variables: dict = {}
image: Optional[str] = None # base64 encoded image