Amazon Bedrock provider added, with eight model-ID fix commits to land it
pixelysg wires Claude through Amazon Bedrock as a fourth LLM backend. The adapter code is clean and small. Getting Bedrock's inference profile ID format right took eight commits and the final values still show inconsistencies - re-verify before importing.
The provider adapter in backend/src/lib/llm/bedrock.ts (174 lines) uses @anthropic-ai/bedrock-sdk@0.29.1 and reuses the existing Anthropic message and streaming shape, so the diff is mostly plumbing. Credentials can come from per-user API keys (JSON-encoded with accessKeyId, secretAccessKey, region, sessionToken) or fall through to AWS_* env vars. The title-generation router in userSettings.ts was extended to pick BEDROCK_LOW_MODELS[0] when only AWS credentials are available.
The model ID story is rougher. Bedrock requires cross-region inference profile format rather than bare model names, and getting the exact strings right took eight separate fix commits over about two hours. The commits contradict each other on what worked: bare anthropic. prefix, then the cross-region inference profile prefix (an AWS region code ahead of the model name, here the United States region), then full dated identifiers, then back to undated versions. The final state in models.ts has the region-prefixed anthropic.claude-sonnet-4-6 (no version marker) for Sonnet and the region-prefixed anthropic.claude-haiku-4-5-20251001-v1:0 (with date and :0) for Haiku - inconsistent formats suggesting different accounts or configurations were used across test runs.
pixelysg (use-agently.com) appears to be running on AWS, which explains the priority. The BEDROCK_MAIN_MODELS list changed throughout - Opus 4.7 was added, then removed, then Opus 4.6 was added. The frontend picker has matching churn.
Spotted something wrong? Or know the PR text has fresher detail than the writeup above?