bedrock-agentcore-starter-toolkit 0.1.25__py3-none-any.whl → 0.1.27__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of bedrock-agentcore-starter-toolkit might be problematic. Click here for more details.

Files changed (25) hide show
  1. bedrock_agentcore_starter_toolkit/cli/cli.py +9 -1
  2. bedrock_agentcore_starter_toolkit/cli/runtime/commands.py +263 -7
  3. bedrock_agentcore_starter_toolkit/cli/runtime/configuration_manager.py +31 -7
  4. bedrock_agentcore_starter_toolkit/notebook/runtime/bedrock_agentcore.py +240 -2
  5. bedrock_agentcore_starter_toolkit/operations/identity/__init__.py +5 -0
  6. bedrock_agentcore_starter_toolkit/operations/identity/oauth2_callback_server.py +86 -0
  7. bedrock_agentcore_starter_toolkit/operations/memory/manager.py +20 -33
  8. bedrock_agentcore_starter_toolkit/operations/memory/models/strategies/base.py +2 -0
  9. bedrock_agentcore_starter_toolkit/operations/memory/models/strategies/self_managed.py +107 -0
  10. bedrock_agentcore_starter_toolkit/operations/runtime/__init__.py +4 -0
  11. bedrock_agentcore_starter_toolkit/operations/runtime/configure.py +120 -5
  12. bedrock_agentcore_starter_toolkit/operations/runtime/invoke.py +30 -54
  13. bedrock_agentcore_starter_toolkit/operations/runtime/launch.py +213 -16
  14. bedrock_agentcore_starter_toolkit/operations/runtime/models.py +19 -0
  15. bedrock_agentcore_starter_toolkit/operations/runtime/status.py +30 -0
  16. bedrock_agentcore_starter_toolkit/operations/runtime/stop_session.py +123 -0
  17. bedrock_agentcore_starter_toolkit/operations/runtime/vpc_validation.py +196 -0
  18. bedrock_agentcore_starter_toolkit/services/runtime.py +46 -2
  19. bedrock_agentcore_starter_toolkit/utils/runtime/schema.py +44 -1
  20. {bedrock_agentcore_starter_toolkit-0.1.25.dist-info → bedrock_agentcore_starter_toolkit-0.1.27.dist-info}/METADATA +13 -12
  21. {bedrock_agentcore_starter_toolkit-0.1.25.dist-info → bedrock_agentcore_starter_toolkit-0.1.27.dist-info}/RECORD +25 -20
  22. {bedrock_agentcore_starter_toolkit-0.1.25.dist-info → bedrock_agentcore_starter_toolkit-0.1.27.dist-info}/WHEEL +0 -0
  23. {bedrock_agentcore_starter_toolkit-0.1.25.dist-info → bedrock_agentcore_starter_toolkit-0.1.27.dist-info}/entry_points.txt +0 -0
  24. {bedrock_agentcore_starter_toolkit-0.1.25.dist-info → bedrock_agentcore_starter_toolkit-0.1.27.dist-info}/licenses/LICENSE.txt +0 -0
  25. {bedrock_agentcore_starter_toolkit-0.1.25.dist-info → bedrock_agentcore_starter_toolkit-0.1.27.dist-info}/licenses/NOTICE.txt +0 -0
