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/swarms/cli/create_agent.py

85 lines
2.1 KiB

import os
from swarms.structs.agent import Agent
from swarm_models.popular_llms import OpenAIChat
from swarms.structs.agent_registry import AgentRegistry
# Get the OpenAI API key from the environment variable
api_key = os.getenv("OPENAI_API_KEY")
# Create an instance of the OpenAIChat class
model = OpenAIChat(
api_key=api_key, model_name="gpt-4o-mini", temperature=0.1
)
# Registry of agents
agent_registry = AgentRegistry(
name="Swarms CLI",
description="A registry of agents for the Swarms CLI",
)
def create_agent(name: str, system_prompt: str, max_loops: int = 1):
"""
Create and initialize an agent with the given parameters.
Args:
name (str): The name of the agent.
system_prompt (str): The system prompt for the agent.
max_loops (int, optional): The maximum number of loops the agent can perform. Defaults to 1.
Returns:
Agent: The initialized agent.
"""
# Initialize the agent
agent = Agent(
agent_name=name,
system_prompt=system_prompt,
llm=model,
max_loops=max_loops,
autosave=True,
dashboard=False,
verbose=True,
dynamic_temperature_enabled=True,
saved_state_path=f"{name}.json",
user_name="swarms_corp",
retry_attempts=1,
context_length=200000,
# return_step_meta=True,
# disable_print_every_step=True,
# output_type="json",
interactive=True,
)
agent_registry.add(agent)
return agent
# Run the agents in the registry
def run_agent_by_name(name: str, task: str, *args, **kwargs):
"""
Run an agent by its name and perform a specified task.
Parameters:
- name (str): The name of the agent.
- task (str): The task to be performed by the agent.
- *args: Variable length argument list.
- **kwargs: Arbitrary keyword arguments.
Returns:
- output: The output of the agent's task.
"""
agent = agent_registry.get_agent_by_name(name)
output = agent.run(task, *args, **kwargs)
return output
# # Test
# out = create_agent("Accountant1", "Prepares financial statements")
# print(out)