Amazon Bedrock
OpenClaw puede usar modelos de Amazon Bedrock a traves del proveedor de streaming Bedrock Converse de pi-ai. La autenticacion de Bedrock usa la cadena de credenciales por defecto del SDK de AWS, no una clave API.
Que soporta pi-ai
- Proveedor:
amazon-bedrock - API:
bedrock-converse-stream - Autenticacion: credenciales de AWS (variables de entorno, configuracion compartida o rol de instancia)
- Region:
AWS_REGIONoAWS_DEFAULT_REGION(por defecto:us-east-1)
Descubrimiento automatico de modelos
Si se detectan credenciales de AWS, OpenClaw puede descubrir automaticamente los modelos de Bedrock que soportan streaming y salida de texto. El descubrimiento usa bedrock:ListFoundationModels y se almacena en cache (por defecto: 1 hora).
Las opciones de configuracion estan en 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 disponibles.regiontoma por defectoAWS_REGIONoAWS_DEFAULT_REGION, luegous-east-1.providerFilterfiltra por nombres de proveedores de Bedrock (por ejemploanthropic).refreshIntervales en segundos; establece0para desactivar el cache.defaultContextWindow(por defecto:32000) ydefaultMaxTokens(por defecto:4096) se usan para los modelos descubiertos (sobreescribe si conoces los limites de tu modelo).
Onboarding
- Asegurate de que las credenciales de AWS esten disponibles en el host del gateway:
export AWS_ACCESS_KEY_ID="AKIA..."
export AWS_SECRET_ACCESS_KEY="..."
export AWS_REGION="us-east-1"
# Opcional:
export AWS_SESSION_TOKEN="..."
export AWS_PROFILE="your-profile"
# Opcional (clave API / bearer token de Bedrock):
export AWS_BEARER_TOKEN_BEDROCK="..."
- Agrega un proveedor y modelo de Bedrock a tu configuracion (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 EC2
Cuando ejecutas OpenClaw en una instancia EC2 con un rol IAM asociado, el SDK de AWS usara automaticamente el servicio de metadatos de instancia (IMDS) para la autenticacion. Sin embargo, la deteccion de credenciales de OpenClaw actualmente solo verifica variables de entorno, no credenciales de IMDS.
Solucion alternativa: Establece AWS_PROFILE=default para indicar que hay credenciales de AWS
disponibles. La autenticacion real sigue usando el rol de instancia a traves de IMDS.
# Agrega a ~/.bashrc o tu perfil de shell
export AWS_PROFILE=default
export AWS_REGION=us-east-1
Permisos IAM requeridos para el rol de instancia EC2:
bedrock:InvokeModelbedrock:InvokeModelWithResponseStreambedrock:ListFoundationModels(para el descubrimiento automatico)
O adjunta la politica administrada AmazonBedrockFullAccess.
Configuracion rapida (ruta AWS)
# 1. Crear rol IAM y perfil de instancia
aws 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-Access
aws iam add-role-to-instance-profile \
--instance-profile-name EC2-Bedrock-Access \
--role-name EC2-Bedrock-Access
# 2. Asociar a tu instancia EC2
aws ec2 associate-iam-instance-profile \
--instance-id i-xxxxx \
--iam-instance-profile Name=EC2-Bedrock-Access
# 3. En la instancia EC2, activar el descubrimiento
openclaw config set models.bedrockDiscovery.enabled true
openclaw config set models.bedrockDiscovery.region us-east-1
# 4. Establecer las variables de entorno de solucion alternativa
echo 'export AWS_PROFILE=default' >> ~/.bashrc
echo 'export AWS_REGION=us-east-1' >> ~/.bashrc
source ~/.bashrc
# 5. Verificar que los modelos se descubran
openclaw models list
Notas
- Bedrock requiere que el acceso al modelo este habilitado en tu cuenta/region de AWS.
- El descubrimiento automatico necesita el permiso
bedrock:ListFoundationModels. - Si usas perfiles, establece
AWS_PROFILEen el host del gateway. - OpenClaw detecta la fuente de credenciales en este orden:
AWS_BEARER_TOKEN_BEDROCK, luegoAWS_ACCESS_KEY_ID+AWS_SECRET_ACCESS_KEY, luegoAWS_PROFILE, luego la cadena por defecto del SDK de AWS. - El soporte de razonamiento depende del modelo; consulta la ficha del modelo en Bedrock para conocer las capacidades actuales.
- Si prefieres un flujo de claves administradas, tambien puedes colocar un proxy compatible con OpenAI frente a Bedrock y configurarlo como proveedor de OpenAI.