llm-catalog-archive

Change

911b225

911b225dac5086c1563192ed6e23bb00a000712e · commit on GitHub

aws-blog-feed: changed (603409 bytes, HTTP 200)

raw/aws-blog-feed/response.xml modified

Lines added
+4,043
Lines removed
-4,366
Stored bytes at this commit
603,409
Timestamp
observed
Raw artifact at this commit
raw/aws-blog-feed/response.xml
Recorded headers
observed_at2026-09-04T04:34:57.741Z
origin_datenull
status200
final URLhttps://aws.amazon.com/blogs/machine-learning/feed/
etagnull
last-modifiedThu, 03 Sep 2026 22:47:36 GMT
dateFri, 04 Sep 2026 04:34:57 GMT
agenull
cache-controlnull
cf-cache-statusnull
content-encodingnull
content-lengthnull
@@@ -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>Wed, 02 Sep 2026 21:32:10 +0000</lastBuildDate>
+ <lastBuildDate>Thu, 03 Sep 2026 16:16:28 +0000</lastBuildDate>
<language>en-US</language>
<sy:updatePeriod>
hourly </sy:updatePeriod>
@@@ -13,256 +13,215 @@
1 </sy:updateFrequency>
<item>
- <title>Accessing OpenAI models on Amazon Bedrock from Australia with global cross-Region inference</title>
- <link>https://aws.amazon.com/blogs/machine-learning/accessing-openai-gpt-5-6-models-on-amazon-bedrock-from-australia-with-global-cross-region-inference/</link>
+ <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>
- <dc:creator><![CDATA[Frank Huang]]></dc:creator>
- <pubDate>Wed, 02 Sep 2026 21:22:05 +0000</pubDate>
- <category><![CDATA[Amazon Bedrock]]></category>
- <category><![CDATA[Announcements]]></category>
- <category><![CDATA[Intermediate (200)]]></category>
- <guid isPermaLink="false">262427adeddcaf49102f989ea5bfb8332e685f6c</guid>
+ <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>
+ <category><![CDATA[Technical How-to]]></category>
+ <guid isPermaLink="false">7f13f4ae79bd6cd66b1556e1c750bffc4bbd385e</guid>
- <description>Australian teams can now access OpenAI GPT-5.6 Sol, Terra, and Luna models on Amazon Bedrock with global cross-Region inference from the Asia Pacific (Sydney) and Asia Pacific (Melbourne) Regions. This post shows how to invoke the models, use prompt caching, set up Codex with OpenI
- <content:encoded>&lt;p&gt;Australian teams working with OpenAI models can now access the latest OpenAI models through Amazon Bedrock. Amazon Bedrock offers OpenAI &lt;a href="https://docs.aws.amazon.com/bedrock/latest/userguide/global-cross-region-inference.html" target="_blank" rel="noope
-&lt;p&gt;In this post, we show you how to use prompt caching to optimize your inference cost, set up Codex with OpenID Connect (OIDC)-based authentication, and monitor usage with Amazon CloudWatch and Coding Agent Insights.&lt;/p&gt;
-&lt;h2 id="gpt-5.6-global-inference-profiles"&gt;GPT-5.6 global inference profiles&lt;/h2&gt;
-&lt;p&gt;The following table lists the three global profile IDs and the Australian source Regions covered in this post.&lt;/p&gt;
-&lt;table border="1px" width="100%" cellpadding="10px"&gt;
- &lt;tbody&gt;
- &lt;tr&gt;
- &lt;td&gt;&lt;strong&gt;Global inference profiles&lt;/strong&gt;&lt;/td&gt;
- &lt;td&gt;&lt;strong&gt;Source Regions&lt;/strong&gt;&lt;/td&gt;
- &lt;td&gt;&lt;strong&gt;Destination Regions&lt;/strong&gt;&lt;/td&gt;
- &lt;/tr&gt;
- &lt;tr&gt;
- &lt;td&gt;global.openai.gpt-5.6-sol global.openai.gpt-5.6-terra global.openai.gpt-5.6-luna&lt;/td&gt;
- &lt;td&gt;Asia Pacific (Sydney) ap-southeast-2 Asia Pacific (Melbourne) ap-southeast-4&lt;/td&gt;
- &lt;td&gt;Routes to supported commercial AWS Regions&lt;/td&gt;
- &lt;/tr&gt;
- &lt;/tbody&gt;
-&lt;/table&gt;
-&lt;p&gt;Profile membership and model availability can change. Check &lt;a href="https://docs.aws.amazon.com/bedrock/latest/userguide/cross-region-inference-support.html" target="_blank" rel="noopener"&gt;Cross-Region inference support&lt;/a&gt; before deployment.&lt;/p&gt;
-&lt;h2 id="getting-started"&gt;Getting started&lt;/h2&gt;
-&lt;p&gt;Before proceeding with this section, you can follow the &lt;a href="https://aws.amazon.com/blogs/machine-learning/introducing-cross-region-inference-for-openai-gpt-5-6-models-on-amazon-bedrock/" target="_blank" rel="noopener"&gt;GPT-5.6&lt;/a&gt; blog post to set up the following prerequisi
+ <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>&lt;p&gt;Engineering teams adopting the AI-Driven Development Lifecycle (AI-DLC) with &lt;a href="https://aws.amazon.com/bedrock/agentcore/" target="_blank" rel="noopener"&gt;Amazon Bedrock AgentCore&lt;/a&gt; and coding agents like &lt;a href="https://kiro.dev/" target="_
+&lt;p&gt;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
+&lt;h2 id="ai-dlc-construction-patterns-in-practice"&gt;AI-DLC construction patterns in practice&lt;/h2&gt;
+&lt;p&gt;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
&lt;ul&gt;
- &lt;li&gt;An AWS account with Asia Pacific (Sydney) or Asia Pacific (Melbourne) enabled as your source Region.&lt;/li&gt;
- &lt;li&gt;If your organization uses service control policy (SCP), verify that the SCP allows the GPT-5.6 global inference profiles in the selected source Region.&lt;/li&gt;
- &lt;li&gt;An AWS Identity and Access Management (IAM) role or user with proper permissions to invoke the GPT-5.6 inference profiles.&lt;/li&gt;
- &lt;li&gt;Python 3.9 or later with the &lt;code&gt;openai&lt;/code&gt;, &lt;code&gt;boto3&lt;/code&gt;, and &lt;code&gt;aws-bedrock-token-generator&lt;/code&gt; packages installed.&lt;/li&gt;
+ &lt;li&gt;&lt;strong&gt;Automated artifact generation&lt;/strong&gt;: An agent receives structured input (SQL schema files), creates a detailed plan, generates output (Mermaid ER diagrams), and stores results for human review.&lt;/li&gt;
+ &lt;li&gt;&lt;strong&gt;Continuous code quality enforcement&lt;/strong&gt;: 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
&lt;/ul&gt;
-&lt;p&gt;In the following section, we show you how to verify the active global inference profiles with both the AWS Command Line Interface (AWS CLI) and the Amazon Bedrock console.&lt;/p&gt;
-&lt;p&gt;&lt;strong&gt;Using the AWS CLI.&lt;/strong&gt; The following commands list the active GPT-5.6 profiles and inspect the Terra profile from the Sydney Region. You can also use the commands with Sol or Luna by changing the inference profile ID. To run the same check from Melbourne Region, rep
-&lt;div class="hide-language"&gt;
- &lt;pre&gt;&lt;code class="language-bash"&gt;aws bedrock list-inference-profiles \
---region ap-southeast-2 \
---type-equals SYSTEM_DEFINED \
---query "inferenceProfileSummaries[?contains(inferenceProfileId, 'openai.gpt-5.6')].[inferenceProfileId,status]" \
---output table
-
-aws bedrock get-inference-profile \
---region ap-southeast-2 \
---inference-profile-identifier global.openai.gpt-5.6-terra&lt;/code&gt;&lt;/pre&gt;
-&lt;/div&gt;
-&lt;p&gt;&lt;strong&gt;Using the Amazon Bedrock console.&lt;/strong&gt; Open the Amazon Bedrock console, select Sydney or Melbourne as your Region and choose Inference profiles under Infer, and filter for Global OpenAI GPT-5.6 Terra. The following screenshot shows the active profile from the Sydney
+&lt;p&gt;Both systems share a common architectural foundation built on AgentCore, demonstrating how teams can compose AI-driven workflows from modular, manageable components.&lt;/p&gt;
+&lt;h2 id="solution-1-sql-schema-to-er-diagram-generation"&gt;Solution 1: SQL schema to ER diagram generation&lt;/h2&gt;
+&lt;p&gt;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
+&lt;h3 id="business-challenge"&gt;Business challenge&lt;/h3&gt;
+&lt;p&gt;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
+&lt;h3 id="architecture"&gt;Architecture&lt;/h3&gt;
+&lt;p&gt;The system uses a serverless, event-driven architecture with the following components:&lt;/p&gt;
&lt;div style="width: 810px" class="wp-caption alignnone"&gt;
- &lt;a href="https://d2908q01vomqb2.cloudfront.net/f1f836cb4ea6efb2a0b1b99f41ad8b103eff4b59/2026/08/31/ML-21760-1.png" target="_blank" rel="noopener"&gt;&lt;img src="https://d2908q01vomqb2.cloudfront.net/f1f836cb4ea6efb2a0b1b99f41ad8b103eff4b59/2026/08/31/ML-21760-1.png" alt="Amazon Bedrock inferenc
- &lt;p class="wp-caption-text"&gt;Figure 1: The active GPT-5.6 Terra global inference profile in Sydney&lt;/p&gt;
-&lt;/div&gt;
-&lt;h3 id="invoke-gpt-5.6-through-amazon-bedrock-runtime"&gt;Invoke GPT-5.6 through Amazon Bedrock Runtime&lt;/h3&gt;
-&lt;p&gt;GPT-5.6 supports three access paths on the Amazon Bedrock Runtime endpoint: the OpenAI Responses API, OpenAI Chat Completions API, and Amazon Bedrock Converse API. The OpenAI-compatible APIs are called on the &lt;code&gt;/openai/v1&lt;/code&gt; paths of this endpoint rather than through the
-&lt;p&gt;&lt;strong&gt;OpenAI Responses API.&lt;/strong&gt; For applications that already use the OpenAI SDK with the Responses API, you can point the client at the Regional Amazon Bedrock Runtime endpoint.&lt;/p&gt;
-&lt;div class="hide-language"&gt;
- &lt;pre&gt;&lt;code class="language-python"&gt;from aws_bedrock_token_generator import provide_token
-from openai import OpenAI
-
-region = "ap-southeast-2" # Use "ap-southeast-4" for Melbourne.
-model_id = "global.openai.gpt-5.6-terra"
-prompt = (
- "In three short bullet points, explain how Availability Zones "
- "help make an AWS application highly available."
-)
-
-openai_client = OpenAI(
- base_url=f"https://bedrock-runtime.{region}.amazonaws.com/openai/v1",
- api_key=provide_token(region=region),
-)
-
-responses_result = openai_client.responses.create(
- model=model_id,
- input=prompt,
- max_output_tokens=300,
-)
-
-print(responses_result.output_text)&lt;/code&gt;&lt;/pre&gt;
-&lt;/div&gt;
-&lt;p&gt;For streaming output, set &lt;code&gt;stream=True&lt;/code&gt; and iterate over the response events. The following example prints text as it arrives:&lt;/p&gt;
-&lt;div class="hide-language"&gt;
- &lt;pre&gt;&lt;code class="language-python"&gt;response_stream = openai_client.responses.create(
- model=model_id,
- input=prompt,
- max_output_tokens=300,
- stream=True,
-)
-
-for event in response_stream:
- if event.type == "response.output_text.delta":
- print(event.delta, end="", flush=True)&lt;/code&gt;&lt;/pre&gt;
-&lt;/div&gt;
-&lt;p&gt;&lt;strong&gt;OpenAI Chat Completions API.&lt;/strong&gt; You can also work with the Chat Completions API if your application already uses that.&lt;/p&gt;
-&lt;div class="hide-language"&gt;
- &lt;pre&gt;&lt;code class="language-python"&gt;from aws_bedrock_token_generator import provide_token
-from openai import OpenAI
-
-region = "ap-southeast-2" # Use "ap-southeast-4" for Melbourne.
-model_id = "global.openai.gpt-5.6-terra"
-prompt = (
- "In three short bullet points, explain how Availability Zones "
- "help make an AWS application highly available."
-)
-
-openai_client = OpenAI(
- base_url=f"https://bedrock-runtime.{region}.amazonaws.com/openai/v1",
- api_key=provide_token(region=region),
-)
-
-chat_result = openai_client.chat.completions.create(
- model=model_id,
- messages=[{"role": "user", "content": prompt}],
- max_completion_tokens=300,
- reasoning_effort="low",
-)
-
-print(chat_result.choices[0].message.content)&lt;/code&gt;&lt;/pre&gt;
+ &lt;a href="https://d2908q01vomqb2.cloudfront.net/f1f836cb4ea6efb2a0b1b99f41ad8b103eff4b59/2026/08/31/ML-21366-1.png" target="_blank" rel="noopener"&gt;&lt;img src="https://d2908q01vomqb2.cloudfront.net/f1f836cb4ea6efb2a0b1b99f41ad8b103eff4b59/2026/08/31/ML-21366-1.png" alt="An Amazon S3 upload tri
+ &lt;p class="wp-caption-text"&gt;Figure 1: Event-driven architecture for SQL schema to ER diagram generation&lt;/p&gt;
&lt;/div&gt;
-&lt;p&gt;&lt;strong&gt;Amazon Bedrock Converse API.&lt;/strong&gt; Use Converse API when your application calls Amazon Bedrock through an AWS SDK. Boto3 resolves credentials through the standard AWS credential chain.&lt;/p&gt;
+&lt;ol type="1"&gt;
+ &lt;li&gt;&lt;strong&gt;S3 event trigger&lt;/strong&gt;: SQL files uploaded to an Amazon S3 bucket trigger an AWS Lambda function that initiates the analysis workflow.&lt;/li&gt;
+ &lt;li&gt;&lt;strong&gt;Authentication&lt;/strong&gt;: Amazon Cognito provides OAuth2 machine-to-machine (M2M) authentication. Client credentials are stored in AWS Systems Manager Parameter Store.&lt;/li&gt;
+ &lt;li&gt;&lt;strong&gt;AgentCore runtime&lt;/strong&gt;: A containerized agent built with the &lt;a href="https://github.com/strands-agents/sdk-python" target="_blank" rel="noopener"&gt;Strands framework&lt;/a&gt; runs on AgentCore runtime. The agent uses Claude Sonnet 4 through Amazon Bedrock to
+ &lt;li&gt;&lt;strong&gt;AgentCore memory&lt;/strong&gt;: Provides persistent session context with a 90-day expiry, and supports semantic search across previous analyses and incremental schema understanding.&lt;/li&gt;
+ &lt;li&gt;&lt;strong&gt;Output storage&lt;/strong&gt;: Generated &lt;code&gt;.mmd&lt;/code&gt; diagram files are saved to Amazon S3 under a dedicated prefix, with metadata tracking the source file and generation timestamp.&lt;/li&gt;
+&lt;/ol&gt;
+&lt;p&gt;The workflow proceeds as follows:&lt;/p&gt;
+&lt;ol type="1"&gt;
+ &lt;li&gt;A SQL file is uploaded to Amazon S3 (manually or through a CI/CD pipeline).&lt;/li&gt;
+ &lt;li&gt;The Lambda trigger reads the file content and authenticates through Cognito OAuth.&lt;/li&gt;
+ &lt;li&gt;The trigger invokes the AgentCore runtime agent with the SQL content as the payload.&lt;/li&gt;
+ &lt;li&gt;The agent analyzes the schema and identifies tables, columns, constraints, and foreign key relationships. It then generates a complete Mermaid erDiagram.&lt;/li&gt;
+ &lt;li&gt;The diagram is saved to Amazon S3 and the analysis session is stored in AgentCore memory.&lt;/li&gt;
+&lt;/ol&gt;
+&lt;h3 id="implementation-details"&gt;Implementation details&lt;/h3&gt;
+&lt;p&gt;The agent implementation uses the &lt;code&gt;BedrockAgentCoreApp&lt;/code&gt; runtime wrapper with the &lt;code&gt;@app.entrypoint&lt;/code&gt; decorator to register the handler:&lt;/p&gt;
&lt;div class="hide-language"&gt;
- &lt;pre&gt;&lt;code class="language-python"&gt;import boto3
-
-region = "ap-southeast-2" # Use "ap-southeast-4" for Melbourne.
-model_id = "global.openai.gpt-5.6-terra"
-prompt = (
- "In three short bullet points, explain how Availability Zones "
- "help make an AWS application highly available."
-)
-messages = [
- {
- "role": "user",
- "content": [{"text": prompt}],
- }
-]
-
-bedrock_client = boto3.client("bedrock-runtime", region_name=region)
-converse_result = bedrock_client.converse(
- modelId=model_id,
- messages=messages,
- inferenceConfig={"maxTokens": 300},
-)
+ &lt;pre&gt;&lt;code class="language-python"&gt;from bedrock_agentcore.runtime import BedrockAgentCoreApp
+from bedrock_agentcore.memory import MemoryClient
+from strands import Agent
+from strands.models import BedrockModel
-print(converse_result["output"]["message"]["content"][0]["text"])&lt;/code&gt;&lt;/pre&gt;
-&lt;/div&gt;
-&lt;p&gt;For streaming output, use &lt;code&gt;converse_stream&lt;/code&gt; with the same Region and profile ID, then iterate over the returned event stream.&lt;/p&gt;
-&lt;div class="hide-language"&gt;
- &lt;pre&gt;&lt;code class="language-python"&gt;stream_result = bedrock_client.converse_stream(
- modelId=model_id,
- messages=messages,
- inferenceConfig={"maxTokens": 300},
-)
+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")
-for event in stream_result["stream"]:
- if "contentBlockDelta" in event:
- delta = event["contentBlockDelta"]["delta"]
- if "text" in delta:
- print(delta["text"], end="", flush=True)
-print()&lt;/code&gt;&lt;/pre&gt;
-&lt;/div&gt;
-&lt;p&gt;The preceding examples call Amazon Bedrock in Asia Pacific (Sydney). To run the same example for Asia Pacific (Melbourne), set the Region to &lt;code&gt;ap-southeast-4&lt;/code&gt; and run the code.&lt;/p&gt;
-&lt;h3 id="working-with-prompt-caching"&gt;Working with prompt caching&lt;/h3&gt;
-&lt;p&gt;GPT-5.6 prompt caching is available through the supported APIs. GPT-5.6 supports two caching modes on Amazon Bedrock. Implicit caching is enabled by default, and no code changes are required, while with explicit caching, you can define the reusable prefix, cache boundary, and cache key. &lt
-&lt;h2 id="setting-up-codex-with-gpt-5.6-on-amazon-bedrock"&gt;Setting up Codex with GPT-5.6 on Amazon Bedrock&lt;/h2&gt;
-&lt;p&gt;Codex can use the same global inference profiles through Amazon Bedrock Runtime. Install the latest Codex CLI to use the native Amazon Bedrock Runtime model provider. Here, we validated the following configuration with codex-cli 0.149.1 using GPT-5.6 Sol from Asia Pacific (Sydney).&lt;/p&gt
-&lt;div class="hide-language"&gt;
- &lt;pre&gt;&lt;code class="language-bash"&gt;npm install -g @openai/codex@alpha
-codex --version&lt;/code&gt;&lt;/pre&gt;
+@app.entrypoint
+async def generate_er_diagram(payload: Dict[str, Any]) -&amp;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
+ ...&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
-&lt;p&gt;For organizations whose identity provider is Okta, Auth0, Microsoft Entra ID, Amazon Cognito, or AWS IAM Identity Center, the &lt;a href="https://github.com/aws-samples/sample-openai-on-aws/tree/main/aws-oidc-auth" target="_blank" rel="noopener"&gt;AWS OIDC Auth Helper repository&lt;/a&gt;
-&lt;div class="hide-language"&gt;
- &lt;pre&gt;&lt;code class="language-ini"&gt;[profile &amp;lt;AWS_OIDC_PROFILE&amp;gt;]
-credential_process = &amp;lt;ABSOLUTE_PATH_TO_CREDENTIAL_PROCESS&amp;gt; --profile &amp;lt;OIDC_HELPER_PROFILE&amp;gt;
-region = ap-southeast-2
-output = json&lt;/code&gt;&lt;/pre&gt;
+&lt;p&gt;Key design decisions include:&lt;/p&gt;
+&lt;ul&gt;
+ &lt;li&gt;&lt;strong&gt;Chunked processing&lt;/strong&gt;: 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.&lt;/li&gt;
+ &lt;li&gt;&lt;strong&gt;Structured prompting&lt;/strong&gt;: The agent uses a systematic analysis prompt that extracts tables, columns, data types, primary keys, and foreign key relationships before generating diagram syntax.&lt;/li&gt;
+ &lt;li&gt;&lt;strong&gt;OpenTelemetry tracing&lt;/strong&gt;: Every step is instrumented with spans and attributes, providing observability into processing duration, chunk counts, and error attribution.&lt;/li&gt;
+&lt;/ul&gt;
+&lt;p&gt;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 &lt;a href="https://github.com/aws-samples/sample-to-create-mermaid-entity-diagrams-from-sql-using-agent
+&lt;h2 id="solution-2-secure-software-handoffs"&gt;Solution 2: Secure software handoffs&lt;/h2&gt;
+&lt;p&gt;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
+&lt;h3 id="business-challenge-1"&gt;Business challenge&lt;/h3&gt;
+&lt;p&gt;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
+&lt;h3 id="architecture-1"&gt;Architecture&lt;/h3&gt;
+&lt;p&gt;This solution provides automated code security analysis through a multi-agent architecture for secure software handoffs between development stages:&lt;/p&gt;
+&lt;div style="width: 810px" class="wp-caption alignnone"&gt;
+ &lt;a href="https://d2908q01vomqb2.cloudfront.net/f1f836cb4ea6efb2a0b1b99f41ad8b103eff4b59/2026/08/31/ML-21366-2.png" target="_blank" rel="noopener"&gt;&lt;img src="https://d2908q01vomqb2.cloudfront.net/f1f836cb4ea6efb2a0b1b99f41ad8b103eff4b59/2026/08/31/ML-21366-2.png" alt="Uploaded code is analyz
+ &lt;p class="wp-caption-text"&gt;Figure 2: Multi-agent architecture for automated code security analysis&lt;/p&gt;
&lt;/div&gt;
-&lt;p&gt;This federation helper exchanges an OIDC token for temporary AWS credentials, and Codex reads through the standard AWS credential chain with no further configuration. Next, create or update &lt;code&gt;~/.codex/config.toml&lt;/code&gt; and reference the AWS profile, see the &lt;a href="http
+&lt;ol type="1"&gt;
+ &lt;li&gt;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.&lt;/li&gt;
+ &lt;li&gt;&lt;strong&gt;AgentCore Gateway with MCP tools&lt;/strong&gt;: The gateway orchestrates calls to external tool integrations:
+ &lt;ol type="a"&gt;
+ &lt;li&gt;&lt;strong&gt;Policy Check Lambda&lt;/strong&gt;: Validates code against organization-specific security policies.&lt;/li&gt;
+ &lt;li&gt;&lt;strong&gt;CVE Database Check Lambda&lt;/strong&gt;: Scans dependency files for known vulnerabilities.&lt;/li&gt;
+ &lt;/ol&gt; &lt;/li&gt;
+ &lt;li&gt;&lt;strong&gt;AgentCore runtime (Strands framework)&lt;/strong&gt;: 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.&lt;/li&gt;
+ &lt;li&gt;&lt;strong&gt;AgentCore memory&lt;/strong&gt;: Stores analysis results with semantic search capabilities, supporting historical comparison and trend analysis.&lt;/li&gt;
+ &lt;li&gt;&lt;strong&gt;Dashboard Lambda&lt;/strong&gt;: Serves a web UI that provides session-based results with search and multi-tab navigation across files, violations, and quality metrics.&lt;/li&gt;
+&lt;/ol&gt;
+&lt;h3 id="key-capabilities"&gt;Key capabilities&lt;/h3&gt;
+&lt;ul&gt;
+ &lt;li&gt;&lt;strong&gt;Multi-dimensional analysis&lt;/strong&gt;: The system evaluates code across structural quality, algorithmic efficiency, security posture, and standards compliance. It produces a quality score with specific recommendations.&lt;/li&gt;
+ &lt;li&gt;&lt;strong&gt;Memory strategies&lt;/strong&gt;: Three distinct self-managed memory strategies serve different needs:
+ &lt;ul&gt;
+ &lt;li&gt;&lt;em&gt;Semantic strategy&lt;/em&gt;: Stores detailed code analysis findings, CVE results, and policy violations for retrieval by context.&lt;/li&gt;
+ &lt;li&gt;&lt;em&gt;Summary strategy&lt;/em&gt;: Maintains aggregated metrics and trends for dashboard visualization.&lt;/li&gt;
+ &lt;li&gt;&lt;em&gt;User preference strategy&lt;/em&gt;: Tracks dashboard layout and filter preferences across sessions.&lt;/li&gt;
+ &lt;/ul&gt; &lt;p&gt;To learn more, see &lt;a href="https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/memory-strategies.html" target="_blank" rel="noopener"&gt;AgentCore memory strategies&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
+ &lt;li&gt;&lt;strong&gt;MCP tool integration through AgentCore Gateway&lt;/strong&gt;: 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.&lt;/li&gt;
+&lt;/ul&gt;
+&lt;p&gt;The analysis agent follows the same AgentCore runtime pattern as Solution 1, with the addition of MCP tool calls routed through AgentCore Gateway:&lt;/p&gt;
&lt;div class="hide-language"&gt;
- &lt;pre&gt;&lt;code class="language-toml"&gt;model = "global.openai.gpt-5.6-sol"
-model_provider = "amazon-bedrock-runtime"
-model_reasoning_effort = "high"
+ &lt;pre&gt;&lt;code class="language-python"&gt;from bedrock_agentcore.runtime import BedrockAgentCoreApp
+from bedrock_agentcore.memory import AgentCoreMemory
+from strands import Agent
+from strands.models import BedrockModel
-[model_providers.amazon-bedrock-runtime.aws]
-profile = "&amp;lt;AWS_OIDC_PROFILE&amp;gt;"
-region = "ap-southeast-2"&lt;/code&gt;&lt;/pre&gt;
-&lt;/div&gt;
-&lt;p&gt;If the helper doesn’t have a valid cached session, it opens the configured sign-in page in your browser. After you authenticate, the helper returns temporary AWS credentials through &lt;code&gt;credential_process&lt;/code&gt;. Requests are signed with AWS SigV4, so no API key is involved in
-&lt;h2 id="quota-management"&gt;Quota management&lt;/h2&gt;
-&lt;p&gt;GPT-5.6 on-demand quotas are measured in requests per minute (RPM) and tokens per minute (TPM). Token burndown determines how each request consumes TPM. Token consumption is calculated from input tokens, cache-write input tokens, and output tokens multiplied by the model’s &lt;a href="https
-&lt;h2 id="monitoring-and-logging"&gt;Monitoring and logging&lt;/h2&gt;
-&lt;p&gt;Because GPT-5.6 requests use the Amazon Bedrock Runtime API, requests made through the global inference profiles appear in &lt;a href="https://docs.aws.amazon.com/bedrock/latest/userguide/model-invocation-logging.html" target="_blank" rel="noopener"&gt;model invocation logging&lt;/a&gt; lik
-&lt;p&gt;CloudWatch &lt;a href="https://docs.aws.amazon.com/bedrock/latest/userguide/model-invocation-logging.html" target="_blank" rel="noopener"&gt;Coding Agent Insights&lt;/a&gt; provides a dashboard for Codex telemetry, including token usage, API requests, active users, conversation activity, an
-&lt;p&gt;The following example shows how to configure the Coding Agent Insights for Codex using the Bearer approach. First, &lt;a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-OTLP-MetricsBearerTokenAuth.html" target="_blank" rel="noopener"&gt;get a CloudWatch metri
-&lt;div class="hide-language"&gt;
- &lt;pre&gt;&lt;code class="language-toml"&gt;[otel]
-environment = "production"
+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")
-[otel.metrics_exporter]
-otlp-http = { endpoint = "https://monitoring.ap-southeast-2.amazonaws.com/v1/metrics", protocol = "binary", headers = { "Authorization" = "Bearer YOUR_CLOUDWATCH_METRICS_API_KEY" } }&lt;/code&gt;&lt;/pre&gt;
-&lt;/div&gt;
-&lt;p&gt;Replace &lt;code&gt;YOUR_CLOUDWATCH_METRICS_API_KEY&lt;/code&gt; with the key created in CloudWatch, then start Codex. This CloudWatch metrics API key can then authorize the export to the Regional CloudWatch endpoint. After telemetry arrives, open the CloudWatch console in Asia Pacific (Syd
-&lt;div style="width: 810px" class="wp-caption alignnone"&gt;
- &lt;a href="https://d2908q01vomqb2.cloudfront.net/f1f836cb4ea6efb2a0b1b99f41ad8b103eff4b59/2026/08/31/ML-21760-2.png" target="_blank" rel="noopener"&gt;&lt;img title="Codex usage in CloudWatch Coding Agent Insights" src="https://d2908q01vomqb2.cloudfront.net/f1f836cb4ea6efb2a0b1b99f41ad8b103eff4b59
- &lt;p class="wp-caption-text"&gt;Figure 2: Codex token and request activity in CloudWatch Coding Agent Insights in Asia Pacific (Sydney)&lt;/p&gt;
+@app.entrypoint
+async def analyze_uploaded_code(payload: Dict[str, Any]) -&amp;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
+ ...&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
-&lt;p&gt;To populate the Organization, Environment, Department, Cost Center, Location, Team, and User filters, provide the corresponding values through &lt;code&gt;OTEL_RESOURCE_ATTRIBUTES&lt;/code&gt;. AWS classifies that CloudWatch metric API key as a long-term credential and recommends it only wh
-&lt;p&gt;For organizations that federate developer identity through corporate single sign-on, we recommend using the enterprise rollout, where a local collector signs the export with SigV4 using the developer’s federated credentials and no token is distributed.&lt;/p&gt;
+&lt;p&gt;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
+&lt;p&gt;Key design decisions include:&lt;/p&gt;
+&lt;ul&gt;
+ &lt;li&gt;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.&lt;/li&gt;
+ &lt;li&gt;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.&lt;/li&gt;
+ &lt;li&gt;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.&lt;/li&gt;
+&lt;/ul&gt;
+&lt;p&gt;The complete implementation is available in the sample-agentic-secure-software-handoffs &lt;a href="https://github.com/aws-samples/sample-agentic-secure-software-handoffs" target="_blank" rel="noopener"&gt;repository&lt;/a&gt;.&lt;/p&gt;
+&lt;h2 id="integrating-local-agentic-tools-kiro-openai-chatgpt-codex-and-claude-code"&gt;Integrating local agentic tools: Kiro, OpenAI ChatGPT Codex and Claude Code&lt;/h2&gt;
+&lt;p&gt;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.&lt;/p&gt;
+&lt;h3 id="kiro-agents-and-skills"&gt;Kiro agents and skills&lt;/h3&gt;
+&lt;p&gt;&lt;a href="https://kiro.dev" target="_blank" rel="noopener"&gt;Kiro&lt;/a&gt; supports the AI-DLC inception and construction phases through structured specifications and custom agent skills:&lt;/p&gt;
+&lt;ul&gt;
+ &lt;li&gt;&lt;strong&gt;Spec-driven development&lt;/strong&gt;: 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
+ &lt;li&gt;&lt;strong&gt;Custom skills&lt;/strong&gt;: Teams can define reusable Kiro &lt;a href="https://kiro.dev/docs/skills/" target="_blank" rel="noopener"&gt;agent skills&lt;/a&gt; that encode organizational standards (coding patterns, security requirements, architectural guidelines), so that A
+ &lt;li&gt;&lt;strong&gt;Agentic task execution&lt;/strong&gt;: 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.&lt;/li&gt;
+&lt;/ul&gt;
+&lt;h3 id="openai-chatgpt-codex-mcp-server-and-skills"&gt;OpenAI ChatGPT Codex (MCP server and skills)&lt;/h3&gt;
+&lt;p&gt;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:&lt;/p&gt;
+&lt;ul&gt;
+ &lt;li&gt;&lt;strong&gt;MCP server for live database schema access&lt;/strong&gt;: A local stdio-based MCP server connects Codex to MySQL or Amazon Aurora MySQL databases through &lt;code&gt;INFORMATION_SCHEMA&lt;/code&gt;. The server exposes three tools (&lt;code&gt;schema_summary&lt;/code&gt;, &l
+ &lt;li&gt;&lt;strong&gt;Custom Codex skill&lt;/strong&gt;: A &lt;code&gt;SKILL.md&lt;/code&gt; file encodes the ER diagram generation workflow as a reusable Codex skill, guiding the agent through schema analysis and diagram creation with consistent quality.&lt;/li&gt;
+ &lt;li&gt;&lt;strong&gt;Secure credential management&lt;/strong&gt;: Database credentials are retrieved from AWS Secrets Manager with TLS verification enforced, following the same security patterns used in the AgentCore implementation.&lt;/li&gt;
+&lt;/ul&gt;
+&lt;h3 id="claude-code-local-agent"&gt;Claude Code (local agent)&lt;/h3&gt;
+&lt;p&gt;Claude Code operates as a local command-line agent that complements AgentCore deployments:&lt;/p&gt;
+&lt;ul&gt;
+ &lt;li&gt;&lt;strong&gt;Rapid prototyping&lt;/strong&gt;: Before deploying to AgentCore runtime, developers use Claude Code to iterate on agent logic, test prompts, and validate tool integration patterns locally.&lt;/li&gt;
+ &lt;li&gt;&lt;strong&gt;Infrastructure-as-code generation&lt;/strong&gt;: 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
+ &lt;li&gt;&lt;strong&gt;Code review and refactoring&lt;/strong&gt;: 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.&lt;
+&lt;/ul&gt;
+&lt;h3 id="the-combined-workflow"&gt;The combined workflow&lt;/h3&gt;
+&lt;p&gt;A typical AI-DLC bolt (short, intense work cycle) using these tools follows this pattern:&lt;/p&gt;
+&lt;ol type="1"&gt;
+ &lt;li&gt;&lt;strong&gt;Inception&lt;/strong&gt; (Kiro): Transform business requirements into specifications with acceptance criteria. The team validates AI-generated specs in a mob elaboration session.&lt;/li&gt;
+ &lt;li&gt;&lt;strong&gt;Construction&lt;/strong&gt; (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.&lt;/li&gt;
+ &lt;li&gt;&lt;strong&gt;Validation&lt;/strong&gt; (AgentCore): Code pushed through CI/CD triggers automated security analysis. The multi-agent system provides a quality assessment before merge.&lt;/li&gt;
+ &lt;li&gt;&lt;strong&gt;Operations&lt;/strong&gt; (AgentCore): Production agents (like the ER diagram generator) run continuously on AgentCore runtime, triggered by events, processing workloads at scale with full observability.&lt;/li&gt;
+&lt;/ol&gt;
+&lt;h2 id="best-practices"&gt;Best practices&lt;/h2&gt;
+&lt;p&gt;Based on implementing these systems, we recommend the following practices:&lt;/p&gt;
+&lt;ul&gt;
+ &lt;li&gt;&lt;strong&gt;Separate agent concerns&lt;/strong&gt;: 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.&lt;/li&gt;
+ &lt;li&gt;&lt;strong&gt;Use AgentCore memory for context continuity&lt;/strong&gt;: Persistent memory allows agents to learn from previous interactions, compare current analysis with historical baselines, and maintain state across sessions without reprocessing.&lt;/li&gt;
+ &lt;li&gt;&lt;strong&gt;Instrument with OpenTelemetry from day one&lt;/strong&gt;: Tracing provides visibility into agent behavior, processing duration, and failure modes. This is essential for debugging prompt effectiveness and identifying performance bottlenecks.&lt;/li&gt;
+ &lt;li&gt;&lt;strong&gt;Store configuration in Parameter Store&lt;/strong&gt;: Decouple configuration from code. Cognito credentials, memory IDs, model selections, and bucket names should all be retrievable at runtime.&lt;/li&gt;
+ &lt;li&gt;&lt;strong&gt;Implement chunked processing for large inputs&lt;/strong&gt;: Design agents to handle inputs that exceed model context windows by splitting, analyzing independently, and consolidating results.&lt;/li&gt;
+ &lt;li&gt;&lt;strong&gt;Secure with Cognito M2M authentication&lt;/strong&gt;: Use OAuth2 client credentials flow for service-to-service communication. Avoid hardcoded credentials or long-lived tokens.&lt;/li&gt;
+ &lt;li&gt;&lt;strong&gt;Integrate through CI/CD, not manual upload&lt;/strong&gt;: 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
+ &lt;li&gt;&lt;strong&gt;Apply Amazon Bedrock Guardrails for production agent outputs:&lt;/strong&gt; 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
+&lt;/ul&gt;
&lt;h2 id="conclusion"&gt;Conclusion&lt;/h2&gt;
-&lt;p&gt;In this post, we showed how to discover and invoke the GPT-5.6 Sol, Terra, and Luna global inference profiles from Asia Pacific (Sydney) and Asia Pacific (Melbourne) Regions. We also introduced how to configure Codex to use Amazon Bedrock Runtime and export Codex telemetry to CloudWatch Cod
-&lt;p&gt;To get started, follow the examples in this post and test GPT-5.6 models in your account. If you are using Codex, you can configure the &lt;a href="https://aws.amazon.com/bedrock/" target="_blank" rel="noopener"&gt;Amazon Bedrock Runtime&lt;/a&gt; provider and enable CloudWatch Coding Agent
+&lt;p&gt;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
+&lt;p&gt;Start with the &lt;code&gt;SQL-to-ER-Diagram&lt;/code&gt; 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
+&lt;p&gt;To go deeper, see &lt;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"&gt;Move your AI agents from proof of concept to production with Amazon Bedrock AgentCore&lt;/a&g
&lt;hr style="width: 100%"&gt;
&lt;h2&gt;About the authors&lt;/h2&gt;
&lt;footer&gt;
&lt;div class="blog-author-box"&gt;
&lt;div class="blog-author-image"&gt;
- &lt;p&gt;&lt;img loading="lazy" class="alignleft size-full" src="https://d2908q01vomqb2.cloudfront.net/f1f836cb4ea6efb2a0b1b99f41ad8b103eff4b59/2026/08/31/ML-21760-3.jpeg" alt="Frank Huang" width="100" height="100"&gt;&lt;/p&gt;
- &lt;/div&gt;
- &lt;h3 class="lb-h4"&gt;Frank Huang&lt;/h3&gt;
- &lt;p&gt;Frank Huang, PhD, is a Senior AI/ML Specialist Solutions Architect at AWS based in Auckland, New Zealand. He focuses on helping customers deliver AI/ML solutions. Throughout his career, Frank has worked across a variety of industries such as financial services, Web3, hospitality, media an
- &lt;/div&gt;
- &lt;div class="blog-author-box"&gt;

Diff display stops at 400 lines. The line counts above are from the whole diff. 46 lines shown here cut at 300 characters. The raw artifact at this commit is linked above.