pull/831/head
Kye Gomez 1 week ago
parent 9b1bc95237
commit 1b85f60ca0

@ -1,6 +1,4 @@
# Environment Variable Management & Security
This guide provides comprehensive documentation for managing environment variables and API keys securely in the Swarms framework.
# Environment Variables
## Overview
@ -10,80 +8,106 @@ Swarms uses environment variables for configuration management and secure creden
### Framework Configuration
- `SWARMS_VERBOSE_GLOBAL`: Controls global logging verbosity
=== "Configuration Variables"
| Variable | Description | Example |
|----------|-------------|---------|
| `SWARMS_VERBOSE_GLOBAL` | Controls global logging verbosity | `True` or `False` |
| `WORKSPACE_DIR` | Defines the workspace directory for agent operations | `agent_workspace` |
### LLM Provider API Keys
=== "OpenAI"
```bash
SWARMS_VERBOSE_GLOBAL="True" # Enable verbose logging
SWARMS_VERBOSE_GLOBAL="False" # Disable verbose logging
OPENAI_API_KEY="your-openai-key"
```
- `WORKSPACE_DIR`: Defines the workspace directory for agent operations
=== "Anthropic"
```bash
WORKSPACE_DIR="agent_workspace"
ANTHROPIC_API_KEY="your-anthropic-key"
```
### API Keys
#### Model Provider Keys
=== "Groq"
```bash
GROQ_API_KEY="your-groq-key"
```
1. **OpenAI**
- `OPENAI_API_KEY`: Authentication for GPT models
=== "Google"
```bash
OPENAI_API_KEY="your-openai-key"
GEMINI_API_KEY="your-gemini-key"
```
2. **Anthropic**
- `ANTHROPIC_API_KEY`: Authentication for Claude models
=== "Hugging Face"
```bash
ANTHROPIC_API_KEY="your-anthropic-key"
HUGGINGFACE_TOKEN="your-huggingface-token"
```
3. **Google**
- `GEMINI_API_KEY`: Authentication for Gemini models
=== "Perplexity AI"
```bash
PPLX_API_KEY="your-perplexity-key"
```
4. **Hugging Face**
- `HUGGINGFACE_TOKEN`: Access to Hugging Face models
=== "AI21"
```bash
AI21_API_KEY="your-ai21-key"
```
5. **Perplexity AI**
- `PPLX_API_KEY`: Access to Perplexity models
=== "Cohere"
```bash
COHERE_API_KEY="your-cohere-key"
```
6. **AI21**
- `AI21_API_KEY`: Access to AI21 models
=== "Mistral AI"
```bash
MISTRAL_API_KEY="your-mistral-key"
```
#### Tool Provider Keys
=== "Together AI"
```bash
TOGETHER_API_KEY="your-together-key"
```
1. **Search Tools**
- `BING_BROWSER_API`: Bing search capabilities
- `BRAVESEARCH_API_KEY`: Brave search integration
- `TAVILY_API_KEY`: Tavily search services
- `YOU_API_KEY`: You.com search integration
### Tool Provider Keys
2. **Analytics & Monitoring**
- `EXA_API_KEY`: Exa.ai services
=== "Search Tools"
```bash
BING_BROWSER_API="your-bing-key"
BRAVESEARCH_API_KEY="your-brave-key"
TAVILY_API_KEY="your-tavily-key"
YOU_API_KEY="your-you-key"
```
3. **Browser Automation**
- `MULTION_API_KEY`: Multi-browser automation
=== "Analytics & Monitoring"
```bash
EXA_API_KEY="your-exa-key"
```
=== "Browser Automation"
```bash
MULTION_API_KEY="your-multion-key"
```
## Security Best Practices
### 1. Environment File Management
### Environment File Management
- Create a `.env` file in your project root
- Never commit `.env` files to version control
- Add `.env` to your `.gitignore`:
1. Create a `.env` file in your project root
2. Never commit `.env` files to version control
3. Add `.env` to your `.gitignore`:
```bash
echo ".env" >> .gitignore
```
### 2. API Key Security
### API Key Security
!!! warning "Important Security Considerations"
- Rotate API keys regularly
- Use different API keys for development and production
- Never hardcode API keys in your code
- Limit API key permissions to only what's necessary
- Monitor API key usage for unusual patterns
### 3. Template Configuration
### Template Configuration
Create a `.env.example` template without actual values:
@ -91,13 +115,14 @@ Create a `.env.example` template without actual values:
# Required Configuration
OPENAI_API_KEY=""
ANTHROPIC_API_KEY=""
GROQ_API_KEY=""
WORKSPACE_DIR="agent_workspace"
# Optional Configuration
SWARMS_VERBOSE_GLOBAL="False"
```
### 4. Loading Environment Variables
### Loading Environment Variables
```python
from dotenv import load_dotenv
@ -113,22 +138,22 @@ openai_key = os.getenv("OPENAI_API_KEY")
## Environment Setup Guide
1. **Install Dependencies**:
=== "1. Install Dependencies"
```bash
pip install python-dotenv
```
2. **Create Environment File**:
=== "2. Create Environment File"
```bash
cp .env.example .env
```
3. **Configure Variables**:
=== "3. Configure Variables"
- Open `.env` in your text editor
- Add your API keys and configuration
- Save the file
4. **Verify Setup**:
=== "4. Verify Setup"
```python
import os
from dotenv import load_dotenv
@ -139,22 +164,19 @@ openai_key = os.getenv("OPENAI_API_KEY")
## Environment-Specific Configuration
### Development
=== "Development"
```bash
WORKSPACE_DIR="agent_workspace"
SWARMS_VERBOSE_GLOBAL="True"
```
### Production
=== "Production"
```bash
WORKSPACE_DIR="/var/swarms/workspace"
SWARMS_VERBOSE_GLOBAL="False"
```
### Testing
=== "Testing"
```bash
WORKSPACE_DIR="test_workspace"
SWARMS_VERBOSE_GLOBAL="True"
@ -164,24 +186,17 @@ SWARMS_VERBOSE_GLOBAL="True"
### Common Issues
1. **Environment Variables Not Loading**
???+ note "Environment Variables Not Loading"
- Verify `.env` file exists in project root
- Confirm `load_dotenv()` is called before accessing variables
- Check file permissions
2. **API Key Issues**
???+ note "API Key Issues"
- Verify key format is correct
- Ensure key has not expired
- Check for leading/trailing whitespace
3. **Workspace Directory Problems**
???+ note "Workspace Directory Problems"
- Confirm directory exists
- Verify write permissions
- Check path is absolute when required
## Additional Resources
- [Swarms Documentation](https://docs.swarms.world)
- [Security Best Practices](https://swarms.world/security)
- [API Documentation](https://swarms.world/docs/api)

Loading…
Cancel
Save