Arquitectura
Como OpenClaws aprovisiona, orquesta y aisla la infraestructura de tus agentes de IA.
Vision General
OpenClaws se ejecuta sobre tres herramientas principales de HashiCorp:
- Nomad — Orquestacion de contenedores, planificacion, aislamiento de namespace y cuotas de recursos
- Vault — Gestion de secretos, cifrado Transit, identidad de carga de trabajo basada en JWT
- Consul — Descubrimiento de servicios, TLS mutuo y control de acceso basado en intenciones
Flujo de Aprovisionamiento
Crear Usuario
Cuando se crea un usuario, OpenClaws aprovisiona el namespace y la cuota de recursos:
1. Create Nomad namespace "oc-{user}" with tier metadata
2. Create resource quota "quota-{user}", attach to namespace
3. Create CSI volume "oc-{user}-data" (10 GB GCE Persistent Disk)Agregar Agente(s)
Agregar agentes crea secretos por agente y reconstruye el contenedor del usuario:
1. Validate agent count against tier limit
2. Encrypt Anthropic API key via Vault Transit (vault:v1:... ciphertext)
3. For each new agent:
- Generate API key (32 bytes, hex-encoded)
- Generate gateway token
- Store in Vault KV at secret/openclaw/oc-{user}/{agent}
4. Store user-level Anthropic key at secret/openclaw/oc-{user}/_anthropic_key
5. Create Consul intentions:
- oc-{user} → vertex-ai-proxy
- oc-{user} → anthropic-proxy
6. Build and submit Nomad job "oc-{user}" with ALL agents in config
7. Container starts with new agent configurationEliminar Agente
1. Delete agent's Vault secret
2. If agents remain: rebuild and resubmit job with remaining agents
3. If no agents remain: stop the job, remove Consul intentionsArquitectura del Contenedor
Cada usuario obtiene un unico contenedor gateway de OpenClaw que ejecuta todos sus agentes:
- Imagen:
ghcr.io/openclaw/openclaw:main(puerto 18789) - Usuario de ejecucion:
node(UID 1000) - Configuracion:
~/.openclaw/openclaw.json(enlace simbolico al volumen persistente) - Red: Consul Connect modo bridge con sidecar Envoy
- Almacenamiento: Volumen CSI montado en
/openclaw-data
Secuencia de Inicio del Contenedor
El script _startup.sh del contenedor realiza estos pasos:
1. Create ~/.openclaw directory (symlink to /openclaw-data/oc-{user}/)
2. Copy openclaw.json config into ~/.openclaw/
3. Decrypt ANTHROPIC_API_KEY via Vault Transit API
- Reads vault token from NOMAD_SECRETS_DIR
- HTTP POST to VAULT_ADDR/v1/transit/decrypt/openclaw
4. Write per-agent auth-profiles.json files
- ~/.openclaw/agents/{id}/agent/auth-profiles.json
5. Start background auto-approver for device pairing
6. Exec the OpenClaw gateway processAlmacenamiento de la Lista de Agentes
La lista de agentes se almacena en los metadatos del job de Nomad como una cadena separada por comas:
openclaw.agents = "manager,researcher,writer"Esta es leida por la funcion ListAgents del API de gestion y se utiliza para reconstruir el job cuando se agregan o eliminan agentes.
Auto-Escalado
El Nomad Autoscaler monitorea la utilizacion de recursos a nivel de cluster y escala el Managed Instance Group de GCE:
- Estrategia: target-value al 70% para asignacion de CPU y memoria
- Rango de escala: 1-5 nodos (configurable)
- Tiempo de enfriamiento: 5 minutos entre acciones de escalado
- Reduccion: Drenaje de nodos con limite de 5 minutos, purga despues del drenaje
API de Gestion
El API de gestion es un servicio en Go con arquitectura por capas:
cmd/mgmt-api/main.go → Entry point, wires dependencies
internal/handlers/ → HTTP handlers (user + agent CRUD)
internal/service/ → Business logic, saga provisioning
internal/nomad/ → Namespace, quota, job management
internal/vault/ → KV v2 + Transit encrypt/decrypt
internal/consul/ → Service mesh intentions
internal/config/ → Environment-based configurationEl API utiliza el patron saga para aprovisionamiento de multiples pasos con rollback automatico en caso de fallo.