@@ -0,0 +1,196 @@
1
+ """VPC networking validation utilities for AgentCore Runtime."""
2
+
3
+ import logging
4
+ from typing import List, Optional, Tuple
5
+
6
+ import boto3
7
+ from botocore.exceptions import ClientError
8
+
9
+ log = logging.getLogger(__name__)
10
+
11
+
12
+ def validate_vpc_configuration(
13
+ region: str,
14
+ subnets: List[str],
15
+ security_groups: List[str],
16
+ session: Optional[boto3.Session] = None,
17
+ ) -> Tuple[str, List[str]]:
18
+ """Validate VPC configuration and return VPC ID and any warnings.
19
+
20
+ Args:
21
+ region: AWS region
22
+ subnets: List of subnet IDs
23
+ security_groups: List of security group IDs
24
+ session: Optional boto3 session (creates new if not provided)
25
+
26
+ Returns:
27
+ Tuple of (vpc_id, warnings_list)
28
+
29
+ Raises:
30
+ ValueError: If validation fails
31
+ """
32
+ if not session:
33
+ session = boto3.Session(region_name=region)
34
+
35
+ ec2_client = session.client("ec2", region_name=region)
36
+ warnings = []
37
+
38
+ # Validate subnets
39
+ vpc_id = _validate_subnets(ec2_client, subnets, warnings)
40
+
41
+ # Validate security groups
42
+ _validate_security_groups(ec2_client, security_groups, vpc_id, warnings)
43
+
44
+ return vpc_id, warnings
45
+
46
+
47
+ def _validate_subnets(ec2_client, subnets: List[str], warnings: List[str]) -> str:
48
+ """Validate subnets and return VPC ID."""
49
+ try:
50
+ response = ec2_client.describe_subnets(SubnetIds=subnets)
51
+
52
+ if len(response["Subnets"]) != len(subnets):
53
+ found_ids = {s["SubnetId"] for s in response["Subnets"]}
54
+ missing = set(subnets) - found_ids
55
+ raise ValueError(f"Subnet IDs not found: {missing}")
56
+
57
+ # Check all subnets are in same VPC
58
+ vpc_ids = {subnet["VpcId"] for subnet in response["Subnets"]}
59
+
60
+ if len(vpc_ids) > 1:
61
+ raise ValueError(
62
+ f"All subnets must be in the same VPC. Found subnets in {len(vpc_ids)} different VPCs: {vpc_ids}"
63
+ )
64
+
65
+ vpc_id = vpc_ids.pop()
66
+ log.info("✓ Validated %d subnets in VPC %s", len(subnets), vpc_id)
67
+
68
+ # Check subnet availability zones
69
+ azs = {subnet["AvailabilityZone"] for subnet in response["Subnets"]}
70
+ if len(azs) < 2:
71
+ warnings.append(
72
+ f"Subnets are in only {len(azs)} availability zone(s). "
73
+ "For high availability, use subnets in multiple AZs."
74
+ )
75
+
76
+ return vpc_id
77
+
78
+ except ClientError as e:
79
+ error_code = e.response["Error"]["Code"]
80
+ if error_code == "InvalidSubnetID.NotFound":
81
+ raise ValueError(f"One or more subnet IDs not found: {subnets}") from e
82
+ raise ValueError(f"Failed to validate subnets: {e}") from e
83
+
84
+
85
+ def _validate_security_groups(
86
+ ec2_client, security_groups: List[str], expected_vpc_id: str, warnings: List[str]
87
+ ) -> None:
88
+ """Validate security groups are in the expected VPC."""
89
+ try:
90
+ response = ec2_client.describe_security_groups(GroupIds=security_groups)
91
+
92
+ if len(response["SecurityGroups"]) != len(security_groups):
93
+ found_ids = {sg["GroupId"] for sg in response["SecurityGroups"]}
94
+ missing = set(security_groups) - found_ids
95
+ raise ValueError(f"Security group IDs not found: {missing}")
96
+
97
+ # Check all SGs are in same VPC
98
+ sg_vpcs = {sg["VpcId"] for sg in response["SecurityGroups"]}
99
+
100
+ if len(sg_vpcs) > 1:
101
+ raise ValueError(
102
+ f"All security groups must be in the same VPC. "
103
+ f"Found security groups in {len(sg_vpcs)} different VPCs: {sg_vpcs}"
104
+ )
105
+
106
+ sg_vpc_id = sg_vpcs.pop()
107
+
108
+ # Check SGs are in same VPC as subnets
109
+ if sg_vpc_id != expected_vpc_id:
110
+ raise ValueError(
111
+ f"Security groups must be in the same VPC as subnets. "
112
+ f"Subnets are in VPC {expected_vpc_id}, "
113
+ f"but security groups are in VPC {sg_vpc_id}"
114
+ )
115
+
116
+ log.info("✓ Validated %d security groups in VPC %s", len(security_groups), sg_vpc_id)
117
+
118
+ except ClientError as e:
119
+ error_code = e.response["Error"]["Code"]
120
+ if error_code == "InvalidGroup.NotFound":
121
+ raise ValueError(f"One or more security group IDs not found: {security_groups}") from e
122
+ raise ValueError(f"Failed to validate security groups: {e}") from e
123
+
124
+
125
+ def check_network_immutability(
126
+ existing_network_mode: str,
127
+ existing_subnets: Optional[List[str]],
128
+ existing_security_groups: Optional[List[str]],
129
+ new_network_mode: str,
130
+ new_subnets: Optional[List[str]],
131
+ new_security_groups: Optional[List[str]],
132
+ ) -> Optional[str]:
133
+ """Check if network configuration is being changed (not allowed).
134
+
135
+ Returns:
136
+ Error message if change detected, None if no change
137
+ """
138
+ # Check mode change
139
+ if existing_network_mode != new_network_mode:
140
+ return (
141
+ f"Cannot change network mode from {existing_network_mode} to {new_network_mode}. "
142
+ f"Network configuration is immutable after agent creation. "
143
+ f"Create a new agent for different network settings."
144
+ )
145
+
146
+ # If both PUBLIC, no further checks needed
147
+ if existing_network_mode == "PUBLIC":
148
+ return None
149
+
150
+ # Check VPC resource changes
151
+ if set(existing_subnets or []) != set(new_subnets or []):
152
+ return (
153
+ "Cannot change VPC subnets after agent creation. "
154
+ "Network configuration is immutable. "
155
+ "Create a new agent for different network settings."
156
+ )
157
+
158
+ if set(existing_security_groups or []) != set(new_security_groups or []):
159
+ return (
160
+ "Cannot change VPC security groups after agent creation. "
161
+ "Network configuration is immutable. "
162
+ "Create a new agent for different network settings."
163
+ )
164
+
165
+ return None
166
+
167
+
168
+ def verify_subnet_azs(ec2_client, subnets: List[str], region: str) -> List[str]:
169
+ """Verify subnets are in supported AZs and return any issues."""
170
+ # Supported AZ IDs for us-west-2
171
+ SUPPORTED_AZS = {
172
+ "us-west-2": ["usw2-az1", "usw2-az2", "usw2-az3"],
173
+ "us-east-1": ["use1-az1", "use1-az2", "use1-az4"],
174
+ # Add other regions as needed
175
+ }
176
+
177
+ supported = SUPPORTED_AZS.get(region, [])
178
+
179
+ response = ec2_client.describe_subnets(SubnetIds=subnets)
180
+ issues = []
181
+
182
+ for subnet in response["Subnets"]:
183
+ subnet_id = subnet["SubnetId"]
184
+ az_id = subnet["AvailabilityZoneId"]
185
+ az_name = subnet["AvailabilityZone"]
186
+
187
+ if supported and az_id not in supported:
188
+ issues.append(
189
+ f"Subnet {subnet_id} is in AZ {az_name} (ID: {az_id}) "
190
+ f"which is NOT supported by AgentCore in {region}. "
191
+ f"Supported AZ IDs: {supported}"
192
+ )
193
+ else:
194
+ log.info("✓ Subnet %s is in supported AZ: %s (%s)", subnet_id, az_name, az_id)
195
+
196
+ return issues
@@ -128,6 +128,7 @@ class BedrockAgentCoreClient:
128
128
  protocol_config: Optional[Dict] = None,
129
129
  env_vars: Optional[Dict] = None,
130
130
  auto_update_on_conflict: bool = False,
131
+ lifecycle_config: Optional[Dict] = None,
131
132
  ) -> Dict[str, str]:
132
133
  """Create new agent."""
133
134
  self.logger.info("Creating agent '%s' with image URI: %s", agent_name, image_uri)
@@ -154,17 +155,20 @@ class BedrockAgentCoreClient:
154
155
  if env_vars is not None:
155
156
  params["environmentVariables"] = env_vars
156
157
 
158
+ if lifecycle_config is not None:
159
+ params["lifecycleConfiguration"] = lifecycle_config
160
+
157
161
  resp = self.client.create_agent_runtime(**params)
158
162
  agent_id = resp["agentRuntimeId"]
159
163
  agent_arn = resp["agentRuntimeArn"]
160
164
  self.logger.info("Successfully created agent '%s' with ID: %s, ARN: %s", agent_name, agent_id, agent_arn)
161
165
  return {"id": agent_id, "arn": agent_arn}
166
+
162
167
  except ClientError as e:
163
168
  error_code = e.response.get("Error", {}).get("Code")
164
169
  if error_code == "ConflictException":
165
170
  if not auto_update_on_conflict:
166
171
  self.logger.error("Agent '%s' already exists and auto_update_on_conflict is disabled", agent_name)
167
- # Create a more helpful error message
168
172
  raise ClientError(
169
173
  {
170
174
  "Error": {
@@ -226,6 +230,7 @@ class BedrockAgentCoreClient:
226
230
  request_header_config: Optional[Dict] = None,
227
231
  protocol_config: Optional[Dict] = None,
228
232
  env_vars: Optional[Dict] = None,
233
+ lifecycle_config: Optional[Dict] = None,
229
234
  ) -> Dict[str, str]:
230
235
  """Update existing agent."""
231
236
  self.logger.info("Updating agent ID '%s' with image URI: %s", agent_id, image_uri)
@@ -252,6 +257,9 @@ class BedrockAgentCoreClient:
252
257
  if env_vars is not None:
253
258
  params["environmentVariables"] = env_vars
254
259
 
260
+ if lifecycle_config is not None:
261
+ params["lifecycleConfiguration"] = lifecycle_config
262
+
255
263
  resp = self.client.update_agent_runtime(**params)
256
264
  agent_arn = resp["agentRuntimeArn"]
257
265
  self.logger.info("Successfully updated agent ID '%s', ARN: %s", agent_id, agent_arn)
@@ -312,6 +320,7 @@ class BedrockAgentCoreClient:
312
320
  protocol_config: Optional[Dict] = None,
313
321
  env_vars: Optional[Dict] = None,
314
322
  auto_update_on_conflict: bool = False,
323
+ lifecycle_config: Optional[Dict] = None,
315
324
  ) -> Dict[str, str]:
316
325
  """Create or update agent."""
317
326
  if agent_id:
@@ -324,6 +333,7 @@ class BedrockAgentCoreClient:
324
333
  request_header_config,
325
334
  protocol_config,
326
335
  env_vars,
336
+ lifecycle_config,
327
337
  )
328
338
  return self.create_agent(
329
339
  agent_name,
@@ -335,6 +345,7 @@ class BedrockAgentCoreClient:
335
345
  protocol_config,
336
346
  env_vars,
337
347
  auto_update_on_conflict,
348
+ lifecycle_config,
338
349
  )
339
350
 
340
351
  def wait_for_agent_endpoint_ready(self, agent_id: str, endpoint_name: str = "DEFAULT", max_wait: int = 120) -> str:
@@ -483,6 +494,37 @@ class BedrockAgentCoreClient:
483
494
  "before-sign.bedrock-agentcore.InvokeAgentRuntime", handler_id
484
495
  )
485
496
 
497
+ def stop_runtime_session(
498
+ self,
499
+ agent_arn: str,
500
+ session_id: str,
501
+ endpoint_name: str = "DEFAULT",
502
+ ) -> Dict:
503
+ """Stop a runtime session.
504
+
505
+ Args:
506
+ agent_arn: Agent ARN
507
+ session_id: Session ID to stop
508
+ endpoint_name: Endpoint name, defaults to "DEFAULT"
509
+
510
+ Returns:
511
+ Response with status code
512
+
513
+ Raises:
514
+ ClientError: If the operation fails, including ResourceNotFoundException
515
+ if the session doesn't exist
516
+ """
517
+ self.logger.info("Stopping runtime session: %s", session_id)
518
+
519
+ response = self.dataplane_client.stop_runtime_session(
520
+ agentRuntimeArn=agent_arn,
521
+ qualifier=endpoint_name,
522
+ runtimeSessionId=session_id,
523
+ )
524
+
525
+ self.logger.info("Successfully stopped session: %s", session_id)
526
+ return response
527
+
486
528
 
487
529
  class HttpBedrockAgentCoreClient:
488
530
  """Bedrock AgentCore client for agent management using HTTP requests with bearer token."""
@@ -576,10 +618,11 @@ class LocalBedrockAgentCoreClient:
576
618
  session_id: str,
577
619
  payload: str,
578
620
  workload_access_token: str,
621
+ oauth2_callback_url: str,
579
622
  custom_headers: Optional[dict] = None,
580
623
  ):
581
624
  """Invoke the endpoint with the given parameters."""
582
- from bedrock_agentcore.runtime.models import ACCESS_TOKEN_HEADER, SESSION_HEADER
625
+ from bedrock_agentcore.runtime.models import ACCESS_TOKEN_HEADER, OAUTH2_CALLBACK_URL_HEADER, SESSION_HEADER
583
626
 
584
627
  url = f"{self.endpoint}/invocations"
585
628
 
@@ -587,6 +630,7 @@ class LocalBedrockAgentCoreClient:
587
630
  "Content-Type": "application/json",
588
631
  ACCESS_TOKEN_HEADER: workload_access_token,
589
632
  SESSION_HEADER: session_id,
633
+ OAUTH2_CALLBACK_URL_HEADER: oauth2_callback_url,
590
634
  }
591
635
 
592
636
  # Merge custom headers if provided
@@ -16,7 +16,7 @@ class MemoryConfig(BaseModel):
16
16
  """Memory configuration for BedrockAgentCore."""
17
17
 
