Conecta Amazon Bedrock a OpenClaw: Guía de configuración
¿Alguna vez has sentido que gestionar llaves API para cada modelo de IA es un trabajo de tiempo completo? Si ya usas AWS, configurar Amazon Bedrock es la mejor forma de evitar ese caos y mantener todo bajo control usando la infraestructura que ya conoces.
Amazon Bedrock
Sección titulada «Amazon Bedrock»OpenClaw puede usar modelos de Amazon Bedrock a través del proveedor de streaming Bedrock Converse de pi‑ai. La autenticación de Bedrock usa la cadena de credenciales por defecto del AWS SDK, no una API key.
Qué soporta pi-ai
Sección titulada «Qué soporta pi-ai»- Provider:
amazon-bedrock - API:
bedrock-converse-stream - Auth: Credenciales de AWS (env vars, configuración compartida o rol de instancia)
- Region:
AWS_REGIONoAWS_DEFAULT_REGION(por defecto:us-east-1)
Descubrimiento automático de modelos
Sección titulada «Descubrimiento automático de modelos»Si se detectan credenciales de AWS, OpenClaw puede descubrir automáticamente modelos de Bedrock que soporten streaming y text output. El descubrimiento usa bedrock:ListFoundationModels y se guarda en caché (por defecto: 1 hora).
Las opciones de configuración están bajo models.bedrockDiscovery:
{ models: { bedrockDiscovery: { enabled: true, region: "us-east-1", providerFilter: ["anthropic", "amazon"], refreshInterval: 3600, defaultContextWindow: 32000, defaultMaxTokens: 4096, }, },}Notas:
enabledestruepor defecto cuando hay credenciales de AWS presentes.regionusaAWS_REGIONoAWS_DEFAULT_REGION, y si no,us-east-1.providerFiltercoincide con los nombres de proveedores de Bedrock (por ejemploanthropic) yrefreshIntervalestá en segundos (ponlo en0para desactivar la caché).defaultContextWindow(por defecto:32000) ydefaultMaxTokens(por defecto:4096) se usan para los modelos descubiertos; cámbialos si conoces los límites de tu modelo.
Configuración inicial
Sección titulada «Configuración inicial»- Asegúrate de que las credenciales de AWS estén disponibles en el gateway host:
export AWS_ACCESS_KEY_ID="AKIA..."export AWS_SECRET_ACCESS_KEY="..."export AWS_REGION="us-east-1"# Optional:export AWS_SESSION_TOKEN="..."export AWS_PROFILE="your-profile"# Optional (Bedrock API key/bearer token):export AWS_BEARER_TOKEN_BEDROCK="..."- Añade un proveedor de Bedrock y un modelo a tu configuración (no necesitas
apiKey):
{ models: { providers: { "amazon-bedrock": { baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", api: "bedrock-converse-stream", auth: "aws-sdk", models: [ { id: "us.anthropic.claude-opus-4-6-v1:0", name: "Claude Opus 4.6 (Bedrock)", reasoning: true, input: ["text", "image"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 200000, maxTokens: 8192, }, ], }, }, }, agents: { defaults: { model: { primary: "amazon-bedrock/us.anthropic.claude-opus-4-6-v1:0" }, }, },}Roles de instancia de EC2
Sección titulada «Roles de instancia de EC2»Al ejecutar OpenClaw en una instancia de EC2 con un rol de IAM asignado, el AWS SDK usará automáticamente el servicio de metadatos de la instancia (IMDS) para la autenticación. Sin embargo, la detección de credenciales de OpenClaw actualmente solo revisa variables de entorno, no credenciales de IMDS.
Solución temporal: Configura AWS_PROFILE=default para indicar que las credenciales de AWS están disponibles. La autenticación real seguirá usando el rol de la instancia a través de IMDS.
# Add to ~/.bashrc or your shell profileexport AWS_PROFILE=defaultexport AWS_REGION=us-east-1Permisos de IAM requeridos para el rol de la instancia EC2:
bedrock:InvokeModelybedrock:InvokeModelWithResponseStreambedrock:ListFoundationModels(para el descubrimiento automático)
También puedes adjuntar la política gestionada AmazonBedrockFullAccess.
Configuración rápida (vía AWS)
Sección titulada «Configuración rápida (vía AWS)»# 1. Create IAM role and instance profileaws iam create-role --role-name EC2-Bedrock-Access \ --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": {"Service": "ec2.amazonaws.com"}, "Action": "sts:AssumeRole" }] }'
aws iam attach-role-policy --role-name EC2-Bedrock-Access \ --policy-arn arn:aws:iam::aws:policy/AmazonBedrockFullAccess
aws iam create-instance-profile --instance-profile-name EC2-Bedrock-Accessaws iam add-role-to-instance-profile \ --instance-profile-name EC2-Bedrock-Access \ --role-name EC2-Bedrock-Access
# 2. Attach to your EC2 instanceaws ec2 associate-iam-instance-profile \ --instance-id i-xxxxx \ --iam-instance-profile Name=EC2-Bedrock-Access
# 3. On the EC2 instance, enable discoveryopenclaw config set models.bedrockDiscovery.enabled trueopenclaw config set models.bedrockDiscovery.region us-east-1
# 4. Set the workaround env varsecho 'export AWS_PROFILE=default' >> ~/.bashrcecho 'export AWS_REGION=us-east-1' >> ~/.bashrcsource ~/.bashrc
# 5. Verify models are discoveredopenclaw models list- El acceso a Bedrock requiere que habilites el acceso al modelo en tu cuenta y región de AWS, además de tener el permiso
bedrock:ListFoundationModelspara el descubrimiento automático. - Si utilizas perfiles de AWS, asegúrate de configurar la variable
AWS_PROFILEen el Gateway host para que la autenticación funcione correctamente. - OpenClaw busca credenciales en este orden:
AWS_BEARER_TOKEN_BEDROCK, luego el par de llaves de acceso, despuésAWS_PROFILEy finalmente la cadena por defecto del SDK. - El soporte para razonamiento (reasoning) varía según el modelo; revisa las capacidades en la tarjeta del modelo de Bedrock o considera usar un proxy compatible con OpenAI si prefieres ese flujo.
Guardrails de Amazon Bedrock
Sección titulada «Guardrails de Amazon Bedrock»Puedes aplicar Amazon Bedrock Guardrails a todas las llamadas de modelos de Bedrock añadiendo un objeto guardrail a la configuración del plugin amazon-bedrock. Los Guardrails permiten aplicar filtrado de contenido, denegación de temas, filtros de palabras e información sensible.
{ plugins: { entries: { "amazon-bedrock": { config: { guardrail: { guardrailIdentifier: "abc123", // guardrail ID or full ARN guardrailVersion: "1", // version number or "DRAFT" streamProcessingMode: "sync", // optional: "sync" or "async" trace: "enabled", // optional: "enabled", "disabled", or "enabled_full" }, }, }, }, },}guardrailIdentifier(requerido) acepta un ID de guardrail (ej.abc123) o un ARN completo (ej.arn:aws:bedrock:us-east-1:123456789012:guardrail/abc123).guardrailVersion(requerido) especifica la versión publicada que quieres usar, o"DRAFT"para el borrador de trabajo.streamProcessingMode(opcional) controla si la evaluación del guardrail es síncrona ("sync") o asíncrona ("async") durante el streaming.trace(opcional) activa la salida de traza en la respuesta de la API; usa"enabled"para depuración o"disabled"para entornos de producción.
El principal de IAM que use el Gateway debe tener el permiso bedrock:ApplyGuardrail además de los permisos de invocación estándar.
Próximos pasos
Sección titulada «Próximos pasos»OpenClaw Expert
Sigues atascado?
Si esta pagina no resolvio tu caso, pregunta a OpenClaw Expert para pasos concretos.