Installation Guide¶
This guide provides detailed instructions for deploying Guard Agent across various environments and configurations.
Renamed from fastapi-guard-agent in 2.0.0
The package was previously published as fastapi-guard-agent. The Python import path (from guard_agent import ...) is unchanged. Existing pip install fastapi-guard-agent commands still resolve via a meta-package that depends on guard-agent>=2.0.0,<3.0.0.
System Requirements¶
Python Runtime¶
Guard Agent requires Python 3.10 or higher. For optimal performance and feature compatibility, Python 3.11+ is recommended.
Verify your Python installation:
Core Dependencies¶
The following dependencies are automatically managed during installation:
Required Components¶
pydantic≥ 2.0 - Type-safe data validation and serializationhttpx- High-performance async HTTP client with connection poolingcryptography- AES-256-GCM payload encryptiontyping-extensions≥ 4.0 - Enhanced type hints for Python 3.10 compatibility
Optional Components¶
- A Guard adapter for your framework (install alongside the agent):
fastapi-guardfor FastAPIflaskapi-guardfor Flaskdjangoapi-guardfor Djangotornadoapi-guardfor Tornado
redis≥ 6.0.0 - Client library for persistent buffering (production recommended)- Redis Server 6.0+ - External service for high-availability deployments
- ASGI/WSGI Server - Uvicorn, Hypercorn, Gunicorn, or similar for application hosting
Installation Methods¶
Standard Installation (uv)¶
Install Guard Agent together with the adapter for your framework:
# FastAPI
uv add fastapi-guard guard-agent
# Flask
uv add flaskapi-guard guard-agent
# Django
uv add djapi-guard guard-agent
# Tornado
uv add tornadoapi-guard guard-agent
For standalone agent deployments (direct wire protocol, no adapter):
Version-Specific Installation¶
Pin to a specific version for reproducible deployments:
Alternative Package Managers¶
Poetry¶
For development dependencies:
pip¶
pip-tools Workflow¶
Define in requirements.in:
Generate locked requirements:
Development Installation¶
For contributors and advanced users requiring source access:
Install pre-commit hooks for code quality:
Container Deployment¶
Production Dockerfile¶
Optimized multi-stage build for minimal image size:
FROM python:3.11-slim as builder
# Install uv
RUN pip install --user uv
ENV PATH=/root/.local/bin:$PATH
# Sync project dependencies
WORKDIR /build
COPY pyproject.toml uv.lock* ./
RUN uv sync --frozen --no-dev
FROM python:3.11-slim
# Copy installed packages
COPY --from=builder /root/.local /root/.local
ENV PATH=/root/.local/bin:$PATH
# Application setup
WORKDIR /app
COPY . .
# Security: Run as non-root user
RUN useradd -m -u 1000 appuser && chown -R appuser:appuser /app
USER appuser
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]
Installation Verification¶
Comprehensive validation ensures proper deployment:
1. Package Import Validation¶
Verify successful installation through systematic import testing:
# test_installation.py
try:
# Validate Guard Agent module availability
from guard_agent import __version__
from guard_agent.client import guard_agent
from guard_agent.models import AgentConfig
print(f"Guard Agent {__version__} successfully installed")
# Validate your framework's adapter (example: FastAPI)
from guard import SecurityConfig, SecurityMiddleware
print("FastAPI adapter (fastapi-guard) verified")
except ImportError as e:
print(f"Installation validation failed: {e}")
Run the test:
2. Configuration Validation Test¶
Validate proper integration between your framework's adapter and the telemetry agent (example uses the FastAPI adapter):
# test_config.py
from fastapi import FastAPI
from guard import SecurityConfig, SecurityMiddleware
try:
app = FastAPI()
# Validate integrated configuration
config = SecurityConfig(
enable_agent=True,
agent_api_key="test-key",
agent_project_id="test-project"
)
middleware = SecurityMiddleware(app, config=config)
print("✅ Security middleware with telemetry pipeline successfully configured")
except Exception as e:
print(f"❌ Configuration validation failed: {e}")
3. Redis Connectivity Validation (Production Environments)¶
For production deployments utilizing Redis for persistent buffering:
# test_redis.py
import asyncio
from redis.asyncio import Redis
async def validate_redis_connectivity():
try:
redis = Redis.from_url("redis://localhost:6379")
await redis.ping()
print("✅ Redis connectivity validated - persistent buffering available")
except Exception as e:
print(f"❌ Redis connectivity validation failed: {e}")
finally:
await redis.close()
if __name__ == "__main__":
asyncio.run(validate_redis_connectivity())
Configuration Verification¶
Create a minimal application to ensure everything works:
# minimal_test.py
from fastapi import FastAPI
from guard import SecurityConfig, SecurityMiddleware
app = FastAPI()
# Configure FastAPI Guard with agent
config = SecurityConfig(
# Basic security
enable_rate_limiting=True,
rate_limit=100,
# Enable agent
enable_agent=True,
agent_api_key="your-test-api-key",
agent_project_id="your-test-project",
agent_endpoint="https://api.guard-core.com"
)
# Add middleware - agent starts automatically
middleware = SecurityMiddleware(app, config=config)
@app.get("/")
async def root():
return {"message": "Guard Agent is running!"}
@app.get("/test")
async def test():
return {"agent_enabled": config.enable_agent}
# Run with: uvicorn minimal_test:app --reload
Troubleshooting Guide¶
Module Import Failures¶
Symptom: ModuleNotFoundError: No module named 'guard_agent'
Resolution Strategies: 1. Ensure you're using the correct Python environment:
-
If using virtual environments, make sure it's activated:
-
Reinstall the package:
Redis Connectivity Issues¶
Symptom: ConnectionError: Error connecting to Redis
Resolution Strategies: 1. Ensure Redis server is running:
-
Check Redis configuration in your agent config:
-
Install Redis server if not installed:
Network Transport Failures¶
Symptom: httpx.HTTPError or connection timeout exceptions
Resolution Strategies: 1. Check your API endpoint configuration:
config = AgentConfig(
endpoint="https://api.guard-core.com", # Ensure this is correct
api_key="your-api-key"
)
-
Verify network connectivity:
-
Check firewall settings and proxy configuration if behind corporate network.
Installation Permission Errors¶
Symptom: PermissionError during package installation
Resolution Strategies:
1. Use a project-local virtual environment (recommended — this is what uv does by default):
-
With pip, use a manual venv:
-
With pip, user-scoped install as a last resort:
Post-Installation Guidance¶
Following successful installation of guard-agent, proceed with:
- Getting Started Guide - Comprehensive implementation walkthrough
- Configuration Reference - Detailed configuration parameter documentation
- Integration Patterns - Advanced integration architectures
- Implementation Examples - Production-ready deployment patterns
Get an API Key¶
The agent reports to the Guard management platform. Sign in or create a project at app.guard-core.com to obtain the api_key and project_id used in the configuration examples above. You can also experiment with the full Guard stack — no install required — at playground.guard-core.com.
System Requirements Summary¶
| Component | Requirement |
|---|---|
| Python | 3.10+ (3.11+ recommended) |
| Memory | 64MB+ available RAM |
| Network | HTTPS outbound access |
| Storage | 10MB+ disk space |
| Redis | Optional but recommended for production |