feat(agent): add AWS Bedrock provider support - #3698
Conversation
Signed-off-by: Chukwuebuka-2003 <ebulamicheal@gmail.com>
- Add sigv4.rs module with sign_request(), load_aws_credentials(), parse_bedrock_region() - Add http/aws-smithy-runtime-api dependencies - Add Provider::Bedrock match arms in llm.rs (placeholders returning errors) - Enable aws-sigv4 http1 feature for apply_to_request_http1x - All 6 SigV4 unit tests passing Signed-off-by: Chukwuebuka-2003 <ebulamicheal@gmail.com>
137f009 to
fb95bcb
Compare
|
Heads up for coordination — I have a follow-on fix ready to go once this (and #3704) merges: Not opening a PR yet since it's built directly on top of your |
Summary
Add first-class AWS Bedrock provider support to Buzz agents, selectable per agent like Anthropic/OpenAI/Databricks. This is the foundation — the provider enum variant, SigV4 signing module, and LLM routing stubs are in place.
Refs #3614
Changes
Task 1: Provider::Bedrock variant (committed)
Provider::Bedrockto theProviderenum inconfig.rsConfig::from_env()— readsAWS_REGION/AWS_DEFAULT_REGION+BEDROCK_MODEL, derives base URL ashttps://bedrock-runtime.{region}.amazonaws.com"bedrock"→Ok(Provider::Bedrock)toresolve_provider()Task 2: AWS SigV4 signing module (committed)
crates/buzz-agent/src/sigv4.rswith:sign_request()— signs an HTTP request with AWS SigV4 using theaws-sigv4crateload_aws_credentials()— readsAWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEY,AWS_SESSION_TOKENfrom envparse_bedrock_region()— extracts region fromhttps://bedrock-runtime.{region}.amazonaws.comLLM routing stubs
Provider::Bedrockmatch arms inLlm::complete()andLlm::summarize()(returnAgentErrorfor now — real Converse API integration to follow)build_token_source()(no-op token source — SigV4 replaces bearer auth)aws-sigv4(withhttp1feature),aws-credential-types,aws-types,aws-smithy-runtime-api,httpNext steps (follow-up PRs)
llm.rs(body builders, response parser,post_bedrock())ListFoundationModelsTesting