18
18
  mode: Literal["STM_ONLY", "STM_AND_LTM", "NO_MEMORY"] = Field(
19
- default="STM_ONLY", description="Memory mode - always has STM, optionally adds LTM"
19
+ default="NO_MEMORY", description="Memory mode - opt-in feature"
20
20
  )
21
21
  memory_id: Optional[str] = Field(default=None, description="Memory resource ID")
22
22
  memory_arn: Optional[str] = Field(default=None, description="Memory resource ARN")
@@ -99,6 +99,48 @@ class ProtocolConfiguration(BaseModel):
99
99
  return {"serverProtocol": self.server_protocol}
100
100
 
101
101
 
102
+ class LifecycleConfiguration(BaseModel):
103
+ """Lifecycle configuration for runtime sessions."""
104
+
105
+ idle_runtime_session_timeout: Optional[int] = Field(
106
+ default=None,
107
+ description="Timeout in seconds for idle runtime sessions (60-28800)",
108
+ ge=60,
109
+ le=28800,
110
+ )
111
+ max_lifetime: Optional[int] = Field(
112
+ default=None, description="Maximum lifetime for the instance in seconds (60-28800)", ge=60, le=28800
113
+ )
114
+
115
+ @field_validator("max_lifetime")
116
+ @classmethod
117
+ def validate_lifecycle_relationship(cls, v: Optional[int], info) -> Optional[int]:
118
+ """Validate that max_lifetime >= idle_timeout if both are set."""
119
+ if v is None:
120
+ return v
121
+
122
+ idle = info.data.get("idle_runtime_session_timeout")
123
+ if idle is not None and v < idle:
124
+ raise ValueError(
125
+ f"max_lifetime ({v}s) must be greater than or equal to idle_runtime_session_timeout ({idle}s)"
126
+ )
127
+ return v
128
+
129
+ def to_aws_dict(self) -> dict:
130
+ """Convert to AWS API format with camelCase keys."""
131
+ result = {}
132
+ if self.idle_runtime_session_timeout is not None:
133
+ result["idleRuntimeSessionTimeout"] = self.idle_runtime_session_timeout
134
+ if self.max_lifetime is not None:
135
+ result["maxLifetime"] = self.max_lifetime
136
+ return result
137
+
138
+ @property
139
+ def has_custom_settings(self) -> bool:
140
+ """Check if any custom lifecycle settings are configured."""
141
+ return self.idle_runtime_session_timeout is not None or self.max_lifetime is not None
142
+
143
+
102
144
  class ObservabilityConfig(BaseModel):
103
145
  """Observability configuration."""
104
146
 
@@ -117,6 +159,7 @@ class AWSConfig(BaseModel):
117
159
  network_configuration: NetworkConfiguration = Field(default_factory=NetworkConfiguration)
118
160
  protocol_configuration: ProtocolConfiguration = Field(default_factory=ProtocolConfiguration)
119
161
  observability: ObservabilityConfig = Field(default_factory=ObservabilityConfig)
162
+ lifecycle_configuration: LifecycleConfiguration = Field(default_factory=LifecycleConfiguration)
120
163
 
121
164
  @field_validator("account")
122
165
  @classmethod
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: bedrock-agentcore-starter-toolkit
3
- Version: 0.1.25
3
+ Version: 0.1.27
4
4
  Summary: A starter toolkit for using Bedrock AgentCore
5
5
  Project-URL: Homepage, https://github.com/aws/bedrock-agentcore-starter-toolkit
6
6
  Project-URL: Bug Tracker, https://github.com/aws/bedrock-agentcore-starter-toolkit/issues
@@ -22,9 +22,9 @@ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
22
22
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
23
23
  Requires-Python: >=3.10
24
24
  Requires-Dist: autopep8>=2.3.2
25
- Requires-Dist: bedrock-agentcore>=0.1.7
26
- Requires-Dist: boto3>=1.40.35
27
- Requires-Dist: botocore>=1.40.35
25
+ Requires-Dist: bedrock-agentcore>=1.0.3
26
+ Requires-Dist: boto3>=1.40.51
27
+ Requires-Dist: botocore>=1.40.51
28
28
  Requires-Dist: docstring-parser<1.0,>=0.15
29
29
  Requires-Dist: httpx>=0.28.1
30
30
  Requires-Dist: jinja2>=3.1.6
@@ -32,12 +32,13 @@ Requires-Dist: openapi-spec-validator>=0.7.2
32
32
  Requires-Dist: prance>=25.4.8.0
33
33
  Requires-Dist: prompt-toolkit>=3.0.51
34
34
  Requires-Dist: py-openapi-schema-to-json-schema>=0.0.3
35
- Requires-Dist: pydantic<3.0.0,>=2.0.0
35
+ Requires-Dist: pydantic<2.41.3,>=2.0.0
36
36
  Requires-Dist: pyyaml>=6.0.2
37
37
  Requires-Dist: questionary>=2.1.0
38
38
  Requires-Dist: requests>=2.25.0
39
39
  Requires-Dist: rich>=13.0.0
40
40
  Requires-Dist: ruamel-yaml>=0.18.14
41
+ Requires-Dist: starlette>=0.46.2
41
42
  Requires-Dist: toml>=0.10.2
42
43
  Requires-Dist: typer>=0.16.0
43
44
  Requires-Dist: typing-extensions<5.0.0,>=4.13.2
@@ -82,38 +83,38 @@ Amazon Bedrock AgentCore includes the following modular Services that you can us
82
83
  ## 🚀 Amazon Bedrock AgentCore Runtime
83
84
  AgentCore Runtime is a secure, serverless runtime purpose-built for deploying and scaling dynamic AI agents and tools using any open-source framework including LangGraph, CrewAI, and Strands Agents, any protocol, and any model. Runtime was built to work for agentic workloads with industry-leading extended runtime support, fast cold starts, true session isolation, built-in identity, and support for multi-modal payloads. Developers can focus on innovation while Amazon Bedrock AgentCore Runtime handles infrastructure and security -- accelerating time-to-market
