| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 | from enum import StrEnumfrom typing import Any, Optional, Unionfrom pydantic import BaseModel, Fieldfrom core.tools.entities.tool_entities import ToolInvokeMessage, ToolProviderTypeclass AgentToolEntity(BaseModel):    """    Agent Tool Entity.    """    provider_type: ToolProviderType    provider_id: str    tool_name: str    tool_parameters: dict[str, Any] = Field(default_factory=dict)    plugin_unique_identifier: str | None = Noneclass AgentPromptEntity(BaseModel):    """    Agent Prompt Entity.    """    first_prompt: str    next_iteration: strclass AgentScratchpadUnit(BaseModel):    """    Agent First Prompt Entity.    """    class Action(BaseModel):        """        Action Entity.        """        action_name: str        action_input: Union[dict, str]        def to_dict(self) -> dict:            """            Convert to dictionary.            """            return {                "action": self.action_name,                "action_input": self.action_input,            }    agent_response: Optional[str] = None    thought: Optional[str] = None    action_str: Optional[str] = None    observation: Optional[str] = None    action: Optional[Action] = None    def is_final(self) -> bool:        """        Check if the scratchpad unit is final.        """        return self.action is None or (            "final" in self.action.action_name.lower() and "answer" in self.action.action_name.lower()        )class AgentEntity(BaseModel):    """    Agent Entity.    """    class Strategy(StrEnum):        """        Agent Strategy.        """        CHAIN_OF_THOUGHT = "chain-of-thought"        FUNCTION_CALLING = "function-calling"    provider: str    model: str    strategy: Strategy    prompt: Optional[AgentPromptEntity] = None    tools: Optional[list[AgentToolEntity]] = None    max_iteration: int = 5class AgentInvokeMessage(ToolInvokeMessage):    """    Agent Invoke Message.    """    pass
 |