Skip to content

feat(agent): add AWS Bedrock provider support - #3698

Open
Chukwuebuka-2003 wants to merge 2 commits into
block:mainfrom
Chukwuebuka-2003:feat/aws-bedrock-provider
Open

feat(agent): add AWS Bedrock provider support#3698
Chukwuebuka-2003 wants to merge 2 commits into
block:mainfrom
Chukwuebuka-2003:feat/aws-bedrock-provider

Conversation

@Chukwuebuka-2003

@Chukwuebuka-2003 Chukwuebuka-2003 commented Jul 30, 2026

Copy link
Copy Markdown

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)

  • Added Provider::Bedrock to the Provider enum in config.rs
  • Added Bedrock match arm in Config::from_env() — reads AWS_REGION/AWS_DEFAULT_REGION + BEDROCK_MODEL, derives base URL as https://bedrock-runtime.{region}.amazonaws.com
  • Added "bedrock"Ok(Provider::Bedrock) to resolve_provider()

Task 2: AWS SigV4 signing module (committed)

  • Created crates/buzz-agent/src/sigv4.rs with:
    • sign_request() — signs an HTTP request with AWS SigV4 using the aws-sigv4 crate
    • load_aws_credentials() — reads AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN from env
    • parse_bedrock_region() — extracts region from https://bedrock-runtime.{region}.amazonaws.com
    • 6 unit tests covering signing with/without session tokens, region parsing, and credential loading — all passing

LLM routing stubs

  • Added Provider::Bedrock match arms in Llm::complete() and Llm::summarize() (return AgentError for now — real Converse API integration to follow)
  • Added Bedrock to build_token_source() (no-op token source — SigV4 replaces bearer auth)
  • Added required dependencies: aws-sigv4 (with http1 feature), aws-credential-types, aws-types, aws-smithy-runtime-api, http

Next steps (follow-up PRs)

  • Task 3: Real Bedrock Converse API integration in llm.rs (body builders, response parser, post_bedrock())
  • Task 4: Bedrock model catalog discovery via ListFoundationModels
  • Task 5: Desktop backend (Tauri) provider registration
  • Task 6: Desktop UI provider selection and credential fields

Testing

cargo test -p buzz-agent           # 22 passed (including 6 new SigV4 tests)
cargo check -p buzz-agent          # compiles cleanly

@Chukwuebuka-2003
Chukwuebuka-2003 requested a review from a team as a code owner July 30, 2026 06:22
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>
@Chukwuebuka-2003
Chukwuebuka-2003 force-pushed the feat/aws-bedrock-provider branch from 137f009 to fb95bcb Compare July 30, 2026 06:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant