The create_agents_from_yaml function is designed to dynamically create agents and orchestrate swarms based on configurations defined in a YAML file. It is particularly suited for enterprise use-cases, offering scalability and reliability for agent-based workflows.
fromswarms.structs.agentimportAgentfromswarms.structs.swarm_routerimportSwarmRouter# Model representing your LLMdefmodel(prompt):returnf"Processed: {prompt}"# Create agents and return them as a listagents=create_agents_from_yaml(model=model,yaml_file="agents.yaml",return_type="agents")print(agents)
importosfromdotenvimportload_dotenvfromloguruimportloggerfromswarm_modelsimportOpenAIChatfromswarms.agents.create_agents_from_yamlimport(create_agents_from_yaml,)# Load environment variablesload_dotenv()# Path to your YAML fileyaml_file="agents_multi_agent.yaml"# Get the OpenAI API key from the environment variableapi_key=os.getenv("GROQ_API_KEY")# Modelmodel=OpenAIChat(openai_api_base="https://api.groq.com/openai/v1",openai_api_key=api_key,model_name="llama-3.1-70b-versatile",temperature=0.1,)try:# Create agents and run tasks (using 'both' to return agents and task results)task_results=create_agents_from_yaml(model=model,yaml_file=yaml_file,return_type="run_swarm")logger.info(f"Results from agents: {task_results}")exceptExceptionase:logger.error(f"An error occurred: {e}")
fromswarms.structs.agentimportAgent# Model representing your LLMdefmodel(prompt):returnf"Processed: {prompt}"# Create agents and run tasks, return both agents and task resultsswarm,agents=create_agents_from_yaml(model=model,yaml_file="agents.yaml",return_type="both")print(swarm,agents)
Below is an updated YAML schema that conforms to the function's expectations:
agents:-agent_name:"Financial-Analysis-Agent"system_prompt:"Yourfullsystemprompthere"max_loops:1autosave:truedashboard:falseverbose:truedynamic_temperature_enabled:truesaved_state_path:"finance_agent.json"user_name:"swarms_corp"retry_attempts:1context_length:200000return_step_meta:falseoutput_type:"str"# task: "How can I establish a ROTH IRA to buy stocks and get a tax break?" # Turn off if using swarm-agent_name:"Stock-Analysis-Agent"system_prompt:"Yourfullsystemprompthere"max_loops:2autosave:truedashboard:falseverbose:truedynamic_temperature_enabled:falsesaved_state_path:"stock_agent.json"user_name:"stock_user"retry_attempts:3context_length:150000return_step_meta:trueoutput_type:"json"# task: "What is the best strategy for long-term stock investment?"# Optional Swarm Configurationswarm_architecture:name:"MySwarm"description:"Aswarmforcollaborativetasksolving"max_loops:5swarm_type:"ConcurrentWorkflow"task:"HowcanwetrademarkconceptsasadelawareCCORPforfree?"# Main task
importosfromdotenvimportload_dotenvfromloguruimportloggerfromswarm_modelsimportOpenAIChatfromswarms.agents.create_agents_from_yamlimport(create_agents_from_yaml,)# Load environment variablesload_dotenv()# Path to your YAML fileyaml_file="agents.yaml"# Get the OpenAI API key from the environment variableapi_key=os.getenv("GROQ_API_KEY")# Modelmodel=OpenAIChat(openai_api_base="https://api.groq.com/openai/v1",openai_api_key=api_key,model_name="llama-3.1-70b-versatile",temperature=0.1,)try:# Create agents and run tasks (using 'both' to return agents and task results)task_results=create_agents_from_yaml(model=model,yaml_file=yaml_file,return_type="run_swarm"# )logger.info(f"Results from agents: {task_results}")exceptExceptionase:logger.error(f"An error occurred: {e}")
The create_agents_from_yaml function provides a flexible and powerful way to dynamically configure and execute agents, supporting a wide range of tasks and configurations for enterprise-level use cases. By following the YAML schema and function signature, users can easily define and manage their agents and swarms.