Configuracion
AgentCrew se configura a traves de variables de entorno (definidas en tu
archivo .env) y ajustes de la aplicacion (gestionados desde la interfaz).
Esta pagina documenta todas las opciones disponibles.
Variables de Entorno
Estas variables se definen en el archivo .env en la raiz de
tu instalacion de AgentCrew. Se leen cuando el stack de Docker Compose
se inicia.
| Variable | Requerida | Valor por Defecto | Descripcion |
|---|---|---|---|
NATS_AUTH_TOKEN | Si | Ninguno | Token de autenticacion para la mensajeria NATS entre el servidor API y los contenedores de agentes. Debe ser una cadena aleatoria y segura. |
API_PORT | No | 3000 | Puerto para acceso directo a la API (por ejemplo, scripts o automatizacion). El frontend redirige las llamadas API automaticamente a traves de nginx, por lo que este puerto no es necesario para el uso normal. |
FRONTEND_PORT | No | 8080 | Puerto en el que se sirve el frontend. Cambialo si el puerto 8080 ya esta en uso. |
SCHEDULE_TIMEOUT | No | 1h | Tiempo maximo de espera para la respuesta de una tarea programada antes de marcar la ejecucion como timeout. Acepta cadenas de duracion de Go (por ejemplo, 30m, 2h). |
SCHEDULER_MAX_CONCURRENT | No | 10 | Numero maximo de tareas programadas que pueden ejecutarse simultaneamente. Las tareas excedentes se difieren al siguiente tick del programador. |
WEBHOOK_MAX_CONCURRENT | No | 20 | Numero maximo global de ejecuciones de webhooks que pueden ejecutarse simultaneamente. Las activaciones excedentes se encolan. Tambien se puede sobreescribir por webhook. |
AUTH_PROVIDER | No | local | Modo de autenticacion. local habilita autenticacion por email/contrasena con tokens JWT. noop desactiva la autenticacion completamente (usuario unico, sin login). Ver Autenticacion. |
JWT_SECRET | Si* | Ninguno | Clave secreta para firmar tokens JWT. Debe tener al menos 32 caracteres. Requerida cuando AUTH_PROVIDER=local. Se genera automaticamente con el instalador. |
SETTINGS_ENCRYPTION_KEY | Si* | Ninguno | Clave para cifrar datos sensibles en reposo (claves API, tokens de invitacion) usando AES-256-GCM. Requerida cuando AUTH_PROVIDER=local. Se genera automaticamente con el instalador. |
MULTI_TENANT | No | false | Cuando es false, solo puede existir una organizacion. Cuando es true, multiples organizaciones pueden registrarse independientemente. Ver Autenticacion. |
JWT_ACCESS_EXPIRATION | No | 24h | Tiempo de vida de los tokens de acceso JWT. Acepta cadenas de duracion de Go (por ejemplo, 1h, 30m). |
JWT_REFRESH_EXPIRATION | No | 7d | Tiempo de vida de los tokens de refresco JWT. Acepta cadenas de duracion de Go (por ejemplo, 7d, 30d). |
*JWT_SECRETySETTINGS_ENCRYPTION_KEYson requeridas solo cuando se usaAUTH_PROVIDER=local. No son necesarias conAUTH_PROVIDER=noop.
Ejemplo de archivo .env
# Required
NATS_AUTH_TOKEN=a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6
# Authentication (required for AUTH_PROVIDER=local)
AUTH_PROVIDER=local
JWT_SECRET=your-secure-random-string-at-least-32-characters
SETTINGS_ENCRYPTION_KEY=your-secure-random-encryption-key
MULTI_TENANT=false
# Optional overrides
API_PORT=3000
FRONTEND_PORT=8080
# Optional: JWT token lifetimes
# JWT_ACCESS_EXPIRATION=24h
# JWT_REFRESH_EXPIRATION=7d
# Scheduler settings
SCHEDULE_TIMEOUT=1h
SCHEDULER_MAX_CONCURRENT=10
# Webhook settings
WEBHOOK_MAX_CONCURRENT=20 Ajustes de la Aplicacion
Estos ajustes se configuran a traves de la pagina de Configuracion en la interfaz de AgentCrew (haz clic en el icono de engranaje en la barra lateral). Se almacenan en la base de datos de la aplicacion y pueden cambiarse en cualquier momento sin reiniciar.
| Ajuste | Descripcion |
|---|---|
ANTHROPIC_API_KEY | Tu clave API de Anthropic de console.anthropic.com. Utilizada por equipos Claude Code (requerida a menos que uses un token OAuth) y por equipos OpenCode cuando ejecutan modelos de Anthropic. |
CLAUDE_CODE_OAUTH_TOKEN | Metodo de autenticacion alternativo: un token OAuth para Claude Code. Usalo si prefieres OAuth en lugar de autenticacion por clave API. Solo uno de los dos es requerido. |
OPENAI_API_KEY | Tu clave API de OpenAI. Requerida para equipos OpenCode que usen modelos de OpenAI. Tambien la utiliza Claude Code si esta configurada. |
GOOGLE_GENERATIVE_AI_API_KEY | Tu clave API de Google AI. Requerida para equipos OpenCode que usen modelos de Google (Gemini, etc.). |
Nota: Solo necesitas credenciales para los proveedores que uses. Los equipos Claude Code requierenANTHROPIC_API_KEYoCLAUDE_CODE_OAUTH_TOKEN. Los equipos OpenCode requieren al menos una clave de proveedor de modelos (ANTHROPIC_API_KEY,OPENAI_API_KEYoGOOGLE_GENERATIVE_AI_API_KEY). Consulta Proveedores para mas detalles.
Ruta del Espacio de Trabajo
Al crear un equipo, puedes especificar una ruta de espacio de trabajo,
un directorio en tu maquina host que se montara en el contenedor del agente
en /workspace. Esto da a los agentes acceso de lectura y escritura
a los archivos de tu proyecto.
- La ruta debe ser una ruta absoluta en el host (por ejemplo,
/home/user/projects/my-app). - El directorio debe existir antes de crear el equipo.
- Los agentes pueden leer, crear, editar y eliminar archivos dentro del espacio de trabajo.
- Si no se especifica una ruta de espacio de trabajo, los agentes trabajan con un directorio
/workspacevacio respaldado por un volumen Docker.
# Host machine # Inside agent container
/home/user/projects/my-app → /workspace Almacenamiento Persistente
AgentCrew usa una base de datos SQLite para almacenar equipos, agentes, habilidades,
historial de chat y ajustes de la aplicacion. El archivo de base de datos se persiste en un
volumen Docker llamado agentcrew_db.
- El volumen se crea automaticamente en la primera ejecucion.
- Los datos sobreviven a ciclos de
docker compose downydocker compose up. - Para reiniciar completamente, elimina el volumen:
docker volume rm agentcrew_db.
Consejo: Haz una copia de seguridad de tu base de datos copiandola desde el
volumen. Usa docker cp o monta el volumen en un contenedor temporal
para acceder al archivo SQLite.
Imágenes de Agente Personalizadas
AgentCrew te permite usar imágenes Docker personalizadas para tus agentes. Esto es útil cuando tus agentes necesitan herramientas adicionales, bibliotecas o dependencias del sistema más allá de lo que ofrecen las imágenes por defecto.
Importante: Tu imagen personalizada debe estar basada en las imágenes oficiales de agentes de AgentCrew, ya que contienen el binario sidecar y las herramientas CLI necesarias.
Dockerfile Base para Agente Claude Code
FROM ghcr.io/helmcode/agent_crew_agent:latest
# Add your custom dependencies here
# Example: Install Python packages
RUN pip install pandas numpy
# Example: Install system tools
RUN apt-get update && apt-get install -y --no-install-recommends \
postgresql-client \
redis-tools \
&& rm -rf /var/lib/apt/lists/*
# Example: Install user-level tools (use gosu to run as agentcrew)
# RUN gosu agentcrew npx playwright install chromium Dockerfile Base para Agente OpenCode
FROM ghcr.io/helmcode/agent_crew_opencode_agent:latest
# Add your custom dependencies here
RUN apt-get update && apt-get install -y --no-install-recommends \
your-tools-here \
&& rm -rf /var/lib/apt/lists/* Nota: No necesitas gestionar directivasUSERen tu Dockerfile. Los contenedores de AgentCrew siempre arrancan como root y el script de entrypoint reduce los privilegios automaticamente para coincidir con el propietario del workspace. Usagosu agentcrewcuando necesites instalar herramientas a nivel de usuario (por ejemplo, binarios de navegador) durante el build.
Cómo Construir y Usar
Construye tu imagen personalizada:
docker build -t myregistry/my-custom-agent:latest .
Luego, en la interfaz de AgentCrew, establece Custom Agent Image en
myregistry/my-custom-agent:latest al crear o editar un equipo.
Advertencia: Usar una imagen que no contenga el binario sidecar de AgentCrew y la CLI del agente causara fallos en el despliegue.
Siguientes Pasos
- Autenticacion: Gestion de usuarios, organizaciones, invitaciones y control de acceso basado en roles.
- Habilidades: Extiende las capacidades de los agentes con habilidades instalables desde GitHub.
- Arquitectura: Entiende como interactuan los componentes y por donde fluyen los datos.