ReqManagedAgents.Providers.BedrockAgentCore (ReqManagedAgents v0.10.0)

Copy Markdown View Source

ReqManagedAgents.Provider for the Bedrock AgentCore backend — :request_response mode. Each turn is one InvokeHarness call; resume re-sends the assistant toolUse + user toolResult delta (the harness does not persist the uncommitted tool-use turn). Composes the existing AgentCore.{Client, Converse} modules. Decoded events are additionally delivered live to the session as {:provider_event, ev} messages while a turn streams. provision/2's opts[:environment] carries an Environment.Spec (or a map coerced via Environment.Spec.new/1, or nil). Its opaque config is handed to CreateHarness's environment field VERBATIM — no per-key indexing, symmetric with how ClaudeManagedAgents passes config straight to its wire body (filesystem mounts, custom containers, env vars, all opaque and never interpreted by this library). Environment is first-class (#70/#72): it reaches this provider only via opts[:environment], never the spec, and its digest is folded into the harness name so different environments never collide on a name.

Summary

Functions

Assembles the AgentCore harness-creation spec from an Agent.Spec-shaped spec map and provisioning opts. Validates opts[:execution_role_arn] BEFORE it ever reaches CreateHarness — a blank/missing value used to pass straight through (Keyword.fetch!/2 only guards the key being absent, not a present-but-blank value) and surface as a cryptic AWS HTTP 400 "Value null at 'executionRoleArn'" (GitHub #64).

Functions

build_spec(spec, opts)

@spec build_spec(
  map(),
  keyword()
) ::
  {:ok, ReqManagedAgents.Providers.BedrockAgentCore.HarnessSpec.t()}
  | {:error, term()}

Assembles the AgentCore harness-creation spec from an Agent.Spec-shaped spec map and provisioning opts. Validates opts[:execution_role_arn] BEFORE it ever reaches CreateHarness — a blank/missing value used to pass straight through (Keyword.fetch!/2 only guards the key being absent, not a present-but-blank value) and surface as a cryptic AWS HTTP 400 "Value null at 'executionRoleArn'" (GitHub #64).