Amazon Bedrock
Amazon Bedrock
Section intitulée « Amazon Bedrock »OpenClaw peut utiliser des modèles Amazon Bedrock via le fournisseur de streaming Bedrock Converse de pi‑ai. L’authentification Bedrock utilise la chaîne de credentials par défaut du AWS SDK, et non une clé API.
Ce que pi-ai prend en charge
Section intitulée « Ce que pi-ai prend en charge »- Fournisseur :
amazon-bedrock - API :
bedrock-converse-stream - Auth : informations d’identification AWS (env vars, configuration partagée ou rôle d’instance)
- Région :
AWS_REGIONouAWS_DEFAULT_REGION(par défaut :us-east-1)
Découverte automatique de modèles
Section intitulée « Découverte automatique de modèles »Si des identifiants AWS sont détectés, OpenClaw peut découvrir automatiquement les modèles Bedrock qui prennent en charge le streaming et la sortie de texte. La découverte utilise bedrock:ListFoundationModels et est mise en cache (par défaut : 1 heure).
Les options de configuration se trouvent sous models.bedrockDiscovery :
{ models: { bedrockDiscovery: { enabled: true, region: "us-east-1", providerFilter: ["anthropic", "amazon"], refreshInterval: 3600, defaultContextWindow: 32000, defaultMaxTokens: 4096, }, },}Remarques :
enabledest défini par défaut surtruelorsque des identifiants AWS sont présents.regionest défini par défaut surAWS_REGIONouAWS_DEFAULT_REGION, puisus-east-1.providerFiltercorrespond aux noms des fournisseurs Bedrock (par exempleanthropic).refreshIntervalcorrespond à des secondes ; définissez sur0pour désactiver la mise en cache.defaultContextWindow(par défaut :32000) etdefaultMaxTokens(par défaut :4096) sont utilisés pour les modèles découverts (remplacez-les si vous connaissez les limites de votre modèle).
Intégration
Section intitulée « Intégration »- Assurez-vous que les informations d’identification AWS sont disponibles sur l’hôte de la passerelle :
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="..."- Ajoutez un fournisseur Bedrock et un modèle à votre configuration (aucun
apiKeyrequis) :
{ 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" }, }, },}Rôles d’instance EC2
Section intitulée « Rôles d’instance EC2 »Lorsque OpenClaw est exécuté sur une instance EC2 avec un rôle IAM associé, le AWS SDK utilisera automatiquement le service de métadonnées de l’instance (IMDS) pour l’authentification. Cependant, la détection d’informations d’identification par OpenClaw vérifie actuellement uniquement les variables d’environnement, et non les informations d’identification IMDS.
Solution de contournement : Définissez AWS_PROFILE=default pour signaler que les identifiants AWS sont disponibles. L’authentification réelle utilise toujours le rôle d’instance via IMDS.
# Add to ~/.bashrc or your shell profileexport AWS_PROFILE=defaultexport AWS_REGION=us-east-1Autorisations IAM requises pour le rôle de l’instance EC2 :
bedrock:InvokeModelbedrock:InvokeModelWithResponseStreambedrock:ListFoundationModels(pour la découverte automatique)
Ou attachez la stratégie gérée AmazonBedrockFullAccess.
Configuration rapide (chemin AWS)
Section intitulée « Configuration rapide (chemin 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 listRemarques
Section intitulée « Remarques »- Bedrock nécessite que l’accès aux models soit activé dans votre compte/region AWS.
- La découverte automatique nécessite l’autorisation
bedrock:ListFoundationModels. - Si vous utilisez des profils, définissez
AWS_PROFILEsur l’hôte de la passerelle. - OpenClaw expose la source des identifiants dans cet ordre :
AWS_BEARER_TOKEN_BEDROCK, puisAWS_ACCESS_KEY_ID+AWS_SECRET_ACCESS_KEY, puisAWS_PROFILE, puis la chaîne SDK AWS par défaut. - La prise en charge du raisonnement dépend du model ; consultez la fiche technique du model Bedrock pour connaître les capacités actuelles.
- Si vous préférez un flux de clés géré, vous pouvez également placer un proxy compatible OpenAI devant Bedrock et le configurer en tant que fournisseur OpenAI à la place.
Guardrails
Section intitulée « Guardrails »Vous pouvez appliquer les Amazon Bedrock Guardrails
à tous les appels de modèle Bedrock en ajoutant un objet guardrail à la
configuration du plugin amazon-bedrock. Les garde-fous vous permettent d’appliquer un filtrage de contenu,
le refus de sujets, des filtres de mots, des filtres d’informations sensibles et des vérifications
d’ancrage contextuel.
{ 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(requis) accepte un ID de garde-fou (p. ex.abc123) ou un ARN complet (p. ex.arn:aws:bedrock:us-east-1:123456789012:guardrail/abc123).guardrailVersion(requis) spécifie la version publiée à utiliser, ou"DRAFT"pour la brouillon de travail.streamProcessingMode(facultatif) contrôle si l’évaluation du garde-fou s’exécute de manière synchrone ("sync") ou asynchrone ("async") pendant le streaming. Si omis, Bedrock utilise son comportement par défaut.trace(facultatif) active la sortie de trace du garde-fou dans la réponse API. Définissez sur"enabled"ou"enabled_full"pour le débogage ; omettez ou définissez"disabled"pour la production.
Le principal IAM utilisé par la passerelle doit disposer de l’autorisation bedrock:ApplyGuardrail
en plus des autorisations d’appel standard.