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.
355 lines
9.0 KiB
355 lines
9.0 KiB
# CLI YAML Configuration Guide: Run Agents from Config Files
|
|
|
|
Run multiple agents from YAML configuration files for reproducible, version-controlled agent deployments.
|
|
|
|
## Basic YAML Configuration
|
|
|
|
### Step 1: Create YAML Config File
|
|
|
|
Create a file named `agents.yaml`:
|
|
|
|
```yaml
|
|
agents:
|
|
- name: "Research-Agent"
|
|
description: "AI research specialist"
|
|
model_name: "gpt-4o-mini"
|
|
system_prompt: |
|
|
You are an expert researcher.
|
|
Provide comprehensive, well-structured research summaries.
|
|
Include key insights and data points.
|
|
temperature: 0.3
|
|
max_loops: 2
|
|
task: "Research current trends in renewable energy"
|
|
|
|
- name: "Analysis-Agent"
|
|
description: "Data analysis specialist"
|
|
model_name: "gpt-4o-mini"
|
|
system_prompt: |
|
|
You are a data analyst.
|
|
Provide detailed statistical analysis and insights.
|
|
Use data-driven reasoning.
|
|
temperature: 0.2
|
|
max_loops: 3
|
|
task: "Analyze market opportunities in the EV sector"
|
|
```
|
|
|
|
### Step 2: Run Agents from YAML
|
|
|
|
```bash
|
|
swarms run-agents --yaml-file agents.yaml
|
|
```
|
|
|
|
### Step 3: View Results
|
|
|
|
Results are displayed in the terminal with formatted output for each agent.
|
|
|
|
---
|
|
|
|
## Complete YAML Schema
|
|
|
|
### Agent Configuration Options
|
|
|
|
```yaml
|
|
agents:
|
|
- name: "Agent-Name" # Required: Agent identifier
|
|
description: "Agent description" # Required: What the agent does
|
|
model_name: "gpt-4o-mini" # Model to use
|
|
system_prompt: "Your instructions" # Agent's system prompt
|
|
temperature: 0.5 # Creativity (0.0-2.0)
|
|
max_loops: 3 # Maximum execution loops
|
|
task: "Task to execute" # Task for this agent
|
|
|
|
# Optional settings
|
|
context_length: 8192 # Context window size
|
|
streaming_on: true # Enable streaming
|
|
verbose: true # Verbose output
|
|
autosave: true # Auto-save state
|
|
saved_state_path: "./states/agent.json" # State file path
|
|
output_type: "json" # Output format
|
|
retry_attempts: 3 # Retries on failure
|
|
```
|
|
|
|
---
|
|
|
|
## Use Case Examples
|
|
|
|
### Multi-Agent Research Pipeline
|
|
|
|
```yaml
|
|
# research_pipeline.yaml
|
|
agents:
|
|
- name: "Data-Collector"
|
|
description: "Collects and organizes research data"
|
|
model_name: "gpt-4o-mini"
|
|
system_prompt: |
|
|
You are a research data collector.
|
|
Gather comprehensive information on the given topic.
|
|
Organize findings into structured categories.
|
|
temperature: 0.3
|
|
max_loops: 2
|
|
task: "Collect data on AI applications in healthcare"
|
|
|
|
- name: "Trend-Analyst"
|
|
description: "Analyzes trends and patterns"
|
|
model_name: "gpt-4o-mini"
|
|
system_prompt: |
|
|
You are a trend analyst.
|
|
Identify emerging patterns and trends from data.
|
|
Provide statistical insights and projections.
|
|
temperature: 0.2
|
|
max_loops: 2
|
|
task: "Analyze AI healthcare adoption trends from 2020-2024"
|
|
|
|
- name: "Report-Writer"
|
|
description: "Creates comprehensive reports"
|
|
model_name: "gpt-4"
|
|
system_prompt: |
|
|
You are a professional report writer.
|
|
Create comprehensive, well-structured reports.
|
|
Include executive summaries and key recommendations.
|
|
temperature: 0.4
|
|
max_loops: 1
|
|
task: "Write an executive summary on AI in healthcare"
|
|
```
|
|
|
|
Run:
|
|
|
|
```bash
|
|
swarms run-agents --yaml-file research_pipeline.yaml
|
|
```
|
|
|
|
### Financial Analysis Team
|
|
|
|
```yaml
|
|
# financial_team.yaml
|
|
agents:
|
|
- name: "Market-Analyst"
|
|
description: "Analyzes market conditions"
|
|
model_name: "gpt-4"
|
|
system_prompt: |
|
|
You are a CFA-certified market analyst.
|
|
Provide detailed market analysis with technical indicators.
|
|
Include risk assessments and market outlook.
|
|
temperature: 0.2
|
|
max_loops: 3
|
|
task: "Analyze current S&P 500 market conditions"
|
|
|
|
- name: "Risk-Assessor"
|
|
description: "Evaluates investment risks"
|
|
model_name: "gpt-4"
|
|
system_prompt: |
|
|
You are a risk management specialist.
|
|
Evaluate investment risks and provide mitigation strategies.
|
|
Use quantitative risk metrics.
|
|
temperature: 0.1
|
|
max_loops: 2
|
|
task: "Assess risks in current tech sector investments"
|
|
|
|
- name: "Portfolio-Advisor"
|
|
description: "Provides portfolio recommendations"
|
|
model_name: "gpt-4"
|
|
system_prompt: |
|
|
You are a portfolio advisor.
|
|
Provide asset allocation recommendations.
|
|
Consider risk tolerance and market conditions.
|
|
temperature: 0.3
|
|
max_loops: 2
|
|
task: "Recommend portfolio adjustments for Q4 2024"
|
|
```
|
|
|
|
### Content Creation Pipeline
|
|
|
|
```yaml
|
|
# content_pipeline.yaml
|
|
agents:
|
|
- name: "Topic-Researcher"
|
|
description: "Researches content topics"
|
|
model_name: "gpt-4o-mini"
|
|
system_prompt: |
|
|
You are a content researcher.
|
|
Research topics thoroughly and identify key angles.
|
|
Find unique perspectives and data points.
|
|
temperature: 0.4
|
|
max_loops: 2
|
|
task: "Research content angles for 'Future of Remote Work'"
|
|
|
|
- name: "Content-Writer"
|
|
description: "Writes engaging content"
|
|
model_name: "gpt-4"
|
|
system_prompt: |
|
|
You are a professional content writer.
|
|
Write engaging, SEO-friendly content.
|
|
Use clear structure with headers and bullet points.
|
|
temperature: 0.7
|
|
max_loops: 2
|
|
task: "Write a blog post about remote work trends"
|
|
|
|
- name: "Editor"
|
|
description: "Edits and polishes content"
|
|
model_name: "gpt-4o-mini"
|
|
system_prompt: |
|
|
You are a professional editor.
|
|
Review content for clarity, grammar, and style.
|
|
Suggest improvements and optimize for readability.
|
|
temperature: 0.2
|
|
max_loops: 1
|
|
task: "Edit and polish the blog post for publication"
|
|
```
|
|
|
|
---
|
|
|
|
## Advanced Configuration
|
|
|
|
### Environment Variables in YAML
|
|
|
|
You can reference environment variables:
|
|
|
|
```yaml
|
|
agents:
|
|
- name: "API-Agent"
|
|
description: "Agent with API access"
|
|
model_name: "${MODEL_NAME:-gpt-4o-mini}" # Default if not set
|
|
system_prompt: "You are an API integration specialist."
|
|
task: "Test API integration"
|
|
```
|
|
|
|
### Multiple Config Files
|
|
|
|
Organize agents by purpose:
|
|
|
|
```bash
|
|
# Run different configurations
|
|
swarms run-agents --yaml-file research_agents.yaml
|
|
swarms run-agents --yaml-file analysis_agents.yaml
|
|
swarms run-agents --yaml-file reporting_agents.yaml
|
|
```
|
|
|
|
### Pipeline Script
|
|
|
|
```bash
|
|
#!/bin/bash
|
|
# run_pipeline.sh
|
|
|
|
echo "Starting research pipeline..."
|
|
swarms run-agents --yaml-file configs/research.yaml
|
|
|
|
echo "Starting analysis pipeline..."
|
|
swarms run-agents --yaml-file configs/analysis.yaml
|
|
|
|
echo "Starting reporting pipeline..."
|
|
swarms run-agents --yaml-file configs/reporting.yaml
|
|
|
|
echo "Pipeline complete!"
|
|
```
|
|
|
|
---
|
|
|
|
## Markdown Configuration
|
|
|
|
### Alternative: Load from Markdown
|
|
|
|
Create agents using markdown with YAML frontmatter:
|
|
|
|
```markdown
|
|
---
|
|
name: Research Agent
|
|
description: AI research specialist
|
|
model_name: gpt-4o-mini
|
|
temperature: 0.3
|
|
max_loops: 2
|
|
---
|
|
|
|
You are an expert researcher specializing in technology trends.
|
|
Provide comprehensive research summaries with:
|
|
- Key findings and insights
|
|
- Data points and statistics
|
|
- Recommendations and implications
|
|
|
|
Always cite sources when available and maintain objectivity.
|
|
```
|
|
|
|
Load from markdown:
|
|
|
|
```bash
|
|
# Load single file
|
|
swarms load-markdown --markdown-path ./agents/research_agent.md
|
|
|
|
# Load directory (concurrent processing)
|
|
swarms load-markdown --markdown-path ./agents/ --concurrent
|
|
```
|
|
|
|
---
|
|
|
|
## Best Practices
|
|
|
|
!!! tip "Configuration Management"
|
|
- Version control your YAML files
|
|
- Use descriptive agent names
|
|
- Document purpose in descriptions
|
|
|
|
!!! tip "Template Organization"
|
|
```
|
|
configs/
|
|
├── research/
|
|
│ ├── tech_research.yaml
|
|
│ └── market_research.yaml
|
|
├── analysis/
|
|
│ ├── financial_analysis.yaml
|
|
│ └── data_analysis.yaml
|
|
└── production/
|
|
└── prod_agents.yaml
|
|
```
|
|
|
|
!!! tip "Testing Configurations"
|
|
- Test with `--verbose` flag first
|
|
- Use lower `max_loops` for testing
|
|
- Start with `gpt-4o-mini` for cost efficiency
|
|
|
|
!!! warning "Common Pitfalls"
|
|
- Ensure proper YAML indentation (2 spaces)
|
|
- Quote strings with special characters
|
|
- Use `|` for multi-line prompts
|
|
|
|
---
|
|
|
|
## CI/CD Integration
|
|
|
|
### GitHub Actions
|
|
|
|
```yaml
|
|
# .github/workflows/run-agents.yml
|
|
name: Run Agent Pipeline
|
|
|
|
on:
|
|
schedule:
|
|
- cron: '0 9 * * 1' # Every Monday at 9 AM
|
|
|
|
jobs:
|
|
run-agents:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- name: Set up Python
|
|
uses: actions/setup-python@v4
|
|
with:
|
|
python-version: '3.10'
|
|
|
|
- name: Install Swarms
|
|
run: pip install swarms
|
|
|
|
- name: Run Agents
|
|
env:
|
|
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
|
|
run: swarms run-agents --yaml-file agents.yaml
|
|
```
|
|
|
|
---
|
|
|
|
## Next Steps
|
|
|
|
- [CLI Agent Guide](./cli_agent_guide.md) - Create agents from command line
|
|
- [CLI Multi-Agent Guide](../examples/cli_multi_agent_quickstart.md) - LLM Council and Heavy Swarm
|
|
- [CLI Reference](./cli_reference.md) - Complete command documentation
|
|
|