llm-catalog-archive

Change

ce78629

ce786296dbda395512e93f5e9eaa5a27561e9bdf · commit on GitHub

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

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

Lines added
+3,704
Lines removed
-3,854
Stored bytes at this commit
580,345
Timestamp
observed
Raw artifact at this commit
raw/aws-blog-feed/response.xml
Recorded headers
observed_at2026-09-15T04:55:20.130Z
origin_datenull
status200
final URLhttps://aws.amazon.com/blogs/machine-learning/feed/
etagnull
last-modifiedMon, 14 Sep 2026 21:22:50 GMT
dateTue, 15 Sep 2026 04:55:20 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>Fri, 11 Sep 2026 22:28:31 +0000</lastBuildDate>
+ <lastBuildDate>Mon, 14 Sep 2026 21:22:45 +0000</lastBuildDate>
<language>en-US</language>
<sy:updatePeriod>
hourly </sy:updatePeriod>
@@@ -13,501 +13,791 @@
1 </sy:updateFrequency>
<item>
- <title>Monitoring production agent lifecycle with AWS DevOps Agent and AgentCore Evaluations</title>
- <link>https://aws.amazon.com/blogs/machine-learning/monitoring-production-agent-lifecycle-with-aws-devops-agent-and-agentcore-evaluations/</link>
+ <title>Abnormal AI: Amazon Bedrock AgentCore for agentic email security at scale</title>
+ <link>https://aws.amazon.com/blogs/machine-learning/abnormal-ai-amazon-bedrock-agentcore-for-agentic-email-security-at-scale/</link>
- <dc:creator><![CDATA[Meghana Ashok]]></dc:creator>
- <pubDate>Fri, 11 Sep 2026 18:26:38 +0000</pubDate>
+ <dc:creator><![CDATA[Aswin Vasudevan]]></dc:creator>
+ <pubDate>Mon, 14 Sep 2026 21:22:45 +0000</pubDate>
<category><![CDATA[Advanced (300)]]></category>
<category><![CDATA[Amazon Bedrock AgentCore]]></category>
- <category><![CDATA[Best Practices]]></category>
- <category><![CDATA[DevOps]]></category>
- <guid isPermaLink="false">9da22a53a45cf214e154c67bafd0a4bd7eefa26b</guid>
+ <category><![CDATA[Customer Solutions]]></category>
+ <guid isPermaLink="false">5765f76e7a987692146e6fe2b1eb9962dcd91bac</guid>
- <description>Multi-agent systems fail in ways traditional monitoring misses. This post presents a dual-layer approach to monitoring production agents: Amazon Bedrock AgentCore Evaluations for continuous quality scoring and AWS DevOps Agent for autonomous infrastructure investigation, shown on a
- <content:encoded>&lt;p&gt;Multi-agent systems in production experience issues in ways that traditional monitoring misses. For example, the agent can’t invoke its foundation model (FM) and returns an empty response. This could be because of a missing AWS Identity and Access Management (IAM)
-&lt;p&gt;Infrastructure monitoring and agent effectiveness monitoring require different approaches. &lt;a href="https://aws.amazon.com/cloudwatch/" target="_blank" rel="noopener"&gt;Amazon CloudWatch&lt;/a&gt; metrics show whether systems executed correctly, but not whether agents helped users accom
-&lt;p&gt;These problems compound in multi-agent systems where a single user request triggers a supervisor agent that routes work to multiple specialists, each with their own tools and model invocations. There’s typically no fixed execution graph to instrument, failures can occur at multiple handoff
-&lt;p&gt;We built a production airline reservation system with four specialized agents that combine &lt;a href="https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/evaluations.html" target="_blank" rel="noopener"&gt;Amazon Bedrock AgentCore Evaluations&lt;/a&gt; for continuous agent qualit
-&lt;h2 id="key-technologies"&gt;Key technologies&lt;/h2&gt;
-&lt;p&gt;The system uses several AWS services:&lt;/p&gt;
+ <description>Learn how Abnormal AI deployed Amazon Bedrock AgentCore Code Interpreter as an ephemeral compute scratch pad for the agents behind its real-time email threat detection at billion-message scale, plus the sandbox design decisions and practical lessons for builders deploying Code Inte
+ <content:encoded>&lt;p&gt;AI agents now run in production at a scale of billions of operations a day, and a recurring architectural pattern has surfaced: agents need a compute scratch pad. Not only for coding tasks, but for data aggregation, analysis, verification, and any workflow where s
+&lt;p&gt;Abnormal AI, a behavioral security service that protects more than 25 percent of the Fortune 500, has deployed Amazon Bedrock AgentCore Code Interpreter, a capability of Amazon Bedrock AgentCore. Abnormal AI uses it for the agents that support its real-time inline email threat detection. Th
+&lt;p&gt;This work is part of how Abnormal AI builds software. Today, 80 percent of their code changes are built using an agent in some way, and 40 percent are built end-to-end by a background agent (fully AI built, not AI assisted). Their use of AgentCore Code Interpreter for threat detection refle
+&lt;p&gt;In this post, we share how Abnormal AI architected these systems, the design decisions behind their sandbox approach, and practical lessons for builders deploying Code Interpreter at scale.&lt;/p&gt;
+&lt;h2 id="what-is-amazon-bedrock-agentcore-code-interpreter"&gt;What is Amazon Bedrock AgentCore Code Interpreter?&lt;/h2&gt;
+&lt;p&gt;&lt;a href="https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/code-interpreter-tool.html" target="_blank" rel="noopener"&gt;Amazon Bedrock AgentCore Code Interpreter&lt;/a&gt; provides a fully managed, serverless runtime for agents to execute code dynamically. Key characteristic
&lt;ul&gt;
- &lt;li&gt;&lt;a href="https://docs.aws.amazon.com/bedrock/" target="_blank" rel="noopener"&gt;Amazon Bedrock&lt;/a&gt; provides API access to foundation models from leading AI companies including Anthropic, Meta, Mistral, and Amazon. In our airline reservation system built on AgentCore runtime, Ama
- &lt;li&gt;&lt;a href="https://aws.amazon.com/bedrock/agentcore/" target="_blank" rel="noopener"&gt;AgentCore runtime&lt;/a&gt; handles agent orchestration and manages interaction lifecycles, with built-in observability through OpenTelemetry instrumentation.&lt;/li&gt;
- &lt;li&gt;With the &lt;a href="https://github.com/awslabs/fullstack-solution-template-for-agentcore" target="_blank" rel="noopener"&gt;Fullstack AgentCore Solution Template (FAST)&lt;/a&gt;, teams can quickly deploy a secured React frontend connected to an AgentCore backend.&lt;/li&gt;
- &lt;li&gt;&lt;a href="https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/evaluations.html" target="_blank" rel="noopener"&gt;AgentCore Evaluations&lt;/a&gt; is a quality assessment framework integrated into AgentCore runtime. It continuously scores agent interactions using &lt;a href="ht
- &lt;li&gt;&lt;a href="https://aws.amazon.com/devops-guru/" target="_blank" rel="noopener"&gt;AWS DevOps Agent&lt;/a&gt; is an autonomous investigation tool that acts as an on-call engineer for your infrastructure. When incidents occur, it automatically analyzes Amazon CloudWatch logs, traces failur
- &lt;li&gt;&lt;a href="https://strandsagents.com/" target="_blank" rel="noopener"&gt;Strands Agents&lt;/a&gt; is an open source SDK for building AI agents with a model-driven approach, supporting multi-agent collaboration patterns including Swarm, Graph, and Agents-as-Tools.&lt;/li&gt;
- &lt;li&gt;&lt;a href="https://opentelemetry.io/" target="_blank" rel="noopener"&gt;OpenTelemetry&lt;/a&gt; is an open source observability framework that provides standardized instrumentation for collecting traces, metrics, and logs. AgentCore runtime uses OpenTelemetry to emit monitoring data to A
- &lt;li&gt;&lt;a href="https://strandsagents.com/docs/user-guide/concepts/multi-agent/swarm/" target="_blank" rel="noopener"&gt;The Swarm Pattern&lt;/a&gt; is a multi-agent orchestration approach where a supervisor agent dynamically routes work to specialized agents based on the task at hand. Unlike
+ &lt;li&gt;Ephemeral MicroVM sessions: configurable time-to-live from 15 minutes (default) up to 8 hours for long-running tasks.&lt;/li&gt;
+ &lt;li&gt;Security: sessions run in secure sandboxes with full separation at the host operating system level, designed to help prevent inadvertent disclosure between sessions.&lt;/li&gt;
+ &lt;li&gt;Flexible networking: configurable for sandbox virtual private cloud (VPC) mode, or public internet access.&lt;/li&gt;
+ &lt;li&gt;File handling: up to 100 MB through the API directly, or connect to Amazon Simple Storage Service (Amazon S3) for larger datasets.&lt;/li&gt;
+ &lt;li&gt;Preloaded runtimes: Python and &lt;code&gt;Node.js&lt;/code&gt; environments with common visualization, statistics, and data processing libraries.&lt;/li&gt;
+ &lt;li&gt;Built-in observability: logs sent to Amazon CloudWatch and AWS CloudTrail for monitoring.&lt;/li&gt;
&lt;/ul&gt;
-&lt;h2 id="dual-layer-monitoring-quality-and-infrastructure"&gt;Dual-layer monitoring: quality and infrastructure&lt;/h2&gt;
-&lt;p&gt;The monitoring architecture answers two questions: Is the agent working well? Is the infrastructure healthy?&lt;/p&gt;
-&lt;p&gt;&lt;strong&gt;Amazon Bedrock AgentCore Evaluations: Continuous quality monitoring&lt;/strong&gt;&lt;/p&gt;
-&lt;p&gt;AgentCore Evaluations scores live agent interactions on helpfulness, correctness, and goal completion. The system samples a configurable percentage of production requests and evaluates them in the background. Every score comes with reasoning that explains why that score was assigned based o
-&lt;p&gt;When quality metrics drop, it runs pattern analysis across recent low-scoring sessions to identify common failure modes. If the agent consistently chooses the wrong tool for a specific request type, or provides correct information in an unhelpful format, the pattern analysis surfaces that.
-&lt;p&gt;&lt;strong&gt;AWS DevOps Agent: Autonomous infrastructure investigation&lt;/strong&gt;&lt;/p&gt;
-&lt;p&gt;AWS DevOps Agent monitors system health across metrics, logs, and error patterns. When something breaks, the agent investigates on its own. It pulls relevant Amazon CloudWatch logs, builds a topology graph of affected resources, correlates errors across services (IAM, Amazon Bedrock, your a
-&lt;p&gt;&lt;strong&gt;How the layers work together&lt;/strong&gt;&lt;/p&gt;
-&lt;p&gt;AgentCore Evaluations replaces intuition with quantitative quality metrics, so teams can measure the actual impact of changes. AWS DevOps Agent automates much of the investigation that previously required manual war rooms by autonomously investigating infrastructure incidents the moment the
-&lt;h2 id="the-airline-reservation-system-why-its-hard-to-monitor"&gt;The airline reservation system: why it’s hard to monitor&lt;/h2&gt;
-&lt;p&gt;To demonstrate this architecture end to end, we built an airline reservation system that handles complex, dynamic queries: multi-city bookings, loyalty program benefit application, and company travel policy compliance, all within a single conversational turn. This use case demands exactly t
-&lt;p&gt;Consider a request like this one: &lt;em&gt;“Book me from Seattle to Boston on March 15th, then Boston to Miami on March 18th. Use my companion certificate for the second leg and make sure both flights comply with my company’s travel policy. I’m Gold status so apply any eligible upgrades.”&
-&lt;p&gt;Handling this in a single conversational turn requires searching two separate routes and retrieving loyalty status and certificates from a different data source while the flight search runs. The bookings must then be sequenced in the right order, because the companion certificate can’t be a
-&lt;p&gt;We built this with four specialized agents using the &lt;strong&gt;Swarm pattern&lt;/strong&gt; (Figure 1). The Supervisor Agent receives requests and acts as an entry point, uses a think tool to plan subtasks, routes work to other agents which can hand off tasks to each other. The Flight A
-&lt;p&gt;In a Swarm, agents share working memory and hand off work to one another dynamically. Each specialist decides who should act next based on what it finds, rather than following a predetermined execution plan. The supervisor is only the entry point. After a request is in flight, control passe
-&lt;p&gt;Failures can occur at any handoff point, and because execution paths change based on runtime decisions, the failure path changes each time too. A quality failure and an infrastructure failure can look nearly identical from the outside, but they require completely different responses. From t
-&lt;div style="width: 516px" class="wp-caption alignnone"&gt;
- &lt;a href="https://d2908q01vomqb2.cloudfront.net/f1f836cb4ea6efb2a0b1b99f41ad8b103eff4b59/2026/08/31/ML-20434-1-1.png" target="_blank" rel="noopener"&gt;&lt;img src="https://d2908q01vomqb2.cloudfront.net/f1f836cb4ea6efb2a0b1b99f41ad8b103eff4b59/2026/08/31/ML-20434-1-1.png" alt="Diagram of the Swar
- &lt;p class="wp-caption-text"&gt;Figure 1: Swarm multi-agent pattern&lt;/p&gt;
+&lt;p&gt;Critically, Code Interpreter is exposed as an API. This means it doesn’t dictate the agent’s workflow. Instead, it provides a box where the agent can run commands, upload files, and retrieve results. For teams with existing agent infrastructure, this plug-and-play design makes the integrati
+&lt;div style="width: 810px" class="wp-caption alignnone"&gt;
+ &lt;a href="https://d2908q01vomqb2.cloudfront.net/f1f836cb4ea6efb2a0b1b99f41ad8b103eff4b59/2026/09/11/ML-21301-1.png" target="_blank" rel="noopener"&gt;&lt;img src="https://d2908q01vomqb2.cloudfront.net/f1f836cb4ea6efb2a0b1b99f41ad8b103eff4b59/2026/09/11/ML-21301-1.png" alt="Agent invoking the Amaz
+ &lt;p class="wp-caption-text"&gt;Figure 1: Amazon Bedrock AgentCore Code Interpreter architecture, where the agent invokes the Code Interpreter API to provision an ephemeral MicroVM sandbox session for code execution, file input and output, and result retrieval&lt;/p&gt;
&lt;/div&gt;
-&lt;h2 id="dual-monitoring-architecture"&gt;Dual monitoring architecture&lt;/h2&gt;
-&lt;p&gt;The following diagram shows how these components connect.&lt;/p&gt;
-&lt;div style="width: 696px" class="wp-caption alignnone"&gt;
- &lt;a href="https://d2908q01vomqb2.cloudfront.net/f1f836cb4ea6efb2a0b1b99f41ad8b103eff4b59/2026/08/31/ML-20434-2-1.jpg" target="_blank" rel="noopener"&gt;&lt;img src="https://d2908q01vomqb2.cloudfront.net/f1f836cb4ea6efb2a0b1b99f41ad8b103eff4b59/2026/08/31/ML-20434-2-1.jpg" alt="Full system archite
- &lt;p class="wp-caption-text"&gt;Figure 2: Full system architecture showing the React frontend, AgentCore runtime, Amazon CloudWatch, and AWS DevOps Agent&lt;/p&gt;
+&lt;h2 id="why-agents-need-a-compute-scratch-pad"&gt;Why agents need a compute scratch pad&lt;/h2&gt;
+&lt;p&gt;Large language models (LLMs) excel at reasoning and semantic coherence, but many real-world operations don’t map to semantic reasoning:&lt;/p&gt;
+&lt;ul&gt;
+ &lt;li&gt;Basic math and counting: “How many phishing email did we detect in the past hour?” requires computation, not language generation.&lt;/li&gt;
+ &lt;li&gt;Data processing and visualization: transforming raw data into charts, PDFs, or structured reports.&lt;/li&gt;
+ &lt;li&gt;Code verification: running unit tests, linting, and integration tests to validate agent-generated outputs.&lt;/li&gt;
+&lt;/ul&gt;
+&lt;p&gt;By pairing a large language model with Code Interpreter, you enhance the agent’s capabilities beyond what reasoning alone can achieve.&lt;/p&gt;
+&lt;blockquote&gt;
+ &lt;p&gt;&lt;em&gt;“Pretty much any agent, whether it’s writing code or not, needs a code interpreter sandbox that allows it to actually crunch data and come to answers.”&lt;/em&gt;&lt;/p&gt;
+&lt;/blockquote&gt;
+&lt;p&gt;— Shrivu Shankar, VP of AI Strategy, Abnormal AI&lt;/p&gt;
+&lt;h2 id="abnormal-ais-architecture-three-tiered-detection-at-billion-message-scale"&gt;Abnormal AI’s architecture: Three-tiered detection at billion-message scale&lt;/h2&gt;
+&lt;p&gt;Abnormal AI processes billions of email messages through a three-tiered detection architecture, as shown in Figure 2.&lt;/p&gt;
+&lt;div style="width: 810px" class="wp-caption alignnone"&gt;
+ &lt;a href="https://d2908q01vomqb2.cloudfront.net/f1f836cb4ea6efb2a0b1b99f41ad8b103eff4b59/2026/09/11/ML-21301-2.png" target="_blank" rel="noopener"&gt;&lt;img src="https://d2908q01vomqb2.cloudfront.net/f1f836cb4ea6efb2a0b1b99f41ad8b103eff4b59/2026/09/11/ML-21301-2.png" alt="Three-tiered email dete
+ &lt;p class="wp-caption-text"&gt;Figure 2: Abnormal AI’s three-tiered email detection pipeline, with Tier 1 (heuristics, billions/day), Tier 2 (machine learning models, millions/day), and Tier 3 (inline agents with Code Interpreter, tens of thousands/day), where each tier handles progressively hard
&lt;/div&gt;
-&lt;p&gt;We built a React frontend hosted on &lt;a href="https://aws.amazon.com/amplify/" target="_blank" rel="noopener"&gt;AWS Amplify&lt;/a&gt; that connects through Amazon Bedrock AgentCore Identity, a capability of Amazon Bedrock AgentCore, to Amazon Bedrock AgentCore runtime, where the four-age
-&lt;p&gt;Monitoring data originates from a single source: the Amazon Bedrock AgentCore runtime hosting the four-agent swarm. Amazon Bedrock AgentCore Observability, a capability of Amazon Bedrock AgentCore, instruments the runtime directly, capturing traces and metrics in OpenTelemetry format and fo
-&lt;p&gt;The second monitoring layer connects to this same backend. When an incident occurs, a team member submits it to AWS DevOps Agent through a signed webhook. The agent pulls Amazon CloudWatch logs and metrics, investigates autonomously, and returns findings and remediation steps without requir
-&lt;h3 id="getting-started"&gt;Getting started&lt;/h3&gt;
-&lt;p&gt;&lt;strong&gt;Open source&lt;/strong&gt;: We built this system on FAST and the complete source code for this system including CDK infrastructure, evaluation dashboard, and AWS DevOps Agent integration is available in the &lt;a href="https://github.com/aws-samples/sample-FAST-applications/tr
-&lt;p&gt;To use Amazon Bedrock AgentCore Evaluations, you need:&lt;/p&gt;
+&lt;h3 id="tier-1-high-volume-lightweight-classification-billionsday"&gt;Tier 1 — high-volume lightweight classification (billions/day)&lt;/h3&gt;
+&lt;p&gt;Small models, heuristic rules, and lightweight classifiers (logistic regressions) handle the largest volume of traffic. At this scale, it’s both cost-prohibitive to run larger models and unnecessary. Most messages can be classified without deep analysis.&lt;/p&gt;
+&lt;h3 id="tier-2-medium-models-for-uncertain-cases-millionsday"&gt;Tier 2 — medium models for uncertain cases (millions/day)&lt;/h3&gt;
+&lt;p&gt;Messages that Tier 1 is unconfident about flow into deep learning and machine learning (ML) models that perform more behavioral signal analysis.&lt;/p&gt;
+&lt;h3 id="tier-3-inline-agents-with-code-interpreter-tens-of-thousandsday"&gt;Tier 3 — inline agents with Code Interpreter (tens of thousands/day)&lt;/h3&gt;
+&lt;p&gt;The hardest cases, which would typically require a human analyst to evaluate, are processed by inline agents. These agents receive the threat intelligence data and use a sandbox to analyze it, writing scripts dynamically. They then evaluate how it fits into the overall behavioral model and
+&lt;h2 id="the-analyst-agent-batch-intelligence"&gt;The analyst agent — batch intelligence&lt;/h2&gt;
+&lt;p&gt;Beyond the real-time classification pipeline shown in Figure 2, Abnormal deploys an &lt;em&gt;analyst agent&lt;/em&gt; that operates in batch mode (Figure 3):&lt;/p&gt;
&lt;ul&gt;
- &lt;li&gt;AgentCore CLI (&lt;a class="uri" href="https://github.com/aws/agentcore-cli" target="_blank" rel="noopener"&gt;https://github.com/aws/agentcore-cli&lt;/a&gt;)&lt;/li&gt;
- &lt;li&gt;AWS credentials with bedrock-agentcore and Amazon CloudWatch permissions.&lt;/li&gt;
- &lt;li&gt;The bedrock-agentcore Python SDK (Boto3 client)&lt;/li&gt;
+ &lt;li&gt;Ingests misclassifications and tuning signals from its detection pipeline.&lt;/li&gt;
+ &lt;li&gt;Identifies patterns and trends across large message sets.&lt;/li&gt;
+ &lt;li&gt;Autonomously writes draft candidate heuristics for Tier 1, operating on Abnormal AI’s own detection-pipeline features and signals.&lt;/li&gt;
+ &lt;li&gt;Improved models for Tier 2.&lt;/li&gt;
+ &lt;li&gt;Runs on the scale of approximately 100 batch jobs per week.&lt;/li&gt;
&lt;/ul&gt;
-&lt;h3 id="layer-1-amazon-bedrock-agentcore-evaluations-is-the-agent-working-well"&gt;Layer 1: Amazon Bedrock AgentCore Evaluations, is the agent working well?&lt;/h3&gt;
-&lt;p&gt;Silent quality issues in production agents impact team efficiency, user trust, and business outcomes. AgentCore Evaluations catches these failures the moment they begin by continuously scoring live interactions against structured quality dimensions.&lt;/p&gt;
-&lt;div style="width: 640px;" class="wp-video"&gt;
- &lt;video class="wp-video-shortcode" id="video-138259-1" width="640" height="360" preload="metadata" controls="controls"&gt;
- &lt;source type="video/mp4" src="https://d2908q01vomqb2.cloudfront.net/artifacts/DBSBlogs/ML-20434/blogpost_eval_video.mp4?_=1"&gt;
- &lt;/video&gt;
+&lt;div style="width: 810px" class="wp-caption alignnone"&gt;
+ &lt;a href="https://d2908q01vomqb2.cloudfront.net/f1f836cb4ea6efb2a0b1b99f41ad8b103eff4b59/2026/09/11/ML-21301-3.png" target="_blank" rel="noopener"&gt;&lt;img src="https://d2908q01vomqb2.cloudfront.net/f1f836cb4ea6efb2a0b1b99f41ad8b103eff4b59/2026/09/11/ML-21301-3.png" alt="Analyst agent feedback
+ &lt;p class="wp-caption-text"&gt;Figure 3: The analyst agent feedback loop, where the batch agent ingests misclassifications from the real-time pipeline, analyzes patterns using Code Interpreter sessions, and feeds improved heuristics and models back into Tier 1 and Tier 2&lt;/p&gt;
&lt;/div&gt;
-&lt;p&gt;&lt;em&gt;Video 1: Extracting evaluation metrics for sessions, traces, and spans; viewing metrics on the dashboard to understand agent performance; performing on-demand evaluation by exploring session traces and spans; running the AI engine to identify patterns across low-scoring sessions;
-&lt;p&gt;Amazon Bedrock AgentCore provides 16 built-in evaluators organized by what they measure and when they run. There are 13 LLM-as-a-Judge evaluators to score interactions with detailed explanations, so teams can verify judgments and understand exactly why an interaction received a particular r
+&lt;p&gt;These batch jobs can run for more than 30 minutes with Code Interpreter sessions maintained throughout. They can also span day-long operations where the agent uses Code Interpreter intermittently. For example, it runs a session, trains a model externally, then re-invokes Code Interpreter to
+&lt;h2 id="security-zero-trust-sandbox-design"&gt;Security: Zero-trust sandbox design&lt;/h2&gt;
+&lt;p&gt;Abnormal chose the sandbox (no egress) configuration for Code Interpreter driven by two considerations:&lt;/p&gt;
+&lt;ol type="1"&gt;
+ &lt;li&gt;Reproducibility – Because the sandbox has no external network access, nothing outside Abnormal AI’s control can influence the agent’s behavior during that session. The environment is designed to be fully deterministic.&lt;/li&gt;
+ &lt;li&gt;Data exfiltration prevention – threat intelligence data enters the sandbox for analysis. Even if the agent becomes malicious through prompt injection or stochastic behavior, it is designed to prevent the exfiltration of that data to the internet.&lt;/li&gt;
+&lt;/ol&gt;
+&lt;p&gt;Additional security practices:&lt;/p&gt;
+&lt;ul&gt;
+ &lt;li&gt;Controlled data ingestion: intentional about what types of data enter Code Interpreter and what write actions are permitted.&lt;/li&gt;
+ &lt;li&gt;Subprocessor alignment: Code Interpreter operates under the existing AWS subprocessor relationship and reduces compliance overhead.&lt;/li&gt;
+ &lt;li&gt;Network isolation layering: sandbox isolation on top of their existing network-isolated harness provides defense in depth.&lt;/li&gt;
+&lt;/ul&gt;
+&lt;h2 id="lessons-learned-and-best-practices"&gt;Lessons learned and best practices&lt;/h2&gt;
+&lt;p&gt;Several practices emerged from running Code Interpreter in production at Abnormal AI.&lt;/p&gt;
+&lt;h3 id="give-the-agent-what-it-wants"&gt;1. Give the agent what it wants&lt;/h3&gt;
+&lt;p&gt;Agents perform better with a lightweight, general harness rather than rigid step-by-step workflows. Provide high-level principles for solving a problem and let the agent use its intelligence to determine the approach.&lt;/p&gt;
+&lt;h3 id="every-agent-needs-a-scratch-pad"&gt;2. Every agent needs a scratch pad&lt;/h3&gt;
+&lt;p&gt;Code Interpreter isn’t only for coding agents. Security agents analyzing email benefit from compute scratch pads for data aggregation, pattern analysis, and verification.&lt;/p&gt;
+&lt;h3 id="use-programmatic-verifiers-as-guardrails"&gt;3. Use programmatic verifiers as guardrails&lt;/h3&gt;
+&lt;p&gt;Agents deliver higher quality outputs when they have programmatic verification tools. Unit tests, integration tests, and linting allow the agent to self-test within the sandbox before delivering final results.&lt;/p&gt;
+&lt;h3 id="use-file-systems-as-recovery-points-for-long-running-tasks"&gt;4. Use file systems as recovery points for long-running tasks&lt;/h3&gt;
+&lt;p&gt;For operations exceeding the Code Interpreter session time (for example, model training), use the file system as a checkpoint. Run Code Interpreter for computation, persist state to files, perform long-running operations externally, then re-invoke Code Interpreter to process results. The an
+&lt;h2 id="conclusion"&gt;Conclusion&lt;/h2&gt;
+&lt;p&gt;Abnormal AI’s implementation demonstrates a key insight for production agent systems: Code Interpreter is not merely a coding tool. It’s fundamental infrastructure that agents use to reason computationally. By combining the managed, secure sandbox of AgentCore Code Interpreter with their ow
+&lt;ul&gt;
+ &lt;li&gt;Zero-trust security posture through sandbox isolation helping prevent data exfiltration.&lt;/li&gt;
+ &lt;li&gt;Billion-message scale by reserving agent compute for the hardest cases (Figure 2).&lt;/li&gt;
+&lt;/ul&gt;
+&lt;p&gt;Whether you’re building security agents or a system where agents need to crunch data and verify their own outputs, the pattern is clear. Give your agents a scratch pad and trust their evaluations more than you trust their assertions.&lt;/p&gt;
+&lt;h2 id="next-steps"&gt;Next steps&lt;/h2&gt;
+&lt;ul&gt;
+ &lt;li&gt;Get started with Amazon Bedrock AgentCore Code Interpreter.&lt;/li&gt;
+ &lt;li&gt;Explore AgentCore capabilities and other tools (Gateway, Memory, Runtime, Identity).&lt;/li&gt;
+ &lt;li&gt;Learn more about Abnormal AI at abnormalsecurity.com.&lt;/li&gt;
+&lt;/ul&gt;
+&lt;p&gt;Abnormal AI is an AWS customer. The views and opinions expressed in this post are those of the customer and don’t necessarily reflect the views of Amazon Web Services.&lt;/p&gt;
+&lt;hr style="width: 100%"&gt;
+&lt;h2&gt;About the authors&lt;/h2&gt;
+&lt;footer&gt;
+ &lt;div class="blog-author-box" style="padding-top: 2.0em"&gt;
+ &lt;div class="blog-author-image" style="margin-right: 1.0em"&gt;
+ &lt;img loading="lazy" class="alignnone size-full" src="https://d2908q01vomqb2.cloudfront.net/f1f836cb4ea6efb2a0b1b99f41ad8b103eff4b59/2026/09/11/ML-21301-5.jpg" alt="Aswin Vasudevan" width="100" height="133"&gt;
+ &lt;/div&gt;
+ &lt;h3 class="lb-h4"&gt;Aswin Vasudevan&lt;/h3&gt;
+ &lt;p style="overflow: hidden"&gt;Aswin is a Senior Solutions Architect for Security, ISV at AWS. He is a big fan of generative AI and serverless architecture and enjoys collaborating and working with customers to build solutions that drive business value.&lt;/p&gt;
+ &lt;/div&gt;
+ &lt;div class="blog-author-box" style="padding-top: 2.0em"&gt;
+ &lt;div class="blog-author-image" style="margin-right: 1.0em"&gt;
+ &lt;img loading="lazy" class="alignnone wp-image-139393 size-thumbnail" src="https://d2908q01vomqb2.cloudfront.net/f1f836cb4ea6efb2a0b1b99f41ad8b103eff4b59/2026/09/14/feliplp-headshot-2.jpg" alt="" width="100" height="122"&gt;
+ &lt;/div&gt;
+ &lt;h3 class="lb-h4"&gt;Felipe Lopez&lt;/h3&gt;
+ &lt;p style="overflow: hidden"&gt;Felipe is a Principal AI/ML Specialist Solutions Architect at AWS. Prior to joining AWS, Felipe worked with GE Digital and SLB, where he focused on modeling and optimization products for industrial applications.&lt;/p&gt;
+ &lt;/div&gt;
+ &lt;div class="blog-author-box" style="padding-top: 2.0em"&gt;
+ &lt;div class="blog-author-image" style="margin-right: 1.0em"&gt;
+ &lt;img loading="lazy" class="alignnone size-full" src="https://d2908q01vomqb2.cloudfront.net/f1f836cb4ea6efb2a0b1b99f41ad8b103eff4b59/2026/09/11/ML-21301-6.jpg" alt="Shrivu Shankar" width="100" height="133"&gt;
+ &lt;/div&gt;
+ &lt;h3 class="lb-h4"&gt;Shrivu Shankar&lt;/h3&gt;
+ &lt;p style="overflow: hidden"&gt;Shrivu is VP of AI Strategy at Abnormal AI, where he leads AI transformation and advances practical applications of agentic systems in cybersecurity and software development. A machine-learning engineer by background, he specializes in building AI-native workflows
+ &lt;/div&gt;
+&lt;/footer&gt;</content:encoded>
+
+
+
+ </item>
+ <item>
+ <title>Manage end-user OAuth consent for AI agents with Amazon Bedrock AgentCore</title>
+ <link>https://aws.amazon.com/blogs/machine-learning/manage-end-user-oauth-consent-for-ai-agents-with-amazon-bedrock-agentcore/</link>
+
+ <dc:creator><![CDATA[Swara Gandhi]]></dc:creator>
+ <pubDate>Mon, 14 Sep 2026 20:35:45 +0000</pubDate>
+ <category><![CDATA[Amazon Bedrock AgentCore]]></category>
+ <category><![CDATA[Announcements]]></category>
+ <category><![CDATA[Intermediate (200)]]></category>
+ <guid isPermaLink="false">495d8f6ad0d4243b65c44fc7dcf8019b7a6ecbef</guid>
+
+ <description>Amazon Bedrock AgentCore Identity now offers a Consent portal, a managed web experience and session binding endpoint for AgentCore Gateway. This post walks through provisioning a portal, configuring GitHub and Slack 3LO targets, and the end-user consent flow, and shows how to revie
+ <content:encoded>&lt;p&gt;AI agents often need to access services such as GitHub and Slack on a user’s behalf. Before an agent can act, the user must authenticate with the provider and explicitly approve the requested access. The application must then securely associate the resulting OAuth
+&lt;p&gt;Previously, customers using the AgentCore Identity (a capability of Amazon Bedrock AgentCore) three-legged OAuth (3LO) flow (also known as OAuth 2.0 authorization code flow) had to build and host their own session binding infrastructure. This included presenting the authorization URL, hosti
+&lt;p&gt;AgentCore Identity now offers a Consent portal, a managed web experience and session binding endpoint for AgentCore Gateway, a capability of Amazon Bedrock AgentCore. You create a portal for a gateway and share its URL with your users. Users authenticate with your organization’s identity pr
+&lt;p&gt;This capability is particularly useful for agents accessed through IDE and Model Context Protocol (MCP) clients such as Kiro, Claude Code, Cursor, and Visual Studio Code. Users can grant consent before invoking a tool, and subsequent tool calls can use the token already stored for that user
+&lt;div style="width: 810px" class="wp-caption alignnone"&gt;
+ &lt;a href="https://d2908q01vomqb2.cloudfront.net/f1f836cb4ea6efb2a0b1b99f41ad8b103eff4b59/2026/09/14/ML-21874-1.png" target="_blank" rel="noopener"&gt;&lt;img src="https://d2908q01vomqb2.cloudfront.net/f1f836cb4ea6efb2a0b1b99f41ad8b103eff4b59/2026/09/14/ML-21874-1.png" alt="Consent portal architec
+ &lt;p class="wp-caption-text"&gt;Figure 1: The Consent portal authenticates the user with the corporate IdP, uses its IAM execution role to discover configured gateway targets, presents provider connections, completes session binding, and stores per-user tokens in the AgentCore Identity token vault
+&lt;/div&gt;
+&lt;h2 id="example-scenario-give-a-development-assistant-access-to-github"&gt;Example scenario: Give a development assistant access to GitHub&lt;/h2&gt;
+&lt;p&gt;Consider a company named Example Corp that provides its developers with an AI coding assistant through an AgentCore Gateway. The assistant has two targets:&lt;/p&gt;
+&lt;ul&gt;
+ &lt;li&gt;A GitHub target that can list repositories and create issues.&lt;/li&gt;
+ &lt;li&gt;A Slack target that can list public channels and post messages.&lt;/li&gt;
+&lt;/ul&gt;
+&lt;p&gt;Example Corp uses its corporate IdP to authenticate employees. The administrator wants each GitHub and Slack OAuth grant to remain associated with the employee who approved it. Developers can connect either provider independently and return to their IDE without repeated prompts.&lt;/p&gt;
+&lt;p&gt;The walkthrough follows these two roles:&lt;/p&gt;
+&lt;ul&gt;
+ &lt;li&gt;&lt;strong&gt;Administrator:&lt;/strong&gt; Configures the corporate IdP, GitHub and Slack gateway targets, execution role, and Consent portal, and then sends the portal URL to developers.&lt;/li&gt;
+ &lt;li&gt;&lt;strong&gt;End user:&lt;/strong&gt; Opens the URL, signs in with the corporate IdP, connects GitHub when needed, and can grant Slack access separately.&lt;/li&gt;
+&lt;/ul&gt;
+&lt;h2 id="prerequisites"&gt;Prerequisites&lt;/h2&gt;
+&lt;p&gt;Before starting the walkthrough, Example Corp needs:&lt;/p&gt;
+&lt;ul&gt;
+ &lt;li&gt;An &lt;a href="https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/agentcore-get-started-cli.html" target="_blank" rel="noopener"&gt;AWS account with access to Amazon Bedrock AgentCore&lt;/a&gt;.&lt;/li&gt;
+ &lt;li&gt;An &lt;a href="https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/gateway-quick-start.html" target="_blank" rel="noopener"&gt;AgentCore Gateway&lt;/a&gt; configured with &lt;a href="https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/gateway-inbound-auth.html" target=
+ &lt;li&gt;An IDE or MCP client configured to connect to the same AgentCore Gateway that will be attached to the Consent portal.&lt;/li&gt;
+ &lt;li&gt;Administrative access to the corporate IdP.&lt;/li&gt;
+ &lt;li&gt;A registered &lt;a href="https://docs.github.com/en/apps/oauth-apps/building-oauth-apps/creating-an-oauth-app" target="_blank" rel="noopener"&gt;GitHub OAuth App&lt;/a&gt; and &lt;a href="https://docs.slack.dev/authentication/installing-with-oauth/" target="_blank" rel="noopener"&gt;Slack
+ &lt;li&gt;Permission to register the AgentCore Identity callback URL in each provider application.&lt;/li&gt;
+&lt;/ul&gt;
+&lt;h2 id="getting-started"&gt;Getting started&lt;/h2&gt;
+&lt;p&gt;The following steps show what the Example Corp administrator configures and what a developer experiences after receiving the portal URL.&lt;/p&gt;
+&lt;h4 id="steps-for-administrator"&gt;Steps for administrator&lt;/h4&gt;
+&lt;p&gt;The administrator completes Steps 1–6 to configure the identity provider, gateway targets, execution role, and Consent portal.&lt;/p&gt;
+&lt;h4 id="step-1-prepare-the-corporate-idp-and-gateway-connections"&gt;Step 1: Prepare the corporate IdP and gateway connections&lt;/h4&gt;
+&lt;p&gt;&lt;strong&gt;Administrator IAM policy&lt;/strong&gt;&lt;/p&gt;
+&lt;p&gt;Attach this policy to the administrator identity that performs Steps 1–3. Replace the account ID.&lt;/p&gt;
+&lt;div class="hide-language"&gt;
+ &lt;pre&gt;&lt;code class="language-json"&gt;{
+ "Version": "2012-10-17",
+ "Statement": [
+ {
+ "Sid": "ManageConsentPortalResources",
+ "Effect": "Allow",
+ "Action": [
+ "bedrock-agentcore:CreateConsentPortal",
+ "bedrock-agentcore:GetConsentPortal",
+ "bedrock-agentcore:ListConsentPortals",
+ "bedrock-agentcore:CreateOauth2CredentialProvider",
+ "bedrock-agentcore:GetOauth2CredentialProvider",
+ "bedrock-agentcore:ListOauth2CredentialProviders",
+ "bedrock-agentcore:GetGateway",
+ "bedrock-agentcore:ListGateways",
+ "bedrock-agentcore:CreateGatewayTarget",
+ "bedrock-agentcore:GetGatewayTarget",
+ "bedrock-agentcore:ListGatewayTargets",
+ "bedrock-agentcore:UpdateGatewayTarget"
+ ],
+ "Resource": "*"
+ },
+ {
+ "Sid": "CreateAndPassExecutionRole",
+ "Effect": "Allow",
+ "Action": [
+ "iam:CreateRole",
+ "iam:GetRole",
+ "iam:PutRolePolicy",
+ "iam:GetRolePolicy",
+ "iam:PassRole"
+ ],
+ "Resource": "arn:aws:iam::111122223333:role/service-role/AmazonBedrockAgentCoreConsentPortal*"
+ }
+ ]
+}&lt;/code&gt;&lt;/pre&gt;
+&lt;/div&gt;
+&lt;p&gt;The AWS Identity and Access Management (IAM) statement covers the &lt;strong&gt;Create default role&lt;/strong&gt; option on the console, which creates a service role named &lt;code&gt;AmazonBedrockAgentCoreConsentPortalDefaultServiceRole-&amp;lt;suffix&amp;gt;&lt;/code&gt;. If you supply y
+&lt;h4 id="step-2-configure-the-corporate-idp-application"&gt;Step 2: Configure the corporate IdP application&lt;/h4&gt;
+&lt;ol type="1"&gt;
+ &lt;li&gt;In the corporate IdP, create an OpenID Connect (OIDC) web application for the Consent portal.&lt;/li&gt;
+ &lt;li&gt;Enable the authorization code grant and generate a client ID and client secret.&lt;/li&gt;
+ &lt;li&gt;Configure the login scopes, at minimum &lt;code&gt;openid&lt;/code&gt;.&lt;/li&gt;
+ &lt;li&gt;Record the OpenID Connect (OIDC) discovery URL. The portal uses the authorization endpoint, token endpoint, and signing keys from this document.&lt;/li&gt;
+ &lt;li&gt;Add a temporary callback URL. You replace it in Step 6, after the portal URL exists.&lt;/li&gt;
+&lt;/ol&gt;
+&lt;p&gt;The IdP must issue a JSON Web Token (JWT) access token that the portal can validate. For example, with Okta, use a custom authorization server with an access policy that permits the application and the authorization code grant. With Auth0, configure an audience when needed so the IdP return
+&lt;h4 id="step-3-create-the-idp-credential-provider"&gt;Step 3: Create the IdP credential provider&lt;/h4&gt;
+&lt;p&gt;The portal reads the IdP client ID and client secret from an OAuth2 credential provider.&lt;/p&gt;
+&lt;ol type="1"&gt;
+ &lt;li&gt;Open the Amazon Bedrock AgentCore console.&lt;/li&gt;
+ &lt;li&gt;Under &lt;strong&gt;Build&lt;/strong&gt;, choose &lt;strong&gt;Identity&lt;/strong&gt;.&lt;/li&gt;
+ &lt;li&gt;In &lt;strong&gt;Outbound Auth&lt;/strong&gt;, choose &lt;strong&gt;Add Outbound Auth&lt;/strong&gt;, and then choose &lt;strong&gt;Add OAuth client&lt;/strong&gt;.&lt;/li&gt;
+ &lt;li&gt;Enter a name, such as &lt;code&gt;gateway-demo-idp&lt;/code&gt;.&lt;/li&gt;
+ &lt;li&gt;Enter the client ID and client secret from the corporate IdP application, and provide the OIDC discovery configuration.&lt;/li&gt;
+ &lt;li&gt;Choose &lt;strong&gt;Add OAuth client&lt;/strong&gt;.&lt;/li&gt;
+&lt;/ol&gt;
+&lt;div style="width: 810px" class="wp-caption alignnone"&gt;
+ &lt;a href="https://d2908q01vomqb2.cloudfront.net/f1f836cb4ea6efb2a0b1b99f41ad8b103eff4b59/2026/09/14/ML-21874-5.png" target="_blank" rel="noopener"&gt;&lt;img src="https://d2908q01vomqb2.cloudfront.net/f1f836cb4ea6efb2a0b1b99f41ad8b103eff4b59/2026/09/14/ML-21874-5.png" alt="AgentCore Identity page
+ &lt;p class="wp-caption-text"&gt;Figure 2: AgentCore Identity uses one credential provider for portal sign-in and separate outbound providers for GitHub and Slack&lt;/p&gt;
+&lt;/div&gt;
+&lt;h4 id="step-4-verify-outbound-prerequisites"&gt;Step 4: Verify outbound prerequisites&lt;/h4&gt;
+&lt;p&gt;Before creating the Consent portal, confirm:&lt;/p&gt;
+&lt;ul&gt;
+ &lt;li&gt;The GitHub and Slack OAuth applications are registered, and their client secrets are stored in AWS Secrets Manager.&lt;/li&gt;
+ &lt;li&gt;AgentCore Identity has separate outbound OAuth credential providers for GitHub and Slack, and each generated callback URL is registered with the matching provider application.&lt;/li&gt;
+ &lt;li&gt;The GitHub and Slack gateway targets use the authorization code grant, request only the required scopes, and have a &lt;strong&gt;Ready&lt;/strong&gt; status.&lt;/li&gt;
+ &lt;li&gt;The Consent portal execution role selected in Step 5 can read any customer-managed secrets referenced by the outbound credential providers.&lt;/li&gt;
+&lt;/ul&gt;
+&lt;p&gt;After the portal URL is assigned, configure each target’s default return URL in Step 6.&lt;/p&gt;
+&lt;div style="width: 810px" class="wp-caption alignnone"&gt;
+ &lt;a href="https://d2908q01vomqb2.cloudfront.net/f1f836cb4ea6efb2a0b1b99f41ad8b103eff4b59/2026/09/14/ML-21874-6.png" target="_blank" rel="noopener"&gt;&lt;img src="https://d2908q01vomqb2.cloudfront.net/f1f836cb4ea6efb2a0b1b99f41ad8b103eff4b59/2026/09/14/ML-21874-6.png" alt="Gateway with independen
+ &lt;p class="wp-caption-text"&gt;Figure 3: The gateway exposes independent GitHub and Slack targets, each associated with its own outbound OAuth provider&lt;/p&gt;
+&lt;/div&gt;
+&lt;h4 id="step-5-create-the-consent-portal"&gt;Step 5: Create the Consent portal&lt;/h4&gt;
+&lt;p&gt;On the &lt;strong&gt;Identity&lt;/strong&gt; page, the &lt;strong&gt;Consent portals&lt;/strong&gt; section lists the portals in the account and AWS Region.&lt;/p&gt;
+&lt;div style="width: 810px" class="wp-caption alignnone"&gt;
+ &lt;a href="https://d2908q01vomqb2.cloudfront.net/f1f836cb4ea6efb2a0b1b99f41ad8b103eff4b59/2026/09/14/ML-21874-2.png" target="_blank" rel="noopener"&gt;&lt;img src="https://d2908q01vomqb2.cloudfront.net/f1f836cb4ea6efb2a0b1b99f41ad8b103eff4b59/2026/09/14/ML-21874-2.png" alt="Consent portals section
+ &lt;p class="wp-caption-text"&gt;Figure 4: The Consent portals section on the AgentCore Identity page. Create a portal only when a gateway uses 3LO that requires user consent&lt;/p&gt;
+&lt;/div&gt;
+&lt;ol type="1"&gt;
+ &lt;li&gt;In &lt;strong&gt;Consent portals&lt;/strong&gt;, choose &lt;strong&gt;Create portal&lt;/strong&gt;.&lt;/li&gt;
+ &lt;li&gt;Under &lt;strong&gt;Consent portal details&lt;/strong&gt;, for &lt;strong&gt;Name&lt;/strong&gt;, enter a name such as &lt;code&gt;consent-portal-heqk0&lt;/code&gt;. Names accept 1–50 characters, using letters, numbers, hyphens, and underscores.&lt;/li&gt;
+ &lt;li&gt;Optionally enter a &lt;strong&gt;Description&lt;/strong&gt; of up to 512 characters.&lt;/li&gt;
+ &lt;li&gt;For &lt;strong&gt;Gateway&lt;/strong&gt;, select the development assistant’s gateway. The gateway name is visible to end users in the Consent portal, so choose a clear, recognizable name. One Consent portal is allowed per gateway, and the gateway can’t be changed after creation.&lt;/li&gt
+ &lt;li&gt;Under &lt;strong&gt;IdP credential configurations&lt;/strong&gt;, for &lt;strong&gt;IdP Credential Provider&lt;/strong&gt;, select the OAuth2 credential provider created in Step 3.&lt;/li&gt;
+ &lt;li&gt;Under &lt;strong&gt;Scopes&lt;/strong&gt;, keep the required &lt;code&gt;openid&lt;/code&gt; scope. Additional scopes are optional. Choose &lt;strong&gt;Add scope&lt;/strong&gt; only when your IdP or application requires them.&lt;/li&gt;
+ &lt;li&gt;For &lt;strong&gt;Audience – optional&lt;/strong&gt;, keep &lt;strong&gt;None&lt;/strong&gt; unless your gateway specifies audiences. The value is validated against the audiences configured on the AgentCore Gateway.&lt;/li&gt;
+ &lt;li&gt;Expand &lt;strong&gt;Permissions&lt;/strong&gt;. For &lt;strong&gt;IAM permissions&lt;/strong&gt;, choose &lt;strong&gt;Create default role&lt;/strong&gt; to have the console create a service role with the required permissions, or choose &lt;strong&gt;Use another role&lt;/strong&gt; to se
+ &lt;li&gt;Choose &lt;strong&gt;Create portal&lt;/strong&gt;.&lt;/li&gt;
+&lt;/ol&gt;
+&lt;div style="width: 810px" class="wp-caption alignnone"&gt;
+ &lt;a href="https://d2908q01vomqb2.cloudfront.net/f1f836cb4ea6efb2a0b1b99f41ad8b103eff4b59/2026/09/14/ML-21874-3.png" target="_blank" rel="noopener"&gt;&lt;img src="https://d2908q01vomqb2.cloudfront.net/f1f836cb4ea6efb2a0b1b99f41ad8b103eff4b59/2026/09/14/ML-21874-3.png" alt="Consent portal detail p
+ &lt;p class="wp-caption-text"&gt;Figure 5: While the status is Creating, the portal ARN and execution role are visible but the URL isn’t assigned yet&lt;/p&gt;
+&lt;/div&gt;
+&lt;p&gt;When provisioning finishes, the status changes to &lt;strong&gt;Active&lt;/strong&gt;, the &lt;strong&gt;Consent portal URL&lt;/strong&gt; appears, and a &lt;strong&gt;Launch Consent portal&lt;/strong&gt; button opens it in a new tab. The URL follows the pattern &lt;code&gt;https://&amp;lt;
+&lt;div style="width: 810px" class="wp-caption alignnone"&gt;
+ &lt;a href="https://d2908q01vomqb2.cloudfront.net/f1f836cb4ea6efb2a0b1b99f41ad8b103eff4b59/2026/09/14/ML-21874-4.png" target="_blank" rel="noopener"&gt;&lt;img src="https://d2908q01vomqb2.cloudfront.net/f1f836cb4ea6efb2a0b1b99f41ad8b103eff4b59/2026/09/14/ML-21874-4.png" alt="Consent portal detail p
+ &lt;p class="wp-caption-text"&gt;Figure 6: After the portal becomes Active, the console shows the assigned URL that you share with end users&lt;/p&gt;
+&lt;/div&gt;
+&lt;h4 id="step-6-register-callback-urls-and-send-the-portal-url"&gt;Step 6: Register callback URLs and send the portal URL&lt;/h4&gt;
+&lt;ol type="1"&gt;
+ &lt;li&gt;Copy the &lt;strong&gt;consent portal URL&lt;/strong&gt; from the portal details page.&lt;/li&gt;
+ &lt;li&gt;In the corporate IdP application, for example, Amazon Cognito, Okta, or Auth0, replace the temporary callback with &lt;code&gt;&amp;lt;portal-url&amp;gt;/callback&lt;/code&gt;. Don’t add a trailing slash. This isn’t the GitHub or Slack application callback. Those applications use the uniq
+ &lt;li&gt;For each 3LO gateway target, set the default return URL to &lt;code&gt;&amp;lt;portal-url&amp;gt;/connect/callback&lt;/code&gt;.&lt;/li&gt;
+ &lt;li&gt;Confirm that each outbound provider application contains the AgentCore Identity callback URL returned when its OAuth credential provider was created.&lt;/li&gt;
+ &lt;li&gt;Test the portal URL in a browser.&lt;/li&gt;
+ &lt;li&gt;Send the portal URL to the development team through an approved communication channel.&lt;/li&gt;
+&lt;/ol&gt;
+&lt;h4 id="callback-url-reference"&gt;Callback URL reference&lt;/h4&gt;
&lt;table border="1px" width="100%" cellpadding="10px"&gt;
&lt;tbody&gt;
&lt;tr&gt;
- &lt;td&gt;&lt;strong&gt;Evaluator&lt;/strong&gt;&lt;/td&gt;
- &lt;td&gt;&lt;strong&gt;Definition&lt;/strong&gt;&lt;/td&gt;
- &lt;td&gt;&lt;strong&gt;Evaluation Level&lt;/strong&gt;&lt;/td&gt;
- &lt;/tr&gt;
- &lt;tr&gt;
- &lt;td&gt;Goal Success Rate&lt;/td&gt;
- &lt;td&gt;Assesses whether the AI assistant successfully completed the user goals within a conversation session by analyzing the entire conversation end-to-end.&lt;/td&gt;
- &lt;td&gt;Session&lt;/td&gt;
- &lt;/tr&gt;
- &lt;tr&gt;
- &lt;td&gt;Coherence&lt;/td&gt;
- &lt;td&gt;Assesses the logical consistency and cohesion of a response, checking for self-contradictions, logic gaps, and soundness of reasoning without evaluating factual accuracy.&lt;/td&gt;
- &lt;td&gt;Trace&lt;/td&gt;
- &lt;/tr&gt;
- &lt;tr&gt;
- &lt;td&gt;Conciseness&lt;/td&gt;
- &lt;td&gt;Measures how efficiently the assistant communicates, assessing whether responses provide necessary information using minimal words without unnecessary elaboration.&lt;/td&gt;
- &lt;td&gt;Trace&lt;/td&gt;
- &lt;/tr&gt;
- &lt;tr&gt;
- &lt;td&gt;Correctness&lt;/td&gt;
- &lt;td&gt;Assesses the factual accuracy of a response to a given task, focusing on whether the content and solution are accurate regardless of style or presentation.&lt;/td&gt;
- &lt;td&gt;Trace&lt;/td&gt;
- &lt;/tr&gt;
- &lt;tr&gt;
- &lt;td&gt;Faithfulness&lt;/td&gt;
- &lt;td&gt;Assesses whether a response remains consistent with the conversation history, identifying conflicts between the current response and previous interactions within the same conversation.&lt;/td&gt;
- &lt;td&gt;Trace&lt;/td&gt;

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