Learn how to configure your multi-agent systems using YAML
YAML configuration files define your multi-agent system’s structure, behavior, and capabilities. This guide covers the complete configuration schema with practical examples.
Optional system-level tool definitions. This is for advanced configurations where you want to define tool configurations once and reference them across multiple agents.
Most users should configure tools at the agent level. System-level tools are for advanced use cases.
For workflow architecture only. Define edges at the root level to connect agents in your workflow:
Copy
# Root-level configurationarchitecture: "workflow"edges: # ← Edges are defined - from: "__start__" # ← at the root level to: "first_agent" # ← for workflow architecture - from: "first_agent" to: "second_agent" - from: "second_agent" to: "__end__"
Special nodes:
__start__ or START - Entry point of the workflow
__end__ or END - Exit point of the workflow
Supervisor architecture does not require explicit edges - the supervisor handles routing dynamically.
name: "Tool-Enabled Assistant"description: "AI assistant with calculator, web search, and database tools"architecture: "workflow"save_messages: truepersistent_state: trueagents: - name: "tool_agent" agent_type: "react_agent" description: "AI assistant with tool calling capabilities" system_prompt: | You are a helpful AI assistant with access to various tools. When you need to use a tool, think step by step about what information you need. tools: - "tavily_search" - "tavily_extract" - "calculator" llm_config: temperature: 0.1 max_tokens: 2000 tool_calling: enabled: true max_iterations: 10 streaming_config: enable_streaming: true show_output_to_user: trueedges: - from: "START" to: "tool_agent" - from: "tool_agent" to: "END"entry_point: "tool_agent"
name: "Research Team Supervisor"description: "Complete supervisor architecture with research, analysis, and synthesis agents"architecture: "supervisor"save_messages: truepersistent_state: trueagents: # Supervisor Agent - name: "research_supervisor" agent_type: "supervisor" description: "Intelligent supervisor coordinating research team specialists" supervised_agents: ["research_agent", "analysis_agent", "synthesis_agent"] return_to_supervisor: false max_handoffs: 15 streaming_config: enable_streaming: true show_output_to_user: true supervisor_prompt: | You are a research team supervisor coordinating specialized agents. Your team consists of: - research_agent: Expert at web search and information gathering - analysis_agent: Specialist in data analysis and pattern recognition - synthesis_agent: Expert at summarizing findings For ANY user request, immediately delegate to the appropriate agent. Always provide clear reasoning when transferring. # Research Agent - name: "research_agent" agent_type: "react_agent" description: "Specialized in research and information gathering" tools: - "tavily_search" - "tavily_extract" tool_calling: enabled: true max_iterations: 5 streaming_config: show_output_to_user: true show_reasoning: true system_prompt: | You are a Research Specialist in a multi-agent team. Your expertise includes: - Web search and information gathering - Fact-checking and source verification - Identifying reliable sources Always provide detailed, well-sourced research results. # Analysis Agent - name: "analysis_agent" agent_type: "react_agent" description: "Specialized in data analysis and pattern recognition" tools: - "calculator" tool_calling: enabled: true max_iterations: 3 streaming_config: show_output_to_user: true system_prompt: | You are an Analysis Specialist in a multi-agent team. Your expertise includes: - Data analysis and statistical processing - Pattern recognition and trend identification - Insight generation from complex information Focus on extracting meaningful insights. # Synthesis Agent - name: "synthesis_agent" agent_type: "llm_agent" description: "Specialized in synthesizing information" streaming_config: show_output_to_user: true system_prompt: | You are a Synthesis Specialist in a multi-agent team. Your expertise includes: - Combining research and analysis into coherent narratives - Creating well-structured, comprehensive reports - Ensuring completeness and coherence Create comprehensive, well-organized final responses.entry_point: "research_supervisor"
System Prompts: Use multi-line strings with | for better readability of complex prompts.
Temperature Settings: Use lower temperatures (0.1-0.3) for factual tasks and higher (0.7-1.0) for creative tasks.
Entry Point: Always ensure your entry_point matches an existing agent name, or the system will fail to initialize.
Supervisor Coordination: When using return_to_supervisor: true, the supervisor can evaluate worker outputs and decide on next steps. Set to false for simpler one-way delegation.