from vocode.streaming.agent.factory import AgentFactory
class MyAgentFactory(AgentFactory):
def __init__(self, agent_config: AgentConfig, action_factory: MyActionFactory):
self.agent_config = agent_config
self.action_factory = action_factory
def create_agent(
self, agent_config: AgentConfig, logger: Optional[logging.Logger] = None
) -> BaseAgent:
if agent_config.type == "MY_ACTION":
return MyActionAgent(
agent_config=typing.cast(ActionAgentConfig, self.agent_config),
action_factory=self.action_factory
)
raise Exception("Invalid agent config")