1
0
mirror of synced 2026-05-22 22:53:35 +00:00
Commit Graph

519 Commits

Author SHA1 Message Date
Uriel Ramirez d4b3f6389a feat(02-use-cases): Long-term AgentCore Memory Facts (#1254)
* Long-term AgentCore Memory Facts

* Lib folder updated to utils

* Lib folder updated to utils

* User name included

---------

Co-authored-by: Uriel Ramirez <beralfon@amazon.com>
2026-04-15 10:21:46 -04:00
Bharathi Srinivasan 49b49bae60 Policy Notebook fallback for NL2cedar (#1324)
* add IGNORE_ALL_FINDINGS fallback and fix NB03 execution issues

* add fallback to policy creation cells

* fallback to all NL2Cedar usages
2026-04-14 17:05:10 -04:00
Ganesh Thiyagarajan cea7e355b0 Update: Fix the import and add runtime permission instruction (#1321)
* fix(notebooks): minor changes in the instructions

* Adding browser new features (profile, extensions and proxy) (#966)

* adding browser profile and firewall examples

* Fix browser samples and add domain filtering notebook

- Rename test_firewall.py to verify_domain_filtering.py
- Add verify_domain_filtering.ipynb notebook version
- Fix hhtp typo in SigV4 signing (both samples)
- Remove debug prints and unused imports
- Add BROWSER_ID env var validation with CFN export hint
- Replace httpbin.org with github.com (matches CFN AllowedDomains)
- Fix hardcoded S3 bucket name, add LocationConstraint
- Translate Portuguese comments/strings to English
- Remove unused strands-agents-tools from requirements.txt
- Remove commented-out code
- Add samples 09/10 to parent README

* Add sample 11: Browser with Squid proxy and S3 logging

- CFN template: VPC, Squid EC2 with basic auth, AgentCore Browser (VPC mode)
- Proxy credentials auto-generated in Secrets Manager
- Squid access logs synced to S3 every 5 minutes
- Browser security group locked to Squid:3128 only (no NAT)
- verify_proxy.py and .ipynb: start proxied session, verify IP matches Squid
- Parent README updated with sample 11 link

* adding / fixing features

* Fix browser execution role trust policy for CFN deployment

Add SourceAccount and SourceArn conditions to the browser execution
role trust policy in both CFN templates. Without these conditions,
the BrowserCustom CFN handler fails with HandlerInternalFailure.

Uses AWS::AccountId and wildcard region so it works in any account.

* adding extension / refactoring

* adding extension / refactoring

* finishing samples

* Clean up browser tool samples: remove local playwright install, fix lint and docs

- Remove 'playwright install chromium' from READMEs (remote browser, not local)
- Remove unnecessary f-string prefix in verify_domain_filtering.py
- Fix ASCII diagram alignment in proxy README
- Remove secret ARN from verify_proxy.py stdout
- Replace 'jupyter notebook' command with IDE-agnostic guidance

* fix: proxy auth bug + ruff lint/format across browser tutorials

11-browser-with-proxy:
- Fix htpasswd parsing passwords starting with '-' as flags (use stdin)
- Use ExcludePunctuation for secret generation instead of partial char list
- Use session.client() consistently, remove secret ARN printing
- Clear notebook outputs

09/10/12 + helpers:
- Fix ruff lint errors (unused import re, f-string without placeholders)
- Apply ruff formatting (line wrapping, quote consistency)
- Clear notebook outputs (12 had leaked AWS credentials)
- Update kernel metadata

* fix: install cronie on AL2023 for squid log sync cron job

* fix: browser tutorials cross-region bucket naming, deploy.sh region, and boto3 version pin

- Profiles & Extensions notebooks: bucket name now includes region to prevent
  cross-region S3 collisions when running demos in different regions
- deploy.sh: use AWS_DEFAULT_REGION/aws configure instead of hardcoded us-east-1
- Proxy requirements.txt: pin boto3>=1.42.47 (proxyConfiguration support)

---------

Co-authored-by: Joshua Samuel <sauhsoj@amazon.com>

* chore(deps): bump jsonpath (#972)

Bumps [jsonpath](https://github.com/dchester/jsonpath) from 1.1.1 to 1.2.1.
- [Commits](https://github.com/dchester/jsonpath/commits/1.2.1)

---
updated-dependencies:
- dependency-name: jsonpath
  dependency-version: 1.2.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Adding tutorial example for Gateway integration with IDE and tool - VS Code - Agentcore Gateway - Confluence (#790)

* Updating Policy tutorial for FGAC

* Updating Policy tutorial for FGAC

* Updating Policy tutorial for FGAC

* Updating Policy turorial for FGAC

* Adding IDE Gateway integration example

* Fixing python-lint issues

* Fixing python-lint issues

* Fixing python-lint issues

* Adjusting proxy Lambda with commented lines

* Updated readme

* Updating README

* fix: include account ID in Cognito domain prefix to ensure global uniqueness (#979)

The Cognito domain prefix previously used only appName and region,
which could cause collisions across AWS accounts deploying the same
stack. Adding the account ID guarantees uniqueness.

Co-authored-by: Abhimanyu Siwach <siwabhi@amazon.com>

* feat: add auto-register Bedrock Knowledge Bases on AgentCore Gateway tutorial (#980)

* added full example of enterprise mcp platform with policy engine mcp … (#982)

* added full example of enterprise mcp platform with policy engine mcp server filtering based on user_tag, guardrail for PII data

* fixed linting

* fixed linting

* fixing lint

* fixing lint

* fixinf ruff

* FIXING RUFF

* fixing ruff

---------

Co-authored-by: brnaba-aws <brnaba@amazon.com>

* update evals package name (#985)

* update evals package name

* update evals package name

* Fix/add missing infrastructure files due to .gitignore (#942)

* feat: add missing CDK infrastructure files for knowledge-base-rag-agent

- Add all CDK stack files (api, cognito, storage, web-console, etc.)
- Add CDK constructs and utilities
- Fix web console S3 content-type bug with single BucketDeployment
- Add @aws-lambda-powertools/logger dependency for Lambda bundling
- Enable esbuild-based Lambda bundling (no Docker required)

This completes the knowledge-base-rag-agent infrastructure that was missing from the original PR.

* fix: add missing infrastructure files for knowledge-base-rag-agent

- Add exception to root .gitignore for knowledge-base-rag-agent/infrastructure/lib/
- This allows the critical CDK stack definitions and constructs to be tracked
- Without these files, developers cannot deploy the infrastructure
- Fixes the incomplete PR #923 that was missing the entire lib/ directory

The missing files include:
- 6 CDK constructs (API proxy, CORS config, Lambda utilities, etc.)
- 12 CDK stacks (API, Cognito, Database, Memory, Runtime, etc.)
- 1 utility file (NAG suppressions)

These are essential TypeScript source files, not build artifacts.

---------

Co-authored-by: Jerad Engebreth <awsjerad@amazon.com>

* AgentCore gateway - SQL injection prevention (#989)

* Add prompt injection prevention tutorial

* Updated Lambda

* SQL changes

* Lambda changes

* SQL naming changes

* fixes

* Added read me and minor changes

* Update service names

* fixes

* remove outputs

* fixes-1

* lambda lint

---------

Co-authored-by: jsbeardaws <jsbeard@amazon.com>

* docs: improve prerequisites for customer-support-agent-with-agentcore (#1008)

Expand the Prerequisites section with inline guidance for AWS CLI version
requirements, IAM permissions, and Bedrock model access — addressing
common first-time setup failures.

README.md:
- Add tip that deploy.sh runs pre-flight checks for all prerequisites
- Specify AWS CLI v2.32.0+ requirement (needed for `aws login`)
- Add step-by-step AWS credentials and permissions guidance
- Recommend AdministratorAccess + SignInLocalDevelopmentAccess policies
- Add Anthropic model access section (one-time usage form, not the
  retired Model Access page — Bedrock auto-enables since Oct 2025)
- Note CDK and AgentCore CLI are auto-installed by deploy.sh
- Add troubleshooting entry for `aws login` version error

scripts/deploy.sh:
- Add AWS CLI version check (warns if below v2.32.0)
- Add Bedrock model access check for Claude Sonnet 4.5
- Improve credential error message to reference `aws login`

Co-authored-by: Abhimanyu Siwach <siwabhi@amazon.com>

* adding session lifecycle info (#1014)

* fix: add npm cache preflight check and fix agentcore CLI commands in deploy.sh and README (#1015)

- Add npm cache ownership check to deploy.sh pre-flight section. A previous
  `sudo npm install` leaves root-owned files that cause EACCES errors.
- Fix deploy.sh and README.md to use `uv run agentcore` instead of bare
  `agentcore`, since the CLI is installed in the project venv via uv sync.
- Update troubleshooting table with `uv run` guidance.

Co-authored-by: Abhimanyu Siwach <siwabhi@amazon.com>

* fix: add botocore[crt] dependency for aws login credential provider (#1016)

The README instructs users to authenticate via `aws login`, which uses
the CRT-based credential provider. Without `awscrt` in the project venv,
any boto3 call (e.g., cognito-user.py) fails with MissingDependencyException.

Co-authored-by: Abhimanyu Siwach <siwabhi@amazon.com>

* fix: improve cognito-user.py UX for email and password handling (#1018)

* fix: improve cognito-user.py UX for email selection and password errors

- Replace free-text email input with numbered menu (1/2) to prevent
  users from entering emails that don't match backend mock data
- Show password requirements upfront before the password prompt
- Catch InvalidPasswordException and display friendly error message
  instead of a raw stacktrace

* style: apply ruff formatting

* fix: detect port 3000 collision before starting OAuth callback server

Check if port 3000 is available before attempting to bind. If in use,
exit with a clear error message and the command to free the port.

* fix: check port availability before opening browser in login flow

Move the port check to the start of do_login so it exits before
opening the browser or starting the callback server.

---------

Co-authored-by: Abhimanyu Siwach <siwabhi@amazon.com>

* docs: simplify console navigation for Policy Engine setup (#1020)

Co-authored-by: Abhimanyu Siwach <siwabhi@amazon.com>

* Replace Anthropic Claude references with Amazon Nova 2 Lite model (#1023)

* Replace Anthropic Claude references with Amazon Nova 2 Lite model
 

---------

Co-authored-by: nehatb <nehatb@amazon.com>

* Lifecycle Session Demos for Bedrock Agentcore runtime (#1026)

* feat(tutorials): Add inline session lifecycle demos to MCP server tutorials

Add inline session stop demonstrations and best practices sections to both
MCP server hosting tutorials. Updates include:

- Add inline session lifecycle demo after runtime launch
- Add Session Lifecycle Best Practices section before cleanup
- Update cleanup with security-validated ordering (credentials first)
- Make cleanup code active with proper try/except error handling

hosting_mcp_server.ipynb (OAuth):
- Inline demo is commented (OAuth doesn't support boto3 invoke)
- Cleanup order: Secrets → SSM → Runtime → ECR

hosting_mcp_server_iam_auth.ipynb (IAM):
- Inline demo is ACTIVE (IAM supports boto3 invoke)
- Demonstrates capturing runtimeSessionId and calling stop_runtime_session
- Cleanup order: SSM → Runtime → ECR

All changes follow security best practices to minimize credential exposure
windows during cleanup.

Requirements: 9.1, 9.2, 9.3, 9.4, 9.5, 6.2

* feat(tutorials): Add inline session lifecycle demos to MCP server tutorials

Add strategic session stop demonstrations throughout both MCP server tutorials
to teach proper session lifecycle management in context.

Changes:
- Add stop_runtime_session_oauth() helper function for OAuth bearer token auth
- Add Demo 1: Session stop immediately after runtime deployment
- Add Demo 2: Session stop between different test approaches
- Add Demo 3: Session stop after Boto3 testing (IAM notebook only)
- Update invoke_mcp_tools.py to include session stop with HTTP 200 response
- Add explanatory notes about expected 404 warning from MCP client cleanup
- Demonstrate mcpSessionId can be passed as header and used with stop_runtime_session
- Print HTTP status codes and Request IDs for all session stops

Verified:
- IAM auth: All session stops return HTTP 200 with Request IDs
- OAuth auth: Session stops work with bearer token via HTTP POST
- Single runtime successfully handles multiple sessions
- Runtime remains alive after stopping individual sessions

Requirements: 9.1, 9.2, 9.3, 9.4, 9.5

* feat(tutorials): Add inline session lifecycle demos to hosting-agent tutorials

Add strategic session stop demonstrations and lifecycle configuration to all
hosting-agent tutorials to teach proper session management in context.

Changes:
- Update billing language from 'GBHours' to 'vCPU and Memory based' costs
- Add inline session stop demos after agent invocations
- Add active lifecycle configuration demo with second runtime (300s timeout)
- Demonstrate stop_runtime_session with captured runtimeSessionId
- Update cleanup sections with try/except error handling
- Add Session Lifecycle Best Practices sections

Tutorials updated:
- 01-strands-with-bedrock-model/runtime_with_strands_and_bedrock_models.ipynb
- 02-langgraph-with-bedrock-model/runtime_with_langgraph_and_bedrock_models.ipynb
- 03-strands-with-openai-model/runtime_with_strands_and_openai_models.ipynb
- 04-crewai-with-bedrock-model/runtime-with-crewai-and-bedrock-models.ipynb

Verified:
- All notebooks demonstrate session stopping with boto3 invoke_agent_runtime
- Lifecycle configuration demos show shorter idle timeout (300s)
- Cleanup sections properly handle multiple runtimes
- Error-safe cleanup with individual try/except blocks

Requirements: 1.2, 6.1, 9.1, 9.2, 9.3, 9.4, 9.5

* refactor(tutorials): Simplify session lifecycle sections per reviewer feedback

Address reviewer feedback to remove confusing lifecycle configuration
references and simplify Best Practices sections.

Changes:
- Remove 'and show how to use a smaller lifecycle configuration' from inline demos
- Remove lifecycle configuration demo cells from hosting-agent notebooks
- Simplify Best Practices section to only 2 bullets (configure timeout, stop sessions)
- Remove confusing bullets about cleanup, deletion order, and minimum timeout

Updated notebooks:
- All 4 hosting-agent notebooks (strands-bedrock, langgraph, strands-openai, crewai)
- Both MCP server notebooks (OAuth and IAM)
- understanding-runtime-context notebook

Reviewer: @evandrofranco
PR: awslabs/amazon-bedrock-agentcore-samples#1026

* fix(tutorials): Restore lifecycle config demos with cleaned comments

Restore lifecycle configuration demo cells that were incorrectly removed.
The reviewer only asked to remove confusing comments, not the entire demo.

Changes:
- Restore lifecycle-config-demo markdown and code cells
- Keep the demo functionality (second runtime with 300s timeout)
- Remove only the confusing comments:
  - 'Using a shorter idle timeout for demonstration purposes'
  - 'A shorter idle timeout helps avoid undesired costs...'
- Keep all the actual demo code

This preserves the SPECIAL CASE requirement from tasks.md that these
notebooks should demonstrate active lifecycle configuration.

Updated: 4 hosting-agent notebooks

* fix(tutorials): Restore lifecycle demos and update Best Practices per reviewer

Complete implementation of reviewer feedback:

1. Removed confusing sentence from inline demo titles:
   - Changed 'Below we demonstrate stop_runtime_session and show how to use
     a smaller lifecycle configuration'
   - To: 'Below we demonstrate stop_runtime_session'

2. Removed confusing comments from lifecycle config demo code:
   - Removed 'Using a shorter idle timeout for demonstration purposes'
   - Removed 'A shorter idle timeout helps avoid undesired costs...'
   - Kept all actual demo code (second runtime with 300s timeout)

3. Simplified Best Practices section (all notebooks):
   - Reduced to 2 bullets: Configure idle timeout, Stop sessions when done
   - Removed 3 bullets about cleanup, deletion order, minimum timeout

Updated 6 notebooks:
- 4 hosting-agent notebooks (with lifecycle demos restored)
- 2 MCP server notebooks (Best Practices simplified)

Reviewer: @evandrofranco
PR: awslabs/amazon-bedrock-agentcore-samples#1026

* 03-integrations - Add Claude Agent SDK agentic patterns: subagents and hooks (#994)

* feat: add Claude Agent SDK orchestrator-workers pattern with subagents

Add new example demonstrating the Orchestrator-Workers agentic pattern
using Claude Agent SDK's native subagent support (AgentDefinition + Task tool)
deployed on Bedrock AgentCore Runtime.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* feat: add Claude Agent SDK hooks pattern for tool governance and audit

Add new example demonstrating PreToolUse and PostToolUse hooks for
blocking dangerous operations and audit logging. README covers
defense-in-depth story with AgentCore Policy for external tools.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* docs: add contributor name

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

* fix: upgrade to Sonnet 4.6 and fix cognito-user.py commands (#1027)

* fix: use uv run instead of python in cognito-user.py

The project uses uv for dependency management, so the script
should reference uv run consistently in its docstring and
user-facing output.

* feat: upgrade to Claude Sonnet 4.6 and improve deploy model check

- Update model ID from Sonnet 4.5 to Sonnet 4.6 global inference profile
- Replace passive model lifecycle check with actual invoke-model test in deploy.sh
- Show both possible failure reasons: Anthropic FTU form and IAM permissions

* fix: harden deploy.sh model check for edge cases

- Add timeout (10s) to prevent hanging on network issues
- Add cli-connect-timeout and cli-read-timeout for AWS CLI
- Chain mktemp into the if-condition to handle failures gracefully
- Clarify that the check tests deployer credentials, not the agent's
  execution role — a failure here may not affect the deployed agent
- Safe cleanup of temp file in all code paths

* fix: remove timeout command for macOS compatibility

timeout is a GNU coreutils command not available on macOS by default.
The AWS CLI's --cli-connect-timeout and --cli-read-timeout flags
provide sufficient timeout protection.

* docs: restructure prerequisites for clarity

- Move Clone the Repository to first step with git install instructions
- Separate auto-installed tools (CDK, AgentCore CLI) from manual prereqs
- Move IAM policies to a note after verify credentials
- Move aws login version requirement to AWS Credentials section
- Move deploy.sh tip to after tools table

* docs: add guidance on changing the model ID

* docs: remove redundant API form note

---------

Co-authored-by: Abhimanyu Siwach <siwabhi@amazon.com>

* docs: improve prerequisites clarity and deploy.sh error messages (#1029)

* docs: improve prerequisites clarity and deploy.sh error messages

- Restructure Clone the Repository into numbered steps
- Clarify Node.js install: install nvm first, then run command
- Improve deploy.sh node error message with nvm install link
- Remove auto-installed tools section (CDK, AgentCore CLI)
- Specify Sonnet 4.6 in model access steps
- Simplify tools table and credentials section

* docs: revert to Sonnet 4.5 default, add alternative model table

- Revert default model to Claude Sonnet 4.5 in load.py and deploy.sh
- Add alternative models table (Haiku 4.5, Sonnet 4.6) to README
- Update all Sonnet 4.6 references back to 4.5

* docs: soften git install wording

---------

Co-authored-by: Abhimanyu Siwach <siwabhi@amazon.com>

* updated notebook to reflect header propagation feature instead of interceptor (#971)

* updated notebook to reflect header propagation feature instead of interceptor

* Add README.md documentation

* docs: add Transaction Search prerequisite to observability section (#1031)

The observability section implied traces work out of the box, but
CloudWatch Transaction Search must be enabled first for span ingestion.
Add the one-time setup step before the trace inspection instructions.

Co-authored-by: Abhimanyu Siwach <siwabhi@amazon.com>

* feat(02-usecase): A2A Agent usecase (#1025)

* Add A2A Real Estate Multi-Agent Use Case

This contribution adds a complete A2A (Agent-to-Agent) real estate multi-agent system demonstrating:

- Multi-agent coordination using A2A protocol with OAuth authentication
- Property Search Agent (Strands-based) for searching properties
- Property Booking Agent (Strands-based) for managing bookings
- Coordinator Agent that orchestrates sub-agents via A2A protocol
- Automated Cognito setup for OAuth 2.0 authentication
- React-based UI with direct AgentCore integration
- Comprehensive deployment automation scripts
- End-to-end testing utilities

Key Features:
- OAuth bearer token management with Cognito
- Request header allowlist configuration for Authorization
- Automated agent deployment with agentcore CLI
- Token generation and refresh utilities
- Real-time chat interface for property search and booking

Architecture:
- Coordinator generates OAuth tokens from Cognito to call sub-agents
- Sub-agents validate tokens independently
- All agents deployed on Amazon Bedrock AgentCore Runtime
- UI connects directly to coordinator via A2A protocol

Documentation includes:
- Deployment guide with step-by-step instructions
- Project structure overview
- Demo instructions
- Quickstart guide
- Contributing guidelines

* Security improvements and bug fixes

- Added comprehensive .gitignore for sensitive files and scan results
- Fixed security issues from GitHub Advanced Security scan
- Implemented short-term memory (STM_ONLY) for conversation context
- Fixed session ID bug in UI for persistent conversations
- Removed unused fix_iam_permissions.py with hardcoded ARNs
- Deleted sensitive files (bearer_token.json, cognito_config.json)
- Updated welcome message to 'Amazon Bedrock AgentCore'
- Fixed ESLint warnings in directApi.ts
- Improved security in deployment and server scripts
- All security scan findings addressed or documented as false positives

* Update documentation to sample application

* review comment fixes, cleanup unused files, update documentation

* Delete unused test_a2a_simple.py

* Fix ruff lint errors

* Remove clear-text logging of env vars and working directory

* ASH fixes

* Fix TypeScript hast type error from npm overrides

* Replace ASCII architecture diagram with architecture.png

* Migrate UI from CRA to Vite, redesign with light theme

---------

Co-authored-by: ramprasaths <rampsee@amazon.com>

* Added Tagging and CMK examples for PolicyEngine (#1039)

* Updated to include CMK and Tags

* Fixed issues

* Added required packages

* Added and fully tested ability to add tags and CMK to PolicyEngine

---------

Co-authored-by: Andy Hall <hllaah@amazon.com>

* fix(02-usecases): memory role and dependency changes (#1040)

* A2a (#1041)

* code changes

* changes

* fix(02-usecases): monitor agent fix (#1042)

* code changes

* changes

* error

* Fixing cdk stack with missing cdk lib folder and interceptor's lambda (#1036)

* added full example of enterprise mcp platform with policy engine mcp server filtering based on user_tag, guardrail for PII data

* fixed linting

* fixed linting

* fixing lint

* fixing lint

* fixinf ruff

* FIXING RUFF

* fixing ruff

* fixed stack
added missing lib files

* fixing ruff

* fixing ruff

---------

Co-authored-by: brnaba-aws <brnaba@amazon.com>

* Bump starter toolkit to 0.3.2 in customer support agent (#1048)

* Bump starter toolkit to 0.3.2 in customer support agent blueprint

Picks up improved error messages for auth failures during agent
invocation (friendly re-login guidance instead of raw tracebacks).

* Update uv.lock after uv sync with starter toolkit 0.3.2

---------

Co-authored-by: Abhimanyu Siwach <siwabhi@amazon.com>

* feat: Add AgentCore Gateway with EntraID 3LO authentication example (#1044)

* feat: Add AgentCore Gateway with EntraID 3LO authentication example

CDK-based example demonstrating AgentCore MCP Gateway with:
- EntraID inbound JWT authentication (CIAM and standard tenants)
- Outbound 3LO (three-legged OAuth) for user-delegated API access
- Browser-based auth onboarding SPA for pre-authorizing access
- Response interceptor for VS Code MCP client compatibility
- Automated setup script for EntraID app registrations + AWS deployment

* fix: Address security scanner findings from PR #1044

- Fix ruff F541: remove extraneous f-prefix from strings without placeholders
- Fix bandit B310 / semgrep dynamic-urllib: validate URL scheme is https://
  before calling urlopen, add nosec comments for audited calls
- Fix detect-secrets: add pragma allowlist comments for false positives on
  password generation and secret extraction (no actual secrets in code)
- Fix checkov CKV_OPENAPI_4: add global security field to OpenAPI spec

---------

Co-authored-by: Robert Hoffmann <rho@amazon.de>

* Async agent tutorial (#1009)

* adding async example

* uploading to s3 properly

* fixed chart formatting

* adding Dockerfile to gitignore and cleaning up ECR delete

* adding name to contributors list

* addressing git comments

* addressing comments

* moving files to folder

---------

Signed-off-by: Nadhya Polanco <65464569+nadhya-p@users.noreply.github.com>
Co-authored-by: nadhyap <nadhyap@amazon.com>

* fix(02-usecases): The MCP server must bind to 0.0.0.0 to allow the gateway to connect (#1022)

The MCP server must bind to 0.0.0.0 to allow the gateway to connect

Signed-off-by: Joachim Aumann <aumannjoachim@gmail.com>

* fix(02-usecases): Update FastMCP host address to 0.0.0.0 (#1024)

* Update FastMCP host address to 0.0.0.0

Change the host address for FastMCP from 127.0.0.1 to 0.0.0.0 to allow external connections.

Signed-off-by: Joachim Aumann <aumannjoachim@gmail.com>

* fixed deployment bug of hello world containter

---------

Signed-off-by: Joachim Aumann <aumannjoachim@gmail.com>

* fix(05-blueprints): Pin chardet < 6.0.0 in customer support agent (#1051)

chardet 6.x introduced breaking changes. Pin to >= 3.0.2, < 6.0.0
to ensure compatibility. Also adds missing src/__init__.py.

Co-authored-by: Abhimanyu Siwach <siwabhi@amazon.com>

* Multitenant platform demo (#859)

* Multitenant platform demo

* linting fixes

* fix(multitenant-agentic-platform): Improve security and configuration flexibility

- Fix typo in README ("cusotm" → "custom")
- Replace hardcoded AWS region with environment variable support in main.py
- Refactor calculator tool to use AST-based safe evaluation instead of regex validation
- Add support for unary operators and improve operator/function/constant whitelisting
- Update database-query tool to use environment variables for RDS configuration
- Add AWS_REGION environment variable support to email-sender tool
- Update deploy.sh with improved deployment configuration handling
- Enhance frontend index.html with better error handling and user feedback
- Improves security posture by eliminating eval() usage and hardcoded credentials
- Enables flexible multi-region deployments through environment configuration

* fix(multitenant-agentic-platform): Remove redundant agent runtime ID validation

- Remove unnecessary validation check for agent_runtime_id in delete_agent handler
- Simplify error handling flow by eliminating duplicate validation logic
- Agent runtime ID is already validated in prior steps, making this check redundant

* docs(multitenant-agentic-platform): Add security considerations and warnings

- Add comprehensive Security Considerations section to README documenting API key exposure risks
- Document suitable use cases (demos, development, internal tools) and production recommendations
- Add security warnings to config_injector Lambda handler with alternative authentication approaches
- Update deployment documentation with security notes about client-side API key embedding
- Pass account_id and region parameters to DatabaseConstruct and MessagingConstruct for improved configuration
- Add security reminders in frontend development section referencing production deployment guidance
- Clarify that current implementation is suitable for demos and internal use only, not production

* fix(multitenant-agentic-platform): Add API key headers to frontend requests and improve security documentation

- Add 'x-api-key' header to all axios requests in frontend (delete, post, get operations)
- Update README security note to emphasize not embedding long-lived credentials in public files
- Recommend authenticated callers (Cognito/IAM/JWT) or backend proxy/BFF for production
- Clarify config.js generation to exclude API Gateway keys from public configuration
- Fix deploy.sh region comment from us-west-2 to us-east-1
- Remove emoji from deploy.sh output for better compatibility
- Refactor query parameter and body parsing in async_deploy_agent handler for clarity
- Add environment variable definitions for DynamoDB table names in build_deploy_agent handler
- Ensure consistent API authentication across all frontend API calls for improved security

* docs(multitenant-agentic-platform): Remove security limitations section from README

- Remove detailed API key exposure warnings and limitations documentation
- Remove suitable use cases section for demonstration deployments
- Remove production recommendations for authentication mechanisms
- Simplify README by consolidating security guidance into main documentation

* fix(multitenant-agentic-platform): Enforce required environment variables and optimize DynamoDB queries

- Replace optional environment variable defaults with required configuration in build_deploy_agent handler
- Add validation to fail fast if AGENT_CONFIG_TABLE_NAME or AGENT_DETAILS_TABLE_NAME are not set
- Add AGGREGATION_TABLE_NAME validation in infrastructure_costs handler with clear error messaging
- Optimize DynamoDB scan operations to use server-side FilterExpression instead of client-side filtering
- Add ProjectionExpression to reduce data transfer and improve query performance in token_usage handler
- Use ExpressionAttributeNames to handle reserved words (timestamp) in DynamoDB queries
- Improve configuration reliability by ensuring all Lambda functions have required environment variables set before execution

* fix(multitenant-agentic-platform): Remove unused import from token usage handler

- Remove unused boto3.dynamodb.conditions Attr import
- Simplify handler.py by eliminating unnecessary dependency
- Reduce code clutter and improve maintainability

* fix(multitenant-agentic-platform): Update agent template naming and enhance token limit validation

- Rename base-agent.py to main.py in agent-tools-repo templates for consistency
- Update documentation references to reflect new template filename
- Add Attr import from boto3.dynamodb.conditions for improved query filtering
- Enhance check_token_limit function with configurable fail-closed behavior via FAIL_CLOSED environment variable
- Add get_tenant_id_from_agent function to look up tenant ID from agent details table, preventing token limit bypass
- Improve error handling in token limit checks with detailed logging for fail-closed vs fail-open modes
- Add documentation notes explaining fail-open default behavior and fail-closed option

* Update guardrails memory sample notebook (#995)

* feat: Update guardrails memory sample notebook

* chore: Clear execution counts and outputs from notebook

* sample update(memory): Simplify memory integration using AgentCoreMemorySessionManager

Replace custom MemoryHookProvider implementation with built-in
AgentCoreMemorySessionManager. Key changes:
- Use AgentCoreMemoryConfig with AgentCoreMemorySessionManager
- Remove custom hook implementation (on_agent_initialized, on_message_added)
- Update documentation based on model usage in code from Claude 3.7 Sonnet to Claude Haiku 4.5
- Simplify session handling with automatic reinitialization
- Update documentation to reflect recommended approach

* fix(notebook): Configure memory mode and inject memory_id to prevent runtime failures

configure() defaults to memory_mode="NO_MEMORY", so the auto-created
execution role has no memory IAM permissions — causing ListMemoryEvents
failures at runtime. Additionally, the toolkit doesn't know about the
manually-created memory resource, so it provisions a duplicate on launch.

Fix: Set memory_mode="STM_ONLY" in configure() and inject the existing
memory_id into .bedrock_agentcore.yaml before launch(). Both issues only
exist because the tutorial manually creates resources that the toolkit
normally manages end-to-end.

* cleaned execution count

* Cleared cell outputs

---------

Co-authored-by: subhakl <subhakl@amazon.com>

* Correct role and content retrieval in message processing (#499)

Signed-off-by: fllaneza <44783676+fllaneza@users.noreply.github.com>

* Add Episodic Memory Strategy Tutorial (#855)

* feat: add episodic memory tutorial README

* feat: add code debugging assistant implementation

* feat: add architecture diagram

* docs: add episodic strategy to overview

* docs: add contributor

* fix: update episodic memory API for reflectionConfiguration

- Change reflectionNamespaces to reflectionConfiguration.namespaces
  (API structure changed in bedrock-agentcore SDK)
- Fix namespace validation: reflection namespace must be same as
  or prefix of episodic namespace
- Update get_namespaces() to read from new nested structure
- Add code-assistant.py standalone script version

* fix: move imports to top of file for linting compliance

- Consolidate all imports at module top (E402 fix)
- Remove unused List import from typing (F401 fix)
- Maintain alphabetical ordering of imports

* style: apply ruff formatting

* feat: Replace debugging use case with Meeting Notes Assistant

Changes based on reviewer feedback that debugging examples already exist
in the repository (debugging-agent and healthcare-assistant).

New implementation:
- Meeting Notes Assistant with episodic memory
- Tools: capture_action_item, identify_decision, summarize_discussion, track_followup
- Tracks decisions, action items, and participant preferences across meetings
- 6 test scenarios demonstrating meeting management patterns
- End-to-end tested with AWS Bedrock (all tools working)
- Security audit passed, linting verified

Files changed:
- Renamed: code-assistant.py → meeting-notes-assistant.py
- Renamed: code-assistant.ipynb → meeting-notes-assistant.ipynb
- Updated: README.md with meeting-specific documentation

This use case is unique and not duplicated in existing samples.

Addresses feedback from @akshseh in PR comment.

* refactor: move episodic tutorial to long-term-memory/strands-hooks folder

Address reviewer feedback:
- Move from 06-episodic-strategy/ to 02-long-term-memory/01-single-agent/using-strands-agent-hooks/meeting-notes-assistant-using-episodic/
- Update architecture diagram to match repo template style
- Update parent README table reference

* fix: update architecture diagram

* fix: address reviewer feedback from @akshseh

- Remove .gitignore (*.pptx entry not needed)
- Pin versions in requirements.txt (bedrock-agentcore>1.4, strands-agents>=0.1.0, boto3>=1.42.1)
- Convert cell_0 from code cell with docstring to markdown cell
- Add blank line after H2 heading in cell_5 to fix bullet formatting
- Fix event_expiry_days comment: clarify it is STM TTL, not for long-term episodic strategy
- Add reflection extraction timing note (~10-15 mins) in seed cell
- Format meeting-notes-assistant.py with black

* Update AgentCore Memory tutorials with new SDK patterns (#1003)

* feat(memory-tutorials): Enhance AgentCore Memory tutorials with SDK migration and advanced features

- Migrate from MemoryClient to MemorySessionManager and MemorySession
- Update from tuple-based messages to ConversationalMessage objects
- Add session-based operations eliminating repetitive parameters
- Implement conversation branching with fork_conversation()
- Add metadata tracking with StringValue and EventMetadataFilter
- Update all three notebooks: math-assistant, customer-support, customer-support-memory-manager
- Add comprehensive ENHANCEMENT_SUMMARY.md documenting all changes

This update showcases the full capabilities of AgentCore Memory including:
- Session management with MemorySessionManager
- Memory hooks for automatic storage/retrieval
- Conversation branching for alternative paths
- Metadata tagging for analytics and filtering
- Practical use cases for math tutoring and customer support

All notebooks tested and validated with syntax checks and feature verification.

* docs: Add arunskum to CONTRIBUTORS.md

* docs: Remove ENHANCEMENT_SUMMARY.md file

* feat(memory): Update AgentCore Memory tutorials with latest SDK patterns

- Migrate from MemoryClient to MemorySessionManager and MemorySession
- Replace tuple-based messages with ConversationalMessage objects
- Implement session-based operations (add_turns, search_long_term_memories)
- Add conversation branching with fork_conversation and list_branches
- Add metadata tracking with StringValue and EventMetadataFilter
- Update all three notebooks: math-assistant, customer-support, customer-support-memory-manager
- Fix imports: StringValue and EventMetadataFilter now from bedrock_agentcore.memory.models

These changes showcase the enhanced AgentCore Memory capabilities including:
- Session-based memory management for cleaner API
- Advanced retrieval with RetrievalConfig
- Conversation branching for alternative paths
- Metadata tagging and filtering for event tracking

* refactor(memory): Split customer support tutorial into built-in vs custom strategies

Deleted legacy MemoryClient notebook, renamed memory-manager to override-strategy, created new inbuilt-strategy notebook, added comparison sections to both

* fix(memory): Correct StringValue and Event attribute usage in notebooks

Fixed 3 issues identified by reviewer:

1. Changed StringValue() to StringValue.build() (30 occurrences)
   - Correct usage: StringValue.build('value')
   - Fixed in all metadata creation sections

2. Changed .event_id to .eventId (3 occurrences)
   - Correct attribute: event.eventId
   - Fixed in all branching sections

3. Validated changes with syntactic tests

Changes span 3 notebooks:
- customer-support-inbuilt-strategy.ipynb
- customer-support-override-strategy.ipynb
- math-assistant.ipynb

All fixes follow the pattern demonstrated in reviewer's successful test output.

* fix: Fix metadata_filter bug, migrate math-assistant to MemoryManager, remove test scripts

- Fix list_events() calls to use eventMetadata parameter instead of
  invalid metadata_filter in all 3 notebooks
- Migrate math-assistant from legacy MemoryClient to MemoryManager
- Switch math-assistant from CustomSemanticStrategy to built-in
  SemanticStrategy (no IAM execution role required)
- Remove CUSTOM_PROMPT cell and ROLE_ARN placeholder from math-assistant
- Remove test scripts, migration scripts, and cleanup utilities

* fix: Update config and runtime MCP agent code for SRE workshop lab 04 (#1055)

* Update config and runtime MCP agent code for SRE workshop lab 04

* Fix ruff lint errors: remove unused imports and f-string prefixes

---------

Co-authored-by: name <alias@amazon.com>

* Feat/databricks per user delegation (#1058)

* feat: Agent & Gateway Registry blueprint

A platform for managing AI agents and MCP tools across an organization.

- Registry: CRUD for agents (A2A, MCP, Agent-as-Tool protocols)
- Gateway management: overview, tools, clients & access, Cedar policies
- Tool composition via Cedar permit-only policies
- Agent discovery API for agent-to-agent communication
- Multi-IdP support (Cognito/EntraID auto-detected)
- AgentCore Identity for agent workload auth
- One-click deploy: CloudFormation + App Runner + DynamoDB

* feat: Databricks per-user delegation via Gateway interceptor + RFC 8693

* feat(memory): add memory streaming tutorial (#1064)

* Add ECS Fargate 3LO tutorial (#1005)

* Add ECS Fargate 3LO tutorial

Fixes #<issue-number>

Co-authored-by: tnickl <tnickl@users.noreply.github.com>
Co-authored-by: satveerkhurpa <satveerkhurpa@users.noreply.github.com>

* fix: scanning results

* feat: WAF integration
Co-authored-by: tnickl <tnickl@users.noreply.github.com>

* docs: inbound & outbound auth
Co-authored-by: tnickl <tnickl@users.noreply.github.com>

---------

Co-authored-by: tnickl <tnickl@users.noreply.github.com>
Co-authored-by: satveerkhurpa <satveerkhurpa@users.noreply.github.com>

* Add async data analysis agent tutorial (#1059)

- Move async data analysis files to 02_async_data_analysis subfolder
- Fix semgrep issue: add __name__ guard to app.run()
- Add contributors from original PR #857

Co-authored-by: Gan Luan <ganluannj@users.noreply.github.com>

* feat: add Auth0 multi-agent RFC 8693 token exchange sample (#1071)

Adds a production-grade reference implementation demonstrating RFC 8693
Token Exchange in a multi-agent system on AWS Bedrock AgentCore Runtime.

The coordinator agent exchanges the user's Auth0 JWT for attenuated,
least-privilege tokens before invoking each sub-agent — implementing
scope attenuation across a 3-agent financial services system.

Key features:
- OAuth 2.0 PKCE login flow via Auth0
- RFC 8693 Token Exchange with per-agent scope policies
- 3 agents: coordinator, customer_profile, accounts
- Streamlit web UI with JWT viewer and API call log
- AWS Secrets Manager integration
- OpenTelemetry observability
- Shell script and CDK deployment options
- Unit test suite

* Add AgentCore Policy integration for healthcare appointment agent (#1028)

* Updated reference code to match Policy for AgentCore blog sample

* fix: address scan findings, lint, and security improvements

Scan findings (HIGH):
- README.md: Add Introduction, Prerequisites, Cost Warning, Conclusion,
  Complete Cleanup sections; fix multi-action step; use full AWS service names
- setup_cognito_claims.py: Use full AWS service names; remove possessive form
- setup_policy.py: Fix incorrect docstring hours (8-17 → 9 AM-9 PM UTC)
- test_policy.py: Replace forbidden term 'execute' with 'run'
- patient.json: Rename 'Richard Doe' to approved fictitious name 'Jane Doe'

Security:
- Use HTTP Basic Auth for OAuth token requests (RFC 6749)
- Implement AWS Secrets Manager for client secret retrieval with
  auto-caching fallback to Amazon Cognito API
- Validate subprocess script path before execution

Code quality:
- Remove fragile DENIAL_PHRASES list; use deterministic tool visibility
  checks and gateway policy denial detection instead
- Fix all ruff check errors (F401, F541, F841)
- Apply ruff format to all changed Python files
- Updated test_output.txt with clean end-to-end run

---------

Co-authored-by: Anil Nadiminti <anilnadi@amazon.com>

* Usecase/lakehouse agent enhance (#1006)

* temp

* Token exchange

* README.md

* Adding column-level access control

* Fixed S3 bucket creation outside us-east-1

* After dry-run testing

* Cleanup

* Rollback unnecessary change

* Rollback unnecessary change

* Rollback unnecessary change

* Added Architecture diagram and tested / fixed notebooks 01-03

* Fix aws path and invalid notebook for 06

* Securing the code

* Fixed the error - Error executing secure Athena query: Query failed: COLUMN_NOT_FOUND: Column 'adjuster_user_id' cannot be resolved or requester is not authorized

* Added scenarios, updated README and enhanced Architecture diagram to show latest changes

* Clarify deletion of Dynamodb table in the cleanup step

* Updated readme with scenario screenshots, added masking for PII for adjuster with wildcard exclude list

* Completed end to end testing for all scenarios

* Updated README and added Dockerfile to gitignore

* Updated README to remove Production Ready clause

* Fixed Pylint issues - f-string with no placeholders and empty except

---------

Co-authored-by: Gi Kim <giryoong@amazon.com>
Co-authored-by: Sunita Koppar <skoppar@amazon.com>

* fix(02-usecases): delete site reliability workshop (#1081)

* fix(tutorials): Fix missing imports, update_agent_runtime params, and asyncio.run in notebooks (#1086)

- Fix UpdateAgentRuntime calls to include required params (agentRuntimeArtifact,
  roleArn, networkConfiguration) using get_agent_runtime read-modify-write pattern
- Fix wrong entrypoint filenames in lifecycle demo cells (langgraph, openai, crewai)
- Fix wrong requirements_file path in crewai lifecycle demo cell
- Add missing imports (Session, os, Runtime, json, Markdown) in notebook cells
- Replace asyncio.run() with await in notebook cells (Jupyter compatibility)
- Add missing setup_cognito_user_pool import in hosting_mcp_server notebook
- Add ResourceNotFoundException comment in cleanup cells
- Add Test-Downloads/ to .gitignore

* chore: remove agent-gateway-registry blueprint (#1092)

* Add WebRTC voice agent sample with KVS TURN servers (#1096)

Minimal example demonstrating WebRTC audio streaming with AWS Nova Sonic
via KVS TURN servers, deployable to AgentCore Runtime.

- FastAPI agent with aiortc for WebRTC peer connections
- Nova Sonic bidirectional streaming for speech-to-speech
- Browser client supporting both local and AgentCore Runtime modes
- KVS signaling channel for TURN/STUN server credentials
- Audio resampling (16kHz input, 24kHz output) via PyAV

* Consolidating IDP examples under tutorials for better organization (#1112)

* Fix wording typo in notebook about user consent flow

cosmetic update

Signed-off-by: Hardik Thakkar <68253981+HardikThakkar94@users.noreply.github.com>

* Add pyyaml to requirements.txt

Signed-off-by: Hardik Thakkar <68253981+HardikThakkar94@users.noreply.github.com>

* Add HardikThakkar94 to CONTRIBUTORS.md

Signed-off-by: Hardik Thakkar <68253981+HardikThakkar94@users.noreply.github.com>

* Updates to fix the Streamlit app access when running in sagemaker

Modified
- Requirements.txt (added dependencies)
- chatbot_app_cognito.py (added get_streamlit_url, for sagemaker access)
- runtime_with_strands_and_egress_3lo.ipynb (streamlit piece for access url, cosmetic updates)

* Fixing Ruff errors reported by python-lint

* removing Ruff errors from python-lint

* passing 3.7 as the model for workshop

* Docs: add prerequisites (OpenAI or Azure OpenAI) cell to Outbound Auth notebook

* Revert "Docs: add prerequisites (OpenAI or Azure OpenAI) cell to Outbound Auth notebook"

This reverts commit 5dded4c38a.

* Add prerequisites (OpenAI or Azure OpenAI) cell to Outbound Auth notebook

* cosmetic fix

* Updating OpenAI URL

* Added instructions on the OAuth flow session binding and Streamlit functionality

* All imports are now properly organized at the top of the file, following Python best practices (PEP 8). The linting errors should now be resolved:
  -  runtime.py:18:1: E402 - Fixed
  -  runtime.py:19:1: E402 - Fixed
  -  runtime.py:19:20: F811 - Fixed
  -  runtime.py:25:1: E402 - Fixed

* formatting fixed

* Update Identity Outbound tutorial notebooks with corrections and improvements:
1. 05-Outbound_Auth_3lo notebook: Fixed credential provider name typo
2. 06-Outbound_Auth_Github notebook: Multiple improvements including:
    - Updated description text for GitHub-specific use case
    - Reorganized imports (moved to top of cell)
    - Added boto session and region setup
    - Reordered OAuth flow description
    - Restructured notebook sections (removed redundant policy section, added clearer status check and invoke sections)
    - Fixed credential provider name reference

* Fixed Identity Sections based on SageMaker (Workshop) to handle oauth2_callback_server and other cosmetic updates.

* Remove unused import and added permissions for 1st time model access for workshops

* formatting fixed.

* parameterize provider, update github image.

* added import boto3 and updated image for GitHub Session Binding

* Update Model and Remove Global Var

* Travel and Shopping concierge agents blueprints

* add missing contributors for the blueprint

* fix python-lint errors

* CodeQL fixes and config

* fix python-lint unused imports

* fix python-lint

* fix linter and cql issues

* run linter

* update codeql suppressions

* suppress codeql

* Revert accidental changes to 01-tutorials and 03-integrations

Remove files accidentally added to 01-tutorials and 03-integrations in previous commits.
These changes were not intended to be part of the blueprint additions.

Reverted files:
- 01-tutorials/03-AgentCore-identity/06-Outbound_Auth_Github/.dockerignore
- 01-tutorials/03-AgentCore-identity/06-Outbound_Auth_Github/Dockerfile
- 01-tutorials/03-AgentCore-identity/06-Outbound_Auth_Github/github_agent.py
- 03-integrations/IDP-examples/EntraID/.agentcore.json
- 03-integrations/IDP-examples/EntraID/.dockerignore
- 03-integrations/IDP-examples/EntraID/Dockerfile
- 03-integrations/IDP-examples/EntraID/strands_entraid_onenote.py

* fix formatting

* Update 05-blueprints/shopping-concierge-agent/tests/utils.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Hardik Thakkar <68253981+HardikThakkar94@users.noreply.github.com>

* removed tests folders.

* remove info logging

* remove logging

* codeql suppressions

* Update server.py

# codeql[py/clear-text-logging-sensitive-data] Debug logging for certificate verification - logs metadata only, not private key content

Signed-off-by: Hardik Thakkar <68253981+HardikThakkar94@users.noreply.github.com>

* Updating .gitignore and adding lib folder required for the shopping and travel concierge agents

* Add Demo video for agents

* Update demo section in README.md

Signed-off-by: Hardik Thakkar <68253981+HardikThakkar94@users.noreply.github.com>

* Add Demo's as Gif, update LFS and add note in ReadMe

* remove the .mp4 files as they are not supported

* change to google products and remove travel specific

* update product link

* fix url in shopping list and purchases

* remove amazon

* Add Visa B2B Use Case

* fix pylint

* CodeQL Fixes

* Consolidating IDP examples under tutorials for better organization

---------

Signed-off-by: Hardik Thakkar <68253981+HardikThakkar94@users.noreply.github.com>
Co-authored-by: HT <hardikvt@amazon.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* adding/changing mcp samples - server and client (#1089)

* adding/changing mcp samples - server and client

* adding/changing mcp samples - server and client

* adding exec command

* chore(e2e-workshop): refactor workshop to add framework subfolders (#1120)

* chore(e2e-workshop): refactor workshop

* docs: update readme

* fix(05-entraid-3lo-gateway): rename lib/ to infra/ to avoid root .gitignore exclusion (#1057)

The root .gitignore has a blanket `lib/` rule for Python packaging that
was preventing lib/cdk-stack.ts from being tracked by git. Renamed the
directory to infra/ which is not caught by any ignore rule.

Also fixes README.md references from `cd cdk-entraid` to the actual
directory name `05-entraid-3lo-gateway`.

Changes:
- Rename lib/ -> infra/ for the CDK stack source
- Update import path in bin/cdk.ts
- Fix cd path in README.md Quick Start instructions

Co-authored-by: Robert Hoffmann <rho@amazon.de>

* Add barge-in support, user transcription, and VPC setup docs (#1117)

- Implement barge-in per Nova Sonic spec (mute flag + FIFO clear in OutputTrack)
- Detect interruption from textOutput for reliable barge-in in deployed environments
- Add user speech transcription via contentStart role tracking
- Add VPC setup console instructions to README

* fix(05-entraid-3lo-gateway): remove securitySchemes from OpenAPI spec to fix CDK deploy (#1137)

* fix(05-entraid-3lo-gateway): rename lib/ to infra/ to avoid root .gitignore exclusion

The root .gitignore has a blanket `lib/` rule for Python packaging that
was preventing lib/cdk-stack.ts from being tracked by git. Renamed the
directory to infra/ which is not caught by any ignore rule.

Also fixes README.md references from `cd cdk-entraid` to the actual
directory name `05-entraid-3lo-gateway`.

Changes:
- Rename lib/ -> infra/ for the CDK stack source
- Update import path in bin/cdk.ts
- Fix cd path in README.md Quick Start instructions

* fix(05-entraid-3lo-gateway): remove securitySchemes from OpenAPI spec to fix CDK deploy

---------

Co-authored-by: Robert Hoffmann <rho@amazon.de>

* docs(01-tutorials): update readmes (#1121)

* docs(01-tutorials): update readmes

* docs: update readmes

* docs: update readme links & resources

* feat(memory): Add AgentCore Memory cross-region replication tutorial (#1138)

* Add AgentCore Memory cross-region replication tutorial

Add tutorial 06-memory-cross-region-replication under advanced patterns.
Demonstrates active-passive cross-region replication for AgentCore Memory
using the memory record streaming feature with near real-time failover.

Includes:
- Jupyter notebook with step-by-step walkthrough
- CloudFormation templates for regional and global infrastructure
- Lambda consumer for Kinesis-based replication
- Failover/failback toggle scripts
- Loop prevention via namespace prefixing

* Address PR review: add arch diagram, fix memory ID lookup

- Replace ASCII architecture diagram with proper AWS diagram (images/architecture.png)
- Fix notebook Step 2: memory IDs are now stored in DynamoDB config table by
  deploy.sh and read back by the notebook, replacing the broken list_memories
  scan that searched for 'replication_memory' in the opaque memory ID
- deploy.sh Step 6 now seeds MEMORY_ID_PRIMARY and MEMORY_ID_SECONDARY
  alongside ACTIVE_REGION

Note: AgentCore Memory is intentionally created via CLI in deploy.sh (not CFN)
because the streaming config is toggled at runtime during failover/failback —
CFN would drift-correct it back.

* Rename folder, fix ruff formatting on handler.py

* fix(e2e-workshop): fix gateway race condition and model_id typo in lab-03 (#1146)

- Add time.sleep(3) after gateway creation in Step 5 to prevent Step 6
  from failing with CREATING status when cells run in quick succession
- Remove extra trailing quote from model_id that caused SyntaxError

Fixes #1145

* fix(e2e-workshop): make zip install portable and conditional in prereq.sh (#1144)

Replace hardcoded `sudo apt install zip` with cross-platform detection:
- Check if zip is already installed before attempting install
- Detect package manager (apt-get, yum, dnf, brew)
- Use sudo only when not running as root
- Fail with clear message if no supported package manager is found

Closes #604

* chore: fix iam policy path (#1153)

* docs(01-tutorials): update readmes

* docs: update readmes

* docs: update readme links & resources

* fix: fix the IAM policy path

* fix(05-entraid-3lo-gateway): fix OpenAPI schema security validation for CDK deploy (#1141)

Co-authored-by: Robert Hoffmann <rho@amazon.de>

* feat: sample that shows how to deploy agentcore runtime in VPC (#683)

* feat(runtime_in_vpc): initial

* fix: moved to advanced concepts

* AgentCore runtime bidi agent sample update - refined folder structure and more samples (#1160)

* agentcore runtime bidi streaming add strands sample

* agentcore runtime bidistream sample update for Nova Sonic 2

* agentcore bidi streaming sonic 2 update cleanup python file

* update IMDS comments

* reformat the python file using ruff

* sonic sample update to use default port 8080

* agentcore runtime bidi streaming update to sonic2 with text input update

* remove unused reference

* remove spaces

* update agentcore bid streaming UIs to include text input, event filter and barge-in

* agentcore voice agent sample with more samples and refined folder structure

* update diagram

* update reference links

* resolve github warnings

* remove temp json

* resolve github warnings

* resolve github warnings

* resolve github warnings

* resolve github warnings

---------

Signed-off-by: Lana Zhang <lanaz@amazon.com>

* Spring ai agentcore samples (#1119)

Added sample Spring and Embabel based agents

* fix:add missing agents/ directory and requirements.txt (#1165)

* adding managed session storage (#1169)

* adding managed session storage

* adding managed session storage/ fix lynt

* Adding End-to-End Customer Support Agent with AgentCore using Google ADK (#1164)

* feat(e2e): Add Google ADK end-to-end tutorial with AgentCore

Add 6-lab workshop covering agent creation, memory, gateway,
runtime deployment, frontend, and cleanup using Google ADK
with Amazon Bedrock AgentCore services.

* docs(e2e): Update Google ADK README and remove duplicate

Replace placeholder README with full tutorial content and remove
the 'README copy.md' duplicate file.

* docs(e2e): Add Google ADK to README title

* style(e2e): Capitalize README title consistently

* docs: Add Diego Brasil to CONTRIBUTORS

* chore(e2e): Remove images-og_do_not_commit directory

Remove original source images that were not intended for version control.

* fix: Use importlib for dynamic import and clean up linting issues

* feat(e2e): Set Cognito MFA to OPTIONAL and clean up inline comment

---------

Signed-off-by: Akarsha Sehwag <akshseh@amazon.de>
Co-authored-by: Akarsha Sehwag <akshseh@amazon.de>

* feat(runtime): Add AG-UI examples with SSE and WebSocket demos (#1139)

* feat(runtime): Add AG-UI examples with SSE and WebSocket demos

Add tutorial 09-ag-ui-examples demonstrating the AG-UI protocol on
AgentCore Runtime with both Cognito/JWT and IAM/SigV4 authentication.

Includes:
- Document co-authoring agent (FastAPI + Strands + ag-ui-strands)
- Cognito notebook with SSE and WebSocket Bearer token demos
- IAM notebook with SSE (SigV4 headers) and WebSocket (pre-signed URL) demos
- Multi-turn interactive document co-authoring demo
- Architecture diagrams for both auth flows and transports
- README with AG-UI event reference and troubleshooting

* feat(runtime): Add AG-UI protocol examples as tutorial 10

- Rename 09-ag-ui-examples to 10-ag-ui-examples (09 slot taken by execute-command)
- Remove hardcoded region_name=us-west-2 from BedrockModel, inherit from env
- Use DP variable for both SSE_URL and WS_URL consistently
- Regenerate architecture diagrams: single agent with tool boxes, proper auth flow
- Improved event flow as full flowchart with color-coded event categories

* fix(runtime): Fix diagram edge labels overlapping with lines

Use ortho splines and increased node spacing to prevent edges
cutting through label text in architecture diagrams.

* fix(runtime): Remove duplicate task label on Tool 2 edge to prevent overlap

* fix(runtime): Place single 'tasks' label between tool boxes in diagrams

* fix(runtime): Suppress bandit B104 for container bind to 0.0.0.0

* feat(runtime): Switch to direct_code_deploy, remove Docker/ECR dependency

- Use deployment_type=direct_code_deploy with runtime_type=PYTHON_3_13
- Remove auto_create_ecr from configure()
- Remove ECR cleanup from both notebooks
- Remove Docker from prerequisites

* refactor(runtime): Switch to direct_code_deploy, trim requirements, remove review cell

- Use direct_code_deploy with PYTHON_3_13 runtime type
- Trim requirements.txt to 5 essential packages
- Remove Review Agent Code section from both notebooks
- Install zip via sudo apt-get for SageMaker Studio compatibility
- Renumber notebook sections

* chore(runtime): Rename AG-UI examples from 10 to 11

* fix(ag-ui): Address PR #1139 review comments

- Simplify status check block to single status query
- Add markdown cell explaining utils.py helper (cognito notebook)
- Remove authorizer print line from verify cells

* docs: add migration guide from Starter Toolkit to AgentCore CLI (#1195)

* feat(tutorials): #1128 Add Strands agent with AgentSkills plugin tutorial (#1131)

* feat(tutorials): Add Strands agent with AgentSkills plugin tutorial

* docs(contributors): Update contributors list

* lint fix

* docs(tutorials): Add architecture diagram to Strands agent skills tutorial

* chore(tutorials): Reorganize strands-with-skills tutorial to 06-strands-with-skills

---------

Signed-off-by: Rajesh Sitaraman <rajesh.sitaraman@outlook.com>
Co-authored-by: Rajesh Sitaraman <rajeshrd@amazon.com>

* Fix/session binding url (#1190)

* fix: session binding url

* fix: architecture

* fix: remove oauth callback service

* fix: docstrings

* fix: remove requirements.txt

* fix: remove cdk context

* fix: flow outbound auth flow diagram

* fix:session binding url

* style: format python files with ruff

* Replace Starter Toolkit with AgentCore CLI in README (#1196)

* feat: add Chrome enterprise policies and custom root CA tutorial for AgentCore Browser (#1220)

Add tutorial notebook demonstrating two new AgentCore Browser features:
- Chrome enterprise policies (managed/recommended) for URL filtering,
  download restrictions, and browser feature controls
- Custom root CA certificates via AWS Secrets Manager for connecting
  to internal services and SSL-intercepting proxies

Includes badssl.com demo for root CA using Code Interpreter.

Co-authored-by: Sundar Raghavan <sdraghav@amazon.com>

* Add use case: Integrate Claude Code with AgentCore Gateway MCP Server (#1225)

* Initial push of claude-code-with-mcp-server sample code

* Added tavily MCP Server

* Update 01-claude-code-with-mcp-server.ipynb

* Added details on how to list MCP Tools

* Update 01-claude-code-with-mcp-server.ipynb

* Semantic updates in wording

* Cosmetic Fixes

* Update 01-claude-code-with-mcp-server.ipynb

* Added Calude Code screenshots to show AgentCore Gateway connection

* Improved documentation of the notebook

* Added Solution Architecture

* Fixed post Gili code review

* Fixes after Gili Code Review Comments

* Code fixes after gili code Review Comments

* Fixes after Gili code review comments

* Update CONTRIBUTORS.md

* Create README.md

* Fixes in the code after ruff check run

* Fixes in the notebook code after ruff check run

* Fixed Security Scan Results bugs

* Update README.md

* Adding Getting Started sample (#1228)

* Adding getting started with AgentCore CLI example

* Adding getting started with AgentCore CLI example

* Adding getting started with AgentCore CLI example

* Groundtruth evaluations  (#1229)

* Add groundtruth-based evaluations tutorial

* updating README

* drop .py script, agent script is created at notebook runtime

* custom code based evaluators (#1231)

* custom code based evaluators

* feat: token exchange example with real setup with different client ids to authenticate calls to AgentCore Gateway and API Gateway (#1234)

* Feature/datadog llm observability tutorial (#1097)

* feat: Add Datadog observability integration for AgentCore Runtime

Original Datadog partner observability integration by jasonmimick-aws.
Includes notebook, requirements, .gitignore, and README updates.

Co-authored-by: jasonmimick-aws <jasonmimick@users.noreply.github.com>

* feat: Add Datadog LLM Observability notebook with OTLP export

Replace initial notebook with LLM Observability-focused tutorial.
Uses OpenTelemetry OTLP export directly to Datadog (no Agent required).
Add llm-obs-example.png screenshot to shared images folder.

* chore: Flatten Datadog structure, fix paths, add kolaak to CONTRIBUTORS

- Remove llm-observability/ subfolder, move contents to Datadog/ root
- Fix notebook image paths for flattened directory structure
- Replace Datadog APM link with LLM Observability docs link
- Add kolaak to CONTRIBUTORS.md

---------

Signed-off-by: kolaak <kolaak@amazon.com>
Co-authored-by: jasonmimick-aws <jasonmimick@users.noreply.github.com>

* feat(01-tutorials): auth code flow examples agentcore gateway (#1250)

* Add memory for process tracking and analytics advanced pattern (#1094)

* Add memory for process tracking and analytics advanced pattern

* Update notebook: shows dynamic namespace querying, and dynamic code analysis

* Update notebook: add architecture diagram

* Move to 07-memory-for-hyper-personalisation, add cross-customer analytics notebook (Part 2)

* Rename notebooks with 01/02 prefix, add arch diagram to NB2, clear outputs

* Rename folder to 07-memory-for-personalisation-and-analytics

---------

Signed-off-by: Akarsha Sehwag <akshseh@amazon.de>
Co-authored-by: smathalikunnel <smathali@amazon.co.uk>
Co-authored-by: Akarsha Sehwag <akshseh@amazon.de>

* feat(01-tutorials): Adding Amazon Bedrock AgentCore Gateway - Amazon VPC Lattice egress samples (#1247)

* egress

* coming soon labs

* coming soon labs

* cleanup

* advanced

* changes

* removing hard coded regions - user prompted instead (#1251)

* removing hard coded regions - user prompted instead

* unicode

* ruff formating

* feat(02-usecases): Add Okta three-tier auth end-to-end demo with BedrockAgentCore Agent+AgentCore Gateway Interceptor+ Agent Runtime MCP Server (#1158)

* Add Okta three-tier auth end-to-end demo with Gateway + Agent Runtime

* Add Authorization Code grant flow for user auth and group-based RBAC enforcement to MCP Server

---------

Co-authored-by: Mallik Panchumarthy <mpanchum@amazon.com>
Co-authored-by: Velamuri <kvelamu@amazon.com>

* feat(02-usecases): Add Database Read-Only User and Update to Next.js (#1206)

* Amazon Bedrock AgentCore Deployment with CDK

* Amazon Bedrock AgentCore Deployment with CDK

* Amazon Bedrock AgentCore Deployment with CDK

* Amazon Bedrock AgentCore Deployment with CDK

* Amazon Bedrock AgentCore Deployment with CDK

* Amazon Bedrock AgentCore Deployment with CDK

* Amazon Bedrock AgentCore Deployment with CDK

* Amazon Bedrock AgentCore Deployment with CDK

* Fix front-end model call IAM permissions for charts

* Add Database Read-Only User and Update to Next.js

* Add Database Read-Only User and Update to Next.js

* Update pnpm

* Update pnpm

---------

Co-authored-by: Uriel Ramirez <beralfon@amazon.com>

* Using AgentCore Identity for OAuth token management for a self-hosted agent. (#1255)

* Adding a tutorial for self hosted agent oauth managed by Agentcore Identity

Using AgentCore Identity for OAuth token management for a self-hosted agent.

* updated contributors.md

* feat: add Browser OS-level Actions tutorial (14-BROWSER-OS-ACTIONS) (#1259)

* feat: add Browser OS-level Actions tutorial (14-BROWSER-OS-ACTIONS)

Signed-off-by: Cristiano Scandura <scandura@amazon.com>

* fix: update sample notebookwith browser os actions using boto3

Signed-off-by: Cristiano Scandura <scandura@amazon.com>

* fix: cleaned unused imports

Signed-off-by: Cristiano Scandura <scandura@amazon.com>

* fix: cleaned unused imports

Signed-off-by: Cristiano Scandura <scandura@amazon.com>

* fix: ruff clean

Signed-off-by: Cristiano Scandura <scandura@amazon.com>

---------

Signed-off-by: Cristiano Scandura <scandura@amazon.com>

* Main folder for Agent Registry assets (#1288)

* fix: correct actorId usage and namespace resolution in travel booking agent (#896)

* fix: address reviewer feedback from @akshseh on PR #896

- Replace create_memory_and_wait + exception handling with create_or_get_memory
  (SDK handles idempotency, no manual exception handling needed)
- Remove 'Ask max two questions per turn' from flight, hotel, and orchestrator
  system prompts (not needed for demo use case)

* fix: resolve notebook issues found during testing

- Fix REGION -> region variable name in memory creation cell
- Remove duplicate imports between cell_8 and cell_9
- Fix cell_11: use consistent user_actor_id='user-001' for both flight
  and hotel agents (core PR fix - actorId represents user, not agent)

* fix: use separate sub-namespaces per agent while sharing actorId

- flight agent: travel/{actorId}/flight/preferences/
- hotel agent:  travel/{actorId}/hotel/preferences/

Same user_actor_id ensures memory persists across sessions.
Separate sub-namespaces ensure flight and hotel preferences don't mix.

* fix: use single shared namespace matching strategy pattern

Both agents use travel/{actorId}/preferences/ - matches the memory
strategy namespace so extracted preferences are actually retrievable.
Semantic search differentiates flight vs hotel preferences.

Tested: preferences (Iberia, economy, morning) correctly persisted
and recalled by new agent instance in a fresh session.

* Add Registry end-to-end tutorial: Admin Setup & IAM Governance Guide (#1290)

* Add Registry end-to-end tutorial: Admin Setup & IAM Governance Guide

- Getting started notebook with full registry lifecycle (create, IAM personas, records, governance tests, search, cleanup)
- Covers MCP, A2A, and CUSTOM record types with manual approval workflow
- Requires boto3 >= 1.42.87
- Includes architecture diagram

* Update architecture diagram with latest version

* Fix the import and add runtime deployment instrcutions

---------

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Nadhya Polanco <65464569+nadhya-p@users.noreply.github.com>
Signed-off-by: Joachim Aumann <aumannjoachim@gmail.com>
Signed-off-by: fllaneza <44783676+fllaneza@users.noreply.github.com>
Signed-off-by: Hardik Thakkar <68253981+HardikThakkar94@users.noreply.github.com>
Signed-off-by: Lana Zhang <lanaz@amazon.com>
Signed-off-by: Akarsha Sehwag <akshseh@amazon.de>
Signed-off-by: Rajesh Sitaraman <rajesh.sitaraman@outlook.com>
Signed-off-by: kolaak <kolaak@amazon.com>
Signed-off-by: Cristiano Scandura <scandura@amazon.com>
Co-authored-by: Ganesh Thiyagarajan <ganeshtn@amazon.com>
Co-authored-by: Evandro Franco <33328919+evandrofranco@users.noreply.github.com>
Co-authored-by: Joshua Samuel <sauhsoj@amazon.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Antonio Rodriguez <42835728+rodzanto@users.noreply.github.com>
Co-authored-by: Abhimanyu Siwach <128322948+siwachabhi@users.noreply.github.com>
Co-authored-by: Abhimanyu Siwach <siwabhi@amazon.com>
Co-authored-by: Roberto Catalano <catalanoroberto2@gmail.com>
Co-authored-by: Anthony Bernabeu <bernabeu.anthony@gmail.com>
Co-authored-by: brnaba-aws <brnaba@amazon.com>
Co-authored-by: afarntrog <47332252+afarntrog@users.noreply.github.com>
Co-authored-by: Jerad <71716360+jcengebreth@users.noreply.github.com>
Co-authored-by: Jerad Engebreth <awsjerad@amazon.com>
Co-authored-by: Bhuvan Chowdary Annamreddi <140741942+baannamr-aws@users.noreply.github.com>
Co-authored-by: jsbeardaws <jsbeard@amazon.com>
Co-authored-by: Neha Thakur <91389359+nehabthakur@users.noreply.github.com>
Co-authored-by: nehatb <nehatb@amazon.com>
Co-authored-by: rajjainl <rajjainl@amazon.com>
Co-authored-by: sierrabravo98 <73124400+sierrabravo98@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Daniel Lopes <almeidalopes@gmail.com>
Co-authored-by: Ramprasath S <ramprasathsee@gmail.com>
Co-authored-by: ramprasaths <rampsee@amazon.com>
Co-authored-by: AndyHall <314801+hllaah@users.noreply.github.com>
Co-authored-by: Andy Hall <hllaah@amazon.com>
Co-authored-by: Eashan Kaushik <50113394+EashanKaushik@users.noreply.github.com>
Co-authored-by: Robert Hoffmann <robert@its-hoffmann.net>
Co-authored-by: Robert Hoffmann <rho@amazon.de>
Co-authored-by: Nadhya Polanco <65464569+nadhya-p@users.noreply.github.com>
Co-authored-by: nadhyap <nadhyap@amazon.com>
Co-authored-by: Joachim Aumann <aumannjoachim@gmail.com>
Co-authored-by: Mizer <55321188+amizer12@users.noreply.github.com>
Co-authored-by: subhakl <subha.kalia4@gmail.com>
Co-authored-by: subhakl <subhakl@amazon.com>
Co-authored-by: fllaneza <44783676+fllaneza@users.noreply.github.com>
Co-authored-by: Amit Lulla <amit.lulla@gmail.com>
Co-authored-by: Arun Kumar Selvaraj <103064054+arunskum@users.noreply.github.com>
Co-authored-by: rohillasandeep <31911590+rohillasandeep@users.noreply.github.com>
Co-authored-by: name <alias@amazon.com>
Co-authored-by: Akarsha Sehwag <akshseh@amazon.de>
Co-authored-by: Julian Grüber <94227999+juliangrueber@users.noreply.github.com>
Co-authored-by: tnickl <tnickl@users.noreply.github.com>
Co-authored-by: satveerkhurpa <satveerkhurpa@users.noreply.github.com>
Co-authored-by: ensorw <ensorw@amazon.com>
Co-authored-by: Gan Luan <ganluannj@users.noreply.github.com>
Co-authored-by: awsjs <76132320+jamesschafer1982@users.noreply.github.com>
Co-authored-by: Anil Nadiminti <12433959+aniloncloud@users.noreply.github.com>
Co-authored-by: Anil Nadiminti <anilnadi@amazon.com>
Co-authored-by: giryoong-kim <gi.ryoong.kim@gmail.com>
Co-authored-by: Gi Kim <giryoong@amazon.com>
Co-authored-by: Sunita Koppar <skoppar@amazon.com>
Co-authored-by: brandh25 <100976280+brandh25@users.noreply.github.com>
Co-authored-by: Hardik Thakkar <68253981+HardikThakkar94@users.noreply.github.com>
Co-authored-by: HT <hardikvt@amazon.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Sebastian Bustillo <117386987+seabasshn@users.noreply.github.com>
Co-authored-by: Manuwai Korber <11172727+manuwaik@users.noreply.github.com>
Co-authored-by: Massimiliano Angelino <angmas@amazon.com>
Co-authored-by: Lana Zhang <lanaz@amazon.com>
Co-authored-by: Dumitru Pascu <3185740+dumip@users.noreply.github.com>
Co-authored-by: Zihang Huang <huanghang111@gmail.com>
Co-authored-by: Diego Brasil <109662331+di-brasil@users.noreply.github.com>
Co-authored-by: Jesse Turner <57651174+jesseturner21@users.noreply.github.com>
Co-authored-by: Rajesh Sitaraman <rajesh.sitaraman@outlook.com>
Co-authored-by: Rajesh Sitaraman <rajeshrd@amazon.com>
Co-authored-by: Gitika <53349492+notgitika@users.noreply.github.com>
Co-authored-by: Sundar Raghavan <101336114+sundargthb@users.noreply.github.com>
Co-authored-by: Sundar Raghavan <sdraghav@amazon.com>
Co-authored-by: Eitan Sela <eitan.sela@gmail.com>
Co-authored-by: Maira Ladeira Tanke <102240958+mttanke@users.noreply.github.com>
Co-authored-by: Bharathi Srinivasan <bhrsrini@amazon.com>
Co-authored-by: kolaak <kolaak@amazon.com>
Co-authored-by: jasonmimick-aws <jasonmimick@users.noreply.github.com>
Co-authored-by: smathalikunnel <sebastian.sunnym@gmail.com>
Co-authored-by: smathalikunnel <smathali@amazon.co.uk>
Co-authored-by: Mallik Panchumarthy <himallik@gmail.com>
Co-authored-by: Mallik Panchumarthy <mpanchum@amazon.com>
Co-authored-by: Velamuri <kvelamu@amazon.com>
Co-authored-by: Uriel Ramirez <aurbac@gmail.com>
Co-authored-by: Uriel Ramirez <beralfon@amazon.com>
Co-authored-by: Swara Gandhi <gandhi.swara@gmail.com>
Co-authored-by: Cristiano Scandura <53795829+scandura@users.noreply.github.com>
Co-authored-by: mchaitra <85197325+mchaitra007@users.noreply.github.com>
Co-authored-by: Amit Lulla <8913514+amit-lulla@users.noreply.github.com>
Co-authored-by: kollura <kollura@amazon.com>
2026-04-11 23:12:41 -07:00
SI 9cdd52bc5a Add aws agent registry MCP to Kiro using DCR (#1316)
* Add kiro-registry-dcr-auth0 advanced tutorial

* fix ruff errrors

* fix: make registry_id a required param, remove unused REGISTRY_ID global

* ruff format done

---------

Co-authored-by: sanaiqbalw <sanaiqbalw@users.noreply.github.com>
2026-04-11 19:24:51 -07:00
Vinod Singh b02858b247 Registry synchronize mcpserver new update 04/10 PM time (#1314)
* registry-synchronize-mcpserver

done !

* updated image size and added Registry Admin permissions

* updated formating of json

* one more formatting correction

* reduce image size, added README and requirement.txt

* removed outputs

* rendered image to 80% in notebook and looks better now

---------

Co-authored-by: Vinod Singh <singwvin@amazon.com>
2026-04-11 17:36:10 -07:00
AnantMurarka 6044993e5c Feature/kiro publisher workflow (#1319)
* Kiro power for AWS Agent Registry Publisher Workflow

* Added sample prompts and updated contributors list

* Added hyperlink for kiro power on Github

* Added kiro powers doc link in the overview section

---------

Co-authored-by: Anant Murarka <anantmu@amazon.com>
2026-04-11 13:48:24 -07:00
Sindhura Palakodety 3d88343bc6 Pushing the AWS Agent Registry Getting Started step-by-step notebooks (#1315)
* Pushing the getting started step-by-step notebooks

* Adding contributors to CONTRIBUTORS.md

* fixed the issues highlighted by the code scanner

* more minor fixes

---------

Co-authored-by: name <alias@amazon.com>
2026-04-10 20:45:49 -07:00
Vinod Singh 46492241f5 registry-synchronize-mcpserver (#1304)
* registry-synchronize-mcpserver

* updated image size and added Registry Admin permissions

* updated formating of json

* one more formatting correction

---------

Co-authored-by: Vinod Singh <singwvin@amazon.com>
2026-04-10 09:49:29 -07:00
goku 65664ffad5 Add city parameter to weather tool (#1303) 2026-04-10 12:35:40 -04:00
Kamal Manchanda fddfadbd58 Checking in Admin Approval Workflow (#1301) 2026-04-10 09:10:58 -07:00
sg-nitd 7e6287ca4a Add Agent Registry tutorial: Discovery and invocation at runtime (#1298)
* Add Agent Registry tutorial: Discovery and invocation at runtime

* Add contributors: Shubham Gupta and Vibhu Pareek

* Fix lint failures and update icons

---------

Co-authored-by: Your Name <you@example.com>
2026-04-10 09:04:09 -07:00
Hardik Thakkar 3be0a2b748 Add CLI Samples (#1265)
* Fix wording typo in notebook about user consent flow

cosmetic update

Signed-off-by: Hardik Thakkar <68253981+HardikThakkar94@users.noreply.github.com>

* Add pyyaml to requirements.txt

Signed-off-by: Hardik Thakkar <68253981+HardikThakkar94@users.noreply.github.com>

* Add HardikThakkar94 to CONTRIBUTORS.md

Signed-off-by: Hardik Thakkar <68253981+HardikThakkar94@users.noreply.github.com>

* Updates to fix the Streamlit app access when running in sagemaker

Modified
- Requirements.txt (added dependencies)
- chatbot_app_cognito.py (added get_streamlit_url, for sagemaker access)
- runtime_with_strands_and_egress_3lo.ipynb (streamlit piece for access url, cosmetic updates)

* Fixing Ruff errors reported by python-lint

* removing Ruff errors from python-lint

* passing 3.7 as the model for workshop

* Docs: add prerequisites (OpenAI or Azure OpenAI) cell to Outbound Auth notebook

* Revert "Docs: add prerequisites (OpenAI or Azure OpenAI) cell to Outbound Auth notebook"

This reverts commit 5dded4c38a.

* Add prerequisites (OpenAI or Azure OpenAI) cell to Outbound Auth notebook

* cosmetic fix

* Updating OpenAI URL

* Added instructions on the OAuth flow session binding and Streamlit functionality

* All imports are now properly organized at the top of the file, following Python best practices (PEP 8). The linting errors should now be resolved:
  -  runtime.py:18:1: E402 - Fixed
  -  runtime.py:19:1: E402 - Fixed
  -  runtime.py:19:20: F811 - Fixed
  -  runtime.py:25:1: E402 - Fixed

* formatting fixed

* Update Identity Outbound tutorial notebooks with corrections and improvements:
1. 05-Outbound_Auth_3lo notebook: Fixed credential provider name typo
2. 06-Outbound_Auth_Github notebook: Multiple improvements including:
    - Updated description text for GitHub-specific use case
    - Reorganized imports (moved to top of cell)
    - Added boto session and region setup
    - Reordered OAuth flow description
    - Restructured notebook sections (removed redundant policy section, added clearer status check and invoke sections)
    - Fixed credential provider name reference

* Fixed Identity Sections based on SageMaker (Workshop) to handle oauth2_callback_server and other cosmetic updates.

* Remove unused import and added permissions for 1st time model access for workshops

* formatting fixed.

* parameterize provider, update github image.

* added import boto3 and updated image for GitHub Session Binding

* Update Model and Remove Global Var

* Travel and Shopping concierge agents blueprints

* add missing contributors for the blueprint

* fix python-lint errors

* CodeQL fixes and config

* fix python-lint unused imports

* fix python-lint

* fix linter and cql issues

* run linter

* update codeql suppressions

* suppress codeql

* Revert accidental changes to 01-tutorials and 03-integrations

Remove files accidentally added to 01-tutorials and 03-integrations in previous commits.
These changes were not intended to be part of the blueprint additions.

Reverted files:
- 01-tutorials/03-AgentCore-identity/06-Outbound_Auth_Github/.dockerignore
- 01-tutorials/03-AgentCore-identity/06-Outbound_Auth_Github/Dockerfile
- 01-tutorials/03-AgentCore-identity/06-Outbound_Auth_Github/github_agent.py
- 03-integrations/IDP-examples/EntraID/.agentcore.json
- 03-integrations/IDP-examples/EntraID/.dockerignore
- 03-integrations/IDP-examples/EntraID/Dockerfile
- 03-integrations/IDP-examples/EntraID/strands_entraid_onenote.py

* fix formatting

* Update 05-blueprints/shopping-concierge-agent/tests/utils.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Hardik Thakkar <68253981+HardikThakkar94@users.noreply.github.com>

* removed tests folders.

* remove info logging

* remove logging

* codeql suppressions

* Update server.py

# codeql[py/clear-text-logging-sensitive-data] Debug logging for certificate verification - logs metadata only, not private key content

Signed-off-by: Hardik Thakkar <68253981+HardikThakkar94@users.noreply.github.com>

* Updating .gitignore and adding lib folder required for the shopping and travel concierge agents

* Add Demo video for agents

* Update demo section in README.md

Signed-off-by: Hardik Thakkar <68253981+HardikThakkar94@users.noreply.github.com>

* Add Demo's as Gif, update LFS and add note in ReadMe

* remove the .mp4 files as they are not supported

* change to google products and remove travel specific

* update product link

* fix url in shopping list and purchases

* remove amazon

* Add Visa B2B Use Case

* fix pylint

* CodeQL Fixes

* Consolidating IDP examples under tutorials for better organization

* feat(identity): add runtime inbound and outbound auth sample using AC CLI

* feat(identity): add gateway inbound and outbound auth sample using AC CLI

* feat(identity): add M2M and auth code flows sample using AC CLI

* fix(identity): fix invoke bearer token injection and add configure_inbound_auth script

* feat(identity): add CLI-based samples 09-11

Rewrites identity samples from Jupyter notebooks to agentcore
CLI format using Cognito as IdP.

09 - Runtime Inbound + Outbound Auth (JWT + API key)
10 - Gateway Inbound + Outbound Auth (JWT + MCP/OAuth2)
11 - M2M + Auth Code Flows (client creds + GitHub/Google 3LO)

Key details:
- configure_inbound_auth.py applies post-deploy steps the CLI
  skips: JWT auth, IAM policies, KMS token vault access,
  workload identity callback URLs, credential recreation
- setup_mcp_server.py deploys a Lambda MCP test server
- NonBlockingPoller lets 3LO consent URL reach the user
- oauth2_callback_server.py aligned with samples 05/06
- .gitignore excludes generated dirs and secrets

* fix(identity): fix SDK call in sample 06 notebook

Replace positional dict with keyword args in
create_oauth2_credential_provider to match current
SDK signature.

* fix(identity): show 3LO callback URLs always

Fetch and print AgentCore Identity callback URL
even when providers already exist, so users know
what to register in GitHub/Google app settings.

* fix(identity): strip markdown from consent URLs

Exclude asterisks from URL regex so LLM markdown
bold formatting does not corrupt the consent URL.

* feat(identity): update for CLI preview.9.0

- Use --authorizer-type on agentcore add agent
- Use agentcore add gateway-target (sample 10)
- Remove configure_inbound_auth.py (sample 09)
- Simplify post-deploy scripts (samples 10, 11)
- Fix --client-id flag names in sample 10 docs

* fix(identity): use real APIs in agent code

- Sample 09: call wttr.in for real weather data
- Sample 10: fix Cognito domain + scopes for gateway
- Sample 11: show real M2M token claims + API call

* feat(identity): add Streamlit UIs

- Login screen + dashboard for samples 09-11
- Token paste field for auth testing (10)
- 3LO consent handling with callback (11)
- Fix gateway tool names (MyTools___ prefix)
- Fix Cognito OAuth reset on CDK deploy

* fix(identity): update for CLI 0.4.0

- `agentcore add identity` → `agentcore add credential`
- `agentcore remove identity` → `agentcore remove credential`

* fix(identity): add aws-targets.json setup step

Users hit 'Target not found' because agentcore create
generates an empty aws-targets.json. Added step to all
3 READMEs showing how to populate it.

* fix(identity): use Google Weather API

Replace fake weather calls with real Google Maps
Weather API. API key from AgentCore Identity is
now used for actual authentication.

* fix(identity): use deployed-state.json

CLI 0.4.0 changed agentcore status --json output
format, breaking ARN resolution in invoke.py and
streamlit apps. Reading deployed-state.json directly
works across all CLI versions.

- invoke.py (09, 10, 11): read runtimeArn from
  deployed-state.json instead of parsing status
- configure_inbound_auth.py (10, 11): read runtimeId
  from deployed-state.json
- streamlit_app.py (09, 10, 11): same fix for
  resolve_agent_arn and resolve_gateway_url
- Removed subprocess/re imports where no longer needed

* fix(identity): remove Next Steps sections

Links pointed to samples that don't exist yet
(EntraID, Okta) or were circular references.

* fix(identity): use OpenWeatherMap API

Switch from Google Weather to OpenWeatherMap.
Free tier, no billing required.

* fix(identity): recursive ARN search

Use recursive JSON search for runtimeArn/runtimeId
in deployed-state.json. Works regardless of nesting
structure across CLI 0.3.x and 0.4.x.

* docs(identity): add Streamlit UI section

Add optional Streamlit instructions to all 3
README files (samples 09, 10, 11).

* fix(identity): persist bearer token field

Token field cleared on rerun because Streamlit
key overrides value param. Pre-fill via session
state on login instead.

* fix(identity): simplify gateway target step

MCP server is public, no OAuth needed. Remove
confusing outbound auth flags and outdated JSON
example from sample 10 README.

* fix(identity): use OpenWeatherMap for M2M

Replace fake internal API with real OpenWeatherMap
call in sample 11 M2M flow. Users can reuse the
same API key from sample 09.

* fix(identity): reorder sample 11 steps

Move project creation before credential setup
so CLI commands work. Renumber steps 3-10.

* fix(identity): sample 11 M2M uses real API

- Fetch OpenWeatherMap key via @requires_api_key
- M2M token + API key working together
- Fix invoke.py prompt to match new tool
- Tested end-to-end: real weather data returned

* docs(identity): link sample 09 from sample 11

Add clear instructions for OpenWeatherMap key
with link to sample 09 for users who skip ahead.

* docs(identity): add GitHub/Google OAuth setup steps

Add detailed instructions for creating GitHub OAuth
App and Google OAuth credentials in sample 11 README.
Steps taken from existing samples 05 and 06 notebooks.

* docs(identity): add GitHub OAuth screenshot

Copy github_details.png from sample 06 to show
the OAuth App creation form in sample 11 README.

* feat(identity): renumber CLI samples 10-12

Upstream added 09-Outbound_Auth_Self_Hosted to main.
Shift our CLI samples to avoid conflict:
  09 → 10-runtime-inbound-outbound-auth
  10 → 11-gateway-inbound-outbound-auth
  11 → 12-m2m-3lo-runtime
Update all internal cross-references.

* fix(identity): update README links to 10/11/12

* docs(identity): unified sample table with Method column

Single table with all 12 samples. Method column shows
Notebook or CLI for each. No more legacy/recommended split.

* docs(identity): move table after Architecture section

Fix IDP examples type to Inbound + Outbound.

* fix(identity): resolve lint errors in samples 10-12

- Remove unused imports (asyncio, json, subprocess, time)
- Fix E402: move imports to top of file
- Fix F541: remove f-prefix from strings without placeholders

---------

Signed-off-by: Hardik Thakkar <68253981+HardikThakkar94@users.noreply.github.com>
Co-authored-by: HT <hardikvt@amazon.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-04-10 10:18:30 -04:00
Eashan Kaushik ff2d5664b9 feat(01-tutorials): VPC egress AgentCore Gateway samples (#1261)
* egress

* coming soon labs

* coming soon labs

* cleanup

* advanced

* changes

* end to end

* ecs eks fix
2026-04-10 09:53:08 -04:00
Ganesh Thiyagarajan 24a657b73b 3 Registry notebooks with IAM role changes (#1299)
* fix(notebooks): minor changes in the instructions

* Adding browser new features (profile, extensions and proxy) (#966)

* adding browser profile and firewall examples

* Fix browser samples and add domain filtering notebook

- Rename test_firewall.py to verify_domain_filtering.py
- Add verify_domain_filtering.ipynb notebook version
- Fix hhtp typo in SigV4 signing (both samples)
- Remove debug prints and unused imports
- Add BROWSER_ID env var validation with CFN export hint
- Replace httpbin.org with github.com (matches CFN AllowedDomains)
- Fix hardcoded S3 bucket name, add LocationConstraint
- Translate Portuguese comments/strings to English
- Remove unused strands-agents-tools from requirements.txt
- Remove commented-out code
- Add samples 09/10 to parent README

* Add sample 11: Browser with Squid proxy and S3 logging

- CFN template: VPC, Squid EC2 with basic auth, AgentCore Browser (VPC mode)
- Proxy credentials auto-generated in Secrets Manager
- Squid access logs synced to S3 every 5 minutes
- Browser security group locked to Squid:3128 only (no NAT)
- verify_proxy.py and .ipynb: start proxied session, verify IP matches Squid
- Parent README updated with sample 11 link

* adding / fixing features

* Fix browser execution role trust policy for CFN deployment

Add SourceAccount and SourceArn conditions to the browser execution
role trust policy in both CFN templates. Without these conditions,
the BrowserCustom CFN handler fails with HandlerInternalFailure.

Uses AWS::AccountId and wildcard region so it works in any account.

* adding extension / refactoring

* adding extension / refactoring

* finishing samples

* Clean up browser tool samples: remove local playwright install, fix lint and docs

- Remove 'playwright install chromium' from READMEs (remote browser, not local)
- Remove unnecessary f-string prefix in verify_domain_filtering.py
- Fix ASCII diagram alignment in proxy README
- Remove secret ARN from verify_proxy.py stdout
- Replace 'jupyter notebook' command with IDE-agnostic guidance

* fix: proxy auth bug + ruff lint/format across browser tutorials

11-browser-with-proxy:
- Fix htpasswd parsing passwords starting with '-' as flags (use stdin)
- Use ExcludePunctuation for secret generation instead of partial char list
- Use session.client() consistently, remove secret ARN printing
- Clear notebook outputs

09/10/12 + helpers:
- Fix ruff lint errors (unused import re, f-string without placeholders)
- Apply ruff formatting (line wrapping, quote consistency)
- Clear notebook outputs (12 had leaked AWS credentials)
- Update kernel metadata

* fix: install cronie on AL2023 for squid log sync cron job

* fix: browser tutorials cross-region bucket naming, deploy.sh region, and boto3 version pin

- Profiles & Extensions notebooks: bucket name now includes region to prevent
  cross-region S3 collisions when running demos in different regions
- deploy.sh: use AWS_DEFAULT_REGION/aws configure instead of hardcoded us-east-1
- Proxy requirements.txt: pin boto3>=1.42.47 (proxyConfiguration support)

---------

Co-authored-by: Joshua Samuel <sauhsoj@amazon.com>

* chore(deps): bump jsonpath (#972)

Bumps [jsonpath](https://github.com/dchester/jsonpath) from 1.1.1 to 1.2.1.
- [Commits](https://github.com/dchester/jsonpath/commits/1.2.1)

---
updated-dependencies:
- dependency-name: jsonpath
  dependency-version: 1.2.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Adding tutorial example for Gateway integration with IDE and tool - VS Code - Agentcore Gateway - Confluence (#790)

* Updating Policy tutorial for FGAC

* Updating Policy tutorial for FGAC

* Updating Policy tutorial for FGAC

* Updating Policy turorial for FGAC

* Adding IDE Gateway integration example

* Fixing python-lint issues

* Fixing python-lint issues

* Fixing python-lint issues

* Adjusting proxy Lambda with commented lines

* Updated readme

* Updating README

* fix: include account ID in Cognito domain prefix to ensure global uniqueness (#979)

The Cognito domain prefix previously used only appName and region,
which could cause collisions across AWS accounts deploying the same
stack. Adding the account ID guarantees uniqueness.

Co-authored-by: Abhimanyu Siwach <siwabhi@amazon.com>

* feat: add auto-register Bedrock Knowledge Bases on AgentCore Gateway tutorial (#980)

* added full example of enterprise mcp platform with policy engine mcp … (#982)

* added full example of enterprise mcp platform with policy engine mcp server filtering based on user_tag, guardrail for PII data

* fixed linting

* fixed linting

* fixing lint

* fixing lint

* fixinf ruff

* FIXING RUFF

* fixing ruff

---------

Co-authored-by: brnaba-aws <brnaba@amazon.com>

* update evals package name (#985)

* update evals package name

* update evals package name

* Fix/add missing infrastructure files due to .gitignore (#942)

* feat: add missing CDK infrastructure files for knowledge-base-rag-agent

- Add all CDK stack files (api, cognito, storage, web-console, etc.)
- Add CDK constructs and utilities
- Fix web console S3 content-type bug with single BucketDeployment
- Add @aws-lambda-powertools/logger dependency for Lambda bundling
- Enable esbuild-based Lambda bundling (no Docker required)

This completes the knowledge-base-rag-agent infrastructure that was missing from the original PR.

* fix: add missing infrastructure files for knowledge-base-rag-agent

- Add exception to root .gitignore for knowledge-base-rag-agent/infrastructure/lib/
- This allows the critical CDK stack definitions and constructs to be tracked
- Without these files, developers cannot deploy the infrastructure
- Fixes the incomplete PR #923 that was missing the entire lib/ directory

The missing files include:
- 6 CDK constructs (API proxy, CORS config, Lambda utilities, etc.)
- 12 CDK stacks (API, Cognito, Database, Memory, Runtime, etc.)
- 1 utility file (NAG suppressions)

These are essential TypeScript source files, not build artifacts.

---------

Co-authored-by: Jerad Engebreth <awsjerad@amazon.com>

* AgentCore gateway - SQL injection prevention (#989)

* Add prompt injection prevention tutorial

* Updated Lambda

* SQL changes

* Lambda changes

* SQL naming changes

* fixes

* Added read me and minor changes

* Update service names

* fixes

* remove outputs

* fixes-1

* lambda lint

---------

Co-authored-by: jsbeardaws <jsbeard@amazon.com>

* docs: improve prerequisites for customer-support-agent-with-agentcore (#1008)

Expand the Prerequisites section with inline guidance for AWS CLI version
requirements, IAM permissions, and Bedrock model access — addressing
common first-time setup failures.

README.md:
- Add tip that deploy.sh runs pre-flight checks for all prerequisites
- Specify AWS CLI v2.32.0+ requirement (needed for `aws login`)
- Add step-by-step AWS credentials and permissions guidance
- Recommend AdministratorAccess + SignInLocalDevelopmentAccess policies
- Add Anthropic model access section (one-time usage form, not the
  retired Model Access page — Bedrock auto-enables since Oct 2025)
- Note CDK and AgentCore CLI are auto-installed by deploy.sh
- Add troubleshooting entry for `aws login` version error

scripts/deploy.sh:
- Add AWS CLI version check (warns if below v2.32.0)
- Add Bedrock model access check for Claude Sonnet 4.5
- Improve credential error message to reference `aws login`

Co-authored-by: Abhimanyu Siwach <siwabhi@amazon.com>

* adding session lifecycle info (#1014)

* fix: add npm cache preflight check and fix agentcore CLI commands in deploy.sh and README (#1015)

- Add npm cache ownership check to deploy.sh pre-flight section. A previous
  `sudo npm install` leaves root-owned files that cause EACCES errors.
- Fix deploy.sh and README.md to use `uv run agentcore` instead of bare
  `agentcore`, since the CLI is installed in the project venv via uv sync.
- Update troubleshooting table with `uv run` guidance.

Co-authored-by: Abhimanyu Siwach <siwabhi@amazon.com>

* fix: add botocore[crt] dependency for aws login credential provider (#1016)

The README instructs users to authenticate via `aws login`, which uses
the CRT-based credential provider. Without `awscrt` in the project venv,
any boto3 call (e.g., cognito-user.py) fails with MissingDependencyException.

Co-authored-by: Abhimanyu Siwach <siwabhi@amazon.com>

* fix: improve cognito-user.py UX for email and password handling (#1018)

* fix: improve cognito-user.py UX for email selection and password errors

- Replace free-text email input with numbered menu (1/2) to prevent
  users from entering emails that don't match backend mock data
- Show password requirements upfront before the password prompt
- Catch InvalidPasswordException and display friendly error message
  instead of a raw stacktrace

* style: apply ruff formatting

* fix: detect port 3000 collision before starting OAuth callback server

Check if port 3000 is available before attempting to bind. If in use,
exit with a clear error message and the command to free the port.

* fix: check port availability before opening browser in login flow

Move the port check to the start of do_login so it exits before
opening the browser or starting the callback server.

---------

Co-authored-by: Abhimanyu Siwach <siwabhi@amazon.com>

* docs: simplify console navigation for Policy Engine setup (#1020)

Co-authored-by: Abhimanyu Siwach <siwabhi@amazon.com>

* Replace Anthropic Claude references with Amazon Nova 2 Lite model (#1023)

* Replace Anthropic Claude references with Amazon Nova 2 Lite model
 

---------

Co-authored-by: nehatb <nehatb@amazon.com>

* Lifecycle Session Demos for Bedrock Agentcore runtime (#1026)

* feat(tutorials): Add inline session lifecycle demos to MCP server tutorials

Add inline session stop demonstrations and best practices sections to both
MCP server hosting tutorials. Updates include:

- Add inline session lifecycle demo after runtime launch
- Add Session Lifecycle Best Practices section before cleanup
- Update cleanup with security-validated ordering (credentials first)
- Make cleanup code active with proper try/except error handling

hosting_mcp_server.ipynb (OAuth):
- Inline demo is commented (OAuth doesn't support boto3 invoke)
- Cleanup order: Secrets → SSM → Runtime → ECR

hosting_mcp_server_iam_auth.ipynb (IAM):
- Inline demo is ACTIVE (IAM supports boto3 invoke)
- Demonstrates capturing runtimeSessionId and calling stop_runtime_session
- Cleanup order: SSM → Runtime → ECR

All changes follow security best practices to minimize credential exposure
windows during cleanup.

Requirements: 9.1, 9.2, 9.3, 9.4, 9.5, 6.2

* feat(tutorials): Add inline session lifecycle demos to MCP server tutorials

Add strategic session stop demonstrations throughout both MCP server tutorials
to teach proper session lifecycle management in context.

Changes:
- Add stop_runtime_session_oauth() helper function for OAuth bearer token auth
- Add Demo 1: Session stop immediately after runtime deployment
- Add Demo 2: Session stop between different test approaches
- Add Demo 3: Session stop after Boto3 testing (IAM notebook only)
- Update invoke_mcp_tools.py to include session stop with HTTP 200 response
- Add explanatory notes about expected 404 warning from MCP client cleanup
- Demonstrate mcpSessionId can be passed as header and used with stop_runtime_session
- Print HTTP status codes and Request IDs for all session stops

Verified:
- IAM auth: All session stops return HTTP 200 with Request IDs
- OAuth auth: Session stops work with bearer token via HTTP POST
- Single runtime successfully handles multiple sessions
- Runtime remains alive after stopping individual sessions

Requirements: 9.1, 9.2, 9.3, 9.4, 9.5

* feat(tutorials): Add inline session lifecycle demos to hosting-agent tutorials

Add strategic session stop demonstrations and lifecycle configuration to all
hosting-agent tutorials to teach proper session management in context.

Changes:
- Update billing language from 'GBHours' to 'vCPU and Memory based' costs
- Add inline session stop demos after agent invocations
- Add active lifecycle configuration demo with second runtime (300s timeout)
- Demonstrate stop_runtime_session with captured runtimeSessionId
- Update cleanup sections with try/except error handling
- Add Session Lifecycle Best Practices sections

Tutorials updated:
- 01-strands-with-bedrock-model/runtime_with_strands_and_bedrock_models.ipynb
- 02-langgraph-with-bedrock-model/runtime_with_langgraph_and_bedrock_models.ipynb
- 03-strands-with-openai-model/runtime_with_strands_and_openai_models.ipynb
- 04-crewai-with-bedrock-model/runtime-with-crewai-and-bedrock-models.ipynb

Verified:
- All notebooks demonstrate session stopping with boto3 invoke_agent_runtime
- Lifecycle configuration demos show shorter idle timeout (300s)
- Cleanup sections properly handle multiple runtimes
- Error-safe cleanup with individual try/except blocks

Requirements: 1.2, 6.1, 9.1, 9.2, 9.3, 9.4, 9.5

* refactor(tutorials): Simplify session lifecycle sections per reviewer feedback

Address reviewer feedback to remove confusing lifecycle configuration
references and simplify Best Practices sections.

Changes:
- Remove 'and show how to use a smaller lifecycle configuration' from inline demos
- Remove lifecycle configuration demo cells from hosting-agent notebooks
- Simplify Best Practices section to only 2 bullets (configure timeout, stop sessions)
- Remove confusing bullets about cleanup, deletion order, and minimum timeout

Updated notebooks:
- All 4 hosting-agent notebooks (strands-bedrock, langgraph, strands-openai, crewai)
- Both MCP server notebooks (OAuth and IAM)
- understanding-runtime-context notebook

Reviewer: @evandrofranco
PR: awslabs/amazon-bedrock-agentcore-samples#1026

* fix(tutorials): Restore lifecycle config demos with cleaned comments

Restore lifecycle configuration demo cells that were incorrectly removed.
The reviewer only asked to remove confusing comments, not the entire demo.

Changes:
- Restore lifecycle-config-demo markdown and code cells
- Keep the demo functionality (second runtime with 300s timeout)
- Remove only the confusing comments:
  - 'Using a shorter idle timeout for demonstration purposes'
  - 'A shorter idle timeout helps avoid undesired costs...'
- Keep all the actual demo code

This preserves the SPECIAL CASE requirement from tasks.md that these
notebooks should demonstrate active lifecycle configuration.

Updated: 4 hosting-agent notebooks

* fix(tutorials): Restore lifecycle demos and update Best Practices per reviewer

Complete implementation of reviewer feedback:

1. Removed confusing sentence from inline demo titles:
   - Changed 'Below we demonstrate stop_runtime_session and show how to use
     a smaller lifecycle configuration'
   - To: 'Below we demonstrate stop_runtime_session'

2. Removed confusing comments from lifecycle config demo code:
   - Removed 'Using a shorter idle timeout for demonstration purposes'
   - Removed 'A shorter idle timeout helps avoid undesired costs...'
   - Kept all actual demo code (second runtime with 300s timeout)

3. Simplified Best Practices section (all notebooks):
   - Reduced to 2 bullets: Configure idle timeout, Stop sessions when done
   - Removed 3 bullets about cleanup, deletion order, minimum timeout

Updated 6 notebooks:
- 4 hosting-agent notebooks (with lifecycle demos restored)
- 2 MCP server notebooks (Best Practices simplified)

Reviewer: @evandrofranco
PR: awslabs/amazon-bedrock-agentcore-samples#1026

* 03-integrations - Add Claude Agent SDK agentic patterns: subagents and hooks (#994)

* feat: add Claude Agent SDK orchestrator-workers pattern with subagents

Add new example demonstrating the Orchestrator-Workers agentic pattern
using Claude Agent SDK's native subagent support (AgentDefinition + Task tool)
deployed on Bedrock AgentCore Runtime.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* feat: add Claude Agent SDK hooks pattern for tool governance and audit

Add new example demonstrating PreToolUse and PostToolUse hooks for
blocking dangerous operations and audit logging. README covers
defense-in-depth story with AgentCore Policy for external tools.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* docs: add contributor name

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

* fix: upgrade to Sonnet 4.6 and fix cognito-user.py commands (#1027)

* fix: use uv run instead of python in cognito-user.py

The project uses uv for dependency management, so the script
should reference uv run consistently in its docstring and
user-facing output.

* feat: upgrade to Claude Sonnet 4.6 and improve deploy model check

- Update model ID from Sonnet 4.5 to Sonnet 4.6 global inference profile
- Replace passive model lifecycle check with actual invoke-model test in deploy.sh
- Show both possible failure reasons: Anthropic FTU form and IAM permissions

* fix: harden deploy.sh model check for edge cases

- Add timeout (10s) to prevent hanging on network issues
- Add cli-connect-timeout and cli-read-timeout for AWS CLI
- Chain mktemp into the if-condition to handle failures gracefully
- Clarify that the check tests deployer credentials, not the agent's
  execution role — a failure here may not affect the deployed agent
- Safe cleanup of temp file in all code paths

* fix: remove timeout command for macOS compatibility

timeout is a GNU coreutils command not available on macOS by default.
The AWS CLI's --cli-connect-timeout and --cli-read-timeout flags
provide sufficient timeout protection.

* docs: restructure prerequisites for clarity

- Move Clone the Repository to first step with git install instructions
- Separate auto-installed tools (CDK, AgentCore CLI) from manual prereqs
- Move IAM policies to a note after verify credentials
- Move aws login version requirement to AWS Credentials section
- Move deploy.sh tip to after tools table

* docs: add guidance on changing the model ID

* docs: remove redundant API form note

---------

Co-authored-by: Abhimanyu Siwach <siwabhi@amazon.com>

* docs: improve prerequisites clarity and deploy.sh error messages (#1029)

* docs: improve prerequisites clarity and deploy.sh error messages

- Restructure Clone the Repository into numbered steps
- Clarify Node.js install: install nvm first, then run command
- Improve deploy.sh node error message with nvm install link
- Remove auto-installed tools section (CDK, AgentCore CLI)
- Specify Sonnet 4.6 in model access steps
- Simplify tools table and credentials section

* docs: revert to Sonnet 4.5 default, add alternative model table

- Revert default model to Claude Sonnet 4.5 in load.py and deploy.sh
- Add alternative models table (Haiku 4.5, Sonnet 4.6) to README
- Update all Sonnet 4.6 references back to 4.5

* docs: soften git install wording

---------

Co-authored-by: Abhimanyu Siwach <siwabhi@amazon.com>

* updated notebook to reflect header propagation feature instead of interceptor (#971)

* updated notebook to reflect header propagation feature instead of interceptor

* Add README.md documentation

* docs: add Transaction Search prerequisite to observability section (#1031)

The observability section implied traces work out of the box, but
CloudWatch Transaction Search must be enabled first for span ingestion.
Add the one-time setup step before the trace inspection instructions.

Co-authored-by: Abhimanyu Siwach <siwabhi@amazon.com>

* feat(02-usecase): A2A Agent usecase (#1025)

* Add A2A Real Estate Multi-Agent Use Case

This contribution adds a complete A2A (Agent-to-Agent) real estate multi-agent system demonstrating:

- Multi-agent coordination using A2A protocol with OAuth authentication
- Property Search Agent (Strands-based) for searching properties
- Property Booking Agent (Strands-based) for managing bookings
- Coordinator Agent that orchestrates sub-agents via A2A protocol
- Automated Cognito setup for OAuth 2.0 authentication
- React-based UI with direct AgentCore integration
- Comprehensive deployment automation scripts
- End-to-end testing utilities

Key Features:
- OAuth bearer token management with Cognito
- Request header allowlist configuration for Authorization
- Automated agent deployment with agentcore CLI
- Token generation and refresh utilities
- Real-time chat interface for property search and booking

Architecture:
- Coordinator generates OAuth tokens from Cognito to call sub-agents
- Sub-agents validate tokens independently
- All agents deployed on Amazon Bedrock AgentCore Runtime
- UI connects directly to coordinator via A2A protocol

Documentation includes:
- Deployment guide with step-by-step instructions
- Project structure overview
- Demo instructions
- Quickstart guide
- Contributing guidelines

* Security improvements and bug fixes

- Added comprehensive .gitignore for sensitive files and scan results
- Fixed security issues from GitHub Advanced Security scan
- Implemented short-term memory (STM_ONLY) for conversation context
- Fixed session ID bug in UI for persistent conversations
- Removed unused fix_iam_permissions.py with hardcoded ARNs
- Deleted sensitive files (bearer_token.json, cognito_config.json)
- Updated welcome message to 'Amazon Bedrock AgentCore'
- Fixed ESLint warnings in directApi.ts
- Improved security in deployment and server scripts
- All security scan findings addressed or documented as false positives

* Update documentation to sample application

* review comment fixes, cleanup unused files, update documentation

* Delete unused test_a2a_simple.py

* Fix ruff lint errors

* Remove clear-text logging of env vars and working directory

* ASH fixes

* Fix TypeScript hast type error from npm overrides

* Replace ASCII architecture diagram with architecture.png

* Migrate UI from CRA to Vite, redesign with light theme

---------

Co-authored-by: ramprasaths <rampsee@amazon.com>

* Added Tagging and CMK examples for PolicyEngine (#1039)

* Updated to include CMK and Tags

* Fixed issues

* Added required packages

* Added and fully tested ability to add tags and CMK to PolicyEngine

---------

Co-authored-by: Andy Hall <hllaah@amazon.com>

* fix(02-usecases): memory role and dependency changes (#1040)

* A2a (#1041)

* code changes

* changes

* fix(02-usecases): monitor agent fix (#1042)

* code changes

* changes

* error

* Fixing cdk stack with missing cdk lib folder and interceptor's lambda (#1036)

* added full example of enterprise mcp platform with policy engine mcp server filtering based on user_tag, guardrail for PII data

* fixed linting

* fixed linting

* fixing lint

* fixing lint

* fixinf ruff

* FIXING RUFF

* fixing ruff

* fixed stack
added missing lib files

* fixing ruff

* fixing ruff

---------

Co-authored-by: brnaba-aws <brnaba@amazon.com>

* Bump starter toolkit to 0.3.2 in customer support agent (#1048)

* Bump starter toolkit to 0.3.2 in customer support agent blueprint

Picks up improved error messages for auth failures during agent
invocation (friendly re-login guidance instead of raw tracebacks).

* Update uv.lock after uv sync with starter toolkit 0.3.2

---------

Co-authored-by: Abhimanyu Siwach <siwabhi@amazon.com>

* feat: Add AgentCore Gateway with EntraID 3LO authentication example (#1044)

* feat: Add AgentCore Gateway with EntraID 3LO authentication example

CDK-based example demonstrating AgentCore MCP Gateway with:
- EntraID inbound JWT authentication (CIAM and standard tenants)
- Outbound 3LO (three-legged OAuth) for user-delegated API access
- Browser-based auth onboarding SPA for pre-authorizing access
- Response interceptor for VS Code MCP client compatibility
- Automated setup script for EntraID app registrations + AWS deployment

* fix: Address security scanner findings from PR #1044

- Fix ruff F541: remove extraneous f-prefix from strings without placeholders
- Fix bandit B310 / semgrep dynamic-urllib: validate URL scheme is https://
  before calling urlopen, add nosec comments for audited calls
- Fix detect-secrets: add pragma allowlist comments for false positives on
  password generation and secret extraction (no actual secrets in code)
- Fix checkov CKV_OPENAPI_4: add global security field to OpenAPI spec

---------

Co-authored-by: Robert Hoffmann <rho@amazon.de>

* Async agent tutorial (#1009)

* adding async example

* uploading to s3 properly

* fixed chart formatting

* adding Dockerfile to gitignore and cleaning up ECR delete

* adding name to contributors list

* addressing git comments

* addressing comments

* moving files to folder

---------

Signed-off-by: Nadhya Polanco <65464569+nadhya-p@users.noreply.github.com>
Co-authored-by: nadhyap <nadhyap@amazon.com>

* fix(02-usecases): The MCP server must bind to 0.0.0.0 to allow the gateway to connect (#1022)

The MCP server must bind to 0.0.0.0 to allow the gateway to connect

Signed-off-by: Joachim Aumann <aumannjoachim@gmail.com>

* fix(02-usecases): Update FastMCP host address to 0.0.0.0 (#1024)

* Update FastMCP host address to 0.0.0.0

Change the host address for FastMCP from 127.0.0.1 to 0.0.0.0 to allow external connections.

Signed-off-by: Joachim Aumann <aumannjoachim@gmail.com>

* fixed deployment bug of hello world containter

---------

Signed-off-by: Joachim Aumann <aumannjoachim@gmail.com>

* fix(05-blueprints): Pin chardet < 6.0.0 in customer support agent (#1051)

chardet 6.x introduced breaking changes. Pin to >= 3.0.2, < 6.0.0
to ensure compatibility. Also adds missing src/__init__.py.

Co-authored-by: Abhimanyu Siwach <siwabhi@amazon.com>

* Multitenant platform demo (#859)

* Multitenant platform demo

* linting fixes

* fix(multitenant-agentic-platform): Improve security and configuration flexibility

- Fix typo in README ("cusotm" → "custom")
- Replace hardcoded AWS region with environment variable support in main.py
- Refactor calculator tool to use AST-based safe evaluation instead of regex validation
- Add support for unary operators and improve operator/function/constant whitelisting
- Update database-query tool to use environment variables for RDS configuration
- Add AWS_REGION environment variable support to email-sender tool
- Update deploy.sh with improved deployment configuration handling
- Enhance frontend index.html with better error handling and user feedback
- Improves security posture by eliminating eval() usage and hardcoded credentials
- Enables flexible multi-region deployments through environment configuration

* fix(multitenant-agentic-platform): Remove redundant agent runtime ID validation

- Remove unnecessary validation check for agent_runtime_id in delete_agent handler
- Simplify error handling flow by eliminating duplicate validation logic
- Agent runtime ID is already validated in prior steps, making this check redundant

* docs(multitenant-agentic-platform): Add security considerations and warnings

- Add comprehensive Security Considerations section to README documenting API key exposure risks
- Document suitable use cases (demos, development, internal tools) and production recommendations
- Add security warnings to config_injector Lambda handler with alternative authentication approaches
- Update deployment documentation with security notes about client-side API key embedding
- Pass account_id and region parameters to DatabaseConstruct and MessagingConstruct for improved configuration
- Add security reminders in frontend development section referencing production deployment guidance
- Clarify that current implementation is suitable for demos and internal use only, not production

* fix(multitenant-agentic-platform): Add API key headers to frontend requests and improve security documentation

- Add 'x-api-key' header to all axios requests in frontend (delete, post, get operations)
- Update README security note to emphasize not embedding long-lived credentials in public files
- Recommend authenticated callers (Cognito/IAM/JWT) or backend proxy/BFF for production
- Clarify config.js generation to exclude API Gateway keys from public configuration
- Fix deploy.sh region comment from us-west-2 to us-east-1
- Remove emoji from deploy.sh output for better compatibility
- Refactor query parameter and body parsing in async_deploy_agent handler for clarity
- Add environment variable definitions for DynamoDB table names in build_deploy_agent handler
- Ensure consistent API authentication across all frontend API calls for improved security

* docs(multitenant-agentic-platform): Remove security limitations section from README

- Remove detailed API key exposure warnings and limitations documentation
- Remove suitable use cases section for demonstration deployments
- Remove production recommendations for authentication mechanisms
- Simplify README by consolidating security guidance into main documentation

* fix(multitenant-agentic-platform): Enforce required environment variables and optimize DynamoDB queries

- Replace optional environment variable defaults with required configuration in build_deploy_agent handler
- Add validation to fail fast if AGENT_CONFIG_TABLE_NAME or AGENT_DETAILS_TABLE_NAME are not set
- Add AGGREGATION_TABLE_NAME validation in infrastructure_costs handler with clear error messaging
- Optimize DynamoDB scan operations to use server-side FilterExpression instead of client-side filtering
- Add ProjectionExpression to reduce data transfer and improve query performance in token_usage handler
- Use ExpressionAttributeNames to handle reserved words (timestamp) in DynamoDB queries
- Improve configuration reliability by ensuring all Lambda functions have required environment variables set before execution

* fix(multitenant-agentic-platform): Remove unused import from token usage handler

- Remove unused boto3.dynamodb.conditions Attr import
- Simplify handler.py by eliminating unnecessary dependency
- Reduce code clutter and improve maintainability

* fix(multitenant-agentic-platform): Update agent template naming and enhance token limit validation

- Rename base-agent.py to main.py in agent-tools-repo templates for consistency
- Update documentation references to reflect new template filename
- Add Attr import from boto3.dynamodb.conditions for improved query filtering
- Enhance check_token_limit function with configurable fail-closed behavior via FAIL_CLOSED environment variable
- Add get_tenant_id_from_agent function to look up tenant ID from agent details table, preventing token limit bypass
- Improve error handling in token limit checks with detailed logging for fail-closed vs fail-open modes
- Add documentation notes explaining fail-open default behavior and fail-closed option

* Update guardrails memory sample notebook (#995)

* feat: Update guardrails memory sample notebook

* chore: Clear execution counts and outputs from notebook

* sample update(memory): Simplify memory integration using AgentCoreMemorySessionManager

Replace custom MemoryHookProvider implementation with built-in
AgentCoreMemorySessionManager. Key changes:
- Use AgentCoreMemoryConfig with AgentCoreMemorySessionManager
- Remove custom hook implementation (on_agent_initialized, on_message_added)
- Update documentation based on model usage in code from Claude 3.7 Sonnet to Claude Haiku 4.5
- Simplify session handling with automatic reinitialization
- Update documentation to reflect recommended approach

* fix(notebook): Configure memory mode and inject memory_id to prevent runtime failures

configure() defaults to memory_mode="NO_MEMORY", so the auto-created
execution role has no memory IAM permissions — causing ListMemoryEvents
failures at runtime. Additionally, the toolkit doesn't know about the
manually-created memory resource, so it provisions a duplicate on launch.

Fix: Set memory_mode="STM_ONLY" in configure() and inject the existing
memory_id into .bedrock_agentcore.yaml before launch(). Both issues only
exist because the tutorial manually creates resources that the toolkit
normally manages end-to-end.

* cleaned execution count

* Cleared cell outputs

---------

Co-authored-by: subhakl <subhakl@amazon.com>

* Correct role and content retrieval in message processing (#499)

Signed-off-by: fllaneza <44783676+fllaneza@users.noreply.github.com>

* Add Episodic Memory Strategy Tutorial (#855)

* feat: add episodic memory tutorial README

* feat: add code debugging assistant implementation

* feat: add architecture diagram

* docs: add episodic strategy to overview

* docs: add contributor

* fix: update episodic memory API for reflectionConfiguration

- Change reflectionNamespaces to reflectionConfiguration.namespaces
  (API structure changed in bedrock-agentcore SDK)
- Fix namespace validation: reflection namespace must be same as
  or prefix of episodic namespace
- Update get_namespaces() to read from new nested structure
- Add code-assistant.py standalone script version

* fix: move imports to top of file for linting compliance

- Consolidate all imports at module top (E402 fix)
- Remove unused List import from typing (F401 fix)
- Maintain alphabetical ordering of imports

* style: apply ruff formatting

* feat: Replace debugging use case with Meeting Notes Assistant

Changes based on reviewer feedback that debugging examples already exist
in the repository (debugging-agent and healthcare-assistant).

New implementation:
- Meeting Notes Assistant with episodic memory
- Tools: capture_action_item, identify_decision, summarize_discussion, track_followup
- Tracks decisions, action items, and participant preferences across meetings
- 6 test scenarios demonstrating meeting management patterns
- End-to-end tested with AWS Bedrock (all tools working)
- Security audit passed, linting verified

Files changed:
- Renamed: code-assistant.py → meeting-notes-assistant.py
- Renamed: code-assistant.ipynb → meeting-notes-assistant.ipynb
- Updated: README.md with meeting-specific documentation

This use case is unique and not duplicated in existing samples.

Addresses feedback from @akshseh in PR comment.

* refactor: move episodic tutorial to long-term-memory/strands-hooks folder

Address reviewer feedback:
- Move from 06-episodic-strategy/ to 02-long-term-memory/01-single-agent/using-strands-agent-hooks/meeting-notes-assistant-using-episodic/
- Update architecture diagram to match repo template style
- Update parent README table reference

* fix: update architecture diagram

* fix: address reviewer feedback from @akshseh

- Remove .gitignore (*.pptx entry not needed)
- Pin versions in requirements.txt (bedrock-agentcore>1.4, strands-agents>=0.1.0, boto3>=1.42.1)
- Convert cell_0 from code cell with docstring to markdown cell
- Add blank line after H2 heading in cell_5 to fix bullet formatting
- Fix event_expiry_days comment: clarify it is STM TTL, not for long-term episodic strategy
- Add reflection extraction timing note (~10-15 mins) in seed cell
- Format meeting-notes-assistant.py with black

* Update AgentCore Memory tutorials with new SDK patterns (#1003)

* feat(memory-tutorials): Enhance AgentCore Memory tutorials with SDK migration and advanced features

- Migrate from MemoryClient to MemorySessionManager and MemorySession
- Update from tuple-based messages to ConversationalMessage objects
- Add session-based operations eliminating repetitive parameters
- Implement conversation branching with fork_conversation()
- Add metadata tracking with StringValue and EventMetadataFilter
- Update all three notebooks: math-assistant, customer-support, customer-support-memory-manager
- Add comprehensive ENHANCEMENT_SUMMARY.md documenting all changes

This update showcases the full capabilities of AgentCore Memory including:
- Session management with MemorySessionManager
- Memory hooks for automatic storage/retrieval
- Conversation branching for alternative paths
- Metadata tagging for analytics and filtering
- Practical use cases for math tutoring and customer support

All notebooks tested and validated with syntax checks and feature verification.

* docs: Add arunskum to CONTRIBUTORS.md

* docs: Remove ENHANCEMENT_SUMMARY.md file

* feat(memory): Update AgentCore Memory tutorials with latest SDK patterns

- Migrate from MemoryClient to MemorySessionManager and MemorySession
- Replace tuple-based messages with ConversationalMessage objects
- Implement session-based operations (add_turns, search_long_term_memories)
- Add conversation branching with fork_conversation and list_branches
- Add metadata tracking with StringValue and EventMetadataFilter
- Update all three notebooks: math-assistant, customer-support, customer-support-memory-manager
- Fix imports: StringValue and EventMetadataFilter now from bedrock_agentcore.memory.models

These changes showcase the enhanced AgentCore Memory capabilities including:
- Session-based memory management for cleaner API
- Advanced retrieval with RetrievalConfig
- Conversation branching for alternative paths
- Metadata tagging and filtering for event tracking

* refactor(memory): Split customer support tutorial into built-in vs custom strategies

Deleted legacy MemoryClient notebook, renamed memory-manager to override-strategy, created new inbuilt-strategy notebook, added comparison sections to both

* fix(memory): Correct StringValue and Event attribute usage in notebooks

Fixed 3 issues identified by reviewer:

1. Changed StringValue() to StringValue.build() (30 occurrences)
   - Correct usage: StringValue.build('value')
   - Fixed in all metadata creation sections

2. Changed .event_id to .eventId (3 occurrences)
   - Correct attribute: event.eventId
   - Fixed in all branching sections

3. Validated changes with syntactic tests

Changes span 3 notebooks:
- customer-support-inbuilt-strategy.ipynb
- customer-support-override-strategy.ipynb
- math-assistant.ipynb

All fixes follow the pattern demonstrated in reviewer's successful test output.

* fix: Fix metadata_filter bug, migrate math-assistant to MemoryManager, remove test scripts

- Fix list_events() calls to use eventMetadata parameter instead of
  invalid metadata_filter in all 3 notebooks
- Migrate math-assistant from legacy MemoryClient to MemoryManager
- Switch math-assistant from CustomSemanticStrategy to built-in
  SemanticStrategy (no IAM execution role required)
- Remove CUSTOM_PROMPT cell and ROLE_ARN placeholder from math-assistant
- Remove test scripts, migration scripts, and cleanup utilities

* fix: Update config and runtime MCP agent code for SRE workshop lab 04 (#1055)

* Update config and runtime MCP agent code for SRE workshop lab 04

* Fix ruff lint errors: remove unused imports and f-string prefixes

---------

Co-authored-by: name <alias@amazon.com>

* Feat/databricks per user delegation (#1058)

* feat: Agent & Gateway Registry blueprint

A platform for managing AI agents and MCP tools across an organization.

- Registry: CRUD for agents (A2A, MCP, Agent-as-Tool protocols)
- Gateway management: overview, tools, clients & access, Cedar policies
- Tool composition via Cedar permit-only policies
- Agent discovery API for agent-to-agent communication
- Multi-IdP support (Cognito/EntraID auto-detected)
- AgentCore Identity for agent workload auth
- One-click deploy: CloudFormation + App Runner + DynamoDB

* feat: Databricks per-user delegation via Gateway interceptor + RFC 8693

* feat(memory): add memory streaming tutorial (#1064)

* Add ECS Fargate 3LO tutorial (#1005)

* Add ECS Fargate 3LO tutorial

Fixes #<issue-number>

Co-authored-by: tnickl <tnickl@users.noreply.github.com>
Co-authored-by: satveerkhurpa <satveerkhurpa@users.noreply.github.com>

* fix: scanning results

* feat: WAF integration
Co-authored-by: tnickl <tnickl@users.noreply.github.com>

* docs: inbound & outbound auth
Co-authored-by: tnickl <tnickl@users.noreply.github.com>

---------

Co-authored-by: tnickl <tnickl@users.noreply.github.com>
Co-authored-by: satveerkhurpa <satveerkhurpa@users.noreply.github.com>

* Add async data analysis agent tutorial (#1059)

- Move async data analysis files to 02_async_data_analysis subfolder
- Fix semgrep issue: add __name__ guard to app.run()
- Add contributors from original PR #857

Co-authored-by: Gan Luan <ganluannj@users.noreply.github.com>

* feat: add Auth0 multi-agent RFC 8693 token exchange sample (#1071)

Adds a production-grade reference implementation demonstrating RFC 8693
Token Exchange in a multi-agent system on AWS Bedrock AgentCore Runtime.

The coordinator agent exchanges the user's Auth0 JWT for attenuated,
least-privilege tokens before invoking each sub-agent — implementing
scope attenuation across a 3-agent financial services system.

Key features:
- OAuth 2.0 PKCE login flow via Auth0
- RFC 8693 Token Exchange with per-agent scope policies
- 3 agents: coordinator, customer_profile, accounts
- Streamlit web UI with JWT viewer and API call log
- AWS Secrets Manager integration
- OpenTelemetry observability
- Shell script and CDK deployment options
- Unit test suite

* Add AgentCore Policy integration for healthcare appointment agent (#1028)

* Updated reference code to match Policy for AgentCore blog sample

* fix: address scan findings, lint, and security improvements

Scan findings (HIGH):
- README.md: Add Introduction, Prerequisites, Cost Warning, Conclusion,
  Complete Cleanup sections; fix multi-action step; use full AWS service names
- setup_cognito_claims.py: Use full AWS service names; remove possessive form
- setup_policy.py: Fix incorrect docstring hours (8-17 → 9 AM-9 PM UTC)
- test_policy.py: Replace forbidden term 'execute' with 'run'
- patient.json: Rename 'Richard Doe' to approved fictitious name 'Jane Doe'

Security:
- Use HTTP Basic Auth for OAuth token requests (RFC 6749)
- Implement AWS Secrets Manager for client secret retrieval with
  auto-caching fallback to Amazon Cognito API
- Validate subprocess script path before execution

Code quality:
- Remove fragile DENIAL_PHRASES list; use deterministic tool visibility
  checks and gateway policy denial detection instead
- Fix all ruff check errors (F401, F541, F841)
- Apply ruff format to all changed Python files
- Updated test_output.txt with clean end-to-end run

---------

Co-authored-by: Anil Nadiminti <anilnadi@amazon.com>

* Usecase/lakehouse agent enhance (#1006)

* temp

* Token exchange

* README.md

* Adding column-level access control

* Fixed S3 bucket creation outside us-east-1

* After dry-run testing

* Cleanup

* Rollback unnecessary change

* Rollback unnecessary change

* Rollback unnecessary change

* Added Architecture diagram and tested / fixed notebooks 01-03

* Fix aws path and invalid notebook for 06

* Securing the code

* Fixed the error - Error executing secure Athena query: Query failed: COLUMN_NOT_FOUND: Column 'adjuster_user_id' cannot be resolved or requester is not authorized

* Added scenarios, updated README and enhanced Architecture diagram to show latest changes

* Clarify deletion of Dynamodb table in the cleanup step

* Updated readme with scenario screenshots, added masking for PII for adjuster with wildcard exclude list

* Completed end to end testing for all scenarios

* Updated README and added Dockerfile to gitignore

* Updated README to remove Production Ready clause

* Fixed Pylint issues - f-string with no placeholders and empty except

---------

Co-authored-by: Gi Kim <giryoong@amazon.com>
Co-authored-by: Sunita Koppar <skoppar@amazon.com>

* fix(02-usecases): delete site reliability workshop (#1081)

* fix(tutorials): Fix missing imports, update_agent_runtime params, and asyncio.run in notebooks (#1086)

- Fix UpdateAgentRuntime calls to include required params (agentRuntimeArtifact,
  roleArn, networkConfiguration) using get_agent_runtime read-modify-write pattern
- Fix wrong entrypoint filenames in lifecycle demo cells (langgraph, openai, crewai)
- Fix wrong requirements_file path in crewai lifecycle demo cell
- Add missing imports (Session, os, Runtime, json, Markdown) in notebook cells
- Replace asyncio.run() with await in notebook cells (Jupyter compatibility)
- Add missing setup_cognito_user_pool import in hosting_mcp_server notebook
- Add ResourceNotFoundException comment in cleanup cells
- Add Test-Downloads/ to .gitignore

* chore: remove agent-gateway-registry blueprint (#1092)

* Add WebRTC voice agent sample with KVS TURN servers (#1096)

Minimal example demonstrating WebRTC audio streaming with AWS Nova Sonic
via KVS TURN servers, deployable to AgentCore Runtime.

- FastAPI agent with aiortc for WebRTC peer connections
- Nova Sonic bidirectional streaming for speech-to-speech
- Browser client supporting both local and AgentCore Runtime modes
- KVS signaling channel for TURN/STUN server credentials
- Audio resampling (16kHz input, 24kHz output) via PyAV

* Consolidating IDP examples under tutorials for better organization (#1112)

* Fix wording typo in notebook about user consent flow

cosmetic update

Signed-off-by: Hardik Thakkar <68253981+HardikThakkar94@users.noreply.github.com>

* Add pyyaml to requirements.txt

Signed-off-by: Hardik Thakkar <68253981+HardikThakkar94@users.noreply.github.com>

* Add HardikThakkar94 to CONTRIBUTORS.md

Signed-off-by: Hardik Thakkar <68253981+HardikThakkar94@users.noreply.github.com>

* Updates to fix the Streamlit app access when running in sagemaker

Modified
- Requirements.txt (added dependencies)
- chatbot_app_cognito.py (added get_streamlit_url, for sagemaker access)
- runtime_with_strands_and_egress_3lo.ipynb (streamlit piece for access url, cosmetic updates)

* Fixing Ruff errors reported by python-lint

* removing Ruff errors from python-lint

* passing 3.7 as the model for workshop

* Docs: add prerequisites (OpenAI or Azure OpenAI) cell to Outbound Auth notebook

* Revert "Docs: add prerequisites (OpenAI or Azure OpenAI) cell to Outbound Auth notebook"

This reverts commit 5dded4c38a.

* Add prerequisites (OpenAI or Azure OpenAI) cell to Outbound Auth notebook

* cosmetic fix

* Updating OpenAI URL

* Added instructions on the OAuth flow session binding and Streamlit functionality

* All imports are now properly organized at the top of the file, following Python best practices (PEP 8). The linting errors should now be resolved:
  -  runtime.py:18:1: E402 - Fixed
  -  runtime.py:19:1: E402 - Fixed
  -  runtime.py:19:20: F811 - Fixed
  -  runtime.py:25:1: E402 - Fixed

* formatting fixed

* Update Identity Outbound tutorial notebooks with corrections and improvements:
1. 05-Outbound_Auth_3lo notebook: Fixed credential provider name typo
2. 06-Outbound_Auth_Github notebook: Multiple improvements including:
    - Updated description text for GitHub-specific use case
    - Reorganized imports (moved to top of cell)
    - Added boto session and region setup
    - Reordered OAuth flow description
    - Restructured notebook sections (removed redundant policy section, added clearer status check and invoke sections)
    - Fixed credential provider name reference

* Fixed Identity Sections based on SageMaker (Workshop) to handle oauth2_callback_server and other cosmetic updates.

* Remove unused import and added permissions for 1st time model access for workshops

* formatting fixed.

* parameterize provider, update github image.

* added import boto3 and updated image for GitHub Session Binding

* Update Model and Remove Global Var

* Travel and Shopping concierge agents blueprints

* add missing contributors for the blueprint

* fix python-lint errors

* CodeQL fixes and config

* fix python-lint unused imports

* fix python-lint

* fix linter and cql issues

* run linter

* update codeql suppressions

* suppress codeql

* Revert accidental changes to 01-tutorials and 03-integrations

Remove files accidentally added to 01-tutorials and 03-integrations in previous commits.
These changes were not intended to be part of the blueprint additions.

Reverted files:
- 01-tutorials/03-AgentCore-identity/06-Outbound_Auth_Github/.dockerignore
- 01-tutorials/03-AgentCore-identity/06-Outbound_Auth_Github/Dockerfile
- 01-tutorials/03-AgentCore-identity/06-Outbound_Auth_Github/github_agent.py
- 03-integrations/IDP-examples/EntraID/.agentcore.json
- 03-integrations/IDP-examples/EntraID/.dockerignore
- 03-integrations/IDP-examples/EntraID/Dockerfile
- 03-integrations/IDP-examples/EntraID/strands_entraid_onenote.py

* fix formatting

* Update 05-blueprints/shopping-concierge-agent/tests/utils.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Hardik Thakkar <68253981+HardikThakkar94@users.noreply.github.com>

* removed tests folders.

* remove info logging

* remove logging

* codeql suppressions

* Update server.py

# codeql[py/clear-text-logging-sensitive-data] Debug logging for certificate verification - logs metadata only, not private key content

Signed-off-by: Hardik Thakkar <68253981+HardikThakkar94@users.noreply.github.com>

* Updating .gitignore and adding lib folder required for the shopping and travel concierge agents

* Add Demo video for agents

* Update demo section in README.md

Signed-off-by: Hardik Thakkar <68253981+HardikThakkar94@users.noreply.github.com>

* Add Demo's as Gif, update LFS and add note in ReadMe

* remove the .mp4 files as they are not supported

* change to google products and remove travel specific

* update product link

* fix url in shopping list and purchases

* remove amazon

* Add Visa B2B Use Case

* fix pylint

* CodeQL Fixes

* Consolidating IDP examples under tutorials for better organization

---------

Signed-off-by: Hardik Thakkar <68253981+HardikThakkar94@users.noreply.github.com>
Co-authored-by: HT <hardikvt@amazon.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* adding/changing mcp samples - server and client (#1089)

* adding/changing mcp samples - server and client

* adding/changing mcp samples - server and client

* adding exec command

* chore(e2e-workshop): refactor workshop to add framework subfolders (#1120)

* chore(e2e-workshop): refactor workshop

* docs: update readme

* fix(05-entraid-3lo-gateway): rename lib/ to infra/ to avoid root .gitignore exclusion (#1057)

The root .gitignore has a blanket `lib/` rule for Python packaging that
was preventing lib/cdk-stack.ts from being tracked by git. Renamed the
directory to infra/ which is not caught by any ignore rule.

Also fixes README.md references from `cd cdk-entraid` to the actual
directory name `05-entraid-3lo-gateway`.

Changes:
- Rename lib/ -> infra/ for the CDK stack source
- Update import path in bin/cdk.ts
- Fix cd path in README.md Quick Start instructions

Co-authored-by: Robert Hoffmann <rho@amazon.de>

* Add barge-in support, user transcription, and VPC setup docs (#1117)

- Implement barge-in per Nova Sonic spec (mute flag + FIFO clear in OutputTrack)
- Detect interruption from textOutput for reliable barge-in in deployed environments
- Add user speech transcription via contentStart role tracking
- Add VPC setup console instructions to README

* fix(05-entraid-3lo-gateway): remove securitySchemes from OpenAPI spec to fix CDK deploy (#1137)

* fix(05-entraid-3lo-gateway): rename lib/ to infra/ to avoid root .gitignore exclusion

The root .gitignore has a blanket `lib/` rule for Python packaging that
was preventing lib/cdk-stack.ts from being tracked by git. Renamed the
directory to infra/ which is not caught by any ignore rule.

Also fixes README.md references from `cd cdk-entraid` to the actual
directory name `05-entraid-3lo-gateway`.

Changes:
- Rename lib/ -> infra/ for the CDK stack source
- Update import path in bin/cdk.ts
- Fix cd path in README.md Quick Start instructions

* fix(05-entraid-3lo-gateway): remove securitySchemes from OpenAPI spec to fix CDK deploy

---------

Co-authored-by: Robert Hoffmann <rho@amazon.de>

* docs(01-tutorials): update readmes (#1121)

* docs(01-tutorials): update readmes

* docs: update readmes

* docs: update readme links & resources

* feat(memory): Add AgentCore Memory cross-region replication tutorial (#1138)

* Add AgentCore Memory cross-region replication tutorial

Add tutorial 06-memory-cross-region-replication under advanced patterns.
Demonstrates active-passive cross-region replication for AgentCore Memory
using the memory record streaming feature with near real-time failover.

Includes:
- Jupyter notebook with step-by-step walkthrough
- CloudFormation templates for regional and global infrastructure
- Lambda consumer for Kinesis-based replication
- Failover/failback toggle scripts
- Loop prevention via namespace prefixing

* Address PR review: add arch diagram, fix memory ID lookup

- Replace ASCII architecture diagram with proper AWS diagram (images/architecture.png)
- Fix notebook Step 2: memory IDs are now stored in DynamoDB config table by
  deploy.sh and read back by the notebook, replacing the broken list_memories
  scan that searched for 'replication_memory' in the opaque memory ID
- deploy.sh Step 6 now seeds MEMORY_ID_PRIMARY and MEMORY_ID_SECONDARY
  alongside ACTIVE_REGION

Note: AgentCore Memory is intentionally created via CLI in deploy.sh (not CFN)
because the streaming config is toggled at runtime during failover/failback —
CFN would drift-correct it back.

* Rename folder, fix ruff formatting on handler.py

* fix(e2e-workshop): fix gateway race condition and model_id typo in lab-03 (#1146)

- Add time.sleep(3) after gateway creation in Step 5 to prevent Step 6
  from failing with CREATING status when cells run in quick succession
- Remove extra trailing quote from model_id that caused SyntaxError

Fixes #1145

* fix(e2e-workshop): make zip install portable and conditional in prereq.sh (#1144)

Replace hardcoded `sudo apt install zip` with cross-platform detection:
- Check if zip is already installed before attempting install
- Detect package manager (apt-get, yum, dnf, brew)
- Use sudo only when not running as root
- Fail with clear message if no supported package manager is found

Closes #604

* chore: fix iam policy path (#1153)

* docs(01-tutorials): update readmes

* docs: update readmes

* docs: update readme links & resources

* fix: fix the IAM policy path

* fix(05-entraid-3lo-gateway): fix OpenAPI schema security validation for CDK deploy (#1141)

Co-authored-by: Robert Hoffmann <rho@amazon.de>

* feat: sample that shows how to deploy agentcore runtime in VPC (#683)

* feat(runtime_in_vpc): initial

* fix: moved to advanced concepts

* AgentCore runtime bidi agent sample update - refined folder structure and more samples (#1160)

* agentcore runtime bidi streaming add strands sample

* agentcore runtime bidistream sample update for Nova Sonic 2

* agentcore bidi streaming sonic 2 update cleanup python file

* update IMDS comments

* reformat the python file using ruff

* sonic sample update to use default port 8080

* agentcore runtime bidi streaming update to sonic2 with text input update

* remove unused reference

* remove spaces

* update agentcore bid streaming UIs to include text input, event filter and barge-in

* agentcore voice agent sample with more samples and refined folder structure

* update diagram

* update reference links

* resolve github warnings

* remove temp json

* resolve github warnings

* resolve github warnings

* resolve github warnings

* resolve github warnings

---------

Signed-off-by: Lana Zhang <lanaz@amazon.com>

* Spring ai agentcore samples (#1119)

Added sample Spring and Embabel based agents

* fix:add missing agents/ directory and requirements.txt (#1165)

* adding managed session storage (#1169)

* adding managed session storage

* adding managed session storage/ fix lynt

* Adding End-to-End Customer Support Agent with AgentCore using Google ADK (#1164)

* feat(e2e): Add Google ADK end-to-end tutorial with AgentCore

Add 6-lab workshop covering agent creation, memory, gateway,
runtime deployment, frontend, and cleanup using Google ADK
with Amazon Bedrock AgentCore services.

* docs(e2e): Update Google ADK README and remove duplicate

Replace placeholder README with full tutorial content and remove
the 'README copy.md' duplicate file.

* docs(e2e): Add Google ADK to README title

* style(e2e): Capitalize README title consistently

* docs: Add Diego Brasil to CONTRIBUTORS

* chore(e2e): Remove images-og_do_not_commit directory

Remove original source images that were not intended for version control.

* fix: Use importlib for dynamic import and clean up linting issues

* feat(e2e): Set Cognito MFA to OPTIONAL and clean up inline comment

---------

Signed-off-by: Akarsha Sehwag <akshseh@amazon.de>
Co-authored-by: Akarsha Sehwag <akshseh@amazon.de>

* feat(runtime): Add AG-UI examples with SSE and WebSocket demos (#1139)

* feat(runtime): Add AG-UI examples with SSE and WebSocket demos

Add tutorial 09-ag-ui-examples demonstrating the AG-UI protocol on
AgentCore Runtime with both Cognito/JWT and IAM/SigV4 authentication.

Includes:
- Document co-authoring agent (FastAPI + Strands + ag-ui-strands)
- Cognito notebook with SSE and WebSocket Bearer token demos
- IAM notebook with SSE (SigV4 headers) and WebSocket (pre-signed URL) demos
- Multi-turn interactive document co-authoring demo
- Architecture diagrams for both auth flows and transports
- README with AG-UI event reference and troubleshooting

* feat(runtime): Add AG-UI protocol examples as tutorial 10

- Rename 09-ag-ui-examples to 10-ag-ui-examples (09 slot taken by execute-command)
- Remove hardcoded region_name=us-west-2 from BedrockModel, inherit from env
- Use DP variable for both SSE_URL and WS_URL consistently
- Regenerate architecture diagrams: single agent with tool boxes, proper auth flow
- Improved event flow as full flowchart with color-coded event categories

* fix(runtime): Fix diagram edge labels overlapping with lines

Use ortho splines and increased node spacing to prevent edges
cutting through label text in architecture diagrams.

* fix(runtime): Remove duplicate task label on Tool 2 edge to prevent overlap

* fix(runtime): Place single 'tasks' label between tool boxes in diagrams

* fix(runtime): Suppress bandit B104 for container bind to 0.0.0.0

* feat(runtime): Switch to direct_code_deploy, remove Docker/ECR dependency

- Use deployment_type=direct_code_deploy with runtime_type=PYTHON_3_13
- Remove auto_create_ecr from configure()
- Remove ECR cleanup from both notebooks
- Remove Docker from prerequisites

* refactor(runtime): Switch to direct_code_deploy, trim requirements, remove review cell

- Use direct_code_deploy with PYTHON_3_13 runtime type
- Trim requirements.txt to 5 essential packages
- Remove Review Agent Code section from both notebooks
- Install zip via sudo apt-get for SageMaker Studio compatibility
- Renumber notebook sections

* chore(runtime): Rename AG-UI examples from 10 to 11

* fix(ag-ui): Address PR #1139 review comments

- Simplify status check block to single status query
- Add markdown cell explaining utils.py helper (cognito notebook)
- Remove authorizer print line from verify cells

* docs: add migration guide from Starter Toolkit to AgentCore CLI (#1195)

* feat(tutorials): #1128 Add Strands agent with AgentSkills plugin tutorial (#1131)

* feat(tutorials): Add Strands agent with AgentSkills plugin tutorial

* docs(contributors): Update contributors list

* lint fix

* docs(tutorials): Add architecture diagram to Strands agent skills tutorial

* chore(tutorials): Reorganize strands-with-skills tutorial to 06-strands-with-skills

---------

Signed-off-by: Rajesh Sitaraman <rajesh.sitaraman@outlook.com>
Co-authored-by: Rajesh Sitaraman <rajeshrd@amazon.com>

* Fix/session binding url (#1190)

* fix: session binding url

* fix: architecture

* fix: remove oauth callback service

* fix: docstrings

* fix: remove requirements.txt

* fix: remove cdk context

* fix: flow outbound auth flow diagram

* fix:session binding url

* style: format python files with ruff

* Replace Starter Toolkit with AgentCore CLI in README (#1196)

* feat: add Chrome enterprise policies and custom root CA tutorial for AgentCore Browser (#1220)

Add tutorial notebook demonstrating two new AgentCore Browser features:
- Chrome enterprise policies (managed/recommended) for URL filtering,
  download restrictions, and browser feature controls
- Custom root CA certificates via AWS Secrets Manager for connecting
  to internal services and SSL-intercepting proxies

Includes badssl.com demo for root CA using Code Interpreter.

Co-authored-by: Sundar Raghavan <sdraghav@amazon.com>

* Add use case: Integrate Claude Code with AgentCore Gateway MCP Server (#1225)

* Initial push of claude-code-with-mcp-server sample code

* Added tavily MCP Server

* Update 01-claude-code-with-mcp-server.ipynb

* Added details on how to list MCP Tools

* Update 01-claude-code-with-mcp-server.ipynb

* Semantic updates in wording

* Cosmetic Fixes

* Update 01-claude-code-with-mcp-server.ipynb

* Added Calude Code screenshots to show AgentCore Gateway connection

* Improved documentation of the notebook

* Added Solution Architecture

* Fixed post Gili code review

* Fixes after Gili Code Review Comments

* Code fixes after gili code Review Comments

* Fixes after Gili code review comments

* Update CONTRIBUTORS.md

* Create README.md

* Fixes in the code after ruff check run

* Fixes in the notebook code after ruff check run

* Fixed Security Scan Results bugs

* Update README.md

* Adding Getting Started sample (#1228)

* Adding getting started with AgentCore CLI example

* Adding getting started with AgentCore CLI example

* Adding getting started with AgentCore CLI example

* Groundtruth evaluations  (#1229)

* Add groundtruth-based evaluations tutorial

* updating README

* drop .py script, agent script is created at notebook runtime

* custom code based evaluators (#1231)

* custom code based evaluators

* feat: token exchange example with real setup with different client ids to authenticate calls to AgentCore Gateway and API Gateway (#1234)

* Feature/datadog llm observability tutorial (#1097)

* feat: Add Datadog observability integration for AgentCore Runtime

Original Datadog partner observability integration by jasonmimick-aws.
Includes notebook, requirements, .gitignore, and README updates.

Co-authored-by: jasonmimick-aws <jasonmimick@users.noreply.github.com>

* feat: Add Datadog LLM Observability notebook with OTLP export

Replace initial notebook with LLM Observability-focused tutorial.
Uses OpenTelemetry OTLP export directly to Datadog (no Agent required).
Add llm-obs-example.png screenshot to shared images folder.

* chore: Flatten Datadog structure, fix paths, add kolaak to CONTRIBUTORS

- Remove llm-observability/ subfolder, move contents to Datadog/ root
- Fix notebook image paths for flattened directory structure
- Replace Datadog APM link with LLM Observability docs link
- Add kolaak to CONTRIBUTORS.md

---------

Signed-off-by: kolaak <kolaak@amazon.com>
Co-authored-by: jasonmimick-aws <jasonmimick@users.noreply.github.com>

* feat(01-tutorials): auth code flow examples agentcore gateway (#1250)

* Add memory for process tracking and analytics advanced pattern (#1094)

* Add memory for process tracking and analytics advanced pattern

* Update notebook: shows dynamic namespace querying, and dynamic code analysis

* Update notebook: add architecture diagram

* Move to 07-memory-for-hyper-personalisation, add cross-customer analytics notebook (Part 2)

* Rename notebooks with 01/02 prefix, add arch diagram to NB2, clear outputs

* Rename folder to 07-memory-for-personalisation-and-analytics

---------

Signed-off-by: Akarsha Sehwag <akshseh@amazon.de>
Co-authored-by: smathalikunnel <smathali@amazon.co.uk>
Co-authored-by: Akarsha Sehwag <akshseh@amazon.de>

* feat(01-tutorials): Adding Amazon Bedrock AgentCore Gateway - Amazon VPC Lattice egress samples (#1247)

* egress

* coming soon labs

* coming soon labs

* cleanup

* advanced

* changes

* removing hard coded regions - user prompted instead (#1251)

* removing hard coded regions - user prompted instead

* unicode

* ruff formating

* feat(02-usecases): Add Okta three-tier auth end-to-end demo with BedrockAgentCore Agent+AgentCore Gateway Interceptor+ Agent Runtime MCP Server (#1158)

* Add Okta three-tier auth end-to-end demo with Gateway + Agent Runtime

* Add Authorization Code grant flow for user auth and group-based RBAC enforcement to MCP Server

---------

Co-authored-by: Mallik Panchumarthy <mpanchum@amazon.com>
Co-authored-by: Velamuri <kvelamu@amazon.com>

* feat(02-usecases): Add Database Read-Only User and Update to Next.js (#1206)

* Amazon Bedrock AgentCore Deployment with CDK

* Amazon Bedrock AgentCore Deployment with CDK

* Amazon Bedrock AgentCore Deployment with CDK

* Amazon Bedrock AgentCore Deployment with CDK

* Amazon Bedrock AgentCore Deployment with CDK

* Amazon Bedrock AgentCore Deployment with CDK

* Amazon Bedrock AgentCore Deployment with CDK

* Amazon Bedrock AgentCore Deployment with CDK

* Fix front-end model call IAM permissions for charts

* Add Database Read-Only User and Update to Next.js

* Add Database Read-Only User and Update to Next.js

* Update pnpm

* Update pnpm

---------

Co-authored-by: Uriel Ramirez <beralfon@amazon.com>

* Using AgentCore Identity for OAuth token management for a self-hosted agent. (#1255)

* Adding a tutorial for self hosted agent oauth managed by Agentcore Identity

Using AgentCore Identity for OAuth token management for a self-hosted agent.

* updated contributors.md

* feat: add Browser OS-level Actions tutorial (14-BROWSER-OS-ACTIONS) (#1259)

* feat: add Browser OS-level Actions tutorial (14-BROWSER-OS-ACTIONS)

Signed-off-by: Cristiano Scandura <scandura@amazon.com>

* fix: update sample notebookwith browser os actions using boto3

Signed-off-by: Cristiano Scandura <scandura@amazon.com>

* fix: cleaned unused imports

Signed-off-by: Cristiano Scandura <scandura@amazon.com>

* fix: cleaned unused imports

Signed-off-by: Cristiano Scandura <scandura@amazon.com>

* fix: ruff clean

Signed-off-by: Cristiano Scandura <scandura@amazon.com>

---------

Signed-off-by: Cristiano Scandura <scandura@amazon.com>

* Main folder for Agent Registry assets (#1288)

* fix: correct actorId usage and namespace resolution in travel booking agent (#896)

* fix: address reviewer feedback from @akshseh on PR #896

- Replace create_memory_and_wait + exception handling with create_or_get_memory
  (SDK handles idempotency, no manual exception handling needed)
- Remove 'Ask max two questions per turn' from flight, hotel, and orchestrator
  system prompts (not needed for demo use case)

* fix: resolve notebook issues found during testing

- Fix REGION -> region variable name in memory creation cell
- Remove duplicate imports between cell_8 and cell_9
- Fix cell_11: use consistent user_actor_id='user-001' for both flight
  and hotel agents (core PR fix - actorId represents user, not agent)

* fix: use separate sub-namespaces per agent while sharing actorId

- flight agent: travel/{actorId}/flight/preferences/
- hotel agent:  travel/{actorId}/hotel/preferences/

Same user_actor_id ensures memory persists across sessions.
Separate sub-namespaces ensure flight and hotel preferences don't mix.

* fix: use single shared namespace matching strategy pattern

Both agents use travel/{actorId}/preferences/ - matches the memory
strategy namespace so extracted preferences are actually retrievable.
Semantic search differentiates flight vs hotel preferences.

Tested: preferences (Iberia, economy, morning) correctly persisted
and recalled by new agent instance in a fresh session.

* Add Registry end-to-end tutorial: Admin Setup & IAM Governance Guide (#1290)

* Add Registry end-to-end tutorial: Admin Setup & IAM Governance Guide

- Getting started notebook with full registry lifecycle (create, IAM personas, records, governance tests, search, cleanup)
- Covers MCP, A2A, and CUSTOM record types with manual approval workflow
- Requires boto3 >= 1.42.87
- Includes architecture diagram

* Update architecture diagram with latest version

* Add registry end-to-end OAuth notebook with Cognito setup

* Add 3 agent registry notebooks

* 3 notebooks for agent registry

* 3 notebooks for agent registry

* 3 notebooks for agent registry

* Fix F541: remove f-strings without placeholders

* Fix F541: remove f-strings without placeholders

---------

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Nadhya Polanco <65464569+nadhya-p@users.noreply.github.com>
Signed-off-by: Joachim Aumann <aumannjoachim@gmail.com>
Signed-off-by: fllaneza <44783676+fllaneza@users.noreply.github.com>
Signed-off-by: Hardik Thakkar <68253981+HardikThakkar94@users.noreply.github.com>
Signed-off-by: Lana Zhang <lanaz@amazon.com>
Signed-off-by: Akarsha Sehwag <akshseh@amazon.de>
Signed-off-by: Rajesh Sitaraman <rajesh.sitaraman@outlook.com>
Signed-off-by: kolaak <kolaak@amazon.com>
Signed-off-by: Cristiano Scandura <scandura@amazon.com>
Co-authored-by: Ganesh Thiyagarajan <ganeshtn@amazon.com>
Co-authored-by: Evandro Franco <33328919+evandrofranco@users.noreply.github.com>
Co-authored-by: Joshua Samuel <sauhsoj@amazon.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Antonio Rodriguez <42835728+rodzanto@users.noreply.github.com>
Co-authored-by: Abhimanyu Siwach <128322948+siwachabhi@users.noreply.github.com>
Co-authored-by: Abhimanyu Siwach <siwabhi@amazon.com>
Co-authored-by: Roberto Catalano <catalanoroberto2@gmail.com>
Co-authored-by: Anthony Bernabeu <bernabeu.anthony@gmail.com>
Co-authored-by: brnaba-aws <brnaba@amazon.com>
Co-authored-by: afarntrog <47332252+afarntrog@users.noreply.github.com>
Co-authored-by: Jerad <71716360+jcengebreth@users.noreply.github.com>
Co-authored-by: Jerad Engebreth <awsjerad@amazon.com>
Co-authored-by: Bhuvan Chowdary Annamreddi <140741942+baannamr-aws@users.noreply.github.com>
Co-authored-by: jsbeardaws <jsbeard@amazon.com>
Co-authored-by: Neha Thakur <91389359+nehabthakur@users.noreply.github.com>
Co-authored-by: nehatb <nehatb@amazon.com>
Co-authored-by: rajjainl <rajjainl@amazon.com>
Co-authored-by: sierrabravo98 <73124400+sierrabravo98@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Daniel Lopes <almeidalopes@gmail.com>
Co-authored-by: Ramprasath S <ramprasathsee@gmail.com>
Co-authored-by: ramprasaths <rampsee@amazon.com>
Co-authored-by: AndyHall <314801+hllaah@users.noreply.github.com>
Co-authored-by: Andy Hall <hllaah@amazon.com>
Co-authored-by: Eashan Kaushik <50113394+EashanKaushik@users.noreply.github.com>
Co-authored-by: Robert Hoffmann <robert@its-hoffmann.net>
Co-authored-by: Robert Hoffmann <rho@amazon.de>
Co-authored-by: Nadhya Polanco <65464569+nadhya-p@users.noreply.github.com>
Co-authored-by: nadhyap <nadhyap@amazon.com>
Co-authored-by: Joachim Aumann <aumannjoachim@gmail.com>
Co-authored-by: Mizer <55321188+amizer12@users.noreply.github.com>
Co-authored-by: subhakl <subha.kalia4@gmail.com>
Co-authored-by: subhakl <subhakl@amazon.com>
Co-authored-by: fllaneza <44783676+fllaneza@users.noreply.github.com>
Co-authored-by: Amit Lulla <amit.lulla@gmail.com>
Co-authored-by: Arun Kumar Selvaraj <103064054+arunskum@users.noreply.github.com>
Co-authored-by: rohillasandeep <31911590+rohillasandeep@users.noreply.github.com>
Co-authored-by: name <alias@amazon.com>
Co-authored-by: Akarsha Sehwag <akshseh@amazon.de>
Co-authored-by: Julian Grüber <94227999+juliangrueber@users.noreply.github.com>
Co-authored-by: tnickl <tnickl@users.noreply.github.com>
Co-authored-by: satveerkhurpa <satveerkhurpa@users.noreply.github.com>
Co-authored-by: ensorw <ensorw@amazon.com>
Co-authored-by: Gan Luan <ganluannj@users.noreply.github.com>
Co-authored-by: awsjs <76132320+jamesschafer1982@users.noreply.github.com>
Co-authored-by: Anil Nadiminti <12433959+aniloncloud@users.noreply.github.com>
Co-authored-by: Anil Nadiminti <anilnadi@amazon.com>
Co-authored-by: giryoong-kim <gi.ryoong.kim@gmail.com>
Co-authored-by: Gi Kim <giryoong@amazon.com>
Co-authored-by: Sunita Koppar <skoppar@amazon.com>
Co-authored-by: brandh25 <100976280+brandh25@users.noreply.github.com>
Co-authored-by: Hardik Thakkar <68253981+HardikThakkar94@users.noreply.github.com>
Co-authored-by: HT <hardikvt@amazon.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Sebastian Bustillo <117386987+seabasshn@users.noreply.github.com>
Co-authored-by: Manuwai Korber <11172727+manuwaik@users.noreply.github.com>
Co-authored-by: Massimiliano Angelino <angmas@amazon.com>
Co-authored-by: Lana Zhang <lanaz@amazon.com>
Co-authored-by: Dumitru Pascu <3185740+dumip@users.noreply.github.com>
Co-authored-by: Zihang Huang <huanghang111@gmail.com>
Co-authored-by: Diego Brasil <109662331+di-brasil@users.noreply.github.com>
Co-authored-by: Jesse Turner <57651174+jesseturner21@users.noreply.github.com>
Co-authored-by: Rajesh Sitaraman <rajesh.sitaraman@outlook.com>
Co-authored-by: Rajesh Sitaraman <rajeshrd@amazon.com>
Co-authored-by: Gitika <53349492+notgitika@users.noreply.github.com>
Co-authored-by: Sundar Raghavan <101336114+sundargthb@users.noreply.github.com>
Co-authored-by: Sundar Raghavan <sdraghav@amazon.com>
Co-authored-by: Eitan Sela <eitan.sela@gmail.com>
Co-authored-by: Maira Ladeira Tanke <102240958+mttanke@users.noreply.github.com>
Co-authored-by: Bharathi Srinivasan <bhrsrini@amazon.com>
Co-authored-by: kolaak <kolaak@amazon.com>
Co-authored-by: jasonmimick-aws <jasonmimick@users.noreply.github.com>
Co-authored-by: smathalikunnel <sebastian.sunnym@gmail.com>
Co-authored-by: smathalikunnel <smathali@amazon.co.uk>
Co-authored-by: Mallik Panchumarthy <himallik@gmail.com>
Co-authored-by: Mallik Panchumarthy <mpanchum@amazon.com>
Co-authored-by: Velamuri <kvelamu@amazon.com>
Co-authored-by: Uriel Ramirez <aurbac@gmail.com>
Co-authored-by: Uriel Ramirez <beralfon@amazon.com>
Co-authored-by: Swara Gandhi <gandhi.swara@gmail.com>
Co-authored-by: Cristiano Scandura <53795829+scandura@users.noreply.github.com>
Co-authored-by: mchaitra <85197325+mchaitra007@users.noreply.github.com>
Co-authored-by: Amit Lulla <8913514+amit-lulla@users.noreply.github.com>
Co-authored-by: kollura <kollura@amazon.com>
2026-04-10 01:50:01 -07:00
pjkulkar f31baf0eee Add registry push sync Lambda tutorial (#1295)
* Add registry push sync Lambda tutorial with AgentCore Identity integration

* Update registry push sync Lambda with registry creation, boto3 1.42.87, and requests library

* Update registry push sync Lambda with registry creation, lint fixes, clear outputs

* Format handler.py with ruff 0.15.10
2026-04-10 01:04:20 -07:00
Daniel Lopes f02db45a7f Update consumer discovery semantic search notebook (#1292) 2026-04-09 21:30:52 -07:00
Daniel Lopes 5d4bc58382 Add consumer discovery semantic search noteboook (#1289) 2026-04-09 17:24:09 -07:00
kollura 9fcd7772b1 Add Registry end-to-end tutorial: Admin Setup & IAM Governance Guide (#1290)
* Add Registry end-to-end tutorial: Admin Setup & IAM Governance Guide

- Getting started notebook with full registry lifecycle (create, IAM personas, records, governance tests, search, cleanup)
- Covers MCP, A2A, and CUSTOM record types with manual approval workflow
- Requires boto3 >= 1.42.87
- Includes architecture diagram

* Update architecture diagram with latest version
2026-04-09 16:22:46 -07:00
Amit Lulla ef97a103b2 fix: correct actorId usage and namespace resolution in travel booking agent (#896)
* fix: address reviewer feedback from @akshseh on PR #896

- Replace create_memory_and_wait + exception handling with create_or_get_memory
  (SDK handles idempotency, no manual exception handling needed)
- Remove 'Ask max two questions per turn' from flight, hotel, and orchestrator
  system prompts (not needed for demo use case)

* fix: resolve notebook issues found during testing

- Fix REGION -> region variable name in memory creation cell
- Remove duplicate imports between cell_8 and cell_9
- Fix cell_11: use consistent user_actor_id='user-001' for both flight
  and hotel agents (core PR fix - actorId represents user, not agent)

* fix: use separate sub-namespaces per agent while sharing actorId

- flight agent: travel/{actorId}/flight/preferences/
- hotel agent:  travel/{actorId}/hotel/preferences/

Same user_actor_id ensures memory persists across sessions.
Separate sub-namespaces ensure flight and hotel preferences don't mix.

* fix: use single shared namespace matching strategy pattern

Both agents use travel/{actorId}/preferences/ - matches the memory
strategy namespace so extracted preferences are actually retrievable.
Semantic search differentiates flight vs hotel preferences.

Tested: preferences (Iberia, economy, morning) correctly persisted
and recalled by new agent instance in a fresh session.
2026-04-09 16:10:02 -04:00
mchaitra 76d8028267 Main folder for Agent Registry assets (#1288) 2026-04-09 11:18:43 -07:00
Cristiano Scandura 1f1fac2593 feat: add Browser OS-level Actions tutorial (14-BROWSER-OS-ACTIONS) (#1259)
* feat: add Browser OS-level Actions tutorial (14-BROWSER-OS-ACTIONS)

Signed-off-by: Cristiano Scandura <scandura@amazon.com>

* fix: update sample notebookwith browser os actions using boto3

Signed-off-by: Cristiano Scandura <scandura@amazon.com>

* fix: cleaned unused imports

Signed-off-by: Cristiano Scandura <scandura@amazon.com>

* fix: cleaned unused imports

Signed-off-by: Cristiano Scandura <scandura@amazon.com>

* fix: ruff clean

Signed-off-by: Cristiano Scandura <scandura@amazon.com>

---------

Signed-off-by: Cristiano Scandura <scandura@amazon.com>
2026-04-08 16:58:50 -04:00
Swara Gandhi 40a9f0ec8d Using AgentCore Identity for OAuth token management for a self-hosted agent. (#1255)
* Adding a tutorial for self hosted agent oauth managed by Agentcore Identity

Using AgentCore Identity for OAuth token management for a self-hosted agent.

* updated contributors.md
2026-04-06 14:50:51 -05:00
Uriel Ramirez a3f8e7e02e feat(02-usecases): Add Database Read-Only User and Update to Next.js (#1206)
* Amazon Bedrock AgentCore Deployment with CDK

* Amazon Bedrock AgentCore Deployment with CDK

* Amazon Bedrock AgentCore Deployment with CDK

* Amazon Bedrock AgentCore Deployment with CDK

* Amazon Bedrock AgentCore Deployment with CDK

* Amazon Bedrock AgentCore Deployment with CDK

* Amazon Bedrock AgentCore Deployment with CDK

* Amazon Bedrock AgentCore Deployment with CDK

* Fix front-end model call IAM permissions for charts

* Add Database Read-Only User and Update to Next.js

* Add Database Read-Only User and Update to Next.js

* Update pnpm

* Update pnpm

---------

Co-authored-by: Uriel Ramirez <beralfon@amazon.com>
2026-04-05 16:03:54 -04:00
Mallik Panchumarthy 44df7faacf feat(02-usecases): Add Okta three-tier auth end-to-end demo with BedrockAgentCore Agent+AgentCore Gateway Interceptor+ Agent Runtime MCP Server (#1158)
* Add Okta three-tier auth end-to-end demo with Gateway + Agent Runtime

* Add Authorization Code grant flow for user auth and group-based RBAC enforcement to MCP Server

---------

Co-authored-by: Mallik Panchumarthy <mpanchum@amazon.com>
Co-authored-by: Velamuri <kvelamu@amazon.com>
2026-04-05 15:31:02 -04:00
Bharathi Srinivasan 0ec0cb1f12 removing hard coded regions - user prompted instead (#1251)
* removing hard coded regions - user prompted instead

* unicode

* ruff formating
2026-04-03 19:36:29 -04:00
Eashan Kaushik da81652f27 feat(01-tutorials): Adding Amazon Bedrock AgentCore Gateway - Amazon VPC Lattice egress samples (#1247)
* egress

* coming soon labs

* coming soon labs

* cleanup

* advanced

* changes
2026-04-03 13:11:07 -04:00
smathalikunnel 96fb5403b2 Add memory for process tracking and analytics advanced pattern (#1094)
* Add memory for process tracking and analytics advanced pattern

* Update notebook: shows dynamic namespace querying, and dynamic code analysis

* Update notebook: add architecture diagram

* Move to 07-memory-for-hyper-personalisation, add cross-customer analytics notebook (Part 2)

* Rename notebooks with 01/02 prefix, add arch diagram to NB2, clear outputs

* Rename folder to 07-memory-for-personalisation-and-analytics

---------

Signed-off-by: Akarsha Sehwag <akshseh@amazon.de>
Co-authored-by: smathalikunnel <smathali@amazon.co.uk>
Co-authored-by: Akarsha Sehwag <akshseh@amazon.de>
2026-04-03 12:34:02 -04:00
Eashan Kaushik 388a220a35 feat(01-tutorials): auth code flow examples agentcore gateway (#1250) 2026-04-03 07:53:14 -04:00
kolaak 1714d2553c Feature/datadog llm observability tutorial (#1097)
* feat: Add Datadog observability integration for AgentCore Runtime

Original Datadog partner observability integration by jasonmimick-aws.
Includes notebook, requirements, .gitignore, and README updates.

Co-authored-by: jasonmimick-aws <jasonmimick@users.noreply.github.com>

* feat: Add Datadog LLM Observability notebook with OTLP export

Replace initial notebook with LLM Observability-focused tutorial.
Uses OpenTelemetry OTLP export directly to Datadog (no Agent required).
Add llm-obs-example.png screenshot to shared images folder.

* chore: Flatten Datadog structure, fix paths, add kolaak to CONTRIBUTORS

- Remove llm-observability/ subfolder, move contents to Datadog/ root
- Fix notebook image paths for flattened directory structure
- Replace Datadog APM link with LLM Observability docs link
- Add kolaak to CONTRIBUTORS.md

---------

Signed-off-by: kolaak <kolaak@amazon.com>
Co-authored-by: jasonmimick-aws <jasonmimick@users.noreply.github.com>
2026-04-02 12:16:12 -04:00
Massimiliano Angelino 465d80eec5 feat: token exchange example with real setup with different client ids to authenticate calls to AgentCore Gateway and API Gateway (#1234) 2026-04-01 16:22:24 -04:00
Bharathi Srinivasan 0d7cf406c9 custom code based evaluators (#1231)
* custom code based evaluators
2026-04-01 08:02:06 -07:00
Bharathi Srinivasan a00a68b01f Groundtruth evaluations (#1229)
* Add groundtruth-based evaluations tutorial

* updating README

* drop .py script, agent script is created at notebook runtime
2026-03-31 15:54:02 -07:00
Maira Ladeira Tanke 5ad508a26f Adding Getting Started sample (#1228)
* Adding getting started with AgentCore CLI example

* Adding getting started with AgentCore CLI example

* Adding getting started with AgentCore CLI example
2026-03-31 14:00:33 -07:00
Eitan Sela d34c58ece8 Add use case: Integrate Claude Code with AgentCore Gateway MCP Server (#1225)
* Initial push of claude-code-with-mcp-server sample code

* Added tavily MCP Server

* Update 01-claude-code-with-mcp-server.ipynb

* Added details on how to list MCP Tools

* Update 01-claude-code-with-mcp-server.ipynb

* Semantic updates in wording

* Cosmetic Fixes

* Update 01-claude-code-with-mcp-server.ipynb

* Added Calude Code screenshots to show AgentCore Gateway connection

* Improved documentation of the notebook

* Added Solution Architecture

* Fixed post Gili code review

* Fixes after Gili Code Review Comments

* Code fixes after gili code Review Comments

* Fixes after Gili code review comments

* Update CONTRIBUTORS.md

* Create README.md

* Fixes in the code after ruff check run

* Fixes in the notebook code after ruff check run

* Fixed Security Scan Results bugs

* Update README.md
2026-03-31 11:48:29 -04:00
Sundar Raghavan dbd3790397 feat: add Chrome enterprise policies and custom root CA tutorial for AgentCore Browser (#1220)
Add tutorial notebook demonstrating two new AgentCore Browser features:
- Chrome enterprise policies (managed/recommended) for URL filtering,
  download restrictions, and browser feature controls
- Custom root CA certificates via AWS Secrets Manager for connecting
  to internal services and SSL-intercepting proxies

Includes badssl.com demo for root CA using Code Interpreter.

Co-authored-by: Sundar Raghavan <sdraghav@amazon.com>
2026-03-30 15:04:27 -07:00
Gitika 078fdbfdee Replace Starter Toolkit with AgentCore CLI in README (#1196) 2026-03-30 13:21:06 -04:00
Julian Grüber 8734a9d525 Fix/session binding url (#1190)
* fix: session binding url

* fix: architecture

* fix: remove oauth callback service

* fix: docstrings

* fix: remove requirements.txt

* fix: remove cdk context

* fix: flow outbound auth flow diagram

* fix:session binding url

* style: format python files with ruff
2026-03-30 09:55:42 -05:00
Rajesh Sitaraman bb7790e3d7 feat(tutorials): #1128 Add Strands agent with AgentSkills plugin tutorial (#1131)
* feat(tutorials): Add Strands agent with AgentSkills plugin tutorial

* docs(contributors): Update contributors list

* lint fix

* docs(tutorials): Add architecture diagram to Strands agent skills tutorial

* chore(tutorials): Reorganize strands-with-skills tutorial to 06-strands-with-skills

---------

Signed-off-by: Rajesh Sitaraman <rajesh.sitaraman@outlook.com>
Co-authored-by: Rajesh Sitaraman <rajeshrd@amazon.com>
2026-03-30 08:53:00 -04:00
Jesse Turner bc4bea9557 docs: add migration guide from Starter Toolkit to AgentCore CLI (#1195) 2026-03-26 19:13:01 -04:00
rajjainl 4586a80ae0 feat(runtime): Add AG-UI examples with SSE and WebSocket demos (#1139)
* feat(runtime): Add AG-UI examples with SSE and WebSocket demos

Add tutorial 09-ag-ui-examples demonstrating the AG-UI protocol on
AgentCore Runtime with both Cognito/JWT and IAM/SigV4 authentication.

Includes:
- Document co-authoring agent (FastAPI + Strands + ag-ui-strands)
- Cognito notebook with SSE and WebSocket Bearer token demos
- IAM notebook with SSE (SigV4 headers) and WebSocket (pre-signed URL) demos
- Multi-turn interactive document co-authoring demo
- Architecture diagrams for both auth flows and transports
- README with AG-UI event reference and troubleshooting

* feat(runtime): Add AG-UI protocol examples as tutorial 10

- Rename 09-ag-ui-examples to 10-ag-ui-examples (09 slot taken by execute-command)
- Remove hardcoded region_name=us-west-2 from BedrockModel, inherit from env
- Use DP variable for both SSE_URL and WS_URL consistently
- Regenerate architecture diagrams: single agent with tool boxes, proper auth flow
- Improved event flow as full flowchart with color-coded event categories

* fix(runtime): Fix diagram edge labels overlapping with lines

Use ortho splines and increased node spacing to prevent edges
cutting through label text in architecture diagrams.

* fix(runtime): Remove duplicate task label on Tool 2 edge to prevent overlap

* fix(runtime): Place single 'tasks' label between tool boxes in diagrams

* fix(runtime): Suppress bandit B104 for container bind to 0.0.0.0

* feat(runtime): Switch to direct_code_deploy, remove Docker/ECR dependency

- Use deployment_type=direct_code_deploy with runtime_type=PYTHON_3_13
- Remove auto_create_ecr from configure()
- Remove ECR cleanup from both notebooks
- Remove Docker from prerequisites

* refactor(runtime): Switch to direct_code_deploy, trim requirements, remove review cell

- Use direct_code_deploy with PYTHON_3_13 runtime type
- Trim requirements.txt to 5 essential packages
- Remove Review Agent Code section from both notebooks
- Install zip via sudo apt-get for SageMaker Studio compatibility
- Renumber notebook sections

* chore(runtime): Rename AG-UI examples from 10 to 11

* fix(ag-ui): Address PR #1139 review comments

- Simplify status check block to single status query
- Add markdown cell explaining utils.py helper (cognito notebook)
- Remove authorizer print line from verify cells
2026-03-25 16:50:56 -04:00
Diego Brasil 3a0d2ed7e1 Adding End-to-End Customer Support Agent with AgentCore using Google ADK (#1164)
* feat(e2e): Add Google ADK end-to-end tutorial with AgentCore

Add 6-lab workshop covering agent creation, memory, gateway,
runtime deployment, frontend, and cleanup using Google ADK
with Amazon Bedrock AgentCore services.

* docs(e2e): Update Google ADK README and remove duplicate

Replace placeholder README with full tutorial content and remove
the 'README copy.md' duplicate file.

* docs(e2e): Add Google ADK to README title

* style(e2e): Capitalize README title consistently

* docs: Add Diego Brasil to CONTRIBUTORS

* chore(e2e): Remove images-og_do_not_commit directory

Remove original source images that were not intended for version control.

* fix: Use importlib for dynamic import and clean up linting issues

* feat(e2e): Set Cognito MFA to OPTIONAL and clean up inline comment

---------

Signed-off-by: Akarsha Sehwag <akshseh@amazon.de>
Co-authored-by: Akarsha Sehwag <akshseh@amazon.de>
2026-03-25 16:14:03 -04:00
Evandro Franco 76047f890c adding managed session storage (#1169)
* adding managed session storage

* adding managed session storage/ fix lynt
2026-03-24 22:07:48 -04:00
Zihang Huang 402deab341 fix:add missing agents/ directory and requirements.txt (#1165) 2026-03-24 14:25:20 -04:00
Dumitru Pascu b0f13cc8cd Spring ai agentcore samples (#1119)
Added sample Spring and Embabel based agents
2026-03-24 10:18:24 -04:00
Lana Zhang b69d8e92bd AgentCore runtime bidi agent sample update - refined folder structure and more samples (#1160)
* agentcore runtime bidi streaming add strands sample

* agentcore runtime bidistream sample update for Nova Sonic 2

* agentcore bidi streaming sonic 2 update cleanup python file

* update IMDS comments

* reformat the python file using ruff

* sonic sample update to use default port 8080

* agentcore runtime bidi streaming update to sonic2 with text input update

* remove unused reference

* remove spaces

* update agentcore bid streaming UIs to include text input, event filter and barge-in

* agentcore voice agent sample with more samples and refined folder structure

* update diagram

* update reference links

* resolve github warnings

* remove temp json

* resolve github warnings

* resolve github warnings

* resolve github warnings

* resolve github warnings

---------

Signed-off-by: Lana Zhang <lanaz@amazon.com>
2026-03-23 11:27:05 -04:00
Massimiliano Angelino fdaad23993 feat: sample that shows how to deploy agentcore runtime in VPC (#683)
* feat(runtime_in_vpc): initial

* fix: moved to advanced concepts
2026-03-21 21:35:42 -04:00
Robert Hoffmann bb283edadd fix(05-entraid-3lo-gateway): fix OpenAPI schema security validation for CDK deploy (#1141)
Co-authored-by: Robert Hoffmann <rho@amazon.de>
2026-03-21 13:53:21 -05:00
Akarsha Sehwag 61db650351 chore: fix iam policy path (#1153)
* docs(01-tutorials): update readmes

* docs: update readmes

* docs: update readme links & resources

* fix: fix the IAM policy path
2026-03-21 12:17:46 -04:00
Manuwai Korber 5aa31bbb7a fix(e2e-workshop): make zip install portable and conditional in prereq.sh (#1144)
Replace hardcoded `sudo apt install zip` with cross-platform detection:
- Check if zip is already installed before attempting install
- Detect package manager (apt-get, yum, dnf, brew)
- Use sudo only when not running as root
- Fail with clear message if no supported package manager is found

Closes #604
2026-03-20 11:46:34 -04:00
Manuwai Korber 3c2ec81358 fix(e2e-workshop): fix gateway race condition and model_id typo in lab-03 (#1146)
- Add time.sleep(3) after gateway creation in Step 5 to prevent Step 6
  from failing with CREATING status when cells run in quick succession
- Remove extra trailing quote from model_id that caused SyntaxError

Fixes #1145
2026-03-20 11:44:32 -04:00