[Bug]: No way to use actions in inbound calls if a custom AgentFactory is not created.
Brief Description
All agent factories inherited from AbstractAgentFactory, try to create agents with default constructors, like this:
def create_agent(self, agent_config: AgentConfig) -> BaseAgent:
...
if isinstance(agent_config, ChatGPTAgentConfig):
return ChatGPTAgent(agent_config=agent_config)
...
the problem here, is that they use DefaultActionFactory, which in default mode, their action_configs_dict is set to an empty dictionary, which later on, no action config can pass the following code:
def create_action(self, action_config: ActionConfig):
if action_config.type not in self.action_configs_dict:
raise Exception("Action type not supported by Agent config.")
I'm not sure this is a bug, but it completely neglects the purpose of have a default factory for both this classes.
LLM
ChatGPT
Transcription Services
None
Synthesis Services
None
Telephony Services
None
Conversation Type and Platform
I've encountered it in streaming twilio calls, but I believe everyone should suffer from this.
Steps to Reproduce
Nothing complicated. Just use
base_url=BASE_URL,
config_manager=config_manager,
inbound_call_configs=[SOME_CONFIG_WITH_ACTIONS],
)
and then try to call.
Expected Behavior
I think it should use actions.
Screenshots
No response
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
This issue has been automatically closed due to inactivity. Thank you for your contributions.