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.
231 lines
6.8 KiB
231 lines
6.8 KiB
# Swarms API Best Practices Guide
|
|
|
|
This comprehensive guide outlines production-grade best practices for using the Swarms API effectively. Learn how to choose the right swarm architecture, optimize costs, and implement robust error handling.
|
|
|
|
## Quick Reference Cards
|
|
|
|
=== "Swarm Types"
|
|
|
|
!!! info "Available Swarm Architectures"
|
|
|
|
| Swarm Type | Best For | Use Cases |
|
|
|------------|----------|------------|
|
|
| `AgentRearrange` | Dynamic workflows | - Complex task decomposition<br>- Adaptive processing<br>- Multi-stage analysis |
|
|
| `MixtureOfAgents` | Diverse expertise | - Cross-domain problems<br>- Comprehensive analysis<br>- Multi-perspective tasks |
|
|
| `SpreadSheetSwarm` | Data processing | - Financial analysis<br>- Data transformation<br>- Batch calculations |
|
|
| `SequentialWorkflow` | Linear processes | - Document processing<br>- Step-by-step analysis<br>- Quality control |
|
|
| `ConcurrentWorkflow` | Parallel tasks | - Batch processing<br>- Independent analyses<br>- High-throughput needs |
|
|
| `GroupChat` | Collaborative solving | - Brainstorming<br>- Decision making<br>- Problem solving |
|
|
| `MultiAgentRouter` | Task distribution | - Load balancing<br>- Specialized processing<br>- Resource optimization |
|
|
| `AutoSwarmBuilder` | Automated setup | - Quick prototyping<br>- Simple tasks<br>- Testing |
|
|
| `HiearchicalSwarm` | Complex organization | - Project management<br>- Research analysis<br>- Enterprise workflows |
|
|
| `MajorityVoting` | Consensus needs | - Quality assurance<br>- Decision validation<br>- Risk assessment |
|
|
|
|
=== "Cost Optimization"
|
|
|
|
!!! tip "Cost Management Strategies"
|
|
|
|
| Strategy | Implementation | Impact |
|
|
|----------|----------------|---------|
|
|
| Batch Processing | Group related tasks | 20-30% cost reduction |
|
|
| Off-peak Usage | Schedule for 8 PM - 6 AM PT | 15-25% cost reduction |
|
|
| Token Optimization | Precise prompts, focused tasks | 10-20% cost reduction |
|
|
| Caching | Store reusable results | 30-40% cost reduction |
|
|
| Agent Optimization | Use minimum required agents | 15-25% cost reduction |
|
|
|
|
=== "Error Handling"
|
|
|
|
!!! warning "Error Management Best Practices"
|
|
|
|
| Error Code | Strategy | Implementation |
|
|
|------------|----------|----------------|
|
|
| 400 | Input Validation | Pre-request parameter checks |
|
|
| 401 | Auth Management | Regular key rotation, secure storage |
|
|
| 429 | Rate Limiting | Exponential backoff, request queuing |
|
|
| 500 | Resilience | Retry with backoff, fallback logic |
|
|
| 503 | High Availability | Multi-region setup, redundancy |
|
|
|
|
## Choosing the Right Swarm Architecture
|
|
|
|
### Decision Framework
|
|
|
|
Use this framework to select the optimal swarm architecture for your use case:
|
|
|
|
1. **Task Complexity Analysis**
|
|
- Simple tasks → `AutoSwarmBuilder`
|
|
|
|
- Complex tasks → `HiearchicalSwarm` or `MultiAgentRouter`
|
|
|
|
- Dynamic tasks → `AgentRearrange`
|
|
|
|
2. **Workflow Pattern**
|
|
|
|
- Linear processes → `SequentialWorkflow`
|
|
|
|
- Parallel operations → `ConcurrentWorkflow`
|
|
|
|
- Collaborative tasks → `GroupChat`
|
|
|
|
3. **Domain Requirements**
|
|
|
|
- Multi-domain expertise → `MixtureOfAgents`
|
|
|
|
- Data processing → `SpreadSheetSwarm`
|
|
|
|
- Quality assurance → `MajorityVoting`
|
|
|
|
### Industry-Specific Recommendations
|
|
|
|
=== "Finance"
|
|
|
|
!!! example "Financial Applications"
|
|
|
|
|
|
- Risk Analysis: `HiearchicalSwarm`
|
|
|
|
- Market Research: `MixtureOfAgents`
|
|
|
|
- Trading Strategies: `ConcurrentWorkflow`
|
|
|
|
- Portfolio Management: `SpreadSheetSwarm`
|
|
|
|
=== "Healthcare"
|
|
|
|
!!! example "Healthcare Applications"
|
|
|
|
|
|
- Patient Analysis: `SequentialWorkflow`
|
|
|
|
- Research Review: `MajorityVoting`
|
|
|
|
- Treatment Planning: `GroupChat`
|
|
|
|
- Medical Records: `MultiAgentRouter`
|
|
|
|
=== "Legal"
|
|
|
|
!!! example "Legal Applications"
|
|
|
|
|
|
- Document Review: `SequentialWorkflow`
|
|
|
|
- Case Analysis: `MixtureOfAgents`
|
|
|
|
- Compliance Check: `HiearchicalSwarm`
|
|
|
|
- Contract Analysis: `ConcurrentWorkflow`
|
|
|
|
## Production Implementation Guide
|
|
|
|
### Authentication Best Practices
|
|
|
|
```python
|
|
import os
|
|
from dotenv import load_dotenv
|
|
|
|
# Load environment variables
|
|
load_dotenv()
|
|
|
|
# Secure API key management
|
|
API_KEY = os.getenv("SWARMS_API_KEY")
|
|
if not API_KEY:
|
|
raise EnvironmentError("API key not found")
|
|
|
|
# Headers with retry capability
|
|
headers = {
|
|
"x-api-key": API_KEY,
|
|
"Content-Type": "application/json",
|
|
}
|
|
```
|
|
|
|
### Robust Error Handling
|
|
|
|
```python
|
|
import backoff
|
|
import requests
|
|
from typing import Dict, Any
|
|
|
|
class SwarmsAPIError(Exception):
|
|
"""Custom exception for Swarms API errors"""
|
|
pass
|
|
|
|
@backoff.on_exception(
|
|
backoff.expo,
|
|
(requests.exceptions.RequestException, SwarmsAPIError),
|
|
max_tries=5
|
|
)
|
|
def execute_swarm(payload: Dict[str, Any]) -> Dict[str, Any]:
|
|
"""
|
|
Execute swarm with robust error handling and retries
|
|
"""
|
|
try:
|
|
response = requests.post(
|
|
f"{BASE_URL}/v1/swarm/completions",
|
|
headers=headers,
|
|
json=payload,
|
|
timeout=30
|
|
)
|
|
|
|
response.raise_for_status()
|
|
return response.json()
|
|
|
|
except requests.exceptions.RequestException as e:
|
|
if e.response is not None:
|
|
if e.response.status_code == 429:
|
|
# Rate limit exceeded
|
|
raise SwarmsAPIError("Rate limit exceeded")
|
|
elif e.response.status_code == 401:
|
|
# Authentication error
|
|
raise SwarmsAPIError("Invalid API key")
|
|
raise SwarmsAPIError(f"API request failed: {str(e)}")
|
|
```
|
|
|
|
|
|
## Appendix
|
|
|
|
### Common Patterns and Anti-patterns
|
|
|
|
!!! success "Recommended Patterns"
|
|
|
|
- Use appropriate swarm types for tasks
|
|
|
|
- Implement robust error handling
|
|
|
|
- Monitor and log executions
|
|
|
|
- Cache repeated results
|
|
|
|
- Rotate API keys regularly
|
|
|
|
!!! danger "Anti-patterns to Avoid"
|
|
|
|
|
|
- Hardcoding API keys
|
|
|
|
- Ignoring rate limits
|
|
|
|
- Missing error handling
|
|
|
|
|
|
- Excessive agent count
|
|
|
|
- Inadequate monitoring
|
|
|
|
### Performance Benchmarks
|
|
|
|
!!! note "Typical Performance Metrics"
|
|
|
|
| Metric | Target Range | Warning Threshold |
|
|
|--------|--------------|-------------------|
|
|
| Response Time | < 2s | > 5s |
|
|
| Success Rate | > 99% | < 95% |
|
|
| Cost per Task | < $0.05 | > $0.10 |
|
|
| Cache Hit Rate | > 80% | < 60% |
|
|
| Error Rate | < 1% | > 5% |
|
|
|
|
### Additional Resources
|
|
|
|
!!! info "Useful Links"
|
|
|
|
- [Swarms API Documentation](https://docs.swarms.world)
|
|
- [API Dashboard](https://swarms.world/platform/api-keys) |