84
85
 
85
- **[Runtime Quick Start](https://aws.github.io/bedrock-agentcore-starter-toolkit/user-guide/runtime/quickstart.html)**
86
+ **[Runtime Quick Start](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/runtime-get-started-toolkit.html)**
86
87
 
87
88
  ## 🧠 Amazon Bedrock AgentCore Memory
88
89
  AgentCore Memory makes it easy for developers to build context aware agents by eliminating complex memory infrastructure management while providing full control over what the AI agent remembers. Memory provides industry-leading accuracy along with support for both short-term memory for multi-turn conversations and long-term memory that can be shared across agents and sessions.
89
90
 
90
91
 
91
- **[Memory Quick Start](https://aws.github.io/bedrock-agentcore-starter-toolkit/user-guide/memory/quickstart.html)**
92
+ **[Memory Quick Start](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/memory-get-started.html)**
92
93
 
93
94
  ## 🔗 Amazon Bedrock AgentCore Gateway
94
95
  Amazon Bedrock AgentCore Gateway acts as a managed Model Context Protocol (MCP) server that converts APIs and Lambda functions into MCP tools that agents can use. Gateway manages the complexity of OAuth ingress authorization and secure egress credential exchange, making standing up remote MCP servers easier and more secure. Gateway also offers composition and built-in semantic search over tools, enabling developers to scale their agents to use hundreds or thousands of tools.
95
96
 
96
- **[Gateway Quick Start](https://aws.github.io/bedrock-agentcore-starter-toolkit/user-guide/gateway/quickstart.html)**
97
+ **[Gateway Quick Start](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/gateway-quick-start.html)**
97
98
 
98
99
  ## 💻 Amazon Bedrock AgentCore Code Interpreter
99
100
  AgentCore Code Interpreter tool enables agents to securely execute code in isolated sandbox environments. It offers advanced configuration support and seamless integration with popular frameworks. Developers can build powerful agents for complex workflows and data analysis while meeting enterprise security requirements.
100
101
 
101
- **[Code Interpreter Quick Start](https://aws.github.io/bedrock-agentcore-starter-toolkit/user-guide/builtin-tools/quickstart-code-interpreter.html)**
102
+ **[Code Interpreter Quick Start](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/code-interpreter-getting-started.html)**
102
103
 
103
104
  ## 🌐 Amazon Bedrock AgentCore Browser
104
105
  AgentCore Browser tool provides a fast, secure, cloud-based browser runtime to enable AI agents to interact with websites at scale. It provides enterprise-grade security, comprehensive observability features, and automatically scales— all without infrastructure management overhead.
105
106
 
106
- **[Browser Quick Start](https://aws.github.io/bedrock-agentcore-starter-toolkit/user-guide/builtin-tools/quickstart-browser.html)**
107
+ **[Browser Quick Start](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/browser-onboarding.html)**
107
108
 
108
109
  ## 📊 Amazon Bedrock AgentCore Observability
109
110
  AgentCore Observability helps developers trace, debug, and monitor agent performance in production through unified operational dashboards. With support for OpenTelemetry compatible telemetry and detailed visualizations of each step of the agent workflow, AgentCore enables developers to easily gain visibility into agent behavior and maintain quality standards at scale.
110
111
 
111
- **[Observability Quick Start](https://aws.github.io/bedrock-agentcore-starter-toolkit/user-guide/observability/quickstart.html)**
112
+ **[Observability Quick Start](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/observability-get-started.html)**
112
113
 
113
114
  ## 🔐 Amazon Bedrock AgentCore Identity
114
115
  AgentCore Identity provides a secure, scalable agent identity and access management capability accelerating AI agent development. It is compatible with existing identity providers, eliminating needs for user migration or rebuilding authentication flows. AgentCore Identity's helps to minimize consent fatigue with a secure token vault and allows you to build streamlined AI agent experiences. Just-enough access and secure permission delegation allow agents to securely access AWS resources and third-party tools and services.
115
116
 
116
- **[Identity Quick Start](https://aws.github.io/bedrock-agentcore-starter-toolkit/user-guide/identity/quickstart.html)**
117
+ **[Identity Quick Start](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/identity-getting-started-cognito.html)**
117
118
 
118
119
  ## 🔐 Import Amazon Bedrock Agents to Bedrock AgentCore
119
120
  AgentCore Import-Agent enables seamless migration of existing Amazon Bedrock Agents to LangChain/LangGraph or Strands frameworks while automatically integrating AgentCore primitives like Memory, Code Interpreter, and Gateway. Developers can migrate agents in minutes with full feature parity and deploy directly to AgentCore Runtime for serverless operation.
@@ -1,6 +1,6 @@
1
1
  bedrock_agentcore_starter_toolkit/__init__.py,sha256=tN3-JWKvxk4ZSJQJIHQ4mMsDtt8J_cDCz-drcGU9USA,120
2
2
  bedrock_agentcore_starter_toolkit/cli/__init__.py,sha256=WuIWfHtJKD9gQA-mE49bq8OHGb0Ugt8upRGaOp6-H90,62
3
- bedrock_agentcore_starter_toolkit/cli/cli.py,sha256=G910onhHZRGVwFITZXYY-x1A_C7hmERyqYrdgcmZcoI,1064
3
+ bedrock_agentcore_starter_toolkit/cli/cli.py,sha256=c_I3a5nCJicaWZM1EO39JU7iTKM11zwlyNNtv8wsmhg,1149
4
4
  bedrock_agentcore_starter_toolkit/cli/common.py,sha256=kwcoGhcDGLGJSxC7SxAersG7PBBg3oxldmJ6wqbt8Oc,1295
5
5
  bedrock_agentcore_starter_toolkit/cli/gateway/__init__.py,sha256=8IZ0kSe6Kz5s2j-SBsoc6qy04MbK85RMTQwZCiR2wmo,68
6
6
  bedrock_agentcore_starter_toolkit/cli/gateway/commands.py,sha256=3DuXCvqXlmHU2cmjGzDruyc2Fkrpgoi158myj0vc3nA,3265
@@ -9,11 +9,11 @@ bedrock_agentcore_starter_toolkit/cli/import_agent/__init__.py,sha256=tyM3dXM3Tc
9
9
  bedrock_agentcore_starter_toolkit/cli/import_agent/agent_info.py,sha256=CcPXbKNnI9fc7NyFmZBjB3PkB0wAz2Q_kBGoUVcnngA,9736
10
10
  bedrock_agentcore_starter_toolkit/cli/import_agent/commands.py,sha256=vpA66fGwKf6cxBelT3Yb_Af5Ow3AMquGLIDe-tBLjmc,22419
11
11
  bedrock_agentcore_starter_toolkit/cli/runtime/__init__.py,sha256=0zKPPoYThoDIr3DZhIQJavq5nVTKRsgcE1s9--wx118,60
12
- bedrock_agentcore_starter_toolkit/cli/runtime/commands.py,sha256=NntVm0PQshWxrB-AJ-pQVo8UAIgxOt5Y3I_DfF4bOlM,55971
13
- bedrock_agentcore_starter_toolkit/cli/runtime/configuration_manager.py,sha256=aRHo8tWrx4IBJPfRMQxUe3eZsoOQn1qUYJ_ZI6MAPSo,15832
12
+ bedrock_agentcore_starter_toolkit/cli/runtime/commands.py,sha256=1ZQmPi30L-n2IlqwIiIHoARWmsR1ntcNYpJ4f3VMZRo,66966
13
+ bedrock_agentcore_starter_toolkit/cli/runtime/configuration_manager.py,sha256=I8Ptl7HIKLsczVMBPonaAYXnOOqm1-vi3FkOdVR6aCE,17003
14
14
  bedrock_agentcore_starter_toolkit/notebook/__init__.py,sha256=wH1ZzIVKsKT_P0qX2kIIoyVxeHj8K40odfR1YI3McHw,129
15
15
  bedrock_agentcore_starter_toolkit/notebook/runtime/__init__.py,sha256=DoGfB_uGFLANJVE9rSZtTH3ymw76WBWmD9vORvBIdXs,66
16
- bedrock_agentcore_starter_toolkit/notebook/runtime/bedrock_agentcore.py,sha256=BrQmJoRW_Jm_2tgsagiVTYzGUZDfbQKA5zpE7XaMAcg,17119
16
+ bedrock_agentcore_starter_toolkit/notebook/runtime/bedrock_agentcore.py,sha256=SZUaoKGpHW5RsmivB_qUf5XqDNCxSpvq3xOyiHeHnqU,27319
17
17
  bedrock_agentcore_starter_toolkit/operations/__init__.py,sha256=L7sCNjfZviiVVoh2f3NEs2sbjNqFkmIRI3ZPYMMWMz0,51
18
18
  bedrock_agentcore_starter_toolkit/operations/gateway/__init__.py,sha256=5Qo1GeN-DghNp9g0coFUs7WpUJDboJoidOVs-5Co7fo,233
19
19
  bedrock_agentcore_starter_toolkit/operations/gateway/client.py,sha256=9KQzRAEGWbBDVVacdB1GqN_HJ06vwTBs6tLwfxYROoY,26498
@@ -21,10 +21,12 @@ bedrock_agentcore_starter_toolkit/operations/gateway/constants.py,sha256=0_4J6BN
21
21
  bedrock_agentcore_starter_toolkit/operations/gateway/create_lambda.py,sha256=mAzXvi5hetzN2iv0ITfx6PDbOgeLOjqt71zzaDpKHnw,2876
22
22
  bedrock_agentcore_starter_toolkit/operations/gateway/create_role.py,sha256=Oma9s6K4T9EFgwPAUDungDL9fGa3W0LsHBknIXUmSpI,4474
23
23
  bedrock_agentcore_starter_toolkit/operations/gateway/exceptions.py,sha256=WjsrE7lT2708CJniM_ISMzkfNX4IUteGgvOxleD9JZY,272
24
+ bedrock_agentcore_starter_toolkit/operations/identity/__init__.py,sha256=8gMJRmRmHy1_MJs4oJnM3RlkMgfx204EcvyIxRoP3oQ,193
25
+ bedrock_agentcore_starter_toolkit/operations/identity/oauth2_callback_server.py,sha256=2FlCvjxbNOP6d0ciRZ7QIXHmyJIEIN8FSSGBONEYaZc,3669
24
26
  bedrock_agentcore_starter_toolkit/operations/memory/README.md,sha256=VHmdCoZImRVsiDvCnKbnt4btO5fOkfeKmoludgSbKwM,31139
25
27
  bedrock_agentcore_starter_toolkit/operations/memory/__init__.py,sha256=PAj25QAlnlvjaQIgfIpfxXXVXu5BTOXy-xDMDh6_HIc,59
26
28
  bedrock_agentcore_starter_toolkit/operations/memory/constants.py,sha256=0HWpxJZXmnmekIEW5TJjn9KmEqVi_REJzUN1l68ohYQ,3226
27
- bedrock_agentcore_starter_toolkit/operations/memory/manager.py,sha256=SAKuVPfKDBXhQwtKOYg4l8h4JTstWc8LCJ2WUzWpKjw,44510
29
+ bedrock_agentcore_starter_toolkit/operations/memory/manager.py,sha256=miGo2P3kzMM2ExBgL0jdPOIBih5GA5PqgJF3tq29uYE,44248
28
30
  bedrock_agentcore_starter_toolkit/operations/memory/strategy_validator.py,sha256=s01xd0x2cMNweuQdB6Fiyxz3RU3mTkHUC5zFW28jfXE,18754
29
31
  bedrock_agentcore_starter_toolkit/operations/memory/models/DictWrapper.py,sha256=GtPnR2NoZ9BXZX4fFYupG97T-YEet2NrBFlaDZIS-gM,1693
30
32
  bedrock_agentcore_starter_toolkit/operations/memory/models/Memory.py,sha256=As1b9al57zlYWUAHcwIuHjL-6QAsfH_zhxD8xU9gh3I,424
@@ -32,24 +34,27 @@ bedrock_agentcore_starter_toolkit/operations/memory/models/MemoryStrategy.py,sha
32
34
  bedrock_agentcore_starter_toolkit/operations/memory/models/MemorySummary.py,sha256=H5Itj_R3XKaUHJk4_8N_ViAfwkI-9wDhBrmOQq570Sw,469
33
35
  bedrock_agentcore_starter_toolkit/operations/memory/models/__init__.py,sha256=zyBO5bICw6otL528wNwkNl1BJ8BLyW0BfoVyD5hepbQ,2997
34
36
  bedrock_agentcore_starter_toolkit/operations/memory/models/strategies/__init__.py,sha256=rn9PQKaNkxQrSSWJ_QLST9XjAkcL8rSyWg1w8kvLf7I,1617
35
- bedrock_agentcore_starter_toolkit/operations/memory/models/strategies/base.py,sha256=9CWKNBBe3yI3xtdMhN1K8z9_0NWIsypkuwiQDi_Fzls,2625
37
+ bedrock_agentcore_starter_toolkit/operations/memory/models/strategies/base.py,sha256=zLRNF6kCqNjApL8HoXsJFGotqJLnLFDxjybxgMjP7po,2702
36
38
  bedrock_agentcore_starter_toolkit/operations/memory/models/strategies/custom.py,sha256=6PSRoY2DTMca1Lb40b9YC5nCRZblkFVarvTP3qRDuXU,7544
39
+ bedrock_agentcore_starter_toolkit/operations/memory/models/strategies/self_managed.py,sha256=LJtlo-NSgNeZaAklp1VJZTM_kcD5tDtgCXdHHPLGn6g,4208
37
40
  bedrock_agentcore_starter_toolkit/operations/memory/models/strategies/semantic.py,sha256=Dp5L_zSojst8YSWRDMolFIbfQ72vqEeFlK9sPJKQ_I4,1073
38
41
  bedrock_agentcore_starter_toolkit/operations/memory/models/strategies/summary.py,sha256=X0sVh-6Hw9PPnpPQucG_M7gVyXUiElZInFXBN8WDFUQ,1015
39
42
  bedrock_agentcore_starter_toolkit/operations/memory/models/strategies/user_preference.py,sha256=JJPAzt_Shix5a-RJEf7xOEzN5kxtX3dpP8xoMvry61U,996
40
- bedrock_agentcore_starter_toolkit/operations/runtime/__init__.py,sha256=LkwfzxiArDcA3Ut_SaStCJXjK-USzXXvuCLphhyI5D0,1000
41
- bedrock_agentcore_starter_toolkit/operations/runtime/configure.py,sha256=b226Wg2Cdi3N8fQWVoaTqlK3Hk93iRTGL1YwXN8ynwI,19018
43
+ bedrock_agentcore_starter_toolkit/operations/runtime/__init__.py,sha256=YhRXupUdNAfR5GNbwQOHk-YJs5bHh_km01e_e4kk5uk,1123
44
+ bedrock_agentcore_starter_toolkit/operations/runtime/configure.py,sha256=vG3Bg--TvL8SpEqMaolLeLlXnPFBdMPUKBG_Q3-vOH8,24076
42
45
  bedrock_agentcore_starter_toolkit/operations/runtime/create_role.py,sha256=1-b_wBvkOXNh-HJsxATwHfXQqj0dpdETds0FNSTY0BE,16116
43
46
  bedrock_agentcore_starter_toolkit/operations/runtime/destroy.py,sha256=iyAH1-D734cmiluASGMcp3wwXZ10IlhKi-acsGEQ8Yk,26204
44
47
  bedrock_agentcore_starter_toolkit/operations/runtime/exceptions.py,sha256=7iZNVbsz5XyvnpMM4paJb5_LT6DYdEI3nHhM9f3BERE,869
45
- bedrock_agentcore_starter_toolkit/operations/runtime/invoke.py,sha256=ENrJd6DP30DuXe94_kjrMM3njUUbQMsX7O4rM6hFL5g,7162
46
- bedrock_agentcore_starter_toolkit/operations/runtime/launch.py,sha256=oVTLxDdAL2bG-oG4S-KIuUntSODIftit7nGslzjsslg,30100
47
- bedrock_agentcore_starter_toolkit/operations/runtime/models.py,sha256=TdUS-O1crCGmigKb_N3WaLBeubsuFiUczyZktzcAHjY,4894
48
- bedrock_agentcore_starter_toolkit/operations/runtime/status.py,sha256=yQR0dOjPeA3jyWg9EcezsTi6OVlp_9tbURe3clQNBaY,5340
48
+ bedrock_agentcore_starter_toolkit/operations/runtime/invoke.py,sha256=3V_PqQdHpVISzlkglYvDgpDZKUPJc7fJJiuYa4hhimM,6074
49
+ bedrock_agentcore_starter_toolkit/operations/runtime/launch.py,sha256=iDtAD4qMvbiYWN4RbYVI44SfVLUJfsddfaIewYuzHwY,38366
50
+ bedrock_agentcore_starter_toolkit/operations/runtime/models.py,sha256=ifUyYf4EelQvnnNdKNyZ6c7zIYmVet-rC5q43P2aAuk,6026
51
+ bedrock_agentcore_starter_toolkit/operations/runtime/status.py,sha256=gbtJ9K6FlGA0TSeV_QjRdHhDVJbupEyaZ8JT0kIsCrg,6905
52
+ bedrock_agentcore_starter_toolkit/operations/runtime/stop_session.py,sha256=grX2R0VpHGOhoHjRmG1EIfuvW3jDFG-rivA7RJXnVVU,4615
53
+ bedrock_agentcore_starter_toolkit/operations/runtime/vpc_validation.py,sha256=V2pWjs3r69JDYUW3jz77pUGihR7KhhglfabuJ4xO9LA,6867
49
54
  bedrock_agentcore_starter_toolkit/services/__init__.py,sha256=s7QtYYFCCX2ff0gZHUdDxCDI3zhUq0fPsjevZbF9xdA,66
50
55
  bedrock_agentcore_starter_toolkit/services/codebuild.py,sha256=CA4OgkMiZPbV6KBFswBLlSuaWgcH1wnTmRnvSEmHxpc,15925
51
56
  bedrock_agentcore_starter_toolkit/services/ecr.py,sha256=a9VpxIzYohPvAiAsl9jPp5vZcalCxt9LpqW4S7CdFPo,3991
52
- bedrock_agentcore_starter_toolkit/services/runtime.py,sha256=lqBB-4uJuxNKbnPHpRskQ7bajiZ2MpjnbqPnKnvTinY,22408
57
+ bedrock_agentcore_starter_toolkit/services/runtime.py,sha256=43UW_K7WDZ8ysQNGWnEuXX2tfey6ZscMaVqE0ZiWSJI,23833
53
58
  bedrock_agentcore_starter_toolkit/services/xray.py,sha256=CRlcfVXpghVy7PvZqLUC4rp49Sw5DQ98rUU61HAluRM,6363
54
59
  bedrock_agentcore_starter_toolkit/services/import_agent/__init__.py,sha256=ig-xanZqA3oJdRTucYz9xF9_2yi31ADRVIKFsnIw_l4,68
55
60
  bedrock_agentcore_starter_toolkit/services/import_agent/utils.py,sha256=yCnzqv3S8sbQi6ArTz3MeR4ggRcojbAgMbBb7KAf0sA,16077
@@ -68,14 +73,14 @@ bedrock_agentcore_starter_toolkit/utils/runtime/container.py,sha256=OuKhOKB051c_
68
73
  bedrock_agentcore_starter_toolkit/utils/runtime/entrypoint.py,sha256=d-XjEwvQOdpRHvBGLdIBCs1fgUwNwB0EL_WkcdQXwXQ,5893
69
74
  bedrock_agentcore_starter_toolkit/utils/runtime/logs.py,sha256=ZZ9PD4QO0BSms5KphhUb3-6-IPTkmwkY-Zn2AWM9Aew,1601
70
75
  bedrock_agentcore_starter_toolkit/utils/runtime/policy_template.py,sha256=CgER7YXPh0BpR6JcTcumDL_k8bhmfLSEok1sf09-31I,2054
71
- bedrock_agentcore_starter_toolkit/utils/runtime/schema.py,sha256=wkEckV7Fo64i1tFY60n8L6HE6gjJmfNl1gB5BkVyRRg,9724
76
+ bedrock_agentcore_starter_toolkit/utils/runtime/schema.py,sha256=BB3fONUsvf5vQyQyoC3xa1s5OwgQh9FEVgl_bgrkEAA,11390
72
77
  bedrock_agentcore_starter_toolkit/utils/runtime/templates/Dockerfile.j2,sha256=7vu1Mbo5m1M7gE0SQZ6iFkZppTho8w4BoOe0yYyJjug,1487
73
78
  bedrock_agentcore_starter_toolkit/utils/runtime/templates/dockerignore.template,sha256=IDKPnAiCdMLjuvLdItzQiybCW--SEvHAN2yr-B5Mxj4,711
74
79
  bedrock_agentcore_starter_toolkit/utils/runtime/templates/execution_role_policy.json.j2,sha256=BnVE3ofq2PCrl56VFjilG1RkJEiZ2L3MM2wFok7XTaU,5667
75
80
  bedrock_agentcore_starter_toolkit/utils/runtime/templates/execution_role_trust_policy.json.j2,sha256=PPJF6Ofq70W5DUE0NlbmnZjw5RkgepPgkskxEgEG28o,473
76
- bedrock_agentcore_starter_toolkit-0.1.25.dist-info/METADATA,sha256=9CZeflVckSlq6VKgWYaeWJx_1_7aDPk4DB9WfTF7Pdc,9922
77
- bedrock_agentcore_starter_toolkit-0.1.25.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
78
- bedrock_agentcore_starter_toolkit-0.1.25.dist-info/entry_points.txt,sha256=Tf94DkUf2Tp8P7p8MEXLxre7A7Pp_XNukteiz0wHnk8,77
79
- bedrock_agentcore_starter_toolkit-0.1.25.dist-info/licenses/LICENSE.txt,sha256=nNPOMinitYdtfbhdQgsPgz1UowBznU6QVN3Xs0pSTKU,10768
80
- bedrock_agentcore_starter_toolkit-0.1.25.dist-info/licenses/NOTICE.txt,sha256=rkBsg8DbKqfIoQbveqX9foR4uJPUVAokbkr02pRPilE,8674
81
- bedrock_agentcore_starter_toolkit-0.1.25.dist-info/RECORD,,
81
+ bedrock_agentcore_starter_toolkit-0.1.27.dist-info/METADATA,sha256=T53v1Ija4dWU034rkjSW8I35R_p2MyL8YVe5CGc3zfE,9923
82
+ bedrock_agentcore_starter_toolkit-0.1.27.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
83
+ bedrock_agentcore_starter_toolkit-0.1.27.dist-info/entry_points.txt,sha256=Tf94DkUf2Tp8P7p8MEXLxre7A7Pp_XNukteiz0wHnk8,77
84
+ bedrock_agentcore_starter_toolkit-0.1.27.dist-info/licenses/LICENSE.txt,sha256=nNPOMinitYdtfbhdQgsPgz1UowBznU6QVN3Xs0pSTKU,10768
85
+ bedrock_agentcore_starter_toolkit-0.1.27.dist-info/licenses/NOTICE.txt,sha256=rkBsg8DbKqfIoQbveqX9foR4uJPUVAokbkr02pRPilE,8674
86
+ bedrock_agentcore_starter_toolkit-0.1.27.dist-info/RECORD,,