Amazon Bedrock
Amazon Bedrock
Sección titulada «Amazon Bedrock»OpenClaw puede utilizar modelos de Amazon Bedrock a través del proveedor de transmisión Bedrock Converse de pi‑ai. La autenticación de Bedrock utiliza la cadena de credenciales predeterminada del SDK de AWS, no una clave de API.
Lo que pi-ai admite
Sección titulada «Lo que pi-ai admite»- Proveedor:
amazon-bedrock - API:
bedrock-converse-stream - Autenticación: credenciales de AWS (variables de entorno, configuración compartida o rol de instancia)
- Región:
AWS_REGIONoAWS_DEFAULT_REGION(predeterminado:us-east-1)
Descubrimiento automático de modelos
Sección titulada «Descubrimiento automático de modelos»Si se detectan las credenciales de AWS, OpenClaw puede descubrir automáticamente los modelos de Bedrock
que admiten transmisión y salida de texto. El descubrimiento utiliza
bedrock:ListFoundationModels y se almacena en caché (predeterminado: 1 hora).
Las opciones de configuración se encuentran en models.bedrockDiscovery:
{ models: { bedrockDiscovery: { enabled: true, region: "us-east-1", providerFilter: ["anthropic", "amazon"], refreshInterval: 3600, defaultContextWindow: 32000, defaultMaxTokens: 4096, }, },}Notas:
enabledestruede forma predeterminada cuando hay credenciales de AWS presentes.regionesAWS_REGIONoAWS_DEFAULT_REGIONde forma predeterminada, luegous-east-1.providerFiltercoincide con los nombres de los proveedores de Bedrock (por ejemplo,anthropic).refreshIntervalson segundos; establezca en0para desactivar el almacenamiento en caché.defaultContextWindow(predeterminado:32000) ydefaultMaxTokens(predeterminado:4096) se utilizan para los modelos descubiertos (invalidar si conoce los límites de su modelo).
Incorporación
Sección titulada «Incorporación»- Asegúrese de que las credenciales de AWS estén disponibles en el host de puerta de enlace:
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="..."- Agregue un proveedor y un modelo de Bedrock a su configuración (no se requiere
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 adjunto, el SDK de AWS utilizará 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 verifica las variables de entorno, no las credenciales IMDS.
Solución alternativa: Establezca AWS_PROFILE=default para indicar que las credenciales de AWS están
disponibles. La autenticación real todavía usa el rol de instancia a través de IMDS.
# Add to ~/.bashrc or your shell profileexport AWS_PROFILE=defaultexport AWS_REGION=us-east-1Permisos IAM requeridos para el rol de instancia de EC2:
bedrock:InvokeModelbedrock:InvokeModelWithResponseStreambedrock:ListFoundationModels(para descubrimiento automático)
O adjunte la política administrada AmazonBedrockFullAccess.
Configuración rápida (ruta AWS)
Sección titulada «Configuración rápida (ruta 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- Bedrock requiere acceso al modelo habilitado en su cuenta/región de AWS.
- El descubrimiento automático necesita el permiso
bedrock:ListFoundationModels. - Si utiliza perfiles, establezca
AWS_PROFILEen el host de la puerta de enlace. - OpenClaw expone el origen de las credenciales en este orden:
AWS_BEARER_TOKEN_BEDROCK, luegoAWS_ACCESS_KEY_ID+AWS_SECRET_ACCESS_KEY, luegoAWS_PROFILEy luego la cadena predeterminada del SDK de AWS. - La compatibilidad con el razonamiento depende del modelo; consulte la ficha del modelo de Bedrock para conocer las capacidades actuales.
- Si prefiere un flujo de clave gestionada, también puede colocar un proxy compatible con OpenAI delante de Bedrock y configurarlo como proveedor de OpenAI en su lugar.
Guardrails
Sección titulada «Guardrails»Puedes aplicar Amazon Bedrock Guardrails
a todas las invocaciones de modelos de Bedrock añadiendo un objeto guardrail a la
configuración del plugin amazon-bedrock. Los Guardrails te permiten aplicar filtros de contenido,
denegación de temas, filtros de palabras, filtros de información sensible y comprobaciones de
fundamentación contextual.
{ 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(obligatorio) acepta un ID de guardrail (p. ej.abc123) o un ARN completo (p. ej.arn:aws:bedrock:us-east-1:123456789012:guardrail/abc123).guardrailVersion(obligatorio) especifica qué versión publicada usar, o"DRAFT"para el borrador de trabajo.streamProcessingMode(opcional) controla si la evaluación del guardrail se ejecuta de forma síncrona ("sync") o asíncrona ("async") durante la transmisión. Si se omite, Bedrock utiliza su comportamiento predeterminado.trace(opcional) activa la salida de traza del guardrail en la respuesta de la API. Establézcalo en"enabled"o"enabled_full"para depuración; omita o establezca"disabled"para producción.
La entidad de IAM utilizada por la puerta de enlace debe tener el permiso bedrock:ApplyGuardrail
además de los permisos de invocación estándar.