Change
9857bc7
9857bc710e88176b3e187cfe579debc440305f22 · commit on GitHub
aws-blog-feed: changed (687431 bytes, HTTP 200)
raw/aws-blog-feed/response.xml modified
- Source
- aws-blog-feed
- Lines added
- +4,240
- Lines removed
- -4,049
- Stored bytes at this commit
- 687,431
- Timestamp
- observed
- Raw artifact at this commit
- raw/aws-blog-feed/response.xml
Recorded headers
| observed_at | 2026-09-05T04:29:45.295Z |
|---|---|
| origin_date | null |
| status | 200 |
| final URL | https://aws.amazon.com/blogs/machine-learning/feed/ |
| etag | null |
| last-modified | Fri, 04 Sep 2026 23:40:52 GMT |
| date | Sat, 05 Sep 2026 04:29:45 GMT |
| age | null |
| cache-control | null |
| cf-cache-status | null |
| content-encoding | null |
| content-length | null |
@
@@ -5,7 +5,7 @@ <atom:link href="https://aws.amazon.com/blogs/machine-learning/feed/" rel="self" type="application/rss+xml"/> <link>https://aws.amazon.com/blogs/machine-learning/</link> <description>Official Machine Learning Blog of Amazon Web Services</description>-
<lastBuildDate>Thu, 03 Sep 2026 16:16:28 +0000</lastBuildDate>+
<lastBuildDate>Fri, 04 Sep 2026 21:45:52 +0000</lastBuildDate> <language>en-US</language> <sy:updatePeriod> hourly </sy:updatePeriod>@
@@ -13,215 +13,203 @@ 1 </sy:updateFrequency> <item>-
<title>AI-driven development lifecycle using Amazon Bedrock AgentCore</title>-
<link>https://aws.amazon.com/blogs/machine-learning/ai-driven-development-lifecycle-using-amazon-bedrock-agentcore/</link>+
<title>Deploy a multimodal WhatsApp ordering assistant with Amazon Bedrock AgentCore</title>+
<link>https://aws.amazon.com/blogs/machine-learning/deploy-a-multimodal-whatsapp-ordering-assistant-with-amazon-bedrock-agentcore/</link> -
<dc:creator><![CDATA[Arghya Banerjee]]></dc:creator>-
<pubDate>Thu, 03 Sep 2026 16:16:28 +0000</pubDate>-
<category><![CDATA[Advanced (300)]]></category>-
<category><![CDATA[Amazon Bedrock AgentCore]]></category>+
<dc:creator><![CDATA[Salman Ahmed]]></dc:creator>+
<pubDate>Fri, 04 Sep 2026 21:45:52 +0000</pubDate>+
<category><![CDATA[Amazon Bedrock AgentCore]]></category>+
<category><![CDATA[Expert (400)]]></category> <category><![CDATA[Technical How-to]]></category>-
<guid isPermaLink="false">7f13f4ae79bd6cd66b1556e1c750bffc4bbd385e</guid>+
<guid isPermaLink="false">1cc1445c2783ef202a00ff4aadacbc028620a9eb</guid>-
<description>Engineering teams adopting the AI-Driven Development Lifecycle (AI-DLC) often struggle to turn concepts into working code. This post walks through two reference implementations on Amazon Bedrock AgentCore, Kiro, and Claude Code: an SQL-to-ER-diagram generator and a multi-agent code…-
<content:encoded><p>Engineering teams adopting the AI-Driven Development Lifecycle (AI-DLC) with <a href="https://aws.amazon.com/bedrock/agentcore/" target="_blank" rel="noopener">Amazon Bedrock AgentCore</a> and coding agents like <a href="https://kiro.dev/" target="_…-
<p>This post walks through the architecture, design decisions, and key code patterns behind two reference implementations that demonstrate AI-DLC construction phase patterns using Amazon Bedrock AgentCore, Kiro, and local agentic coding tools. The first generates Mermaid entity relationship di…-
<h2 id="ai-dlc-construction-patterns-in-practice">AI-DLC construction patterns in practice</h2> -
<p>The AI-DLC construction phase positions AI to propose architecture, generate implementation plans, produce code, and create deployment artifacts, with team members providing clarification on technical decisions in real time. The implementations described here map directly to this pattern:&l…+
<description>Learn how to deploy a multimodal WhatsApp ordering assistant that takes customer orders through text, voice notes, and real-time voice calls on a single business number, built on Amazon Bedrock AgentCore with Amazon Nova 2. The channel and ordering layers stay separate, and one sha…+
<content:encoded><p>This post shows how to deploy a multimodal WhatsApp ordering assistant built with <a href="https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/agentcore-get-started-toolkit.html" target="_blank" rel="noopener">Amazon Bedrock AgentCore</a> and…+
<p>A single WhatsApp Business number hosts the assistant. A customer can text the restaurant, send a voice note, or place a voice call. An AI agent takes the order end to end, from greeting to confirmation. All three channels share one backend and one cross-channel memory. A customer who texts…+
<p>The solution uses the <a href="https://developers.facebook.com/docs/whatsapp/cloud-api/" target="_blank" rel="noopener">Meta WhatsApp Business Platform</a> as the customer front door. Amazon Bedrock AgentCore hosts the agents. <a href="https://aws.amazon.com/nova/models/" tar…+
<h2 id="solution-overview">Solution overview</h2> +
<p>The design keeps three things apart: (1) the WhatsApp layer handles the conversation, (2) three agent runtimes run the conversations for their channels, and (3) the backend holds the menu, carts, orders, and locations. Inbound traffic arrives on a single HTTPS webhook, is acknowledged with …+
<p>The customer front door is the <a href="https://developers.facebook.com/docs/whatsapp/cloud-api/" target="_blank" rel="noopener">Meta WhatsApp Business Platform</a>. It exposes the Cloud API webhook, Messages API, Media API, and Calling API. Meta manages this service. You set it…+
<p>You use the AWS CDK to deploy the following AWS resources as a set of stacks in dependency order, grouped here by function.</p> <ul> -
<li><strong>Automated artifact generation</strong>: An agent receives structured input (SQL schema files), creates a detailed plan, generates output (Mermaid ER diagrams), and stores results for human review.</li> -
<li><strong>Continuous code quality enforcement</strong>: A multi-agent system analyzes code pushed through continuous integration and continuous delivery (CI/CD) pipelines, producing security assessments, Common Vulnerabilities and Exposures (CVE) checks, and policy compliance re…+
<li><a href="https://aws.amazon.com/api-gateway/" target="_blank" rel="noopener">Amazon API Gateway</a> provides two REST APIs. The first is a regional HTTPS webhook on an AWS managed certificate. It’s the only public endpoint. The second is an AWS Identity and Access Management (…+
<li><a href="https://aws.amazon.com/lambda/" target="_blank" rel="noopener">AWS Lambda</a> runs the webhook ingest, the webhook worker, the message sender, and the ordering business logic.</li> +
<li><a href="https://aws.amazon.com/sqs/" target="_blank" rel="noopener">Amazon Simple Queue Service (Amazon SQS)</a> provides the inbound queue, with a dead-letter queue, that decouples the quick acknowledgment from the rest of the processing.</li> +
<li><a href="https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/agents-tools-runtime.html" target="_blank" rel="noopener">AgentCore runtime</a>, a capability of Amazon Bedrock AgentCore, hosts the three agents. Each conversation runs in its own microVM. Sessions stay is…+
<li>Amazon Nova 2 Lite (text through the Converse API) and Amazon Nova 2 Sonic (speech-to-speech for voice) are invoked through <a href="https://aws.amazon.com/bedrock/" target="_blank" rel="noopener">Amazon Bedrock</a>.</li> +
<li><a href="https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/gateway.html" target="_blank" rel="noopener">AgentCore Gateway</a>, a capability of Amazon Bedrock AgentCore, is a managed MCP server that exposes the backend REST API as MCP tools the agents call by name.&…+
<li><a href="https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/memory.html" target="_blank" rel="noopener">AgentCore memory</a>, a capability of Amazon Bedrock AgentCore, is one shared, cross-channel record keyed by a hashed customer ID.</li> +
<li><a href="https://aws.amazon.com/dynamodb/" target="_blank" rel="noopener">Amazon DynamoDB</a> stores customer profiles, orders, menu items, carts, and locations. It also holds a <em>last inbound</em> window table for the WhatsApp layer.</li> +
<li><a href="https://aws.amazon.com/location/" target="_blank" rel="noopener">Amazon Location Service</a> handles geocoding and nearest-location lookups.</li> +
<li><a href="https://aws.amazon.com/kinesis/video-streams/" target="_blank" rel="noopener">Amazon Kinesis Video Streams (Amazon KVS)</a> provides a signaling channel that the voice-call runtime uses to mint credentials for the managed Traversal Using Relays around NAT (TURN) relay…+
<li><a href="https://aws.amazon.com/vpc/" target="_blank" rel="noopener">Amazon Virtual Private Cloud (Amazon VPC)</a> with a single network address translation (NAT) gateway is the outbound path for the voice-call runtime. This is the only runtime that requires a VPC.</li> +
<li><a href="https://aws.amazon.com/secrets-manager/" target="_blank" rel="noopener">AWS Secrets Manager</a> holds the Meta Access Token, App Secret, and Verify Token, created as empty containers you populate out-of-band. <a href="https://aws.amazon.com/systems-manager/" target…+
<li><a href="https://aws.amazon.com/ecr/" target="_blank" rel="noopener">Amazon Elastic Container Registry (Amazon ECR)</a>, <a href="https://aws.amazon.com/codebuild/" target="_blank" rel="noopener">AWS CodeBuild</a>, and <a href="https://aws.amazon.com/s3/" target…+
<li><a href="https://aws.amazon.com/cloudwatch/" target="_blank" rel="noopener">Amazon CloudWatch</a> captures logs and metrics, and <a href="https://aws.amazon.com/kms/" target="_blank" rel="noopener">AWS Key Management Service (AWS KMS)</a> encrypts data at rest.<…</ul> -
<p>Both systems share a common architectural foundation built on AgentCore, demonstrating how teams can compose AI-driven workflows from modular, manageable components.</p> -
<h2 id="solution-1-sql-schema-to-er-diagram-generation">Solution 1: SQL schema to ER diagram generation</h2> -
<p>This AWS Samples project auto-generates Mermaid ER diagrams from SQL schema files using an agentic AI workflow on Amazon Bedrock AgentCore. After SQL code is checked in by developers, the Amazon Simple Storage Service (Amazon S3) trigger and AWS Lambda function-based workflow invokes the Ag…-
<h3 id="business-challenge">Business challenge</h3> -
<p>Database teams managing evolving SQL schemas need current entity relationship documentation. Manual creation of ER diagrams is time-intensive and documentation frequently drifts from the actual schema. When schema changes land through pull requests, teams need updated diagrams without addin…-
<h3 id="architecture">Architecture</h3> -
<p>The system uses a serverless, event-driven architecture with the following components:</p> +
<h2 id="architecture-diagram">Architecture diagram</h2> +
<p>Figure 1 shows the full architecture. The diagram organizes the solution into labeled groups A through G that carry the request path. Two supporting groups sit outside that path, handling a build pipeline that runs once at deploy time to build the agent images and security and monitoring se…<div style="width: 810px" class="wp-caption alignnone">-
<a href="https://d2908q01vomqb2.cloudfront.net/f1f836cb4ea6efb2a0b1b99f41ad8b103eff4b59/2026/08/31/ML-21366-1.png" target="_blank" rel="noopener"><img src="https://d2908q01vomqb2.cloudfront.net/f1f836cb4ea6efb2a0b1b99f41ad8b103eff4b59/2026/08/31/ML-21366-1.png" alt="An Amazon S3 upload tri…-
<p class="wp-caption-text">Figure 1: Event-driven architecture for SQL schema to ER diagram generation</p>+
<a href="https://d2908q01vomqb2.cloudfront.net/f1f836cb4ea6efb2a0b1b99f41ad8b103eff4b59/2026/09/03/ML-21164-1.png" target="_blank" rel="noopener"><img src="https://d2908q01vomqb2.cloudfront.net/f1f836cb4ea6efb2a0b1b99f41ad8b103eff4b59/2026/09/03/ML-21164-1.png" alt="Architecture diagram of…+
<p class="wp-caption-text">Figure 1: Multimodal WhatsApp ordering architecture on AWS</p></div> +
<ul> +
<li>A. WhatsApp ingress and delivery: The webhook API Gateway, the ingest, worker, and sender Lambdas, and the Amazon SQS queue. The ingest verifies the Meta signature and enqueues the message. The worker handles the remaining processing. The Sender Lambda delivers replies.</li> +
<li>B. Agent runtimes: Three agents on AgentCore runtime, each an ARM64 container, one per channel: chat (Amazon Nova 2 Lite), voice note (Amazon Nova 2 Sonic), and voice call (Amazon Nova 2 Sonic over Web Real-Time Communication, or WebRTC). Only the voice-call runtime runs in a VPC.</li&…+
<li>C. Artificial intelligence and machine learning (AI/ML): Amazon Nova 2 Lite and Amazon Nova 2 Sonic invoked through Amazon Bedrock, plus the shared AgentCore memory keyed by a hashed <code>customer_id</code> for cross-channel continuity.</li> +
<li>D. MCP server (managed): AgentCore Gateway exposes the backend REST API as discoverable MCP tools (<code>GetMenu</code>, <code>AddToCart</code>, <code>PlaceOrder</code>, and more) that every runtime calls by name.</li> +
<li>E. API and compute: The IAM-authorized backend API Gateway and the ordering Lambdas that hold the business logic.</li> +
<li>F. Data storage: Amazon DynamoDB stores customer profiles, orders, menu items, carts, and locations.</li> +
<li>G. Networking and location: Amazon Location Service for geocoding and nearest-location lookups, the Amazon KVS managed TURN relay for voice-call media, and the VPC with a NAT gateway as the outbound path for the voice-call runtime.</li> +
</ul> +
<p>Two supporting groups sit outside the request path. The build pipeline (AWS CDK, AWS CodeBuild, Amazon ECR, and Amazon S3) runs once at deploy time to build and store the ARM64 agent images. It is not in the path of any request. Security and monitoring (AWS Secrets Manager, AWS Systems Mana…+
<p>The following steps trace a single request end to end through the architecture:</p> <ol type="1"> -
<li><strong>S3 event trigger</strong>: SQL files uploaded to an Amazon S3 bucket trigger an AWS Lambda function that initiates the analysis workflow.</li> -
<li><strong>Authentication</strong>: Amazon Cognito provides OAuth2 machine-to-machine (M2M) authentication. Client credentials are stored in AWS Systems Manager Parameter Store.</li> -
<li><strong>AgentCore runtime</strong>: A containerized agent built with the <a href="https://github.com/strands-agents/sdk-python" target="_blank" rel="noopener">Strands framework</a> runs on AgentCore runtime. The agent uses Claude Sonnet 4 through Amazon Bedrock to …-
<li><strong>AgentCore memory</strong>: Provides persistent session context with a 90-day expiry, and supports semantic search across previous analyses and incremental schema understanding.</li> -
<li><strong>Output storage</strong>: Generated <code>.mmd</code> diagram files are saved to Amazon S3 under a dedicated prefix, with metadata tracking the source file and generation timestamp.</li> -
</ol> -
<p>The workflow proceeds as follows:</p> -
<ol type="1"> -
<li>A SQL file is uploaded to Amazon S3 (manually or through a CI/CD pipeline).</li> -
<li>The Lambda trigger reads the file content and authenticates through Cognito OAuth.</li> -
<li>The trigger invokes the AgentCore runtime agent with the SQL content as the payload.</li> -
<li>The agent analyzes the schema and identifies tables, columns, constraints, and foreign key relationships. It then generates a complete Mermaid erDiagram.</li> -
<li>The diagram is saved to Amazon S3 and the analysis session is stored in AgentCore memory.</li> +
<li>Meta delivers an inbound webhook (text, voice note, or call event) to the Webhook API Gateway and the Webhook Ingest Lambda.</li> +
<li>The ingest verifies the Meta signature, enqueues to Amazon SQS, and returns <code>200</code> within Meta’s window.</li> +
<li>The Webhook Worker derives a pseudonymous <code>customer_id</code> using the pepper in AWS Systems Manager Parameter Store.</li> +
<li>The worker fetches media from the Meta Media API and invokes the matching agent on Amazon Bedrock AgentCore runtime (chat, voice note, or voice call) with <code>session_id = customer_id</code>.</li> +
<li>The runtime reads the customer’s long-term insights from AgentCore memory at session start.</li> +
<li>It runs the conversation with Amazon Nova 2 Lite (text) or Amazon Nova 2 Sonic (voice) through Amazon Bedrock.</li> +
<li>AgentCore Gateway is the managed MCP server. It exposes the backend REST API as MCP tools the agent calls by name.</li> +
<li>Tools route through the backend API Gateway to AWS Lambda, Amazon DynamoDB, and Amazon Location Service. Voice-call media uses the Amazon KVS TURN relay (runtime in a VPC).</li> +
<li>Replies go out through the Sender Lambda (text) or the worker (voice). Events are written back to memory at session end.</li> +
<li>AWS CDK builds ARM64 images through AWS CodeBuild into Amazon ECR. Amazon CloudWatch logs components and AWS KMS encrypts data at rest.</li> </ol> -
<h3 id="implementation-details">Implementation details</h3> -
<p>The agent implementation uses the <code>BedrockAgentCoreApp</code> runtime wrapper with the <code>@app.entrypoint</code> decorator to register the handler:</p> -
<div class="hide-language"> -
<pre><code class="language-python">from bedrock_agentcore.runtime import BedrockAgentCoreApp-
from bedrock_agentcore.memory import MemoryClient-
from strands import Agent-
from strands.models import BedrockModel-
-
app = BedrockAgentCoreApp()-
model = BedrockModel(model_id="us.anthropic.claude-sonnet-4-5-20250929-v1:0", region_name="us-west-2")-
erdiagram_agent = Agent(model=model)-
memory_client = MemoryClient(region_name="us-west-2")-
-
@app.entrypoint-
async def generate_er_diagram(payload: Dict[str, Any]) -&gt; Dict[str, Any]:-
sql_content = payload.get("sql_content", "")-
file_name = payload.get("file_name", "unknown_file.sql")-
# Generate diagram, store in memory, save to S3-
...</code></pre> +
<p>In short, every request flows from Meta’s webhook through the ingest, queue, worker, and agent runtime to the backend tools, then back to the customer on WhatsApp.</p> +
<h2 id="channel-flows">Channel flows</h2> +
<p>All three channels share the same front door, backend tools, and memory. What differs is the media on the wire and the runtime that handles it.</p> +
<p>Text message: A text message arrives on the webhook. The worker derives <code>customer_id</code> and invokes the chat runtime, which reads memory, streams Amazon Nova 2 Lite through the Converse API, and calls backend tools through the MCP gateway as needed. Replies go through t…+
<p>Figure 2 shows the text flow, from the inbound webhook through Amazon Nova 2 Lite on the Converse API to the reply delivered by the Sender Lambda.</p> +
<div style="width: 810px" class="wp-caption alignnone">+
<a href="https://d2908q01vomqb2.cloudfront.net/f1f836cb4ea6efb2a0b1b99f41ad8b103eff4b59/2026/09/03/ML-21164-2.gif" target="_blank" rel="noopener"><img src="https://d2908q01vomqb2.cloudfront.net/f1f836cb4ea6efb2a0b1b99f41ad8b103eff4b59/2026/09/03/ML-21164-2.gif" alt="Text-message flow from …+
<p class="wp-caption-text">Figure 2: Text flow with Amazon Nova 2 Lite</p></div> -
<p>Key design decisions include:</p> -
<ul> -
<li><strong>Chunked processing</strong>: Large SQL files are split into manageable segments, analyzed independently, then consolidated into a unified diagram. This handles schemas with hundreds of tables without exceeding context limits.</li> -
<li><strong>Structured prompting</strong>: The agent uses a systematic analysis prompt that extracts tables, columns, data types, primary keys, and foreign key relationships before generating diagram syntax.</li> -
<li><strong>OpenTelemetry tracing</strong>: Every step is instrumented with spans and attributes, providing observability into processing duration, chunk counts, and error attribution.</li> -
</ul> -
<p>The complete implementation, including OpenAI Codex skills and MCP server integration, is available in the sample-to-create-mermaid-entity-diagrams-from-sql-using-agentic-ai-on-agentcore <a href="https://github.com/aws-samples/sample-to-create-mermaid-entity-diagrams-from-sql-using-agent…-
<h2 id="solution-2-secure-software-handoffs">Solution 2: Secure software handoffs</h2> -
<p>This serverless code security analysis solution uses Amazon Bedrock AgentCore to automatically scan Python or Java code for security vulnerabilities, CVE risks in dependencies, and policy violations. The analysis is triggered when code is pushed from a GitLab pipeline to Amazon S3. A Strand…-
<h3 id="business-challenge-1">Business challenge</h3> -
<p>Code reviews for security compliance require specialized knowledge across CVE databases, organizational coding policies, and language-specific security patterns. Manual security reviews create bottlenecks in delivery pipelines, and inconsistent application of standards across teams leads to…-
<h3 id="architecture-1">Architecture</h3> -
<p>This solution provides automated code security analysis through a multi-agent architecture for secure software handoffs between development stages:</p> +
<p>Voice note (speech-to-speech): A voice note arrives as an audio message. The worker downloads the OGG Opus bytes and invokes the voice-note runtime. After reading memory, the audio is decoded to 16 kHz pulse-code modulation (PCM) and fed into a bounded Amazon Nova 2 Sonic speech-to-speech s…+
<p>Figure 3 shows the voice-note flow, a bounded Amazon Nova 2 Sonic speech-to-speech session that returns a spoken reply with no transcription in the path.</p> <div style="width: 810px" class="wp-caption alignnone">-
<a href="https://d2908q01vomqb2.cloudfront.net/f1f836cb4ea6efb2a0b1b99f41ad8b103eff4b59/2026/08/31/ML-21366-2.png" target="_blank" rel="noopener"><img src="https://d2908q01vomqb2.cloudfront.net/f1f836cb4ea6efb2a0b1b99f41ad8b103eff4b59/2026/08/31/ML-21366-2.png" alt="Uploaded code is analyz…-
<p class="wp-caption-text">Figure 2: Multi-agent architecture for automated code security analysis</p>+
<a href="https://d2908q01vomqb2.cloudfront.net/f1f836cb4ea6efb2a0b1b99f41ad8b103eff4b59/2026/09/03/ML-21164-3.gif" target="_blank" rel="noopener"><img src="https://d2908q01vomqb2.cloudfront.net/f1f836cb4ea6efb2a0b1b99f41ad8b103eff4b59/2026/09/03/ML-21164-3.gif" alt="Voice-note flow with a …+
<p class="wp-caption-text">Figure 3: Voice note flow with Amazon Nova 2 Sonic</p></div> -
<ol type="1"> -
<li>Code files are uploaded to an Amazon S3 bucket (manually or through a CI/CD pipeline). An AWS Lambda trigger detects new uploads and initiates the AgentCore analysis workflow with OAuth2 authentication.</li> -
<li><strong>AgentCore Gateway with MCP tools</strong>: The gateway orchestrates calls to external tool integrations: -
<ol type="a"> -
<li><strong>Policy Check Lambda</strong>: Validates code against organization-specific security policies.</li> -
<li><strong>CVE Database Check Lambda</strong>: Scans dependency files for known vulnerabilities.</li> -
</ol> </li> -
<li><strong>AgentCore runtime (Strands framework)</strong>: The core analysis agent performs deep code review, including structure assessment, logic quality evaluation, memory and performance analysis, security issue detection, and best practices compliance.</li> -
<li><strong>AgentCore memory</strong>: Stores analysis results with semantic search capabilities, supporting historical comparison and trend analysis.</li> -
<li><strong>Dashboard Lambda</strong>: Serves a web UI that provides session-based results with search and multi-tab navigation across files, violations, and quality metrics.</li> -
</ol> -
<h3 id="key-capabilities">Key capabilities</h3> +
<p>Voice call (WebRTC): The customer selects Call, and Meta’s Calling API delivers a connect webhook with the WebRTC Session Description Protocol (SDP) offer. The worker relays it to the voice-call runtime in <code>turnOnly</code> mode, because it has no public IP. TURN credentials…+
<p>Figure 4 shows the voice-call flow, where WebRTC media is relayed through the Amazon KVS managed TURN relay and Amazon Nova 2 Sonic drives the conversation.</p> +
<div style="width: 810px" class="wp-caption alignnone">+
<a href="https://d2908q01vomqb2.cloudfront.net/f1f836cb4ea6efb2a0b1b99f41ad8b103eff4b59/2026/09/03/ML-21164-4.gif" target="_blank" rel="noopener"><img src="https://d2908q01vomqb2.cloudfront.net/f1f836cb4ea6efb2a0b1b99f41ad8b103eff4b59/2026/09/03/ML-21164-4.gif" alt="Voice-call flow with We…+
<p class="wp-caption-text">Figure 4: Voice call flow with Amazon Nova 2 Sonic</p>+
</div> +
<h2 id="prerequisites">Prerequisites</h2> +
<p>This solution has prerequisites in two areas: your AWS account and your Meta WhatsApp setup. Complete both prior to running the deployment, because it asks you for specific WhatsApp values and the agent cannot reply until they are in place.</p> +
<h3 id="aws-prerequisites">AWS prerequisites</h3> <ul> -
<li><strong>Multi-dimensional analysis</strong>: The system evaluates code across structural quality, algorithmic efficiency, security posture, and standards compliance. It produces a quality score with specific recommendations.</li> -
<li><strong>Memory strategies</strong>: Three distinct self-managed memory strategies serve different needs: -
<ul> -
<li><em>Semantic strategy</em>: Stores detailed code analysis findings, CVE results, and policy violations for retrieval by context.</li> -
<li><em>Summary strategy</em>: Maintains aggregated metrics and trends for dashboard visualization.</li> -
<li><em>User preference strategy</em>: Tracks dashboard layout and filter preferences across sessions.</li> -
</ul> <p>To learn more, see <a href="https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/memory-strategies.html" target="_blank" rel="noopener">AgentCore memory strategies</a>.</p></li> -
<li><strong>MCP tool integration through AgentCore Gateway</strong>: This capability allows the agent to invoke external tools (policy checker, CVE scanner) as needed during analysis, without hardcoding tool-calling or external API logic into the agent itself.</li> +
<li>You need an active AWS account with Amazon Bedrock model access enabled for Amazon Nova 2 Lite (<code>amazon.nova-2-lite-v1:0</code>) and Amazon Nova 2 Sonic (<code>amazon.nova-2-sonic-v1:0</code>) in your deployment Region. Your IAM user or role must have permissi…</ul> -
<p>The analysis agent follows the same AgentCore runtime pattern as Solution 1, with the addition of MCP tool calls routed through AgentCore Gateway:</p> +
<p>The agent containers build inside AWS CodeBuild on ARM64, so you do not need Python, Docker, or audio toolchains locally. Deploy in an AWS Region where Amazon Nova 2 Lite, Amazon Nova 2 Sonic, and AgentCore runtime, Gateway, and memory are all available. The US East (N. Virginia) Region (us…+
<p>For model availability by Region, refer to <a href="https://docs.aws.amazon.com/bedrock/latest/userguide/models-regions.html" target="_blank" rel="noopener">Supported models by AWS Region in Amazon Bedrock</a>.</p> +
<h3 id="whatsapp-business-platform-meta-prerequisites">WhatsApp Business Platform (Meta) prerequisites</h3> +
<p>The WhatsApp side is set up once in the Meta consoles, as a prerequisite rather than a step in this walkthrough. No AWS API can create a Meta app for you, so complete it first and have the values on hand before you deploy. For a demo, the Meta sandbox test number, which is available at no a…+
<p>Have these items ready before you deploy.</p> +
<ul> +
<li>A Meta Developer App with the WhatsApp product added, linked to a Business portfolio. Adding the product provisions a WhatsApp Business Account (WABA) and a sandbox test number at no additional cost. Refer to <a href="https://developers.facebook.com/docs/whatsapp/cloud-api/get-started"…+
<li>The App ID and App Secret. The App Secret is the key Meta uses to sign each webhook, and the webhook Lambda recomputes that signature.</li> +
<li>An Access Token. The temporary token works for a quick test and expires in about 24 hours. For something longer-lived, create a <a href="https://developers.facebook.com/documentation/business-messaging/whatsapp/access-tokens" target="_blank" rel="noopener">System User token</a>…+
<li>The Business portfolio ID (the setup CLI can auto-discover the Phone Number ID and WABA ID).</li> +
<li>A Verify Token that you invent. It is a hard-to-guess string Meta echoes back during the one-time <a href="https://developers.facebook.com/docs/graph-api/webhooks/getting-started" target="_blank" rel="noopener">webhook verification handshake</a>.</li> +
<li>For voice calls, the <a href="https://developers.facebook.com/docs/whatsapp/cloud-api/calling" target="_blank" rel="noopener">WhatsApp Calling API</a> enabled on the number.</li> +
</ul> +
<p>Store none of these in source control. The Access Token, App Secret, and Verify Token are secrets and go into AWS Secrets Manager during deployment, not into the CDK templates.</p> +
<h2 id="deploy-the-solution-with-aws-cdk">Deploy the solution with AWS CDK</h2> +
<p>The full solution is in the <a href="https://github.com/aws-samples/sample-multimodal-whatsapp-restaurant-agent" target="_blank" rel="noopener">sample repository on GitHub</a>. The repository contains three agent containers, the AWS CDK infrastructure code, and setup scripts tha…<div class="hide-language"> -
<pre><code class="language-python">from bedrock_agentcore.runtime import BedrockAgentCoreApp-
from bedrock_agentcore.memory import AgentCoreMemory-
from strands import Agent-
from strands.models import BedrockModel+
<pre><code class="language-bash">git clone https://github.com/aws-samples/sample-multimodal-whatsapp-restaurant-agent.git+
cd sample-multimodal-whatsapp-restaurant-agent+
./scripts/preflight-check.sh+
./scripts/deploy-all.sh --deploymentPrefix qsr-wa</code></pre> +
</div> +
<p>The script provisions every stack in dependency order. It passes each stack’s outputs to the next. First it deploys the shared VPC. Then it deploys the backend: Amazon DynamoDB, Amazon Location Service, the ordering Lambdas, and the backend REST API. Next it deploys AgentCore Gateway and th…+
<p>How the WhatsApp values reach the deployment matters for security. The CDK creates empty Secrets Manager containers for the three secrets. It does not take a secret as a CDK parameter, which would bake it into the synthesized template. You populate the secret values out-of-band, while the n…+
<div class="hide-language"> +
<pre><code class="language-bash">cd scripts/whatsapp-setup+
npm start # choose "Pre-deploy", then "Post-deploy" after deploy+
node whatsapp-setup.mjs --doctor # read-only end-to-end check</code></pre> +
</div> +
<p>Once the webhook is subscribed and the secrets are populated, the number is live and the agent replies across all three channels.</p> +
<h2 id="acknowledging-fast-and-processing-asynchronously">Acknowledging fast and processing asynchronously</h2> +
<p>Meta expects a prompt HTTP response with a <code>200 OK</code> status code. Taking an order, fetching media, invoking an agent, and relaying call signaling needs a little more than that brief acknowledgment window allows. So the work splits in two. The Webhook Ingest Lambda does…+
<h2 id="one-memory-across-three-channels">One memory across three channels</h2> +
<p>What makes this feel like one assistant is shared memory. A single AgentCore memory resource is keyed by a hashed <code>customer_id</code>, and all three runtimes use the same key. Each runtime reads the customer’s long-term insights at session start and writes events back at th…+
<h2 id="connecting-the-agents-to-backend-tools-with-mcp">Connecting the agents to backend tools with MCP</h2> +
<p>No AgentCore runtime calls the backend Lambda functions directly. AgentCore Gateway is a managed MCP server. Each AgentCore runtime connects to it as an MCP client over HTTPS, authenticated with the runtime’s IAM role, and discovers the tools by name. Each runtime carries its own role, so t…+
<h2 id="storing-menus-carts-and-orders">Storing menus, carts, and orders</h2> +
<p>Amazon DynamoDB tables cover the workflow. They are Customers (profiles for recognizing returning customers), Orders (history with pickup location and channel), Menu (items, prices, and availability), Carts (in-progress carts with a time-to-live), and Locations (coordinates, hours, and tax …+
<h2 id="finding-a-pickup-location">Finding a pickup location</h2> +
<p><a href="https://docs.aws.amazon.com/location/latest/developerguide/what-is.html" target="_blank" rel="noopener">Amazon Location Service</a> helps a customer find a pickup spot without much typing. The agent passes a ZIP code or address to be geocoded into coordinates. The backe…+
<h2 id="recognizing-a-customer-without-a-login">Recognizing a customer without a login</h2> +
<p>A WhatsApp customer doesn’t sign in, so the system uses the phone number as the basis for identity. It hashes the E.164 number with a secret pepper in AWS Systems Manager Parameter Store, and the result becomes the <code>customer_id</code> (<code>"wa-" + sha256(E164 || Pep…+
<h2 id="ordering-walkthrough">Ordering walkthrough</h2> +
<p>There is no web UI or test client. Message or call the WhatsApp Business number from a phone with WhatsApp installed. This example shows a typical exchange (lines prefixed “Agent” are the assistant’s replies, tool calls in brackets).</p> +
<div class="hide-language"> +
<pre><code class="language-text">Customer: What's on the menu near 75201?-
app = BedrockAgentCoreApp()-
model = BedrockModel(model_id="us.anthropic.claude-sonnet-4-5-20250929-v1:0", region_name="us-west-2")-
analysis_agent = Agent(model=model, tools=[analyze_code, check_quality])-
memory = AgentCoreMemory(namespace="code-analysis")+
Agent: [tools: GeocodeAddress, GetNearestLocations, GetMenu]+
Here's what's available at Amazing Burgers - Dallas:+
- Burger Combo ($8.99)+
- Chicken Tenders ($6.49)+
...-
@app.entrypoint-
async def analyze_uploaded_code(payload: Dict[str, Any]) -&gt; Dict[str, Any]:-
file_content = payload.get("file_content", "")-
file_name = payload.get("file_name", "unknown.py")-
session_id = payload.get("session_id", "")-
# Analyze code, store results in memory, return quality score-
...</code></pre> +
Customer: A burger combo and a milkshake, please.+
+
Agent: [tools: AddToCart, GetCart]+
Added to your cart:+
- 1x Burger Combo - $8.99+
- 1x Milkshake - $3.49+
Total: $12.48. Want me to place the order?+
+
Customer: Yes.+
+
Agent: [tools: PlaceOrder]+
Your order is placed and is being prepared for pickup at+
Amazing Burgers - Dallas. I'll let you know when it's ready.</code></pre> +
</div> +
<p>Voice notes and voice calls run the same flow through Amazon Nova 2 Sonic. You speak your order and the agent replies with voice. As the order advances, the order-notifier delivers proactive status updates back to WhatsApp. You can follow conversations in Amazon CloudWatch Logs.</p> +
<h2 id="cost">Cost</h2> +
<p>You pay for the AWS services the system uses, and separately for Meta’s WhatsApp messaging fees. Costs scale primarily with conversation volume and the share of voice traffic, which consumes more resources per session than text. This example deploys all three channels (text, voice note, and…+
<h2 id="things-to-consider">Things to consider</h2> +
<p>WhatsApp can also receive images and documents. This solution focuses on order taking and does not act on those attachments. If your use case needs them, you can configure the backend and the chat agent to handle them, because Amazon Nova 2 Lite is already multimodal. The agent could read a…+
<p>The pattern also reaches beyond restaurants. The core building blocks are one business number, several conversation channels, shared memory, and MCP tools in front of a backend. The same shape fits retail support, healthcare intake, field service scheduling, and many other domains. You adap…+
<p>For production deployments, consider enabling <a href="https://aws.amazon.com/bedrock/guardrails/" target="_blank" rel="noopener">Amazon Bedrock Guardrails</a> to add content filtering and grounding validation. This helps make sure agent responses stay within policy boundaries a…+
<h2 id="clean-up-resources">Clean up resources</h2> +
<p>To avoid ongoing charges, remove the resources when you are done. The cleanup script destroys stacks in reverse order, each consumer before its producers.</p> +
<div class="hide-language"> +
<pre><code class="language-bash">./scripts/cleanup-all.sh --dry-run # preview without removing anything+
./scripts/cleanup-all.sh # delete every stack the deploy created</code></pre> </div> -
<p>The agent receives code content from the AWS Lambda trigger, performs multi-dimensional analysis using the foundation model (FM), then invokes external tools (policy checker, CVE scanner) through AgentCore Gateway as needed. Results are persisted to AgentCore memory for dashboard retrieval …-
<p>Key design decisions include:</p> -
<ul> -
<li>Multi-agent separation: The code analysis agent focuses solely on quality assessment. Policy checking and CVE scanning are delegated to dedicated AWS Lambda functions invoked through AgentCore Gateway, keeping each component single-purpose and independently updatable.</li> -
<li>Session-based result persistence: Each analysis run creates a unique session in AgentCore memory. The dashboard retrieves results by session ID, allowing developers to compare quality scores across multiple code submissions.</li> -
<li>Gateway-mediated tool invocation: External tools are registered through AgentCore Gateway using MCP rather than direct invocation. This decouples the agent from tool implementation details and allows new tools to be added without modifying agent code.</li> -
</ul> -
<p>The complete implementation is available in the sample-agentic-secure-software-handoffs <a href="https://github.com/aws-samples/sample-agentic-secure-software-handoffs" target="_blank" rel="noopener">repository</a>.</p> -
<h2 id="integrating-local-agentic-tools-kiro-openai-chatgpt-codex-and-claude-code">Integrating local agentic tools: Kiro, OpenAI ChatGPT Codex and Claude Code</h2> -
<p>While AgentCore provides the cloud runtime for deployed, event-driven agent workloads, the development workflow itself benefits from local agentic tools that implement AI-DLC patterns at the developer’s workstation.</p> -
<h3 id="kiro-agents-and-skills">Kiro agents and skills</h3> -
<p><a href="https://kiro.dev" target="_blank" rel="noopener">Kiro</a> supports the AI-DLC inception and construction phases through structured specifications and custom agent skills:</p> -
<ul> -
<li><strong>Spec-driven development</strong>: Kiro transforms natural language requirements into structured specifications with acceptance criteria, then generates implementation plans from those specifications. This maps directly to the AI-DLC pattern of AI creating plans and see…-
<li><strong>Custom skills</strong>: Teams can define reusable Kiro <a href="https://kiro.dev/docs/skills/" target="_blank" rel="noopener">agent skills</a> that encode organizational standards (coding patterns, security requirements, architectural guidelines), so that A…-
<li><strong>Agentic task execution</strong>: Kiro’s agent mode handles multi-file implementation tasks with autonomous tool use (file creation, terminal commands, search) while maintaining the human-in-the-loop review at each specification checkpoint.</li> -
</ul> -
<h3 id="openai-chatgpt-codex-mcp-server-and-skills">OpenAI ChatGPT Codex (MCP server and skills)</h3> -
<p>The repository also includes an OpenAI Codex integration that demonstrates how the same ER diagram generation workflow extends to additional coding agents through MCP and custom skills:</p> -
<ul> -
<li><strong>MCP server for live database schema access</strong>: A local stdio-based MCP server connects Codex to MySQL or Amazon Aurora MySQL databases through <code>INFORMATION_SCHEMA</code>. The server exposes three tools (<code>schema_summary</code>, &l…-
<li><strong>Custom Codex skill</strong>: A <code>SKILL.md</code> file encodes the ER diagram generation workflow as a reusable Codex skill, guiding the agent through schema analysis and diagram creation with consistent quality.</li> -
<li><strong>Secure credential management</strong>: Database credentials are retrieved from AWS Secrets Manager with TLS verification enforced, following the same security patterns used in the AgentCore implementation.</li> -
</ul> -
<h3 id="claude-code-local-agent">Claude Code (local agent)</h3> -
<p>Claude Code operates as a local command-line agent that complements AgentCore deployments:</p> -
<ul> -
<li><strong>Rapid prototyping</strong>: Before deploying to AgentCore runtime, developers use Claude Code to iterate on agent logic, test prompts, and validate tool integration patterns locally.</li> -
<li><strong>Infrastructure-as-code generation</strong>: Claude Code generates deployment scripts, Dockerfiles, AWS Identity and Access Management (IAM) policies, and AWS CloudFormation templates. These artifacts follow architectural specifications produced during the AI-DLC constr…-
<li><strong>Code review and refactoring</strong>: Local agents perform first-pass reviews against project rules and custom instructions, catching issues before code enters the CI/CD pipeline where the secure software handoff system provides the authoritative security analysis.<…-
</ul> -
<h3 id="the-combined-workflow">The combined workflow</h3> -
<p>A typical AI-DLC bolt (short, intense work cycle) using these tools follows this pattern:</p> -
<ol type="1"> -
<li><strong>Inception</strong> (Kiro): Transform business requirements into specifications with acceptance criteria. The team validates AI-generated specs in a mob elaboration session.</li> -
<li><strong>Construction</strong> (Claude Code and Kiro): Generate implementation code, deployment scripts, and test suites. Local agents handle file generation and iterative refinement while Kiro manages task orchestration.</li> -
<li><strong>Validation</strong> (AgentCore): Code pushed through CI/CD triggers automated security analysis. The multi-agent system provides a quality assessment before merge.</li> -
<li><strong>Operations</strong> (AgentCore): Production agents (like the ER diagram generator) run continuously on AgentCore runtime, triggered by events, processing workloads at scale with full observability.</li> -
</ol> -
<h2 id="best-practices">Best practices</h2> -
<p>Based on implementing these systems, we recommend the following practices:</p> -
<ul> -
<li><strong>Separate agent concerns</strong>: Design each agent with a single, well-defined responsibility. The ER diagram agent only generates ER diagrams. Composability comes from orchestration, not from overloading individual agents.</li> -
<li><strong>Use AgentCore memory for context continuity</strong>: Persistent memory allows agents to learn from previous interactions, compare current analysis with historical baselines, and maintain state across sessions without reprocessing.</li> -
<li><strong>Instrument with OpenTelemetry from day one</strong>: Tracing provides visibility into agent behavior, processing duration, and failure modes. This is essential for debugging prompt effectiveness and identifying performance bottlenecks.</li> -
<li><strong>Store configuration in Parameter Store</strong>: Decouple configuration from code. Cognito credentials, memory IDs, model selections, and bucket names should all be retrievable at runtime.</li> -
<li><strong>Implement chunked processing for large inputs</strong>: Design agents to handle inputs that exceed model context windows by splitting, analyzing independently, and consolidating results.</li> -
<li><strong>Secure with Cognito M2M authentication</strong>: Use OAuth2 client credentials flow for service-to-service communication. Avoid hardcoded credentials or long-lived tokens.</li> -
<li><strong>Integrate through CI/CD, not manual upload</strong>: In production, connect agents to repository events (merge requests, pipeline stages) rather than requiring manual file uploads. The S3 trigger pattern shown here translates directly to GitLab webhook or GitHub Action…-
<li><strong>Apply Amazon Bedrock Guardrails for production agent outputs:</strong> Configure content filtering policies, denied topic detection, and grounding validation to make sure agent-generated responses meet responsible AI standards. For code analysis agents, guardrails can …-
</ul> +
<p>Cleanup is destructive. It deletes the order history in Amazon DynamoDB, the pepper in Parameter Store, the Secrets Manager secrets, and the images in Amazon ECR. Back up anything you want to keep first. It does not touch the Meta side, so unsubscribe the webhook and revoke tokens in the Me…<h2 id="conclusion">Conclusion</h2> -
<p>The AI-DLC methodology becomes practical when backed by concrete implementation patterns. Amazon Bedrock AgentCore provides the runtime infrastructure (containerized agents, persistent memory, secure gateways, and external tool integration) while local tools like Kiro and Claude Code accele…-
<p>Start with the <code>SQL-to-ER-Diagram</code> sample to deploy your first AgentCore agent. Follow the deployment scripts in sequence, then extend the pattern with multi-agent coordination, MCP tool integrations, and CI/CD-driven triggers using the Secure software handoffs sample…-
<p>To go deeper, see <a href="https://aws.amazon.com/blogs/machine-learning/move-your-ai-agents-from-proof-of-concept-to-production-with-amazon-bedrock-agentcore/" target="_blank" rel="noopener">Move your AI agents from proof of concept to production with Amazon Bedrock AgentCore</a&g…+
<p>This post walked through the architecture and deployment of a multimodal WhatsApp ordering assistant that takes an order end to end over text, voice notes, and voice calls on a single business number. An asynchronous webhook accepts traffic fast and queues the rest of the work. Three runtim…+
<p style="clear: both"></p> <hr style="width: 100%"> <h2>About the authors</h2> <footer> -
<div class="blog-author-box"> -
<div class="blog-author-image"> -
<p><img loading="lazy" class="alignleft size-full" src="https://d2908q01vomqb2.cloudfront.net/f1f836cb4ea6efb2a0b1b99f41ad8b103eff4b59/2026/08/31/ML-21366-3.jpeg" alt="Arghya Banerjee" width="100" height="100"></p> -
</div> -
<h3 class="lb-h4">Arghya Banerjee</h3> -
<p>Arghya is a Sr.&nbsp;Solutions Architect at AWS in the San Francisco Bay Area, focused on helping customers adopt and use the AWS Cloud for big data, data lakes, streaming and batch analytics, generative AI and agentic AI solutions.</p> -
</div> -
<div class="blog-author-box"> -
<div class="blog-author-image"> -
<p><img loading="lazy" class="alignleft size-full" src="https://d2908q01vomqb2.cloudfront.net/f1f836cb4ea6efb2a0b1b99f41ad8b103eff4b59/2026/08/31/ML-21366-4.png" alt="Ram Pathangi" width="100" height="100"></p> +
<div class="blog-author-box" style="padding-top: 2.0em"> +
<div class="blog-author-image" style="margin-right: 1.0em">+
<img loading="lazy" class="alignnone size-full" src="https://d2908q01vomqb2.cloudfront.net/f1f836cb4ea6efb2a0b1b99f41ad8b103eff4b59/2026/09/03/ML-21164-5.jpg" alt="Salman Ahmed" width="100" height="133"> </div> -
<h3 class="lb-h4">Ram Pathangi</h3> -
<p>Ram is a Sr.&nbsp;Solutions Architect at AWS in the San Francisco Bay Area. He has helped customers in Agriculture, Insurance, Banking, Retail, Health Care &amp; Life Sciences, Hospitality, and Hi-Tech verticals to run their business successfully on AWS cloud. He specializes in Da…+
<h3 class="lb-h4">Salman Ahmed</h3> +
<p style="overflow: hidden">Salman is a Senior Technical Account Manager at AWS, specializing in helping customers design, implement, and optimize their AWS environments. He combines deep networking expertise with a passion for exploring emerging technologies to help organizations get the mo… </div> -
<div class="blog-author-box"> -
<div class="blog-author-image"> -
<p><img loading="lazy" class="alignleft size-full" src="https://d2908q01vomqb2.cloudfront.net/f1f836cb4ea6efb2a0b1b99f41ad8b103eff4b59/2026/08/31/ML-21366-5.jpeg" alt="Kunal Ghosh" width="100" height="100"></p> +
<div class="blog-author-box" style="padding-top: 2.0em"> +
<div class="blog-author-image" style="margin-right: 1.0em">+
<img loading="lazy" class="alignnone size-full" src="https://d2908q01vomqb2.cloudfront.net/f1f836cb4ea6efb2a0b1b99f41ad8b103eff4b59/2026/09/03/ML-21164-6.jpg" alt="Sergio Barraza" width="100" height="133"> </div> -
<h3 class="lb-h4">Kunal Ghosh</h3> -
<p><a href="https://www.linkedin.com/in/kunal-ghosh-6583058/" target="_blank" rel="noopener">Kunal</a> is a Sr.&nbsp;Solutions Architect at AWS. He is passionate about building efficient and effective solutions on AWS, especially involving generative AI, analytics, data scien…+
<h3 class="lb-h4">Sergio Barraza</h3> +
<p style="overflow: hidden">Sergio is a Senior Technical Account Manager at AWS, helping customers design and optimize cloud solutions. With more than 25 years in software development, he guides customers through AWS services adoption. Outside work, Sergio is a multi-instrument musician play… </div> -
<div class="blog-author-box"> -
<div class="blog-author-image"> -
<p><img loading="lazy" class="alignleft size-full" src="https://d2908q01vomqb2.cloudfront.net/f1f836cb4ea6efb2a0b1b99f41ad8b103eff4b59/2026/08/31/ML-21366-6.jpg" alt="Ananth Kommuri" width="100" height="100"></p> +
<div class="blog-author-box" style="padding-top: 2.0em"> +
<div class="blog-author-image" style="margin-right: 1.0em">+
<img loading="lazy" class="alignnone size-full" src="https://d2908q01vomqb2.cloudfront.net/f1f836cb4ea6efb2a0b1b99f41ad8b103eff4b59/2026/09/03/ML-21164-7.jpg" alt="Ravi Kumar" width="100" height="133"> </div> -
<h3 class="lb-h4">Ananth Kommuri</h3> -
<p>Ananth is a Sr.&nbsp;Solutions Architect at AWS based in the San Francisco bay area. Ananth helps customers achieve operational efficiency with Data analytics, AI/ML, and IoT solutions on AWS.</p> +
<h3 class="lb-h4">Ravi Kumar</h3> +
<p style="overflow: hidden">Ravi is a Senior Technical Account Manager in AWS Enterprise Support who helps customers in the travel and hospitality industry to streamline their cloud operations on AWS. He is a results-driven IT professional with over 20 years of experience. Ravi is passionate… </div> </footer></content:encoded> @
@@ -229,309 +217,461 @@ async def analyze_uploaded_code(payload: Dict[str, Any]) -&gt; Dict[str, Any </item> <item>-
<title>Migrate agentic workloads to Amazon Bedrock AgentCore</title>Diff display stops at 400 lines. The line counts above are from the whole diff. 72 lines shown here cut at 300 characters. The raw artifact at this commit is linked above.