You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
swarms/playground/agents/3rd_party_agents/auto_gen.py

72 lines
2.0 KiB

5 months ago
import os
from typing import Any, Dict, Optional
from autogen import ConversableAgent
from loguru import logger
from swarms import Agent
class AutogenAgentWrapper(Agent):
"""
Wrapper class for the ConversableAgent that provides additional functionality.
"""
def __init__(
self,
name: str,
llm_config: Dict[str, Any],
*args: Any,
**kwargs: Any,
):
"""
Initialize the AutogenAgentWrapper.
Args:
name (str): The name of the agent.
llm_config (Dict[str, Any]): The configuration for the ConversableAgent.
*args: Additional positional arguments.
**kwargs: Additional keyword arguments.
"""
super().__init__(*args, **kwargs)
self.name = name
self.autogen_agent = ConversableAgent(
name=name,
llm_config=llm_config,
code_execution_config=False,
function_map=None,
human_input_mode="NEVER",
)
def run(self, task: str, *args: Any, **kwargs: Any) -> Optional[str]:
"""
Run the AutogenAgentWrapper.
Args:
task (str): The task to be performed by the agent.
*args: Additional positional arguments.
**kwargs: Additional keyword arguments.
Returns:
Optional[str]: The response generated by the agent, or None if an error occurred.
"""
try:
messages = [{"content": task, "role": "user"}]
response = self.autogen_agent.generate_reply(messages)
logger.info("Task: %s, Response: %s", task, response)
return response
except Exception as e:
logger.error("An error occurred: %s", str(e))
return None
llm_config = {
"config_list": [
{"model": "gpt-4", "api_key": os.environ.get("OPENAI_API_KEY")}
]
}
autogen_wrapper = AutogenAgentWrapper("AutogenAssistant", llm_config)
result = autogen_wrapper.run("Tell me a joke about programming.")
print(result)