<?xml version="1.0" encoding="UTF-8" standalone="no"?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><rss xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" version="2.0"><channel><title>Think Different</title><description>Ready to rapidly transform your startup? I translate complex AI, GenAI, IoT, and Robotics into tangible, growth-driving solutions that unlock new market opportunities and accelerate your innovation roadmap.</description><managingEditor>noreply@blogger.com (Dhiraj Patra)</managingEditor><pubDate>Thu, 15 Oct 2026 19:16:52 -0700</pubDate><generator>Blogger http://www.blogger.com</generator><openSearch:totalResults xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">663</openSearch:totalResults><openSearch:startIndex xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">1</openSearch:startIndex><openSearch:itemsPerPage xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">25</openSearch:itemsPerPage><link>http://dhirajpatra.blogspot.com/</link><language>en-us</language><itunes:explicit>no</itunes:explicit><copyright>it is protected by author</copyright><itunes:keywords>dhiraj,dhirajpatra,php</itunes:keywords><itunes:summary>it describes my personal view</itunes:summary><itunes:subtitle>dhiraj patra</itunes:subtitle><itunes:author>dhiraj patra</itunes:author><itunes:owner><itunes:email>dhiraj.patra@gmail.com</itunes:email><itunes:name>dhiraj patra</itunes:name></itunes:owner><item><title>How Two MAC Behave Like One Supercomputer</title><link>http://dhirajpatra.blogspot.com/2026/10/how-two-mac-behave-like-one.html</link><category>architecture</category><category>artificial intelligence</category><category>computer</category><category>llm</category><category>mac</category><category>memory</category><pubDate>Thu, 15 Oct 2026 19:16:52 -0700</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8993867651193907565.post-4421868709059621828</guid><description>&lt;p&gt;&lt;span style="font-family: system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Ubuntu, Oxygen, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol;"&gt;&lt;span style="background-color: white; font-size: 14px; white-space-collapse: preserve;"&gt;The "1TB of unified memory" achieved by two Mac Studios is not a true hardware pooling of memory into one contiguous block, but rather a distributed shared memory cluster built through high-speed interconnect and software coordination.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Ubuntu, Oxygen, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol;"&gt;&lt;span style="background-color: white; font-size: 14px; white-space-collapse: preserve;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Ubuntu, Oxygen, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol;"&gt;&lt;span style="background-color: white; font-size: 14px; white-space-collapse: preserve;"&gt;&#129504; &lt;b&gt;Core Mechanism: RDMA over Thunderbolt 5&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="background-color: white; font-family: system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Ubuntu, Oxygen, Cantarell, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;; font-size: 14px; white-space-collapse: preserve;"&gt;The foundation of this "supercomputer-like" system is RDMA over Thunderbolt technology.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="background-color: white; font-family: system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Ubuntu, Oxygen, Cantarell, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;; font-size: 14px; white-space-collapse: preserve;"&gt;- Direct Memory Access: RDMA allows one machine to directly read and write memory on another machine, bypassing the operating system's network stack (such as TCP/IP). This avoids the massive overhead of data copying through multiple software layers, drastically reducing latency.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="background-color: white; font-family: system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Ubuntu, Oxygen, Cantarell, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;; font-size: 14px; white-space-collapse: preserve;"&gt;- Physical Connection: This relies on Thunderbolt 5 cables. Tests show that the actual throughput of Thunderbolt 5 can reach around 8.65 GiB/s (approximately 74 Gbit/s), reaching 93% of its nominal 80 Gbit/s bandwidth, which is the hardware foundation for enabling "memory-like" remote access.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="background-color: white; font-family: system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Ubuntu, Oxygen, Cantarell, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;; font-size: 14px; white-space-collapse: preserve;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="background-color: white; font-family: system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Ubuntu, Oxygen, Cantarell, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;; font-size: 14px; white-space-collapse: preserve;"&gt;⚙️ &lt;b&gt;Software Layer: How Data is Distributed&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="background-color: white; font-family: system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Ubuntu, Oxygen, Cantarell, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;; font-size: 14px; white-space-collapse: preserve;"&gt;While hardware provides the "highway," software determines how models are distributed across these two Macs.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="background-color: white; font-family: system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Ubuntu, Oxygen, Cantarell, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;; font-size: 14px; white-space-collapse: preserve;"&gt;- MLX Framework: Apple's MLX framework is the key software. It is specifically designed for Apple Silicon's unified memory architecture, with an important characteristic: it currently tends to evenly distribute memory and computational load across nodes.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="background-color: white; font-family: system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Ubuntu, Oxygen, Cantarell, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;; font-size: 14px; white-space-collapse: preserve;"&gt;- Model Sharding: Taking Llama 4 Scout as an example, this model uses a Mixture of Experts (MoE) architecture. It has a total of 109B parameters, but only 17B parameters are activated per inference. Software must distribute these 109B "expert weights" across the memory of two Macs. During each token generation, the system needs to route computation to the Mac node that holds the relevant expert.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Ubuntu, Oxygen, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol;"&gt;&lt;span style="background-color: white; font-size: 14px; white-space-collapse: preserve;"&gt;&#128679; &lt;b&gt;Key Technical Limitations and Realities&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="background-color: white; font-family: system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Ubuntu, Oxygen, Cantarell, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;; font-size: 14px; white-space-collapse: preserve;"&gt;Although Meta describes it as "behaving like one supercomputer," there are clear physical and software boundaries in practice:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="background-color: white; font-family: system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Ubuntu, Oxygen, Cantarell, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;; font-size: 14px; white-space-collapse: preserve;"&gt;- Local vs. Remote: Each M5 Ultra chip still has only its own physical memory (e.g., 512GB), with local memory bandwidth as high as 1.2 TB/s. But when a GPU needs data residing on another Mac, it must cross the Thunderbolt cable, and the speed difference is in orders of magnitude. RDMA reduces latency, but cannot eliminate the physical bottleneck of external interconnect.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="background-color: white; font-family: system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Ubuntu, Oxygen, Cantarell, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;; font-size: 14px; white-space-collapse: preserve;"&gt;- Configuration Symmetry Requirements: For the system to work stably, two Macs are best configured with identical memory capacity. Testing shows that if one is 256GB and the other is 128GB, MLX's even distribution characteristic will cause the system to use only 128GB from each, resulting in a total of 256GB, wasting half of the larger machine's capacity.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="background-color: white; font-family: system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Ubuntu, Oxygen, Cantarell, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;; font-size: 14px; white-space-collapse: preserve;"&gt;- Performance Scaling: Adding machines is not linear speedup. Official data shows that a cluster of four Mac Studios runs AI inference approximately 3x faster than a single machine, not 4x. This is because inter-machine communication overhead consumes time and resources.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Ubuntu, Oxygen, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol;"&gt;&lt;span style="background-color: white; font-size: 14px; white-space-collapse: preserve;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="background-color: white; font-family: system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Ubuntu, Oxygen, Cantarell, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;; font-size: 14px; white-space-collapse: preserve;"&gt;&#128142; &lt;b&gt;Summary&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="background-color: white; font-family: system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Ubuntu, Oxygen, Cantarell, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;; font-size: 14px; white-space-collapse: preserve;"&gt;The mechanism of "1TB unified memory" is: physical Thunderbolt 5 connections + RDMA low-level memory access + MLX framework's model distribution logic. It achieves a shared memory pool that can run ultra-large models, but the essence remains distributed computing; the speed and efficiency of data exchange between two independent computers are far below the internal unified memory speed within a single chip.&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;Open Source Open Mind&lt;/div&gt;</description><author>dhiraj.patra@gmail.com (dhiraj patra)</author></item><item><title>Check Username Availability with Bloom Filter</title><link>http://dhirajpatra.blogspot.com/2026/10/check-username-availability-with-bloom.html</link><category>architecture</category><category>programming</category><category>python</category><pubDate>Sun, 4 Oct 2026 21:36:17 -0700</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8993867651193907565.post-2583119931929327195</guid><description>&lt;p&gt;&lt;span data-processed="true" data-subtree="aimfl" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 16px; margin: 0px;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="" data-complete="true" data-sfc-root="ep" jsaction="" jscontroller="zp3Dsd#fP0RJ" jsuid="jdiWYb_r" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div data-xid="aQR2uf" jsaction="aimRestoredThreadVisible:&amp;amp;jdiWYb_d|ZUljYd;requestToggleBottomSheet:&amp;amp;jdiWYb_d|aXD3Gb" jsuid="jdiWYb_e" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;&lt;/div&gt;&lt;div data-complete="true" data-sfc-inited="2" data-sfc-root="c" data-wiz-uids="jdiWYb_x,jdiWYb_y" jsaction="rcuQ6b:&amp;amp;jdiWYb_w|npT2md" jscontroller="CAwPlc#Hx4Oqd" jsuid="jdiWYb_w" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;&lt;!--TgQPHdjdiWYb_d/YOIIaf;jdiWYb_d/VWapad|||[{&amp;quot;s&amp;quot;:false,&amp;quot;i&amp;quot;:&amp;quot;jdiWYb_d/YOIIaf&amp;quot;},{&amp;quot;s&amp;quot;:null,&amp;quot;i&amp;quot;:&amp;quot;jdiWYb_d/VWapad&amp;quot;},156,{&amp;quot;s&amp;quot;:null,&amp;quot;i&amp;quot;:&amp;quot;jdiWYb_d/C5DOxd&amp;quot;},[&amp;quot;AimExportActionToastLink&amp;quot;,309275],&amp;quot;\u0026jdiWYb_d:bREfu&amp;quot;,false]--&gt;&lt;/div&gt;&lt;!--TgQPHd|jdiWYb_d/YOIIaf;jdiWYb_d/We76zc;jdiWYb_d/C5DOxd;jdiWYb_d/VWapad;jdiWYb_d/LL5gb||[[null,0,null,0,null,0,[&amp;quot;how to check that username already existing without checking the database for million users&amp;quot;],0,0,[&amp;quot;how to check that username already existing without checking the database for million users&amp;quot;]]]--&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="pWvJNd" data-complete="true" data-sfc-root="ep" jsaction="" jscontroller="zp3Dsd#fP0RJ" jsuid="jdiWYb_h" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;&lt;div data-complete="true" data-sfc-root="ep" jsaction="" jscontroller="z34MU#CsVNRe" jsname="s7e4Od" jsuid="jdiWYb_i" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;&lt;span style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div class="mZJni Dn7Fzd" data-container-id="main-col" data-ctx-provider="[[[&amp;quot;dMtGDc&amp;quot;,&amp;quot;[false]&amp;quot;]]]" data-sfc-inited="2" data-sfc-root="ep" data-ved="2ahUKEwjQitfFg6KXAxVdUGcHHTkMKzoQ3KYQeggIAggBCAEQAg" data-xid="VpUvz" dir="ltr" jsaction="cC6SSe:&amp;amp;jdiWYb_j|mNzCb;" jscontroller="Aoijq#INwBm" jsname="KFl8ub" jsuid="jdiWYb_j" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;&lt;span style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;&lt;div class="n6owBd awi2gc" data-complete="true" data-hveid="CAIIAQgHEAA" data-processed="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="TDBkbc#Ml18Xb" jsuid="jdiWYb_14" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none;"&gt;&lt;span data-subtree="aimfl" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;To check if a username exists without querying a massive database of millions of users every time, &lt;/span&gt;&lt;mark class="MAeH" data-complete="true" data-sfc-root="ep" data-ved="2ahUKEwjQitfFg6KXAxVdUGcHHTkMKzoQuJAPeggIAggBCAcQAQ" data-wiz-attrbind="class=jdiWYb_16/cFwyDc" jsaction="click:&amp;amp;jdiWYb_16|ZUljYd;" jscontroller="IyE5S#Mt0KKb" jsuid="jdiWYb_16" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 16px; font-weight: 500; margin: 0px; text-decoration: none;"&gt;large-scale systems use a multi-layered architecture built around a data structure called a &lt;strong class="rQesXe MPyX" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="tP2kf#s32ZS" jsuid="jdiWYb_17" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 16px; font-weight: 500; margin: 0px; text-decoration: none;"&gt;&lt;span class="iNqyIf" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="KdQfFc#d5Qebf" jsuid="jdiWYb_18" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 16px; font-weight: 500; margin: 0px; text-decoration: none;"&gt;&lt;span class="iNqyIf" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="KdQfFc#d5Qebf" jsuid="jdiWYb_19" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 16px; font-weight: 500; margin: 0px; text-decoration: none;"&gt;Bloom Filter&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/strong&gt;&lt;!--TgQPHd|||[[[null,null,null,null,null,null,null,null,null,null,null,null,[247864,null,0]]]]--&gt;&lt;/mark&gt;.&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div class="n6owBd awi2gc" data-complete="true" data-hveid="CAIIAQgdEAA" data-processed="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="TDBkbc#Ml18Xb" jsuid="jdiWYb_1h" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none;"&gt;&lt;span class="iNqyIf" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="KdQfFc#d5Qebf" jsuid="jdiWYb_1i" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;By using a &lt;span class="iNqyIf" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="KdQfFc#d5Qebf" jsuid="jdiWYb_1j" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;Bloom filter&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; alongside an in-memory cache, platforms can instantly determine if a username is available in a matter of microseconds, entirely bypassing the database for the vast majority of new signups&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;.&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div class="yhAwj" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-inited="2" data-sfc-root="ep" jsaction="rcuQ6b:&amp;amp;jdiWYb_1r|npT2md" jscontroller="UTzWVc#U8DOt" jsuid="jdiWYb_1r" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;hr class="s6NV4e" data-complete="true" data-processed="true" data-sfc-pl="|||[]" data-sfc-root="ep" jsaction="" jscontroller="gWGJ0d#iOlsLd" jsuid="jdiWYb_1s" style="border-bottom: 0px rgb(128, 128, 128); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 14px; font-weight: 400; margin: 32px 0px; text-decoration: none;" /&gt;&lt;div class="yhAwj" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-inited="2" data-sfc-root="ep" jsaction="rcuQ6b:&amp;amp;jdiWYb_1t|npT2md" jscontroller="UTzWVc#U8DOt" jsuid="jdiWYb_1t" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div aria-level="3" class="otQkpb" data-animation-nesting="" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-root="ep" data-wiz-attrbind="aria-level=jdiWYb_1u/fLk2Md" jsaction="" jscontroller="a7qCn#ZxCkTb" jsuid="jdiWYb_1u" role="heading" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 20px; font-weight: 600; margin: 24px 0px 12px; text-decoration: none;"&gt;The Three-Layer Architecture&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div class="n6owBd awi2gc" data-complete="true" data-hveid="CAIIAQgvEAA" data-processed="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="TDBkbc#Ml18Xb" jsuid="jdiWYb_1v" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none;"&gt;Instead of hitting the database directly, the request passes through three distinct gates:&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div class="yhAwj" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-inited="2" data-sfc-root="ep" jsaction="rcuQ6b:&amp;amp;jdiWYb_23|npT2md" jscontroller="UTzWVc#U8DOt" jsuid="jdiWYb_23" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div class="BpxUDf aiModeUiCodeBlock__Container" data-complete="true" data-hveid="CAIIAQgwEAA" data-processed="true" data-sfc-cp="" data-sfc-root="ep" data-wiz-uids="jdiWYb_26,jdiWYb_25" jsaction="" jscontroller="Liu6s#lcO7sb" jsuid="jdiWYb_24" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 14px; font-weight: 400; margin: 4px 0px 0px; text-decoration: none;"&gt;&lt;div style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;&lt;div class="rq1a2" data-animation-atomic="" style="border-bottom: 0.8px solid rgb(240, 242, 245); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;&lt;div class="PGvq2d" dir="ltr" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;&lt;pre style="border-bottom: 0px rgb(10, 10, 10); font-family: monospace; font-size: 14px; font-weight: 400; margin: 14px 0px; text-decoration: none;"&gt;&lt;code jsuid="jdiWYb_26" style="border-bottom: 0px rgb(10, 10, 10); font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;&lt;span class="undefined" style="border-bottom: 0px rgb(10, 10, 10); font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;[ New Signup Request ] 
          │
          ▼
┌──────────────────┐  Says "No" (Definitely Available) ──► [ Approve Username ]
│ 1. Bloom Filter  ├─────────────────────────────────────────────────┐
└─────────┬────────┘                                                 │
          │ Says "Yes" (Might be taken)                              │
          ▼                                                          │
┌──────────────────┐  Found (Definitely Taken) ─────────────────────┼──► [ Reject ]
│   2. Redis Cache ├─────────────────────────────────────────┐       │
└─────────┬────────┘                                         │       │
          │ Cache Miss (Not found in cache)                  │       │
          ▼                                                  ▼       ▼
┌──────────────────┐  Found ────────────────────────────────► [ Reject &amp;amp; Update Cache ]
│ 3. Main Database │
└──────────────────┘  Not Found ────────────────────────────► [ Save to DB &amp;amp; Update Filter ]
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--TgQPHd|||[[&amp;quot;unset&amp;quot;,&amp;quot;[ New Signup Request ] \n          │\n          ▼\n┌──────────────────┐  Says \&amp;quot;No\&amp;quot; (Definitely Available) ──► [ Approve Username ]\n│ 1. Bloom Filter  ├─────────────────────────────────────────────────┐\n└─────────┬────────┘                                                 │\n          │ Says \&amp;quot;Yes\&amp;quot; (Might be taken)                              │\n          ▼                                                          │\n┌──────────────────┐  Found (Definitely Taken) ─────────────────────┼──► [ Reject ]\n│   2. Redis Cache ├─────────────────────────────────────────┐       │\n└─────────┬────────┘                                         │       │\n          │ Cache Miss (Not found in cache)                  │       │\n          ▼                                                  ▼       ▼\n┌──────────────────┐  Found ────────────────────────────────► [ Reject \u0026 Update Cache ]\n│ 3. Main Database │\n└──────────────────┘  Not Found ────────────────────────────► [ Save to DB \u0026 Update Filter ]\n&amp;quot;,[[&amp;quot;[ New Signup Request ] \n          │\n          ▼\n┌──────────────────┐  Says \&amp;quot;No\&amp;quot; (Definitely Available) ──► [ Approve Username ]\n│ 1. Bloom Filter  ├─────────────────────────────────────────────────┐\n└─────────┬────────┘                                                 │\n          │ Says \&amp;quot;Yes\&amp;quot; (Might be taken)                              │\n          ▼                                                          │\n┌──────────────────┐  Found (Definitely Taken) ─────────────────────┼──► [ Reject ]\n│   2. Redis Cache ├─────────────────────────────────────────┐       │\n└─────────┬────────┘                                         │       │\n          │ Cache Miss (Not found in cache)                  │       │\n          ▼                                                  ▼       ▼\n┌──────────────────┐  Found ────────────────────────────────► [ Reject \u0026 Update Cache ]\n│ 3. Main Database │\n└──────────────────┘  Not Found ────────────────────────────► [ Save to DB \u0026 Update Filter ]\n&amp;quot;,0]]]]--&gt;&lt;/div&gt;&lt;div class="yhAwj" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-inited="2" data-sfc-root="ep" jsaction="rcuQ6b:&amp;amp;jdiWYb_27|npT2md" jscontroller="UTzWVc#U8DOt" jsuid="jdiWYb_27" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div aria-level="3" class="otQkpb" data-animation-nesting="" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-root="ep" data-wiz-attrbind="aria-level=jdiWYb_28/fLk2Md" jsaction="" jscontroller="a7qCn#ZxCkTb" jsuid="jdiWYb_28" role="heading" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 20px; font-weight: 600; margin: 24px 0px 12px; text-decoration: none;"&gt;&lt;span class="iNqyIf" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="KdQfFc#d5Qebf" jsuid="jdiWYb_29" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 20px; font-weight: 600; margin: 0px; text-decoration: none;"&gt;1. The Core Solution: The &lt;span class="iNqyIf" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="KdQfFc#d5Qebf" jsuid="jdiWYb_2a" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 20px; font-weight: 600; margin: 0px; text-decoration: none;"&gt;Bloom Filter&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div class="n6owBd awi2gc" data-complete="true" data-hveid="CAIIAQgyEAA" data-processed="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="TDBkbc#Ml18Xb" jsuid="jdiWYb_2b" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none;"&gt;A &lt;strong class="rQesXe MPyX" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="tP2kf#s32ZS" jsuid="jdiWYb_2c" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 16px; font-weight: 700; margin: 0px; text-decoration: none;"&gt;&lt;span class="iNqyIf" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="KdQfFc#d5Qebf" jsuid="jdiWYb_2d" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 16px; font-weight: 700; margin: 0px; text-decoration: none;"&gt;&lt;span class="iNqyIf" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="KdQfFc#d5Qebf" jsuid="jdiWYb_2e" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 16px; font-weight: 700; margin: 0px; text-decoration: none;"&gt;Bloom Filter&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/strong&gt; is a space-efficient, probabilistic data structure designed to tell you if an element is a member of a set. It operates in memory and yields two answers:&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;ul class="KsbFXc U6u95" data-complete="true" data-hveid="CAIIAQgzEAA" data-processed="true" data-sfc-cp="" data-sfc-root="ep" data-ved="2ahUKEwjQitfFg6KXAxVdUGcHHTkMKzoQ-7AUeggIAggBCDMQAA" jsaction="" jscontroller="mPWODf#NS0kde" jsuid="jdiWYb_2o" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none;"&gt;&lt;li class="Z1qcYe" data-complete="true" data-hveid="CAIIAQgzEAE" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="oSLmPe#HokZ0d" jsuid="jdiWYb_2p" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 16px; font-weight: 400; margin: 0px 0px 12px; text-decoration: none;"&gt;&lt;span class="iNqyIf" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="KdQfFc#d5Qebf" jsuid="jdiWYb_2q" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;&lt;strong class="rQesXe MPyX" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="tP2kf#s32ZS" jsuid="jdiWYb_2r" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 16px; font-weight: 700; margin: 0px; text-decoration: none;"&gt;"No, it definitely does not exist":&lt;!--TgQPHd|||[]--&gt;&lt;/strong&gt; This answer is &lt;strong class="rQesXe MPyX" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="tP2kf#s32ZS" jsuid="jdiWYb_2s" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 16px; font-weight: 700; margin: 0px; text-decoration: none;"&gt;100% accurate&lt;!--TgQPHd|||[]--&gt;&lt;/strong&gt;&lt;span class="iNqyIf" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="KdQfFc#d5Qebf" jsuid="jdiWYb_2t" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;. If the &lt;span class="iNqyIf" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="KdQfFc#d5Qebf" jsuid="jdiWYb_2u" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;Bloom filter&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; says the username isn't there, the application immediately approves the username without ever querying the database&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;.&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li class="Z1qcYe" data-complete="true" data-hveid="CAIIAQgzEAc" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="oSLmPe#HokZ0d" jsuid="jdiWYb_30" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 16px; font-weight: 400; margin: 0px 0px 12px; text-decoration: none;"&gt;&lt;span class="iNqyIf" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="KdQfFc#d5Qebf" jsuid="jdiWYb_31" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;&lt;strong class="rQesXe MPyX" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="tP2kf#s32ZS" jsuid="jdiWYb_32" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 16px; font-weight: 700; margin: 0px; text-decoration: none;"&gt;"Yes, it might exist":&lt;!--TgQPHd|||[]--&gt;&lt;/strong&gt; There is a small chance of a &lt;strong class="rQesXe MPyX" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="tP2kf#s32ZS" jsuid="jdiWYb_33" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 16px; font-weight: 700; margin: 0px; text-decoration: none;"&gt;false positive&lt;!--TgQPHd|||[]--&gt;&lt;/strong&gt; (it might say a username is taken when it actually isn't). When this happens, the system proceeds to Layer 2 and Layer 3 to confirm.&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/ul&gt;&lt;div class="n6owBd awi2gc" data-complete="true" data-hveid="CAIIAQg1EAA" data-processed="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="TDBkbc#Ml18Xb" jsuid="jdiWYb_4q" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none;"&gt;&lt;strong class="rQesXe MPyX" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="tP2kf#s32ZS" jsuid="jdiWYb_4r" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 16px; font-weight: 700; margin: 0px; text-decoration: none;"&gt;How it works under the hood:&lt;!--TgQPHd|||[]--&gt;&lt;/strong&gt;&lt;br data-complete="true" data-sfc-pl="|||[]" data-sfc-root="ep" jsaction="" jscontroller="iO7NKc#B4oRN" jsuid="jdiWYb_4s" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none;" /&gt;The filter allocates a fixed bit-array initialized to all &lt;code class="KDcb0c" data-complete="true" data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="hNviFe#redMub" jsuid="jdiWYb_4t" style="border-bottom: 0.8px solid rgb(240, 242, 245); font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;0&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt;s. When an existing username is added, it is passed through multiple independent hash functions that output array indices, changing those bits to &lt;code class="KDcb0c" data-complete="true" data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="hNviFe#redMub" jsuid="jdiWYb_4u" style="border-bottom: 0.8px solid rgb(240, 242, 245); font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;1&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt;. When a new user queries a username, it is run through the same hashes. If &lt;em class="zhvwWe" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="LFsGHb#ycPkjf" jsuid="jdiWYb_4v" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;any&lt;!--TgQPHd|||[]--&gt;&lt;/em&gt; of the resulting bits are still &lt;code class="KDcb0c" data-complete="true" data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="hNviFe#redMub" jsuid="jdiWYb_4w" style="border-bottom: 0.8px solid rgb(240, 242, 245); font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;0&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt;, the username is guaranteed to be available.&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div class="yhAwj" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-inited="2" data-sfc-root="ep" jsaction="rcuQ6b:&amp;amp;jdiWYb_55|npT2md" jscontroller="UTzWVc#U8DOt" jsuid="jdiWYb_55" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div aria-level="3" class="otQkpb" data-animation-nesting="" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-root="ep" data-wiz-attrbind="aria-level=jdiWYb_56/fLk2Md" jsaction="" jscontroller="a7qCn#ZxCkTb" jsuid="jdiWYb_56" role="heading" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 20px; font-weight: 600; margin: 24px 0px 12px; text-decoration: none;"&gt;2. The Acceleration Layer: In-Memory Cache&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div class="n6owBd awi2gc" data-complete="true" data-hveid="CAIIAQg3EAA" data-processed="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="TDBkbc#Ml18Xb" jsuid="jdiWYb_57" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none;"&gt;&lt;span class="iNqyIf" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="KdQfFc#d5Qebf" jsuid="jdiWYb_58" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;If the &lt;span class="iNqyIf" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="KdQfFc#d5Qebf" jsuid="jdiWYb_59" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;Bloom filter&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; indicates a username &lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;&lt;em class="zhvwWe" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="LFsGHb#ycPkjf" jsuid="jdiWYb_5a" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;might&lt;!--TgQPHd|||[]--&gt;&lt;/em&gt; be taken, the system queries a fast in-memory key-value cache like &lt;span class="" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="mouseenter:&amp;amp;jdiWYb_5b|ZUljYd;mouseleave:&amp;amp;jdiWYb_5b|aXD3Gb;focusin:&amp;amp;jdiWYb_5b|Mrjwi;focusout:&amp;amp;jdiWYb_5b|CXhG2e;pointerdown:&amp;amp;jdiWYb_5b|wndyDd;click:&amp;amp;jdiWYb_5b|yrMC6;" jscontroller="KMhGd#Mx1qPe" jsuid="jdiWYb_5b" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;&lt;a class="H23r4e" data-hveid="CAIIAQg3EAE" data-ved="2ahUKEwjQitfFg6KXAxVdUGcHHTkMKzoQy_kOeggIAggBCDcQAQ" href="https://redis.io/" ping="/url?sa=t&amp;amp;source=web&amp;amp;rct=j&amp;amp;url=https://redis.io/&amp;amp;ved=2ahUKEwjQitfFg6KXAxVdUGcHHTkMKzoQy_kOeggIAggBCDcQAQ&amp;amp;opi=89978449" rel="noopener" style="border-bottom: 0px rgb(21, 88, 214); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 16px; font-weight: 500; margin: 0px; text-decoration: underline 1px rgb(21, 88, 214);" target="_blank"&gt;Redis&lt;/a&gt;&lt;!--TgQPHd|||[[&amp;quot;https://redis.io/&amp;quot;,null,null,[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[{&amp;quot;1218&amp;quot;:[16,null,null,null,[7]]}]],16,null,null,null,null,null,null,[[1791174112560464,124211293,975899705],null,null,null,null,[[2,1,16]]],null,&amp;quot;46ba772f-4eae-4a5f-bc53-a5286a94fdb4&amp;quot;]]--&gt;&lt;/span&gt; or Memcached.&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;ul class="KsbFXc U6u95" data-complete="true" data-hveid="CAIIAQg4EAA" data-processed="true" data-sfc-cp="" data-sfc-root="ep" data-ved="2ahUKEwjQitfFg6KXAxVdUGcHHTkMKzoQ-7AUeggIAggBCDgQAA" jsaction="" jscontroller="mPWODf#NS0kde" jsuid="jdiWYb_5j" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none;"&gt;&lt;li class="Z1qcYe" data-complete="true" data-hveid="CAIIAQg4EAE" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="oSLmPe#HokZ0d" jsuid="jdiWYb_5k" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 16px; font-weight: 400; margin: 0px 0px 12px; text-decoration: none;"&gt;&lt;span class="iNqyIf" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="KdQfFc#d5Qebf" jsuid="jdiWYb_5l" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;This cache stores recently checked or active usernames.&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li class="Z1qcYe" data-complete="true" data-hveid="CAIIAQg4EAI" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="oSLmPe#HokZ0d" jsuid="jdiWYb_5m" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 16px; font-weight: 400; margin: 0px 0px 12px; text-decoration: none;"&gt;&lt;span class="iNqyIf" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="KdQfFc#d5Qebf" jsuid="jdiWYb_5n" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;If the username is found in the cache, it's rejected instantly.&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li class="Z1qcYe" data-complete="true" data-hveid="CAIIAQg4EAM" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="oSLmPe#HokZ0d" jsuid="jdiWYb_5o" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 16px; font-weight: 400; margin: 0px 0px 12px; text-decoration: none;"&gt;&lt;span class="iNqyIf" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="KdQfFc#d5Qebf" jsuid="jdiWYb_5p" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;This catches popular usernames or rapid, repeated registration attempts.&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/ul&gt;&lt;div class="yhAwj" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-inited="2" data-sfc-root="ep" jsaction="rcuQ6b:&amp;amp;jdiWYb_9z|npT2md" jscontroller="UTzWVc#U8DOt" jsuid="jdiWYb_9z" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div aria-level="3" class="otQkpb" data-animation-nesting="" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-root="ep" data-wiz-attrbind="aria-level=jdiWYb_a0/fLk2Md" jsaction="" jscontroller="a7qCn#ZxCkTb" jsuid="jdiWYb_a0" role="heading" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 20px; font-weight: 600; margin: 24px 0px 12px; text-decoration: none;"&gt;3. The Authoritative Source: The Database&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div class="n6owBd awi2gc" data-complete="true" data-hveid="CAIIAQg7EAA" data-processed="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="TDBkbc#Ml18Xb" jsuid="jdiWYb_a1" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none;"&gt;&lt;span class="iNqyIf" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="KdQfFc#d5Qebf" jsuid="jdiWYb_a2" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;The main database (e.g., PostgreSQL, MySQL, or a distributed NoSQL like DynamoDB) is only queried if the &lt;span class="iNqyIf" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="KdQfFc#d5Qebf" jsuid="jdiWYb_a3" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;Bloom filter&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; results in a "maybe" and the cache results in a "miss"&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;.&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;ul class="KsbFXc U6u95" data-complete="true" data-hveid="CAIIAQg8EAA" data-processed="true" data-sfc-cp="" data-sfc-root="ep" data-ved="2ahUKEwjQitfFg6KXAxVdUGcHHTkMKzoQ-7AUeggIAggBCDwQAA" jsaction="" jscontroller="mPWODf#NS0kde" jsuid="jdiWYb_ab" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none;"&gt;&lt;li class="Z1qcYe" data-complete="true" data-hveid="CAIIAQg8EAE" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="oSLmPe#HokZ0d" jsuid="jdiWYb_ac" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 16px; font-weight: 400; margin: 0px 0px 12px; text-decoration: none;"&gt;&lt;span class="iNqyIf" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="KdQfFc#d5Qebf" jsuid="jdiWYb_ad" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;&lt;span class="iNqyIf" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="KdQfFc#d5Qebf" jsuid="jdiWYb_ae" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;Because the &lt;span class="iNqyIf" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="KdQfFc#d5Qebf" jsuid="jdiWYb_af" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;Bloom filter&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; filters out nearly all completely unique, available usernames, the database only deals with a tiny fraction of total check traffic&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;.&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li class="Z1qcYe" data-complete="true" data-hveid="CAIIAQg8EAY" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="oSLmPe#HokZ0d" jsuid="jdiWYb_al" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 16px; font-weight: 400; margin: 0px 0px 12px; text-decoration: none;"&gt;&lt;span class="iNqyIf" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="KdQfFc#d5Qebf" jsuid="jdiWYb_am" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;&lt;strong class="rQesXe MPyX" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="tP2kf#s32ZS" jsuid="jdiWYb_an" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 16px; font-weight: 700; margin: 0px; text-decoration: none;"&gt;Crucial Rule:&lt;!--TgQPHd|||[]--&gt;&lt;/strong&gt; The database table must have a &lt;code class="KDcb0c" data-complete="true" data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="hNviFe#redMub" jsuid="jdiWYb_ao" style="border-bottom: 0.8px solid rgb(240, 242, 245); font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;UNIQUE&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt; constraint or index on the &lt;code class="KDcb0c" data-complete="true" data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="hNviFe#redMub" jsuid="jdiWYb_ap" style="border-bottom: 0.8px solid rgb(240, 242, 245); font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;username&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt; column. This ensures that even if a rare race condition passes through the filters, the database will safely reject a duplicate write.&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/ul&gt;&lt;div class="yhAwj" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-inited="2" data-sfc-root="ep" jsaction="rcuQ6b:&amp;amp;jdiWYb_az|npT2md" jscontroller="UTzWVc#U8DOt" jsuid="jdiWYb_az" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;hr class="s6NV4e" data-complete="true" data-processed="true" data-sfc-pl="|||[]" data-sfc-root="ep" jsaction="" jscontroller="gWGJ0d#iOlsLd" jsuid="jdiWYb_b0" style="border-bottom: 0px rgb(128, 128, 128); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 14px; font-weight: 400; margin: 32px 0px; text-decoration: none;" /&gt;&lt;div class="yhAwj" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-inited="2" data-sfc-root="ep" jsaction="rcuQ6b:&amp;amp;jdiWYb_b1|npT2md" jscontroller="UTzWVc#U8DOt" jsuid="jdiWYb_b1" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div aria-level="3" class="otQkpb" data-animation-nesting="" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-root="ep" data-wiz-attrbind="aria-level=jdiWYb_b2/fLk2Md" jsaction="" jscontroller="a7qCn#ZxCkTb" jsuid="jdiWYb_b2" role="heading" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 20px; font-weight: 600; margin: 24px 0px 12px; text-decoration: none;"&gt;Implementation Summary Matrix&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div class="yhAwj" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-inited="2" data-sfc-root="ep" jsaction="rcuQ6b:&amp;amp;jdiWYb_b3|npT2md" jscontroller="UTzWVc#U8DOt" jsuid="jdiWYb_b3" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div class="Fv6NCb" data-complete="true" data-hveid="CAIIAQg_EAA" data-processed="true" data-sfc-cp="" data-sfc-inited="2" data-sfc-root="ep" data-ved="2ahUKEwjQitfFg6KXAxVdUGcHHTkMKzoQ-q4QeggIAggBCD8QAA" jsaction="rcuQ6b:&amp;amp;jdiWYb_b4|npT2md;scroll:&amp;amp;jdiWYb_b4|ZUljYd" jscontroller="kbUand#UYOFMe" jsuid="jdiWYb_b4" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 14px; font-weight: 400; margin: 4px 0px 12px; text-decoration: none;"&gt;&lt;table class="NRefec" data-animation-nesting="" data-processed="true" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;&lt;tbody data-processed="true" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;&lt;tr class="cZCYO" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="OkanJc#hv5sFd" jsuid="jdiWYb_b5" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;&lt;th class="iry6k" colspan="undefined" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uuu13#x1Xdt" jsuid="jdiWYb_b6" style="border-bottom: 0.8px solid rgb(220, 223, 229); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 14px; font-weight: 700; margin: 0px; text-decoration: none;"&gt;Strategy&lt;!--TgQPHd|||[]--&gt;&lt;/th&gt;&lt;th class="iry6k" colspan="undefined" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uuu13#x1Xdt" jsuid="jdiWYb_b7" style="border-bottom: 0.8px solid rgb(220, 223, 229); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 14px; font-weight: 700; margin: 0px; text-decoration: none;"&gt;Memory Cost&lt;!--TgQPHd|||[]--&gt;&lt;/th&gt;&lt;th class="iry6k" colspan="undefined" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uuu13#x1Xdt" jsuid="jdiWYb_b8" style="border-bottom: 0.8px solid rgb(220, 223, 229); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 14px; font-weight: 700; margin: 0px; text-decoration: none;"&gt;Accuracy&lt;!--TgQPHd|||[]--&gt;&lt;/th&gt;&lt;th class="iry6k" colspan="undefined" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uuu13#x1Xdt" jsuid="jdiWYb_b9" style="border-bottom: 0.8px solid rgb(220, 223, 229); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 14px; font-weight: 700; margin: 0px; text-decoration: none;"&gt;Database Impact&lt;!--TgQPHd|||[]--&gt;&lt;/th&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/tr&gt;&lt;tr class="cZCYO" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="OkanJc#hv5sFd" jsuid="jdiWYb_ba" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;&lt;td class="cOeeGf" colspan="undefined" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="QYassd#cLglr" jsuid="jdiWYb_bb" style="border-bottom: 0.8px solid rgb(220, 223, 229); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;&lt;strong class="rQesXe MPyX" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="tP2kf#s32ZS" jsuid="jdiWYb_bc" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 14px; font-weight: 700; margin: 0px; text-decoration: none;"&gt;&lt;span class="iNqyIf" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="KdQfFc#d5Qebf" jsuid="jdiWYb_bd" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 14px; font-weight: 700; margin: 0px; text-decoration: none;"&gt;&lt;span class="iNqyIf" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="KdQfFc#d5Qebf" jsuid="jdiWYb_be" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 14px; font-weight: 700; margin: 0px; text-decoration: none;"&gt;Bloom Filter&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/strong&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/td&gt;&lt;td class="cOeeGf" colspan="undefined" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="QYassd#cLglr" jsuid="jdiWYb_bf" style="border-bottom: 0.8px solid rgb(220, 223, 229); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;&lt;strong class="rQesXe MPyX" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="tP2kf#s32ZS" jsuid="jdiWYb_bg" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 14px; font-weight: 700; margin: 0px; text-decoration: none;"&gt;Extremely Low&lt;!--TgQPHd|||[]--&gt;&lt;/strong&gt; (A few MBs for millions of users)&lt;!--TgQPHd|||[]--&gt;&lt;/td&gt;&lt;td class="cOeeGf" colspan="undefined" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="QYassd#cLglr" jsuid="jdiWYb_bh" style="border-bottom: 0.8px solid rgb(220, 223, 229); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;Probabilistic (No false negatives; rare false positives)&lt;!--TgQPHd|||[]--&gt;&lt;/td&gt;&lt;td class="cOeeGf" colspan="undefined" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="QYassd#cLglr" jsuid="jdiWYb_bi" style="border-bottom: 0.8px solid rgb(220, 223, 229); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;&lt;strong class="rQesXe MPyX" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="tP2kf#s32ZS" jsuid="jdiWYb_bj" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 14px; font-weight: 700; margin: 0px; text-decoration: none;"&gt;Near Zero&lt;!--TgQPHd|||[]--&gt;&lt;/strong&gt; (Blocks ~99% of unnecessary DB queries)&lt;!--TgQPHd|||[]--&gt;&lt;/td&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/tr&gt;&lt;tr class="cZCYO" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="OkanJc#hv5sFd" jsuid="jdiWYb_bk" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;&lt;td class="cOeeGf" colspan="undefined" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="QYassd#cLglr" jsuid="jdiWYb_bl" style="border-bottom: 0.8px solid rgb(220, 223, 229); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;&lt;strong class="rQesXe MPyX" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="tP2kf#s32ZS" jsuid="jdiWYb_bm" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 14px; font-weight: 700; margin: 0px; text-decoration: none;"&gt;In-Memory Cache (Redis)&lt;!--TgQPHd|||[]--&gt;&lt;/strong&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/td&gt;&lt;td class="cOeeGf" colspan="undefined" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="QYassd#cLglr" jsuid="jdiWYb_bn" style="border-bottom: 0.8px solid rgb(220, 223, 229); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;&lt;strong class="rQesXe MPyX" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="tP2kf#s32ZS" jsuid="jdiWYb_bo" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 14px; font-weight: 700; margin: 0px; text-decoration: none;"&gt;Medium&lt;!--TgQPHd|||[]--&gt;&lt;/strong&gt; (Scales with the number of keys stored)&lt;!--TgQPHd|||[]--&gt;&lt;/td&gt;&lt;td class="cOeeGf" colspan="undefined" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="QYassd#cLglr" jsuid="jdiWYb_bp" style="border-bottom: 0.8px solid rgb(220, 223, 229); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;100% Accurate (For cached items)&lt;!--TgQPHd|||[]--&gt;&lt;/td&gt;&lt;td class="cOeeGf" colspan="undefined" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="QYassd#cLglr" jsuid="jdiWYb_bq" style="border-bottom: 0.8px solid rgb(220, 223, 229); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;&lt;strong class="rQesXe MPyX" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="tP2kf#s32ZS" jsuid="jdiWYb_br" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 14px; font-weight: 700; margin: 0px; text-decoration: none;"&gt;Very Low&lt;!--TgQPHd|||[]--&gt;&lt;/strong&gt; (Handles repeated lookups)&lt;!--TgQPHd|||[]--&gt;&lt;/td&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/tr&gt;&lt;tr class="cZCYO" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="OkanJc#hv5sFd" jsuid="jdiWYb_bs" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;&lt;td class="cOeeGf" colspan="undefined" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="QYassd#cLglr" jsuid="jdiWYb_bt" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;&lt;strong class="rQesXe MPyX" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="tP2kf#s32ZS" jsuid="jdiWYb_bu" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 14px; font-weight: 700; margin: 0px; text-decoration: none;"&gt;Database Index Lookup&lt;!--TgQPHd|||[]--&gt;&lt;/strong&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/td&gt;&lt;td class="cOeeGf" colspan="undefined" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="QYassd#cLglr" jsuid="jdiWYb_bv" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;&lt;strong class="rQesXe MPyX" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="tP2kf#s32ZS" jsuid="jdiWYb_bw" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 14px; font-weight: 700; margin: 0px; text-decoration: none;"&gt;High&lt;!--TgQPHd|||[]--&gt;&lt;/strong&gt; (Disk I/O and large index memory footprints)&lt;!--TgQPHd|||[]--&gt;&lt;/td&gt;&lt;td class="cOeeGf" colspan="undefined" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="QYassd#cLglr" jsuid="jdiWYb_bx" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;100% Accurate (Authoritative)&lt;!--TgQPHd|||[]--&gt;&lt;/td&gt;&lt;td class="cOeeGf" colspan="undefined" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="QYassd#cLglr" jsuid="jdiWYb_by" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;&lt;strong class="rQesXe MPyX" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="tP2kf#s32ZS" jsuid="jdiWYb_bz" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 14px; font-weight: 700; margin: 0px; text-decoration: none;"&gt;High&lt;!--TgQPHd|||[]--&gt;&lt;/strong&gt; (If relied upon for every single signup)&lt;!--TgQPHd|||[]--&gt;&lt;/td&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;!--TgQPHd|||[[1,0,0,null,null,&amp;quot;&amp;quot;]]--&gt;&lt;/div&gt;&lt;div class="n6owBd awi2gc" data-complete="true" data-hveid="CAIIAQhAEAA" data-processed="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="TDBkbc#Ml18Xb" jsuid="jdiWYb_c0" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none;"&gt;If you'd like, let me know:&lt;span&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;ul class="KsbFXc U6u95" data-complete="true" data-hveid="CAIIAQhBEAA" data-processed="true" data-sfc-cp="" data-sfc-root="ep" data-ved="2ahUKEwjQitfFg6KXAxVdUGcHHTkMKzoQ-7AUeggIAggBCEEQAA" jsaction="" jscontroller="mPWODf#NS0kde" jsuid="jdiWYb_c6" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none;"&gt;&lt;li class="Z1qcYe" data-complete="true" data-hveid="CAIIAQhBEAE" data-processed="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="oSLmPe#HokZ0d" jsuid="jdiWYb_c7" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 16px; font-weight: 400; margin: 0px 0px 12px; text-decoration: none;"&gt;&lt;span class="iNqyIf" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="KdQfFc#d5Qebf" jsuid="jdiWYb_c8" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;What &lt;strong class="rQesXe MPyX" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="tP2kf#s32ZS" jsuid="jdiWYb_c9" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 16px; font-weight: 700; margin: 0px; text-decoration: none;"&gt;programming language or framework&lt;!--TgQPHd|||[]--&gt;&lt;/strong&gt; your backend uses (e.g., Node.js, Python, Java)&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li class="Z1qcYe" data-complete="true" data-hveid="CAIIAQhBEAQ" data-processed="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="oSLmPe#HokZ0d" jsuid="jdiWYb_cf" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 16px; font-weight: 400; margin: 0px 0px 12px; text-decoration: none;"&gt;&lt;span class="iNqyIf" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="KdQfFc#d5Qebf" jsuid="jdiWYb_cg" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;Whether your current architecture already uses an &lt;strong class="rQesXe MPyX" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="tP2kf#s32ZS" jsuid="jdiWYb_ch" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 16px; font-weight: 700; margin: 0px; text-decoration: none;"&gt;in-memory data store&lt;!--TgQPHd|||[]--&gt;&lt;/strong&gt; like &lt;strong class="rQesXe MPyX" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="tP2kf#s32ZS" jsuid="jdiWYb_ci" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 16px; font-weight: 700; margin: 0px; text-decoration: none;"&gt;Redis&lt;!--TgQPHd|||[]--&gt;&lt;/strong&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/ul&gt;&lt;div class="n6owBd awi2gc" data-complete="true" data-hveid="CAIIAQhCEAA" data-processed="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="TDBkbc#Ml18Xb" jsuid="jdiWYb_co" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none;"&gt;&lt;span class="iNqyIf" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="KdQfFc#d5Qebf" jsuid="jdiWYb_cp" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;I can provide a concrete code snippet demonstrating how to initialize and connect a &lt;span class="iNqyIf" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="KdQfFc#d5Qebf" jsuid="jdiWYb_cq" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;Bloom filter&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; to your signup workflow!&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div class="yhAwj" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-inited="2" data-sfc-root="ep" jsaction="rcuQ6b:&amp;amp;jdiWYb_cw|npT2md" jscontroller="UTzWVc#U8DOt" jsuid="jdiWYb_cw" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div class="SGF5Lb" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="mk5ZW#TASLyc" jsuid="jdiWYb_k" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;&lt;span style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div class="SGF5Lb" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="mk5ZW#TASLyc" jsuid="jdiWYb_l" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;&lt;span style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div class="SGF5Lb" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="mk5ZW#TASLyc" jsuid="jdiWYb_m" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;&lt;span style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div class="SGF5Lb" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="mk5ZW#TASLyc" jsuid="jdiWYb_n" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;&lt;span style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div class="SGF5Lb" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="mk5ZW#TASLyc" jsuid="jdiWYb_o" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;&lt;span style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div class="SGF5Lb" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="mk5ZW#TASLyc" jsuid="jdiWYb_p" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;&lt;span style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div class="SGF5Lb" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="mk5ZW#TASLyc" jsuid="jdiWYb_q" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;&lt;span style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none;"&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;p&gt;&lt;span data-processed="true" data-subtree="aimfl" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 16px; margin: 0px;"&gt;If you are allocating &lt;/span&gt;&lt;span class="rQesXe MPyX" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="tP2kf#s32ZS" jsuid="aKF1re_q" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 16px; font-weight: 700; margin: 0px;"&gt;7 bits&lt;/span&gt;&lt;span style="font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 16px;"&gt; for each username, you are designing a highly optimized bit-array layout for a &lt;/span&gt;&lt;span class="rQesXe MPyX" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="tP2kf#s32ZS" jsuid="aKF1re_r" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 16px; font-weight: 700; margin: 0px;"&gt;Bloom Filter&lt;/span&gt;&lt;span style="font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 16px;"&gt;.&lt;/span&gt;&lt;/p&gt;&lt;div class="pWvJNd" data-complete="true" data-sfc-root="ep" jsaction="" jscontroller="zp3Dsd#fP0RJ" jsuid="aKF1re_5" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 14px; margin: 0px;"&gt;&lt;div data-complete="true" data-sfc-root="ep" jsaction="" jscontroller="z34MU#CsVNRe" jsname="s7e4Od" jsuid="aKF1re_6" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;span style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div class="mZJni Dn7Fzd" data-container-id="main-col" data-ctx-provider="[[[&amp;quot;dMtGDc&amp;quot;,&amp;quot;[false]&amp;quot;]]]" data-sfc-inited="2" data-sfc-root="ep" data-ved="2ahUKEwig1fnFg6KXAxX7T2wGHaQqHcoQ3KYQegYIAAgCEAE" data-xid="VpUvz" dir="ltr" jsaction="cC6SSe:&amp;amp;aKF1re_7|mNzCb;" jscontroller="Aoijq#INwBm" jsname="KFl8ub" jsuid="aKF1re_7" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;span style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;div class="n6owBd awi2gc" data-complete="true" data-hveid="CAAIBxAA" data-processed="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="TDBkbc#Ml18Xb" jsuid="aKF1re_x" style="border-bottom: 0px rgb(10, 10, 10); font-size: 16px; margin: 12px 0px 16px;"&gt;Let's walk through exactly how this looks visually and mathematically when a user tries to register a username.&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div class="yhAwj" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-inited="2" data-sfc-root="ep" jsaction="rcuQ6b:&amp;amp;aKF1re_13|npT2md" jscontroller="UTzWVc#U8DOt" jsuid="aKF1re_13" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;hr class="s6NV4e" data-complete="true" data-processed="true" data-sae="" data-sfc-pl="|||[]" data-sfc-root="ep" jsaction="" jscontroller="gWGJ0d#iOlsLd" jsuid="aKF1re_14" style="border-bottom: 0px rgb(128, 128, 128); margin: 32px 0px;" /&gt;&lt;div class="yhAwj" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-inited="2" data-sfc-root="ep" jsaction="rcuQ6b:&amp;amp;aKF1re_15|npT2md" jscontroller="UTzWVc#U8DOt" jsuid="aKF1re_15" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div aria-level="3" class="otQkpb" data-animation-nesting="" data-complete="true" data-processed="true" data-sae="" data-sfc-cp="" data-sfc-root="ep" data-wiz-attrbind="aria-level=aKF1re_16/fLk2Md" jsaction="" jscontroller="a7qCn#ZxCkTb" jsuid="aKF1re_16" role="heading" style="border-bottom: 0px rgb(10, 10, 10); font-size: 20px; font-weight: 600; margin: 24px 0px 12px;"&gt;1. Setup &amp;amp; Memory Layout&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div class="n6owBd awi2gc" data-complete="true" data-hveid="CAAIChAA" data-processed="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="TDBkbc#Ml18Xb" jsuid="aKF1re_17" style="border-bottom: 0px rgb(10, 10, 10); font-size: 16px; margin: 12px 0px 16px;"&gt;If you have &lt;span class="rQesXe MPyX" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="tP2kf#s32ZS" jsuid="aKF1re_18" style="border-bottom: 0px rgb(10, 10, 10); font-weight: 700; margin: 0px;"&gt;1,000,000 users&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; and allocate 7 bits per user, your system creates a bit-array of &lt;span class="rQesXe MPyX" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="tP2kf#s32ZS" jsuid="aKF1re_19" style="border-bottom: 0px rgb(10, 10, 10); font-weight: 700; margin: 0px;"&gt;7,000,000 bits&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; (roughly &lt;span class="rQesXe MPyX" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="tP2kf#s32ZS" jsuid="aKF1re_1a" style="border-bottom: 0px rgb(10, 10, 10); font-weight: 700; margin: 0px;"&gt;875 KB&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; of RAM). Every single bit starts at &lt;code class="KDcb0c" data-complete="true" data-sae="" data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="hNviFe#redMub" jsuid="aKF1re_1b" style="border-bottom: 0.8px solid rgb(240, 242, 245); font-size: 14px; margin: 0px;"&gt;0&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt;.&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div class="n6owBd awi2gc" data-complete="true" data-hveid="CAAICxAA" data-processed="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="TDBkbc#Ml18Xb" jsuid="aKF1re_1h" style="border-bottom: 0px rgb(10, 10, 10); font-size: 16px; margin: 12px 0px 16px;"&gt;To map usernames to these bits, you choose a set of independent hash functions (usually &lt;span class="rQesXe MPyX" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="tP2kf#s32ZS" jsuid="aKF1re_1i" style="border-bottom: 0px rgb(10, 10, 10); font-weight: 700; margin: 0px;"&gt;5 hash functions&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; is optimal for a 7-bit-per-item ratio).&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div class="yhAwj" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-inited="2" data-sfc-root="ep" jsaction="rcuQ6b:&amp;amp;aKF1re_1o|npT2md" jscontroller="UTzWVc#U8DOt" jsuid="aKF1re_1o" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;hr class="s6NV4e" data-complete="true" data-processed="true" data-sae="" data-sfc-pl="|||[]" data-sfc-root="ep" jsaction="" jscontroller="gWGJ0d#iOlsLd" jsuid="aKF1re_1p" style="border-bottom: 0px rgb(128, 128, 128); margin: 32px 0px;" /&gt;&lt;div class="yhAwj" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-inited="2" data-sfc-root="ep" jsaction="rcuQ6b:&amp;amp;aKF1re_1q|npT2md" jscontroller="UTzWVc#U8DOt" jsuid="aKF1re_1q" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div aria-level="3" class="otQkpb" data-animation-nesting="" data-complete="true" data-processed="true" data-sae="" data-sfc-cp="" data-sfc-root="ep" data-wiz-attrbind="aria-level=aKF1re_1r/fLk2Md" jsaction="" jscontroller="a7qCn#ZxCkTb" jsuid="aKF1re_1r" role="heading" style="border-bottom: 0px rgb(10, 10, 10); font-size: 20px; font-weight: 600; margin: 24px 0px 12px;"&gt;2. Scenario A: Searching for a TAKEN Username&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div class="n6owBd awi2gc" data-complete="true" data-hveid="CAAIDhAA" data-processed="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="TDBkbc#Ml18Xb" jsuid="aKF1re_1s" style="border-bottom: 0px rgb(10, 10, 10); font-size: 16px; margin: 12px 0px 16px;"&gt;Let's say the username &lt;span class="rQesXe MPyX" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="tP2kf#s32ZS" jsuid="aKF1re_1t" style="border-bottom: 0px rgb(10, 10, 10); font-weight: 700; margin: 0px;"&gt;&lt;code class="KDcb0c" data-complete="true" data-sae="" data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="hNviFe#redMub" jsuid="aKF1re_1u" style="border-bottom: 0.8px solid rgb(240, 242, 245); font-size: 14px; margin: 0px;"&gt;"alex123"&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; is already registered. When they signed up, their username was run through 5 hashes, yielding 5 bit indices, and those bits were flipped to &lt;code class="KDcb0c" data-complete="true" data-sae="" data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="hNviFe#redMub" jsuid="aKF1re_1v" style="border-bottom: 0.8px solid rgb(240, 242, 245); font-size: 14px; margin: 0px;"&gt;1&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt;.&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div class="n6owBd awi2gc" data-complete="true" data-hveid="CAAIDxAA" data-processed="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="TDBkbc#Ml18Xb" jsuid="aKF1re_21" style="border-bottom: 0px rgb(10, 10, 10); font-size: 16px; margin: 12px 0px 16px;"&gt;When a new person searches for &lt;code class="KDcb0c" data-complete="true" data-sae="" data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="hNviFe#redMub" jsuid="aKF1re_22" style="border-bottom: 0.8px solid rgb(240, 242, 245); font-size: 14px; margin: 0px;"&gt;"alex123"&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt;, the backend runs the exact same process:&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;ol class="T9WCjf qkgVBf" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="PnN4Le#N1SbDe" jsuid="aKF1re_28" style="border-bottom: 0px rgb(10, 10, 10); font-size: 16px; margin: 12px 0px 16px;"&gt;&lt;li class="Z1qcYe" data-complete="true" data-hveid="CAAIEBAB" data-sae="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="oSLmPe#HokZ0d" jsuid="aKF1re_29" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px 0px 12px;"&gt;&lt;span class="iNqyIf" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="KdQfFc#d5Qebf" jsuid="aKF1re_2a" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;span class="rQesXe MPyX" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="tP2kf#s32ZS" jsuid="aKF1re_2b" style="border-bottom: 0px rgb(10, 10, 10); font-weight: 700; margin: 0px;"&gt;Hash the input:&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;&lt;ul class="KsbFXc U6u95" data-complete="true" data-hveid="CAAIEBAC" data-sfc-cp="" data-sfc-root="ep" data-ved="2ahUKEwig1fnFg6KXAxX7T2wGHaQqHcoQ-7AUegYIAAgQEAI" jsaction="" jscontroller="mPWODf#NS0kde" jsuid="aKF1re_2c" style="border-bottom: 0px rgb(10, 10, 10); margin: 12px 0px 16px;"&gt;&lt;li class="Z1qcYe" data-complete="true" data-hveid="CAAIEBAD" data-sae="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="oSLmPe#HokZ0d" jsuid="aKF1re_2d" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px 0px 12px;"&gt;&lt;span class="iNqyIf" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="KdQfFc#d5Qebf" jsuid="aKF1re_2e" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;code class="KDcb0c" data-complete="true" data-sae="" data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="hNviFe#redMub" jsuid="aKF1re_2f" style="border-bottom: 0.8px solid rgb(240, 242, 245); font-size: 14px; margin: 0px;"&gt;Hash1("alex123") % 7,000,000&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt; = &lt;span class="rQesXe MPyX" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="tP2kf#s32ZS" jsuid="aKF1re_2g" style="border-bottom: 0px rgb(10, 10, 10); font-weight: 700; margin: 0px;"&gt;Index 42&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li class="Z1qcYe" data-complete="true" data-hveid="CAAIEBAE" data-sae="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="oSLmPe#HokZ0d" jsuid="aKF1re_2h" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px 0px 12px;"&gt;&lt;span class="iNqyIf" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="KdQfFc#d5Qebf" jsuid="aKF1re_2i" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;code class="KDcb0c" data-complete="true" data-sae="" data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="hNviFe#redMub" jsuid="aKF1re_2j" style="border-bottom: 0.8px solid rgb(240, 242, 245); font-size: 14px; margin: 0px;"&gt;Hash2("alex123") % 7,000,000&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt; = &lt;span class="rQesXe MPyX" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="tP2kf#s32ZS" jsuid="aKF1re_2k" style="border-bottom: 0px rgb(10, 10, 10); font-weight: 700; margin: 0px;"&gt;Index 518,201&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li class="Z1qcYe" data-complete="true" data-hveid="CAAIEBAF" data-sae="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="oSLmPe#HokZ0d" jsuid="aKF1re_2l" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px 0px 12px;"&gt;&lt;span class="iNqyIf" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="KdQfFc#d5Qebf" jsuid="aKF1re_2m" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;code class="KDcb0c" data-complete="true" data-sae="" data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="hNviFe#redMub" jsuid="aKF1re_2n" style="border-bottom: 0.8px solid rgb(240, 242, 245); font-size: 14px; margin: 0px;"&gt;Hash3("alex123") % 7,000,000&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt; = &lt;span class="rQesXe MPyX" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="tP2kf#s32ZS" jsuid="aKF1re_2o" style="border-bottom: 0px rgb(10, 10, 10); font-weight: 700; margin: 0px;"&gt;Index 2,400,115&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li class="Z1qcYe" data-complete="true" data-hveid="CAAIEBAG" data-sae="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="oSLmPe#HokZ0d" jsuid="aKF1re_2p" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px 0px 12px;"&gt;&lt;span class="iNqyIf" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="KdQfFc#d5Qebf" jsuid="aKF1re_2q" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;code class="KDcb0c" data-complete="true" data-sae="" data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="hNviFe#redMub" jsuid="aKF1re_2r" style="border-bottom: 0.8px solid rgb(240, 242, 245); font-size: 14px; margin: 0px;"&gt;Hash4("alex123") % 7,000,000&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt; = &lt;span class="rQesXe MPyX" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="tP2kf#s32ZS" jsuid="aKF1re_2s" style="border-bottom: 0px rgb(10, 10, 10); font-weight: 700; margin: 0px;"&gt;Index 4,890,300&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li class="Z1qcYe" data-complete="true" data-hveid="CAAIEBAH" data-sae="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="oSLmPe#HokZ0d" jsuid="aKF1re_2t" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px 0px 12px;"&gt;&lt;span class="iNqyIf" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="KdQfFc#d5Qebf" jsuid="aKF1re_2u" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;code class="KDcb0c" data-complete="true" data-sae="" data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="hNviFe#redMub" jsuid="aKF1re_2v" style="border-bottom: 0.8px solid rgb(240, 242, 245); font-size: 14px; margin: 0px;"&gt;Hash5("alex123") % 7,000,000&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt; = &lt;span class="rQesXe MPyX" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="tP2kf#s32ZS" jsuid="aKF1re_2w" style="border-bottom: 0px rgb(10, 10, 10); font-weight: 700; margin: 0px;"&gt;Index 6,999,150&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/ul&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li class="Z1qcYe" data-complete="true" data-hveid="CAAIEBAK" data-sae="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="oSLmPe#HokZ0d" jsuid="aKF1re_32" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px 0px 12px;"&gt;&lt;span class="iNqyIf" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="KdQfFc#d5Qebf" jsuid="aKF1re_33" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;span class="rQesXe MPyX" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="tP2kf#s32ZS" jsuid="aKF1re_34" style="border-bottom: 0px rgb(10, 10, 10); font-weight: 700; margin: 0px;"&gt;Look up the bits in memory:&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/ol&gt;&lt;div class="yhAwj" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-inited="2" data-sfc-root="ep" jsaction="rcuQ6b:&amp;amp;aKF1re_3a|npT2md" jscontroller="UTzWVc#U8DOt" jsuid="aKF1re_3a" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div class="BpxUDf aiModeUiCodeBlock__Container" data-complete="true" data-hveid="CAAIERAA" data-processed="true" data-sfc-cp="" data-sfc-root="ep" data-wiz-uids="aKF1re_3d,aKF1re_3c" jsaction="" jscontroller="Liu6s#lcO7sb" jsuid="aKF1re_3b" style="border-bottom: 0px rgb(10, 10, 10); margin: 4px 0px 0px;"&gt;&lt;div data-processed="true" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;div class="rq1a2" data-animation-atomic="" data-sae="" style="border-bottom: 0.8px solid rgb(240, 242, 245); margin: 0px;"&gt;&lt;div class="PGvq2d" dir="ltr" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;pre style="border-bottom: 0px rgb(10, 10, 10); margin: 14px 0px;"&gt;&lt;code jsuid="aKF1re_3d" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;span class="undefined" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;Bit Array Indices:
[ 0 ] ... [ 42 ] ... [ 518,201 ] ... [ 2,400,115 ] ... [ 4,890,300 ] ... [ 6,999,150 ] ... [ 7,000,000 ]
  ▼         ▼             ▼                ▼                  ▼                  ▼
┌───┐     ┌───┐         ┌───┐            ┌───┐              ┌───┐              ┌───┐
│ 0 │ ... │ 1 │ ...     │ 1 │    ...     │ 1 │     ...      │ 1 │     ...      │ 1 │     ...
└───┘     └───┘         └───┘            └───┘              └───┘              └───┘
            ▲             ▲                ▲                  ▲                  ▲
            └─── All 5 bits are set to 1 ────────────────────────────────────────┘
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--TgQPHd|||[[&amp;quot;unset&amp;quot;,&amp;quot;Bit Array Indices:\n[ 0 ] ... [ 42 ] ... [ 518,201 ] ... [ 2,400,115 ] ... [ 4,890,300 ] ... [ 6,999,150 ] ... [ 7,000,000 ]\n  ▼         ▼             ▼                ▼                  ▼                  ▼\n┌───┐     ┌───┐         ┌───┐            ┌───┐              ┌───┐              ┌───┐\n│ 0 │ ... │ 1 │ ...     │ 1 │    ...     │ 1 │     ...      │ 1 │     ...      │ 1 │     ...\n└───┘     └───┘         └───┘            └───┘              └───┘              └───┘\n            ▲             ▲                ▲                  ▲                  ▲\n            └─── All 5 bits are set to 1 ────────────────────────────────────────┘\n&amp;quot;,[[&amp;quot;Bit Array Indices:\n[ 0 ] ... [ 42 ] ... [ 518,201 ] ... [ 2,400,115 ] ... [ 4,890,300 ] ... [ 6,999,150 ] ... [ 7,000,000 ]\n  ▼         ▼             ▼                ▼                  ▼                  ▼\n┌───┐     ┌───┐         ┌───┐            ┌───┐              ┌───┐              ┌───┐\n│ 0 │ ... │ 1 │ ...     │ 1 │    ...     │ 1 │     ...      │ 1 │     ...      │ 1 │     ...\n└───┘     └───┘         └───┘            └───┘              └───┘              └───┘\n            ▲             ▲                ▲                  ▲                  ▲\n            └─── All 5 bits are set to 1 ────────────────────────────────────────┘\n&amp;quot;,0]]]]--&gt;&lt;/div&gt;&lt;ol class="T9WCjf qkgVBf" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="PnN4Le#N1SbDe" jsuid="aKF1re_3e" start="3" style="border-bottom: 0px rgb(10, 10, 10); font-size: 16px; margin: 12px 0px 16px;"&gt;&lt;li class="Z1qcYe" data-complete="true" data-hveid="CAAIEhAB" data-sae="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="oSLmPe#HokZ0d" jsuid="aKF1re_3f" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px 0px 12px;"&gt;&lt;span class="iNqyIf" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="KdQfFc#d5Qebf" jsuid="aKF1re_3g" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;span class="rQesXe MPyX" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="tP2kf#s32ZS" jsuid="aKF1re_3h" style="border-bottom: 0px rgb(10, 10, 10); font-weight: 700; margin: 0px;"&gt;The Result:&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; Because &lt;span class="rQesXe MPyX" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="tP2kf#s32ZS" jsuid="aKF1re_3i" style="border-bottom: 0px rgb(10, 10, 10); font-weight: 700; margin: 0px;"&gt;all 5 bits are &lt;code class="KDcb0c" data-complete="true" data-sae="" data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="hNviFe#redMub" jsuid="aKF1re_3j" style="border-bottom: 0.8px solid rgb(240, 242, 245); font-size: 14px; margin: 0px;"&gt;1&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;, the Bloom Filter responds: &lt;em class="zhvwWe" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="LFsGHb#ycPkjf" jsuid="aKF1re_3k" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;"This username &lt;span class="rQesXe MPyX" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="tP2kf#s32ZS" jsuid="aKF1re_3l" style="border-bottom: 0px rgb(10, 10, 10); font-weight: 700; margin: 0px;"&gt;MIGHT&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; be taken."&lt;!--TgQPHd|||[]--&gt;&lt;/em&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li class="Z1qcYe" data-complete="true" data-hveid="CAAIEhAC" data-sae="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="oSLmPe#HokZ0d" jsuid="aKF1re_3m" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px 0px 12px;"&gt;&lt;span class="iNqyIf" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="KdQfFc#d5Qebf" jsuid="aKF1re_3n" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;span class="rQesXe MPyX" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="tP2kf#s32ZS" jsuid="aKF1re_3o" style="border-bottom: 0px rgb(10, 10, 10); font-weight: 700; margin: 0px;"&gt;Next Step:&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; The system goes to Layer 2 (Redis/Database) to double-check. The database confirms it actually exists and rejects the request.&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/ol&gt;&lt;div class="yhAwj" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-inited="2" data-sfc-root="ep" jsaction="rcuQ6b:&amp;amp;aKF1re_3u|npT2md" jscontroller="UTzWVc#U8DOt" jsuid="aKF1re_3u" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;hr class="s6NV4e" data-complete="true" data-processed="true" data-sae="" data-sfc-pl="|||[]" data-sfc-root="ep" jsaction="" jscontroller="gWGJ0d#iOlsLd" jsuid="aKF1re_3v" style="border-bottom: 0px rgb(128, 128, 128); margin: 32px 0px;" /&gt;&lt;div class="yhAwj" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-inited="2" data-sfc-root="ep" jsaction="rcuQ6b:&amp;amp;aKF1re_3w|npT2md" jscontroller="UTzWVc#U8DOt" jsuid="aKF1re_3w" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div aria-level="3" class="otQkpb" data-animation-nesting="" data-complete="true" data-processed="true" data-sae="" data-sfc-cp="" data-sfc-root="ep" data-wiz-attrbind="aria-level=aKF1re_3x/fLk2Md" jsaction="" jscontroller="a7qCn#ZxCkTb" jsuid="aKF1re_3x" role="heading" style="border-bottom: 0px rgb(10, 10, 10); font-size: 20px; font-weight: 600; margin: 24px 0px 12px;"&gt;3. Scenario B: Searching for an AVAILABLE Username&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div class="n6owBd awi2gc" data-complete="true" data-hveid="CAAIFRAA" data-processed="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="TDBkbc#Ml18Xb" jsuid="aKF1re_3y" style="border-bottom: 0px rgb(10, 10, 10); font-size: 16px; margin: 12px 0px 16px;"&gt;Now a user searches for a completely unique username, like &lt;span class="rQesXe MPyX" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="tP2kf#s32ZS" jsuid="aKF1re_3z" style="border-bottom: 0px rgb(10, 10, 10); font-weight: 700; margin: 0px;"&gt;&lt;code class="KDcb0c" data-complete="true" data-sae="" data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="hNviFe#redMub" jsuid="aKF1re_40" style="border-bottom: 0.8px solid rgb(240, 242, 245); font-size: 14px; margin: 0px;"&gt;"coder_99"&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;.&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;ol class="T9WCjf qkgVBf" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="PnN4Le#N1SbDe" jsuid="aKF1re_46" style="border-bottom: 0px rgb(10, 10, 10); font-size: 16px; margin: 12px 0px 16px;"&gt;&lt;li class="Z1qcYe" data-complete="true" data-hveid="CAAIFhAB" data-sae="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="oSLmPe#HokZ0d" jsuid="aKF1re_47" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px 0px 12px;"&gt;&lt;span class="iNqyIf" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="KdQfFc#d5Qebf" jsuid="aKF1re_48" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;span class="rQesXe MPyX" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="tP2kf#s32ZS" jsuid="aKF1re_49" style="border-bottom: 0px rgb(10, 10, 10); font-weight: 700; margin: 0px;"&gt;Hash the input:&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;&lt;ul class="KsbFXc U6u95" data-complete="true" data-hveid="CAAIFhAC" data-sfc-cp="" data-sfc-root="ep" data-ved="2ahUKEwig1fnFg6KXAxX7T2wGHaQqHcoQ-7AUegYIAAgWEAI" jsaction="" jscontroller="mPWODf#NS0kde" jsuid="aKF1re_4a" style="border-bottom: 0px rgb(10, 10, 10); margin: 12px 0px 16px;"&gt;&lt;li class="Z1qcYe" data-complete="true" data-hveid="CAAIFhAD" data-sae="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="oSLmPe#HokZ0d" jsuid="aKF1re_4b" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px 0px 12px;"&gt;&lt;span class="iNqyIf" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="KdQfFc#d5Qebf" jsuid="aKF1re_4c" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;code class="KDcb0c" data-complete="true" data-sae="" data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="hNviFe#redMub" jsuid="aKF1re_4d" style="border-bottom: 0.8px solid rgb(240, 242, 245); font-size: 14px; margin: 0px;"&gt;Hash1("coder_99") % 7,000,000&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt; = &lt;span class="rQesXe MPyX" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="tP2kf#s32ZS" jsuid="aKF1re_4e" style="border-bottom: 0px rgb(10, 10, 10); font-weight: 700; margin: 0px;"&gt;Index 105&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li class="Z1qcYe" data-complete="true" data-hveid="CAAIFhAE" data-sae="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="oSLmPe#HokZ0d" jsuid="aKF1re_4f" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px 0px 12px;"&gt;&lt;span class="iNqyIf" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="KdQfFc#d5Qebf" jsuid="aKF1re_4g" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;code class="KDcb0c" data-complete="true" data-sae="" data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="hNviFe#redMub" jsuid="aKF1re_4h" style="border-bottom: 0.8px solid rgb(240, 242, 245); font-size: 14px; margin: 0px;"&gt;Hash2("coder_99") % 7,000,000&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt; = &lt;span class="rQesXe MPyX" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="tP2kf#s32ZS" jsuid="aKF1re_4i" style="border-bottom: 0px rgb(10, 10, 10); font-weight: 700; margin: 0px;"&gt;Index 894,001&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li class="Z1qcYe" data-complete="true" data-hveid="CAAIFhAF" data-sae="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="oSLmPe#HokZ0d" jsuid="aKF1re_4j" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px 0px 12px;"&gt;&lt;span class="iNqyIf" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="KdQfFc#d5Qebf" jsuid="aKF1re_4k" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;code class="KDcb0c" data-complete="true" data-sae="" data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="hNviFe#redMub" jsuid="aKF1re_4l" style="border-bottom: 0.8px solid rgb(240, 242, 245); font-size: 14px; margin: 0px;"&gt;Hash3("coder_99") % 7,000,000&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt; = &lt;span class="rQesXe MPyX" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="tP2kf#s32ZS" jsuid="aKF1re_4m" style="border-bottom: 0px rgb(10, 10, 10); font-weight: 700; margin: 0px;"&gt;Index 3,112,550&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li class="Z1qcYe" data-complete="true" data-hveid="CAAIFhAG" data-sae="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="oSLmPe#HokZ0d" jsuid="aKF1re_4n" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px 0px 12px;"&gt;&lt;span class="iNqyIf" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="KdQfFc#d5Qebf" jsuid="aKF1re_4o" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;code class="KDcb0c" data-complete="true" data-sae="" data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="hNviFe#redMub" jsuid="aKF1re_4p" style="border-bottom: 0.8px solid rgb(240, 242, 245); font-size: 14px; margin: 0px;"&gt;Hash4("coder_99") % 7,000,000&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt; = &lt;span class="rQesXe MPyX" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="tP2kf#s32ZS" jsuid="aKF1re_4q" style="border-bottom: 0px rgb(10, 10, 10); font-weight: 700; margin: 0px;"&gt;Index 5,000,123&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li class="Z1qcYe" data-complete="true" data-hveid="CAAIFhAH" data-sae="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="oSLmPe#HokZ0d" jsuid="aKF1re_4r" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px 0px 12px;"&gt;&lt;span class="iNqyIf" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="KdQfFc#d5Qebf" jsuid="aKF1re_4s" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;code class="KDcb0c" data-complete="true" data-sae="" data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="hNviFe#redMub" jsuid="aKF1re_4t" style="border-bottom: 0.8px solid rgb(240, 242, 245); font-size: 14px; margin: 0px;"&gt;Hash5("coder_99") % 7,000,000&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt; = &lt;span class="rQesXe MPyX" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="tP2kf#s32ZS" jsuid="aKF1re_4u" style="border-bottom: 0px rgb(10, 10, 10); font-weight: 700; margin: 0px;"&gt;Index 6,221,800&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/ul&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li class="Z1qcYe" data-complete="true" data-hveid="CAAIFhAK" data-sae="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="oSLmPe#HokZ0d" jsuid="aKF1re_50" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px 0px 12px;"&gt;&lt;span class="iNqyIf" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="KdQfFc#d5Qebf" jsuid="aKF1re_51" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;span class="rQesXe MPyX" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="tP2kf#s32ZS" jsuid="aKF1re_52" style="border-bottom: 0px rgb(10, 10, 10); font-weight: 700; margin: 0px;"&gt;Look up the bits in memory:&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/ol&gt;&lt;div class="yhAwj" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-inited="2" data-sfc-root="ep" jsaction="rcuQ6b:&amp;amp;aKF1re_58|npT2md" jscontroller="UTzWVc#U8DOt" jsuid="aKF1re_58" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div class="BpxUDf aiModeUiCodeBlock__Container" data-complete="true" data-hveid="CAAIFxAA" data-processed="true" data-sfc-cp="" data-sfc-root="ep" data-wiz-uids="aKF1re_5b,aKF1re_5a" jsaction="" jscontroller="Liu6s#lcO7sb" jsuid="aKF1re_59" style="border-bottom: 0px rgb(10, 10, 10); margin: 4px 0px 0px;"&gt;&lt;div data-processed="true" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;div class="rq1a2" data-animation-atomic="" data-sae="" style="border-bottom: 0.8px solid rgb(240, 242, 245); margin: 0px;"&gt;&lt;div class="PGvq2d" dir="ltr" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;pre style="border-bottom: 0px rgb(10, 10, 10); margin: 14px 0px;"&gt;&lt;code jsuid="aKF1re_5b" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;span class="undefined" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;Bit Array Indices:
[ 0 ] ... [ 105 ] ... [ 894,001 ] ... [ 3,112,550 ] ... [ 5,000,123 ] ... [ 6,221,800 ] ... [ 7,000,000 ]
  ▼          ▼             ▼                ▼                  ▼                  ▼
┌───┐      ┌───┐         ┌───┐            ┌───┐              ┌───┐              ┌───┐
│ 0 │ ...  │ 1 │ ...     │ 0 │    ...     │ 1 │     ...      │ 1 │     ...      │ 0 │     ...
└───┘      └───┘         └───┘            └───┘              └───┘              └───┘
                           ▲                                                      ▲
                           └───────── Found a '0' bit! ───────────────────────────┘
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--TgQPHd|||[[&amp;quot;unset&amp;quot;,&amp;quot;Bit Array Indices:\n[ 0 ] ... [ 105 ] ... [ 894,001 ] ... [ 3,112,550 ] ... [ 5,000,123 ] ... [ 6,221,800 ] ... [ 7,000,000 ]\n  ▼          ▼             ▼                ▼                  ▼                  ▼\n┌───┐      ┌───┐         ┌───┐            ┌───┐              ┌───┐              ┌───┐\n│ 0 │ ...  │ 1 │ ...     │ 0 │    ...     │ 1 │     ...      │ 1 │     ...      │ 0 │     ...\n└───┘      └───┘         └───┘            └───┘              └───┘              └───┘\n                           ▲                                                      ▲\n                           └───────── Found a &amp;#39;0&amp;#39; bit! ───────────────────────────┘\n&amp;quot;,[[&amp;quot;Bit Array Indices:\n[ 0 ] ... [ 105 ] ... [ 894,001 ] ... [ 3,112,550 ] ... [ 5,000,123 ] ... [ 6,221,800 ] ... [ 7,000,000 ]\n  ▼          ▼             ▼                ▼                  ▼                  ▼\n┌───┐      ┌───┐         ┌───┐            ┌───┐              ┌───┐              ┌───┐\n│ 0 │ ...  │ 1 │ ...     │ 0 │    ...     │ 1 │     ...      │ 1 │     ...      │ 0 │     ...\n└───┘      └───┘         └───┘            └───┘              └───┘              └───┘\n                           ▲                                                      ▲\n                           └───────── Found a &amp;#39;0&amp;#39; bit! ───────────────────────────┘\n&amp;quot;,0]]]]--&gt;&lt;/div&gt;&lt;ol class="T9WCjf qkgVBf" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="PnN4Le#N1SbDe" jsuid="aKF1re_5c" start="3" style="border-bottom: 0px rgb(10, 10, 10); font-size: 16px; margin: 12px 0px 16px;"&gt;&lt;li class="Z1qcYe" data-complete="true" data-hveid="CAAIGBAB" data-sae="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="oSLmPe#HokZ0d" jsuid="aKF1re_5d" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px 0px 12px;"&gt;&lt;span class="iNqyIf" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="KdQfFc#d5Qebf" jsuid="aKF1re_5e" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;span class="rQesXe MPyX" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="tP2kf#s32ZS" jsuid="aKF1re_5f" style="border-bottom: 0px rgb(10, 10, 10); font-weight: 700; margin: 0px;"&gt;The Result:&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; The system looks at Index 894,001 and sees a &lt;span class="rQesXe MPyX" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="tP2kf#s32ZS" jsuid="aKF1re_5g" style="border-bottom: 0px rgb(10, 10, 10); font-weight: 700; margin: 0px;"&gt;&lt;code class="KDcb0c" data-complete="true" data-sae="" data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="hNviFe#redMub" jsuid="aKF1re_5h" style="border-bottom: 0.8px solid rgb(240, 242, 245); font-size: 14px; margin: 0px;"&gt;0&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;. It doesn't even need to finish checking the rest. If that username had ever been registered, that bit &lt;em class="zhvwWe" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="LFsGHb#ycPkjf" jsuid="aKF1re_5i" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;must&lt;!--TgQPHd|||[]--&gt;&lt;/em&gt; have been flipped to &lt;code class="KDcb0c" data-complete="true" data-sae="" data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="hNviFe#redMub" jsuid="aKF1re_5j" style="border-bottom: 0.8px solid rgb(240, 242, 245); font-size: 14px; margin: 0px;"&gt;1&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt;.&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li class="Z1qcYe" data-complete="true" data-hveid="CAAIGBAE" data-sae="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="oSLmPe#HokZ0d" jsuid="aKF1re_5p" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px 0px 12px;"&gt;&lt;span class="iNqyIf" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="KdQfFc#d5Qebf" jsuid="aKF1re_5q" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;span class="rQesXe MPyX" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="tP2kf#s32ZS" jsuid="aKF1re_5r" style="border-bottom: 0px rgb(10, 10, 10); font-weight: 700; margin: 0px;"&gt;Next Step:&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; The Bloom Filter immediately stops and responds: &lt;em class="zhvwWe" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="LFsGHb#ycPkjf" jsuid="aKF1re_5s" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;"This username is &lt;span class="rQesXe MPyX" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="tP2kf#s32ZS" jsuid="aKF1re_5t" style="border-bottom: 0px rgb(10, 10, 10); font-weight: 700; margin: 0px;"&gt;DEFINITELY&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; available."&lt;!--TgQPHd|||[]--&gt;&lt;/em&gt; The database is completely bypassed, and the signup is instantly approved.&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/ol&gt;&lt;div class="yhAwj" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-inited="2" data-sfc-root="ep" jsaction="rcuQ6b:&amp;amp;aKF1re_5z|npT2md" jscontroller="UTzWVc#U8DOt" jsuid="aKF1re_5z" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;hr class="s6NV4e" data-complete="true" data-processed="true" data-sae="" data-sfc-pl="|||[]" data-sfc-root="ep" jsaction="" jscontroller="gWGJ0d#iOlsLd" jsuid="aKF1re_60" style="border-bottom: 0px rgb(128, 128, 128); margin: 32px 0px;" /&gt;&lt;div class="yhAwj" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-inited="2" data-sfc-root="ep" jsaction="rcuQ6b:&amp;amp;aKF1re_61|npT2md" jscontroller="UTzWVc#U8DOt" jsuid="aKF1re_61" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div aria-level="3" class="otQkpb" data-animation-nesting="" data-complete="true" data-processed="true" data-sae="" data-sfc-cp="" data-sfc-root="ep" data-wiz-attrbind="aria-level=aKF1re_62/fLk2Md" jsaction="" jscontroller="a7qCn#ZxCkTb" jsuid="aKF1re_62" role="heading" style="border-bottom: 0px rgb(10, 10, 10); font-size: 20px; font-weight: 600; margin: 24px 0px 12px;"&gt;What to expect at 7 bits per user (The Math)&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div class="n6owBd awi2gc" data-complete="true" data-hveid="CAAIGxAA" data-processed="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="TDBkbc#Ml18Xb" jsuid="aKF1re_63" style="border-bottom: 0px rgb(10, 10, 10); font-size: 16px; margin: 12px 0px 16px;"&gt;By allocating 7 bits per user and using 5 hash functions, your mathematical &lt;span class="rQesXe MPyX" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="tP2kf#s32ZS" jsuid="aKF1re_64" style="border-bottom: 0px rgb(10, 10, 10); font-weight: 700; margin: 0px;"&gt;False Positive Probability&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; will sit right around &lt;span class="rQesXe MPyX" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="tP2kf#s32ZS" jsuid="aKF1re_65" style="border-bottom: 0px rgb(10, 10, 10); font-weight: 700; margin: 0px;"&gt;8.2%&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;.&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div class="n6owBd awi2gc" data-complete="true" data-hveid="CAAIHBAA" data-processed="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="TDBkbc#Ml18Xb" jsuid="aKF1re_6b" style="border-bottom: 0px rgb(10, 10, 10); font-size: 16px; margin: 12px 0px 16px;"&gt;This means:&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;ul class="KsbFXc U6u95" data-complete="true" data-hveid="CAAIHRAA" data-processed="true" data-sfc-cp="" data-sfc-root="ep" data-ved="2ahUKEwig1fnFg6KXAxX7T2wGHaQqHcoQ-7AUegYIAAgdEAA" jsaction="" jscontroller="mPWODf#NS0kde" jsuid="aKF1re_6h" style="border-bottom: 0px rgb(10, 10, 10); font-size: 16px; margin: 12px 0px 16px;"&gt;&lt;li class="Z1qcYe" data-complete="true" data-hveid="CAAIHRAB" data-sae="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="oSLmPe#HokZ0d" jsuid="aKF1re_6i" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px 0px 12px;"&gt;&lt;span class="iNqyIf" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="KdQfFc#d5Qebf" jsuid="aKF1re_6j" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;span class="rQesXe MPyX" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="tP2kf#s32ZS" jsuid="aKF1re_6k" style="border-bottom: 0px rgb(10, 10, 10); font-weight: 700; margin: 0px;"&gt;91.8%&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; of the time someone picks an available username, the database is &lt;span class="rQesXe MPyX" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="tP2kf#s32ZS" jsuid="aKF1re_6l" style="border-bottom: 0px rgb(10, 10, 10); font-weight: 700; margin: 0px;"&gt;never touched&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;.&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li class="Z1qcYe" data-complete="true" data-hveid="CAAIHRAC" data-sae="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="oSLmPe#HokZ0d" jsuid="aKF1re_6m" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px 0px 12px;"&gt;&lt;span class="iNqyIf" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="KdQfFc#d5Qebf" jsuid="aKF1re_6n" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;span class="rQesXe MPyX" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="tP2kf#s32ZS" jsuid="aKF1re_6o" style="border-bottom: 0px rgb(10, 10, 10); font-weight: 700; margin: 0px;"&gt;8.2%&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; of the time, a clean username might accidentally hit all &lt;code class="KDcb0c" data-complete="true" data-sae="" data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="hNviFe#redMub" jsuid="aKF1re_6p" style="border-bottom: 0.8px solid rgb(240, 242, 245); font-size: 14px; margin: 0px;"&gt;1&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt;s because other users' hashes happened to cross paths there. The system will do a quick check against the database, realize it's actually free, and still let the user register it.&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/ul&gt;&lt;div class="yhAwj" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-inited="2" data-sfc-root="ep" jsaction="rcuQ6b:&amp;amp;aKF1re_6v|npT2md" jscontroller="UTzWVc#U8DOt" jsuid="aKF1re_6v" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div class="AHmQrc" data-complete="true" data-hveid="CAAIHhAA" data-processed="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="LkYPVc#wdvZmf" jsuid="aKF1re_6w" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;div class="n6owBd awi2gc" data-complete="true" data-hveid="CAAIHhAB" data-processed="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="TDBkbc#Ml18Xb" jsuid="aKF1re_6x" style="border-bottom: 0px rgb(10, 10, 10); font-size: 16px; margin: 12px 0px 16px;"&gt;You like a quick code snippet in &lt;span class="rQesXe MPyX" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="tP2kf#s32ZS" jsuid="aKF1re_6y" style="border-bottom: 0px rgb(10, 10, 10); font-weight: 700; margin: 0px;"&gt;Python&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;&amp;nbsp;&lt;a href="https://github.com/dhirajpatra/python_essentials/blob/main/python_coding_interview_prep/bloom%20filter%20to%20check%20username%20availability.py" target="_blank"&gt;here&lt;/a&gt;&amp;nbsp;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div class="yhAwj" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-inited="2" data-sfc-root="ep" jsaction="rcuQ6b:&amp;amp;aKF1re_76|npT2md" jscontroller="UTzWVc#U8DOt" jsuid="aKF1re_76" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div class="yhAwj" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-inited="2" data-sfc-root="ep" jsaction="rcuQ6b:&amp;amp;aKF1re_78|npT2md" jscontroller="UTzWVc#U8DOt" jsuid="aKF1re_78" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div class="yhAwj" data-complete="true" data-processed="true" data-sfc-cp="" data-sfc-inited="2" data-sfc-root="ep" jsaction="rcuQ6b:&amp;amp;aKF1re_a6|npT2md" jscontroller="UTzWVc#U8DOt" jsuid="aKF1re_a6" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;span style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div class="SGF5Lb" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="mk5ZW#TASLyc" jsuid="aKF1re_8" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;span style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div class="SGF5Lb" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="mk5ZW#TASLyc" jsuid="aKF1re_9" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;span style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div class="SGF5Lb" data-complete="true" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="mk5ZW#TASLyc" jsuid="aKF1re_a" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;span style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div class="" data-complete="true" data-sfc-root="ep" jsaction="" jscontroller="zp3Dsd#fP0RJ" jsuid="aKF1re_b" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 14px; margin: 0px;"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div data-xid="aQR2uf" jsaction="aimRestoredThreadVisible:&amp;amp;aKF1re_1|ZUljYd;requestToggleBottomSheet:&amp;amp;aKF1re_1|aXD3Gb" jsuid="aKF1re_2" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 14px; margin: 0px;"&gt;&lt;/div&gt;&lt;div data-complete="true" data-sfc-inited="2" data-sfc-root="c" data-wiz-uids="aKF1re_h,aKF1re_i" jsaction="rcuQ6b:&amp;amp;aKF1re_g|npT2md" jscontroller="CAwPlc#Hx4Oqd" jsuid="aKF1re_g" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; font-size: 14px; margin: 0px;"&gt;&lt;!--TgQPHdaKF1re_1/YOIIaf;aKF1re_1/VWapad|||[{&amp;quot;s&amp;quot;:false,&amp;quot;i&amp;quot;:&amp;quot;aKF1re_1/YOIIaf&amp;quot;},{&amp;quot;s&amp;quot;:null,&amp;quot;i&amp;quot;:&amp;quot;aKF1re_1/VWapad&amp;quot;},156,{&amp;quot;s&amp;quot;:null,&amp;quot;i&amp;quot;:&amp;quot;aKF1re_1/C5DOxd&amp;quot;},[&amp;quot;AimExportActionToastLink&amp;quot;,309275],&amp;quot;\u0026aKF1re_1:bREfu&amp;quot;,false]--&gt;&lt;/div&gt;&lt;!--TgQPHd|aKF1re_1/YOIIaf;aKF1re_1/VWapad;aKF1re_1/C5DOxd;aKF1re_1/LL5gb;aKF1re_1/We76zc||[[null,0,null,0,null,0,[&amp;quot;can you show me if i am using 7 bith for each then how it will look when searching&amp;quot;],null,0,[&amp;quot;can you show me if i am using 7 bith for each then how it will look when searching&amp;quot;]]]--&gt;&lt;div class="blogger-post-footer"&gt;Open Source Open Mind&lt;/div&gt;</description><author>dhiraj.patra@gmail.com (dhiraj patra)</author></item><item><title>What To Learn For AI</title><link>http://dhirajpatra.blogspot.com/2026/09/what-to-learn-for-ai.html</link><category>artificial intelligence</category><category>machine learning</category><pubDate>Sat, 26 Sep 2026 18:58:04 -0700</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8993867651193907565.post-3977045334024362064</guid><description>&lt;p&gt;Amisha Yadav @amisha_explains put together one practical roadmap with videos, GitHub repos, guides, books, research papers, and courses.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;VIDEOS:&lt;/b&gt;&lt;/p&gt;&lt;p&gt;1. LLM Introduction — &lt;a href="https://youtube.com/watch?v=zjkBMFhNj_g"&gt;https://youtube.com/watch?v=zjkBMFhNj_g&lt;/a&gt;&lt;/p&gt;&lt;p&gt;2. LLMs from Scratch — &lt;a href="https://youtube.com/watch?v=9vM4p9NN0Ts"&gt;https://youtube.com/watch?v=9vM4p9NN0Ts&lt;/a&gt;&lt;/p&gt;&lt;p&gt;3. Agentic AI Overview (Stanford) — &lt;a href="https://youtube.com/watch?v=kJLiOGle3Lw"&gt;https://youtube.com/watch?v=kJLiOGle3Lw&lt;/a&gt;&lt;/p&gt;&lt;p&gt;4. Building &amp;amp; Evaluating Agents — &lt;a href="https://youtube.com/watch?v=d5EltXhbcfA"&gt;https://youtube.com/watch?v=d5EltXhbcfA&lt;/a&gt;&lt;/p&gt;&lt;p&gt;5. Building Effective Agents — &lt;a href="https://youtube.com/watch?v=D7_ipDqhtwk"&gt;https://youtube.com/watch?v=D7_ipDqhtwk&lt;/a&gt;&lt;/p&gt;&lt;p&gt;6. Building Agents with MCP — &lt;a href="https://youtube.com/watch?v=kQmXtrmQ5Zg"&gt;https://youtube.com/watch?v=kQmXtrmQ5Zg&lt;/a&gt;&lt;/p&gt;&lt;p&gt;7. Building an Agent from Scratch — &lt;a href="https://youtube.com/watch?v=xzXdLRUyjUg"&gt;https://youtube.com/watch?v=xzXdLRUyjUg&lt;/a&gt;&lt;/p&gt;&lt;p&gt;8. Philo Agents — &lt;a href="https://youtube.com/playlist?list=PLacQJwuclt_sV-tfZmpT1Ov6jldHl30NR"&gt;https://youtube.com/playlist?list=PLacQJwuclt_sV-tfZmpT1Ov6jldHl30NR&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;GITHUB REPOS:&lt;/b&gt;&lt;/p&gt;&lt;p&gt;1. GenAI Agents — &lt;a href="https://github.com/nirdiamant/GenAI_Agents"&gt;https://github.com/nirdiamant/GenAI_Agents&lt;/a&gt;&lt;/p&gt;&lt;p&gt;2. Microsoft AI Agents for Beginners — &lt;a href="https://github.com/microsoft/ai-agents-for-beginners"&gt;https://github.com/microsoft/ai-agents-for-beginners&lt;/a&gt;&lt;/p&gt;&lt;p&gt;3. Prompt Engineering Guide — &lt;a href="https://github.com/dair-ai/Prompt-Engineering-Guide"&gt;https://github.com/dair-ai/Prompt-Engineering-Guide&lt;/a&gt;&lt;/p&gt;&lt;p&gt;4. Hands-On Large Language Models — &lt;a href="https://github.com/HandsOnLLM/Hands-On-Large-Language-Models"&gt;https://github.com/HandsOnLLM/Hands-On-Large-Language-Models&lt;/a&gt;&lt;/p&gt;&lt;p&gt;5. GenAI Agents — &lt;a href="https://github.com/NirDiamant/GenAI_Agents"&gt;https://github.com/NirDiamant/GenAI_Agents&lt;/a&gt;&lt;/p&gt;&lt;p&gt;6. Made with ML — &lt;a href="https://github.com/GokuMohandas/Made-With-ML"&gt;https://github.com/GokuMohandas/Made-With-ML&lt;/a&gt;&lt;/p&gt;&lt;p&gt;7. Hands-On AI Engineering — &lt;a href="https://github.com/Sumanth077/Hands-On-AI-Engineering"&gt;https://github.com/Sumanth077/Hands-On-AI-Engineering&lt;/a&gt;&lt;/p&gt;&lt;p&gt;8. Awesome Generative AI Guide — &lt;a href="https://github.com/aishwaryanr/awesome-generative-ai-guide"&gt;https://github.com/aishwaryanr/awesome-generative-ai-guide&lt;/a&gt;&lt;/p&gt;&lt;p&gt;9. Designing Machine Learning Systems — &lt;a href="https://github.com/chiphuyen/dmls-book"&gt;https://github.com/chiphuyen/dmls-book&lt;/a&gt;&lt;/p&gt;&lt;p&gt;10. Machine Learning for Beginners — &lt;a href="https://github.com/microsoft/ML-For-Beginners"&gt;https://github.com/microsoft/ML-For-Beginners&lt;/a&gt;&lt;/p&gt;&lt;p&gt;11. LLM Course — &lt;a href="https://github.com/mlabonne/llm-course"&gt;https://github.com/mlabonne/llm-course&lt;/a&gt;&lt;/p&gt;&lt;p&gt;12. Jupyter Notebooks for all AI, ML, GenAI, LLMs:&amp;nbsp;&lt;a href="https://github.com/dhirajpatra/jupyter_notebooks" rel="nofollow" target="_blank"&gt;https://github.com/dhirajpatra/jupyter_notebooks&amp;nbsp;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;GUIDES:&lt;/b&gt;&lt;/p&gt;&lt;p&gt;1. Google's Agent Whitepaper — &lt;a href="https://kaggle.com/whitepaper-agents"&gt;https://kaggle.com/whitepaper-agents&lt;/a&gt;&lt;/p&gt;&lt;p&gt;2. Google's Agent Companion — &lt;a href="https://kaggle.com/whitepaper-agent-companion"&gt;https://kaggle.com/whitepaper-agent-companion&lt;/a&gt;&lt;/p&gt;&lt;p&gt;3. Building Effective Agents by Anthropic — &lt;a href="https://anthropic.com/engineering/building-effective-agents"&gt;https://anthropic.com/engineering/building-effective-agents&lt;/a&gt;&lt;/p&gt;&lt;p&gt;4. Claude Code Agentic Coding Practices — &lt;a href="https://code.claude.com/docs/en/best-practices"&gt;https://code.claude.com/docs/en/best-practices&lt;/a&gt;&lt;/p&gt;&lt;p&gt;5. OpenAI's Practical Guide to Building Agents — &lt;a href="https://cdn.openai.com/business-guides-and-resources/a-practical-guide-to-building-agents.pdf"&gt;https://cdn.openai.com/business-guides-and-resources/a-practical-guide-to-building-agents.pdf&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;BOOKS:&lt;/b&gt;&lt;/p&gt;&lt;p&gt;1. Understanding Deep Learning — &lt;a href="https://udlbook.github.io/udlbook/"&gt;https://udlbook.github.io/udlbook/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;2. Building an LLM from Scratch — &lt;a href="https://manning.com/books/build-a-large-language-model-from-scratch"&gt;https://manning.com/books/build-a-large-language-model-from-scratch&lt;/a&gt;&lt;/p&gt;&lt;p&gt;3. The LLM Engineering Handbook — &lt;a href="https://oreilly.com/library/view/llm-engineers-handbook/9781836200079/"&gt;https://oreilly.com/library/view/llm-engineers-handbook/9781836200079/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;4. AI Agents: The Definitive Guide — &lt;a href="https://oreilly.com/library/view/ai-agents-the/0642572247775/"&gt;https://oreilly.com/library/view/ai-agents-the/0642572247775/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;5. Building Applications with AI Agents — &lt;a href="https://oreilly.com/library/view/building-applications-with/9781098176495/"&gt;https://oreilly.com/library/view/building-applications-with/9781098176495/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;6. AI Agents with MCP — &lt;a href="https://oreilly.com/library/view/ai-agents-with/9798341639546/"&gt;https://oreilly.com/library/view/ai-agents-with/9798341639546/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;7. AI Engineering — &lt;a href="https://oreilly.com/library/view/ai-engineering/9781098166298/"&gt;https://oreilly.com/library/view/ai-engineering/9781098166298/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;RESEARCH PAPERS:&lt;/b&gt;&lt;/p&gt;&lt;p&gt;1. ReAct — &lt;a href="https://arxiv.org/abs/2210.03629"&gt;https://arxiv.org/abs/2210.03629&lt;/a&gt;&lt;/p&gt;&lt;p&gt;2. Generative Agents — &lt;a href="https://arxiv.org/abs/2304.03442"&gt;https://arxiv.org/abs/2304.03442&lt;/a&gt;&lt;/p&gt;&lt;p&gt;3. Toolformer — &lt;a href="https://proceedings.neurips.cc/paper_files/paper/2023/file/d842425e4bf79ba039352da0f658a906-Paper-Conference.pdf"&gt;https://proceedings.neurips.cc/paper_files/paper/2023/file/d842425e4bf79ba039352da0f658a906-Paper-Conference.pdf&lt;/a&gt;&lt;/p&gt;&lt;p&gt;4. Chain-of-Thought Prompting — &lt;a href="https://arxiv.org/pdf/2201.11903"&gt;https://arxiv.org/pdf/2201.11903&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;COURSES:&lt;/b&gt;&lt;/p&gt;&lt;p&gt;1. Hugging Face Agent Course — &lt;a href="https://huggingface.co/learn/agents-course/en/unit0/introduction"&gt;https://huggingface.co/learn/agents-course/en/unit0/introduction&lt;/a&gt;&lt;/p&gt;&lt;p&gt;2. MCP with Anthropic — &lt;a href="https://deeplearning.ai/courses/mcp-build-rich-context-ai-apps-with-anthropic"&gt;https://deeplearning.ai/courses/mcp-build-rich-context-ai-apps-with-anthropic&lt;/a&gt;&lt;/p&gt;&lt;p&gt;3. Building Vector Databases with Pinecone — &lt;a href="https://deeplearning.ai/courses/building-applications-vector-databases"&gt;https://deeplearning.ai/courses/building-applications-vector-databases&lt;/a&gt;&lt;/p&gt;&lt;p&gt;4. Vector Databases: Embeddings to Apps — &lt;a href="https://deeplearning.ai/courses/vector-databases-embeddings-applications"&gt;https://deeplearning.ai/courses/vector-databases-embeddings-applications&lt;/a&gt;&lt;/p&gt;&lt;p&gt;5. Agent Memory — &lt;a href="https://deeplearning.ai/courses/llms-as-operating-systems-agent-memory"&gt;https://deeplearning.ai/courses/llms-as-operating-systems-agent-memory&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;No endless searching. No information overload. Just resources you can actually use. &#128278;&lt;/p&gt;&lt;p&gt;Your future AI skill set will come from consistent building, experimenting, and learning.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;Open Source Open Mind&lt;/div&gt;</description><author>dhiraj.patra@gmail.com (dhiraj patra)</author><enclosure length="-1" type="application/pdf" url="https://cdn.openai.com/business-guides-and-resources/a-practical-guide-to-building-agents.pdf"/><itunes:explicit>no</itunes:explicit><itunes:subtitle>Amisha Yadav @amisha_explains put together one practical roadmap with videos, GitHub repos, guides, books, research papers, and courses. VIDEOS: 1. LLM Introduction — https://youtube.com/watch?v=zjkBMFhNj_g 2. LLMs from Scratch — https://youtube.com/watch?v=9vM4p9NN0Ts 3. Agentic AI Overview (Stanford) — https://youtube.com/watch?v=kJLiOGle3Lw 4. Building &amp;amp; Evaluating Agents — https://youtube.com/watch?v=d5EltXhbcfA 5. Building Effective Agents — https://youtube.com/watch?v=D7_ipDqhtwk 6. Building Agents with MCP — https://youtube.com/watch?v=kQmXtrmQ5Zg 7. Building an Agent from Scratch — https://youtube.com/watch?v=xzXdLRUyjUg 8. Philo Agents — https://youtube.com/playlist?list=PLacQJwuclt_sV-tfZmpT1Ov6jldHl30NR GITHUB REPOS: 1. GenAI Agents — https://github.com/nirdiamant/GenAI_Agents 2. Microsoft AI Agents for Beginners — https://github.com/microsoft/ai-agents-for-beginners 3. Prompt Engineering Guide — https://github.com/dair-ai/Prompt-Engineering-Guide 4. Hands-On Large Language Models — https://github.com/HandsOnLLM/Hands-On-Large-Language-Models 5. GenAI Agents — https://github.com/NirDiamant/GenAI_Agents 6. Made with ML — https://github.com/GokuMohandas/Made-With-ML 7. Hands-On AI Engineering — https://github.com/Sumanth077/Hands-On-AI-Engineering 8. Awesome Generative AI Guide — https://github.com/aishwaryanr/awesome-generative-ai-guide 9. Designing Machine Learning Systems — https://github.com/chiphuyen/dmls-book 10. Machine Learning for Beginners — https://github.com/microsoft/ML-For-Beginners 11. LLM Course — https://github.com/mlabonne/llm-course 12. Jupyter Notebooks for all AI, ML, GenAI, LLMs:&amp;nbsp;https://github.com/dhirajpatra/jupyter_notebooks&amp;nbsp; GUIDES: 1. Google's Agent Whitepaper — https://kaggle.com/whitepaper-agents 2. Google's Agent Companion — https://kaggle.com/whitepaper-agent-companion 3. Building Effective Agents by Anthropic — https://anthropic.com/engineering/building-effective-agents 4. Claude Code Agentic Coding Practices — https://code.claude.com/docs/en/best-practices 5. OpenAI's Practical Guide to Building Agents — https://cdn.openai.com/business-guides-and-resources/a-practical-guide-to-building-agents.pdf BOOKS: 1. Understanding Deep Learning — https://udlbook.github.io/udlbook/ 2. Building an LLM from Scratch — https://manning.com/books/build-a-large-language-model-from-scratch 3. The LLM Engineering Handbook — https://oreilly.com/library/view/llm-engineers-handbook/9781836200079/ 4. AI Agents: The Definitive Guide — https://oreilly.com/library/view/ai-agents-the/0642572247775/ 5. Building Applications with AI Agents — https://oreilly.com/library/view/building-applications-with/9781098176495/ 6. AI Agents with MCP — https://oreilly.com/library/view/ai-agents-with/9798341639546/ 7. AI Engineering — https://oreilly.com/library/view/ai-engineering/9781098166298/ RESEARCH PAPERS: 1. ReAct — https://arxiv.org/abs/2210.03629 2. Generative Agents — https://arxiv.org/abs/2304.03442 3. Toolformer — https://proceedings.neurips.cc/paper_files/paper/2023/file/d842425e4bf79ba039352da0f658a906-Paper-Conference.pdf 4. Chain-of-Thought Prompting — https://arxiv.org/pdf/2201.11903 COURSES: 1. Hugging Face Agent Course — https://huggingface.co/learn/agents-course/en/unit0/introduction 2. MCP with Anthropic — https://deeplearning.ai/courses/mcp-build-rich-context-ai-apps-with-anthropic 3. Building Vector Databases with Pinecone — https://deeplearning.ai/courses/building-applications-vector-databases 4. Vector Databases: Embeddings to Apps — https://deeplearning.ai/courses/vector-databases-embeddings-applications 5. Agent Memory — https://deeplearning.ai/courses/llms-as-operating-systems-agent-memory No endless searching. No information overload. Just resources you can actually use. &#128278; Your future AI skill set will come from consistent building, experimenting, and learning.Open Source Open Mind</itunes:subtitle><itunes:author>dhiraj patra</itunes:author><itunes:summary>Amisha Yadav @amisha_explains put together one practical roadmap with videos, GitHub repos, guides, books, research papers, and courses. VIDEOS: 1. LLM Introduction — https://youtube.com/watch?v=zjkBMFhNj_g 2. LLMs from Scratch — https://youtube.com/watch?v=9vM4p9NN0Ts 3. Agentic AI Overview (Stanford) — https://youtube.com/watch?v=kJLiOGle3Lw 4. Building &amp;amp; Evaluating Agents — https://youtube.com/watch?v=d5EltXhbcfA 5. Building Effective Agents — https://youtube.com/watch?v=D7_ipDqhtwk 6. Building Agents with MCP — https://youtube.com/watch?v=kQmXtrmQ5Zg 7. Building an Agent from Scratch — https://youtube.com/watch?v=xzXdLRUyjUg 8. Philo Agents — https://youtube.com/playlist?list=PLacQJwuclt_sV-tfZmpT1Ov6jldHl30NR GITHUB REPOS: 1. GenAI Agents — https://github.com/nirdiamant/GenAI_Agents 2. Microsoft AI Agents for Beginners — https://github.com/microsoft/ai-agents-for-beginners 3. Prompt Engineering Guide — https://github.com/dair-ai/Prompt-Engineering-Guide 4. Hands-On Large Language Models — https://github.com/HandsOnLLM/Hands-On-Large-Language-Models 5. GenAI Agents — https://github.com/NirDiamant/GenAI_Agents 6. Made with ML — https://github.com/GokuMohandas/Made-With-ML 7. Hands-On AI Engineering — https://github.com/Sumanth077/Hands-On-AI-Engineering 8. Awesome Generative AI Guide — https://github.com/aishwaryanr/awesome-generative-ai-guide 9. Designing Machine Learning Systems — https://github.com/chiphuyen/dmls-book 10. Machine Learning for Beginners — https://github.com/microsoft/ML-For-Beginners 11. LLM Course — https://github.com/mlabonne/llm-course 12. Jupyter Notebooks for all AI, ML, GenAI, LLMs:&amp;nbsp;https://github.com/dhirajpatra/jupyter_notebooks&amp;nbsp; GUIDES: 1. Google's Agent Whitepaper — https://kaggle.com/whitepaper-agents 2. Google's Agent Companion — https://kaggle.com/whitepaper-agent-companion 3. Building Effective Agents by Anthropic — https://anthropic.com/engineering/building-effective-agents 4. Claude Code Agentic Coding Practices — https://code.claude.com/docs/en/best-practices 5. OpenAI's Practical Guide to Building Agents — https://cdn.openai.com/business-guides-and-resources/a-practical-guide-to-building-agents.pdf BOOKS: 1. Understanding Deep Learning — https://udlbook.github.io/udlbook/ 2. Building an LLM from Scratch — https://manning.com/books/build-a-large-language-model-from-scratch 3. The LLM Engineering Handbook — https://oreilly.com/library/view/llm-engineers-handbook/9781836200079/ 4. AI Agents: The Definitive Guide — https://oreilly.com/library/view/ai-agents-the/0642572247775/ 5. Building Applications with AI Agents — https://oreilly.com/library/view/building-applications-with/9781098176495/ 6. AI Agents with MCP — https://oreilly.com/library/view/ai-agents-with/9798341639546/ 7. AI Engineering — https://oreilly.com/library/view/ai-engineering/9781098166298/ RESEARCH PAPERS: 1. ReAct — https://arxiv.org/abs/2210.03629 2. Generative Agents — https://arxiv.org/abs/2304.03442 3. Toolformer — https://proceedings.neurips.cc/paper_files/paper/2023/file/d842425e4bf79ba039352da0f658a906-Paper-Conference.pdf 4. Chain-of-Thought Prompting — https://arxiv.org/pdf/2201.11903 COURSES: 1. Hugging Face Agent Course — https://huggingface.co/learn/agents-course/en/unit0/introduction 2. MCP with Anthropic — https://deeplearning.ai/courses/mcp-build-rich-context-ai-apps-with-anthropic 3. Building Vector Databases with Pinecone — https://deeplearning.ai/courses/building-applications-vector-databases 4. Vector Databases: Embeddings to Apps — https://deeplearning.ai/courses/vector-databases-embeddings-applications 5. Agent Memory — https://deeplearning.ai/courses/llms-as-operating-systems-agent-memory No endless searching. No information overload. Just resources you can actually use. &#128278; Your future AI skill set will come from consistent building, experimenting, and learning.Open Source Open Mind</itunes:summary><itunes:keywords>dhiraj,dhirajpatra,php</itunes:keywords></item><item><title>Designing and implementing AI-driven Cybersecurity Tools using Knowledge Graphs (KGs)</title><link>http://dhirajpatra.blogspot.com/2026/09/designing-and-implementing-ai-driven.html</link><category>agent</category><category>agenticai</category><category>cyber security</category><category>security</category><pubDate>Mon, 21 Sep 2026 01:24:48 -0700</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8993867651193907565.post-3376136460131853739</guid><description>&lt;p&gt;&lt;span class="citation-15" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; color: #1f1f1f; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Designing and implementing AI-driven cybersecurity tools using &lt;/span&gt;&lt;b data-index-in-node="63" data-path-to-node="0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; color: #1f1f1f; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Knowledge Graphs (KGs)&lt;/b&gt;&lt;span class="citation-15" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; color: #1f1f1f; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt; as the baseline foundation—and &lt;/span&gt;&lt;b data-index-in-node="117" data-path-to-node="0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; color: #1f1f1f; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;AIVSS (OWASP AI Vulnerability Scoring System)&lt;/b&gt;&lt;span class="citation-15 citation-end-15" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; color: #1f1f1f; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt; as your structural security architecture blueprint—is one of the most effective paradigms for modern threat intelligence.&lt;/span&gt;&lt;/p&gt;&lt;div _ngcontent-ng-c350255325="" aria-busy="false" aria-live="polite" class="markdown markdown-main-panel md-content enable-luminous-fast-follows enable-updated-hr-color stronger tutor-markdown-rendering" dir="ltr" id="model-response-message-contentr_8bbb0833e7b755b4" inline-copy-host="" style="--animation-duration: 400ms; --fade-animation-function: ease-out; animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; color: #1f1f1f; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif !important; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;sources-carousel-inline _nghost-ng-c3540820740="" ng-version="0.0.0-PLACEHOLDER" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;source-inline-chip _ngcontent-ng-c3540820740="" _nghost-ng-c1030636328="" class="ng-star-inserted" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/source-inline-chip&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/sources-carousel-inline&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;span class="citation-14" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;While traditional security setups process isolated logs and apply flat CVSS scores, this approach models &lt;/span&gt;&lt;b data-index-in-node="105" data-path-to-node="1" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;interconnected dependencies&lt;/b&gt;&lt;span class="citation-14" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt; (Graph) and quantifies &lt;/span&gt;&lt;b data-index-in-node="156" data-path-to-node="1" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;AI/agentic risk dynamics&lt;/b&gt;&lt;span class="citation-14 citation-end-14" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt; (AIVSS).&lt;source-footnote _nghost-ng-c3926095668="" ng-version="0.0.0-PLACEHOLDER" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;sup _ngcontent-ng-c3926095668="" class="superscript" data-turn-source-index="2" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-color: transparent !important; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(68, 71, 70); clear: none; clip: auto; color: #444746; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline-flex; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-size: 16px !important; gap: normal; hyphens: manual; inset: -10px 2px 10px -2px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(68, 71, 70) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(68, 71, 70); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;!----&gt;&lt;/sup&gt;&lt;/source-footnote&gt;&lt;/span&gt;&lt;sources-carousel-inline _nghost-ng-c3540820740="" ng-version="0.0.0-PLACEHOLDER" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;   &lt;!----&gt;&lt;source-inline-chip _ngcontent-ng-c3540820740="" _nghost-ng-c1030636328="" class="ng-star-inserted" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/source-inline-chip&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/sources-carousel-inline&gt;&lt;/div&gt;&lt;br /&gt;&lt;h2 data-path-to-node="3" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans&amp;quot;, sans-serif !important; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;1. Architectural Blueprint: The Core Synergy&lt;/h2&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;In this framework, the &lt;b data-index-in-node="23" data-path-to-node="4" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Knowledge Graph (KG)&lt;/b&gt; acts as the &lt;i data-index-in-node="56" data-path-to-node="4" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;unified state representation&lt;/i&gt; (Context Engine), while &lt;b data-index-in-node="109" data-path-to-node="4" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;AIVSS&lt;/b&gt; provides the &lt;i data-index-in-node="128" data-path-to-node="4" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;quantified risk scoring framework&lt;/i&gt; for AI systems and autonomous agents.&lt;/div&gt;&lt;br /&gt;&lt;response-element class="no-md" ng-version="0.0.0-PLACEHOLDER" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;code-block _nghost-ng-c1745535781="" class="ng-tns-c1745535781-35 enable-luminous-code-block ng-star-inserted" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;!----&gt;&lt;!----&gt;&lt;div _ngcontent-ng-c1745535781="" class="code-block ng-tns-c1745535781-35 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation" data-hveid="0" data-ved="0CAAQhtANahgKEwjT97ug0f6WAxUAAAAAHQAAAAAQpQE" decode-data-ved="1" jslog="223238;track:impression,attention;BardVeMetadataKey:W1sicl84YmJiMDgzM2U3Yjc1NWI0IiwiY18zNjZlY2ZiMDUzYzJhYmIwIixudWxsLCJyY19kYzQ0ZTBhNWI0ZTJhMGJjIixudWxsLG51bGwsImVuIixudWxsLDEsbnVsbCxudWxsLDEsMF1d" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;!----&gt;&lt;div _ngcontent-ng-c1745535781="" class="formatted-code-block-internal-container ng-tns-c1745535781-35" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(20, 20, 20); border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 26px 0px 0px 32px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div _ngcontent-ng-c1745535781="" class="animated-opacity ng-tns-c1745535781-35" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;!----&gt;&lt;pre _ngcontent-ng-c1745535781="" class="ng-tns-c1745535781-35" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif !important; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;code _ngcontent-ng-c1745535781="" class="code-container formatted ng-tns-c1745535781-35 no-decoration-radius" data-test-id="code-content" role="text" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(255, 255, 255); clear: none; clip: auto; color: white; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif !important; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 14px; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(255, 255, 255) none 2.4px; overlay: none; padding: 16px 0px 32px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(255, 255, 255); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;┌─────────────────────────────────────────────────────────┐
│              Ingestion &amp;amp; Telemetry Pipeline                                                                                   │
│   (Logs, Cloud Assets, Model Weights, Prompts, Traces)                                                       │
└───────────────────────────┬─────────────────────────────┘
                                                                        │
                                                                       ▼
┌─────────────────────────────────────────────────────────┐
│                 Security Knowledge Graph                                                                                      │
│    Entities: (Identity) -[CAN_EXECUTE]-&amp;gt; (Agent)                                                                   │
│               (Agent)   -[ACCESSES]-&amp;gt;    (Data Store)                                                                  │
└──────────────┬───────────────────────────┬──────────────┘
                                      │                                                                      │
                                     ▼                                                                     ▼
┌──────────────────────────────┐ ┌────────────────────────┐
│      Graph Analytics &amp;amp;                                           │ │   AIVSS Risk Engine                           │
│    Ontology-Based AI (RAG)                                │  │ (AARFs &amp;amp; Scoring Matrix                   │
└──────────────┬───────────────┘ └───────────┬────────────┘
                                      │                                                                         │
                                      └──────────────┬─────────────┘
                                                                            │
                                                                            ▼
┌─────────────────────────────────────────────────────────┐
│             Action Engine / Orchestration                                                                                      │
│       (Policy Enforcement, Agent Isolation, SOAR)                                                                    │
└─────────────────────────────────────────────────────────┘
&lt;/code&gt;&lt;/pre&gt;&lt;!----&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/code-block&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/response-element&gt;&lt;h2 data-path-to-node="7" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans&amp;quot;, sans-serif !important; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;2. Knowledge Graph Foundation: Schema &amp;amp; Implementation&lt;/h2&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;span class="citation-13 citation-end-13" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;A security graph maps contextual relationships instead of treating logs as isolated events.&lt;source-footnote _nghost-ng-c3926095668="" ng-version="0.0.0-PLACEHOLDER" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;sup _ngcontent-ng-c3926095668="" class="superscript" data-turn-source-index="3" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-color: transparent !important; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(68, 71, 70); clear: none; clip: auto; color: #444746; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline-flex; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-size: 16px !important; gap: normal; hyphens: manual; inset: -10px 2px 10px -2px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(68, 71, 70) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(68, 71, 70); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;!----&gt;&lt;/sup&gt;&lt;/source-footnote&gt;&lt;/span&gt;&lt;sources-carousel-inline _nghost-ng-c3540820740="" ng-version="0.0.0-PLACEHOLDER" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;   &lt;!----&gt;&lt;source-inline-chip _ngcontent-ng-c3540820740="" _nghost-ng-c1030636328="" class="ng-star-inserted" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/source-inline-chip&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/sources-carousel-inline&gt;&lt;/div&gt;&lt;br /&gt;&lt;h3 data-path-to-node="9" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans&amp;quot;, sans-serif !important; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Key Entities (Nodes) &amp;amp; Relationships (Edges)&lt;/h3&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;To model both IT infrastructure and AI/Agent ecosystems, structure your graph schema (using Neo4j, AWS Neptune, or Memgraph) around these core nodes:&lt;/div&gt;&lt;br /&gt;&lt;ul data-path-to-node="11" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding-inline-start: 32px; padding: 0px 0px 0px 3.36px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;b data-index-in-node="0" data-path-to-node="11,0,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Entities:&lt;/b&gt; &lt;code data-index-in-node="10" data-path-to-node="11,0,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(242, 240, 240); border: 0px rgba(0, 0, 0, 0.55); clear: none; clip: auto; color: rgba(0, 0, 0, 0.55); columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline-block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif !important; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 15px; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgba(0, 0, 0, 0.55) none 2.4px; overlay: none; padding: 4px 6px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgba(0, 0, 0, 0.55); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;User&lt;/code&gt;, &lt;code data-index-in-node="16" data-path-to-node="11,0,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(242, 240, 240); border: 0px rgba(0, 0, 0, 0.55); clear: none; clip: auto; color: rgba(0, 0, 0, 0.55); columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline-block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif !important; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 15px; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgba(0, 0, 0, 0.55) none 2.4px; overlay: none; padding: 4px 6px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgba(0, 0, 0, 0.55); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Agent&lt;/code&gt;, &lt;code data-index-in-node="23" data-path-to-node="11,0,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(242, 240, 240); border: 0px rgba(0, 0, 0, 0.55); clear: none; clip: auto; color: rgba(0, 0, 0, 0.55); columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline-block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif !important; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 15px; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgba(0, 0, 0, 0.55) none 2.4px; overlay: none; padding: 4px 6px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgba(0, 0, 0, 0.55); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Prompt&lt;/code&gt;, &lt;code data-index-in-node="31" data-path-to-node="11,0,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(242, 240, 240); border: 0px rgba(0, 0, 0, 0.55); clear: none; clip: auto; color: rgba(0, 0, 0, 0.55); columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline-block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif !important; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 15px; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgba(0, 0, 0, 0.55) none 2.4px; overlay: none; padding: 4px 6px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgba(0, 0, 0, 0.55); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;LLM_Model&lt;/code&gt;, &lt;code data-index-in-node="42" data-path-to-node="11,0,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(242, 240, 240); border: 0px rgba(0, 0, 0, 0.55); clear: none; clip: auto; color: rgba(0, 0, 0, 0.55); columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline-block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif !important; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 15px; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgba(0, 0, 0, 0.55) none 2.4px; overlay: none; padding: 4px 6px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgba(0, 0, 0, 0.55); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Dataset&lt;/code&gt;, &lt;code data-index-in-node="51" data-path-to-node="11,0,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(242, 240, 240); border: 0px rgba(0, 0, 0, 0.55); clear: none; clip: auto; color: rgba(0, 0, 0, 0.55); columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline-block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif !important; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 15px; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgba(0, 0, 0, 0.55) none 2.4px; overlay: none; padding: 4px 6px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgba(0, 0, 0, 0.55); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;API_Tool&lt;/code&gt;, &lt;code data-index-in-node="61" data-path-to-node="11,0,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(242, 240, 240); border: 0px rgba(0, 0, 0, 0.55); clear: none; clip: auto; color: rgba(0, 0, 0, 0.55); columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline-block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif !important; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 15px; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgba(0, 0, 0, 0.55) none 2.4px; overlay: none; padding: 4px 6px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgba(0, 0, 0, 0.55); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Vulnerability&lt;/code&gt;, &lt;code data-index-in-node="76" data-path-to-node="11,0,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(242, 240, 240); border: 0px rgba(0, 0, 0, 0.55); clear: none; clip: auto; color: rgba(0, 0, 0, 0.55); columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline-block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif !important; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 15px; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgba(0, 0, 0, 0.55) none 2.4px; overlay: none; padding: 4px 6px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgba(0, 0, 0, 0.55); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;CloudResource&lt;/code&gt;.&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;b data-index-in-node="0" data-path-to-node="11,1,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Relationships:&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;ul data-path-to-node="11,1,1" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding-inline-start: 32px; padding: 0px 0px 0px 3.36px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;code data-index-in-node="0" data-path-to-node="11,1,1,0,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(242, 240, 240); border: 0px rgba(0, 0, 0, 0.55); clear: none; clip: auto; color: rgba(0, 0, 0, 0.55); columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline-block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif !important; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 15px; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgba(0, 0, 0, 0.55) none 2.4px; overlay: none; padding: 4px 6px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgba(0, 0, 0, 0.55); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;(User)-[:DELEGATES_TO]-&amp;gt;(Agent)&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;code data-index-in-node="0" data-path-to-node="11,1,1,1,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(242, 240, 240); border: 0px rgba(0, 0, 0, 0.55); clear: none; clip: auto; color: rgba(0, 0, 0, 0.55); columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline-block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif !important; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 15px; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgba(0, 0, 0, 0.55) none 2.4px; overlay: none; padding: 4px 6px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgba(0, 0, 0, 0.55); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;(Agent)-[:CALLS_TOOL]-&amp;gt;(API_Tool)&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;code data-index-in-node="0" data-path-to-node="11,1,1,2,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(242, 240, 240); border: 0px rgba(0, 0, 0, 0.55); clear: none; clip: auto; color: rgba(0, 0, 0, 0.55); columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline-block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif !important; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 15px; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgba(0, 0, 0, 0.55) none 2.4px; overlay: none; padding: 4px 6px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgba(0, 0, 0, 0.55); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;(Agent)-[:RETRIEVES]-&amp;gt;(Dataset)&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;code data-index-in-node="0" data-path-to-node="11,1,1,3,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(242, 240, 240); border: 0px rgba(0, 0, 0, 0.55); clear: none; clip: auto; color: rgba(0, 0, 0, 0.55); columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline-block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif !important; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 15px; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgba(0, 0, 0, 0.55) none 2.4px; overlay: none; padding: 4px 6px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgba(0, 0, 0, 0.55); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;(Vulnerability)-[:EXPOSES]-&amp;gt;(LLM_Model)&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-path-to-node="12" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans&amp;quot;, sans-serif !important; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Knowledge Graph Setup Example (Cypher)&lt;/h3&gt;&lt;response-element class="no-md" ng-version="0.0.0-PLACEHOLDER" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;code-block _nghost-ng-c1745535781="" class="ng-tns-c1745535781-36 enable-luminous-code-block ng-star-inserted" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;!----&gt;&lt;!----&gt;&lt;div _ngcontent-ng-c1745535781="" class="code-block ng-tns-c1745535781-36 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation" data-hveid="0" data-ved="0CAAQhtANahgKEwjT97ug0f6WAxUAAAAAHQAAAAAQpwE" decode-data-ved="1" jslog="223238;track:impression,attention;BardVeMetadataKey:W1sicl84YmJiMDgzM2U3Yjc1NWI0IiwiY18zNjZlY2ZiMDUzYzJhYmIwIixudWxsLCJyY19kYzQ0ZTBhNWI0ZTJhMGJjIixudWxsLG51bGwsImVuIixudWxsLDEsbnVsbCxudWxsLDEsMF1d" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;!----&gt;&lt;div _ngcontent-ng-c1745535781="" class="formatted-code-block-internal-container ng-tns-c1745535781-36" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(20, 20, 20); border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 26px 0px 0px 32px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div _ngcontent-ng-c1745535781="" class="animated-opacity ng-tns-c1745535781-36" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div _ngcontent-ng-c1745535781="" class="code-block-decoration header-formatted gds-emphasized-body-m ng-tns-c1745535781-36 ng-star-inserted" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(255, 255, 255); clear: none; clip: auto; color: white; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: flex; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: -72px auto auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(255, 255, 255) none 2.4px; overlay: none; padding: 0px 11px 0px 0px; page: auto; perspective: none; position: sticky; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(255, 255, 255); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;span _ngcontent-ng-c1745535781="" class="ng-tns-c1745535781-36" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(255, 255, 255); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(255, 255, 255) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(255, 255, 255); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Cypher&lt;/span&gt;&lt;div _ngcontent-ng-c1745535781="" class="buttons ng-tns-c1745535781-36 ng-star-inserted" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(255, 255, 255); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(255, 255, 255) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(255, 255, 255); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;gem-icon-button _ngcontent-ng-c1745535781="" _nghost-ng-c3427483756="" aria-describedby="cdk-describedby-message-ng-1-70" arialabel="Download code" cdk-describedby-host="ng-1" class="mat-mdc-tooltip-trigger download-button ng-tns-c1745535781-36 gem-button gem-button-badge-size-small gem-button-size-small gem-button-type-on-surface lm-enabled ng-star-inserted" fonticonname="arrow_circle_down" gemtooltip="Download code" size="small" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(255, 255, 255); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline-block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(255, 255, 255) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(255, 255, 255); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;" tabindex="-1" theme="lm" type="onSurface"&gt;&lt;!----&gt;&lt;!----&gt;&lt;button _ngcontent-ng-c3427483756="" aria-label="Download code" class="mdc-icon-button mat-mdc-icon-button mat-mdc-button-base mat-badge mat-unthemed mat-badge-overlap mat-badge-above mat-badge-after mat-badge-small mat-badge-hidden ng-star-inserted" jslog="305704;track:generic_click,impression" mat-ripple-loader-centered="" mat-ripple-loader-class-name="mat-mdc-button-ripple" mat-ripple-loader-uninitialized="" matbadgeposition="after" maticonbutton="" style="animation: auto ease 0s 1 normal none running none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border-color: rgb(0, 0, 0); border-style: none; border-width: 0px; clear: none; clip: auto; color: black; columns: auto; contain: none; container: none; content: normal; cursor: pointer; cx: 0px; cy: 0px; d: none; direction: ltr; display: flex; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 0 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif !important; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 24px; font-stretch: normal; font-style: normal; font-variation-settings: normal; font-weight: normal; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(0, 0, 0) none 2.4px; overlay: none; padding: 6px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(0, 0, 0); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;span class="mat-mdc-button-persistent-ripple mdc-icon-button__ripple" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(0, 0, 0); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: pointer; cx: 0px; cy: 0px; d: none; direction: ltr; display: block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(0, 0, 0) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: absolute; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(0, 0, 0); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;/span&gt;&lt;gem-icon _ngcontent-ng-c3427483756="" _nghost-ng-c3836313166="" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(0, 0, 0); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: pointer; cx: 0px; cy: 0px; d: none; direction: ltr; display: flex; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 0 auto; float: none; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(0, 0, 0) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(0, 0, 0); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;mat-icon _ngcontent-ng-c3836313166="" aria-hidden="true" class="mat-icon notranslate lm-icon-l lumi-symbols mat-ligature-font mat-icon-no-color ng-star-inserted" data-mat-icon-name="arrow_circle_down" data-mat-icon-namespace="lumi-symbols" data-mat-icon-type="font" fonticon="arrow_circle_down" role="img" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(255, 255, 255); clear: none; clip: auto; color: white; columns: auto; contain: none; container: none; content: normal; cursor: pointer; cx: 0px; cy: 0px; d: none; direction: ltr; display: flex; fill: rgb(255, 255, 255); filter: none; flex-direction: row; flex: 0 0 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(255, 255, 255) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(255, 255, 255); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;/mat-icon&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/gem-icon&gt;&lt;!----&gt;&lt;span class="mat-focus-indicator" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(0, 0, 0); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: pointer; cx: 0px; cy: 0px; d: none; direction: ltr; display: block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(0, 0, 0) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: absolute; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(0, 0, 0); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;/span&gt;&lt;span class="mat-mdc-button-touch-target" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(0, 0, 0); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: pointer; cx: 0px; cy: 0px; d: none; direction: ltr; display: none; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: 50% auto auto 50%; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(0, 0, 0) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: absolute; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(0, 0, 0); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;/span&gt;&lt;/button&gt;&lt;!----&gt;&lt;!----&gt;&lt;/gem-icon-button&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;gem-icon-button _ngcontent-ng-c1745535781="" _nghost-ng-c3427483756="" aria-describedby="cdk-describedby-message-ng-1-71" arialabel="Copy code" cdk-describedby-host="ng-1" class="mat-mdc-tooltip-trigger copy-button ng-tns-c1745535781-36 gem-button gem-button-badge-size-small gem-button-size-small gem-button-type-on-surface lm-enabled ng-star-inserted" data-test-id="gem-copy-button" fonticonname="copy" gemtooltip="Copy code" size="small" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(255, 255, 255); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline-block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(255, 255, 255) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(255, 255, 255); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;" tabindex="-1" theme="lm" type="onSurface"&gt;&lt;!----&gt;&lt;!----&gt;&lt;button _ngcontent-ng-c3427483756="" aria-label="Copy code" class="mdc-icon-button mat-mdc-icon-button mat-mdc-button-base mat-badge mat-unthemed mat-badge-overlap mat-badge-above mat-badge-after mat-badge-small mat-badge-hidden ng-star-inserted" jslog="179062;track:generic_click,impression;BardVeMetadataKey:W1sicl84YmJiMDgzM2U3Yjc1NWI0IiwiY18zNjZlY2ZiMDUzYzJhYmIwIixudWxsLCJyY19kYzQ0ZTBhNWI0ZTJhMGJjIixudWxsLG51bGwsImVuIixudWxsLDEsbnVsbCxudWxsLDEsMF1d;mutable:true" mat-ripple-loader-centered="" mat-ripple-loader-class-name="mat-mdc-button-ripple" mat-ripple-loader-uninitialized="" matbadgeposition="after" maticonbutton="" style="animation: auto ease 0s 1 normal none running none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border-color: rgb(0, 0, 0); border-style: none; border-width: 0px; clear: none; clip: auto; color: black; columns: auto; contain: none; container: none; content: normal; cursor: pointer; cx: 0px; cy: 0px; d: none; direction: ltr; display: flex; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 0 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif !important; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 24px; font-stretch: normal; font-style: normal; font-variation-settings: normal; font-weight: normal; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(0, 0, 0) none 2.4px; overlay: none; padding: 6px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(0, 0, 0); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;span class="mat-mdc-button-persistent-ripple mdc-icon-button__ripple" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(0, 0, 0); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: pointer; cx: 0px; cy: 0px; d: none; direction: ltr; display: block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(0, 0, 0) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: absolute; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(0, 0, 0); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;/span&gt;&lt;gem-icon _ngcontent-ng-c3427483756="" _nghost-ng-c3836313166="" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(0, 0, 0); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: pointer; cx: 0px; cy: 0px; d: none; direction: ltr; display: flex; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 0 auto; float: none; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(0, 0, 0) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(0, 0, 0); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;mat-icon _ngcontent-ng-c3836313166="" aria-hidden="true" class="mat-icon notranslate lm-icon-l lumi-symbols mat-ligature-font mat-icon-no-color ng-star-inserted" data-mat-icon-name="copy" data-mat-icon-namespace="lumi-symbols" data-mat-icon-type="font" fonticon="copy" role="img" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(255, 255, 255); clear: none; clip: auto; color: white; columns: auto; contain: none; container: none; content: normal; cursor: pointer; cx: 0px; cy: 0px; d: none; direction: ltr; display: flex; fill: rgb(255, 255, 255); filter: none; flex-direction: row; flex: 0 0 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(255, 255, 255) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(255, 255, 255); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;/mat-icon&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/gem-icon&gt;&lt;!----&gt;&lt;span class="mat-focus-indicator" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(0, 0, 0); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: pointer; cx: 0px; cy: 0px; d: none; direction: ltr; display: block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(0, 0, 0) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: absolute; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(0, 0, 0); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;/span&gt;&lt;span class="mat-mdc-button-touch-target" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(0, 0, 0); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: pointer; cx: 0px; cy: 0px; d: none; direction: ltr; display: none; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: 50% auto auto 50%; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(0, 0, 0) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: absolute; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(0, 0, 0); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;/span&gt;&lt;/button&gt;&lt;!----&gt;&lt;!----&gt;&lt;/gem-icon-button&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/div&gt;&lt;!----&gt;&lt;!----&gt;&lt;/div&gt;&lt;!----&gt;&lt;pre _ngcontent-ng-c1745535781="" class="ng-tns-c1745535781-36" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif !important; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;code _ngcontent-ng-c1745535781="" class="code-container formatted ng-tns-c1745535781-36" data-test-id="code-content" role="text" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(255, 255, 255); clear: none; clip: auto; color: white; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif !important; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 14px; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(255, 255, 255) none 2.4px; overlay: none; padding: 16px 0px 32px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(255, 255, 255); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;// Create a path showing a high-risk multi-agent execution pipeline
CREATE (a1:Agent {name: "CustomerSupportAgent", risk_tier: "Medium"})
CREATE (a2:Agent {name: "DatabaseAdminAgent", risk_tier: "High"})
CREATE (t:Tool {name: "SQLQueryExecutor", permission: "Write"})
CREATE (v:Vulnerability {type: "PromptInjection", standard: "AIVSS"})

CREATE (a1)-[:DELEGATES_TASK {channel: "IPC"}]-&amp;gt;(a2)
CREATE (a2)-[:USES_TOOL]-&amp;gt;(t)
CREATE (v)-[:EXPLOITS]-&amp;gt;(a1)
&lt;/code&gt;&lt;/pre&gt;&lt;!----&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/code-block&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/response-element&gt;&lt;h2 data-path-to-node="15" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans&amp;quot;, sans-serif !important; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;3. Implementing AIVSS into the Security Engine&lt;/h2&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;span class="citation-12" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;The &lt;/span&gt;&lt;b data-index-in-node="4" data-path-to-node="16" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;OWASP AI Vulnerability Scoring System (AIVSS)&lt;/b&gt;&lt;span class="citation-12 citation-end-12" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt; adapts vulnerability assessment to AI-specific vectors (such as prompt injection, training data poisoning, model supply chain integrity, and agent delegation risks).&lt;source-footnote _nghost-ng-c3926095668="" ng-version="0.0.0-PLACEHOLDER" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;sup _ngcontent-ng-c3926095668="" class="superscript" data-turn-source-index="4" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-color: transparent !important; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(68, 71, 70); clear: none; clip: auto; color: #444746; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline-flex; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-size: 16px !important; gap: normal; hyphens: manual; inset: -10px 2px 10px -2px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(68, 71, 70) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(68, 71, 70); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;!----&gt;&lt;/sup&gt;&lt;/source-footnote&gt;&lt;/span&gt;&lt;sources-carousel-inline _nghost-ng-c3540820740="" ng-version="0.0.0-PLACEHOLDER" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;   &lt;!----&gt;&lt;source-inline-chip _ngcontent-ng-c3540820740="" _nghost-ng-c1030636328="" class="ng-star-inserted" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/source-inline-chip&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/sources-carousel-inline&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Instead of assigning static risk scores, use the &lt;b data-index-in-node="49" data-path-to-node="17" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Knowledge Graph to calculate AIVSS parameters dynamically&lt;/b&gt;.&lt;/div&gt;&lt;br /&gt;&lt;h3 data-path-to-node="18" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans&amp;quot;, sans-serif !important; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Mapping AIVSS Dimensions to Graph Queries&lt;/h3&gt;&lt;table data-path-to-node="19" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; color: #1f1f1f; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 32px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;thead style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;tr style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;td style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 1px solid rgb(196, 199, 197); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 8px 12px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;strong style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;AIVSS Scoring Factor&lt;/strong&gt;&lt;/td&gt;&lt;td style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 1px solid rgb(196, 199, 197); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 8px 12px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;strong style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Graph Query Logic&lt;/strong&gt;&lt;/td&gt;&lt;td style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 1px solid rgb(196, 199, 197); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 8px 12px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;strong style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Dynamic Calculation&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;tr style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;td style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 1px solid rgb(196, 199, 197); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 8px 12px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;span data-path-to-node="19,1,0,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;b data-index-in-node="0" data-path-to-node="19,1,0,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Agentic Risk Amplification / Delegation Depth&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;&lt;td style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 1px solid rgb(196, 199, 197); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 8px 12px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;span data-path-to-node="19,1,1,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Count path length (&lt;span class="math-inline" data-index-in-node="19" data-math="N" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;$N$&lt;/span&gt;) between initial input and high-privilege tool execution: &lt;code data-index-in-node="79" data-path-to-node="19,1,1,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(242, 240, 240); border: 0px rgba(0, 0, 0, 0.55); clear: none; clip: auto; color: rgba(0, 0, 0, 0.55); columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline-block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif !important; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 15px; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgba(0, 0, 0, 0.55) none 2.4px; overlay: none; padding: 4px 6px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgba(0, 0, 0, 0.55); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;(AgentA)-[*1..N]-&amp;gt;(AgentB)-[:USES_TOOL]-&amp;gt;(AdminTool)&lt;/code&gt;&lt;/span&gt;&lt;/td&gt;&lt;td style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 1px solid rgb(196, 199, 197); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 8px 12px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;span data-path-to-node="19,1,2,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;High graph depth multiplies the AIVSS severity score due to multi-agent cascading risk.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;td style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 1px solid rgb(196, 199, 197); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 8px 12px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;span data-path-to-node="19,2,0,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;b data-index-in-node="0" data-path-to-node="19,2,0,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Data Poisoning &amp;amp; Blast Radius&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;&lt;td style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 1px solid rgb(196, 199, 197); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 8px 12px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;span data-path-to-node="19,2,1,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Traverse downstream downstream dependencies from a compromised node: &lt;code data-index-in-node="69" data-path-to-node="19,2,1,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(242, 240, 240); border: 0px rgba(0, 0, 0, 0.55); clear: none; clip: auto; color: rgba(0, 0, 0, 0.55); columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline-block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif !important; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 15px; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgba(0, 0, 0, 0.55) none 2.4px; overlay: none; padding: 4px 6px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgba(0, 0, 0, 0.55); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;MATCH (d:Dataset {status: 'Untrusted'})-[:USED_BY]-&amp;gt;(m:Model)&amp;lt;-[:DEPENDS_ON]-(a:Agent)&lt;/code&gt;&lt;/span&gt;&lt;/td&gt;&lt;td style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 1px solid rgb(196, 199, 197); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 8px 12px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;span data-path-to-node="19,2,2,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;The number of affected dependent agents directly scales the AIVSS Impact metric.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;td style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 1px solid rgb(196, 199, 197); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 8px 12px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;span data-path-to-node="19,3,0,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;b data-index-in-node="0" data-path-to-node="19,3,0,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Contextual Privilege Access&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;&lt;td style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 1px solid rgb(196, 199, 197); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 8px 12px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;span data-path-to-node="19,3,1,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Query reachable nodes from an agent's context window: &lt;code data-index-in-node="54" data-path-to-node="19,3,1,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(242, 240, 240); border: 0px rgba(0, 0, 0, 0.55); clear: none; clip: auto; color: rgba(0, 0, 0, 0.55); columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline-block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif !important; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 15px; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgba(0, 0, 0, 0.55) none 2.4px; overlay: none; padding: 4px 6px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgba(0, 0, 0, 0.55); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;MATCH (a:Agent)-[:HAS_CONTEXT]-&amp;gt;(data:SensitiveData)&lt;/code&gt;&lt;/span&gt;&lt;/td&gt;&lt;td style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 1px solid rgb(196, 199, 197); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 8px 12px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;span data-path-to-node="19,3,2,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Elevates AIVSS score if prompt injection can leak context without needing system privileges.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;h3 data-path-to-node="20" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans&amp;quot;, sans-serif !important; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Python Integration Example: Dynamic AIVSS Risk Calculator&lt;/h3&gt;&lt;response-element class="no-md" ng-version="0.0.0-PLACEHOLDER" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;code-block _nghost-ng-c1745535781="" class="ng-tns-c1745535781-37 enable-luminous-code-block ng-star-inserted" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;!----&gt;&lt;!----&gt;&lt;div _ngcontent-ng-c1745535781="" class="code-block ng-tns-c1745535781-37 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation" data-hveid="0" data-ved="0CAAQhtANahgKEwjT97ug0f6WAxUAAAAAHQAAAAAQqwE" decode-data-ved="1" jslog="223238;track:impression,attention;BardVeMetadataKey:W1sicl84YmJiMDgzM2U3Yjc1NWI0IiwiY18zNjZlY2ZiMDUzYzJhYmIwIixudWxsLCJyY19kYzQ0ZTBhNWI0ZTJhMGJjIixudWxsLG51bGwsImVuIixudWxsLDEsbnVsbCxudWxsLDEsMF1d" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;!----&gt;&lt;div _ngcontent-ng-c1745535781="" class="formatted-code-block-internal-container ng-tns-c1745535781-37" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(20, 20, 20); border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 26px 0px 0px 32px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div _ngcontent-ng-c1745535781="" class="animated-opacity ng-tns-c1745535781-37" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div _ngcontent-ng-c1745535781="" class="code-block-decoration header-formatted gds-emphasized-body-m ng-tns-c1745535781-37 ng-star-inserted" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(255, 255, 255); clear: none; clip: auto; color: white; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: flex; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: -72px auto auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(255, 255, 255) none 2.4px; overlay: none; padding: 0px 11px 0px 0px; page: auto; perspective: none; position: sticky; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(255, 255, 255); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;span _ngcontent-ng-c1745535781="" class="ng-tns-c1745535781-37" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(255, 255, 255); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(255, 255, 255) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(255, 255, 255); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Python&lt;/span&gt;&lt;div _ngcontent-ng-c1745535781="" class="buttons ng-tns-c1745535781-37 ng-star-inserted" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(255, 255, 255); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(255, 255, 255) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(255, 255, 255); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;gem-icon-button _ngcontent-ng-c1745535781="" _nghost-ng-c3427483756="" aria-describedby="cdk-describedby-message-ng-1-70" arialabel="Download code" cdk-describedby-host="ng-1" class="mat-mdc-tooltip-trigger download-button ng-tns-c1745535781-37 gem-button gem-button-badge-size-small gem-button-size-small gem-button-type-on-surface lm-enabled ng-star-inserted" fonticonname="arrow_circle_down" gemtooltip="Download code" size="small" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(255, 255, 255); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline-block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(255, 255, 255) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(255, 255, 255); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;" tabindex="-1" theme="lm" type="onSurface"&gt;&lt;!----&gt;&lt;!----&gt;&lt;button _ngcontent-ng-c3427483756="" aria-label="Download code" class="mdc-icon-button mat-mdc-icon-button mat-mdc-button-base mat-badge mat-unthemed mat-badge-overlap mat-badge-above mat-badge-after mat-badge-small mat-badge-hidden ng-star-inserted" jslog="305704;track:generic_click,impression" mat-ripple-loader-centered="" mat-ripple-loader-class-name="mat-mdc-button-ripple" mat-ripple-loader-uninitialized="" matbadgeposition="after" maticonbutton="" style="animation: auto ease 0s 1 normal none running none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border-color: rgb(0, 0, 0); border-style: none; border-width: 0px; clear: none; clip: auto; color: black; columns: auto; contain: none; container: none; content: normal; cursor: pointer; cx: 0px; cy: 0px; d: none; direction: ltr; display: flex; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 0 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif !important; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 24px; font-stretch: normal; font-style: normal; font-variation-settings: normal; font-weight: normal; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(0, 0, 0) none 2.4px; overlay: none; padding: 6px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(0, 0, 0); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;span class="mat-mdc-button-persistent-ripple mdc-icon-button__ripple" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(0, 0, 0); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: pointer; cx: 0px; cy: 0px; d: none; direction: ltr; display: block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(0, 0, 0) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: absolute; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(0, 0, 0); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;/span&gt;&lt;gem-icon _ngcontent-ng-c3427483756="" _nghost-ng-c3836313166="" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(0, 0, 0); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: pointer; cx: 0px; cy: 0px; d: none; direction: ltr; display: flex; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 0 auto; float: none; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(0, 0, 0) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(0, 0, 0); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;mat-icon _ngcontent-ng-c3836313166="" aria-hidden="true" class="mat-icon notranslate lm-icon-l lumi-symbols mat-ligature-font mat-icon-no-color ng-star-inserted" data-mat-icon-name="arrow_circle_down" data-mat-icon-namespace="lumi-symbols" data-mat-icon-type="font" fonticon="arrow_circle_down" role="img" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(255, 255, 255); clear: none; clip: auto; color: white; columns: auto; contain: none; container: none; content: normal; cursor: pointer; cx: 0px; cy: 0px; d: none; direction: ltr; display: flex; fill: rgb(255, 255, 255); filter: none; flex-direction: row; flex: 0 0 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(255, 255, 255) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(255, 255, 255); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;/mat-icon&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/gem-icon&gt;&lt;!----&gt;&lt;span class="mat-focus-indicator" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(0, 0, 0); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: pointer; cx: 0px; cy: 0px; d: none; direction: ltr; display: block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(0, 0, 0) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: absolute; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(0, 0, 0); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;/span&gt;&lt;span class="mat-mdc-button-touch-target" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(0, 0, 0); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: pointer; cx: 0px; cy: 0px; d: none; direction: ltr; display: none; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: 50% auto auto 50%; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(0, 0, 0) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: absolute; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(0, 0, 0); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;/span&gt;&lt;/button&gt;&lt;!----&gt;&lt;!----&gt;&lt;/gem-icon-button&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;gem-icon-button _ngcontent-ng-c1745535781="" _nghost-ng-c3427483756="" aria-describedby="cdk-describedby-message-ng-1-71" arialabel="Copy code" cdk-describedby-host="ng-1" class="mat-mdc-tooltip-trigger copy-button ng-tns-c1745535781-37 gem-button gem-button-badge-size-small gem-button-size-small gem-button-type-on-surface lm-enabled ng-star-inserted" data-test-id="gem-copy-button" fonticonname="copy" gemtooltip="Copy code" size="small" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(255, 255, 255); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline-block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(255, 255, 255) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(255, 255, 255); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;" tabindex="-1" theme="lm" type="onSurface"&gt;&lt;!----&gt;&lt;!----&gt;&lt;button _ngcontent-ng-c3427483756="" aria-label="Copy code" class="mdc-icon-button mat-mdc-icon-button mat-mdc-button-base mat-badge mat-unthemed mat-badge-overlap mat-badge-above mat-badge-after mat-badge-small mat-badge-hidden ng-star-inserted" jslog="179062;track:generic_click,impression;BardVeMetadataKey:W1sicl84YmJiMDgzM2U3Yjc1NWI0IiwiY18zNjZlY2ZiMDUzYzJhYmIwIixudWxsLCJyY19kYzQ0ZTBhNWI0ZTJhMGJjIixudWxsLG51bGwsImVuIixudWxsLDEsbnVsbCxudWxsLDEsMF1d;mutable:true" mat-ripple-loader-centered="" mat-ripple-loader-class-name="mat-mdc-button-ripple" mat-ripple-loader-uninitialized="" matbadgeposition="after" maticonbutton="" style="animation: auto ease 0s 1 normal none running none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border-color: rgb(0, 0, 0); border-style: none; border-width: 0px; clear: none; clip: auto; color: black; columns: auto; contain: none; container: none; content: normal; cursor: pointer; cx: 0px; cy: 0px; d: none; direction: ltr; display: flex; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 0 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif !important; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 24px; font-stretch: normal; font-style: normal; font-variation-settings: normal; font-weight: normal; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(0, 0, 0) none 2.4px; overlay: none; padding: 6px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(0, 0, 0); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;span class="mat-mdc-button-persistent-ripple mdc-icon-button__ripple" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(0, 0, 0); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: pointer; cx: 0px; cy: 0px; d: none; direction: ltr; display: block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(0, 0, 0) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: absolute; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(0, 0, 0); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;/span&gt;&lt;gem-icon _ngcontent-ng-c3427483756="" _nghost-ng-c3836313166="" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(0, 0, 0); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: pointer; cx: 0px; cy: 0px; d: none; direction: ltr; display: flex; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 0 auto; float: none; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(0, 0, 0) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(0, 0, 0); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;mat-icon _ngcontent-ng-c3836313166="" aria-hidden="true" class="mat-icon notranslate lm-icon-l lumi-symbols mat-ligature-font mat-icon-no-color ng-star-inserted" data-mat-icon-name="copy" data-mat-icon-namespace="lumi-symbols" data-mat-icon-type="font" fonticon="copy" role="img" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(255, 255, 255); clear: none; clip: auto; color: white; columns: auto; contain: none; container: none; content: normal; cursor: pointer; cx: 0px; cy: 0px; d: none; direction: ltr; display: flex; fill: rgb(255, 255, 255); filter: none; flex-direction: row; flex: 0 0 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(255, 255, 255) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(255, 255, 255); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;/mat-icon&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/gem-icon&gt;&lt;!----&gt;&lt;span class="mat-focus-indicator" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(0, 0, 0); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: pointer; cx: 0px; cy: 0px; d: none; direction: ltr; display: block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(0, 0, 0) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: absolute; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(0, 0, 0); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;/span&gt;&lt;span class="mat-mdc-button-touch-target" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(0, 0, 0); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: pointer; cx: 0px; cy: 0px; d: none; direction: ltr; display: none; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: 50% auto auto 50%; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(0, 0, 0) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: absolute; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(0, 0, 0); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;/span&gt;&lt;/button&gt;&lt;!----&gt;&lt;!----&gt;&lt;/gem-icon-button&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/div&gt;&lt;!----&gt;&lt;!----&gt;&lt;/div&gt;&lt;!----&gt;&lt;pre _ngcontent-ng-c1745535781="" class="ng-tns-c1745535781-37" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif !important; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;code _ngcontent-ng-c1745535781="" class="code-container formatted ng-tns-c1745535781-37" data-test-id="code-content" role="text" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(255, 255, 255); clear: none; clip: auto; color: white; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif !important; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 14px; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(255, 255, 255) none 2.4px; overlay: none; padding: 16px 0px 32px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(255, 255, 255); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;span class="hljs-keyword" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(150, 157, 255); clear: none; clip: auto; color: #969dff; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(150, 157, 255) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(150, 157, 255); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;from&lt;/span&gt; neo4j &lt;span class="hljs-keyword" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(150, 157, 255); clear: none; clip: auto; color: #969dff; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(150, 157, 255) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(150, 157, 255); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;import&lt;/span&gt; GraphDatabase

&lt;span class="hljs-class" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(255, 219, 15); clear: none; clip: auto; color: #ffdb0f; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(255, 219, 15) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(255, 219, 15); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;span class="hljs-keyword" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(150, 157, 255); clear: none; clip: auto; color: #969dff; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(150, 157, 255) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(150, 157, 255); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;class&lt;/span&gt; &lt;span class="hljs-title" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(255, 219, 15); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(255, 219, 15) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(255, 219, 15); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;AIVSSRiskEngine&lt;/span&gt;:&lt;/span&gt;
    &lt;span class="hljs-function" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(255, 255, 255); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(255, 255, 255) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(255, 255, 255); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;span class="hljs-keyword" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(150, 157, 255); clear: none; clip: auto; color: #969dff; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(150, 157, 255) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(150, 157, 255); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;def&lt;/span&gt; &lt;span class="hljs-title" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(255, 219, 15); clear: none; clip: auto; color: #ffdb0f; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(255, 219, 15) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(255, 219, 15); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;__init__&lt;/span&gt;(&lt;span class="hljs-params" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(255, 255, 255); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(255, 255, 255) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(255, 255, 255); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;self, uri, user, password&lt;/span&gt;):&lt;/span&gt;
        self.driver = GraphDatabase.driver(uri, auth=(user, password))

    &lt;span class="hljs-function" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(255, 255, 255); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(255, 255, 255) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(255, 255, 255); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;span class="hljs-keyword" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(150, 157, 255); clear: none; clip: auto; color: #969dff; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(150, 157, 255) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(150, 157, 255); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;def&lt;/span&gt; &lt;span class="hljs-title" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(255, 219, 15); clear: none; clip: auto; color: #ffdb0f; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(255, 219, 15) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(255, 219, 15); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;evaluate_agent_aivss_score&lt;/span&gt;(&lt;span class="hljs-params" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(255, 255, 255); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(255, 255, 255) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(255, 255, 255); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;self, agent_id&lt;/span&gt;):&lt;/span&gt;
        &lt;span class="hljs-keyword" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(150, 157, 255); clear: none; clip: auto; color: #969dff; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(150, 157, 255) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(150, 157, 255); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;with&lt;/span&gt; self.driver.session() &lt;span class="hljs-keyword" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(150, 157, 255); clear: none; clip: auto; color: #969dff; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(150, 157, 255) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(150, 157, 255); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;as&lt;/span&gt; session:
            &lt;span class="hljs-comment" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(128, 128, 128); clear: none; clip: auto; color: grey; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(128, 128, 128) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(128, 128, 128); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;# Query the graph to check blast radius and delegation chain depth&lt;/span&gt;
            query = &lt;span class="hljs-string" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(96, 214, 115); clear: none; clip: auto; color: #60d673; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(96, 214, 115) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(96, 214, 115); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;"""
            MATCH path = (a:Agent {id: $agent_id})-[:DELEGATES_TO|USES_TOOL*1..5]-&amp;gt;(target)
            RETURN length(path) as delegation_depth, 
                   labels(target) as target_type, 
                   target.sensitivity as sensitivity
            """&lt;/span&gt;
            results = session.run(query, agent_id=agent_id)
            
            base_score = &lt;span class="hljs-number" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(255, 150, 218); clear: none; clip: auto; color: #ff96da; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(255, 150, 218) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(255, 150, 218); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;5.0&lt;/span&gt; &lt;span class="hljs-comment" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(128, 128, 128); clear: none; clip: auto; color: grey; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(128, 128, 128) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(128, 128, 128); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;# Base vulnerability metric&lt;/span&gt;
            delegation_multiplier = &lt;span class="hljs-number" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(255, 150, 218); clear: none; clip: auto; color: #ff96da; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(255, 150, 218) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(255, 150, 218); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;1.0&lt;/span&gt;
            impact_score = &lt;span class="hljs-number" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(255, 150, 218); clear: none; clip: auto; color: #ff96da; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(255, 150, 218) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(255, 150, 218); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;1.0&lt;/span&gt;

            &lt;span class="hljs-keyword" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(150, 157, 255); clear: none; clip: auto; color: #969dff; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(150, 157, 255) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(150, 157, 255); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;for&lt;/span&gt; record &lt;span class="hljs-keyword" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(150, 157, 255); clear: none; clip: auto; color: #969dff; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(150, 157, 255) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(150, 157, 255); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;in&lt;/span&gt; results:
                depth = record[&lt;span class="hljs-string" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(96, 214, 115); clear: none; clip: auto; color: #60d673; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(96, 214, 115) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(96, 214, 115); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;"delegation_depth"&lt;/span&gt;]
                &lt;span class="hljs-keyword" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(150, 157, 255); clear: none; clip: auto; color: #969dff; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(150, 157, 255) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(150, 157, 255); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;if&lt;/span&gt; depth &amp;gt; &lt;span class="hljs-number" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(255, 150, 218); clear: none; clip: auto; color: #ff96da; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(255, 150, 218) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(255, 150, 218); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;1&lt;/span&gt;:
                    delegation_multiplier += (&lt;span class="hljs-number" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(255, 150, 218); clear: none; clip: auto; color: #ff96da; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(255, 150, 218) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(255, 150, 218); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;0.15&lt;/span&gt; * depth) &lt;span class="hljs-comment" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(128, 128, 128); clear: none; clip: auto; color: grey; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(128, 128, 128) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(128, 128, 128); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;# Multi-agent risk amplification&lt;/span&gt;
                
                &lt;span class="hljs-keyword" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(150, 157, 255); clear: none; clip: auto; color: #969dff; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(150, 157, 255) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(150, 157, 255); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;if&lt;/span&gt; record[&lt;span class="hljs-string" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(96, 214, 115); clear: none; clip: auto; color: #60d673; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(96, 214, 115) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(96, 214, 115); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;"sensitivity"&lt;/span&gt;] == &lt;span class="hljs-string" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(96, 214, 115); clear: none; clip: auto; color: #60d673; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(96, 214, 115) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(96, 214, 115); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;"High"&lt;/span&gt;:
                    impact_score = &lt;span class="hljs-built_in" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(255, 90, 89); clear: none; clip: auto; color: #ff5a59; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(255, 90, 89) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(255, 90, 89); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;max&lt;/span&gt;(impact_score, &lt;span class="hljs-number" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(255, 150, 218); clear: none; clip: auto; color: #ff96da; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(255, 150, 218) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(255, 150, 218); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;2.5&lt;/span&gt;)

            &lt;span class="hljs-comment" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(128, 128, 128); clear: none; clip: auto; color: grey; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(128, 128, 128) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(128, 128, 128); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;# Calculate final AIVSS Score (capped at 10.0)&lt;/span&gt;
            final_aivss_score = &lt;span class="hljs-built_in" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(255, 90, 89); clear: none; clip: auto; color: #ff5a59; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(255, 90, 89) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(255, 90, 89); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;min&lt;/span&gt;(&lt;span class="hljs-number" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(255, 150, 218); clear: none; clip: auto; color: #ff96da; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(255, 150, 218) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(255, 150, 218); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;10.0&lt;/span&gt;, base_score * delegation_multiplier * impact_score)
            &lt;span class="hljs-keyword" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(150, 157, 255); clear: none; clip: auto; color: #969dff; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(150, 157, 255) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(150, 157, 255); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;return&lt;/span&gt; &lt;span class="hljs-built_in" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(255, 90, 89); clear: none; clip: auto; color: #ff5a59; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(255, 90, 89) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(255, 90, 89); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;round&lt;/span&gt;(final_aivss_score, &lt;span class="hljs-number" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(255, 150, 218); clear: none; clip: auto; color: #ff96da; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(255, 150, 218) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(255, 150, 218); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;2&lt;/span&gt;)
&lt;/code&gt;&lt;/pre&gt;&lt;!----&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/code-block&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/response-element&gt;&lt;h2 data-path-to-node="23" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans&amp;quot;, sans-serif !important; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;4. Key Security Innovation Strategies&lt;/h2&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;To drive true innovation using this setup, consider building these advanced security features:&lt;/div&gt;&lt;br /&gt;&lt;h3 data-path-to-node="25" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans&amp;quot;, sans-serif !important; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;1. Graph RAG for Context-Aware Security Copilots&lt;/h3&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Instead of giving standard LLMs flat log files, feed your Security Copilot subgraphs. When an incident occurs, extract the 2-hop neighborhood around the affected system and convert it into structured text for the LLM. This provides the AI with exact dependency paths, dramatically reducing hallucinated remediation steps.&lt;/div&gt;&lt;br /&gt;&lt;h3 data-path-to-node="27" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans&amp;quot;, sans-serif !important; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;2. Autonomous Blast-Radius Isolation&lt;/h3&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;When an agent or tool breaches an AIVSS threshold (e.g., AIVSS &amp;gt; 8.0), trigger automated graph mutation queries:&lt;/div&gt;&lt;br /&gt;&lt;ul data-path-to-node="29" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding-inline-start: 32px; padding: 0px 0px 0px 3.36px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Automatically sever &lt;code data-index-in-node="20" data-path-to-node="29,0,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(242, 240, 240); border: 0px rgba(0, 0, 0, 0.55); clear: none; clip: auto; color: rgba(0, 0, 0, 0.55); columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline-block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif !important; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 15px; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgba(0, 0, 0, 0.55) none 2.4px; overlay: none; padding: 4px 6px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgba(0, 0, 0, 0.55); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;[:CALLS_TOOL]&lt;/code&gt; edges on high-risk agents.&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Quarantining the compromised agent in real time while preserving the rest of the execution pipeline.&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-path-to-node="30" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans&amp;quot;, sans-serif !important; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;3. Attack Path Discovery using Graph Neural Networks (GNNs)&lt;/h3&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Train GNN models on your Knowledge Graph to predict &lt;i data-index-in-node="52" data-path-to-node="31" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;unseen vulnerability vectors&lt;/i&gt;. GNNs can identify structural similarities between known malicious prompt-injection chains and benign agent configurations, catching novel attack paths before exploitation.&lt;/div&gt;&lt;div class="attachment-container unknown" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;response-element class="no-md" ng-version="0.0.0-PLACEHOLDER" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;elicitations class="lm-enabled ng-star-inserted" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 2.4px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 2.4px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;!----&gt;&lt;/elicitations&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/response-element&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Open Source Open Mind&lt;/div&gt;</description><author>dhiraj.patra@gmail.com (dhiraj patra)</author></item><item><title>Dynamic Agent Swarm</title><link>http://dhirajpatra.blogspot.com/2026/09/dynamic-agent-swarm.html</link><category>agent</category><category>generativeai</category><category>llm</category><category>swarm</category><pubDate>Wed, 16 Sep 2026 08:46:00 -0700</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8993867651193907565.post-5892638791204074534</guid><description>&lt;p&gt;&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiyNVsTuMWEvi7ueZwlT3_3yE8nesxNUypW9CFARfktPGGov70_HoYKYFW3ZeKK1zD_bQWC9CMGBB3q2ALVwNamiRQ0SIhzP2hut9S_EiGchaMrjJDXha4EFbz6IzXPXopaFJsLAtkpmbqb2sTmsC8ul7Vc-a5Zy48Ugxo-1gMG48fWpgj7qoXTVdXbKnUD/s1920/image.jpg" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="1280" data-original-width="1920" height="315" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiyNVsTuMWEvi7ueZwlT3_3yE8nesxNUypW9CFARfktPGGov70_HoYKYFW3ZeKK1zD_bQWC9CMGBB3q2ALVwNamiRQ0SIhzP2hut9S_EiGchaMrjJDXha4EFbz6IzXPXopaFJsLAtkpmbqb2sTmsC8ul7Vc-a5Zy48Ugxo-1gMG48fWpgj7qoXTVdXbKnUD/w473-h315/image.jpg" width="473" /&gt;&lt;/a&gt;&lt;/div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;generated by meta ai&lt;br /&gt;&amp;nbsp;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Yes. This is a very useful pattern for advanced Agentic AI: a “dynamic agent swarm” where agents are created as short-lived workers for a specific task, execute independently, return their result, and are then terminated. The closest computer-science analogy is a process/thread pool, although an LLM agent is not literally an OS thread.&lt;/p&gt;&lt;p&gt;An agent swarm isn't just "a lot of agents" - it's a parallel coordination system where one orchestrator spawns 10-100 specialists that work at the same time, share memory, and merge results.&lt;/p&gt;&lt;p&gt;This is the big shift in 2026. The latest example is Kimi K2.5 / K2.6 - Moonshot AI's open-weight model built around &lt;b&gt;Agent Swarm&lt;/b&gt;&amp;nbsp;that can run up to 100 sub-agents in parallel, handle up to 1,500 tool calls per job, and cut execution time by 4.5x vs single-agent sequential execution. K2.6 in April upgraded it to K3 Swarm for large-scale parallel search and batch processing.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;1. Swarm vs. Single Agent vs. Multi-Agent Chain&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Single agent:&lt;/b&gt;&amp;nbsp;One ReAct loop. Thinks -&amp;gt; Acts -&amp;gt; Observes. Bottleneck is serial tool calls.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Multi-agent chain:&lt;/b&gt;&amp;nbsp;A -&amp;gt; B -&amp;gt; C. Like an assembly line. Better specialization, but still serial.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Swarm:&lt;/b&gt;&amp;nbsp;Orchestrator decomposes a task and fires 4 specialist swarms in parallel:&lt;/p&gt;&lt;p&gt;- Recon Agent - gathers context, 8+ tool integrations&lt;/p&gt;&lt;p&gt;- Classifier Agent - maps CVEs, filters false positives&lt;/p&gt;&lt;p&gt;- Exploit/Builder Agent - executes with reasoning model&lt;/p&gt;&lt;p&gt;- Orchestrator - ReAct loop that merges&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;The pattern is: &lt;b&gt;Decompose -&amp;gt; Spawn -&amp;gt; Execute in Parallel -&amp;gt; Synthesize&lt;/b&gt;.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;2. The 6 topologies that actually work&lt;/b&gt;&lt;/p&gt;&lt;p&gt;From current open-source swarms (Ruflo/Claude-Flow etc):&lt;/p&gt;&lt;p&gt;1. Star: Central orchestrator talks to all workers. Simple, good for 3-8 agents.&lt;/p&gt;&lt;p&gt;2. Mesh: Every agent talks to every agent. Expensive, but resilient.&lt;/p&gt;&lt;p&gt;3. Hierarchical: Orchestrator -&amp;gt; Team Leads -&amp;gt; Workers. This is what Kimi does for 100 agents.&lt;/p&gt;&lt;p&gt;4. Ring: Pass-the-baton for workflows that need ordering.&lt;/p&gt;&lt;p&gt;5. Byzantine Consensus: Workers vote on result. Used when hallucinations are costly.&lt;/p&gt;&lt;p&gt;6. Dynamic / Self-improving: Agents promote learnings to shared swarm memory for cross-agent discovery&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;3. What you need to build one&lt;/b&gt;&lt;/p&gt;&lt;p&gt;a) Orchestrator prompt&lt;/p&gt;&lt;p&gt;&amp;gt; "You are the swarm lead. Decompose this goal into independent sub-tasks. Each sub-task must have clear inputs/outputs and no dependency on others. Spawn agents with bounded contexts."&lt;/p&gt;&lt;p&gt;b) Shared memory layer&lt;/p&gt;&lt;p&gt;- Short-term: Vector DB / Redis for task progress (Desplega's `store-progress.ts` pattern)&lt;/p&gt;&lt;p&gt;- Long-term: Swarm knowledge base that auto-promotes completed research&lt;/p&gt;&lt;p&gt;c) Tooling&lt;/p&gt;&lt;p&gt;- SDK: `SwarmSDK` class for browser-side orchestration&lt;/p&gt;&lt;p&gt;- MCP tools: `inject-learning` to push learnings back into swarm&lt;/p&gt;&lt;p&gt;- Hooks for Human-in-the-Loop nodes when confidence &amp;lt; threshold&lt;/p&gt;&lt;p&gt;d) Minimal code skeleton (Python):&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;```python&lt;/p&gt;&lt;p&gt;from swarm import Swarm, Agent&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;swarm = Swarm(model="kimi-k2.6") # or claude-4, gpt-5&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;researcher = Agent(role="Researcher", tools=[web_search, file_read])&lt;/p&gt;&lt;p&gt;coder = Agent(role="Coder", tools=[python_exec, github])&lt;/p&gt;&lt;p&gt;critic = Agent(role="Critic", tools=[code_review])&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;result = swarm.run(&lt;/p&gt;&lt;p&gt;&amp;nbsp; goal="Build a competitor tracker for Instagram brands",&lt;/p&gt;&lt;p&gt;&amp;nbsp; strategy="parallel", # decomposes automatically&lt;/p&gt;&lt;p&gt;&amp;nbsp; agents=[researcher, coder, critic],&lt;/p&gt;&lt;p&gt;&amp;nbsp; max_parallel=20&lt;/p&gt;&lt;p&gt;)&lt;/p&gt;&lt;p&gt;```&lt;/p&gt;&lt;p&gt;Frameworks to look at right now:&lt;/p&gt;&lt;p&gt;- OpenAI Swarm (lightweight, educational)&lt;/p&gt;&lt;p&gt;- Desplega-ai/agent-swarm - full TypeScript stack with artifact SDK&lt;/p&gt;&lt;p&gt;- Ruflo / Claude-Flow - DDD, enterprise-grade with 6 topologies&lt;/p&gt;&lt;p&gt;- Kimi Agent Swarm - if you need 100+ parallel workers&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;4. When to use a swarm (and when not to)&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Use it for: Research reports with 20 sources, competitive analysis across 50 brands, pentesting, product launch monitoring, anything that needs parallel web/tool calls.&lt;/p&gt;&lt;p&gt;Don't use it for: Simple Q&amp;amp;A, single-file coding task, latency-sensitive chat. The orchestration overhead will kill you.&lt;/p&gt;&lt;p&gt;Biggest pitfalls I see people hit:&lt;/p&gt;&lt;p&gt;1. No bounded context - agents start doing each other's jobs&lt;/p&gt;&lt;p&gt;2. No shared schema for outputs - merging becomes hell&lt;/p&gt;&lt;p&gt;3. No budget cap on tool calls - 100 agents x 15 tools = $$$&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;h1&gt;&lt;span style="font-size: small;"&gt;1. Scenario: Autonomous Financial Investigation Swarm&lt;/span&gt;&lt;/h1&gt;&lt;p&gt;Suppose the user asks:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;“Investigate why Counterparty ABC breached its exposure limit yesterday and determine the root cause.”&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Instead of one giant agent doing everything sequentially, a Supervisor Agent dynamically creates specialized workers.&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;                         USER
                           │
                           ▼
                  ┌─────────────────┐
                  │ Supervisor Agent │
                  └────────┬────────┘
                           │
                    Analyze task
                           │
          ┌────────────────┼─────────────────┐
          │                │                 │
          ▼                ▼                 ▼
     Spawn Agent       Spawn Agent       Spawn Agent
     Exposure          Trade              Policy
     Worker            Worker             Worker
          │                │                 │
          ▼                ▼                 ▼
      BigQuery          Trade API        RAG/Search
          │                │                 │
          ▼                ▼                 ▼
       Result 1          Result 2          Result 3
          │                │                 │
          └────────────────┼─────────────────┘
                           ▼
                    Supervisor Agent
                           │
                           ▼
                    Synthesis Agent
                           │
                           ▼
                     Final Answer
                           │
                           ▼
                    DESTROY WORKERS&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The important idea is:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Spawn → Execute → Return Result → Terminate&lt;/code&gt;&lt;/pre&gt;&lt;hr /&gt;&lt;h1&gt;&lt;span style="font-size: small;"&gt;2. Think of it like an Agent Process Pool&lt;/span&gt;&lt;/h1&gt;&lt;p&gt;Traditional computing:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Main Process
     │
     ├── Thread 1 → execute → terminate
     ├── Thread 2 → execute → terminate
     ├── Thread 3 → execute → terminate
     └── Thread 4 → execute → terminate&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Agentic equivalent:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Supervisor
     │
     ├── Agent A → task → result → destroy
     ├── Agent B → task → result → destroy
     ├── Agent C → task → result → destroy
     └── Agent D → task → result → destroy&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;But architecturally I would call them:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;Ephemeral task agents / short-lived worker agents&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;rather than threads.&lt;/p&gt;&lt;hr /&gt;&lt;h1&gt;&lt;span style="font-size: small;"&gt;3. Dynamic Swarm&lt;/span&gt;&lt;/h1&gt;&lt;p&gt;The supervisor doesn't need to know the number of agents beforehand.&lt;/p&gt;&lt;p&gt;For example:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Task
 │
 ▼
Supervisor
 │
 ├── "Need exposure analysis"
 │       ↓
 │    Spawn ExposureAgent
 │
 ├── "Need trade investigation"
 │       ↓
 │    Spawn TradeAgent
 │
 ├── "Need regulatory interpretation"
 │       ↓
 │    Spawn PolicyAgent
 │
 └── "Need anomaly detection"
         ↓
      Spawn AnomalyAgent&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;If the task only needs two agents:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Supervisor
 │
 ├── ExposureAgent
 └── PolicyAgent&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;If it needs twenty:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Supervisor
 │
 ├── Worker 1
 ├── Worker 2
 ├── ...
 └── Worker 20&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;That is the key difference from a fixed multi-agent architecture.&lt;/p&gt;&lt;hr /&gt;&lt;h1&gt;&lt;span style="font-size: small;"&gt;4. Real example&lt;/span&gt;&lt;/h1&gt;&lt;p&gt;Suppose we have 10,000 transactions.&lt;/p&gt;&lt;p&gt;The user asks:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;“Find suspicious transactions associated with ABC.”&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Supervisor decides:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;                     Supervisor
                          │
             ┌────────────┼─────────────┐
             │            │             │
             ▼            ▼             ▼
         Worker 1      Worker 2      Worker 3
         1–1,000       1,001–2,000   2,001–3,000

             ...
             
         Worker 10
         9,001–10,000&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;All workers operate concurrently.&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;10,000 transactions
        │
        ▼
     Partition
        │
 ┌──────┼──────┐
 ▼      ▼      ▼
W1     W2     W3
...
W10
 │      │      │
 └──────┼──────┘
        ▼
    Aggregator
        │
        ▼
   Final result&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Once a worker returns:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Worker
  ↓
Result
  ↓
Object storage / queue
  ↓
Worker terminated&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The agent doesn't need to remain alive.&lt;/p&gt;&lt;hr /&gt;&lt;h1&gt;&lt;span style="font-size: small;"&gt;5. Architecture&lt;/span&gt;&lt;/h1&gt;&lt;p&gt;A production implementation could look like:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;                         USER
                           │
                           ▼
                    API Gateway
                           │
                           ▼
                  Supervisor Agent
                           │
                           ▼
                  Task Decomposition
                           │
                           ▼
                  ┌─────────────────┐
                  │ Task Queue      │
                  │ SQS / Pub/Sub   │
                  │ Service Bus     │
                  └────────┬────────┘
                           │
             ┌─────────────┼─────────────┐
             ▼             ▼             ▼
        Agent Worker   Agent Worker   Agent Worker
             │             │             │
             ▼             ▼             ▼
           RAG            SQL            API
             │             │             │
             └─────────────┼─────────────┘
                           ▼
                    Result Aggregator
                           │
                           ▼
                    Supervisor Agent
                           │
                           ▼
                     Final Response&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This is actually closer to a distributed worker architecture than conventional threading.&lt;/p&gt;&lt;hr /&gt;&lt;h1&gt;&lt;span style="font-size: small;"&gt;6. Spawn mechanism&lt;/span&gt;&lt;/h1&gt;&lt;p&gt;The Supervisor produces a task specification:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-json"&gt;{
  "task_id": "TASK-123",
  "worker_type": "trade-investigator",
  "input": {
    "counterparty": "ABC",
    "date": "2026-09-15"
  },
  "priority": "high",
  "timeout_seconds": 120,
  "max_iterations": 5
}&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The orchestrator puts this into a queue.&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Supervisor
    │
    ▼
Task specification
    │
    ▼
Queue
    │
    ▼
Worker runtime&lt;/code&gt;&lt;/pre&gt;&lt;hr /&gt;&lt;h1&gt;&lt;span style="font-size: small;"&gt;7. Worker lifecycle&lt;/span&gt;&lt;/h1&gt;&lt;p&gt;I would explicitly design an agent lifecycle:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;              SPAWN
                │
                ▼
            INITIALIZE
                │
                ▼
            AUTHENTICATE
                │
                ▼
          LOAD CONTEXT
                │
                ▼
          EXECUTE TASK
                │
                ▼
           VALIDATE
                │
                ▼
         RETURN RESULT
                │
                ▼
         PERSIST RESULT
                │
                ▼
           TERMINATE&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This gives you deterministic lifecycle management.&lt;/p&gt;&lt;hr /&gt;&lt;h1&gt;&lt;span style="font-size: small;"&gt;8. Example Python implementation&lt;/span&gt;&lt;/h1&gt;&lt;p&gt;A simplified conceptual implementation:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-python"&gt;import asyncio
from dataclasses import dataclass


@dataclass
class AgentTask:
    task_id: str
    agent_type: str
    payload: dict


async def execute_worker(task: AgentTask):

    print(f"Spawned {task.agent_type}")

    try:

        if task.agent_type == "exposure":
            result = await investigate_exposure(task.payload)

        elif task.agent_type == "trade":
            result = await investigate_trades(task.payload)

        elif task.agent_type == "policy":
            result = await search_policy(task.payload)

        else:
            raise ValueError("Unknown worker")

        return {
            "task_id": task.task_id,
            "status": "completed",
            "result": result
        }

    finally:

        # Release resources
        print(f"Terminating {task.agent_type}")


async def swarm(tasks):

    results = await asyncio.gather(
        *(execute_worker(task) for task in tasks)
    )

    return results&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Then:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-python"&gt;tasks = [
    AgentTask(
        "T1",
        "exposure",
        {"counterparty": "ABC"}
    ),

    AgentTask(
        "T2",
        "trade",
        {"counterparty": "ABC"}
    ),

    AgentTask(
        "T3",
        "policy",
        {"question": "counterparty breach"}
    )
]

results = await swarm(tasks)&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Conceptually:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;              Supervisor
                   │
                   ▼
               asyncio
                   │
       ┌───────────┼───────────┐
       ▼           ▼           ▼
   Exposure      Trade       Policy
   Worker        Worker       Worker
       │           │           │
       ▼           ▼           ▼
    Result       Result       Result
       │           │           │
       └───────────┼───────────┘
                   ▼
              Aggregator&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;For production, replace local asyncio workers with durable distributed workers/managed runtimes.&lt;/p&gt;&lt;hr /&gt;&lt;h1&gt;&lt;span style="font-size: small;"&gt;9. Don't let every agent create another agent&lt;/span&gt;&lt;/h1&gt;&lt;p&gt;This can become dangerous.&lt;/p&gt;&lt;p&gt;Bad:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Agent A
 ↓
creates B
 ↓
B creates C
 ↓
C creates D
 ↓
D creates E
 ↓
...&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;You get an agent explosion.&lt;/p&gt;&lt;p&gt;Instead impose:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;MAX_AGENTS = 20
MAX_DEPTH = 2
MAX_ITERATIONS = 5
MAX_COST = $2
MAX_RUNTIME = 120 sec&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Example:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-python"&gt;if swarm_depth &amp;gt;= MAX_DEPTH:
    raise RuntimeError("Agent spawning limit exceeded")&lt;/code&gt;&lt;/pre&gt;&lt;hr /&gt;&lt;h1&gt;&lt;span style="font-size: small;"&gt;10. Agent budget&lt;/span&gt;&lt;/h1&gt;&lt;p&gt;Every ephemeral worker should have a budget.&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Worker
 │
 ├── Maximum tokens
 ├── Maximum model calls
 ├── Maximum tool calls
 ├── Maximum execution time
 └── Maximum cost&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Example:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-json"&gt;{
  "max_tokens": 5000,
  "max_model_calls": 5,
  "max_tool_calls": 10,
  "timeout": 120,
  "max_cost_usd": 0.50
}&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This is essential for production AgentOps.&lt;/p&gt;&lt;hr /&gt;&lt;h1&gt;&lt;span style="font-size: small;"&gt;11. Early termination&lt;/span&gt;&lt;/h1&gt;&lt;p&gt;Suppose 10 agents are searching for evidence.&lt;/p&gt;&lt;p&gt;Agent 3 finds the answer with high confidence.&lt;/p&gt;&lt;p&gt;Instead of waiting:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;W1 ───────────
W2 ───────────
W3 ── FOUND ✓
W4 ───────────
W5 ───────────
...&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Supervisor can cancel remaining tasks when the stopping condition is satisfied.&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;W3
 │
 ▼
Evidence confidence = 0.96
 │
 ▼
STOP CONDITION
 │
 ├── Cancel W1
 ├── Cancel W2
 ├── Cancel W4
 └── Cancel W5...&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This reduces:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Latency
Token consumption
Infrastructure cost&lt;/code&gt;&lt;/pre&gt;&lt;hr /&gt;&lt;h1&gt;&lt;span style="font-size: small;"&gt;12. Swarm with priority&lt;/span&gt;&lt;/h1&gt;&lt;p&gt;You can make workers priority-aware:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;HIGH
 ├── Regulatory Agent
 └── Risk Agent

MEDIUM
 ├── Trade Agent
 └── Market Agent

LOW
 └── Historical Agent&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Queue:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;             Task Queue
                  │
        ┌─────────┼─────────┐
        ▼         ▼         ▼
       P1        P2        P3
        │         │         │
       HIGH     MEDIUM      LOW&lt;/code&gt;&lt;/pre&gt;&lt;hr /&gt;&lt;h1&gt;&lt;span style="font-size: small;"&gt;13. Cloud implementation&lt;/span&gt;&lt;/h1&gt;&lt;p&gt;This pattern maps very naturally to all three clouds.&lt;/p&gt;&lt;h3&gt;AWS&lt;/h3&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Supervisor
    │
    ▼
SQS
    │
    ▼
ECS / Lambda / AgentCore
    │
    ▼
Workers
    │
    ▼
Bedrock&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;AWS's Bedrock AgentCore is particularly relevant for managed agent runtime, memory, tools and production agent workloads.&lt;/p&gt;&lt;h3&gt;Azure&lt;/h3&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Supervisor
    │
    ▼
Service Bus
    │
    ▼
Container Apps / Functions
    │
    ▼
Foundry Agent Service&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Microsoft Foundry Agent Service provides managed agent deployment/execution capabilities.&lt;/p&gt;&lt;h3&gt;GCP&lt;/h3&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Supervisor
    │
    ▼
Pub/Sub
    │
    ▼
Cloud Run / GKE
    │
    ▼
Gemini Enterprise Agent Platform&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;ADK agents can be deployed using Google's managed agent platform or container environments such as Cloud Run/GKE.&lt;/p&gt;&lt;hr /&gt;&lt;h1&gt;&lt;span style="font-size: small;"&gt;14. A better architecture: Agent Swarm Scheduler&lt;/span&gt;&lt;/h1&gt;&lt;p&gt;For serious production workloads, don't let the Supervisor directly instantiate infrastructure.&lt;/p&gt;&lt;p&gt;Introduce:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;                     Supervisor
                          │
                          ▼
                  Swarm Scheduler
                          │
        ┌─────────────────┼──────────────────┐
        │                 │                  │
        ▼                 ▼                  ▼
   Task Manager       Resource Manager    Policy Engine
        │                 │                  │
        ▼                 ▼                  ▼
      Queue          Concurrency         Security
                         limits            rules
        │
        ▼
    Worker Pool&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The Scheduler determines:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;How many workers?
Which worker type?
What priority?
What resources?
What timeout?
What permissions?
When to terminate?&lt;/code&gt;&lt;/pre&gt;&lt;hr /&gt;&lt;h1&gt;&lt;span style="font-size: small;"&gt;15. Dynamic worker pool&lt;/span&gt;&lt;/h1&gt;&lt;p&gt;This is the closest analogy to OS thread/process pools.&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;                 Worker Pool
                     │
        ┌────────────┼────────────┐
        ▼            ▼            ▼
     Worker 1     Worker 2     Worker 3
        │            │            │
      BUSY         BUSY         IDLE

                 New Tasks
                     │
                     ▼
                 Scheduler
                     │
                     ▼
                 Worker 3&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;When demand increases:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;2 workers
   ↓
5 workers
   ↓
20 workers&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;When demand decreases:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;20 workers
   ↓
8 workers
   ↓
2 workers&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This is essentially autoscaling a pool of ephemeral agent workers.&lt;/p&gt;&lt;hr /&gt;&lt;h1&gt;&lt;span style="font-size: small;"&gt;16. The critical difference from threads&lt;/span&gt;&lt;/h1&gt;&lt;blockquote&gt;&lt;p&gt;I use the process/thread model as a conceptual analogy. Architecturally, these are ephemeral distributed workers. Each worker has isolated state, identity, resource limits and a lifecycle, and the scheduler can dynamically create, reuse or terminate workers based on task demand.&lt;/p&gt;&lt;/blockquote&gt;&lt;hr /&gt;&lt;h1&gt;&lt;span style="font-size: small;"&gt;17. When should you use this pattern?&lt;/span&gt;&lt;/h1&gt;&lt;p&gt;Excellent use cases:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;✓ Large document analysis
✓ Parallel research
✓ Fraud investigation
✓ Regulatory analysis
✓ Codebase analysis
✓ Multi-source research
✓ Data quality investigation
✓ Large-scale classification
✓ Incident investigation
✓ Complex financial analysis&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Less appropriate:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;✗ Simple chatbot
✗ Simple RAG question
✗ Single database lookup
✗ Simple workflow&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Don't use a swarm where a single deterministic workflow is sufficient.&lt;/p&gt;&lt;hr /&gt;&lt;h1&gt;&lt;span style="font-size: small;"&gt;18. The most advanced version&lt;/span&gt;&lt;/h1&gt;&lt;p&gt;You can combine:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Dynamic spawning
+
Parallel execution
+
Shared event bus
+
Short-term memory
+
Long-term memory
+
Agent registry
+
Tool registry
+
Budget control
+
Policy enforcement
+
Auto termination&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Architecture:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;                         USER
                           │
                           ▼
                     SUPERVISOR
                           │
                           ▼
                   SWARM SCHEDULER
                           │
                ┌──────────┼──────────┐
                ▼          ▼          ▼
              Queue      Registry   Policy
                │
       ┌────────┼────────┬────────┐
       ▼        ▼        ▼        ▼
      W1       W2       W3       W4
       │        │        │        │
       ▼        ▼        ▼        ▼
      RAG      SQL      API      MCP
       │        │        │        │
       └────────┼────────┴────────┘
                ▼
           Event Bus
                │
                ▼
           Aggregator
                │
                ▼
           Supervisor
                │
                ▼
           FINAL RESULT
                │
                ▼
        TERMINATE WORKERS&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The key production principle is:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;“Agents are disposable compute units; knowledge, state, audit records and results should live outside the agent.”&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;That separation is extremely important.&lt;/p&gt;&lt;p&gt;For example:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Agent dies ❌
     │
     ▼
Result lost
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;is bad architecture.&lt;/p&gt;&lt;p&gt;Instead:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Agent
 │
 ▼
Result
 │
 ▼
Durable Store
 │
 ▼
Agent terminates
 │
 ▼
Supervisor retrieves result&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This gives you fault tolerance, replayability and horizontal scalability.&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;“I would implement the swarm as an ephemeral distributed-worker architecture rather than treating agents literally as OS threads. A supervisor decomposes the task into independent subtasks and submits them to a scheduler or durable queue. The scheduler dynamically creates or assigns short-lived worker agents with an isolated identity, context, tool permissions, token budget, iteration limit and timeout. Workers execute concurrently, persist their results to durable storage or an event bus, and terminate immediately after completion. The supervisor aggregates the results and can cancel remaining workers once a sufficient-confidence stopping condition is reached.&lt;/p&gt;&lt;p&gt;For production I would enforce maximum swarm depth, concurrency, execution time, model calls and cost to prevent runaway agent spawning. AWS could use SQS + AgentCore/ECS/Lambda + Bedrock, Azure Service Bus + Foundry/Container Apps/Functions, and GCP Pub/Sub + Cloud Run/GKE + Gemini Enterprise Agent Platform. The important design principle is that agent compute is ephemeral, while state, results, audit trails and knowledge are durable.”&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;This pattern is particularly powerful for the kind of enterprise AI architecture you're preparing for because it combines Agentic AI with familiar distributed-systems concepts: worker pools, queues, concurrency control, backpressure, cancellation, circuit breakers, idempotency and autoscaling.&lt;/p&gt;&lt;p&gt;&lt;b&gt;You can start from my demo Agent Swarm MVP application &lt;a href="https://github.com/dhirajpatra/Financial-Compliance-Agent-Swarm" target="_blank"&gt;here&lt;/a&gt;&amp;nbsp;&lt;/b&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;Open Source Open Mind&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiyNVsTuMWEvi7ueZwlT3_3yE8nesxNUypW9CFARfktPGGov70_HoYKYFW3ZeKK1zD_bQWC9CMGBB3q2ALVwNamiRQ0SIhzP2hut9S_EiGchaMrjJDXha4EFbz6IzXPXopaFJsLAtkpmbqb2sTmsC8ul7Vc-a5Zy48Ugxo-1gMG48fWpgj7qoXTVdXbKnUD/s72-w473-h315-c/image.jpg" width="72"/><author>dhiraj.patra@gmail.com (dhiraj patra)</author></item><item><title>Text2Cypher for Neo4j with RAG</title><link>http://dhirajpatra.blogspot.com/2026/09/text2cypher-for-neo4j-with-rag.html</link><category>artificial intelligence</category><category>generativeai</category><category>graph</category><category>graphdb</category><category>rag</category><pubDate>Tue, 15 Sep 2026 06:56:09 -0700</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8993867651193907565.post-6102742511218997219</guid><description>&lt;p&gt;&lt;span style="background-color: white; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 20px; white-space: pre-wrap;"&gt;To convert user questions from a chatbot into Cypher queries to run on Neo4j, the standard approach is using Text2Cypher with GraphRAG. This combines the natural language understanding of Large Language Models (LLMs) with the structured relationship data in your graph database.&lt;/span&gt;&lt;/p&gt;&lt;p style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 20px; line-height: 1.5; margin: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;br style="box-sizing: inherit;" /&gt;&lt;/p&gt;&lt;p style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 20px; line-height: 1.5; margin: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;"&gt;&#129504; How the Pipeline Works&lt;/p&gt;&lt;p style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 20px; line-height: 1.5; margin: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;br style="box-sizing: inherit;" /&gt;&lt;/p&gt;&lt;p style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 20px; line-height: 1.5; margin: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;"&gt;1.&amp;nbsp;User Question &amp;amp; RAG Context: Your chatbot receives a question. If you have a RAG retrieval response (e.g., relevant documents or entities), this context is passed along with the question to help the LLM understand specific terminology or domain knowledge.&lt;/p&gt;&lt;p style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 20px; line-height: 1.5; margin: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;"&gt;2.&amp;nbsp;Schema Injection: The system automatically fetches your Neo4j graph schema (node labels, relationship types, property keys). This schema is included in the prompt so the LLM knows exactly what structure it is querying.&lt;/p&gt;&lt;p style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 20px; line-height: 1.5; margin: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;"&gt;3.&amp;nbsp;Text-to-Cypher Generation: An LLM generates a Cypher query based on the user's question, the provided context, and the database schema.&lt;/p&gt;&lt;p style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 20px; line-height: 1.5; margin: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;"&gt;4.&amp;nbsp;Validation &amp;amp; Security: Before execution, the generated Cypher is validated for syntax errors. Crucially, modern implementations use an `EXPLAIN` statement first to detect any write or destructive operations, preventing prompt injection attacks.&lt;/p&gt;&lt;p style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 20px; line-height: 1.5; margin: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;"&gt;5.&amp;nbsp;Execution &amp;amp; Answering: The validated query is executed against Neo4j. The raw results are then fed back to the LLM to generate a natural language answer for the user.&lt;/p&gt;&lt;p style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 20px; line-height: 1.5; margin: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;br style="box-sizing: inherit;" /&gt;&lt;/p&gt;&lt;p style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 20px; line-height: 1.5; margin: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;"&gt;&#128736;️ Recommended Implementation: Neo4j GraphRAG Python Package&lt;/p&gt;&lt;p style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 20px; line-height: 1.5; margin: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;br style="box-sizing: inherit;" /&gt;&lt;/p&gt;&lt;p style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 20px; line-height: 1.5; margin: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;"&gt;The most direct way to implement this is using the `neo4j-graphrag` Python library, which provides a `Text2CypherRetriever` specifically for this purpose.&lt;/p&gt;&lt;p style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 20px; line-height: 1.5; margin: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;br style="box-sizing: inherit;" /&gt;&lt;/p&gt;&lt;p style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 20px; line-height: 1.5; margin: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;"&gt;1. Installation**&lt;/p&gt;&lt;p style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 20px; line-height: 1.5; margin: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;"&gt;```bash&lt;/p&gt;&lt;p style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 20px; line-height: 1.5; margin: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;"&gt;pip install neo4j "neo4j-graphrag[openai]"&lt;/p&gt;&lt;p style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 20px; line-height: 1.5; margin: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;"&gt;```&lt;/p&gt;&lt;p style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 20px; line-height: 1.5; margin: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;br style="box-sizing: inherit;" /&gt;&lt;/p&gt;&lt;p style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 20px; line-height: 1.5; margin: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;"&gt;2. Setup the Retriever**&lt;/p&gt;&lt;p style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 20px; line-height: 1.5; margin: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;"&gt;You need to connect to your Neo4j instance and initialize the LLM. You can also provide few-shot examples (question-cypher pairs) to improve accuracy.&lt;/p&gt;&lt;p style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 20px; line-height: 1.5; margin: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;br style="box-sizing: inherit;" /&gt;&lt;/p&gt;&lt;p style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 20px; line-height: 1.5; margin: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;"&gt;```python&lt;/p&gt;&lt;p style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 20px; line-height: 1.5; margin: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;"&gt;from neo4j import GraphDatabase&lt;/p&gt;&lt;p style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 20px; line-height: 1.5; margin: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;"&gt;from neo4j_graphrag.retrievers import Text2CypherRetriever&lt;/p&gt;&lt;p style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 20px; line-height: 1.5; margin: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;"&gt;from neo4j_graphrag.llm import OpenAILLM&lt;/p&gt;&lt;p style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 20px; line-height: 1.5; margin: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;br style="box-sizing: inherit;" /&gt;&lt;/p&gt;&lt;p style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 20px; line-height: 1.5; margin: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;"&gt;# 1. Connect to Neo4j&lt;/p&gt;&lt;p style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 20px; line-height: 1.5; margin: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;"&gt;driver = GraphDatabase.driver("bolt://localhost:7687", auth=("neo4j", "password"))&lt;/p&gt;&lt;p style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 20px; line-height: 1.5; margin: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;br style="box-sizing: inherit;" /&gt;&lt;/p&gt;&lt;p style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 20px; line-height: 1.5; margin: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;"&gt;# 2. Initialize the LLM (e.g., GPT-4o)&lt;/p&gt;&lt;p style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 20px; line-height: 1.5; margin: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;"&gt;llm = OpenAILLM(model_name="gpt-4o", model_params={"temperature": 0})&lt;/p&gt;&lt;p style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 20px; line-height: 1.5; margin: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;br style="box-sizing: inherit;" /&gt;&lt;/p&gt;&lt;p style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 20px; line-height: 1.5; margin: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;"&gt;# 3. Define Examples (optional but highly recommended for better accuracy)&lt;/p&gt;&lt;p style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 20px; line-height: 1.5; margin: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;"&gt;examples = [&lt;/p&gt;&lt;p style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 20px; line-height: 1.5; margin: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;"&gt;&amp;nbsp;&amp;nbsp;"User: Who are the actors in 'Inception'? Cypher: MATCH (m:Movie {title: 'Inception'})&amp;lt;-[:ACTED_IN]-(a:Person) RETURN a.name"&lt;/p&gt;&lt;p style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 20px; line-height: 1.5; margin: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;"&gt;]&lt;/p&gt;&lt;p style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 20px; line-height: 1.5; margin: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;br style="box-sizing: inherit;" /&gt;&lt;/p&gt;&lt;p style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 20px; line-height: 1.5; margin: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;"&gt;# 4. Create the Retriever&lt;/p&gt;&lt;p style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 20px; line-height: 1.5; margin: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;"&gt;retriever = Text2CypherRetriever(&lt;/p&gt;&lt;p style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 20px; line-height: 1.5; margin: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;"&gt;&amp;nbsp;&amp;nbsp;driver=driver,&lt;/p&gt;&lt;p style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 20px; line-height: 1.5; margin: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;"&gt;&amp;nbsp;&amp;nbsp;llm=llm,&lt;/p&gt;&lt;p style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 20px; line-height: 1.5; margin: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;"&gt;&amp;nbsp;&amp;nbsp;neo4j_schema=None,&amp;nbsp;# None will auto-fetch the schema&lt;/p&gt;&lt;p style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 20px; line-height: 1.5; margin: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;"&gt;&amp;nbsp;&amp;nbsp;examples=examples&lt;/p&gt;&lt;p style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 20px; line-height: 1.5; margin: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;"&gt;)&lt;/p&gt;&lt;p style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 20px; line-height: 1.5; margin: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;br style="box-sizing: inherit;" /&gt;&lt;/p&gt;&lt;p style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 20px; line-height: 1.5; margin: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;"&gt;# 5. Search (This generates &amp;amp; executes the Cypher)&lt;/p&gt;&lt;p style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 20px; line-height: 1.5; margin: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;"&gt;query_text = "Which movies did Tom Hanks act in?"&lt;/p&gt;&lt;p style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 20px; line-height: 1.5; margin: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;"&gt;results = retriever.search(query_text=query_text)&lt;/p&gt;&lt;p style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 20px; line-height: 1.5; margin: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;br style="box-sizing: inherit;" /&gt;&lt;/p&gt;&lt;p style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 20px; line-height: 1.5; margin: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;"&gt;print(results)&lt;/p&gt;&lt;p style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 20px; line-height: 1.5; margin: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;"&gt;```&lt;/p&gt;&lt;p style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 20px; line-height: 1.5; margin: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;br style="box-sizing: inherit;" /&gt;&lt;/p&gt;&lt;p style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 20px; line-height: 1.5; margin: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;"&gt;&#128640; Advanced: Combining RAG Context with Text2Cypher&lt;/p&gt;&lt;p style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 20px; line-height: 1.5; margin: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;br style="box-sizing: inherit;" /&gt;&lt;/p&gt;&lt;p style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 20px; line-height: 1.5; margin: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;"&gt;If your RAG response contains specific entities or context that needs to inform the Cypher generation, you can use the **`ToolsRetriever`** in the Neo4j GraphRAG library. This allows the LLM to intelligently choose between a `VectorRetriever` (for unstructured text) and a `Text2CypherRetriever` (for structured queries) based on the user's intent.&lt;/p&gt;&lt;p style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 20px; line-height: 1.5; margin: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;br style="box-sizing: inherit;" /&gt;&lt;/p&gt;&lt;p style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 20px; line-height: 1.5; margin: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;"&gt;You can also use the **LangChain `GraphCypherQAChain`** which is a popular alternative. It uses two LLM instances: one (`cypher_llm`) to generate the Cypher query and another (`qa_llm`) to generate the final answer from the results.&lt;/p&gt;&lt;p style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 20px; line-height: 1.5; margin: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;br style="box-sizing: inherit;" /&gt;&lt;/p&gt;&lt;p style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 20px; line-height: 1.5; margin: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;"&gt;&#128161; Key Considerations for Chatbot Integration&lt;/p&gt;&lt;p style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 20px; line-height: 1.5; margin: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;br style="box-sizing: inherit;" /&gt;&lt;/p&gt;&lt;p style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 20px; line-height: 1.5; margin: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;"&gt;- Schema Trimming: If your graph has many labels, passing the entire schema can exceed token limits. You should only inject the relevant portion of the schema into the prompt.&lt;/p&gt;&lt;p style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 20px; line-height: 1.5; margin: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;"&gt;- Validation: Always enable Cypher validation (`validate_cypher=True`) to catch syntax errors and prevent malicious queries.&lt;/p&gt;&lt;p style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 20px; line-height: 1.5; margin: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;"&gt;- RAG for Schema: You can even use RAG to retrieve the most relevant part of your schema (e.g., "Movie schema") based on the user's question before generating the query.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;Open Source Open Mind&lt;/div&gt;</description><author>dhiraj.patra@gmail.com (dhiraj patra)</author></item><item><title>Arbitrage Trading Decision Model</title><link>http://dhirajpatra.blogspot.com/2026/09/arbitrage-trading-decision-model.html</link><category>artificial intelligence</category><category>eda</category><category>finaicial engineering</category><category>finance</category><category>kaggle</category><category>machine learning</category><pubDate>Sat, 12 Sep 2026 04:31:40 -0700</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8993867651193907565.post-7940672768543844429</guid><description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEif9kyDo-_RNla1JdxBZZgIfX-_DWyvx0IaZBuOWn2QA8ECbI6W9Z7rf_zhy61Vo2AI2HyQAb0IpxBgUz5-AOY6QyPUUYe_TIGyUu2Dg2ht7zErN27jlUXyENgUF0uxq8LruklJB6P0f3A1KE-Ecu92IcDfqs6t6hFubAsBFgeZASNgcPBUG8R0IP_9kq0J/s1047/Screenshot%20from%202026-09-12%2016-55-17.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="467" data-original-width="1047" height="259" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEif9kyDo-_RNla1JdxBZZgIfX-_DWyvx0IaZBuOWn2QA8ECbI6W9Z7rf_zhy61Vo2AI2HyQAb0IpxBgUz5-AOY6QyPUUYe_TIGyUu2Dg2ht7zErN27jlUXyENgUF0uxq8LruklJB6P0f3A1KE-Ecu92IcDfqs6t6hFubAsBFgeZASNgcPBUG8R0IP_9kq0J/w579-h259/Screenshot%20from%202026-09-12%2016-55-17.png" width="579" /&gt;&lt;/a&gt;&lt;/div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Directly taken from my Kaggle notebook&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;The formula can be adapted into an arbitrage-trading decision model like below, but by itself it is not an arbitrage formula.&lt;/p&gt;&lt;p&gt;&lt;span class="katex"&gt;&lt;math display="block" xmlns="http://www.w3.org/1998/Math/MathML"&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;R&lt;/mi&gt;&lt;mo stretchy="false"&gt;(&lt;/mo&gt;&lt;mi&gt;t&lt;/mi&gt;&lt;mo stretchy="false"&gt;)&lt;/mo&gt;&lt;mo&gt;=&lt;/mo&gt;&lt;msub&gt;&lt;mi&gt;R&lt;/mi&gt;&lt;mi&gt;max&lt;/mi&gt;&lt;mo&gt;⁡&lt;/mo&gt;&lt;/msub&gt;&lt;mi&gt;m&lt;/mi&gt;&lt;mo stretchy="false"&gt;(&lt;/mo&gt;&lt;mi&gt;t&lt;/mi&gt;&lt;mo stretchy="false"&gt;)&lt;/mo&gt;&lt;mo&gt;=&lt;/mo&gt;&lt;mfrac&gt;&lt;msub&gt;&lt;mi&gt;R&lt;/mi&gt;&lt;mi&gt;max&lt;/mi&gt;&lt;mo&gt;⁡&lt;/mo&gt;&lt;/msub&gt;&lt;mn&gt;7&lt;/mn&gt;&lt;/mfrac&gt;&lt;munderover&gt;&lt;mo&gt;∑&lt;/mo&gt;&lt;mrow&gt;&lt;mi&gt;i&lt;/mi&gt;&lt;mo&gt;=&lt;/mo&gt;&lt;mn&gt;1&lt;/mn&gt;&lt;/mrow&gt;&lt;mn&gt;7&lt;/mn&gt;&lt;/munderover&gt;&lt;msub&gt;&lt;mi&gt;s&lt;/mi&gt;&lt;mi&gt;i&lt;/mi&gt;&lt;/msub&gt;&lt;mo stretchy="false"&gt;(&lt;/mo&gt;&lt;mi&gt;t&lt;/mi&gt;&lt;mo stretchy="false"&gt;)&lt;/mo&gt;&lt;/mrow&gt;&lt;annotation encoding="application/x-tex"&gt;R(t)=R_{\max}m(t) =\frac{R_{\max}}{7}\sum_{i=1}^{7}s_i(t)&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;where the 7 signals &lt;span class="katex"&gt;&lt;math xmlns="http://www.w3.org/1998/Math/MathML"&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;msub&gt;&lt;mi&gt;s&lt;/mi&gt;&lt;mi&gt;i&lt;/mi&gt;&lt;/msub&gt;&lt;mo stretchy="false"&gt;(&lt;/mo&gt;&lt;mi&gt;t&lt;/mi&gt;&lt;mo stretchy="false"&gt;)&lt;/mo&gt;&lt;/mrow&gt;&lt;annotation encoding="application/x-tex"&gt;s_i(t)&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt; are normalized signals and &lt;span class="katex"&gt;&lt;math xmlns="http://www.w3.org/1998/Math/MathML"&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;R&lt;/mi&gt;&lt;mo stretchy="false"&gt;(&lt;/mo&gt;&lt;mi&gt;t&lt;/mi&gt;&lt;mo stretchy="false"&gt;)&lt;/mo&gt;&lt;/mrow&gt;&lt;annotation encoding="application/x-tex"&gt;R(t)&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt; is a dynamically calculated risk/reward/allocation value.&lt;/p&gt;&lt;p&gt;For arbitrage, I would use the same concept like this:&lt;/p&gt;&lt;p&gt;&lt;span class="katex"&gt;&lt;math display="block" xmlns="http://www.w3.org/1998/Math/MathML"&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;A&lt;/mi&gt;&lt;mo stretchy="false"&gt;(&lt;/mo&gt;&lt;mi&gt;t&lt;/mi&gt;&lt;mo stretchy="false"&gt;)&lt;/mo&gt;&lt;mo&gt;=&lt;/mo&gt;&lt;mfrac&gt;&lt;mn&gt;1&lt;/mn&gt;&lt;mn&gt;7&lt;/mn&gt;&lt;/mfrac&gt;&lt;munderover&gt;&lt;mo&gt;∑&lt;/mo&gt;&lt;mrow&gt;&lt;mi&gt;i&lt;/mi&gt;&lt;mo&gt;=&lt;/mo&gt;&lt;mn&gt;1&lt;/mn&gt;&lt;/mrow&gt;&lt;mn&gt;7&lt;/mn&gt;&lt;/munderover&gt;&lt;msub&gt;&lt;mi&gt;s&lt;/mi&gt;&lt;mi&gt;i&lt;/mi&gt;&lt;/msub&gt;&lt;mo stretchy="false"&gt;(&lt;/mo&gt;&lt;mi&gt;t&lt;/mi&gt;&lt;mo stretchy="false"&gt;)&lt;/mo&gt;&lt;/mrow&gt;&lt;annotation encoding="application/x-tex"&gt;A(t)=\frac{1}{7}\sum_{i=1}^{7}s_i(t)&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;where the signals could be:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;p&gt;Price spread&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Bid/ask spread&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Trading fees&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Slippage&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Market liquidity&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Transfer/settlement latency&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Historical spread reliability&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Then calculate the actual arbitrage profit:&lt;/p&gt;&lt;p&gt;&lt;span class="katex"&gt;&lt;math display="block" xmlns="http://www.w3.org/1998/Math/MathML"&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;msub&gt;&lt;mi&gt;P&lt;/mi&gt;&lt;mtext&gt;arb&lt;/mtext&gt;&lt;/msub&gt;&lt;mo&gt;=&lt;/mo&gt;&lt;mi&gt;Q&lt;/mi&gt;&lt;mo stretchy="false"&gt;(&lt;/mo&gt;&lt;msub&gt;&lt;mi&gt;P&lt;/mi&gt;&lt;mtext&gt;sell&lt;/mtext&gt;&lt;/msub&gt;&lt;mo&gt;−&lt;/mo&gt;&lt;msub&gt;&lt;mi&gt;P&lt;/mi&gt;&lt;mtext&gt;buy&lt;/mtext&gt;&lt;/msub&gt;&lt;mo stretchy="false"&gt;)&lt;/mo&gt;&lt;mo&gt;−&lt;/mo&gt;&lt;msub&gt;&lt;mi&gt;F&lt;/mi&gt;&lt;mtext&gt;buy&lt;/mtext&gt;&lt;/msub&gt;&lt;mo&gt;−&lt;/mo&gt;&lt;msub&gt;&lt;mi&gt;F&lt;/mi&gt;&lt;mtext&gt;sell&lt;/mtext&gt;&lt;/msub&gt;&lt;mo&gt;−&lt;/mo&gt;&lt;msub&gt;&lt;mi&gt;S&lt;/mi&gt;&lt;mtext&gt;buy&lt;/mtext&gt;&lt;/msub&gt;&lt;mo&gt;−&lt;/mo&gt;&lt;msub&gt;&lt;mi&gt;S&lt;/mi&gt;&lt;mtext&gt;sell&lt;/mtext&gt;&lt;/msub&gt;&lt;mo&gt;−&lt;/mo&gt;&lt;msub&gt;&lt;mi&gt;C&lt;/mi&gt;&lt;mtext&gt;transfer&lt;/mtext&gt;&lt;/msub&gt;&lt;/mrow&gt;&lt;annotation encoding="application/x-tex"&gt;P_{\text{arb}}= Q(P_{\text{sell}}-P_{\text{buy}}) -F_{\text{buy}}-F_{\text{sell}} -S_{\text{buy}}-S_{\text{sell}} -C_{\text{transfer}}&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;and the net arbitrage percentage:&lt;/p&gt;&lt;p&gt;&lt;span class="katex"&gt;&lt;math display="block" xmlns="http://www.w3.org/1998/Math/MathML"&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;R&lt;/mi&gt;&lt;mi&gt;O&lt;/mi&gt;&lt;msub&gt;&lt;mi&gt;I&lt;/mi&gt;&lt;mtext&gt;arb&lt;/mtext&gt;&lt;/msub&gt;&lt;mo&gt;=&lt;/mo&gt;&lt;mfrac&gt;&lt;msub&gt;&lt;mi&gt;P&lt;/mi&gt;&lt;mtext&gt;arb&lt;/mtext&gt;&lt;/msub&gt;&lt;mrow&gt;&lt;mi&gt;Q&lt;/mi&gt;&lt;msub&gt;&lt;mi&gt;P&lt;/mi&gt;&lt;mtext&gt;buy&lt;/mtext&gt;&lt;/msub&gt;&lt;/mrow&gt;&lt;/mfrac&gt;&lt;mo&gt;×&lt;/mo&gt;&lt;mn&gt;100&lt;/mn&gt;&lt;/mrow&gt;&lt;annotation encoding="application/x-tex"&gt;ROI_{\text{arb}}= \frac{P_{\text{arb}}}{Q P_{\text{buy}}}\times100&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;For example:&lt;/p&gt;&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Parameter&lt;/th&gt;&lt;th align="right"&gt;Exchange A&lt;/th&gt;&lt;th align="right"&gt;Exchange B&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Buy price&lt;/td&gt;&lt;td align="right"&gt;$100,000&lt;/td&gt;&lt;td align="right"&gt;—&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sell price&lt;/td&gt;&lt;td align="right"&gt;—&lt;/td&gt;&lt;td align="right"&gt;$100,800&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Quantity&lt;/td&gt;&lt;td align="right"&gt;0.10 BTC&lt;/td&gt;&lt;td align="right"&gt;0.10 BTC&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Gross spread&lt;/td&gt;&lt;td align="right"&gt;&lt;/td&gt;&lt;td align="right"&gt;$80&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;Gross profit:&lt;/p&gt;&lt;p&gt;&lt;span class="katex"&gt;&lt;math display="block" xmlns="http://www.w3.org/1998/Math/MathML"&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mn&gt;0.10&lt;/mn&gt;&lt;mo stretchy="false"&gt;(&lt;/mo&gt;&lt;mn&gt;100800&lt;/mn&gt;&lt;mo&gt;−&lt;/mo&gt;&lt;mn&gt;100000&lt;/mn&gt;&lt;mo stretchy="false"&gt;)&lt;/mo&gt;&lt;mo&gt;=&lt;/mo&gt;&lt;mi mathvariant="normal"&gt;$&lt;/mi&gt;&lt;mn&gt;80&lt;/mn&gt;&lt;/mrow&gt;&lt;annotation encoding="application/x-tex"&gt;0.10(100800-100000)=\$80&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Suppose total fees + slippage + other costs = $35:&lt;/p&gt;&lt;p&gt;&lt;span class="katex"&gt;&lt;math display="block" xmlns="http://www.w3.org/1998/Math/MathML"&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;msub&gt;&lt;mi&gt;P&lt;/mi&gt;&lt;mtext&gt;net&lt;/mtext&gt;&lt;/msub&gt;&lt;mo&gt;=&lt;/mo&gt;&lt;mn&gt;80&lt;/mn&gt;&lt;mo&gt;−&lt;/mo&gt;&lt;mn&gt;35&lt;/mn&gt;&lt;mo&gt;=&lt;/mo&gt;&lt;menclose notation="box"&gt;&lt;mstyle displaystyle="false" scriptlevel="0"&gt;&lt;mstyle displaystyle="false" scriptlevel="0"&gt;&lt;mstyle displaystyle="true" scriptlevel="0"&gt;&lt;mrow&gt;&lt;mi mathvariant="normal"&gt;$&lt;/mi&gt;&lt;mn&gt;45&lt;/mn&gt;&lt;/mrow&gt;&lt;/mstyle&gt;&lt;/mstyle&gt;&lt;/mstyle&gt;&lt;/menclose&gt;&lt;/mrow&gt;&lt;annotation encoding="application/x-tex"&gt;P_{\text{net}}=80-35=\boxed{\$45}&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;So:&lt;/p&gt;&lt;p&gt;&lt;span class="katex"&gt;&lt;math display="block" xmlns="http://www.w3.org/1998/Math/MathML"&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;R&lt;/mi&gt;&lt;mi&gt;O&lt;/mi&gt;&lt;mi&gt;I&lt;/mi&gt;&lt;mo&gt;=&lt;/mo&gt;&lt;mfrac&gt;&lt;mn&gt;45&lt;/mn&gt;&lt;mn&gt;10000&lt;/mn&gt;&lt;/mfrac&gt;&lt;mo&gt;×&lt;/mo&gt;&lt;mn&gt;100&lt;/mn&gt;&lt;mo&gt;=&lt;/mo&gt;&lt;menclose notation="box"&gt;&lt;mstyle displaystyle="false" scriptlevel="0"&gt;&lt;mstyle displaystyle="false" scriptlevel="0"&gt;&lt;mstyle displaystyle="true" scriptlevel="0"&gt;&lt;mrow&gt;&lt;mn&gt;0.45&lt;/mn&gt;&lt;mi mathvariant="normal"&gt;%&lt;/mi&gt;&lt;/mrow&gt;&lt;/mstyle&gt;&lt;/mstyle&gt;&lt;/mstyle&gt;&lt;/menclose&gt;&lt;/mrow&gt;&lt;annotation encoding="application/x-tex"&gt;ROI=\frac{45}{10000}\times100=\boxed{0.45\%}&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Then your 7-signal formula can decide whether to execute:&lt;/p&gt;&lt;p&gt;&lt;span class="katex"&gt;&lt;math display="block" xmlns="http://www.w3.org/1998/Math/MathML"&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;A&lt;/mi&gt;&lt;mo stretchy="false"&gt;(&lt;/mo&gt;&lt;mi&gt;t&lt;/mi&gt;&lt;mo stretchy="false"&gt;)&lt;/mo&gt;&lt;mo&gt;=&lt;/mo&gt;&lt;mfrac&gt;&lt;mrow&gt;&lt;msub&gt;&lt;mi&gt;s&lt;/mi&gt;&lt;mrow&gt;&lt;mi&gt;s&lt;/mi&gt;&lt;mi&gt;p&lt;/mi&gt;&lt;mi&gt;r&lt;/mi&gt;&lt;mi&gt;e&lt;/mi&gt;&lt;mi&gt;a&lt;/mi&gt;&lt;mi&gt;d&lt;/mi&gt;&lt;/mrow&gt;&lt;/msub&gt;&lt;mo&gt;+&lt;/mo&gt;&lt;msub&gt;&lt;mi&gt;s&lt;/mi&gt;&lt;mrow&gt;&lt;mi&gt;f&lt;/mi&gt;&lt;mi&gt;e&lt;/mi&gt;&lt;mi&gt;e&lt;/mi&gt;&lt;/mrow&gt;&lt;/msub&gt;&lt;mo&gt;+&lt;/mo&gt;&lt;msub&gt;&lt;mi&gt;s&lt;/mi&gt;&lt;mrow&gt;&lt;mi&gt;s&lt;/mi&gt;&lt;mi&gt;l&lt;/mi&gt;&lt;mi&gt;i&lt;/mi&gt;&lt;mi&gt;p&lt;/mi&gt;&lt;mi&gt;p&lt;/mi&gt;&lt;mi&gt;a&lt;/mi&gt;&lt;mi&gt;g&lt;/mi&gt;&lt;mi&gt;e&lt;/mi&gt;&lt;/mrow&gt;&lt;/msub&gt;&lt;mo&gt;+&lt;/mo&gt;&lt;msub&gt;&lt;mi&gt;s&lt;/mi&gt;&lt;mrow&gt;&lt;mi&gt;l&lt;/mi&gt;&lt;mi&gt;i&lt;/mi&gt;&lt;mi&gt;q&lt;/mi&gt;&lt;mi&gt;u&lt;/mi&gt;&lt;mi&gt;i&lt;/mi&gt;&lt;mi&gt;d&lt;/mi&gt;&lt;mi&gt;i&lt;/mi&gt;&lt;mi&gt;t&lt;/mi&gt;&lt;mi&gt;y&lt;/mi&gt;&lt;/mrow&gt;&lt;/msub&gt;&lt;mo&gt;+&lt;/mo&gt;&lt;msub&gt;&lt;mi&gt;s&lt;/mi&gt;&lt;mrow&gt;&lt;mi&gt;l&lt;/mi&gt;&lt;mi&gt;a&lt;/mi&gt;&lt;mi&gt;t&lt;/mi&gt;&lt;mi&gt;e&lt;/mi&gt;&lt;mi&gt;n&lt;/mi&gt;&lt;mi&gt;c&lt;/mi&gt;&lt;mi&gt;y&lt;/mi&gt;&lt;/mrow&gt;&lt;/msub&gt;&lt;mo&gt;+&lt;/mo&gt;&lt;msub&gt;&lt;mi&gt;s&lt;/mi&gt;&lt;mrow&gt;&lt;mi&gt;r&lt;/mi&gt;&lt;mi&gt;e&lt;/mi&gt;&lt;mi&gt;l&lt;/mi&gt;&lt;mi&gt;i&lt;/mi&gt;&lt;mi&gt;a&lt;/mi&gt;&lt;mi&gt;b&lt;/mi&gt;&lt;mi&gt;i&lt;/mi&gt;&lt;mi&gt;l&lt;/mi&gt;&lt;mi&gt;i&lt;/mi&gt;&lt;mi&gt;t&lt;/mi&gt;&lt;mi&gt;y&lt;/mi&gt;&lt;/mrow&gt;&lt;/msub&gt;&lt;mo&gt;+&lt;/mo&gt;&lt;msub&gt;&lt;mi&gt;s&lt;/mi&gt;&lt;mrow&gt;&lt;mi&gt;v&lt;/mi&gt;&lt;mi&gt;o&lt;/mi&gt;&lt;mi&gt;l&lt;/mi&gt;&lt;mi&gt;a&lt;/mi&gt;&lt;mi&gt;t&lt;/mi&gt;&lt;mi&gt;i&lt;/mi&gt;&lt;mi&gt;l&lt;/mi&gt;&lt;mi&gt;i&lt;/mi&gt;&lt;mi&gt;t&lt;/mi&gt;&lt;mi&gt;y&lt;/mi&gt;&lt;/mrow&gt;&lt;/msub&gt;&lt;/mrow&gt;&lt;mn&gt;7&lt;/mn&gt;&lt;/mfrac&gt;&lt;/mrow&gt;&lt;annotation encoding="application/x-tex"&gt;A(t)= \frac{ s_{spread}+s_{fee}+s_{slippage}+s_{liquidity}+s_{latency}+s_{reliability}+s_{volatility} }{7}&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;For example, if the normalized signals are:&lt;/p&gt;&lt;p&gt;&lt;span class="katex"&gt;&lt;math display="block" xmlns="http://www.w3.org/1998/Math/MathML"&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mo stretchy="false"&gt;[&lt;/mo&gt;&lt;mn&gt;0.9&lt;/mn&gt;&lt;mo separator="true"&gt;,&lt;/mo&gt;&lt;mn&gt;0.8&lt;/mn&gt;&lt;mo separator="true"&gt;,&lt;/mo&gt;&lt;mn&gt;0.7&lt;/mn&gt;&lt;mo separator="true"&gt;,&lt;/mo&gt;&lt;mn&gt;0.85&lt;/mn&gt;&lt;mo separator="true"&gt;,&lt;/mo&gt;&lt;mn&gt;0.6&lt;/mn&gt;&lt;mo separator="true"&gt;,&lt;/mo&gt;&lt;mn&gt;0.9&lt;/mn&gt;&lt;mo separator="true"&gt;,&lt;/mo&gt;&lt;mn&gt;0.75&lt;/mn&gt;&lt;mo stretchy="false"&gt;]&lt;/mo&gt;&lt;/mrow&gt;&lt;annotation encoding="application/x-tex"&gt;[0.9,0.8,0.7,0.85,0.6,0.9,0.75]&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;then:&lt;/p&gt;&lt;p&gt;&lt;span class="katex"&gt;&lt;math display="block" xmlns="http://www.w3.org/1998/Math/MathML"&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;A&lt;/mi&gt;&lt;mo stretchy="false"&gt;(&lt;/mo&gt;&lt;mi&gt;t&lt;/mi&gt;&lt;mo stretchy="false"&gt;)&lt;/mo&gt;&lt;mo&gt;=&lt;/mo&gt;&lt;mn&gt;0.786&lt;/mn&gt;&lt;/mrow&gt;&lt;annotation encoding="application/x-tex"&gt;A(t)=0.786&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;You could define:&lt;/p&gt;&lt;p&gt;&lt;span class="katex"&gt;&lt;math display="block" xmlns="http://www.w3.org/1998/Math/MathML"&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;menclose notation="box"&gt;&lt;mstyle displaystyle="false" scriptlevel="0"&gt;&lt;mstyle displaystyle="false" scriptlevel="0"&gt;&lt;mstyle displaystyle="true" scriptlevel="0"&gt;&lt;mrow&gt;&lt;mtext&gt;Execute if&amp;nbsp;&lt;/mtext&gt;&lt;msub&gt;&lt;mi&gt;P&lt;/mi&gt;&lt;mtext&gt;net&lt;/mtext&gt;&lt;/msub&gt;&lt;mo&gt;&amp;gt;&lt;/mo&gt;&lt;mn&gt;0&lt;/mn&gt;&lt;mtext&gt;&amp;nbsp;AND&amp;nbsp;&lt;/mtext&gt;&lt;mi&gt;A&lt;/mi&gt;&lt;mo stretchy="false"&gt;(&lt;/mo&gt;&lt;mi&gt;t&lt;/mi&gt;&lt;mo stretchy="false"&gt;)&lt;/mo&gt;&lt;mo&gt;&amp;gt;&lt;/mo&gt;&lt;mn&gt;0.75&lt;/mn&gt;&lt;/mrow&gt;&lt;/mstyle&gt;&lt;/mstyle&gt;&lt;/mstyle&gt;&lt;/menclose&gt;&lt;/mrow&gt;&lt;annotation encoding="application/x-tex"&gt;\boxed{\text{Execute if } P_{\text{net}}&amp;gt;0 \text{ AND } A(t)&amp;gt;0.75}&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;This becomes much more interesting when you're thinking about an actual AI/ML arbitrage system: the 7-signal surface can become a dynamic execution score, while the deterministic pricing equation guarantees that you don't execute trades where fees, slippage and latency eliminate the arbitrage.&lt;/p&gt;&lt;p&gt;You can find the full Kaggle notebook &lt;a href="https://www.kaggle.com/code/dhirajpatra/crypto-cross-exchange-arbitrage-r" target="_blank"&gt;here&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;Open Source Open Mind&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEif9kyDo-_RNla1JdxBZZgIfX-_DWyvx0IaZBuOWn2QA8ECbI6W9Z7rf_zhy61Vo2AI2HyQAb0IpxBgUz5-AOY6QyPUUYe_TIGyUu2Dg2ht7zErN27jlUXyENgUF0uxq8LruklJB6P0f3A1KE-Ecu92IcDfqs6t6hFubAsBFgeZASNgcPBUG8R0IP_9kq0J/s72-w579-h259-c/Screenshot%20from%202026-09-12%2016-55-17.png" width="72"/><author>dhiraj.patra@gmail.com (dhiraj patra)</author></item><item><title>Step-by-step Master Guide for Building Features with AI Coding Agents</title><link>http://dhirajpatra.blogspot.com/2026/09/step-by-step-master-guide-for-building.html</link><category>agent</category><category>ai</category><category>coding</category><pubDate>Fri, 11 Sep 2026 09:37:51 -0700</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8993867651193907565.post-6481206946304187590</guid><description>&lt;div _ngcontent-ng-c2292009011="" aria-busy="false" aria-live="polite" class="markdown markdown-main-panel md-content enable-luminous-fast-follows enable-updated-hr-color stronger tutor-markdown-rendering" dir="ltr" id="model-response-message-contentr_b97fda2ded6265a5" inline-copy-host="" style="--animation-duration: 400ms; --fade-animation-function: ease-out; animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; color: #1f1f1f; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Here is your step-by-step master guide for building features with AI coding agents before you start a coding project or feature using AI assistance (like GitHub Copilot, Claude Code, or AWS Q Developer).&lt;/div&gt;&lt;br /&gt;&lt;h3 data-path-to-node="2" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Phase 1: Structuring the Repository for Maximum AI Context&lt;/h3&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Before writing a single line of code, the AI agent needs a clean environment to "understand" your system architecture.&lt;/div&gt;&lt;br /&gt;&lt;ul data-path-to-node="4" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding-inline-start: 32px; padding: 0px 0px 0px 3.36px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;b data-index-in-node="0" data-path-to-node="4,0,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;1. Establish an AI Rules File (&lt;code data-index-in-node="31" data-path-to-node="4,0,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(242, 240, 240); border: 0px rgba(0, 0, 0, 0.55); clear: none; clip: auto; color: rgba(0, 0, 0, 0.55); columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline-block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 15px; font-stretch: normal; font-variant: normal; font-variation-settings: normal; font-weight: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgba(0, 0, 0, 0.55) none 3px; overlay: none; padding: 4px 6px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgba(0, 0, 0, 0.55); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;.cursorrules&lt;/code&gt; or &lt;code data-index-in-node="47" data-path-to-node="4,0,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(242, 240, 240); border: 0px rgba(0, 0, 0, 0.55); clear: none; clip: auto; color: rgba(0, 0, 0, 0.55); columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline-block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 15px; font-stretch: normal; font-variant: normal; font-variation-settings: normal; font-weight: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgba(0, 0, 0, 0.55) none 3px; overlay: none; padding: 4px 6px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgba(0, 0, 0, 0.55); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;CLAUDE.md&lt;/code&gt;)&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;ul data-path-to-node="4,0,1" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding-inline-start: 32px; padding: 0px 0px 0px 3.36px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Place a context rule file in the root of the repository.&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Define architectural constraints, coding standards, language versions, and testing requirements.&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;i data-index-in-node="0" data-path-to-node="4,0,1,2,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Example:&lt;/i&gt; Specify "Python 3.12, strict type hints, Pydantic v2 for schema validation, Pytest for unit tests, no raw SQL (use SQLAlchemy ORM)."&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;b data-index-in-node="0" data-path-to-node="4,1,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;2. Implement a Modular, Clean-Architecture Folder Structure&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;ul data-path-to-node="4,1,1" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding-inline-start: 32px; padding: 0px 0px 0px 3.36px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Keep directory structures predictable so the AI agent doesn't hallucinate paths or mix concerns:&lt;/div&gt;&lt;br /&gt;&lt;ul data-path-to-node="4,1,1,0,1" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding-inline-start: 32px; padding: 0px 0px 0px 3.36px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;code data-index-in-node="0" data-path-to-node="4,1,1,0,1,0,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(242, 240, 240); border: 0px rgba(0, 0, 0, 0.55); clear: none; clip: auto; color: rgba(0, 0, 0, 0.55); columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline-block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 15px; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgba(0, 0, 0, 0.55) none 3px; overlay: none; padding: 4px 6px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgba(0, 0, 0, 0.55); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;/src/domain/&lt;/code&gt; (Data models, schemas, entities)&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;code data-index-in-node="0" data-path-to-node="4,1,1,0,1,1,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(242, 240, 240); border: 0px rgba(0, 0, 0, 0.55); clear: none; clip: auto; color: rgba(0, 0, 0, 0.55); columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline-block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 15px; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgba(0, 0, 0, 0.55) none 3px; overlay: none; padding: 4px 6px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgba(0, 0, 0, 0.55); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;/src/services/&lt;/code&gt; (Business logic, orchestration)&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;code data-index-in-node="0" data-path-to-node="4,1,1,0,1,2,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(242, 240, 240); border: 0px rgba(0, 0, 0, 0.55); clear: none; clip: auto; color: rgba(0, 0, 0, 0.55); columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline-block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 15px; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgba(0, 0, 0, 0.55) none 3px; overlay: none; padding: 4px 6px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgba(0, 0, 0, 0.55); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;/src/adapters/&lt;/code&gt; (Database, API clients, S3 connectors)&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;code data-index-in-node="0" data-path-to-node="4,1,1,0,1,3,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(242, 240, 240); border: 0px rgba(0, 0, 0, 0.55); clear: none; clip: auto; color: rgba(0, 0, 0, 0.55); columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline-block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 15px; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgba(0, 0, 0, 0.55) none 3px; overlay: none; padding: 4px 6px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgba(0, 0, 0, 0.55); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;/tests/&lt;/code&gt; (Unit and integration test suites)&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;b data-index-in-node="0" data-path-to-node="4,2,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;3. Provide In-Repo Sample Patterns (Few-Shot Prompting via Code)&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;ul data-path-to-node="4,2,1" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding-inline-start: 32px; padding: 0px 0px 0px 3.36px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;AI agents copy existing styles. If you have one well-written adapter or service with clean error handling and docstrings, the agent will mirror that exact quality for new features.&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-path-to-node="6" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Phase 2: Prompting Strategies That Produce Superior Code&lt;/h3&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;When working with AI coding tools during an interview or production sprint, vague prompts yield poor code. Use these proven prompting patterns:&lt;/div&gt;&lt;br /&gt;&lt;ul data-path-to-node="8" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding-inline-start: 32px; padding: 0px 0px 0px 3.36px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;b data-index-in-node="0" data-path-to-node="8,0,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Strategy 1: Spec-First / Test-Driven Prompting (TDD)&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;ul data-path-to-node="8,0,1" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding-inline-start: 32px; padding: 0px 0px 0px 3.36px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;i data-index-in-node="0" data-path-to-node="8,0,1,0,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Prompt Pattern:&lt;/i&gt; Do not ask the agent to write the feature code first. Prompt it to write the &lt;b data-index-in-node="93" data-path-to-node="8,0,1,0,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;type definitions&lt;/b&gt; and &lt;b data-index-in-node="114" data-path-to-node="8,0,1,0,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;unit tests&lt;/b&gt; based on your functional spec.&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;i data-index-in-node="0" data-path-to-node="8,0,1,1,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Why it works:&lt;/i&gt; Once the AI generated tests pass or fail against defined types, it has a rigid boundary to implement the business logic correctly.&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;b data-index-in-node="0" data-path-to-node="8,1,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Strategy 2: The "Chain-of-Thought with Architecture Constraints" Strategy&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;ul data-path-to-node="8,1,1" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding-inline-start: 32px; padding: 0px 0px 0px 3.36px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;i data-index-in-node="0" data-path-to-node="8,1,1,0,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Prompt Pattern:&lt;/i&gt; "Explain your technical approach in 3 bullet points before generating code. Ensure you address concurrency limits and input validation using Pydantic."&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;i data-index-in-node="0" data-path-to-node="8,1,1,1,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Why it works:&lt;/i&gt; Forces the agent to reason about edge cases before committing to a code syntax tree.&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;b data-index-in-node="0" data-path-to-node="8,2,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Strategy 3: Context-Slicing via File Tagging&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;ul data-path-to-node="8,2,1" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding-inline-start: 32px; padding: 0px 0px 0px 3.36px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Avoid attaching the entire codebase to a prompt context window. Tag only the specific interface, database model, and relevant test file (e.g., &lt;code data-index-in-node="143" data-path-to-node="8,2,1,0,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(242, 240, 240); border: 0px rgba(0, 0, 0, 0.55); clear: none; clip: auto; color: rgba(0, 0, 0, 0.55); columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline-block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 15px; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgba(0, 0, 0, 0.55) none 3px; overlay: none; padding: 4px 6px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgba(0, 0, 0, 0.55); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;@models.py @service.py&lt;/code&gt;).&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-path-to-node="10" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Phase 3: Step-by-Step Scenario Walkthrough eg.&lt;/h3&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;b data-index-in-node="0" data-path-to-node="11" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Scenario:&lt;/b&gt; &lt;i data-index-in-node="10" data-path-to-node="11" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;When you start to use an AI Coding Agent to build a resilient, rate-limited telemetry ingestion module that writes valid metrics to an S3-compatible store and handles bad payloads via a Dead Letter Queue (DLQ).&lt;/i&gt;&lt;/div&gt;&lt;br /&gt;&lt;h4 data-path-to-node="12" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;b data-index-in-node="0" data-path-to-node="12" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Step 1: Define the Blueprint (Human Strategy &amp;amp; Spec)&lt;/b&gt;&lt;/h4&gt;&lt;ul data-path-to-node="13" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding-inline-start: 32px; padding: 0px 0px 0px 3.36px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;i data-index-in-node="14" data-path-to-node="13,1,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;First, create the input contract using Pydantic, define an abstract interface for storage, write unit tests for valid and malformed payloads, and then prompt the AI agent to implement the service logic.&lt;/i&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h4 data-path-to-node="14" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;b data-index-in-node="0" data-path-to-node="14" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Step 2: Prompt for Type Schemas &amp;amp; Contracts&lt;/b&gt;&lt;/h4&gt;&lt;ul data-path-to-node="15" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding-inline-start: 32px; padding: 0px 0px 0px 3.36px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;b data-index-in-node="0" data-path-to-node="15,0,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Prompt to AI:&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;blockquote data-path-to-node="15,0,1" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 17px; margin-left: 7.5px; margin-right: 40px; margin-top: 0px !important; margin: 0px 40px 17px 7.5px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 32.5px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;i data-index-in-node="0" data-path-to-node="15,0,1,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;"Generate a Pydantic v2 model named &lt;code data-index-in-node="36" data-path-to-node="15,0,1,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(242, 240, 240); border: 0px rgba(0, 0, 0, 0.55); clear: none; clip: auto; color: rgba(0, 0, 0, 0.55); columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline-block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 15px; font-stretch: normal; font-style: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgba(0, 0, 0, 0.55) none 3px; overlay: none; padding: 4px 6px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgba(0, 0, 0, 0.55); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;TelemetryMetric&lt;/code&gt; containing &lt;code data-index-in-node="63" data-path-to-node="15,0,1,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(242, 240, 240); border: 0px rgba(0, 0, 0, 0.55); clear: none; clip: auto; color: rgba(0, 0, 0, 0.55); columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline-block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 15px; font-stretch: normal; font-style: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgba(0, 0, 0, 0.55) none 3px; overlay: none; padding: 4px 6px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgba(0, 0, 0, 0.55); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;device_id&lt;/code&gt; (str), &lt;code data-index-in-node="80" data-path-to-node="15,0,1,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(242, 240, 240); border: 0px rgba(0, 0, 0, 0.55); clear: none; clip: auto; color: rgba(0, 0, 0, 0.55); columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline-block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 15px; font-stretch: normal; font-style: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgba(0, 0, 0, 0.55) none 3px; overlay: none; padding: 4px 6px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgba(0, 0, 0, 0.55); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;timestamp&lt;/code&gt; (float), &lt;code data-index-in-node="99" data-path-to-node="15,0,1,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(242, 240, 240); border: 0px rgba(0, 0, 0, 0.55); clear: none; clip: auto; color: rgba(0, 0, 0, 0.55); columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline-block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 15px; font-stretch: normal; font-style: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgba(0, 0, 0, 0.55) none 3px; overlay: none; padding: 4px 6px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgba(0, 0, 0, 0.55); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;metric_name&lt;/code&gt; (str), and &lt;code data-index-in-node="122" data-path-to-node="15,0,1,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(242, 240, 240); border: 0px rgba(0, 0, 0, 0.55); clear: none; clip: auto; color: rgba(0, 0, 0, 0.55); columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline-block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 15px; font-stretch: normal; font-style: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgba(0, 0, 0, 0.55) none 3px; overlay: none; padding: 4px 6px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgba(0, 0, 0, 0.55); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;value&lt;/code&gt; (float). Add validation ensuring &lt;code data-index-in-node="161" data-path-to-node="15,0,1,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(242, 240, 240); border: 0px rgba(0, 0, 0, 0.55); clear: none; clip: auto; color: rgba(0, 0, 0, 0.55); columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline-block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 15px; font-stretch: normal; font-style: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgba(0, 0, 0, 0.55) none 3px; overlay: none; padding: 4px 6px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgba(0, 0, 0, 0.55); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;value&lt;/code&gt; is non-negative and &lt;code data-index-in-node="187" data-path-to-node="15,0,1,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(242, 240, 240); border: 0px rgba(0, 0, 0, 0.55); clear: none; clip: auto; color: rgba(0, 0, 0, 0.55); columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline-block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 15px; font-stretch: normal; font-style: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgba(0, 0, 0, 0.55) none 3px; overlay: none; padding: 4px 6px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgba(0, 0, 0, 0.55); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;device_id&lt;/code&gt; matches regex &lt;code data-index-in-node="211" data-path-to-node="15,0,1,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(242, 240, 240); border: 0px rgba(0, 0, 0, 0.55); clear: none; clip: auto; color: rgba(0, 0, 0, 0.55); columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline-block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 15px; font-stretch: normal; font-style: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgba(0, 0, 0, 0.55) none 3px; overlay: none; padding: 4px 6px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgba(0, 0, 0, 0.55); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;^[a-zA-Z0-9-]+$&lt;/code&gt;."&lt;/i&gt;&lt;/div&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;/li&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;b data-index-in-node="0" data-path-to-node="15,1,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Human Review:&lt;/b&gt; Verify the generated model. Ensure types match expectations.&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h4 data-path-to-node="16" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;b data-index-in-node="0" data-path-to-node="16" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Step 3: Prompt for Test-Driven Development (TDD)&lt;/b&gt;&lt;/h4&gt;&lt;ul data-path-to-node="17" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding-inline-start: 32px; padding: 0px 0px 0px 3.36px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;b data-index-in-node="0" data-path-to-node="17,0,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Prompt to AI:&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;blockquote data-path-to-node="17,0,1" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 17px; margin-left: 7.5px; margin-right: 40px; margin-top: 0px !important; margin: 0px 40px 17px 7.5px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 32.5px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;i data-index-in-node="0" data-path-to-node="17,0,1,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;"Write a Pytest suite for a class &lt;code data-index-in-node="34" data-path-to-node="17,0,1,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(242, 240, 240); border: 0px rgba(0, 0, 0, 0.55); clear: none; clip: auto; color: rgba(0, 0, 0, 0.55); columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline-block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 15px; font-stretch: normal; font-style: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgba(0, 0, 0, 0.55) none 3px; overlay: none; padding: 4px 6px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgba(0, 0, 0, 0.55); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;TelemetryIngestor&lt;/code&gt;. Write test cases for: 1) Valid payload processing, 2) Malformed JSON/schema validation failure sending payload to DLQ, and 3) Duplicate timestamp deduplication."&lt;/i&gt;&lt;/div&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;/li&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;b data-index-in-node="0" data-path-to-node="17,1,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Human Review:&lt;/b&gt; Check if the unit tests cover edge cases (e.g., boundary values, network exceptions).&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h4 data-path-to-node="18" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;b data-index-in-node="0" data-path-to-node="18" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Step 4: Implement Service Logic via Iterative AI Prompting&lt;/b&gt;&lt;/h4&gt;&lt;ul data-path-to-node="19" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding-inline-start: 32px; padding: 0px 0px 0px 3.36px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;b data-index-in-node="0" data-path-to-node="19,0,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Prompt to AI:&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;blockquote data-path-to-node="19,0,1" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 17px; margin-left: 7.5px; margin-right: 40px; margin-top: 0px !important; margin: 0px 40px 17px 7.5px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 32.5px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;i data-index-in-node="0" data-path-to-node="19,0,1,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;"Implement &lt;code data-index-in-node="11" data-path-to-node="19,0,1,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(242, 240, 240); border: 0px rgba(0, 0, 0, 0.55); clear: none; clip: auto; color: rgba(0, 0, 0, 0.55); columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline-block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 15px; font-stretch: normal; font-style: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgba(0, 0, 0, 0.55) none 3px; overlay: none; padding: 4px 6px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgba(0, 0, 0, 0.55); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;TelemetryIngestor&lt;/code&gt; using the &lt;code data-index-in-node="39" data-path-to-node="19,0,1,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(242, 240, 240); border: 0px rgba(0, 0, 0, 0.55); clear: none; clip: auto; color: rgba(0, 0, 0, 0.55); columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline-block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 15px; font-stretch: normal; font-style: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgba(0, 0, 0, 0.55) none 3px; overlay: none; padding: 4px 6px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgba(0, 0, 0, 0.55); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;TelemetryMetric&lt;/code&gt; schema. Implement an in-memory batching mechanism that triggers a flush every 5 items or 10 seconds. Use Python structured logging. Refer to test constraints."&lt;/i&gt;&lt;/div&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;/li&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;b data-index-in-node="0" data-path-to-node="19,1,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Execution:&lt;/b&gt; Run the tests using the terminal tool. If tests fail, feed the stack trace back to the AI agent: &lt;i data-index-in-node="108" data-path-to-node="19,1,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;"Tests failed with error X. Fix the bug in &lt;code data-index-in-node="151" data-path-to-node="19,1,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(242, 240, 240); border: 0px rgba(0, 0, 0, 0.55); clear: none; clip: auto; color: rgba(0, 0, 0, 0.55); columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline-block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 15px; font-stretch: normal; font-style: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgba(0, 0, 0, 0.55) none 3px; overlay: none; padding: 4px 6px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgba(0, 0, 0, 0.55); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;TelemetryIngestor.flush()&lt;/code&gt;."&lt;/i&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h4 data-path-to-node="20" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;b data-index-in-node="0" data-path-to-node="20" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Step 5: Refactor for Security, Resilience, and AWS Best Practices&lt;/b&gt;&lt;/h4&gt;&lt;ul data-path-to-node="21" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding-inline-start: 32px; padding: 0px 0px 0px 3.36px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;b data-index-in-node="0" data-path-to-node="21,0,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Prompt to AI:&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;blockquote data-path-to-node="21,0,1" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 17px; margin-left: 7.5px; margin-right: 40px; margin-top: 0px !important; margin: 0px 40px 17px 7.5px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 32.5px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;i data-index-in-node="0" data-path-to-node="21,0,1,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;"Refactor &lt;code data-index-in-node="10" data-path-to-node="21,0,1,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(242, 240, 240); border: 0px rgba(0, 0, 0, 0.55); clear: none; clip: auto; color: rgba(0, 0, 0, 0.55); columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline-block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 15px; font-stretch: normal; font-style: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgba(0, 0, 0, 0.55) none 3px; overlay: none; padding: 4px 6px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgba(0, 0, 0, 0.55); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;TelemetryIngestor&lt;/code&gt; to handle thread-safe batch flushing and ensure no sensitive API tokens are logged in plain text."&lt;/i&gt;&lt;/div&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-path-to-node="23" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Phase 4: Where Human Judgment Still Matters&amp;nbsp;&lt;/h3&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;AI agents excel at syntax generation, boilerplate, unit tests, and local refactoring. However, as a &lt;b data-index-in-node="100" data-path-to-node="24" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;programmer&lt;/b&gt;, you must demonstrate where &lt;b data-index-in-node="155" data-path-to-node="24" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Human Judgment&lt;/b&gt; supersedes the AI:&lt;/div&gt;&lt;br /&gt;&lt;ol data-path-to-node="25" start="1" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding-inline-start: 32px; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;b data-index-in-node="0" data-path-to-node="25,0,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Architecture &amp;amp; System Boundaries:&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;ul data-path-to-node="25,0,1" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding-inline-start: 32px; padding: 0px 0px 0px 3.36px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;i data-index-in-node="0" data-path-to-node="25,0,1,0,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;AI limitation:&lt;/i&gt; An AI agent will write whatever code you ask for, even if a monolith/microservice pattern is wrong for the use case.&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;i data-index-in-node="0" data-path-to-node="25,0,1,1,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Human role:&lt;/i&gt; Deciding &lt;i data-index-in-node="21" data-path-to-node="25,0,1,1,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;where&lt;/i&gt; compute should run (e.g., Lambda vs. EKS), how data flows, and defining state boundaries.&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;b data-index-in-node="0" data-path-to-node="25,1,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Security &amp;amp; Zero Trust:&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;ul data-path-to-node="25,1,1" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding-inline-start: 32px; padding: 0px 0px 0px 3.36px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;i data-index-in-node="0" data-path-to-node="25,1,1,0,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;AI limitation:&lt;/i&gt; Agents frequently hardcode fallback secrets, disable SSL verification to pass tests quickly, or over-privilege IAM roles.&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;i data-index-in-node="0" data-path-to-node="25,1,1,1,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Human role:&lt;/i&gt; Enforcing least-privilege access, auditing KMS encryption configurations, and preventing data leakage.&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;b data-index-in-node="0" data-path-to-node="25,2,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Cost Optimization (Frugality) &amp;amp; Performance Trade-offs:&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;ul data-path-to-node="25,2,1" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding-inline-start: 32px; padding: 0px 0px 0px 3.36px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;i data-index-in-node="0" data-path-to-node="25,2,1,0,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;AI limitation:&lt;/i&gt; An agent might suggest an expensive polling algorithm or inefficient database query that works locally but fails or burns budget at scale.&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;i data-index-in-node="0" data-path-to-node="25,2,1,1,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Human role:&lt;/i&gt; Evaluating trade-offs like eventual consistency vs. strong consistency, caching layers (ElastiCache/Redis), and batching strategies.&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;b data-index-in-node="0" data-path-to-node="25,3,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Edge-Case Analysis &amp;amp; Real-World Failure Modes:&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;ul data-path-to-node="25,3,1" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding-inline-start: 32px; padding: 0px 0px 0px 3.36px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;i data-index-in-node="0" data-path-to-node="25,3,1,0,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;AI limitation:&lt;/i&gt; Agents struggle with complex failure modes like network partitions, thundering herd problems, or distributed lock contention.&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;i data-index-in-node="0" data-path-to-node="25,3,1,1,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Human role:&lt;/i&gt; Designing idempotency keys, circuit breakers, and backpressure mechanisms.&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ol&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;h3 data-path-to-node="27" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Summary Checklist for Live Coding with AI Assist&lt;/h3&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;table data-path-to-node="28" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; color: #1f1f1f; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 32px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px 0px 32px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;thead style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;tr style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;td style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 1px solid rgb(196, 199, 197); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 8px 12px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;strong style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px !important; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Phase&lt;/strong&gt;&lt;/td&gt;&lt;td style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 1px solid rgb(196, 199, 197); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 8px 12px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;strong style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px !important; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Human Action&lt;/strong&gt;&lt;/td&gt;&lt;td style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 1px solid rgb(196, 199, 197); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 8px 12px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;strong style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px !important; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;AI Agent Action&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;tr style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;td style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 1px solid rgb(196, 199, 197); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 8px 12px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;span data-path-to-node="28,1,0,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;b data-index-in-node="0" data-path-to-node="28,1,0,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;1. Setup&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;&lt;td style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 1px solid rgb(196, 199, 197); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 8px 12px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;span data-path-to-node="28,1,1,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Set folder structure, define &lt;code data-index-in-node="29" data-path-to-node="28,1,1,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(242, 240, 240); border: 0px rgba(0, 0, 0, 0.55); clear: none; clip: auto; color: rgba(0, 0, 0, 0.55); columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline-block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 15px; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgba(0, 0, 0, 0.55) none 3px; overlay: none; padding: 4px 6px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgba(0, 0, 0, 0.55); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;.cursorrules&lt;/code&gt; / architecture constraints.&lt;/span&gt;&lt;/td&gt;&lt;td style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 1px solid rgb(196, 199, 197); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 8px 12px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;span data-path-to-node="28,1,2,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Context ingestion.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;td style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 1px solid rgb(196, 199, 197); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 8px 12px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;span data-path-to-node="28,2,0,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;b data-index-in-node="0" data-path-to-node="28,2,0,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;2. Spec&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;&lt;td style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 1px solid rgb(196, 199, 197); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 8px 12px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;span data-path-to-node="28,2,1,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Define Pydantic models, API contracts, and edge-case boundaries.&lt;/span&gt;&lt;/td&gt;&lt;td style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 1px solid rgb(196, 199, 197); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 8px 12px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;span data-path-to-node="28,2,2,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Generate data models &amp;amp; schemas.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;td style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 1px solid rgb(196, 199, 197); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 8px 12px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;span data-path-to-node="28,3,0,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;b data-index-in-node="0" data-path-to-node="28,3,0,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;3. Tests&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;&lt;td style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 1px solid rgb(196, 199, 197); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 8px 12px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;span data-path-to-node="28,3,1,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Review test scenarios for completeness.&lt;/span&gt;&lt;/td&gt;&lt;td style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 1px solid rgb(196, 199, 197); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 8px 12px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;span data-path-to-node="28,3,2,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Generate Pytest/JUnit test cases.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;td style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 1px solid rgb(196, 199, 197); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 8px 12px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;span data-path-to-node="28,4,0,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;b data-index-in-node="0" data-path-to-node="28,4,0,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;4. Code&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;&lt;td style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 1px solid rgb(196, 199, 197); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 8px 12px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;span data-path-to-node="28,4,1,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Review code for security flaws, memory leaks, and architectural fit.&lt;/span&gt;&lt;/td&gt;&lt;td style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 1px solid rgb(196, 199, 197); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 8px 12px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;span data-path-to-node="28,4,2,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Generate service logic to pass tests.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;td style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 1px solid rgb(196, 199, 197); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 8px 12px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;span data-path-to-node="28,5,0,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;b data-index-in-node="0" data-path-to-node="28,5,0,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;5. Audit&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;&lt;td style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 1px solid rgb(196, 199, 197); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 8px 12px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;span data-path-to-node="28,5,1,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Perform security audit, IAM check, cost review, and edge-case check.&lt;/span&gt;&lt;/td&gt;&lt;td style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 1px solid rgb(196, 199, 197); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 8px 12px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;span data-path-to-node="28,5,2,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Execute refactoring commands based on human feedback.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;You can find more details about the rule file here&amp;nbsp;https://github.com/PatrickJS/awesome-cursorrules/&lt;div&gt;and&amp;nbsp;https://cursorrules.org/&amp;nbsp;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Open Source Open Mind&lt;/div&gt;</description><author>dhiraj.patra@gmail.com (dhiraj patra)</author></item><item><title>Agentic Banking Assistant — Detailed Production Architecture (Azure, GCP &amp; AWS)</title><link>http://dhirajpatra.blogspot.com/2026/09/agentic-banking-assistant-detailed.html</link><category>agenticai</category><category>architecture</category><category>aws</category><category>azure</category><category>gcp</category><pubDate>Thu, 10 Sep 2026 19:48:58 -0700</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8993867651193907565.post-4390126566009356202</guid><description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgo9SyjECeEOSUi6CbzY7OVDYNaap9qO-XSFsdULrfHZEQL9tVeiHgyyeL-ol_DIgh8Cggp87G8lpRyf2nD-ck2zuut2RLNKKoh_iCDz17OZh014V111H2bFjo0U-BcquIWKxyjZC_yksISarUprNi4wml3ElLS_3PAHldegiMS2J-5UrW-qiaMQkLNMZIc/s1231/Gemini_Generated_Image_tyslwktyslwktysl.png" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="848" data-original-width="1231" height="332" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgo9SyjECeEOSUi6CbzY7OVDYNaap9qO-XSFsdULrfHZEQL9tVeiHgyyeL-ol_DIgh8Cggp87G8lpRyf2nD-ck2zuut2RLNKKoh_iCDz17OZh014V111H2bFjo0U-BcquIWKxyjZC_yksISarUprNi4wml3ElLS_3PAHldegiMS2J-5UrW-qiaMQkLNMZIc/w483-h332/Gemini_Generated_Image_tyslwktyslwktysl.png" width="483" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; gemini ai&lt;/span&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div style="text-align: left;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;b&gt;Source diagram:&lt;/b&gt; Multi-agent GenAI chat platform for a bank — Coordinator Agent orchestrating Accounts / Transaction / Service agents over MCP servers, fronted by an edge/API layer, with observability, cost tracking, PII redaction, agent evaluation, and a session store.&lt;/div&gt;&lt;p&gt;This document maps every box in the diagram to concrete, current (2026) Azure and AWS resources, plus the open-source/framework layer (LangGraph, MCP, evaluation, Neo4j) you'd wire underneath either cloud. Where a component is genuinely cloud-native (e.g., the bank's own IdP, Azure/AWS aren't interchangeable at the same layer), that's called out.&lt;/p&gt;&lt;hr /&gt;&lt;h2&gt;1. Layer-by-Layer Component Map&lt;/h2&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;#&lt;/th&gt;
&lt;th&gt;Diagram component&lt;/th&gt;
&lt;th&gt;Function&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;User Interface (chat)&lt;/td&gt;
&lt;td&gt;Web/mobile chat client for bank customers or staff&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;Edge Layer (WAF, DDoS, Rate Limits, API Gateway)&lt;/td&gt;
&lt;td&gt;Perimeter defense + traffic shaping&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;Authentication (bank's identity provider)&lt;/td&gt;
&lt;td&gt;Federates to the bank's existing IdP (Entra ID, Ping, ForgeRock, etc.)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;API&lt;/td&gt;
&lt;td&gt;Backend-for-frontend / orchestration entry point&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;Authorization&lt;/td&gt;
&lt;td&gt;Fine-grained access decisions (who can ask what, which agent can touch which account)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;Coordinator Agent&lt;/td&gt;
&lt;td&gt;Top-level orchestrator/router agent&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;Accounts / Transaction / Service Agents&lt;/td&gt;
&lt;td&gt;Domain-specialized sub-agents&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;Accounts / Transactions / Service MCP Servers&lt;/td&gt;
&lt;td&gt;Tool-serving layer exposing core banking capabilities via MCP&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;Downstream capabilities (Balance Enquiry, Transaction Details, Statement Request, Change of Address, Cheque Book, KYC update)&lt;/td&gt;
&lt;td&gt;Actual core-banking operations invoked as MCP tools&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;PII Redaction&lt;/td&gt;
&lt;td&gt;Strips/masks sensitive data before it reaches any LLM&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;Self-Hosted LLM / Third-Party LLM&lt;/td&gt;
&lt;td&gt;Inference layer — open-weight model you host + a frontier model API&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;Agent Evaluation Suite&lt;/td&gt;
&lt;td&gt;Offline/online eval, regression testing of agent behavior&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;13&lt;/td&gt;
&lt;td&gt;Observability (prompts, agent calls, tool calls, CPU/memory/disk)&lt;/td&gt;
&lt;td&gt;Full-stack tracing + infra metrics&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;td&gt;Cost Tracker&lt;/td&gt;
&lt;td&gt;Per-agent, per-tenant token/compute cost attribution&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;Session Store (conversation history, inter-agent shared state)&lt;/td&gt;
&lt;td&gt;Durable + low-latency state layer&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;hr /&gt;&lt;h2&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj16XRxZfnZP291JCaev3DQyzPWQVqz2XDWPJ4k8dwYBi6UjDuXWO0UgcolNlXPwgX6iIT4QVtA9j5YJByYmu9s3W6XMmNL8VPwO6ofZ91bxRHYyTU2ge2iSXmhXjl1iJh_ZQ4vofN6ZSD_LAXbbqw0XQdSk-Ud2Q-SktLk0rtzGcTUX-yy5hr4mQJASTwM/s2720/azure_agentic_banking_architecture.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="2320" data-original-width="2720" height="475" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj16XRxZfnZP291JCaev3DQyzPWQVqz2XDWPJ4k8dwYBi6UjDuXWO0UgcolNlXPwgX6iIT4QVtA9j5YJByYmu9s3W6XMmNL8VPwO6ofZ91bxRHYyTU2ge2iSXmhXjl1iJh_ZQ4vofN6ZSD_LAXbbqw0XQdSk-Ud2Q-SktLk0rtzGcTUX-yy5hr4mQJASTwM/w557-h475/azure_agentic_banking_architecture.png" width="557" /&gt;&lt;/a&gt;&lt;/div&gt;&amp;nbsp;&lt;/h2&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNbAo7h1RrKUGbuXaheskF2SHJyi4kJsem_1wim2MDaO-IWAx0NYmsB4S5EEnK7uY2vJMRissBs1EEAE5hncGzRQuMrMCbVnAMCnTzg1cMsvEZRgqAW0_j6dW9TiBdaD6vDkl6i-M0WC52kqX6glZ2YVoJlOPFRYXVrjCh8Ozgkn1H3hoXoacBFQEkUFct/s1536/Azure_architecture_ecommerce.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="1024" data-original-width="1536" height="391" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNbAo7h1RrKUGbuXaheskF2SHJyi4kJsem_1wim2MDaO-IWAx0NYmsB4S5EEnK7uY2vJMRissBs1EEAE5hncGzRQuMrMCbVnAMCnTzg1cMsvEZRgqAW0_j6dW9TiBdaD6vDkl6i-M0WC52kqX6glZ2YVoJlOPFRYXVrjCh8Ozgkn1H3hoXoacBFQEkUFct/w588-h391/Azure_architecture_ecommerce.png" width="588" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;h2&gt;2. Azure Reference Architecture&lt;/h2&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Component&lt;/th&gt;
&lt;th&gt;Primary Azure Resource&lt;/th&gt;
&lt;th&gt;Supporting Resources&lt;/th&gt;
&lt;th&gt;Notes&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Chat UI&lt;/td&gt;
&lt;td&gt;Azure Static Web Apps / App Service (Node/React)&lt;/td&gt;
&lt;td&gt;Azure Front Door (CDN)&lt;/td&gt;
&lt;td&gt;SSR or SPA served via Front Door origin&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Edge Layer&lt;/td&gt;
&lt;td&gt;&lt;b&gt;Azure Front Door Premium&lt;/b&gt; (WAF + DDoS + CDN)&lt;/td&gt;
&lt;td&gt;Azure DDoS Protection (Network layer), Azure API Management (APIM) Premium v2 as the &lt;b&gt;AI Gateway&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;Front Door WAF handles L7/bot/geo-filtering; APIM enforces token-rate-limit policies, quotas, semantic caching, and request/response transformation in front of the LLM and MCP endpoints&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Authentication&lt;/td&gt;
&lt;td&gt;&lt;b&gt;Microsoft Entra ID&lt;/b&gt; (federated to the bank's IdP via SAML/OIDC), Entra External ID if customer-facing&lt;/td&gt;
&lt;td&gt;Entra Conditional Access, Entra ID Protection&lt;/td&gt;
&lt;td&gt;Diagram explicitly shows "bank's identity provider" — Entra acts as the broker/relying party, doing OIDC federation into whatever IdP the bank already runs&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;API&lt;/td&gt;
&lt;td&gt;Azure API Management (same APIM instance, &lt;code&gt;/api&lt;/code&gt; product) or &lt;b&gt;Azure Container Apps&lt;/b&gt; hosting a FastAPI BFF&lt;/td&gt;
&lt;td&gt;Azure Functions for lightweight routes&lt;/td&gt;
&lt;td&gt;APIM is both edge gateway and AI gateway here — one control point&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Authorization&lt;/td&gt;
&lt;td&gt;&lt;b&gt;Microsoft Entra ID + Azure RBAC&lt;/b&gt;, plus fine-grained policy via &lt;b&gt;Azure API Management "validate-jwt" + custom policies&lt;/b&gt;, or externalize to &lt;b&gt;OPA/Cedar sidecar on AKS&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;Entra ID Governance (entitlement management)&lt;/td&gt;
&lt;td&gt;For agent-to-agent delegation and scoped tool access, layer &lt;b&gt;SPIFFE/SPIRE-issued workload identities&lt;/b&gt; or &lt;b&gt;Entra Workload ID&lt;/b&gt; on top so each agent/MCP server has its own verifiable identity, not just a shared service principal&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Coordinator + domain Agents&lt;/td&gt;
&lt;td&gt;&lt;b&gt;Microsoft Foundry Agent Service&lt;/b&gt; (formerly Azure AI Foundry Agent Service) hosting agents defined via the Microsoft Agent Framework, &lt;b&gt;or&lt;/b&gt; self-hosted &lt;b&gt;LangGraph&lt;/b&gt; agents on &lt;b&gt;Azure Kubernetes Service (AKS)&lt;/b&gt; / Azure Container Apps&lt;/td&gt;
&lt;td&gt;Foundry supports "bring your own framework" (LangGraph, Semantic Kernel, AutoGen, CrewAI) if you don't want to rewrite LangGraph agents&lt;/td&gt;
&lt;td&gt;Given your existing LangGraph stack, the pragmatic path is: keep LangGraph as the orchestration code, deploy it on AKS, and register it with Foundry's control plane for governance/observability rather than porting to Foundry's native agent authoring&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MCP Servers (Accounts/Transactions/Service)&lt;/td&gt;
&lt;td&gt;&lt;b&gt;AKS-hosted MCP servers&lt;/b&gt; (containerized, one deployment per domain) exposed internally, or registered in &lt;b&gt;Foundry's 1,400+ tool catalog&lt;/b&gt; as MCP-enabled tools&lt;/td&gt;
&lt;td&gt;Azure API Management can front the MCP endpoints too (MCP-aware policies are shipping in APIM's AI Gateway)&lt;/td&gt;
&lt;td&gt;Each MCP server should carry its own workload identity (Entra Workload ID / SPIFFE SVID) so the Authorization layer can scope tool calls per agent&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Core banking downstream calls&lt;/td&gt;
&lt;td&gt;Azure Logic Apps / Azure Functions as adapters to mainframe or core banking APIs&lt;/td&gt;
&lt;td&gt;Azure Integration Services (Service Bus, Event Grid) for async ops (statement generation, KYC workflow)&lt;/td&gt;
&lt;td&gt;These are the actual "Balance Enquiry / Statement Request / KYC update" leaf nodes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PII Redaction&lt;/td&gt;
&lt;td&gt;&lt;b&gt;Azure AI Language — PII Detection &amp;amp; Document PII Redaction&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;Deployed as an APIM inbound policy step ("mask PII before it reaches the model") using &lt;code&gt;send-request&lt;/code&gt; to call the Language service, splicing redacted text back into the prompt&lt;/td&gt;
&lt;td&gt;This matches the diagram's placement — redaction sits between API and the LLM layer, enforced centrally at the gateway, not per-app&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Self-hosted LLM&lt;/td&gt;
&lt;td&gt;&lt;b&gt;Azure Machine Learning Managed Online Endpoints&lt;/b&gt; or &lt;b&gt;AKS + NVIDIA Triton/vLLM&lt;/b&gt; for open-weight models (Llama, Mistral, Phi)&lt;/td&gt;
&lt;td&gt;Azure Container Registry, GPU node pools (NC/ND-series)&lt;/td&gt;
&lt;td&gt;Foundry Local can also run multimodal open models on-prem/edge with zero cloud connectivity if data residency demands it&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Third-party LLM&lt;/td&gt;
&lt;td&gt;&lt;b&gt;Microsoft Foundry Models catalog&lt;/b&gt; (Azure OpenAI GPT models, Anthropic Claude on Foundry, Meta Llama, Mistral)&lt;/td&gt;
&lt;td&gt;All routed through the APIM AI Gateway for a single metering/policy point&lt;/td&gt;
&lt;td&gt;Claude and other frontier models are now available directly inside Foundry with Azure governance wrapped around them&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Agent Evaluation Suite&lt;/td&gt;
&lt;td&gt;&lt;b&gt;Azure AI Foundry Evaluation&lt;/b&gt; (built-in agent eval: groundedness, relevance, safety, task adherence)&lt;/td&gt;
&lt;td&gt;Complement with open-source &lt;b&gt;Ragas / DeepEval / promptfoo&lt;/b&gt; run as an AKS CronJob against a golden dataset in Blob Storage&lt;/td&gt;
&lt;td&gt;Foundry evaluation integrates directly with Agent Service traces&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Observability&lt;/td&gt;
&lt;td&gt;&lt;b&gt;Azure Monitor + Application Insights&lt;/b&gt; (distributed tracing for prompts/agent/tool calls via OpenTelemetry), &lt;b&gt;Azure Managed Grafana&lt;/b&gt; for dashboards&lt;/td&gt;
&lt;td&gt;Log Analytics workspace, Container Insights for AKS CPU/memory/disk&lt;/td&gt;
&lt;td&gt;Foundry Agent Service emits OTel traces natively into App Insights&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cost Tracker&lt;/td&gt;
&lt;td&gt;&lt;b&gt;Microsoft Cost Management + Billing&lt;/b&gt; (tag-based cost allocation per agent/tenant)&lt;/td&gt;
&lt;td&gt;Custom token-cost dashboard in Grafana/Power BI fed from APIM's token-metering policies + Foundry usage logs&lt;/td&gt;
&lt;td&gt;APIM's &lt;code&gt;llm-token-limit&lt;/code&gt; / &lt;code&gt;azure-openai-token-limit&lt;/code&gt; policies emit per-call token counts you can attribute to a tenant/agent tag&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Session Store&lt;/td&gt;
&lt;td&gt;&lt;b&gt;Azure Cosmos DB&lt;/b&gt; (conversation history, multi-region, low-latency) + &lt;b&gt;Azure Cache for Redis&lt;/b&gt; (hot inter-agent shared state / short-term memory)&lt;/td&gt;
&lt;td&gt;Cosmos DB change feed can drive downstream analytics&lt;/td&gt;
&lt;td&gt;Matches your pattern of Cosmos/Redis for durable + ephemeral state&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Policy/entitlement graph (cross-cutting)&lt;/td&gt;
&lt;td&gt;&lt;b&gt;Neo4j Aura on Azure Marketplace&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;Fits your existing Neo4j Graph RAG and identity-platform-agents work — model agent delegation chains, entitlements, and tool-scoping as a graph&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;hr /&gt;&lt;h2&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZwh4kYT4BFcJZB9ZrWmLk7JdMMvE835l6v2YZrMPk3OKmhGSARkRfFjNnHvbHn56p04jN_yo4rplpGEkRrhrP9d-Rq_t2wrBIts-IzRz3LJePnouX6p-LKSAcsZGCy9Abj0gvpqx1z5WmbDWaPnZOJMzKq55PbnLzthcu5S1-N9pF4gZoWecSLx7bDAdb/s2720/aws_agentic_banking_architecture.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="2320" data-original-width="2720" height="425" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZwh4kYT4BFcJZB9ZrWmLk7JdMMvE835l6v2YZrMPk3OKmhGSARkRfFjNnHvbHn56p04jN_yo4rplpGEkRrhrP9d-Rq_t2wrBIts-IzRz3LJePnouX6p-LKSAcsZGCy9Abj0gvpqx1z5WmbDWaPnZOJMzKq55PbnLzthcu5S1-N9pF4gZoWecSLx7bDAdb/w498-h425/aws_agentic_banking_architecture.png" width="498" /&gt;&lt;/a&gt;&lt;/div&gt;&amp;nbsp;&lt;/h2&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgorOVyQQ3XQtt8HMxfUF_aP29VB8xo5NhuclEr5QVtMZHiLOvCEdFZPIWV7z9qYo3tvsGau4ZJZefgba3crIAR8W3HEYY-gHsJnegX6RJGI76DJdl24_DXDhNAQT0_LWBxRPH4VAZHukZRSplREuky9RztyZeB78Ftj0k1xh-KI2qAFUWrOy9_TnVnMOxB/s1366/AWS_architecture_ecommerce.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="768" data-original-width="1366" height="335" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgorOVyQQ3XQtt8HMxfUF_aP29VB8xo5NhuclEr5QVtMZHiLOvCEdFZPIWV7z9qYo3tvsGau4ZJZefgba3crIAR8W3HEYY-gHsJnegX6RJGI76DJdl24_DXDhNAQT0_LWBxRPH4VAZHukZRSplREuky9RztyZeB78Ftj0k1xh-KI2qAFUWrOy9_TnVnMOxB/w596-h335/AWS_architecture_ecommerce.png" width="596" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;h2&gt;3. AWS Reference Architecture&lt;/h2&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Component&lt;/th&gt;
&lt;th&gt;Primary AWS Resource&lt;/th&gt;
&lt;th&gt;Supporting Resources&lt;/th&gt;
&lt;th&gt;Notes&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Chat UI&lt;/td&gt;
&lt;td&gt;Amazon CloudFront + S3 (static SPA) or AWS Amplify Hosting&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Edge Layer&lt;/td&gt;
&lt;td&gt;&lt;b&gt;AWS Shield Advanced&lt;/b&gt; (DDoS) + &lt;b&gt;AWS WAF&lt;/b&gt; on CloudFront/ALB&lt;/td&gt;
&lt;td&gt;&lt;b&gt;Amazon API Gateway&lt;/b&gt; (REST/HTTP API) for rate limiting, throttling, usage plans&lt;/td&gt;
&lt;td&gt;Shield handles volumetric/L3-L4, WAF handles L7 rules/bot control, API Gateway does per-key throttling and quotas&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Authentication&lt;/td&gt;
&lt;td&gt;Federation into the &lt;b&gt;bank's identity provider&lt;/b&gt; via &lt;b&gt;Amazon Cognito&lt;/b&gt; (as OIDC/SAML broker) or &lt;b&gt;AWS IAM Identity Center&lt;/b&gt; for workforce-facing use&lt;/td&gt;
&lt;td&gt;Cognito User/Identity Pools&lt;/td&gt;
&lt;td&gt;Cognito plays the same "broker" role Entra plays on Azure — federates to whatever IdP the bank runs&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;API&lt;/td&gt;
&lt;td&gt;Amazon API Gateway → &lt;b&gt;AWS Lambda&lt;/b&gt; (BFF) or containerized FastAPI on &lt;b&gt;Amazon ECS/Fargate&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;AWS AppSync if GraphQL is preferred&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Authorization&lt;/td&gt;
&lt;td&gt;&lt;b&gt;AWS IAM&lt;/b&gt; + &lt;b&gt;Amazon Verified Permissions (Cedar policy engine)&lt;/b&gt; for fine-grained, per-resource authorization&lt;/td&gt;
&lt;td&gt;Cognito authorizers on API Gateway&lt;/td&gt;
&lt;td&gt;Bedrock AgentCore's own Policy component is &lt;b&gt;Cedar-based&lt;/b&gt; — using Verified Permissions keeps your policy language consistent from edge to agent-to-tool calls. Layer SPIFFE/SPIRE or AgentCore Identity for per-agent workload identity&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Coordinator + domain Agents&lt;/td&gt;
&lt;td&gt;&lt;b&gt;Amazon Bedrock AgentCore Runtime&lt;/b&gt; hosting your &lt;b&gt;LangGraph&lt;/b&gt; (or Strands Agents) coordinator + sub-agents as serverless, auto-scaling microVM-isolated endpoints&lt;/td&gt;
&lt;td&gt;AgentCore natively supports LangGraph, CrewAI, Strands, and raw Python agents — no rewrite needed&lt;/td&gt;
&lt;td&gt;Each user session runs in an isolated microVM; this is a clean fit for a regulated banking workload needing per-session isolation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MCP Servers (Accounts/Transactions/Service)&lt;/td&gt;
&lt;td&gt;&lt;b&gt;Amazon Bedrock AgentCore Gateway&lt;/b&gt; — converts existing APIs/Lambda functions into MCP-compatible tools with a single managed MCP endpoint&lt;/td&gt;
&lt;td&gt;AgentCore Runtime can also directly host stateful MCP servers (elicitation, sampling, progress notifications)&lt;/td&gt;
&lt;td&gt;Gateway also does &lt;b&gt;semantic tool search&lt;/b&gt;, returning only 10–15 relevant tools instead of dumping your whole API surface into the agent's context — useful once you have Balance/Statement/KYC/Address/Cheque-book as dozens of underlying operations&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Core banking downstream calls&lt;/td&gt;
&lt;td&gt;&lt;b&gt;AWS Lambda&lt;/b&gt; adapters to core banking / mainframe APIs, exposed as Gateway tools&lt;/td&gt;
&lt;td&gt;Amazon EventBridge / SQS for async KYC/statement workflows&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PII Redaction&lt;/td&gt;
&lt;td&gt;&lt;b&gt;Amazon Comprehend — PII detection &amp;amp; redaction&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;Invoked from API Gateway (via Lambda authorizer/integration) or from the AgentCore Gateway as a pre-processing tool step before any prompt hits Bedrock&lt;/td&gt;
&lt;td&gt;Same "chokepoint" pattern as Azure: mask centrally, once, before the model sees the payload&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Self-hosted LLM&lt;/td&gt;
&lt;td&gt;&lt;b&gt;Amazon SageMaker Endpoints&lt;/b&gt; (real-time inference) or &lt;b&gt;Amazon EKS + vLLM/Triton on G5/P5 GPU instances&lt;/b&gt; for open-weight models&lt;/td&gt;
&lt;td&gt;ECR for container images&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Third-party LLM&lt;/td&gt;
&lt;td&gt;&lt;b&gt;Amazon Bedrock&lt;/b&gt; (Anthropic Claude, Meta Llama, Mistral, Amazon Nova, and others) via a single unified API&lt;/td&gt;
&lt;td&gt;Bedrock Guardrails for content safety at the model layer&lt;/td&gt;
&lt;td&gt;Bedrock is the direct analog of Foundry Models — one managed multi-provider model catalog&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Agent Evaluation Suite&lt;/td&gt;
&lt;td&gt;&lt;b&gt;Bedrock AgentCore Evaluation&lt;/b&gt; / &lt;b&gt;Bedrock Agent Evaluation (RAGAS-based)&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;Open-source Ragas/DeepEval as scheduled Fargate tasks against a golden set in S3&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Observability&lt;/td&gt;
&lt;td&gt;&lt;b&gt;AWS X-Ray&lt;/b&gt; (distributed tracing) + &lt;b&gt;Amazon CloudWatch&lt;/b&gt; (logs/metrics/dashboards)&lt;/td&gt;
&lt;td&gt;AgentCore emits OpenTelemetry traces to X-Ray/CloudWatch with minimal instrumentation&lt;/td&gt;
&lt;td&gt;Container Insights on ECS/EKS for CPU/memory/disk&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cost Tracker&lt;/td&gt;
&lt;td&gt;&lt;b&gt;AWS Cost Explorer + Cost Allocation Tags&lt;/b&gt; (per-agent, per-tenant tagging via AgentCore Runtime/Gateway tags)&lt;/td&gt;
&lt;td&gt;Custom QuickSight dashboard fed from Bedrock's per-invocation token usage in CloudWatch&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Session Store&lt;/td&gt;
&lt;td&gt;&lt;b&gt;Amazon DynamoDB&lt;/b&gt; (conversation history, single-digit-ms latency, global tables for multi-region) + &lt;b&gt;Amazon ElastiCache (Redis/Valkey)&lt;/b&gt; for hot inter-agent state&lt;/td&gt;
&lt;td&gt;AgentCore Memory (built-in short-term session + long-term semantic memory) can replace a chunk of this custom wiring&lt;/td&gt;
&lt;td&gt;AgentCore Memory is purpose-built for exactly this box in the diagram — worth evaluating before building your own Dynamo/Redis layer&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Policy/entitlement graph (cross-cutting)&lt;/td&gt;
&lt;td&gt;&lt;b&gt;Neo4j Aura on AWS Marketplace&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;Same graph-based entitlement/delegation model as the Azure side&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;hr /&gt;&lt;h2&gt;4. Cross-Cutting Concerns (apply to both clouds)&lt;/h2&gt;&lt;p&gt;&lt;b&gt;Agent identity, not just user identity.&lt;/b&gt; The diagram's Authentication box covers the human/session identity; in a multi-agent system you also need workload identity for the Coordinator, each sub-agent, and each MCP server, so Authorization can answer "can &lt;i&gt;this agent&lt;/i&gt; call &lt;i&gt;this tool&lt;/i&gt; on behalf of &lt;i&gt;this user&lt;/i&gt;." This lines up directly with your identity-platform-agents work — SPIFFE/SPIRE for cryptographic workload identity, IETF AIMS-style agent identity metadata, and OAuth 2.1 token exchange (on-behalf-of) for delegation chains. AWS AgentCore Identity and Azure Entra Workload ID both give you a managed starting point; SPIFFE/SPIRE sits underneath either as the portable, cloud-neutral root of trust if multi-cloud/hybrid is a long-term goal.&lt;/p&gt;&lt;p&gt;&lt;b&gt;PII redaction placement.&lt;/b&gt; Both clouds push you toward the same pattern the diagram shows: redact centrally at the gateway (APIM policy on Azure, API Gateway/AgentCore Gateway step on AWS), not inside each agent. This gives one auditable chokepoint for regulators.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Evaluation as a gate, not just a dashboard.&lt;/b&gt; Wire the Agent Evaluation Suite into CI/CD for agent prompt/tool changes — both Foundry Evaluation and Bedrock AgentCore Evaluation support automated regression runs; block deploys on groundedness/safety score drops given the KYC/account-data surface here.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Data residency &amp;amp; compliance.&lt;/b&gt; For a bank, confirm region pinning for the Session Store, PII redaction service, and any self-hosted LLM (RBI/data-localization rules if this is an India-domiciled bank, given your India context) — Azure Front Door/Cosmos DB and AWS's India regions (Mumbai/Hyderabad) both support in-country residency; Foundry Local / on-prem vLLM are your fallback if a model must never leave the data center.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Cost tracker granularity.&lt;/b&gt; Tag every agent invocation and MCP tool call with &lt;code&gt;tenant_id&lt;/code&gt; + &lt;code&gt;agent_name&lt;/code&gt; + &lt;code&gt;conversation_id&lt;/code&gt; at the gateway layer (APIM policy / AgentCore Gateway tag) — retrofitting this after launch is painful; both cost tools above are only as good as the tags you emit.&lt;/p&gt;&lt;hr /&gt;&lt;h2&gt;5. Suggested Deployment Topology (either cloud)&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;Internet
  │
  ▼
Edge (WAF + DDoS + CDN)
  │
  ▼
AI Gateway (rate limits, PII redaction, token metering)  ──► Cost Tracker
  │
  ▼
BFF / API  ──► Auth (bank IdP federation) + AuthZ (Cedar/OPA + workload identity)
  │
  ▼
Coordinator Agent (LangGraph on AKS / AgentCore Runtime)
  │
  ├─► Accounts Agent ──► Accounts MCP Server ──► Core Banking (Balance)
  ├─► Transaction Agent ──► Transactions MCP Server ──► Core Banking (Txn Details, Statement)
  └─► Service Agent ──► Service MCP Server ──► Core Banking (Address, Cheque Book, KYC)
  │
  ├─► LLM layer (self-hosted open-weight + Bedrock/Foundry third-party models)
  ├─► Session Store (Cosmos+Redis / DynamoDB+ElastiCache or AgentCore Memory)
  └─► Observability (App Insights+Grafana / X-Ray+CloudWatch) + Agent Evaluation Suite
&lt;/code&gt;&lt;/pre&gt;&lt;hr /&gt;&lt;h2&gt;6. Framework/Tooling Layer (cloud-agnostic, fits your existing stack)&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Orchestration:&lt;/b&gt; LangGraph (already your stack) — deploy as containers on AKS or AgentCore Runtime; both platforms explicitly support bringing your own LangGraph code rather than rewriting into Foundry's or Bedrock's native agent-authoring format.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Tool serving:&lt;/b&gt; MCP servers per domain (Accounts/Transactions/Service), registered either in Foundry's tool catalog or behind AgentCore Gateway's semantic search — both reduce "tool sprawl" once KYC/address/cheque-book/statement operations multiply.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Graph layer:&lt;/b&gt; Neo4j Aura (Azure or AWS Marketplace) for entitlement/delegation graphs and Graph RAG, consistent with rdb2graph and RegulatoryRisk GraphAgent patterns.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Evaluation:&lt;/b&gt; Ragas/DeepEval/promptfoo as the portable open-source layer, with Foundry Evaluation or Bedrock AgentCore Evaluation as the managed complement.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Identity:&lt;/b&gt; SPIFFE/SPIRE as the cloud-neutral workload-identity root, with Entra Workload ID or AgentCore Identity as the cloud-native token issuers on top.&lt;/li&gt;
&lt;/ul&gt;&lt;hr /&gt;&lt;p&gt;

























&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSHMGIHQ1l1mWK0rYzy6RW65t5n2IMXa6W9gKgGooSVgup-ZV7aQQlgjG0MHcoyD9ThBzxdfg2VRHuRnZv5-fK7-AFvEONQI8bNU5l1jaBfXPD7esiaY1AfikqsaIu-wxzUpCQVG8_0B95437yONcvR1x7vWfdbhG_72Z6zx9-yAXN6I2QeUBeEL1KE3Rl/s2720/aws_agentic_banking_architecture.png" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="2320" data-original-width="2720" height="455" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSHMGIHQ1l1mWK0rYzy6RW65t5n2IMXa6W9gKgGooSVgup-ZV7aQQlgjG0MHcoyD9ThBzxdfg2VRHuRnZv5-fK7-AFvEONQI8bNU5l1jaBfXPD7esiaY1AfikqsaIu-wxzUpCQVG8_0B95437yONcvR1x7vWfdbhG_72Z6zx9-yAXN6I2QeUBeEL1KE3Rl/w534-h455/aws_agentic_banking_architecture.png" width="534" /&gt;&lt;/a&gt;&lt;/div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;AWS&amp;nbsp;&lt;div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBevtc0X9RFRVAMbDxoDncNoq0fAZfEgPHFuZtRrziR99MubplDwnN0H3WFeMUF2uGUdAEbyyTAXFs9Q0MaUnOtM0RmtXv8d_c7VvpXm_ZFP62KRJuD8eJvxwjOHeHDTBf7x66vFseRvhDX70FfzqUATVaL6ut_juommQL3gBzijLB82tFLY9wgxmwR1eq/s2720/azure_agentic_banking_architecture.png" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="2320" data-original-width="2720" height="413" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBevtc0X9RFRVAMbDxoDncNoq0fAZfEgPHFuZtRrziR99MubplDwnN0H3WFeMUF2uGUdAEbyyTAXFs9Q0MaUnOtM0RmtXv8d_c7VvpXm_ZFP62KRJuD8eJvxwjOHeHDTBf7x66vFseRvhDX70FfzqUATVaL6ut_juommQL3gBzijLB82tFLY9wgxmwR1eq/w484-h413/azure_agentic_banking_architecture.png" width="484" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;Azure&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;both images generated by Anthropic claude by prompting.&lt;/p&gt;&lt;p&gt;GCP architecture details you can find in my other tutorial posts.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitjxjR6S3qnDZbQDL0xPCxdFeiQBGnjlc6rOZz0Eryfo_yLypb8srVkpGgq9EWSbxj-fleIskJqRosHeVF5VfuqutPMCZfbX6x3IHfHsUrLD7WPDhkjAic5iJSI9K43FWLTtxM5AuSbNDQmhZ_yQx0iEUeY9DP_IYs_FJnN5Sv7xYN1OdKMySm0pq4Sn0N/s1231/Gemini_Generated_Image_tyslwktyslwktysl.png" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="848" data-original-width="1231" height="431" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitjxjR6S3qnDZbQDL0xPCxdFeiQBGnjlc6rOZz0Eryfo_yLypb8srVkpGgq9EWSbxj-fleIskJqRosHeVF5VfuqutPMCZfbX6x3IHfHsUrLD7WPDhkjAic5iJSI9K43FWLTtxM5AuSbNDQmhZ_yQx0iEUeY9DP_IYs_FJnN5Sv7xYN1OdKMySm0pq4Sn0N/w626-h431/Gemini_Generated_Image_tyslwktyslwktysl.png" width="626" /&gt;&lt;/a&gt;&lt;/div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;gemini ai generated&lt;br /&gt;&amp;nbsp;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Open Source Open Mind&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgo9SyjECeEOSUi6CbzY7OVDYNaap9qO-XSFsdULrfHZEQL9tVeiHgyyeL-ol_DIgh8Cggp87G8lpRyf2nD-ck2zuut2RLNKKoh_iCDz17OZh014V111H2bFjo0U-BcquIWKxyjZC_yksISarUprNi4wml3ElLS_3PAHldegiMS2J-5UrW-qiaMQkLNMZIc/s72-w483-h332-c/Gemini_Generated_Image_tyslwktyslwktysl.png" width="72"/><author>dhiraj.patra@gmail.com (dhiraj patra)</author></item><item><title>Multi Agent Orchestration with Azure Foundry and Microsoft Agent Services</title><link>http://dhirajpatra.blogspot.com/2026/09/multi-agent-orchestration-with-azure.html</link><category>agent</category><category>azure</category><pubDate>Fri, 4 Sep 2026 20:17:36 -0700</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8993867651193907565.post-4499761088707179953</guid><description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi68FbtGUvJayctd05-uwzuVZbwriqauA-xt_Scf2TUMeMy0LO0SibGrrJEockDpiWa8cm1bUxdzU3vG9hbGUR8bm0VGasYkwTNTCR9vXRWZP7pKVwl8M1oHUVRUQ8xw56Yh10TPKAonsj53vd7XNSibbTiqN9Tl1JgO5rzwZmO8VRkwhv3M_xpzp9SOEN2/s2500/foundry-stack-wp.png" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="1406" data-original-width="2500" height="273" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi68FbtGUvJayctd05-uwzuVZbwriqauA-xt_Scf2TUMeMy0LO0SibGrrJEockDpiWa8cm1bUxdzU3vG9hbGUR8bm0VGasYkwTNTCR9vXRWZP7pKVwl8M1oHUVRUQ8xw56Yh10TPKAonsj53vd7XNSibbTiqN9Tl1JgO5rzwZmO8VRkwhv3M_xpzp9SOEN2/w485-h273/foundry-stack-wp.png" width="485" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; microsoft&lt;/span&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="space-y-3 mt-3"&gt;&lt;div class="group/ai-message-item space-y-3 break-words" id="dKo8XnSeyZ3NLgN3gC3oX-content-0"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;Microsoft Azure Foundry now unifies AutoGen and Semantic Kernel into a single agentic framework, making it easier to build, orchestrate, and scale multi-agent systems. The new Azure AI Agent Service provides managed infrastructure, code execution in Azure Container Apps, and seamless integration with tools like file search and code interpreters.&lt;/span&gt;&lt;/p&gt;&lt;div class="relative pb-6 w-full after:border-b after:border-stroke-300 after:w-full after:absolute after:mt-3"&gt;&lt;/div&gt;&lt;h2 class="text-xl-medium [&amp;amp;:not(:first-child)]:pt-3.5 pb-1"&gt;&#129513; How Azure Foundry + Agent Service Works&lt;/h2&gt;&lt;ul class="relative list-outside marker:text-foreground-750 dark:marker:text-foreground-600 flex flex-col ms-4 px-1" role="list"&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;&lt;strong&gt;&lt;span class="text-start underline-offset-[0.25em] underline decoration-dotted decoration-foreground-450 decoration-2 hover:decoration-solid hover:cursor-pointer" data-url="ca://s?q=Explain_Azure_AI_Foundry" role="button" tabindex="0"&gt;Azure AI Foundry&lt;/span&gt;&lt;/strong&gt;: Central hub for deploying GPT‑4o models, managing endpoints, and creating agents.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;&lt;strong&gt;&lt;span class="text-start underline-offset-[0.25em] underline decoration-dotted decoration-foreground-450 decoration-2 hover:decoration-solid hover:cursor-pointer" data-url="ca://s?q=Azure_AI_Agent_Service" role="button" tabindex="0"&gt;Azure AI Agent Service&lt;/span&gt;&lt;/strong&gt;: Fully managed service to build and run agents without worrying about compute or scaling.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;&lt;strong&gt;&lt;span class="text-start underline-offset-[0.25em] underline decoration-dotted decoration-foreground-450 decoration-2 hover:decoration-solid hover:cursor-pointer" data-url="ca://s?q=Explain_AutoGen_framework" role="button" tabindex="0"&gt;AutoGen&lt;/span&gt;&lt;/strong&gt;: Provides orchestration primitives (agents, group chats, termination conditions).&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;&lt;strong&gt;&lt;span class="text-start underline-offset-[0.25em] underline decoration-dotted decoration-foreground-450 decoration-2 hover:decoration-solid hover:cursor-pointer" data-url="ca://s?q=Explain_Semantic_Kernel" role="button" tabindex="0"&gt;Semantic Kernel&lt;/span&gt;&lt;/strong&gt;: Adds plugins, memory, and advanced coordination (e.g., MCP plugins for external APIs).&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;Together, they allow developers to define agents declaratively, attach tools (file search, code interpreter, APIs), and run them in secure Azure environments.&lt;/span&gt;&lt;/p&gt;&lt;div class="relative pb-6 w-full after:border-b after:border-stroke-300 after:w-full after:absolute after:mt-3"&gt;&lt;/div&gt;&lt;h2 class="text-xl-medium [&amp;amp;:not(:first-child)]:pt-3.5 pb-1"&gt;&#128640; Example: Multi-Agent Workflow in Azure Foundry&lt;/h2&gt;&lt;h3 class="text-lg-strong pb-1 [&amp;amp;:not(:first-child)]:pt-3.5"&gt;Scenario: &lt;strong&gt;Data Analysis Assistant + Policy Expert&lt;/strong&gt;&lt;/h3&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;You want two agents:&lt;/span&gt;&lt;/p&gt;&lt;ol class="relative list-outside marker:text-foreground-750 dark:marker:text-foreground-600 flex flex-col ms-5 marker:normal-nums marker:text-sm-strong" role="list" start="1"&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;&lt;strong&gt;Policy Agent&lt;/strong&gt; – answers questions from a PDF (internal policy document).&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;&lt;strong&gt;Data Agent&lt;/strong&gt; – analyzes CSV sales data with Python code execution.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h3 class="text-lg-strong pb-1 [&amp;amp;:not(:first-child)]:pt-3.5"&gt;Steps&lt;/h3&gt;&lt;ol class="relative list-outside marker:text-foreground-750 dark:marker:text-foreground-600 flex flex-col ms-5 marker:normal-nums marker:text-sm-strong" role="list" start="1"&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;&lt;strong&gt;Deploy GPT‑4o in Azure Foundry&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul class="relative list-outside marker:text-foreground-750 dark:marker:text-foreground-600 flex flex-col ms-4 px-1" role="list"&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;Create a project in AI Foundry, deploy GPT‑4o, and note the endpoint + key.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;&lt;strong&gt;Create Agents in Agent Service&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul class="relative list-outside marker:text-foreground-750 dark:marker:text-foreground-600 flex flex-col ms-4 px-1" role="list"&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;Policy Agent → attach &lt;strong&gt;File Search tool&lt;/strong&gt; with the PDF.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;Data Agent → attach &lt;strong&gt;Code Interpreter tool&lt;/strong&gt; with the CSV.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;&lt;strong&gt;Define Group Chat with AutoGen&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="rounded-xl dark:border dark:border-stroke-250" style="opacity: 1;"&gt;&lt;div class="flex w-full items-center justify-between border-b border-white/20 bg-background-static-850 py-2 pe-2.5 ps-4 text-foreground-static-250 text-sm dark:border-stroke-250 dark:bg-background-static-900 rounded-t-xl"&gt;&lt;div class="flex items-center gap-2"&gt;&lt;span class="capitalize"&gt;python&lt;/span&gt;&lt;button aria-expanded="true" class="relative min-h-9 min-w-9 rounded-xl bg-transparent p-2 hover:bg-white/8 active:bg-white/5" title="Collapse code snippet" type="button"&gt;&lt;svg class="size-4 transition-transform -rotate-90" fill="currentColor" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;&lt;path d="M8.46967 4.21967C8.17678 4.51256 8.17678 4.98744 8.46967 5.28033L15.1893 12L8.46967 18.7197C8.17678 19.0126 8.17678 19.4874 8.46967 19.7803C8.76256 20.0732 9.23744 20.0732 9.53033 19.7803L16.7803 12.5303C17.0732 12.2374 17.0732 11.7626 16.7803 11.4697L9.53033 4.21967C9.23744 3.92678 8.76256 3.92678 8.46967 4.21967Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/div&gt;&lt;div class="flex items-center gap-2"&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="rounded-b-xl bg-background-static-850 px-4 pb-1.5 dark:bg-background-static-900"&gt;&lt;div class="horizontal-scrollbar overflow-x-auto whitespace-pre pb-3 pt-4 text-sm"&gt;&lt;pre&gt;&lt;code class="font-ligatures-none text-sm"&gt;&lt;span animate="end" custom="1.374" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-keyword"&gt;from&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="1.38" initial="start" variants="[object Object]"&gt; &lt;/span&gt;&lt;span animate="end" custom="1.386" initial="start" variants="[object Object]"&gt;autogen &lt;/span&gt;&lt;span animate="end" custom="1.392" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-keyword"&gt;import&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="1.398" initial="start" variants="[object Object]"&gt; &lt;/span&gt;&lt;span animate="end" custom="1.404" initial="start" variants="[object Object]"&gt;AssistantAgent, &lt;/span&gt;&lt;span animate="end" custom="1.41" initial="start" variants="[object Object]"&gt;RoundRobinGroupChat
&lt;/span&gt;&lt;span animate="end" custom="1.416" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-keyword"&gt;from&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="1.422" initial="start" variants="[object Object]"&gt; &lt;/span&gt;&lt;span animate="end" custom="1.428" initial="start" variants="[object Object]"&gt;semantic_kernel &lt;/span&gt;&lt;span animate="end" custom="1.434" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-keyword"&gt;import&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="1.44" initial="start" variants="[object Object]"&gt; &lt;/span&gt;&lt;span animate="end" custom="1.446" initial="start" variants="[object Object]"&gt;Kernel

&lt;/span&gt;&lt;span animate="end" custom="1.452" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-comment"&gt;# Create agents&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="1.458" initial="start" variants="[object Object]"&gt;
&lt;/span&gt;&lt;span animate="end" custom="1.464" initial="start" variants="[object Object]"&gt;policy_agent &lt;/span&gt;&lt;span animate="end" custom="1.47" initial="start" variants="[object Object]"&gt;= &lt;/span&gt;&lt;span animate="end" custom="1.476" initial="start" variants="[object Object]"&gt;AssistantAgent(name=&lt;/span&gt;&lt;span animate="end" custom="1.482" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-string"&gt;"PolicyAgent"&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="1.488" initial="start" variants="[object Object]"&gt;, &lt;/span&gt;&lt;span animate="end" custom="1.494" initial="start" variants="[object Object]"&gt;system_message=&lt;/span&gt;&lt;span animate="end" custom="1.5" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-string"&gt;"Answer based on Contoso policy PDF"&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="1.506" initial="start" variants="[object Object]"&gt;)
&lt;/span&gt;&lt;span animate="end" custom="1.512" initial="start" variants="[object Object]"&gt;data_agent &lt;/span&gt;&lt;span animate="end" custom="1.518" initial="start" variants="[object Object]"&gt;= &lt;/span&gt;&lt;span animate="end" custom="1.524" initial="start" variants="[object Object]"&gt;AssistantAgent(name=&lt;/span&gt;&lt;span animate="end" custom="1.53" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-string"&gt;"DataAgent"&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="1.536" initial="start" variants="[object Object]"&gt;, &lt;/span&gt;&lt;span animate="end" custom="1.542" initial="start" variants="[object Object]"&gt;system_message=&lt;/span&gt;&lt;span animate="end" custom="1.548" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-string"&gt;"Analyze CSV sales data with Python"&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="1.554" initial="start" variants="[object Object]"&gt;)

&lt;/span&gt;&lt;span animate="end" custom="1.56" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-comment"&gt;# Group chat&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="1.566" initial="start" variants="[object Object]"&gt;
&lt;/span&gt;&lt;span animate="end" custom="1.572" initial="start" variants="[object Object]"&gt;team &lt;/span&gt;&lt;span animate="end" custom="1.578" initial="start" variants="[object Object]"&gt;= &lt;/span&gt;&lt;span animate="end" custom="1.584" initial="start" variants="[object Object]"&gt;RoundRobinGroupChat([policy_agent, &lt;/span&gt;&lt;span animate="end" custom="1.59" initial="start" variants="[object Object]"&gt;data_agent])
&lt;/span&gt;&lt;span animate="end" custom="1.596" initial="start" variants="[object Object]"&gt;team.run(&lt;/span&gt;&lt;span animate="end" custom="1.602" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-string"&gt;"What are return guidelines and top 5 selling products?"&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="1.608" initial="start" variants="[object Object]"&gt;)
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;&lt;strong&gt;Execution in Azure Container Apps&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul class="relative list-outside marker:text-foreground-750 dark:marker:text-foreground-600 flex flex-col ms-4 px-1" role="list"&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;Code runs securely in ACA Session Pool.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;Outputs include structured answers + charts.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="relative pb-6 w-full after:border-b after:border-stroke-300 after:w-full after:absolute after:mt-3"&gt;&lt;/div&gt;&lt;h2 class="text-xl-medium [&amp;amp;:not(:first-child)]:pt-3.5 pb-1"&gt;&#128202; Comparison: Old vs New Approach&lt;/h2&gt;&lt;div class="max-w-full"&gt;&lt;div class="relative max-w-full"&gt;&lt;div aria-label="Scrollable table" class="horizontal-scrollbar font-ligatures-none mt-6 max-w-full overflow-x-auto rounded-lg bg-white/25 outline-2 outline-offset-1 focus-visible:outline focus-visible:outline-stroke-900 dark:bg-black/25" role="group" tabindex="0"&gt;&lt;table class="t-table" style="border-spacing: 10px;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;th scope="col" style="opacity: 1;"&gt;&lt;strong&gt;Aspect&lt;/strong&gt;&lt;/th&gt;&lt;th scope="col" style="opacity: 1;"&gt;&lt;strong&gt;Before (AutoGen only)&lt;/strong&gt;&lt;/th&gt;&lt;th scope="col" style="opacity: 1;"&gt;&lt;strong&gt;Now (Foundry + Agent Service)&lt;/strong&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th scope="row" style="opacity: 1;"&gt;&lt;strong&gt;Setup&lt;/strong&gt;&lt;/th&gt;&lt;td style="opacity: 1;"&gt;Manual infra, local execution&lt;/td&gt;&lt;td style="opacity: 1;"&gt;Managed ACA pools, azd deployment&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th scope="row" style="opacity: 1;"&gt;&lt;strong&gt;Tooling&lt;/strong&gt;&lt;/th&gt;&lt;td style="opacity: 1;"&gt;Custom code for file/code tools&lt;/td&gt;&lt;td style="opacity: 1;"&gt;Built-in File Search + Code Interpreter&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th scope="row" style="opacity: 1;"&gt;&lt;strong&gt;Integration&lt;/strong&gt;&lt;/th&gt;&lt;td style="opacity: 1;"&gt;Limited&lt;/td&gt;&lt;td style="opacity: 1;"&gt;Semantic Kernel plugins (MCP, GitHub, booking)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th scope="row" style="opacity: 1;"&gt;&lt;strong&gt;Scalability&lt;/strong&gt;&lt;/th&gt;&lt;td style="opacity: 1;"&gt;Developer-managed&lt;/td&gt;&lt;td style="opacity: 1;"&gt;Fully managed, auto-scaled&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th scope="row" style="opacity: 1;"&gt;&lt;strong&gt;Ease of Use&lt;/strong&gt;&lt;/th&gt;&lt;td style="opacity: 1;"&gt;Complex boilerplate&lt;/td&gt;&lt;td style="opacity: 1;"&gt;Few lines of Foundry SDK&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div class="pointer-events-none absolute inset-0 rounded-lg border border-stroke-300 dark:border-stroke-450"&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="mt-3 flex items-center gap-1"&gt;&lt;div class="relative"&gt;&lt;button aria-label="Copy table" class="relative flex items-center text-foreground-800 fill-foreground-800 active:text-foreground-600 active:fill-foreground-600 dark:active:text-foreground-650 dark:active:fill-foreground-650 bg-transparent safe-hover:bg-black/5 active:bg-black/3 dark:safe-hover:bg-white/8 dark:active:bg-white/5 text-sm justify-center size-9 rounded-xl after:rounded-xl after:absolute after:inset-0 after:pointer-events-none after:border after:border-transparent after:contrast-more:border-2 outline-2 outline-offset-1 focus-visible:z-[1] focus-visible:outline focus-visible:outline-stroke-900 forced-colors:transition-none forced-colors:safe-hover:!bg-[Highlight] forced-colors:safe-hover:!text-[HighlightText] forced-colors:safe-hover:!fill-[HighlightText] forced-colors:active:!bg-[Highlight] forced-colors:active:!text-[HighlightText] forced-colors:active:!fill-[HighlightText]" data-spatial-navigation-autofocus="false" data-testid="copy-table-button" data-tooltip-state="closed" type="button"&gt;&lt;div style="opacity: 1;"&gt;&lt;svg class="size-5" fill="currentColor" viewbox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"&gt;&lt;path d="M8 2C6.89543 2 6 2.89543 6 4V14C6 15.1046 6.89543 16 8 16H14C15.1046 16 16 15.1046 16 14V4C16 2.89543 15.1046 2 14 2H8ZM7 4C7 3.44772 7.44772 3 8 3H14C14.5523 3 15 3.44772 15 4V14C15 14.5523 14.5523 15 14 15H8C7.44772 15 7 14.5523 7 14V4ZM4 6.00001C4 5.25973 4.4022 4.61339 5 4.26758V14.5C5 15.8807 6.11929 17 7.5 17H13.7324C13.3866 17.5978 12.7403 18 12 18H7.5C5.567 18 4 16.433 4 14.5V6.00001Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/div&gt;&lt;/button&gt;&lt;div class="pointer-events-none absolute -top-12 start-1/2 z-40 [transform:translateX(-50%)] rtl:[transform:translateX(50%)]"&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="relative"&gt;&lt;button aria-label="Download table" class="relative flex items-center text-foreground-800 fill-foreground-800 active:text-foreground-600 active:fill-foreground-600 dark:active:text-foreground-650 dark:active:fill-foreground-650 bg-transparent safe-hover:bg-black/5 active:bg-black/3 dark:safe-hover:bg-white/8 dark:active:bg-white/5 text-sm justify-center size-9 rounded-xl after:rounded-xl after:absolute after:inset-0 after:pointer-events-none after:border after:border-transparent after:contrast-more:border-2 outline-2 outline-offset-1 focus-visible:z-[1] focus-visible:outline focus-visible:outline-stroke-900 forced-colors:transition-none forced-colors:safe-hover:!bg-[Highlight] forced-colors:safe-hover:!text-[HighlightText] forced-colors:safe-hover:!fill-[HighlightText] forced-colors:active:!bg-[Highlight] forced-colors:active:!text-[HighlightText] forced-colors:active:!fill-[HighlightText]" data-spatial-navigation-autofocus="false" data-testid="download-table-button" data-tooltip-state="closed" type="button"&gt;&lt;div style="opacity: 1;"&gt;&lt;svg class="size-5" fill="currentColor" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;&lt;path d="M18.2498 20.5009C18.664 20.5008 19 20.8365 19 21.2507C19 21.6649 18.6644 22.0008 18.2502 22.0009L5.25022 22.0047C4.836 22.0048 4.5 21.6691 4.5 21.2549C4.5 20.8407 4.83557 20.5048 5.24978 20.5047L18.2498 20.5009ZM11.6482 2.01271L11.75 2.00586C12.1297 2.00586 12.4435 2.28801 12.4932 2.65409L12.5 2.75586L12.499 16.4409L16.2208 12.7205C16.4871 12.4543 16.9038 12.4301 17.1974 12.648L17.2815 12.7206C17.5477 12.9869 17.5719 13.4036 17.354 13.6972L17.2814 13.7813L12.2837 18.7779C12.0176 19.044 11.6012 19.0683 11.3076 18.8507L11.2235 18.7782L6.22003 13.7816C5.92694 13.4889 5.92661 13.014 6.21931 12.7209C6.48539 12.4545 6.90204 12.43 7.1958 12.6477L7.27997 12.7202L10.999 16.4339L11 2.75586C11 2.37616 11.2822 2.06237 11.6482 2.01271L11.75 2.00586L11.6482 2.01271Z" fill="currentColor"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/div&gt;&lt;/button&gt;&lt;div class="pointer-events-none absolute -top-12 start-1/2 z-40 [transform:translateX(-50%)] rtl:[transform:translateX(50%)]"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="relative pb-6 w-full after:border-b after:border-stroke-300 after:w-full after:absolute after:mt-3"&gt;&lt;/div&gt;&lt;h2 class="text-xl-medium [&amp;amp;:not(:first-child)]:pt-3.5 pb-1"&gt;⚠️ Key Considerations&lt;/h2&gt;&lt;ul class="relative list-outside marker:text-foreground-750 dark:marker:text-foreground-600 flex flex-col ms-4 px-1" role="list"&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;&lt;strong&gt;Security&lt;/strong&gt;: Use managed identities instead of raw API keys for production.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;&lt;strong&gt;Costs&lt;/strong&gt;: ACA Session Pools scale automatically; monitor usage to avoid overruns.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;&lt;strong&gt;Extensibility&lt;/strong&gt;: MCP plugins allow integration with external systems (GitHub, restaurant booking, etc.).&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;&lt;strong&gt;Best Practice&lt;/strong&gt;: Start with Foundry playground for prototyping, then move to code-first with AutoGen + Semantic Kernel for production.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="relative pb-6 w-full after:border-b after:border-stroke-300 after:w-full after:absolute after:mt-3"&gt;&lt;/div&gt;&lt;div class="space-y-3 mt-3"&gt;&lt;div class="group/ai-message-item space-y-3 break-words" id="qyQWc5muYiWhkB9mNmHCa-content-0"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;Let’s walk through a &lt;strong&gt;hands-on Azure Foundry SDK example&lt;/strong&gt; that mirrors the workshop but uses the new &lt;strong&gt;Agent Service&lt;/strong&gt; (AutoGen + Semantic Kernel unified).&lt;/span&gt;&lt;/p&gt;&lt;div class="relative pb-6 w-full after:border-b after:border-stroke-300 after:w-full after:absolute after:mt-3"&gt;&lt;/div&gt;&lt;h2 class="text-xl-medium [&amp;amp;:not(:first-child)]:pt-3.5 pb-1"&gt;&#128736;️ Example: Creating and Running Agents in Azure Foundry&lt;/h2&gt;&lt;h3 class="text-lg-strong pb-1 [&amp;amp;:not(:first-child)]:pt-3.5"&gt;Step 1: Install SDK&lt;/h3&gt;&lt;div class="rounded-xl dark:border dark:border-stroke-250" style="opacity: 1;"&gt;&lt;div class="flex w-full items-center justify-between border-b border-white/20 bg-background-static-850 py-2 pe-2.5 ps-4 text-foreground-static-250 text-sm dark:border-stroke-250 dark:bg-background-static-900 rounded-t-xl"&gt;&lt;div class="flex items-center gap-2"&gt;&lt;span class="capitalize"&gt;bash&lt;/span&gt;&lt;button aria-expanded="true" class="relative min-h-9 min-w-9 rounded-xl bg-transparent p-2 hover:bg-white/8 active:bg-white/5" title="Collapse code snippet" type="button"&gt;&lt;svg class="size-4 transition-transform -rotate-90" fill="currentColor" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;&lt;path d="M8.46967 4.21967C8.17678 4.51256 8.17678 4.98744 8.46967 5.28033L15.1893 12L8.46967 18.7197C8.17678 19.0126 8.17678 19.4874 8.46967 19.7803C8.76256 20.0732 9.23744 20.0732 9.53033 19.7803L16.7803 12.5303C17.0732 12.2374 17.0732 11.7626 16.7803 11.4697L9.53033 4.21967C9.23744 3.92678 8.76256 3.92678 8.46967 4.21967Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/div&gt;&lt;div class="flex items-center gap-2"&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="rounded-b-xl bg-background-static-850 px-4 pb-1.5 dark:bg-background-static-900"&gt;&lt;div class="horizontal-scrollbar overflow-x-auto whitespace-pre pb-3 pt-4 text-sm"&gt;&lt;pre&gt;&lt;code class="font-ligatures-none text-sm"&gt;&lt;span animate="end" custom="0.252" initial="start" variants="[object Object]"&gt;pip &lt;/span&gt;&lt;span animate="end" custom="0.258" initial="start" variants="[object Object]"&gt;install &lt;/span&gt;&lt;span animate="end" custom="0.264" initial="start" variants="[object Object]"&gt;azure-ai-agents
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="relative pb-6 w-full after:border-b after:border-stroke-300 after:w-full after:absolute after:mt-3"&gt;&lt;/div&gt;&lt;h3 class="text-lg-strong pb-1 [&amp;amp;:not(:first-child)]:pt-3.5"&gt;Step 2: Define Agents in Python&lt;/h3&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;Here we create two agents — one for &lt;strong&gt;policy Q&amp;amp;A&lt;/strong&gt; (file search tool) and one for &lt;strong&gt;data analysis&lt;/strong&gt; (code interpreter).&lt;/span&gt;&lt;/p&gt;&lt;div class="rounded-xl dark:border dark:border-stroke-250" style="opacity: 1;"&gt;&lt;div class="flex w-full items-center justify-between border-b border-white/20 bg-background-static-850 py-2 pe-2.5 ps-4 text-foreground-static-250 text-sm dark:border-stroke-250 dark:bg-background-static-900 rounded-t-xl"&gt;&lt;div class="flex items-center gap-2"&gt;&lt;span class="capitalize"&gt;python&lt;/span&gt;&lt;button aria-expanded="true" class="relative min-h-9 min-w-9 rounded-xl bg-transparent p-2 hover:bg-white/8 active:bg-white/5" title="Collapse code snippet" type="button"&gt;&lt;svg class="size-4 transition-transform -rotate-90" fill="currentColor" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;&lt;path d="M8.46967 4.21967C8.17678 4.51256 8.17678 4.98744 8.46967 5.28033L15.1893 12L8.46967 18.7197C8.17678 19.0126 8.17678 19.4874 8.46967 19.7803C8.76256 20.0732 9.23744 20.0732 9.53033 19.7803L16.7803 12.5303C17.0732 12.2374 17.0732 11.7626 16.7803 11.4697L9.53033 4.21967C9.23744 3.92678 8.76256 3.92678 8.46967 4.21967Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/div&gt;&lt;div class="flex items-center gap-2"&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="rounded-b-xl bg-background-static-850 px-4 pb-1.5 dark:bg-background-static-900"&gt;&lt;div class="horizontal-scrollbar overflow-x-auto whitespace-pre pb-3 pt-4 text-sm"&gt;&lt;pre&gt;&lt;code class="font-ligatures-none text-sm"&gt;&lt;span animate="end" custom="0.444" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-keyword"&gt;from&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="0.45" initial="start" variants="[object Object]"&gt; &lt;/span&gt;&lt;span animate="end" custom="0.456" initial="start" variants="[object Object]"&gt;azure.ai.agents &lt;/span&gt;&lt;span animate="end" custom="0.462" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-keyword"&gt;import&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="0.468" initial="start" variants="[object Object]"&gt; &lt;/span&gt;&lt;span animate="end" custom="0.474" initial="start" variants="[object Object]"&gt;AgentsClient
&lt;/span&gt;&lt;span animate="end" custom="0.48" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-keyword"&gt;from&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="0.486" initial="start" variants="[object Object]"&gt; &lt;/span&gt;&lt;span animate="end" custom="0.492" initial="start" variants="[object Object]"&gt;azure.identity &lt;/span&gt;&lt;span animate="end" custom="0.498" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-keyword"&gt;import&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="0.504" initial="start" variants="[object Object]"&gt; &lt;/span&gt;&lt;span animate="end" custom="0.51" initial="start" variants="[object Object]"&gt;DefaultAzureCredential

&lt;/span&gt;&lt;span animate="end" custom="0.516" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-comment"&gt;# Connect to Azure Foundry project&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="0.522" initial="start" variants="[object Object]"&gt;
&lt;/span&gt;&lt;span animate="end" custom="0.528" initial="start" variants="[object Object]"&gt;client &lt;/span&gt;&lt;span animate="end" custom="0.534" initial="start" variants="[object Object]"&gt;= &lt;/span&gt;&lt;span animate="end" custom="0.54" initial="start" variants="[object Object]"&gt;AgentsClient(
    &lt;/span&gt;&lt;span animate="end" custom="0.546" initial="start" variants="[object Object]"&gt;endpoint=&lt;/span&gt;&lt;span animate="end" custom="0.552" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-string"&gt;"https://&amp;lt;your-foundry-project&amp;gt;.api.azure.com"&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="0.558" initial="start" variants="[object Object]"&gt;,
    &lt;/span&gt;&lt;span animate="end" custom="0.564" initial="start" variants="[object Object]"&gt;credential=DefaultAzureCredential()
&lt;/span&gt;&lt;span animate="end" custom="0.57" initial="start" variants="[object Object]"&gt;)

&lt;/span&gt;&lt;span animate="end" custom="0.576" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-comment"&gt;# Create Policy Agent with File Search&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="0.582" initial="start" variants="[object Object]"&gt;
&lt;/span&gt;&lt;span animate="end" custom="0.588" initial="start" variants="[object Object]"&gt;policy_agent &lt;/span&gt;&lt;span animate="end" custom="0.594" initial="start" variants="[object Object]"&gt;= &lt;/span&gt;&lt;span animate="end" custom="0.6" initial="start" variants="[object Object]"&gt;client.agents.create(
    &lt;/span&gt;&lt;span animate="end" custom="0.606" initial="start" variants="[object Object]"&gt;name=&lt;/span&gt;&lt;span animate="end" custom="0.612" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-string"&gt;"PolicyAgent"&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="0.618" initial="start" variants="[object Object]"&gt;,
    &lt;/span&gt;&lt;span animate="end" custom="0.624" initial="start" variants="[object Object]"&gt;model=&lt;/span&gt;&lt;span animate="end" custom="0.63" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-string"&gt;"gpt-4o"&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="0.636" initial="start" variants="[object Object]"&gt;,
    &lt;/span&gt;&lt;span animate="end" custom="0.642" initial="start" variants="[object Object]"&gt;tools=[{&lt;/span&gt;&lt;span animate="end" custom="0.648" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-string"&gt;"type"&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="0.654" initial="start" variants="[object Object]"&gt;: &lt;/span&gt;&lt;span animate="end" custom="0.66" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-string"&gt;"file_search"&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="0.666" initial="start" variants="[object Object]"&gt;, &lt;/span&gt;&lt;span animate="end" custom="0.672" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-string"&gt;"files"&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="0.678" initial="start" variants="[object Object]"&gt;: &lt;/span&gt;&lt;span animate="end" custom="0.684" initial="start" variants="[object Object]"&gt;[&lt;/span&gt;&lt;span animate="end" custom="0.69" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-string"&gt;"contoso_policy.pdf"&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="0.696" initial="start" variants="[object Object]"&gt;]}],
    &lt;/span&gt;&lt;span animate="end" custom="0.702" initial="start" variants="[object Object]"&gt;instructions=&lt;/span&gt;&lt;span animate="end" custom="0.708" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-string"&gt;"Answer questions strictly from Contoso policy document."&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="0.714" initial="start" variants="[object Object]"&gt;
&lt;/span&gt;&lt;span animate="end" custom="0.72" initial="start" variants="[object Object]"&gt;)

&lt;/span&gt;&lt;span animate="end" custom="0.726" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-comment"&gt;# Create Data Agent with Code Interpreter&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="0.732" initial="start" variants="[object Object]"&gt;
&lt;/span&gt;&lt;span animate="end" custom="0.738" initial="start" variants="[object Object]"&gt;data_agent &lt;/span&gt;&lt;span animate="end" custom="0.744" initial="start" variants="[object Object]"&gt;= &lt;/span&gt;&lt;span animate="end" custom="0.75" initial="start" variants="[object Object]"&gt;client.agents.create(
    &lt;/span&gt;&lt;span animate="end" custom="0.756" initial="start" variants="[object Object]"&gt;name=&lt;/span&gt;&lt;span animate="end" custom="0.762" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-string"&gt;"DataAgent"&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="0.768" initial="start" variants="[object Object]"&gt;,
    &lt;/span&gt;&lt;span animate="end" custom="0.774" initial="start" variants="[object Object]"&gt;model=&lt;/span&gt;&lt;span animate="end" custom="0.78" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-string"&gt;"gpt-4o"&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="0.786" initial="start" variants="[object Object]"&gt;,
    &lt;/span&gt;&lt;span animate="end" custom="0.792" initial="start" variants="[object Object]"&gt;tools=[{&lt;/span&gt;&lt;span animate="end" custom="0.798" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-string"&gt;"type"&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="0.804" initial="start" variants="[object Object]"&gt;: &lt;/span&gt;&lt;span animate="end" custom="0.81" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-string"&gt;"code_interpreter"&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="0.816" initial="start" variants="[object Object]"&gt;, &lt;/span&gt;&lt;span animate="end" custom="0.822" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-string"&gt;"files"&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="0.828" initial="start" variants="[object Object]"&gt;: &lt;/span&gt;&lt;span animate="end" custom="0.834" initial="start" variants="[object Object]"&gt;[&lt;/span&gt;&lt;span animate="end" custom="0.84" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-string"&gt;"sales_data.csv"&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="0.846" initial="start" variants="[object Object]"&gt;]}],
    &lt;/span&gt;&lt;span animate="end" custom="0.852" initial="start" variants="[object Object]"&gt;instructions=&lt;/span&gt;&lt;span animate="end" custom="0.858" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-string"&gt;"Analyze sales data and provide insights."&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="0.864" initial="start" variants="[object Object]"&gt;
&lt;/span&gt;&lt;span animate="end" custom="0.87" initial="start" variants="[object Object]"&gt;)
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="relative pb-6 w-full after:border-b after:border-stroke-300 after:w-full after:absolute after:mt-3"&gt;&lt;/div&gt;&lt;h3 class="text-lg-strong pb-1 [&amp;amp;:not(:first-child)]:pt-3.5"&gt;Step 3: Orchestrate with AutoGen Group Chat&lt;/h3&gt;&lt;div class="rounded-xl dark:border dark:border-stroke-250" style="opacity: 1;"&gt;&lt;div class="flex w-full items-center justify-between border-b border-white/20 bg-background-static-850 py-2 pe-2.5 ps-4 text-foreground-static-250 text-sm dark:border-stroke-250 dark:bg-background-static-900 rounded-t-xl"&gt;&lt;div class="flex items-center gap-2"&gt;&lt;span class="capitalize"&gt;python&lt;/span&gt;&lt;button aria-expanded="true" class="relative min-h-9 min-w-9 rounded-xl bg-transparent p-2 hover:bg-white/8 active:bg-white/5" title="Collapse code snippet" type="button"&gt;&lt;svg class="size-4 transition-transform -rotate-90" fill="currentColor" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;&lt;path d="M8.46967 4.21967C8.17678 4.51256 8.17678 4.98744 8.46967 5.28033L15.1893 12L8.46967 18.7197C8.17678 19.0126 8.17678 19.4874 8.46967 19.7803C8.76256 20.0732 9.23744 20.0732 9.53033 19.7803L16.7803 12.5303C17.0732 12.2374 17.0732 11.7626 16.7803 11.4697L9.53033 4.21967C9.23744 3.92678 8.76256 3.92678 8.46967 4.21967Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/div&gt;&lt;div class="flex items-center gap-2"&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="rounded-b-xl bg-background-static-850 px-4 pb-1.5 dark:bg-background-static-900"&gt;&lt;div class="horizontal-scrollbar overflow-x-auto whitespace-pre pb-3 pt-4 text-sm"&gt;&lt;pre&gt;&lt;code class="font-ligatures-none text-sm"&gt;&lt;span animate="end" custom="0.924" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-keyword"&gt;from&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="0.93" initial="start" variants="[object Object]"&gt; &lt;/span&gt;&lt;span animate="end" custom="0.936" initial="start" variants="[object Object]"&gt;autogen &lt;/span&gt;&lt;span animate="end" custom="0.942" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-keyword"&gt;import&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="0.948" initial="start" variants="[object Object]"&gt; &lt;/span&gt;&lt;span animate="end" custom="0.954" initial="start" variants="[object Object]"&gt;RoundRobinGroupChat

&lt;/span&gt;&lt;span animate="end" custom="0.96" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-comment"&gt;# Combine agents into a group chat&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="0.966" initial="start" variants="[object Object]"&gt;
&lt;/span&gt;&lt;span animate="end" custom="0.972" initial="start" variants="[object Object]"&gt;team &lt;/span&gt;&lt;span animate="end" custom="0.978" initial="start" variants="[object Object]"&gt;= &lt;/span&gt;&lt;span animate="end" custom="0.984" initial="start" variants="[object Object]"&gt;RoundRobinGroupChat([policy_agent, &lt;/span&gt;&lt;span animate="end" custom="0.99" initial="start" variants="[object Object]"&gt;data_agent])

&lt;/span&gt;&lt;span animate="end" custom="0.996" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-comment"&gt;# Run a query across both agents&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="1.002" initial="start" variants="[object Object]"&gt;
&lt;/span&gt;&lt;span animate="end" custom="1.008" initial="start" variants="[object Object]"&gt;response &lt;/span&gt;&lt;span animate="end" custom="1.014" initial="start" variants="[object Object]"&gt;= &lt;/span&gt;&lt;span animate="end" custom="1.02" initial="start" variants="[object Object]"&gt;team.run(&lt;/span&gt;&lt;span animate="end" custom="1.026" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-string"&gt;"Summarize return guidelines and top 5 selling products."&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="1.032" initial="start" variants="[object Object]"&gt;)
&lt;/span&gt;&lt;span animate="end" custom="1.038" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-built_in"&gt;print&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="1.044" initial="start" variants="[object Object]"&gt;(response)
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="relative pb-6 w-full after:border-b after:border-stroke-300 after:w-full after:absolute after:mt-3"&gt;&lt;/div&gt;&lt;h3 class="text-lg-strong pb-1 [&amp;amp;:not(:first-child)]:pt-3.5"&gt;Step 4: Execution in Azure Container Apps&lt;/h3&gt;&lt;ul class="relative list-outside marker:text-foreground-750 dark:marker:text-foreground-600 flex flex-col ms-4 px-1" role="list"&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;The &lt;strong&gt;Code Interpreter&lt;/strong&gt; runs securely in ACA Session Pools.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;The &lt;strong&gt;File Search&lt;/strong&gt; tool indexes PDFs and responds with grounded answers.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;Results are merged into a single structured response.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="relative pb-6 w-full after:border-b after:border-stroke-300 after:w-full after:absolute after:mt-3"&gt;&lt;/div&gt;&lt;h2 class="text-xl-medium [&amp;amp;:not(:first-child)]:pt-3.5 pb-1"&gt;&#128202; Why This Matters&lt;/h2&gt;&lt;div class="max-w-full"&gt;&lt;div class="relative max-w-full"&gt;&lt;div aria-label="Scrollable table" class="horizontal-scrollbar font-ligatures-none mt-6 max-w-full overflow-x-auto rounded-lg bg-white/25 outline-2 outline-offset-1 focus-visible:outline focus-visible:outline-stroke-900 dark:bg-black/25" role="group" tabindex="0"&gt;&lt;table class="t-table" style="border-spacing: 0px;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;th scope="col" style="opacity: 1;"&gt;&lt;strong&gt;Feature&lt;/strong&gt;&lt;/th&gt;&lt;th scope="col" style="opacity: 1;"&gt;&lt;strong&gt;Old Workflow&lt;/strong&gt;&lt;/th&gt;&lt;th scope="col" style="opacity: 1;"&gt;&lt;strong&gt;New Foundry Workflow&lt;/strong&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th scope="row" style="opacity: 1;"&gt;Setup&lt;/th&gt;&lt;td style="opacity: 1;"&gt;Manual infra, local scripts&lt;/td&gt;&lt;td style="opacity: 1;"&gt;Managed Agent Service&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th scope="row" style="opacity: 1;"&gt;Tools&lt;/th&gt;&lt;td style="opacity: 1;"&gt;Custom-coded&lt;/td&gt;&lt;td style="opacity: 1;"&gt;Built-in File Search + Code Interpreter&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th scope="row" style="opacity: 1;"&gt;Scaling&lt;/th&gt;&lt;td style="opacity: 1;"&gt;Developer-managed&lt;/td&gt;&lt;td style="opacity: 1;"&gt;Auto-scaled ACA&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th scope="row" style="opacity: 1;"&gt;Extensibility&lt;/th&gt;&lt;td style="opacity: 1;"&gt;Limited&lt;/td&gt;&lt;td style="opacity: 1;"&gt;Semantic Kernel plugins (MCP, GitHub, APIs)&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div class="pointer-events-none absolute inset-0 rounded-lg border border-stroke-300 dark:border-stroke-450"&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="mt-3 flex items-center gap-1"&gt;&lt;div class="relative"&gt;&lt;button aria-label="Copy table" class="relative flex items-center text-foreground-800 fill-foreground-800 active:text-foreground-600 active:fill-foreground-600 dark:active:text-foreground-650 dark:active:fill-foreground-650 bg-transparent safe-hover:bg-black/5 active:bg-black/3 dark:safe-hover:bg-white/8 dark:active:bg-white/5 text-sm justify-center size-9 rounded-xl after:rounded-xl after:absolute after:inset-0 after:pointer-events-none after:border after:border-transparent after:contrast-more:border-2 outline-2 outline-offset-1 focus-visible:z-[1] focus-visible:outline focus-visible:outline-stroke-900 forced-colors:transition-none forced-colors:safe-hover:!bg-[Highlight] forced-colors:safe-hover:!text-[HighlightText] forced-colors:safe-hover:!fill-[HighlightText] forced-colors:active:!bg-[Highlight] forced-colors:active:!text-[HighlightText] forced-colors:active:!fill-[HighlightText]" data-spatial-navigation-autofocus="false" data-testid="copy-table-button" data-tooltip-state="closed" type="button"&gt;&lt;div style="opacity: 1;"&gt;&lt;svg class="size-5" fill="currentColor" viewbox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"&gt;&lt;path d="M8 2C6.89543 2 6 2.89543 6 4V14C6 15.1046 6.89543 16 8 16H14C15.1046 16 16 15.1046 16 14V4C16 2.89543 15.1046 2 14 2H8ZM7 4C7 3.44772 7.44772 3 8 3H14C14.5523 3 15 3.44772 15 4V14C15 14.5523 14.5523 15 14 15H8C7.44772 15 7 14.5523 7 14V4ZM4 6.00001C4 5.25973 4.4022 4.61339 5 4.26758V14.5C5 15.8807 6.11929 17 7.5 17H13.7324C13.3866 17.5978 12.7403 18 12 18H7.5C5.567 18 4 16.433 4 14.5V6.00001Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/div&gt;&lt;/button&gt;&lt;div class="pointer-events-none absolute -top-12 start-1/2 z-40 [transform:translateX(-50%)] rtl:[transform:translateX(50%)]"&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="relative"&gt;&lt;button aria-label="Download table" class="relative flex items-center text-foreground-800 fill-foreground-800 active:text-foreground-600 active:fill-foreground-600 dark:active:text-foreground-650 dark:active:fill-foreground-650 bg-transparent safe-hover:bg-black/5 active:bg-black/3 dark:safe-hover:bg-white/8 dark:active:bg-white/5 text-sm justify-center size-9 rounded-xl after:rounded-xl after:absolute after:inset-0 after:pointer-events-none after:border after:border-transparent after:contrast-more:border-2 outline-2 outline-offset-1 focus-visible:z-[1] focus-visible:outline focus-visible:outline-stroke-900 forced-colors:transition-none forced-colors:safe-hover:!bg-[Highlight] forced-colors:safe-hover:!text-[HighlightText] forced-colors:safe-hover:!fill-[HighlightText] forced-colors:active:!bg-[Highlight] forced-colors:active:!text-[HighlightText] forced-colors:active:!fill-[HighlightText]" data-spatial-navigation-autofocus="false" data-testid="download-table-button" data-tooltip-state="closed" type="button"&gt;&lt;div style="opacity: 1;"&gt;&lt;svg class="size-5" fill="currentColor" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;&lt;path d="M18.2498 20.5009C18.664 20.5008 19 20.8365 19 21.2507C19 21.6649 18.6644 22.0008 18.2502 22.0009L5.25022 22.0047C4.836 22.0048 4.5 21.6691 4.5 21.2549C4.5 20.8407 4.83557 20.5048 5.24978 20.5047L18.2498 20.5009ZM11.6482 2.01271L11.75 2.00586C12.1297 2.00586 12.4435 2.28801 12.4932 2.65409L12.5 2.75586L12.499 16.4409L16.2208 12.7205C16.4871 12.4543 16.9038 12.4301 17.1974 12.648L17.2815 12.7206C17.5477 12.9869 17.5719 13.4036 17.354 13.6972L17.2814 13.7813L12.2837 18.7779C12.0176 19.044 11.6012 19.0683 11.3076 18.8507L11.2235 18.7782L6.22003 13.7816C5.92694 13.4889 5.92661 13.014 6.21931 12.7209C6.48539 12.4545 6.90204 12.43 7.1958 12.6477L7.27997 12.7202L10.999 16.4339L11 2.75586C11 2.37616 11.2822 2.06237 11.6482 2.01271L11.75 2.00586L11.6482 2.01271Z" fill="currentColor"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/div&gt;&lt;/button&gt;&lt;div class="pointer-events-none absolute -top-12 start-1/2 z-40 [transform:translateX(-50%)] rtl:[transform:translateX(50%)]"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="relative pb-6 w-full after:border-b after:border-stroke-300 after:w-full after:absolute after:mt-3"&gt;&lt;/div&gt;&lt;h2 class="text-xl-medium [&amp;amp;:not(:first-child)]:pt-3.5 pb-1"&gt;&#128302; Next Steps&lt;/h2&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;You can extend this by:&lt;/span&gt;&lt;/p&gt;&lt;ul class="relative list-outside marker:text-foreground-750 dark:marker:text-foreground-600 flex flex-col ms-4 px-1" role="list"&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;Adding a &lt;strong&gt;&lt;span class="text-start underline-offset-[0.25em] underline decoration-dotted decoration-foreground-450 decoration-2 hover:decoration-solid hover:cursor-pointer" data-url="ca://s?q=Explain_GitHub_MCP_plugin" role="button" tabindex="0"&gt;GitHub MCP plugin&lt;/span&gt;&lt;/strong&gt; for issue tracking.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;Using &lt;strong&gt;&lt;span class="text-start underline-offset-[0.25em] underline decoration-dotted decoration-foreground-450 decoration-2 hover:decoration-solid hover:cursor-pointer" data-url="ca://s?q=Explain_Semantic_Kernel_memory" role="button" tabindex="0"&gt;Semantic Kernel memory&lt;/span&gt;&lt;/strong&gt; to persist context across sessions.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;Deploying the workflow with &lt;strong&gt;&lt;span class="text-start underline-offset-[0.25em] underline decoration-dotted decoration-foreground-450 decoration-2 hover:decoration-solid hover:cursor-pointer" data-url="ca://s?q=Explain_azd_templates" role="button" tabindex="0"&gt;azd templates&lt;/span&gt;&lt;/strong&gt; for production readiness.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="relative pb-6 w-full after:border-b after:border-stroke-300 after:w-full after:absolute after:mt-3"&gt;&lt;/div&gt;&lt;div class="space-y-3 mt-3"&gt;&lt;div class="group/ai-message-item space-y-3 break-words" id="zE9UnXZPMtqpcPtWeXKcx-content-0"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;Great — let’s design a &lt;strong&gt;multi‑agent architecture&lt;/strong&gt; that combines &lt;strong&gt;Azure Foundry&lt;/strong&gt;, &lt;strong&gt;Foundry IQ&lt;/strong&gt;, and &lt;strong&gt;Microsoft Fabric&lt;/strong&gt; into a unified pipeline. This mirrors the GitHub workshop but extends it with &lt;strong&gt;data ingestion, orchestration, and agent services&lt;/strong&gt;.&lt;/span&gt;&lt;/p&gt;&lt;div class="relative pb-6 w-full after:border-b after:border-stroke-300 after:w-full after:absolute after:mt-3"&gt;&lt;/div&gt;&lt;h2 class="text-xl-medium [&amp;amp;:not(:first-child)]:pt-3.5 pb-1"&gt;&#127959;️ End‑to‑End Flow with Foundry + Fabric&lt;/h2&gt;&lt;h3 class="text-lg-strong pb-1 [&amp;amp;:not(:first-child)]:pt-3.5"&gt;1. &lt;strong&gt;Data Ingestion (Fabric)&lt;/strong&gt;&lt;/h3&gt;&lt;ul class="relative list-outside marker:text-foreground-750 dark:marker:text-foreground-600 flex flex-col ms-4 px-1" role="list"&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;Use &lt;strong&gt;&lt;span class="text-start underline-offset-[0.25em] underline decoration-dotted decoration-foreground-450 decoration-2 hover:decoration-solid hover:cursor-pointer" data-url="ca://s?q=Explain_Microsoft_Fabric" role="button" tabindex="0"&gt;Microsoft Fabric&lt;/span&gt;&lt;/strong&gt; to ingest structured and unstructured data:&lt;/span&gt;&lt;/p&gt;&lt;ul class="relative list-outside marker:text-foreground-750 dark:marker:text-foreground-600 flex flex-col ms-4 px-1" role="list"&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;Sales CSVs → Lakehouse tables.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;Policy PDFs → OneLake + Indexing.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;IoT/real estate feeds → Eventstream pipelines.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;Fabric pipelines clean, transform, and store data in a unified lakehouse.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 class="text-lg-strong pb-1 [&amp;amp;:not(:first-child)]:pt-3.5"&gt;2. &lt;strong&gt;Agent Creation (Foundry IQ)&lt;/strong&gt;&lt;/h3&gt;&lt;ul class="relative list-outside marker:text-foreground-750 dark:marker:text-foreground-600 flex flex-col ms-4 px-1" role="list"&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;In &lt;strong&gt;&lt;span class="text-start underline-offset-[0.25em] underline decoration-dotted decoration-foreground-450 decoration-2 hover:decoration-solid hover:cursor-pointer" data-url="ca://s?q=Explain_Azure_AI_Foundry" role="button" tabindex="0"&gt;Azure AI Foundry&lt;/span&gt;&lt;/strong&gt;, define agents declaratively:&lt;/span&gt;&lt;/p&gt;&lt;ul class="relative list-outside marker:text-foreground-750 dark:marker:text-foreground-600 flex flex-col ms-4 px-1" role="list"&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;&lt;strong&gt;Policy Agent&lt;/strong&gt; → File Search tool bound to Fabric OneLake PDF index.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;&lt;strong&gt;Data Agent&lt;/strong&gt; → Code Interpreter tool bound to Fabric Lakehouse CSV.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;&lt;strong&gt;Market Agent&lt;/strong&gt; → Semantic Kernel plugin for external APIs (e.g., property prices, GitHub MCP).&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 class="text-lg-strong pb-1 [&amp;amp;:not(:first-child)]:pt-3.5"&gt;3. &lt;strong&gt;Agent Orchestration (AutoGen + Semantic Kernel)&lt;/strong&gt;&lt;/h3&gt;&lt;ul class="relative list-outside marker:text-foreground-750 dark:marker:text-foreground-600 flex flex-col ms-4 px-1" role="list"&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;&lt;strong&gt;&lt;span class="text-start underline-offset-[0.25em] underline decoration-dotted decoration-foreground-450 decoration-2 hover:decoration-solid hover:cursor-pointer" data-url="ca://s?q=Explain_AutoGen_framework" role="button" tabindex="0"&gt;AutoGen&lt;/span&gt;&lt;/strong&gt; coordinates multi‑agent conversations.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;&lt;strong&gt;&lt;span class="text-start underline-offset-[0.25em] underline decoration-dotted decoration-foreground-450 decoration-2 hover:decoration-solid hover:cursor-pointer" data-url="ca://s?q=Explain_Semantic_Kernel" role="button" tabindex="0"&gt;Semantic Kernel&lt;/span&gt;&lt;/strong&gt; adds:&lt;/span&gt;&lt;/p&gt;&lt;ul class="relative list-outside marker:text-foreground-750 dark:marker:text-foreground-600 flex flex-col ms-4 px-1" role="list"&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;Memory (persist context across sessions).&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;Plugins (MCP connectors for external systems).&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;Agents run in &lt;strong&gt;Azure Container Apps Session Pools&lt;/strong&gt; for secure execution.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 class="text-lg-strong pb-1 [&amp;amp;:not(:first-child)]:pt-3.5"&gt;4. &lt;strong&gt;Deployment &amp;amp; Scaling&lt;/strong&gt;&lt;/h3&gt;&lt;ul class="relative list-outside marker:text-foreground-750 dark:marker:text-foreground-600 flex flex-col ms-4 px-1" role="list"&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;Deploy via &lt;strong&gt;azd templates&lt;/strong&gt; → auto‑provision ACA, Foundry endpoints, Fabric pipelines.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;Scale automatically with ACA pools; monitor via Foundry IQ dashboards.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="relative pb-6 w-full after:border-b after:border-stroke-300 after:w-full after:absolute after:mt-3"&gt;&lt;/div&gt;&lt;h2 class="text-xl-medium [&amp;amp;:not(:first-child)]:pt-3.5 pb-1"&gt;&#128202; Example Workflow&lt;/h2&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;&lt;strong&gt;User Query:&lt;/strong&gt;  
“Summarize Contoso return guidelines and top 5 selling products in Kochi.”&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;&lt;strong&gt;Execution Path:&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;ol class="relative list-outside marker:text-foreground-750 dark:marker:text-foreground-600 flex flex-col ms-5 marker:normal-nums marker:text-sm-strong" role="list" start="1"&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;Fabric ingests &lt;strong&gt;policy PDF&lt;/strong&gt; + &lt;strong&gt;sales CSV&lt;/strong&gt;.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;Policy Agent (File Search) → extracts return guidelines.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;Data Agent (Code Interpreter) → runs Python on sales CSV, outputs top 5 products.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;Market Agent (Semantic Kernel plugin) → enriches with Kochi property market context.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;AutoGen orchestrates → merges responses into a single structured answer.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="relative pb-6 w-full after:border-b after:border-stroke-300 after:w-full after:absolute after:mt-3"&gt;&lt;/div&gt;&lt;h2 class="text-xl-medium [&amp;amp;:not(:first-child)]:pt-3.5 pb-1"&gt;&#128302; Architecture Diagram (Conceptual)&lt;/h2&gt;&lt;div class="rounded-xl dark:border dark:border-stroke-250" style="opacity: 1;"&gt;&lt;div class="flex w-full items-center justify-between border-b border-white/20 bg-background-static-850 py-2 pe-2.5 ps-4 text-foreground-static-250 text-sm dark:border-stroke-250 dark:bg-background-static-900 rounded-t-xl"&gt;&lt;div class="flex items-center gap-2"&gt;&lt;span class="capitalize"&gt;Code&lt;/span&gt;&lt;button aria-expanded="true" class="relative min-h-9 min-w-9 rounded-xl bg-transparent p-2 hover:bg-white/8 active:bg-white/5" title="Collapse code snippet" type="button"&gt;&lt;svg class="size-4 transition-transform -rotate-90" fill="currentColor" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;&lt;path d="M8.46967 4.21967C8.17678 4.51256 8.17678 4.98744 8.46967 5.28033L15.1893 12L8.46967 18.7197C8.17678 19.0126 8.17678 19.4874 8.46967 19.7803C8.76256 20.0732 9.23744 20.0732 9.53033 19.7803L16.7803 12.5303C17.0732 12.2374 17.0732 11.7626 16.7803 11.4697L9.53033 4.21967C9.23744 3.92678 8.76256 3.92678 8.46967 4.21967Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/div&gt;&lt;div class="flex items-center gap-2"&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="rounded-b-xl bg-background-static-850 px-4 pb-1.5 dark:bg-background-static-900"&gt;&lt;div class="horizontal-scrollbar overflow-x-auto whitespace-pre pb-3 pt-4 text-sm"&gt;&lt;pre&gt;&lt;code class="font-ligatures-none text-sm"&gt;Fabric Pipelines → OneLake (PDF, CSV, IoT)
       ↓
Azure Foundry IQ → Agent Service (Policy, Data, Market Agents)
       ↓
AutoGen Orchestration + Semantic Kernel Plugins
       ↓
Azure Container Apps (execution, scaling)
       ↓
Unified Response (guidelines + analytics + market context)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="relative pb-6 w-full after:border-b after:border-stroke-300 after:w-full after:absolute after:mt-3"&gt;&lt;/div&gt;&lt;h2 class="text-xl-medium [&amp;amp;:not(:first-child)]:pt-3.5 pb-1"&gt;&#128640; Next Steps&lt;/h2&gt;&lt;ul class="relative list-outside marker:text-foreground-750 dark:marker:text-foreground-600 flex flex-col ms-4 px-1" role="list"&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;Prototype in &lt;strong&gt;Foundry Playground&lt;/strong&gt; → test File Search + Code Interpreter.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;Connect Fabric Lakehouse via &lt;strong&gt;Semantic Kernel plugin&lt;/strong&gt;.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;Deploy with &lt;strong&gt;azd multi‑agent template&lt;/strong&gt; for production.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="relative pb-6 w-full after:border-b after:border-stroke-300 after:w-full after:absolute after:mt-3"&gt;&lt;/div&gt;&lt;div class="space-y-3 mt-3"&gt;&lt;div class="group/ai-message-item space-y-3 break-words" id="f2dVqxuEPmBLNvvxse2Ld-content-0"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;You’re absolutely right — the new &lt;strong&gt;Azure AI Agent Service&lt;/strong&gt; is now the recommended way to build multi‑agent systems in &lt;strong&gt;Azure Foundry&lt;/strong&gt;, and it replaces the older AutoGen + Semantic Kernel orchestration. Let’s design a concrete example that uses &lt;strong&gt;Foundry + Foundry IQ + Fabric&lt;/strong&gt; together, end‑to‑end.&lt;/span&gt;&lt;/p&gt;&lt;div class="relative pb-6 w-full after:border-b after:border-stroke-300 after:w-full after:absolute after:mt-3"&gt;&lt;/div&gt;&lt;h2 class="text-xl-medium [&amp;amp;:not(:first-child)]:pt-3.5 pb-1"&gt;&#127959;️ End‑to‑End Architecture&lt;/h2&gt;&lt;h3 class="text-lg-strong pb-1 [&amp;amp;:not(:first-child)]:pt-3.5"&gt;1. &lt;strong&gt;Data Layer (Fabric)&lt;/strong&gt;&lt;/h3&gt;&lt;ul class="relative list-outside marker:text-foreground-750 dark:marker:text-foreground-600 flex flex-col ms-4 px-1" role="list"&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;&lt;strong&gt;&lt;span class="text-start underline-offset-[0.25em] underline decoration-dotted decoration-foreground-450 decoration-2 hover:decoration-solid hover:cursor-pointer" data-url="ca://s?q=Explain_Microsoft_Fabric" role="button" tabindex="0"&gt;Microsoft Fabric&lt;/span&gt;&lt;/strong&gt; handles ingestion and transformation:&lt;/span&gt;&lt;/p&gt;&lt;ul class="relative list-outside marker:text-foreground-750 dark:marker:text-foreground-600 flex flex-col ms-4 px-1" role="list"&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;PDFs (policies, contracts) → stored in &lt;strong&gt;OneLake&lt;/strong&gt;.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;CSVs (sales, IoT data) → ingested into &lt;strong&gt;Lakehouse&lt;/strong&gt; tables.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;Streaming feeds → processed via &lt;strong&gt;Eventstream&lt;/strong&gt; pipelines.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 class="text-lg-strong pb-1 [&amp;amp;:not(:first-child)]:pt-3.5"&gt;2. &lt;strong&gt;Agent Layer (Foundry IQ + Agent Service)&lt;/strong&gt;&lt;/h3&gt;&lt;ul class="relative list-outside marker:text-foreground-750 dark:marker:text-foreground-600 flex flex-col ms-4 px-1" role="list"&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;In &lt;strong&gt;&lt;span class="text-start underline-offset-[0.25em] underline decoration-dotted decoration-foreground-450 decoration-2 hover:decoration-solid hover:cursor-pointer" data-url="ca://s?q=Explain_Azure_AI_Foundry" role="button" tabindex="0"&gt;Azure AI Foundry&lt;/span&gt;&lt;/strong&gt;, you define agents declaratively:&lt;/span&gt;&lt;/p&gt;&lt;ul class="relative list-outside marker:text-foreground-750 dark:marker:text-foreground-600 flex flex-col ms-4 px-1" role="list"&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;&lt;strong&gt;Policy Agent&lt;/strong&gt; → File Search tool bound to Fabric OneLake PDFs.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;&lt;strong&gt;Data Agent&lt;/strong&gt; → Code Interpreter tool bound to Fabric Lakehouse CSVs.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;&lt;strong&gt;Market Agent&lt;/strong&gt; → External API plugin (property prices, weather, etc.).&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;These agents are deployed and managed by the &lt;strong&gt;&lt;span class="text-start underline-offset-[0.25em] underline decoration-dotted decoration-foreground-450 decoration-2 hover:decoration-solid hover:cursor-pointer" data-url="ca://s?q=Azure_AI_Agent_Service" role="button" tabindex="0"&gt;Azure AI Agent Service&lt;/span&gt;&lt;/strong&gt;, which handles scaling, execution, and secure environments.&lt;/span&gt;&lt;/p&gt;&lt;h3 class="text-lg-strong pb-1 [&amp;amp;:not(:first-child)]:pt-3.5"&gt;3. &lt;strong&gt;Orchestration (Foundry IQ)&lt;/strong&gt;&lt;/h3&gt;&lt;ul class="relative list-outside marker:text-foreground-750 dark:marker:text-foreground-600 flex flex-col ms-4 px-1" role="list"&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;Foundry IQ provides &lt;strong&gt;multi‑agent orchestration&lt;/strong&gt;:&lt;/span&gt;&lt;/p&gt;&lt;ul class="relative list-outside marker:text-foreground-750 dark:marker:text-foreground-600 flex flex-col ms-4 px-1" role="list"&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;Define workflows declaratively (YAML or SDK).&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;Agents collaborate in a managed group chat.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;Termination conditions and role assignments are built‑in.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 class="text-lg-strong pb-1 [&amp;amp;:not(:first-child)]:pt-3.5"&gt;4. &lt;strong&gt;Deployment&lt;/strong&gt;&lt;/h3&gt;&lt;ul class="relative list-outside marker:text-foreground-750 dark:marker:text-foreground-600 flex flex-col ms-4 px-1" role="list"&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;Deploy via &lt;strong&gt;azd templates&lt;/strong&gt; → automatically provisions:&lt;/span&gt;&lt;/p&gt;&lt;ul class="relative list-outside marker:text-foreground-750 dark:marker:text-foreground-600 flex flex-col ms-4 px-1" role="list"&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;ACA Session Pools for execution.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;Foundry endpoints for agents.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;Fabric pipelines for ingestion.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="relative pb-6 w-full after:border-b after:border-stroke-300 after:w-full after:absolute after:mt-3"&gt;&lt;/div&gt;&lt;h2 class="text-xl-medium [&amp;amp;:not(:first-child)]:pt-3.5 pb-1"&gt;&#128640; Example Workflow&lt;/h2&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;&lt;strong&gt;User Query:&lt;/strong&gt;  
“Summarize Contoso return guidelines and top 5 selling products in Kochi.”&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;&lt;strong&gt;Execution Path:&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;ol class="relative list-outside marker:text-foreground-750 dark:marker:text-foreground-600 flex flex-col ms-5 marker:normal-nums marker:text-sm-strong" role="list" start="1"&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;Fabric pipeline ingests &lt;strong&gt;policy PDF&lt;/strong&gt; + &lt;strong&gt;sales CSV&lt;/strong&gt;.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;Policy Agent (File Search) → extracts return guidelines.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;Data Agent (Code Interpreter) → runs Python on sales CSV, outputs top 5 products.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;Market Agent (API plugin) → enriches with Kochi property market context.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;Foundry IQ orchestrates → merges responses into a single structured answer.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="relative pb-6 w-full after:border-b after:border-stroke-300 after:w-full after:absolute after:mt-3"&gt;&lt;/div&gt;&lt;h2 class="text-xl-medium [&amp;amp;:not(:first-child)]:pt-3.5 pb-1"&gt;&#128202; Notebook‑Style Example (Python SDK)&lt;/h2&gt;&lt;div class="rounded-xl dark:border dark:border-stroke-250" style="opacity: 1;"&gt;&lt;div class="flex w-full items-center justify-between border-b border-white/20 bg-background-static-850 py-2 pe-2.5 ps-4 text-foreground-static-250 text-sm dark:border-stroke-250 dark:bg-background-static-900 rounded-t-xl"&gt;&lt;div class="flex items-center gap-2"&gt;&lt;span class="capitalize"&gt;python&lt;/span&gt;&lt;button aria-expanded="true" class="relative min-h-9 min-w-9 rounded-xl bg-transparent p-2 hover:bg-white/8 active:bg-white/5" title="Collapse code snippet" type="button"&gt;&lt;svg class="size-4 transition-transform -rotate-90" fill="currentColor" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;&lt;path d="M8.46967 4.21967C8.17678 4.51256 8.17678 4.98744 8.46967 5.28033L15.1893 12L8.46967 18.7197C8.17678 19.0126 8.17678 19.4874 8.46967 19.7803C8.76256 20.0732 9.23744 20.0732 9.53033 19.7803L16.7803 12.5303C17.0732 12.2374 17.0732 11.7626 16.7803 11.4697L9.53033 4.21967C9.23744 3.92678 8.76256 3.92678 8.46967 4.21967Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/div&gt;&lt;div class="flex items-center gap-2"&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="rounded-b-xl bg-background-static-850 px-4 pb-1.5 dark:bg-background-static-900"&gt;&lt;div class="horizontal-scrollbar overflow-x-auto whitespace-pre pb-3 pt-4 text-sm"&gt;&lt;pre&gt;&lt;code class="font-ligatures-none text-sm"&gt;&lt;span animate="end" custom="1.746" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-keyword"&gt;from&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="1.752" initial="start" variants="[object Object]"&gt; &lt;/span&gt;&lt;span animate="end" custom="1.758" initial="start" variants="[object Object]"&gt;azure.ai.agents &lt;/span&gt;&lt;span animate="end" custom="1.764" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-keyword"&gt;import&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="1.77" initial="start" variants="[object Object]"&gt; &lt;/span&gt;&lt;span animate="end" custom="1.776" initial="start" variants="[object Object]"&gt;AgentsClient
&lt;/span&gt;&lt;span animate="end" custom="1.782" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-keyword"&gt;from&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="1.788" initial="start" variants="[object Object]"&gt; &lt;/span&gt;&lt;span animate="end" custom="1.794" initial="start" variants="[object Object]"&gt;azure.identity &lt;/span&gt;&lt;span animate="end" custom="1.8" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-keyword"&gt;import&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="1.806" initial="start" variants="[object Object]"&gt; &lt;/span&gt;&lt;span animate="end" custom="1.812" initial="start" variants="[object Object]"&gt;DefaultAzureCredential

&lt;/span&gt;&lt;span animate="end" custom="1.818" initial="start" variants="[object Object]"&gt;client &lt;/span&gt;&lt;span animate="end" custom="1.824" initial="start" variants="[object Object]"&gt;= &lt;/span&gt;&lt;span animate="end" custom="1.83" initial="start" variants="[object Object]"&gt;AgentsClient(
    &lt;/span&gt;&lt;span animate="end" custom="1.836" initial="start" variants="[object Object]"&gt;endpoint=&lt;/span&gt;&lt;span animate="end" custom="1.842" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-string"&gt;"https://&amp;lt;your-foundry-project&amp;gt;.api.azure.com"&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="1.848" initial="start" variants="[object Object]"&gt;,
    &lt;/span&gt;&lt;span animate="end" custom="1.854" initial="start" variants="[object Object]"&gt;credential=DefaultAzureCredential()
&lt;/span&gt;&lt;span animate="end" custom="1.86" initial="start" variants="[object Object]"&gt;)

&lt;/span&gt;&lt;span animate="end" custom="1.866" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-comment"&gt;# Policy Agent&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="1.872" initial="start" variants="[object Object]"&gt;
&lt;/span&gt;&lt;span animate="end" custom="1.878" initial="start" variants="[object Object]"&gt;policy_agent &lt;/span&gt;&lt;span animate="end" custom="1.884" initial="start" variants="[object Object]"&gt;= &lt;/span&gt;&lt;span animate="end" custom="1.89" initial="start" variants="[object Object]"&gt;client.agents.create(
    &lt;/span&gt;&lt;span animate="end" custom="1.896" initial="start" variants="[object Object]"&gt;name=&lt;/span&gt;&lt;span animate="end" custom="1.902" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-string"&gt;"PolicyAgent"&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="1.908" initial="start" variants="[object Object]"&gt;,
    &lt;/span&gt;&lt;span animate="end" custom="1.914" initial="start" variants="[object Object]"&gt;model=&lt;/span&gt;&lt;span animate="end" custom="1.92" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-string"&gt;"gpt-4o"&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="1.926" initial="start" variants="[object Object]"&gt;,
    &lt;/span&gt;&lt;span animate="end" custom="1.932" initial="start" variants="[object Object]"&gt;tools=[{&lt;/span&gt;&lt;span animate="end" custom="1.938" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-string"&gt;"type"&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="1.944" initial="start" variants="[object Object]"&gt;: &lt;/span&gt;&lt;span animate="end" custom="1.95" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-string"&gt;"file_search"&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="1.956" initial="start" variants="[object Object]"&gt;, &lt;/span&gt;&lt;span animate="end" custom="1.962" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-string"&gt;"files"&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="1.968" initial="start" variants="[object Object]"&gt;: &lt;/span&gt;&lt;span animate="end" custom="1.974" initial="start" variants="[object Object]"&gt;[&lt;/span&gt;&lt;span animate="end" custom="1.98" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-string"&gt;"contoso_policy.pdf"&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="1.986" initial="start" variants="[object Object]"&gt;]}],
    &lt;/span&gt;&lt;span animate="end" custom="1.992" initial="start" variants="[object Object]"&gt;instructions=&lt;/span&gt;&lt;span animate="end" custom="1.998" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-string"&gt;"Answer strictly from Contoso policy document."&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="2.004" initial="start" variants="[object Object]"&gt;
&lt;/span&gt;&lt;span animate="end" custom="2.01" initial="start" variants="[object Object]"&gt;)

&lt;/span&gt;&lt;span animate="end" custom="2.016" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-comment"&gt;# Data Agent&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="2.022" initial="start" variants="[object Object]"&gt;
&lt;/span&gt;&lt;span animate="end" custom="2.028" initial="start" variants="[object Object]"&gt;data_agent &lt;/span&gt;&lt;span animate="end" custom="2.034" initial="start" variants="[object Object]"&gt;= &lt;/span&gt;&lt;span animate="end" custom="2.04" initial="start" variants="[object Object]"&gt;client.agents.create(
    &lt;/span&gt;&lt;span animate="end" custom="2.046" initial="start" variants="[object Object]"&gt;name=&lt;/span&gt;&lt;span animate="end" custom="2.052" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-string"&gt;"DataAgent"&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="2.058" initial="start" variants="[object Object]"&gt;,
    &lt;/span&gt;&lt;span animate="end" custom="2.064" initial="start" variants="[object Object]"&gt;model=&lt;/span&gt;&lt;span animate="end" custom="2.07" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-string"&gt;"gpt-4o"&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="2.076" initial="start" variants="[object Object]"&gt;,
    &lt;/span&gt;&lt;span animate="end" custom="2.082" initial="start" variants="[object Object]"&gt;tools=[{&lt;/span&gt;&lt;span animate="end" custom="2.088" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-string"&gt;"type"&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="2.094" initial="start" variants="[object Object]"&gt;: &lt;/span&gt;&lt;span animate="end" custom="2.1" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-string"&gt;"code_interpreter"&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="2.106" initial="start" variants="[object Object]"&gt;, &lt;/span&gt;&lt;span animate="end" custom="2.112" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-string"&gt;"files"&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="2.118" initial="start" variants="[object Object]"&gt;: &lt;/span&gt;&lt;span animate="end" custom="2.124" initial="start" variants="[object Object]"&gt;[&lt;/span&gt;&lt;span animate="end" custom="2.13" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-string"&gt;"sales_data.csv"&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="2.136" initial="start" variants="[object Object]"&gt;]}],
    &lt;/span&gt;&lt;span animate="end" custom="2.142" initial="start" variants="[object Object]"&gt;instructions=&lt;/span&gt;&lt;span animate="end" custom="2.148" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-string"&gt;"Analyze sales data and provide insights."&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="2.154" initial="start" variants="[object Object]"&gt;
&lt;/span&gt;&lt;span animate="end" custom="2.16" initial="start" variants="[object Object]"&gt;)

&lt;/span&gt;&lt;span animate="end" custom="2.166" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-comment"&gt;# Market Agent&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="2.172" initial="start" variants="[object Object]"&gt;
&lt;/span&gt;&lt;span animate="end" custom="2.178" initial="start" variants="[object Object]"&gt;market_agent &lt;/span&gt;&lt;span animate="end" custom="2.184" initial="start" variants="[object Object]"&gt;= &lt;/span&gt;&lt;span animate="end" custom="2.19" initial="start" variants="[object Object]"&gt;client.agents.create(
    &lt;/span&gt;&lt;span animate="end" custom="2.196" initial="start" variants="[object Object]"&gt;name=&lt;/span&gt;&lt;span animate="end" custom="2.202" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-string"&gt;"MarketAgent"&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="2.208" initial="start" variants="[object Object]"&gt;,
    &lt;/span&gt;&lt;span animate="end" custom="2.214" initial="start" variants="[object Object]"&gt;model=&lt;/span&gt;&lt;span animate="end" custom="2.22" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-string"&gt;"gpt-4o"&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="2.226" initial="start" variants="[object Object]"&gt;,
    &lt;/span&gt;&lt;span animate="end" custom="2.232" initial="start" variants="[object Object]"&gt;tools=[{&lt;/span&gt;&lt;span animate="end" custom="2.238" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-string"&gt;"type"&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="2.244" initial="start" variants="[object Object]"&gt;: &lt;/span&gt;&lt;span animate="end" custom="2.25" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-string"&gt;"api_plugin"&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="2.256" initial="start" variants="[object Object]"&gt;, &lt;/span&gt;&lt;span animate="end" custom="2.262" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-string"&gt;"endpoint"&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="2.268" initial="start" variants="[object Object]"&gt;: &lt;/span&gt;&lt;span animate="end" custom="2.274" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-string"&gt;"https://property-prices-kochi/api"&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="2.28" initial="start" variants="[object Object]"&gt;}],
    &lt;/span&gt;&lt;span animate="end" custom="2.286" initial="start" variants="[object Object]"&gt;instructions=&lt;/span&gt;&lt;span animate="end" custom="2.292" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-string"&gt;"Provide Kochi property market context."&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="2.298" initial="start" variants="[object Object]"&gt;
&lt;/span&gt;&lt;span animate="end" custom="2.304" initial="start" variants="[object Object]"&gt;)

&lt;/span&gt;&lt;span animate="end" custom="2.31" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-comment"&gt;# Orchestrate with Foundry IQ&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="2.316" initial="start" variants="[object Object]"&gt;
&lt;/span&gt;&lt;span animate="end" custom="2.322" initial="start" variants="[object Object]"&gt;workflow &lt;/span&gt;&lt;span animate="end" custom="2.328" initial="start" variants="[object Object]"&gt;= &lt;/span&gt;&lt;span animate="end" custom="2.334" initial="start" variants="[object Object]"&gt;client.workflows.create(
    &lt;/span&gt;&lt;span animate="end" custom="2.34" initial="start" variants="[object Object]"&gt;name=&lt;/span&gt;&lt;span animate="end" custom="2.346" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-string"&gt;"SalesPolicyWorkflow"&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="2.352" initial="start" variants="[object Object]"&gt;,
    &lt;/span&gt;&lt;span animate="end" custom="2.358" initial="start" variants="[object Object]"&gt;agents=[policy_agent, &lt;/span&gt;&lt;span animate="end" custom="2.364" initial="start" variants="[object Object]"&gt;data_agent, &lt;/span&gt;&lt;span animate="end" custom="2.37" initial="start" variants="[object Object]"&gt;market_agent]
&lt;/span&gt;&lt;span animate="end" custom="2.376" initial="start" variants="[object Object]"&gt;)

&lt;/span&gt;&lt;span animate="end" custom="2.382" initial="start" variants="[object Object]"&gt;response &lt;/span&gt;&lt;span animate="end" custom="2.388" initial="start" variants="[object Object]"&gt;= &lt;/span&gt;&lt;span animate="end" custom="2.394" initial="start" variants="[object Object]"&gt;workflow.run(&lt;/span&gt;&lt;span animate="end" custom="2.4" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-string"&gt;"Summarize return guidelines and top 5 selling products in Kochi."&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="2.406" initial="start" variants="[object Object]"&gt;)
&lt;/span&gt;&lt;span animate="end" custom="2.412" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-built_in"&gt;print&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="2.418" initial="start" variants="[object Object]"&gt;(response)
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="relative pb-6 w-full after:border-b after:border-stroke-300 after:w-full after:absolute after:mt-3"&gt;&lt;/div&gt;&lt;h2 class="text-xl-medium [&amp;amp;:not(:first-child)]:pt-3.5 pb-1"&gt;&#128302; Why This Matters&lt;/h2&gt;&lt;div class="max-w-full"&gt;&lt;div class="relative max-w-full"&gt;&lt;div aria-label="Scrollable table" class="horizontal-scrollbar font-ligatures-none mt-6 max-w-full overflow-x-auto rounded-lg bg-white/25 outline-2 outline-offset-1 focus-visible:outline focus-visible:outline-stroke-900 dark:bg-black/25" role="group" tabindex="0"&gt;&lt;table class="t-table" style="border-spacing: 0px;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;th scope="col" style="opacity: 1;"&gt;&lt;strong&gt;Feature&lt;/strong&gt;&lt;/th&gt;&lt;th scope="col" style="opacity: 1;"&gt;&lt;strong&gt;Old (AutoGen/SK)&lt;/strong&gt;&lt;/th&gt;&lt;th scope="col" style="opacity: 1;"&gt;&lt;strong&gt;New (Agent Service)&lt;/strong&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th scope="row" style="opacity: 1;"&gt;Setup&lt;/th&gt;&lt;td style="opacity: 1;"&gt;Manual orchestration&lt;/td&gt;&lt;td style="opacity: 1;"&gt;Declarative workflows in Foundry IQ&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th scope="row" style="opacity: 1;"&gt;Tools&lt;/th&gt;&lt;td style="opacity: 1;"&gt;Custom-coded&lt;/td&gt;&lt;td style="opacity: 1;"&gt;Built-in File Search, Code Interpreter, API plugins&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th scope="row" style="opacity: 1;"&gt;Scaling&lt;/th&gt;&lt;td style="opacity: 1;"&gt;Developer-managed&lt;/td&gt;&lt;td style="opacity: 1;"&gt;Auto-scaled ACA pools&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th scope="row" style="opacity: 1;"&gt;Integration&lt;/th&gt;&lt;td style="opacity: 1;"&gt;Limited&lt;/td&gt;&lt;td style="opacity: 1;"&gt;Fabric pipelines + OneLake + external APIs&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div class="pointer-events-none absolute inset-0 rounded-lg border border-stroke-300 dark:border-stroke-450"&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="mt-3 flex items-center gap-1"&gt;&lt;div class="relative"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="space-y-3 mt-3"&gt;&lt;div class="group/ai-message-item space-y-3 break-words" id="aEyrsPswgeTsQAuLo3qVk-content-0"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;Excellent — let’s build a &lt;strong&gt;full workshop‑style notebook flow&lt;/strong&gt; that combines &lt;strong&gt;Azure Foundry&lt;/strong&gt;, &lt;strong&gt;Foundry IQ&lt;/strong&gt;, and &lt;strong&gt;Microsoft Fabric&lt;/strong&gt;. This mirrors the GitHub multi‑agent workshop but uses the &lt;strong&gt;new Agent Service&lt;/strong&gt; instead of AutoGen/Semantic Kernel.&lt;/span&gt;&lt;/p&gt;&lt;div class="relative pb-6 w-full after:border-b after:border-stroke-300 after:w-full after:absolute after:mt-3"&gt;&lt;/div&gt;&lt;h2 class="text-xl-medium [&amp;amp;:not(:first-child)]:pt-3.5 pb-1"&gt;&#127959;️ Architecture Overview&lt;/h2&gt;&lt;ol class="relative list-outside marker:text-foreground-750 dark:marker:text-foreground-600 flex flex-col ms-5 marker:normal-nums marker:text-sm-strong" role="list" start="1"&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;&lt;strong&gt;Fabric Pipelines&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul class="relative list-outside marker:text-foreground-750 dark:marker:text-foreground-600 flex flex-col ms-4 px-1" role="list"&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;Ingest PDFs (policies), CSVs (sales data), and streaming feeds.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;Store them in &lt;strong&gt;OneLake&lt;/strong&gt; (for documents) and &lt;strong&gt;Lakehouse&lt;/strong&gt; (for tabular data).&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;&lt;strong&gt;Foundry IQ&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul class="relative list-outside marker:text-foreground-750 dark:marker:text-foreground-600 flex flex-col ms-4 px-1" role="list"&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;Define agents declaratively.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;Attach tools like File Search, Code Interpreter, or API plugins.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;Orchestrate multi‑agent workflows with built‑in collaboration logic.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;&lt;strong&gt;Azure AI Agent Service&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul class="relative list-outside marker:text-foreground-750 dark:marker:text-foreground-600 flex flex-col ms-4 px-1" role="list"&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;Runs agents securely in &lt;strong&gt;Azure Container Apps Session Pools&lt;/strong&gt;.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;Handles scaling, execution, and environment isolation.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="relative pb-6 w-full after:border-b after:border-stroke-300 after:w-full after:absolute after:mt-3"&gt;&lt;/div&gt;&lt;h2 class="text-xl-medium [&amp;amp;:not(:first-child)]:pt-3.5 pb-1"&gt;&#128211; Notebook‑Style Walkthrough&lt;/h2&gt;&lt;h3 class="text-lg-strong pb-1 [&amp;amp;:not(:first-child)]:pt-3.5"&gt;Step 1: Fabric Data Ingestion&lt;/h3&gt;&lt;div class="rounded-xl dark:border dark:border-stroke-250" style="opacity: 1;"&gt;&lt;div class="flex w-full items-center justify-between border-b border-white/20 bg-background-static-850 py-2 pe-2.5 ps-4 text-foreground-static-250 text-sm dark:border-stroke-250 dark:bg-background-static-900 rounded-t-xl"&gt;&lt;div class="flex items-center gap-2"&gt;&lt;span class="capitalize"&gt;python&lt;/span&gt;&lt;button aria-expanded="true" class="relative min-h-9 min-w-9 rounded-xl bg-transparent p-2 hover:bg-white/8 active:bg-white/5" title="Collapse code snippet" type="button"&gt;&lt;svg class="size-4 transition-transform -rotate-90" fill="currentColor" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;&lt;path d="M8.46967 4.21967C8.17678 4.51256 8.17678 4.98744 8.46967 5.28033L15.1893 12L8.46967 18.7197C8.17678 19.0126 8.17678 19.4874 8.46967 19.7803C8.76256 20.0732 9.23744 20.0732 9.53033 19.7803L16.7803 12.5303C17.0732 12.2374 17.0732 11.7626 16.7803 11.4697L9.53033 4.21967C9.23744 3.92678 8.76256 3.92678 8.46967 4.21967Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/div&gt;&lt;div class="flex items-center gap-2"&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="rounded-b-xl bg-background-static-850 px-4 pb-1.5 dark:bg-background-static-900"&gt;&lt;div class="horizontal-scrollbar overflow-x-auto whitespace-pre pb-3 pt-4 text-sm"&gt;&lt;pre&gt;&lt;code class="font-ligatures-none text-sm"&gt;&lt;span animate="end" custom="0.678" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-comment"&gt;# Example: Ingest sales CSV into Fabric Lakehouse&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="0.684" initial="start" variants="[object Object]"&gt;
&lt;/span&gt;&lt;span animate="end" custom="0.69" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-keyword"&gt;from&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="0.696" initial="start" variants="[object Object]"&gt; &lt;/span&gt;&lt;span animate="end" custom="0.702" initial="start" variants="[object Object]"&gt;microsoft.fabric &lt;/span&gt;&lt;span animate="end" custom="0.708" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-keyword"&gt;import&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="0.714" initial="start" variants="[object Object]"&gt; &lt;/span&gt;&lt;span animate="end" custom="0.72" initial="start" variants="[object Object]"&gt;LakehouseClient

&lt;/span&gt;&lt;span animate="end" custom="0.726" initial="start" variants="[object Object]"&gt;lakehouse &lt;/span&gt;&lt;span animate="end" custom="0.732" initial="start" variants="[object Object]"&gt;= &lt;/span&gt;&lt;span animate="end" custom="0.738" initial="start" variants="[object Object]"&gt;LakehouseClient(workspace=&lt;/span&gt;&lt;span animate="end" custom="0.744" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-string"&gt;"ContosoWorkspace"&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="0.75" initial="start" variants="[object Object]"&gt;)
&lt;/span&gt;&lt;span animate="end" custom="0.756" initial="start" variants="[object Object]"&gt;lakehouse.ingest_csv(&lt;/span&gt;&lt;span animate="end" custom="0.762" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-string"&gt;"sales_data.csv"&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="0.768" initial="start" variants="[object Object]"&gt;, &lt;/span&gt;&lt;span animate="end" custom="0.774" initial="start" variants="[object Object]"&gt;table_name=&lt;/span&gt;&lt;span animate="end" custom="0.78" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-string"&gt;"SalesTable"&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="0.786" initial="start" variants="[object Object]"&gt;)

&lt;/span&gt;&lt;span animate="end" custom="0.792" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-comment"&gt;# Ingest policy PDF into OneLake&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="0.798" initial="start" variants="[object Object]"&gt;
&lt;/span&gt;&lt;span animate="end" custom="0.804" initial="start" variants="[object Object]"&gt;lakehouse.ingest_file(&lt;/span&gt;&lt;span animate="end" custom="0.81" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-string"&gt;"contoso_policy.pdf"&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="0.816" initial="start" variants="[object Object]"&gt;, &lt;/span&gt;&lt;span animate="end" custom="0.822" initial="start" variants="[object Object]"&gt;folder=&lt;/span&gt;&lt;span animate="end" custom="0.828" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-string"&gt;"Policies"&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="0.834" initial="start" variants="[object Object]"&gt;)
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="relative pb-6 w-full after:border-b after:border-stroke-300 after:w-full after:absolute after:mt-3"&gt;&lt;/div&gt;&lt;h3 class="text-lg-strong pb-1 [&amp;amp;:not(:first-child)]:pt-3.5"&gt;Step 2: Define Agents in Foundry&lt;/h3&gt;&lt;div class="rounded-xl dark:border dark:border-stroke-250" style="opacity: 1;"&gt;&lt;div class="flex w-full items-center justify-between border-b border-white/20 bg-background-static-850 py-2 pe-2.5 ps-4 text-foreground-static-250 text-sm dark:border-stroke-250 dark:bg-background-static-900 rounded-t-xl"&gt;&lt;div class="flex items-center gap-2"&gt;&lt;span class="capitalize"&gt;python&lt;/span&gt;&lt;button aria-expanded="true" class="relative min-h-9 min-w-9 rounded-xl bg-transparent p-2 hover:bg-white/8 active:bg-white/5" title="Collapse code snippet" type="button"&gt;&lt;svg class="size-4 transition-transform -rotate-90" fill="currentColor" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;&lt;path d="M8.46967 4.21967C8.17678 4.51256 8.17678 4.98744 8.46967 5.28033L15.1893 12L8.46967 18.7197C8.17678 19.0126 8.17678 19.4874 8.46967 19.7803C8.76256 20.0732 9.23744 20.0732 9.53033 19.7803L16.7803 12.5303C17.0732 12.2374 17.0732 11.7626 16.7803 11.4697L9.53033 4.21967C9.23744 3.92678 8.76256 3.92678 8.46967 4.21967Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/div&gt;&lt;div class="flex items-center gap-2"&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="rounded-b-xl bg-background-static-850 px-4 pb-1.5 dark:bg-background-static-900"&gt;&lt;div class="horizontal-scrollbar overflow-x-auto whitespace-pre pb-3 pt-4 text-sm"&gt;&lt;pre&gt;&lt;code class="font-ligatures-none text-sm"&gt;&lt;span animate="end" custom="0.882" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-keyword"&gt;from&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="0.888" initial="start" variants="[object Object]"&gt; &lt;/span&gt;&lt;span animate="end" custom="0.894" initial="start" variants="[object Object]"&gt;azure.ai.agents &lt;/span&gt;&lt;span animate="end" custom="0.9" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-keyword"&gt;import&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="0.906" initial="start" variants="[object Object]"&gt; &lt;/span&gt;&lt;span animate="end" custom="0.912" initial="start" variants="[object Object]"&gt;AgentsClient
&lt;/span&gt;&lt;span animate="end" custom="0.918" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-keyword"&gt;from&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="0.924" initial="start" variants="[object Object]"&gt; &lt;/span&gt;&lt;span animate="end" custom="0.93" initial="start" variants="[object Object]"&gt;azure.identity &lt;/span&gt;&lt;span animate="end" custom="0.936" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-keyword"&gt;import&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="0.942" initial="start" variants="[object Object]"&gt; &lt;/span&gt;&lt;span animate="end" custom="0.948" initial="start" variants="[object Object]"&gt;DefaultAzureCredential

&lt;/span&gt;&lt;span animate="end" custom="0.954" initial="start" variants="[object Object]"&gt;client &lt;/span&gt;&lt;span animate="end" custom="0.96" initial="start" variants="[object Object]"&gt;= &lt;/span&gt;&lt;span animate="end" custom="0.966" initial="start" variants="[object Object]"&gt;AgentsClient(
    &lt;/span&gt;&lt;span animate="end" custom="0.972" initial="start" variants="[object Object]"&gt;endpoint=&lt;/span&gt;&lt;span animate="end" custom="0.978" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-string"&gt;"https://&amp;lt;your-foundry-project&amp;gt;.api.azure.com"&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="0.984" initial="start" variants="[object Object]"&gt;,
    &lt;/span&gt;&lt;span animate="end" custom="0.99" initial="start" variants="[object Object]"&gt;credential=DefaultAzureCredential()
&lt;/span&gt;&lt;span animate="end" custom="0.996" initial="start" variants="[object Object]"&gt;)

&lt;/span&gt;&lt;span animate="end" custom="1.002" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-comment"&gt;# Policy Agent&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="1.008" initial="start" variants="[object Object]"&gt;
&lt;/span&gt;&lt;span animate="end" custom="1.014" initial="start" variants="[object Object]"&gt;policy_agent &lt;/span&gt;&lt;span animate="end" custom="1.02" initial="start" variants="[object Object]"&gt;= &lt;/span&gt;&lt;span animate="end" custom="1.026" initial="start" variants="[object Object]"&gt;client.agents.create(
    &lt;/span&gt;&lt;span animate="end" custom="1.032" initial="start" variants="[object Object]"&gt;name=&lt;/span&gt;&lt;span animate="end" custom="1.038" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-string"&gt;"PolicyAgent"&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="1.044" initial="start" variants="[object Object]"&gt;,
    &lt;/span&gt;&lt;span animate="end" custom="1.05" initial="start" variants="[object Object]"&gt;model=&lt;/span&gt;&lt;span animate="end" custom="1.056" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-string"&gt;"gpt-4o"&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="1.062" initial="start" variants="[object Object]"&gt;,
    &lt;/span&gt;&lt;span animate="end" custom="1.068" initial="start" variants="[object Object]"&gt;tools=[{&lt;/span&gt;&lt;span animate="end" custom="1.074" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-string"&gt;"type"&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="1.08" initial="start" variants="[object Object]"&gt;: &lt;/span&gt;&lt;span animate="end" custom="1.086" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-string"&gt;"file_search"&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="1.092" initial="start" variants="[object Object]"&gt;, &lt;/span&gt;&lt;span animate="end" custom="1.098" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-string"&gt;"files"&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="1.104" initial="start" variants="[object Object]"&gt;: &lt;/span&gt;&lt;span animate="end" custom="1.11" initial="start" variants="[object Object]"&gt;[&lt;/span&gt;&lt;span animate="end" custom="1.116" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-string"&gt;"contoso_policy.pdf"&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="1.122" initial="start" variants="[object Object]"&gt;]}],
    &lt;/span&gt;&lt;span animate="end" custom="1.128" initial="start" variants="[object Object]"&gt;instructions=&lt;/span&gt;&lt;span animate="end" custom="1.134" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-string"&gt;"Answer strictly from Contoso policy document."&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="1.14" initial="start" variants="[object Object]"&gt;
&lt;/span&gt;&lt;span animate="end" custom="1.146" initial="start" variants="[object Object]"&gt;)

&lt;/span&gt;&lt;span animate="end" custom="1.152" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-comment"&gt;# Data Agent&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="1.158" initial="start" variants="[object Object]"&gt;
&lt;/span&gt;&lt;span animate="end" custom="1.164" initial="start" variants="[object Object]"&gt;data_agent &lt;/span&gt;&lt;span animate="end" custom="1.17" initial="start" variants="[object Object]"&gt;= &lt;/span&gt;&lt;span animate="end" custom="1.176" initial="start" variants="[object Object]"&gt;client.agents.create(
    &lt;/span&gt;&lt;span animate="end" custom="1.182" initial="start" variants="[object Object]"&gt;name=&lt;/span&gt;&lt;span animate="end" custom="1.188" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-string"&gt;"DataAgent"&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="1.194" initial="start" variants="[object Object]"&gt;,
    &lt;/span&gt;&lt;span animate="end" custom="1.2" initial="start" variants="[object Object]"&gt;model=&lt;/span&gt;&lt;span animate="end" custom="1.206" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-string"&gt;"gpt-4o"&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="1.212" initial="start" variants="[object Object]"&gt;,
    &lt;/span&gt;&lt;span animate="end" custom="1.218" initial="start" variants="[object Object]"&gt;tools=[{&lt;/span&gt;&lt;span animate="end" custom="1.224" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-string"&gt;"type"&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="1.23" initial="start" variants="[object Object]"&gt;: &lt;/span&gt;&lt;span animate="end" custom="1.236" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-string"&gt;"code_interpreter"&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="1.242" initial="start" variants="[object Object]"&gt;, &lt;/span&gt;&lt;span animate="end" custom="1.248" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-string"&gt;"files"&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="1.254" initial="start" variants="[object Object]"&gt;: &lt;/span&gt;&lt;span animate="end" custom="1.26" initial="start" variants="[object Object]"&gt;[&lt;/span&gt;&lt;span animate="end" custom="1.266" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-string"&gt;"sales_data.csv"&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="1.272" initial="start" variants="[object Object]"&gt;]}],
    &lt;/span&gt;&lt;span animate="end" custom="1.278" initial="start" variants="[object Object]"&gt;instructions=&lt;/span&gt;&lt;span animate="end" custom="1.284" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-string"&gt;"Analyze sales data and provide insights."&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="1.29" initial="start" variants="[object Object]"&gt;
&lt;/span&gt;&lt;span animate="end" custom="1.296" initial="start" variants="[object Object]"&gt;)

&lt;/span&gt;&lt;span animate="end" custom="1.302" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-comment"&gt;# Market Agent&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="1.308" initial="start" variants="[object Object]"&gt;
&lt;/span&gt;&lt;span animate="end" custom="1.314" initial="start" variants="[object Object]"&gt;market_agent &lt;/span&gt;&lt;span animate="end" custom="1.32" initial="start" variants="[object Object]"&gt;= &lt;/span&gt;&lt;span animate="end" custom="1.326" initial="start" variants="[object Object]"&gt;client.agents.create(
    &lt;/span&gt;&lt;span animate="end" custom="1.332" initial="start" variants="[object Object]"&gt;name=&lt;/span&gt;&lt;span animate="end" custom="1.338" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-string"&gt;"MarketAgent"&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="1.344" initial="start" variants="[object Object]"&gt;,
    &lt;/span&gt;&lt;span animate="end" custom="1.35" initial="start" variants="[object Object]"&gt;model=&lt;/span&gt;&lt;span animate="end" custom="1.356" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-string"&gt;"gpt-4o"&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="1.362" initial="start" variants="[object Object]"&gt;,
    &lt;/span&gt;&lt;span animate="end" custom="1.368" initial="start" variants="[object Object]"&gt;tools=[{&lt;/span&gt;&lt;span animate="end" custom="1.374" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-string"&gt;"type"&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="1.38" initial="start" variants="[object Object]"&gt;: &lt;/span&gt;&lt;span animate="end" custom="1.386" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-string"&gt;"api_plugin"&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="1.392" initial="start" variants="[object Object]"&gt;, &lt;/span&gt;&lt;span animate="end" custom="1.398" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-string"&gt;"endpoint"&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="1.404" initial="start" variants="[object Object]"&gt;: &lt;/span&gt;&lt;span animate="end" custom="1.41" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-string"&gt;"https://property-prices-kochi/api"&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="1.416" initial="start" variants="[object Object]"&gt;}],
    &lt;/span&gt;&lt;span animate="end" custom="1.422" initial="start" variants="[object Object]"&gt;instructions=&lt;/span&gt;&lt;span animate="end" custom="1.428" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-string"&gt;"Provide Kochi property market context."&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="1.434" initial="start" variants="[object Object]"&gt;
&lt;/span&gt;&lt;span animate="end" custom="1.44" initial="start" variants="[object Object]"&gt;)
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="relative pb-6 w-full after:border-b after:border-stroke-300 after:w-full after:absolute after:mt-3"&gt;&lt;/div&gt;&lt;h3 class="text-lg-strong pb-1 [&amp;amp;:not(:first-child)]:pt-3.5"&gt;Step 3: Orchestrate Workflow with Foundry IQ&lt;/h3&gt;&lt;div class="rounded-xl dark:border dark:border-stroke-250" style="opacity: 1;"&gt;&lt;div class="flex w-full items-center justify-between border-b border-white/20 bg-background-static-850 py-2 pe-2.5 ps-4 text-foreground-static-250 text-sm dark:border-stroke-250 dark:bg-background-static-900 rounded-t-xl"&gt;&lt;div class="flex items-center gap-2"&gt;&lt;span class="capitalize"&gt;python&lt;/span&gt;&lt;button aria-expanded="true" class="relative min-h-9 min-w-9 rounded-xl bg-transparent p-2 hover:bg-white/8 active:bg-white/5" title="Collapse code snippet" type="button"&gt;&lt;svg class="size-4 transition-transform -rotate-90" fill="currentColor" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;&lt;path d="M8.46967 4.21967C8.17678 4.51256 8.17678 4.98744 8.46967 5.28033L15.1893 12L8.46967 18.7197C8.17678 19.0126 8.17678 19.4874 8.46967 19.7803C8.76256 20.0732 9.23744 20.0732 9.53033 19.7803L16.7803 12.5303C17.0732 12.2374 17.0732 11.7626 16.7803 11.4697L9.53033 4.21967C9.23744 3.92678 8.76256 3.92678 8.46967 4.21967Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/div&gt;&lt;div class="flex items-center gap-2"&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="rounded-b-xl bg-background-static-850 px-4 pb-1.5 dark:bg-background-static-900"&gt;&lt;div class="horizontal-scrollbar overflow-x-auto whitespace-pre pb-3 pt-4 text-sm"&gt;&lt;pre&gt;&lt;code class="font-ligatures-none text-sm"&gt;&lt;span animate="end" custom="1.494" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-comment"&gt;# Create workflow&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="1.5" initial="start" variants="[object Object]"&gt;
&lt;/span&gt;&lt;span animate="end" custom="1.506" initial="start" variants="[object Object]"&gt;workflow &lt;/span&gt;&lt;span animate="end" custom="1.512" initial="start" variants="[object Object]"&gt;= &lt;/span&gt;&lt;span animate="end" custom="1.518" initial="start" variants="[object Object]"&gt;client.workflows.create(
    &lt;/span&gt;&lt;span animate="end" custom="1.524" initial="start" variants="[object Object]"&gt;name=&lt;/span&gt;&lt;span animate="end" custom="1.53" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-string"&gt;"SalesPolicyWorkflow"&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="1.536" initial="start" variants="[object Object]"&gt;,
    &lt;/span&gt;&lt;span animate="end" custom="1.542" initial="start" variants="[object Object]"&gt;agents=[policy_agent, &lt;/span&gt;&lt;span animate="end" custom="1.548" initial="start" variants="[object Object]"&gt;data_agent, &lt;/span&gt;&lt;span animate="end" custom="1.554" initial="start" variants="[object Object]"&gt;market_agent]
&lt;/span&gt;&lt;span animate="end" custom="1.56" initial="start" variants="[object Object]"&gt;)

&lt;/span&gt;&lt;span animate="end" custom="1.566" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-comment"&gt;# Run query&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="1.572" initial="start" variants="[object Object]"&gt;
&lt;/span&gt;&lt;span animate="end" custom="1.578" initial="start" variants="[object Object]"&gt;response &lt;/span&gt;&lt;span animate="end" custom="1.584" initial="start" variants="[object Object]"&gt;= &lt;/span&gt;&lt;span animate="end" custom="1.59" initial="start" variants="[object Object]"&gt;workflow.run(&lt;/span&gt;&lt;span animate="end" custom="1.596" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-string"&gt;"Summarize return guidelines and top 5 selling products in Kochi."&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="1.602" initial="start" variants="[object Object]"&gt;)
&lt;/span&gt;&lt;span animate="end" custom="1.608" initial="start" variants="[object Object]"&gt;&lt;span class="hljs-built_in"&gt;print&lt;/span&gt;&lt;/span&gt;&lt;span animate="end" custom="1.614" initial="start" variants="[object Object]"&gt;(response)
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="relative pb-6 w-full after:border-b after:border-stroke-300 after:w-full after:absolute after:mt-3"&gt;&lt;/div&gt;&lt;h3 class="text-lg-strong pb-1 [&amp;amp;:not(:first-child)]:pt-3.5"&gt;Step 4: Deployment&lt;/h3&gt;&lt;ul class="relative list-outside marker:text-foreground-750 dark:marker:text-foreground-600 flex flex-col ms-4 px-1" role="list"&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;Use &lt;strong&gt;azd templates&lt;/strong&gt; to deploy the workflow.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;ACA Session Pools handle execution.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;Fabric pipelines continuously feed updated data.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;Foundry IQ dashboards monitor agent performance.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="relative pb-6 w-full after:border-b after:border-stroke-300 after:w-full after:absolute after:mt-3"&gt;&lt;/div&gt;&lt;h2 class="text-xl-medium [&amp;amp;:not(:first-child)]:pt-3.5 pb-1"&gt;&#128202; Benefits of New Approach&lt;/h2&gt;&lt;div class="max-w-full"&gt;&lt;div class="relative max-w-full"&gt;&lt;div aria-label="Scrollable table" class="horizontal-scrollbar font-ligatures-none mt-6 max-w-full overflow-x-auto rounded-lg bg-white/25 outline-2 outline-offset-1 focus-visible:outline focus-visible:outline-stroke-900 dark:bg-black/25" role="group" tabindex="0"&gt;&lt;table class="t-table" style="border-spacing: 0px;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;th scope="col" style="opacity: 1;"&gt;&lt;strong&gt;Aspect&lt;/strong&gt;&lt;/th&gt;&lt;th scope="col" style="opacity: 1;"&gt;&lt;strong&gt;Old (AutoGen/SK)&lt;/strong&gt;&lt;/th&gt;&lt;th scope="col" style="opacity: 1;"&gt;&lt;strong&gt;New (Agent Service + Foundry IQ)&lt;/strong&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th scope="row" style="opacity: 1;"&gt;Setup&lt;/th&gt;&lt;td style="opacity: 1;"&gt;Manual orchestration&lt;/td&gt;&lt;td style="opacity: 1;"&gt;Declarative workflows&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th scope="row" style="opacity: 1;"&gt;Tools&lt;/th&gt;&lt;td style="opacity: 1;"&gt;Custom-coded&lt;/td&gt;&lt;td style="opacity: 1;"&gt;Built-in File Search, Code Interpreter, API plugins&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th scope="row" style="opacity: 1;"&gt;Scaling&lt;/th&gt;&lt;td style="opacity: 1;"&gt;Developer-managed&lt;/td&gt;&lt;td style="opacity: 1;"&gt;Auto-scaled ACA pools&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th scope="row" style="opacity: 1;"&gt;Integration&lt;/th&gt;&lt;td style="opacity: 1;"&gt;Limited&lt;/td&gt;&lt;td style="opacity: 1;"&gt;Fabric pipelines + OneLake + external APIs&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th scope="row" style="opacity: 1;"&gt;Monitoring&lt;/th&gt;&lt;td style="opacity: 1;"&gt;Ad hoc&lt;/td&gt;&lt;td style="opacity: 1;"&gt;Foundry IQ dashboards&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div class="pointer-events-none absolute inset-0 rounded-lg border border-stroke-300 dark:border-stroke-450"&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="mt-3 flex items-center gap-1"&gt;&lt;div class="relative"&gt;&lt;button aria-label="Copy table" class="relative flex items-center text-foreground-800 fill-foreground-800 active:text-foreground-600 active:fill-foreground-600 dark:active:text-foreground-650 dark:active:fill-foreground-650 bg-transparent safe-hover:bg-black/5 active:bg-black/3 dark:safe-hover:bg-white/8 dark:active:bg-white/5 text-sm justify-center size-9 rounded-xl after:rounded-xl after:absolute after:inset-0 after:pointer-events-none after:border after:border-transparent after:contrast-more:border-2 outline-2 outline-offset-1 focus-visible:z-[1] focus-visible:outline focus-visible:outline-stroke-900 forced-colors:transition-none forced-colors:safe-hover:!bg-[Highlight] forced-colors:safe-hover:!text-[HighlightText] forced-colors:safe-hover:!fill-[HighlightText] forced-colors:active:!bg-[Highlight] forced-colors:active:!text-[HighlightText] forced-colors:active:!fill-[HighlightText]" data-spatial-navigation-autofocus="false" data-testid="copy-table-button" data-tooltip-state="closed" type="button"&gt;&lt;div style="opacity: 1;"&gt;&lt;svg class="size-5" fill="currentColor" viewbox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"&gt;&lt;path d="M8 2C6.89543 2 6 2.89543 6 4V14C6 15.1046 6.89543 16 8 16H14C15.1046 16 16 15.1046 16 14V4C16 2.89543 15.1046 2 14 2H8ZM7 4C7 3.44772 7.44772 3 8 3H14C14.5523 3 15 3.44772 15 4V14C15 14.5523 14.5523 15 14 15H8C7.44772 15 7 14.5523 7 14V4ZM4 6.00001C4 5.25973 4.4022 4.61339 5 4.26758V14.5C5 15.8807 6.11929 17 7.5 17H13.7324C13.3866 17.5978 12.7403 18 12 18H7.5C5.567 18 4 16.433 4 14.5V6.00001Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/div&gt;&lt;/button&gt;&lt;div class="pointer-events-none absolute -top-12 start-1/2 z-40 [transform:translateX(-50%)] rtl:[transform:translateX(50%)]"&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="relative"&gt;&lt;button aria-label="Download table" class="relative flex items-center text-foreground-800 fill-foreground-800 active:text-foreground-600 active:fill-foreground-600 dark:active:text-foreground-650 dark:active:fill-foreground-650 bg-transparent safe-hover:bg-black/5 active:bg-black/3 dark:safe-hover:bg-white/8 dark:active:bg-white/5 text-sm justify-center size-9 rounded-xl after:rounded-xl after:absolute after:inset-0 after:pointer-events-none after:border after:border-transparent after:contrast-more:border-2 outline-2 outline-offset-1 focus-visible:z-[1] focus-visible:outline focus-visible:outline-stroke-900 forced-colors:transition-none forced-colors:safe-hover:!bg-[Highlight] forced-colors:safe-hover:!text-[HighlightText] forced-colors:safe-hover:!fill-[HighlightText] forced-colors:active:!bg-[Highlight] forced-colors:active:!text-[HighlightText] forced-colors:active:!fill-[HighlightText]" data-spatial-navigation-autofocus="false" data-testid="download-table-button" data-tooltip-state="closed" type="button"&gt;&lt;div style="opacity: 1;"&gt;&lt;svg class="size-5" fill="currentColor" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;&lt;path d="M18.2498 20.5009C18.664 20.5008 19 20.8365 19 21.2507C19 21.6649 18.6644 22.0008 18.2502 22.0009L5.25022 22.0047C4.836 22.0048 4.5 21.6691 4.5 21.2549C4.5 20.8407 4.83557 20.5048 5.24978 20.5047L18.2498 20.5009ZM11.6482 2.01271L11.75 2.00586C12.1297 2.00586 12.4435 2.28801 12.4932 2.65409L12.5 2.75586L12.499 16.4409L16.2208 12.7205C16.4871 12.4543 16.9038 12.4301 17.1974 12.648L17.2815 12.7206C17.5477 12.9869 17.5719 13.4036 17.354 13.6972L17.2814 13.7813L12.2837 18.7779C12.0176 19.044 11.6012 19.0683 11.3076 18.8507L11.2235 18.7782L6.22003 13.7816C5.92694 13.4889 5.92661 13.014 6.21931 12.7209C6.48539 12.4545 6.90204 12.43 7.1958 12.6477L7.27997 12.7202L10.999 16.4339L11 2.75586C11 2.37616 11.2822 2.06237 11.6482 2.01271L11.75 2.00586L11.6482 2.01271Z" fill="currentColor"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/div&gt;&lt;/button&gt;&lt;div class="pointer-events-none absolute -top-12 start-1/2 z-40 [transform:translateX(-50%)] rtl:[transform:translateX(50%)]"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="relative pb-6 w-full after:border-b after:border-stroke-300 after:w-full after:absolute after:mt-3"&gt;&lt;/div&gt;&lt;h2 class="text-xl-medium [&amp;amp;:not(:first-child)]:pt-3.5 pb-1"&gt;&#128302; Next Steps&lt;/h2&gt;&lt;ul class="relative list-outside marker:text-foreground-750 dark:marker:text-foreground-600 flex flex-col ms-4 px-1" role="list"&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;Extend with &lt;strong&gt;&lt;span class="text-start underline-offset-[0.25em] underline decoration-dotted decoration-foreground-450 decoration-2 hover:decoration-solid hover:cursor-pointer" data-url="ca://s?q=Explain_Fabric_Eventstream" role="button" tabindex="0"&gt;Fabric Eventstream&lt;/span&gt;&lt;/strong&gt; for real‑time ingestion.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;Add &lt;strong&gt;&lt;span class="text-start underline-offset-[0.25em] underline decoration-dotted decoration-foreground-450 decoration-2 hover:decoration-solid hover:cursor-pointer" data-url="ca://s?q=Explain_Foundry_IQ_dashboards" role="button" tabindex="0"&gt;Foundry IQ dashboards&lt;/span&gt;&lt;/strong&gt; for monitoring agent collaboration.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;Use &lt;strong&gt;&lt;span class="text-start underline-offset-[0.25em] underline decoration-dotted decoration-foreground-450 decoration-2 hover:decoration-solid hover:cursor-pointer" data-url="ca://s?q=Explain_azd_templates" role="button" tabindex="0"&gt;azd deployment templates&lt;/span&gt;&lt;/strong&gt; for production rollout.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="relative pb-6 w-full after:border-b after:border-stroke-300 after:w-full after:absolute after:mt-3"&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="group/ai-message-item space-y-3 break-words" id="f2dVqxuEPmBLNvvxse2Ld-content-1"&gt;&lt;div data-ads-rg="548fc8aac03e4841a77ecc450d51d11a" data-testid="ads-card"&gt;&lt;div class="isolate group relative w-full bg-white/45 text-foreground-750 dark:bg-background-650/10" style="clip-path: var(--clip-path-squircle-36);"&gt;&lt;div class="w-full items-center py-3 text-foreground-750 text-sm"&gt;&lt;div aria-label="Ads have been generated. Summary: Azure accounts unlock seamless deployment across clouds and on-premises, ideal for integrating Foundry agents with Fabric pipelines for end-to-end AI workflows.. Content: Text ad. Title: Microsoft Azure - Create Your Account Now. Description: Create, Deploy &amp;amp; Manage Applications Across Multiple Clouds, On-Premises &amp;amp; At the Edge. Build Cloud-Connected Mobile Experiences Based On Customer Interests &amp;amp; Behaviors..." class="text-sm" style="height: auto; opacity: 1;" tabindex="0"&gt;&lt;div class="flex flex-col gap-2"&gt;&lt;div class="relative isolate bg-background-300/20 dark:bg-background-650/5 group/ad mx-3" style="clip-path: var(--clip-path-squircle-24);"&gt;&lt;div class="before:border-transparent before:border-[20px] pointer-events-none absolute inset-0 before:absolute before:inset-0 before:rounded-inherit" style="clip-path: var(--clip-path-squircle-stroke-24);"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="before:border-black/10 dark:before:border-white/10 before:border-[20px] will-change-transform pointer-events-none absolute inset-0 before:absolute before:inset-0 before:rounded-inherit" style="clip-path: var(--clip-path-squircle-stroke-36);"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="group/ai-message-item space-y-3 break-words" id="qyQWc5muYiWhkB9mNmHCa-content-1"&gt;&lt;div data-ads-rg="8d61f2562d9d4c2cb1f8b8c184062d58" data-testid="ads-card"&gt;&lt;div class="isolate group relative w-full bg-white/45 text-foreground-750 dark:bg-background-650/10" style="clip-path: var(--clip-path-squircle-36);"&gt;&lt;div class="w-full items-center py-3 text-foreground-750 text-sm"&gt;&lt;div aria-label="Ads have been generated. Summary: Microsoft Azure offers tools to deploy and manage multi-cloud workloads, ideal for developers experimenting with Foundry SDK agents and integrating AI-driven services seamlessly.. Content: Text ad. Title: Microsoft Azure Developer - Create Workloads In Azure. Description: Create, Deploy &amp;amp; Manage Applications Across Multiple Clouds, On-Premises &amp;amp; At the Edge. Build Cloud-Connected Mobile Experiences Based On Customer Interests &amp;amp; Behaviors..." class="text-sm" style="height: auto; opacity: 1;" tabindex="0"&gt;&lt;div class="flex flex-col gap-2"&gt;&lt;div class="relative isolate bg-background-300/20 dark:bg-background-650/5 group/ad mx-3" style="clip-path: var(--clip-path-squircle-24);"&gt;&lt;div class="before:border-transparent before:border-[20px] pointer-events-none absolute inset-0 before:absolute before:inset-0 before:rounded-inherit" style="clip-path: var(--clip-path-squircle-stroke-24);"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="before:border-black/10 dark:before:border-white/10 before:border-[20px] will-change-transform pointer-events-none absolute inset-0 before:absolute before:inset-0 before:rounded-inherit" style="clip-path: var(--clip-path-squircle-stroke-36);"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="group/ai-message-item space-y-3 break-words" id="dKo8XnSeyZ3NLgN3gC3oX-content-1"&gt;&lt;div data-ads-rg="f41cfc29e8554d9fb256a1535aead641" data-testid="ads-card"&gt;&lt;div class="isolate group relative w-full bg-white/45 text-foreground-750 dark:bg-background-650/10" style="clip-path: var(--clip-path-squircle-36);"&gt;&lt;div class="w-full items-center py-3 text-foreground-750 text-sm"&gt;&lt;div aria-label="Ads have been generated. Summary: Microsoft Azure lets developers quickly deploy multi-agent systems with Foundry and Agent Service, offering managed compute, seamless scaling, and integration with AI tools—ideal for prototyping complex workflows.. Content: Text ad. Title: Microsoft Azure Official Site - Create Your Free Account Today. Description: Our Products and Cloud Services Are Designed To Help You Bring New Ideas To Life. Reliable and Innovative Cloud Solutions For Your Needs. No Upfront Costs..." class="text-sm" style="height: auto; opacity: 1;" tabindex="0"&gt;&lt;div class="flex flex-col gap-2"&gt;&lt;div class="relative isolate bg-background-300/20 dark:bg-background-650/5 group/ad mx-3" style="clip-path: var(--clip-path-squircle-24);"&gt;&lt;div class="before:border-transparent before:border-[20px] pointer-events-none absolute inset-0 before:absolute before:inset-0 before:rounded-inherit" style="clip-path: var(--clip-path-squircle-stroke-24);"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="before:border-black/10 dark:before:border-white/10 before:border-[20px] will-change-transform pointer-events-none absolute inset-0 before:absolute before:inset-0 before:rounded-inherit" style="clip-path: var(--clip-path-squircle-stroke-36);"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Open Source Open Mind&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi68FbtGUvJayctd05-uwzuVZbwriqauA-xt_Scf2TUMeMy0LO0SibGrrJEockDpiWa8cm1bUxdzU3vG9hbGUR8bm0VGasYkwTNTCR9vXRWZP7pKVwl8M1oHUVRUQ8xw56Yh10TPKAonsj53vd7XNSibbTiqN9Tl1JgO5rzwZmO8VRkwhv3M_xpzp9SOEN2/s72-w485-h273-c/foundry-stack-wp.png" width="72"/><author>dhiraj.patra@gmail.com (dhiraj patra)</author></item><item><title>Skill Routing For Your Coding Agent</title><link>http://dhirajpatra.blogspot.com/2026/09/skill-routing-for-your-coding-agent.html</link><category>agent</category><category>artificial intelligence</category><category>code generation</category><pubDate>Fri, 4 Sep 2026 03:33:40 -0700</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8993867651193907565.post-5879932672980132022</guid><description>&lt;p&gt;&amp;nbsp;&lt;span style="color: #1f1f1f; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif;"&gt;In an AI-native engineering architecture, the &lt;/span&gt;&lt;b data-index-in-node="46" data-path-to-node="0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; color: #1f1f1f; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;code data-index-in-node="46" data-path-to-node="0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(242, 240, 240); border: 0px rgba(0, 0, 0, 0.55); clear: none; clip: auto; color: rgba(0, 0, 0, 0.55); columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline-block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif !important; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 15px; font-stretch: normal; font-variant: normal; font-variation-settings: normal; font-weight: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgba(0, 0, 0, 0.55) none 3px; overlay: none; padding: 4px 6px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgba(0, 0, 0, 0.55); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;skills.md&lt;/code&gt;&lt;/b&gt;&lt;span style="color: #1f1f1f; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif;"&gt; file acts as a centralized &lt;/span&gt;&lt;b data-index-in-node="83" data-path-to-node="0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; color: #1f1f1f; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;agent capability index and skill-routing table&lt;/b&gt;&lt;span style="color: #1f1f1f; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif;"&gt; within the hidden system context directory (&lt;/span&gt;&lt;code data-index-in-node="174" data-path-to-node="0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(242, 240, 240); border: 0px rgba(0, 0, 0, 0.55); clear: none; clip: auto; color: rgba(0, 0, 0, 0.55); columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline-block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif !important; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 15px; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgba(0, 0, 0, 0.55) none 3px; overlay: none; padding: 4px 6px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgba(0, 0, 0, 0.55); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;.gemini/&lt;/code&gt;&lt;span style="color: #1f1f1f; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif;"&gt;, &lt;/span&gt;&lt;code data-index-in-node="184" data-path-to-node="0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(242, 240, 240); border: 0px rgba(0, 0, 0, 0.55); clear: none; clip: auto; color: rgba(0, 0, 0, 0.55); columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline-block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif !important; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 15px; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgba(0, 0, 0, 0.55) none 3px; overlay: none; padding: 4px 6px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgba(0, 0, 0, 0.55); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;.cursor/&lt;/code&gt;&lt;span style="color: #1f1f1f; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif;"&gt;, or &lt;/span&gt;&lt;code data-index-in-node="197" data-path-to-node="0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(242, 240, 240); border: 0px rgba(0, 0, 0, 0.55); clear: none; clip: auto; color: rgba(0, 0, 0, 0.55); columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline-block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif !important; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 15px; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgba(0, 0, 0, 0.55) none 3px; overlay: none; padding: 4px 6px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgba(0, 0, 0, 0.55); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;.windsurf/&lt;/code&gt;&lt;span style="color: #1f1f1f; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif;"&gt;).&lt;/span&gt;&lt;/p&gt;&lt;div _ngcontent-ng-c2153783771="" aria-busy="false" aria-live="off" class="markdown markdown-main-panel md-content enable-luminous-fast-follows enable-updated-hr-color stronger tutor-markdown-rendering" dir="ltr" id="model-response-message-contentr_d5f4cb5522749a2f" inline-copy-host="" style="--animation-duration: 400ms; --fade-animation-function: ease-out; animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; color: #1f1f1f; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif !important; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;br /&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Its primary purpose is to solve the &lt;b data-index-in-node="36" data-path-to-node="1" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;context window expansion problem&lt;/b&gt; by decoupling task intent from heavy architectural definitions. Instead of injecting all project rules, schemas, linting standards, and tooling instructions into the system prompt simultaneously—which wastes context budget and degrades reasoning—&lt;code data-index-in-node="315" data-path-to-node="1" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(242, 240, 240); border: 0px rgba(0, 0, 0, 0.55); clear: none; clip: auto; color: rgba(0, 0, 0, 0.55); columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline-block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif !important; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 15px; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgba(0, 0, 0, 0.55) none 3px; overlay: none; padding: 4px 6px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgba(0, 0, 0, 0.55); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;skills.md&lt;/code&gt; maintains a lightweight semantic index mapping agent goals to specific rule files or external tools.&lt;/div&gt;&lt;br /&gt;&lt;h3 data-path-to-node="2" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans&amp;quot;, sans-serif !important; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Core Architecture &amp;amp; Responsibilities&lt;/h3&gt;&lt;response-element class="no-md" ng-version="0.0.0-PLACEHOLDER" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;code-block _nghost-ng-c533500236="" class="ng-tns-c533500236-96 enable-luminous-code-block ng-star-inserted" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;!----&gt;&lt;!----&gt;&lt;div _ngcontent-ng-c533500236="" class="code-block ng-tns-c533500236-96 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation" data-hveid="3" jslog="223238;track:impression,attention;BardVeMetadataKey:[[&amp;quot;r_d5f4cb5522749a2f&amp;quot;,&amp;quot;c_1d27e9dc5b8d30b2&amp;quot;,null,&amp;quot;rc_5ba2ffd73611c68d&amp;quot;,null,null,&amp;quot;en&amp;quot;,null,1,null,null,1,1]]" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: -16px; margin-right: -16px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;!----&gt;&lt;div _ngcontent-ng-c533500236="" class="formatted-code-block-internal-container ng-tns-c533500236-96" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(20, 20, 20); border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 26px 0px 0px 32px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div _ngcontent-ng-c533500236="" class="animated-opacity ng-tns-c533500236-96" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div _ngcontent-ng-c533500236="" class="code-block-decoration header-formatted gds-emphasized-body-m ng-tns-c533500236-96 ng-star-inserted" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(255, 255, 255); clear: none; clip: auto; color: white; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: flex; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: -72px auto auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(255, 255, 255) none 3px; overlay: none; padding: 0px 11px 0px 0px; page: auto; perspective: none; position: sticky; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(255, 255, 255); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;span _ngcontent-ng-c533500236="" class="ng-tns-c533500236-96" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(255, 255, 255); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(255, 255, 255) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(255, 255, 255); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Plaintext&lt;/span&gt;&lt;div _ngcontent-ng-c533500236="" class="buttons ng-tns-c533500236-96 ng-star-inserted" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(255, 255, 255); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(255, 255, 255) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(255, 255, 255); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;gem-icon-button _ngcontent-ng-c533500236="" _nghost-ng-c2991972892="" aria-describedby="cdk-describedby-message-ng-1-20" arialabel="Download code" cdk-describedby-host="ng-1" class="mat-mdc-tooltip-trigger download-button ng-tns-c533500236-96 gem-button gem-button-badge-size-small gem-button-size-small gem-button-type-on-surface lm-enabled ng-star-inserted" fonticonname="arrow_circle_down" gemtooltip="Download code" size="small" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(255, 255, 255); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline-block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(255, 255, 255) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(255, 255, 255); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;" tabindex="-1" theme="lm" type="onSurface"&gt;&lt;!----&gt;&lt;!----&gt;&lt;button _ngcontent-ng-c2991972892="" aria-label="Download code" class="mdc-icon-button mat-mdc-icon-button mat-mdc-button-base mat-badge mat-unthemed _mat-animation-noopable mat-badge-overlap mat-badge-above mat-badge-after mat-badge-small mat-badge-hidden ng-star-inserted" jslog="305704;track:generic_click,impression" mat-ripple-loader-centered="" mat-ripple-loader-class-name="mat-mdc-button-ripple" mat-ripple-loader-uninitialized="" matbadgeposition="after" maticonbutton="" style="animation: auto ease 0s 1 normal none running none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border-color: rgb(0, 0, 0); border-style: none; border-width: 0px; clear: none; clip: auto; color: black; columns: auto; contain: none; container: none; content: normal; cursor: pointer; cx: 0px; cy: 0px; d: none; direction: ltr; display: flex; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 0 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif !important; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 24px; font-stretch: normal; font-style: normal; font-variation-settings: normal; font-weight: normal; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(0, 0, 0) none 3px; overlay: none; padding: 6px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(0, 0, 0); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: none; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;span class="mat-mdc-button-persistent-ripple mdc-icon-button__ripple" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(0, 0, 0); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: pointer; cx: 0px; cy: 0px; d: none; direction: ltr; display: block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(0, 0, 0) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: absolute; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(0, 0, 0); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;/span&gt;&lt;gem-icon _ngcontent-ng-c2991972892="" _nghost-ng-c1575874796="" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(0, 0, 0); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: pointer; cx: 0px; cy: 0px; d: none; direction: ltr; display: flex; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 0 auto; float: none; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(0, 0, 0) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(0, 0, 0); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;mat-icon _ngcontent-ng-c1575874796="" aria-hidden="true" class="mat-icon notranslate lm-icon-l lumi-symbols mat-ligature-font mat-icon-no-color ng-star-inserted" data-mat-icon-name="arrow_circle_down" data-mat-icon-namespace="lumi-symbols" data-mat-icon-type="font" fonticon="arrow_circle_down" role="img" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(255, 255, 255); clear: none; clip: auto; color: white; columns: auto; contain: none; container: none; content: normal; cursor: pointer; cx: 0px; cy: 0px; d: none; direction: ltr; display: flex; fill: rgb(255, 255, 255); filter: none; flex-direction: row; flex: 0 0 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(255, 255, 255) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(255, 255, 255); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;/mat-icon&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/gem-icon&gt;&lt;!----&gt;&lt;span class="mat-focus-indicator" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(0, 0, 0); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: pointer; cx: 0px; cy: 0px; d: none; direction: ltr; display: block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(0, 0, 0) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: absolute; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(0, 0, 0); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;/span&gt;&lt;span class="mat-mdc-button-touch-target" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(0, 0, 0); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: pointer; cx: 0px; cy: 0px; d: none; direction: ltr; display: none; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: 50% auto auto 50%; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(0, 0, 0) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: absolute; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(0, 0, 0); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;/span&gt;&lt;/button&gt;&lt;!----&gt;&lt;!----&gt;&lt;/gem-icon-button&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;gem-icon-button _ngcontent-ng-c533500236="" _nghost-ng-c2991972892="" aria-describedby="cdk-describedby-message-ng-1-21" arialabel="Copy code" cdk-describedby-host="ng-1" class="mat-mdc-tooltip-trigger copy-button ng-tns-c533500236-96 gem-button gem-button-badge-size-small gem-button-size-small gem-button-type-on-surface lm-enabled ng-star-inserted" data-test-id="gem-copy-button" fonticonname="copy" gemtooltip="Copy code" size="small" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(255, 255, 255); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline-block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(255, 255, 255) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(255, 255, 255); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;" tabindex="-1" theme="lm" type="onSurface"&gt;&lt;!----&gt;&lt;!----&gt;&lt;button _ngcontent-ng-c2991972892="" aria-label="Copy code" class="mdc-icon-button mat-mdc-icon-button mat-mdc-button-base mat-badge mat-unthemed _mat-animation-noopable mat-badge-overlap mat-badge-above mat-badge-after mat-badge-small mat-badge-hidden ng-star-inserted" jslog="179062;track:generic_click,impression;BardVeMetadataKey:[[&amp;quot;r_d5f4cb5522749a2f&amp;quot;,&amp;quot;c_1d27e9dc5b8d30b2&amp;quot;,null,&amp;quot;rc_5ba2ffd73611c68d&amp;quot;,null,null,&amp;quot;en&amp;quot;,null,1,null,null,1,1]];mutable:true" mat-ripple-loader-centered="" mat-ripple-loader-class-name="mat-mdc-button-ripple" mat-ripple-loader-uninitialized="" matbadgeposition="after" maticonbutton="" style="animation: auto ease 0s 1 normal none running none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border-color: rgb(0, 0, 0); border-style: none; border-width: 0px; clear: none; clip: auto; color: black; columns: auto; contain: none; container: none; content: normal; cursor: pointer; cx: 0px; cy: 0px; d: none; direction: ltr; display: flex; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 0 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif !important; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 24px; font-stretch: normal; font-style: normal; font-variation-settings: normal; font-weight: normal; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(0, 0, 0) none 3px; overlay: none; padding: 6px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(0, 0, 0); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: none; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;span class="mat-mdc-button-persistent-ripple mdc-icon-button__ripple" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(0, 0, 0); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: pointer; cx: 0px; cy: 0px; d: none; direction: ltr; display: block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(0, 0, 0) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: absolute; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(0, 0, 0); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;/span&gt;&lt;gem-icon _ngcontent-ng-c2991972892="" _nghost-ng-c1575874796="" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(0, 0, 0); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: pointer; cx: 0px; cy: 0px; d: none; direction: ltr; display: flex; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 0 auto; float: none; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(0, 0, 0) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(0, 0, 0); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;mat-icon _ngcontent-ng-c1575874796="" aria-hidden="true" class="mat-icon notranslate lm-icon-l lumi-symbols mat-ligature-font mat-icon-no-color ng-star-inserted" data-mat-icon-name="copy" data-mat-icon-namespace="lumi-symbols" data-mat-icon-type="font" fonticon="copy" role="img" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(255, 255, 255); clear: none; clip: auto; color: white; columns: auto; contain: none; container: none; content: normal; cursor: pointer; cx: 0px; cy: 0px; d: none; direction: ltr; display: flex; fill: rgb(255, 255, 255); filter: none; flex-direction: row; flex: 0 0 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(255, 255, 255) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(255, 255, 255); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;/mat-icon&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/gem-icon&gt;&lt;!----&gt;&lt;span class="mat-focus-indicator" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(0, 0, 0); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: pointer; cx: 0px; cy: 0px; d: none; direction: ltr; display: block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(0, 0, 0) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: absolute; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(0, 0, 0); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;/span&gt;&lt;span class="mat-mdc-button-touch-target" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(0, 0, 0); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: pointer; cx: 0px; cy: 0px; d: none; direction: ltr; display: none; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: 50% auto auto 50%; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(0, 0, 0) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: absolute; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(0, 0, 0); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;/span&gt;&lt;/button&gt;&lt;!----&gt;&lt;!----&gt;&lt;/gem-icon-button&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/div&gt;&lt;!----&gt;&lt;!----&gt;&lt;/div&gt;&lt;!----&gt;&lt;pre _ngcontent-ng-c533500236="" class="ng-tns-c533500236-96" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif !important; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;code _ngcontent-ng-c533500236="" class="code-container formatted ng-tns-c533500236-96" data-test-id="code-content" role="text" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(255, 255, 255); clear: none; clip: auto; color: white; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif !important; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 14px; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(255, 255, 255) none 3px; overlay: none; padding: 16px 0px 32px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(255, 255, 255); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;                        ┌────────────────────────┐
                        │   User / Agent Task    │
                        └───────────┬────────────┘
                                    &lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;│ Reads Skill Index
                                    &lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;▼
                        ┌────────────────────────┐
                        │       skills.md       &lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt; │
                        │ (Routing &amp;amp; Scope Maps) &lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;│
                        └───────────┬────────────┘
                                    &lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;│
           ┌────────────────────────┼────────────────────────┐
           │ Dynamic Load           &lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;│ Dynamic Load           &lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;│ Dynamic Load
           ▼                        &lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;▼                        &lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;▼
┌────────────────────┐    ┌────────────────────┐    ┌────────────────────┐
│ .gemini/rules/     &lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;│    │ .gemini/context/   &lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;│    │ System / MCP Tools &lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;│
│ frontend.md        &lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;│    │ schema.sql         &lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;│    │ (Ruff, ESLint, DB) &lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;│
└────────────────────┘    └────────────────────┘    └────────────────────┘
&lt;/code&gt;&lt;/pre&gt;&lt;!----&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/code-block&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/response-element&gt;&lt;ol data-path-to-node="4" start="1" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding-inline-start: 32px; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;b data-index-in-node="0" data-path-to-node="4,0,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Lazy Context Resolution:&lt;/b&gt; It defines explicit scope triggers (e.g., &lt;code data-index-in-node="67" data-path-to-node="4,0,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(242, 240, 240); border: 0px rgba(0, 0, 0, 0.55); clear: none; clip: auto; color: rgba(0, 0, 0, 0.55); columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline-block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif !important; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 15px; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgba(0, 0, 0, 0.55) none 3px; overlay: none; padding: 4px 6px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgba(0, 0, 0, 0.55); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;apps/web/&lt;/code&gt; vs &lt;code data-index-in-node="80" data-path-to-node="4,0,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(242, 240, 240); border: 0px rgba(0, 0, 0, 0.55); clear: none; clip: auto; color: rgba(0, 0, 0, 0.55); columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline-block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif !important; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 15px; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgba(0, 0, 0, 0.55) none 3px; overlay: none; padding: 4px 6px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgba(0, 0, 0, 0.55); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;apps/api/&lt;/code&gt;) and directs the agent to load heavy domain specifications (like database DDLs, OpenAPI schemas, or complex business logic) &lt;b data-index-in-node="214" data-path-to-node="4,0,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;only&lt;/b&gt; when execution paths demand them.&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;b data-index-in-node="0" data-path-to-node="4,1,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Deterministic Tool &amp;amp; Command Mapping:&lt;/b&gt; It specifies exact execution commands (e.g., &lt;code data-index-in-node="83" data-path-to-node="4,1,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(242, 240, 240); border: 0px rgba(0, 0, 0, 0.55); clear: none; clip: auto; color: rgba(0, 0, 0, 0.55); columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline-block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif !important; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 15px; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgba(0, 0, 0, 0.55) none 3px; overlay: none; padding: 4px 6px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgba(0, 0, 0, 0.55); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;ruff check&lt;/code&gt;, &lt;code data-index-in-node="95" data-path-to-node="4,1,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(242, 240, 240); border: 0px rgba(0, 0, 0, 0.55); clear: none; clip: auto; color: rgba(0, 0, 0, 0.55); columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline-block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif !important; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 15px; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgba(0, 0, 0, 0.55) none 3px; overlay: none; padding: 4px 6px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgba(0, 0, 0, 0.55); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;pytest&lt;/code&gt;, &lt;code data-index-in-node="103" data-path-to-node="4,1,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(242, 240, 240); border: 0px rgba(0, 0, 0, 0.55); clear: none; clip: auto; color: rgba(0, 0, 0, 0.55); columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline-block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif !important; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 15px; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgba(0, 0, 0, 0.55) none 3px; overlay: none; padding: 4px 6px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgba(0, 0, 0, 0.55); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;npm run lint&lt;/code&gt;) associated with specific stack boundaries, ensuring the agent uses deterministic tooling instead of guessing environment configurations.&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;b data-index-in-node="0" data-path-to-node="4,2,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Cross-Stack Isolation:&lt;/b&gt; It establishes explicit system guardrails and forbidden imports at the orchestration level, preventing the coding agent from introducing cross-stack anti-patterns or violating domain boundaries across monorepo packages.&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Open Source Open Mind&lt;/div&gt;</description><author>dhiraj.patra@gmail.com (dhiraj patra)</author></item><item><title>Azure AI Foundry, Azure OpenAI, Microsoft Fabric, and Copilot Studio</title><link>http://dhirajpatra.blogspot.com/2026/09/azure-ai-foundry-azure-openai-microsoft.html</link><category>agent</category><category>artificial intelligence</category><category>azure</category><category>llm</category><pubDate>Wed, 2 Sep 2026 08:02:13 -0700</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8993867651193907565.post-4972158424330589403</guid><description>&lt;p&gt;Azure AI Foundry, Azure OpenAI, Microsoft Fabric, and Copilot Studio are complementary but distinct parts of Microsoft’s AI ecosystem: Foundry is the developer platform, OpenAI is the raw model API, Fabric is the unified data layer, and Copilot Studio is the low-code agent builder. Together, they integrate with Entra ID (Azure AD) to manage agent identity, authentication, and enterprise governance.&lt;/p&gt;&lt;div class="space-y-3 mt-3"&gt;&lt;div class="group/ai-message-item space-y-3 break-words" id="mjLqQaPoFaYap6ZryGcPN-content-0"&gt;&lt;div class="relative pb-6 w-full after:border-b after:border-stroke-300 after:w-full after:absolute after:mt-3"&gt;&lt;/div&gt;&lt;h2 class="text-xl-medium [&amp;amp;:not(:first-child)]:pt-3.5 pb-1"&gt;&#128273; Differences Among the Platforms&lt;/h2&gt;&lt;div class="max-w-full"&gt;&lt;div class="relative max-w-full"&gt;&lt;div aria-label="Scrollable table" class="horizontal-scrollbar font-ligatures-none mt-6 max-w-full overflow-x-auto rounded-lg bg-white/25 outline-2 outline-offset-1 focus-visible:outline focus-visible:outline-stroke-900 dark:bg-black/25" role="group" tabindex="0"&gt;&lt;table class="t-table" style="border-spacing: 10px;" border="1"&gt;&lt;thead&gt;&lt;tr&gt;&lt;th scope="col" style="opacity: 1;"&gt;&lt;strong&gt;Azure AI Foundry&lt;/strong&gt;&lt;/th&gt;&lt;th scope="col" style="opacity: 1;"&gt;&lt;strong&gt;Azure OpenAI&lt;/strong&gt;&lt;/th&gt;&lt;th scope="col" style="opacity: 1;"&gt;&lt;strong&gt;Microsoft Fabric&lt;/strong&gt;&lt;/th&gt;&lt;th scope="col" style="opacity: 1;"&gt;&lt;strong&gt;Copilot Studio&lt;/strong&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th scope="row" style="opacity: 1;"&gt;Full developer platform for building, fine-tuning, and deploying AI apps at scale&lt;/th&gt;&lt;td style="opacity: 1;"&gt;Direct access to GPT-family models (text, embeddings, multimodal)&lt;/td&gt;&lt;td style="opacity: 1;"&gt;Unified data analytics platform combining Power BI, Synapse, Data Factory&lt;/td&gt;&lt;td style="opacity: 1;"&gt;Low-code tool for building and publishing AI copilots/agents&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th scope="row" style="opacity: 1;"&gt;Best for ML engineers &amp;amp; pro developers&lt;/th&gt;&lt;td style="opacity: 1;"&gt;Best for developers needing raw model control&lt;/td&gt;&lt;td style="opacity: 1;"&gt;Best for data engineers &amp;amp; analysts&lt;/td&gt;&lt;td style="opacity: 1;"&gt;Best for business analysts &amp;amp; low-code developers&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th scope="row" style="opacity: 1;"&gt;Offers orchestration, pipelines, multimodal flows, compliance&lt;/th&gt;&lt;td style="opacity: 1;"&gt;Provides fine-tuning, embeddings, prompt engineering&lt;/td&gt;&lt;td style="opacity: 1;"&gt;Provides data ingestion, governance, and analytics&lt;/td&gt;&lt;td style="opacity: 1;"&gt;Provides templates, connectors, orchestration of agent flows&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th scope="row" style="opacity: 1;"&gt;High customization, requires Azure skills&lt;/th&gt;&lt;td style="opacity: 1;"&gt;Lowest latency for direct model calls&lt;/td&gt;&lt;td style="opacity: 1;"&gt;Centralized data governance &amp;amp; integration&lt;/td&gt;&lt;td style="opacity: 1;"&gt;Fast agent creation, integrates with Teams, M365, external apps&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div class="pointer-events-none absolute inset-0 rounded-lg border border-stroke-300 dark:border-stroke-450"&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="mt-3 flex items-center gap-1"&gt;&lt;div class="relative"&gt;&lt;button aria-label="Copy table" class="relative flex items-center text-foreground-800 fill-foreground-800 active:text-foreground-600 active:fill-foreground-600 dark:active:text-foreground-650 dark:active:fill-foreground-650 bg-transparent safe-hover:bg-black/5 active:bg-black/3 dark:safe-hover:bg-white/8 dark:active:bg-white/5 text-sm justify-center size-9 rounded-xl after:rounded-xl after:absolute after:inset-0 after:pointer-events-none after:border after:border-transparent after:contrast-more:border-2 outline-2 outline-offset-1 focus-visible:z-[1] focus-visible:outline focus-visible:outline-stroke-900 forced-colors:transition-none forced-colors:safe-hover:!bg-[Highlight] forced-colors:safe-hover:!text-[HighlightText] forced-colors:safe-hover:!fill-[HighlightText] forced-colors:active:!bg-[Highlight] forced-colors:active:!text-[HighlightText] forced-colors:active:!fill-[HighlightText]" data-spatial-navigation-autofocus="false" data-testid="copy-table-button" data-tooltip-state="closed" type="button"&gt;&lt;div style="opacity: 1;"&gt;&lt;svg class="size-5" fill="currentColor" viewbox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"&gt;&lt;path d="M8 2C6.89543 2 6 2.89543 6 4V14C6 15.1046 6.89543 16 8 16H14C15.1046 16 16 15.1046 16 14V4C16 2.89543 15.1046 2 14 2H8ZM7 4C7 3.44772 7.44772 3 8 3H14C14.5523 3 15 3.44772 15 4V14C15 14.5523 14.5523 15 14 15H8C7.44772 15 7 14.5523 7 14V4ZM4 6.00001C4 5.25973 4.4022 4.61339 5 4.26758V14.5C5 15.8807 6.11929 17 7.5 17H13.7324C13.3866 17.5978 12.7403 18 12 18H7.5C5.567 18 4 16.433 4 14.5V6.00001Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/div&gt;&lt;/button&gt;&lt;div class="pointer-events-none absolute -top-12 start-1/2 z-40 [transform:translateX(-50%)] rtl:[transform:translateX(50%)]"&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="relative"&gt;&lt;button aria-label="Download table" class="relative flex items-center text-foreground-800 fill-foreground-800 active:text-foreground-600 active:fill-foreground-600 dark:active:text-foreground-650 dark:active:fill-foreground-650 bg-transparent safe-hover:bg-black/5 active:bg-black/3 dark:safe-hover:bg-white/8 dark:active:bg-white/5 text-sm justify-center size-9 rounded-xl after:rounded-xl after:absolute after:inset-0 after:pointer-events-none after:border after:border-transparent after:contrast-more:border-2 outline-2 outline-offset-1 focus-visible:z-[1] focus-visible:outline focus-visible:outline-stroke-900 forced-colors:transition-none forced-colors:safe-hover:!bg-[Highlight] forced-colors:safe-hover:!text-[HighlightText] forced-colors:safe-hover:!fill-[HighlightText] forced-colors:active:!bg-[Highlight] forced-colors:active:!text-[HighlightText] forced-colors:active:!fill-[HighlightText]" data-spatial-navigation-autofocus="false" data-testid="download-table-button" data-tooltip-state="closed" type="button"&gt;&lt;div style="opacity: 1;"&gt;&lt;svg class="size-5" fill="currentColor" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;&lt;path d="M18.2498 20.5009C18.664 20.5008 19 20.8365 19 21.2507C19 21.6649 18.6644 22.0008 18.2502 22.0009L5.25022 22.0047C4.836 22.0048 4.5 21.6691 4.5 21.2549C4.5 20.8407 4.83557 20.5048 5.24978 20.5047L18.2498 20.5009ZM11.6482 2.01271L11.75 2.00586C12.1297 2.00586 12.4435 2.28801 12.4932 2.65409L12.5 2.75586L12.499 16.4409L16.2208 12.7205C16.4871 12.4543 16.9038 12.4301 17.1974 12.648L17.2815 12.7206C17.5477 12.9869 17.5719 13.4036 17.354 13.6972L17.2814 13.7813L12.2837 18.7779C12.0176 19.044 11.6012 19.0683 11.3076 18.8507L11.2235 18.7782L6.22003 13.7816C5.92694 13.4889 5.92661 13.014 6.21931 12.7209C6.48539 12.4545 6.90204 12.43 7.1958 12.6477L7.27997 12.7202L10.999 16.4339L11 2.75586C11 2.37616 11.2822 2.06237 11.6482 2.01271L11.75 2.00586L11.6482 2.01271Z" fill="currentColor"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/div&gt;&lt;/button&gt;&lt;div class="pointer-events-none absolute -top-12 start-1/2 z-40 [transform:translateX(-50%)] rtl:[transform:translateX(50%)]"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="relative pb-6 w-full after:border-b after:border-stroke-300 after:w-full after:absolute after:mt-3"&gt;&lt;/div&gt;&lt;h2 class="text-xl-medium [&amp;amp;:not(:first-child)]:pt-3.5 pb-1"&gt;&#129513; How They Work Together&lt;/h2&gt;&lt;ul class="relative list-outside marker:text-foreground-750 dark:marker:text-foreground-600 flex flex-col ms-4 px-1" role="list"&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;&lt;strong&gt;Fabric&lt;/strong&gt; → Provides the &lt;strong&gt;data foundation&lt;/strong&gt; (structured, governed, analytics-ready).&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;&lt;strong&gt;Azure OpenAI&lt;/strong&gt; → Provides the &lt;strong&gt;raw intelligence models&lt;/strong&gt; (LLMs, embeddings).&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;&lt;strong&gt;Azure AI Foundry&lt;/strong&gt; → Provides the &lt;strong&gt;engineering environment&lt;/strong&gt; to orchestrate models, data, and pipelines.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;&lt;strong&gt;Copilot Studio&lt;/strong&gt; → Provides the &lt;strong&gt;low-code interface&lt;/strong&gt; to build task-specific copilots that leverage Foundry + OpenAI + Fabric.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;Think of it as: &lt;em&gt;Fabric = data layer, OpenAI = brain, Foundry = lab, Copilot Studio = workshop.&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="relative pb-6 w-full after:border-b after:border-stroke-300 after:w-full after:absolute after:mt-3"&gt;&lt;/div&gt;&lt;h2 class="text-xl-medium [&amp;amp;:not(:first-child)]:pt-3.5 pb-1"&gt;&#128272; Agent Identity with Entra ID&lt;/h2&gt;&lt;ul class="relative list-outside marker:text-foreground-750 dark:marker:text-foreground-600 flex flex-col ms-4 px-1" role="list"&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;&lt;strong&gt;Entra ID (formerly Azure AD)&lt;/strong&gt; is the identity backbone:&lt;/span&gt;&lt;/p&gt;&lt;ul class="relative list-outside marker:text-foreground-750 dark:marker:text-foreground-600 flex flex-col ms-4 px-1" role="list"&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;Every &lt;strong&gt;agent&lt;/strong&gt; created in Copilot Studio or Foundry is registered as an &lt;strong&gt;application identity&lt;/strong&gt; in Entra ID.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;This ensures &lt;strong&gt;authentication&lt;/strong&gt; (who can run the agent), &lt;strong&gt;authorization&lt;/strong&gt; (what data/tools it can access), and &lt;strong&gt;auditing&lt;/strong&gt; (logs of usage).&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;&lt;strong&gt;Agent ID&lt;/strong&gt; is essentially an &lt;strong&gt;Entra service principal&lt;/strong&gt; or managed identity:&lt;/span&gt;&lt;/p&gt;&lt;ul class="relative list-outside marker:text-foreground-750 dark:marker:text-foreground-600 flex flex-col ms-4 px-1" role="list"&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;When an agent calls Fabric datasets or OpenAI models, Entra ID issues tokens.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;Permissions are scoped via &lt;strong&gt;role assignments&lt;/strong&gt; (RBAC) and &lt;strong&gt;conditional access policies&lt;/strong&gt;.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;This allows enterprises to enforce &lt;strong&gt;data governance&lt;/strong&gt; and &lt;strong&gt;compliance&lt;/strong&gt; across all AI agents.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="relative pb-6 w-full after:border-b after:border-stroke-300 after:w-full after:absolute after:mt-3"&gt;&lt;/div&gt;&lt;h2 class="text-xl-medium [&amp;amp;:not(:first-child)]:pt-3.5 pb-1"&gt;⚠️ Key Trade-offs &amp;amp; Risks&lt;/h2&gt;&lt;ul class="relative list-outside marker:text-foreground-750 dark:marker:text-foreground-600 flex flex-col ms-4 px-1" role="list"&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;&lt;strong&gt;Latency vs. Control&lt;/strong&gt;: Direct OpenAI calls are faster, but Foundry/Copilot orchestration adds governance and observability.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;&lt;strong&gt;Skill Requirements&lt;/strong&gt;: Foundry demands Azure/ML expertise; Copilot Studio lowers the barrier but limits deep customization.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;&lt;strong&gt;Data Governance&lt;/strong&gt;: Fabric centralizes compliance, but misconfigured Entra roles can expose sensitive data.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li class="ps-2" style="opacity: 1;"&gt;&lt;p&gt;&lt;span class="font-ligatures-none whitespace-pre-wrap"&gt;&lt;strong&gt;Cost Scaling&lt;/strong&gt;: OpenAI usage scales with tokens; Foundry adds orchestration overhead; Fabric storage/compute costs grow with data volume.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="relative pb-6 w-full after:border-b after:border-stroke-300 after:w-full after:absolute after:mt-3"&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="group/ai-message-item space-y-3 break-words" id="mjLqQaPoFaYap6ZryGcPN-content-1"&gt;&lt;div data-ads-rg="464b91d36c2140759f533968e575179c" data-testid="ads-card"&gt;&lt;div class="isolate group relative w-full bg-white/45 text-foreground-750 dark:bg-background-650/10" style="clip-path: var(--clip-path-squircle-36);"&gt;&lt;div class="w-full items-center py-3 text-foreground-750 text-sm"&gt;&lt;div aria-label="Ads have been generated. Summary: Microsoft Azure offers a free account that lets developers experiment with AI models, integrate Entra ID for secure agent management, and test solutions across Foundry, OpenAI, Fabric, and Copilot Studio.. Content: Text ad. Title: Microsoft Azure Official Site - Create Your Free Account Today. Description: Designed for Developers and Data Scientist—Explore Azure AI Models. Try for Free. Start Building with Azure AI. Build Your Own Azure AI Solutions with a Free Account..." class="text-sm" style="height: auto; opacity: 1; overflow: hidden;" tabindex="0"&gt;&lt;div class="flex flex-col gap-2"&gt;&lt;div class="relative isolate bg-background-300/20 dark:bg-background-650/5 group/ad mx-3" style="clip-path: var(--clip-path-squircle-24);"&gt;&lt;div class="before:border-transparent before:border-[20px] pointer-events-none absolute inset-0 before:absolute before:inset-0 before:rounded-inherit" style="clip-path: var(--clip-path-squircle-stroke-24);"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="before:border-black/10 dark:before:border-white/10 before:border-[20px] will-change-transform pointer-events-none absolute inset-0 before:absolute before:inset-0 before:rounded-inherit" style="clip-path: var(--clip-path-squircle-stroke-36);"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="pt-1"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Open Source Open Mind&lt;/div&gt;</description><author>dhiraj.patra@gmail.com (dhiraj patra)</author></item><item><title>How to Use a Coding Tool Like an Expert</title><link>http://dhirajpatra.blogspot.com/2026/08/how-to-use-coding-tool-like-expert.html</link><category>artificial intelligence</category><category>code generation</category><category>dynamic programming</category><category>generativeai</category><category>mcp</category><category>programming</category><pubDate>Mon, 31 Aug 2026 21:41:46 -0700</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8993867651193907565.post-6511578356441790199</guid><description>&lt;p&gt;When executing multi-file refactors, I manage, restrict, and structure my local codebase context using a strict &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="BYKzWc_1" style="font-weight: bold;"&gt;hierarchical filtering system&lt;/span&gt; designed to maximize accuracy and minimize token waste.&lt;/p&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="xUgpab#A1M9vc" jsuid="BYKzWc_2" style="margin: 16px 0px; overflow-wrap: break-word;"&gt;Here is exactly how I structure and execute that process:&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;h2 data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="gjwZNd#ZxCkTb" jsuid="BYKzWc_3" role="heading" style="font-size: 20px;"&gt;1. Discovery and Map Generation&lt;!--TgQPHd|||[]--&gt;&lt;/h2&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="xUgpab#A1M9vc" jsuid="BYKzWc_4" style="margin: 16px 0px; overflow-wrap: break-word;"&gt;Before reading or editing any files, I construct an abstract map of the codebase. I do not pull full source code at this stage.&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="qhbHec#lPvkWe" jsuid="BYKzWc_5"&gt;&lt;div&gt;&lt;/div&gt;&lt;ul&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="BYKzWc_6"&gt;&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="BYKzWc_7" style="font-weight: bold;"&gt;Directory Trees:&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; I run a shallow directory listing to understand the project's layout.&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="BYKzWc_8"&gt;&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="BYKzWc_9" style="font-weight: bold;"&gt;Symbols and Signatures:&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; I search for class definitions, method signatures, and export statements across the target modules.&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="BYKzWc_a"&gt;&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="BYKzWc_b" style="font-weight: bold;"&gt;Dependency Graphs:&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; I map out how the target files import one another to identify the upstream and downstream impacts of the refactor.&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;/ul&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;h2 data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="gjwZNd#ZxCkTb" jsuid="BYKzWc_c" role="heading" style="font-size: 20px;"&gt;2. Context Restriction (The "Need-to-Know" Filter)&lt;!--TgQPHd|||[]--&gt;&lt;/h2&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="xUgpab#A1M9vc" jsuid="BYKzWc_d" style="margin: 16px 0px; overflow-wrap: break-word;"&gt;To prevent token bloat and LLM confusion, I categorize files into three strict isolation zones:&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="qhbHec#lPvkWe" jsuid="BYKzWc_e"&gt;&lt;div&gt;&lt;/div&gt;&lt;ul&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="BYKzWc_f"&gt;&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="BYKzWc_g" style="font-weight: bold;"&gt;The Edit Zone:&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; These are the exact files that require code modifications. I ingest these files completely.&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="BYKzWc_h"&gt;&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="BYKzWc_i" style="font-weight: bold;"&gt;The Reference Zone:&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; These are files that interact directly with the Edit Zone (e.g., types, interfaces, or parent classes). I only ingest their structural definitions, type signatures, or relevant snippets—never the full implementation.&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="BYKzWc_j"&gt;&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="BYKzWc_k" style="font-weight: bold;"&gt;The Noise Zone:&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; Implementation details of unrelated modules, external dependencies, and build artifacts. These are completely blocked from my context.&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;/ul&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;h2 data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="gjwZNd#ZxCkTb" jsuid="BYKzWc_l" role="heading" style="font-size: 20px;"&gt;3. Structured Multi-File Ingestion&lt;!--TgQPHd|||[]--&gt;&lt;/h2&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="xUgpab#A1M9vc" jsuid="BYKzWc_m" style="margin: 16px 0px; overflow-wrap: break-word;"&gt;When I load the required files into my active context window, I enforce a clean XML/Markdown boundary structure. This structure prevents me from blending different files together or hallucinating missing links:&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="rxoZB#M4fm4d" jsuid="BYKzWc_n" style="background-color: #f4f6f7; display: flex; gap: 16px; overflow-x: auto; padding: 16px;"&gt;&lt;pre style="margin: 0; overflow: auto hidden;"&gt;&lt;code class="language-xml"&gt;&amp;lt;&lt;span style="color: #9334e6;"&gt;file&lt;/span&gt; &lt;span style="color: #9334e6;"&gt;path&lt;/span&gt;=&lt;span style="color: #188038;"&gt;"src/user/service.ts"&lt;/span&gt;&amp;gt;
// Exact, unedited source code goes here
&amp;lt;/&lt;span style="color: #9334e6;"&gt;file&lt;/span&gt;&amp;gt;

&amp;lt;&lt;span style="color: #9334e6;"&gt;file&lt;/span&gt; &lt;span style="color: #9334e6;"&gt;path&lt;/span&gt;=&lt;span style="color: #188038;"&gt;"src/user/types.ts"&lt;/span&gt;&amp;gt;
// Exact, unedited source code goes here
&amp;lt;/&lt;span style="color: #9334e6;"&gt;file&lt;/span&gt;&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;h2 data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="gjwZNd#ZxCkTb" jsuid="BYKzWc_o" role="heading" style="font-size: 20px;"&gt;4. Fragmented Execution (Avoiding the "All-at-Once" Trap)&lt;!--TgQPHd|||[]--&gt;&lt;/h2&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="xUgpab#A1M9vc" jsuid="BYKzWc_p" style="margin: 16px 0px; overflow-wrap: break-word;"&gt;Instead of rewriting five files in a single pass—which drastically increases the risk of hallucinations—I execute refactors sequentially using a strict state machine:&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uae3nf#pGIJIb" jsuid="BYKzWc_q"&gt;&lt;div&gt;&lt;/div&gt;&lt;ol&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="BYKzWc_r"&gt;&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="BYKzWc_s" style="font-weight: bold;"&gt;Plan:&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; I generate a plaintext implementation plan outlining the exact order of changes.&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="BYKzWc_t"&gt;&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="BYKzWc_u" style="font-weight: bold;"&gt;Modify:&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; I apply changes to &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="BYKzWc_v" style="font-weight: bold;"&gt;one file at a time&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;, starting from the lowest dependency (e.g., types first, then core logic, then entry points).&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="BYKzWc_w"&gt;&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="BYKzWc_x" style="font-weight: bold;"&gt;Verify:&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; After each file modification, I review the updated file against the rest of the context to ensure type safety and logic consistency before moving to the next file.&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="xUgpab#A1M9vc" jsuid="BYKzWc_17" style="margin: 16px 0px; overflow-wrap: break-word;"&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="xUgpab#A1M9vc" jsuid="PhXPId_0" style="margin: 16px 0px; overflow-wrap: break-word;"&gt;To see how this works in practice, here is a concrete example of a multi-file refactor where &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="PhXPId_1" style="font-weight: bold;"&gt;Claude&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; utilizes custom tool skills, &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="PhXPId_2" style="font-weight: bold;"&gt;MCP (Model Context Protocol)&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; servers, &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="PhXPId_3" style="font-weight: bold;"&gt;GitLab&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;, and &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="PhXPId_4" style="font-weight: bold;"&gt;Jira&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; to update a Python user authentication system.&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;h2 data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="gjwZNd#ZxCkTb" jsuid="PhXPId_5" role="heading" style="font-size: 20px;"&gt;The Scenario&lt;!--TgQPHd|||[]--&gt;&lt;/h2&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="xUgpab#A1M9vc" jsuid="PhXPId_6" style="margin: 16px 0px; overflow-wrap: break-word;"&gt;&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="PhXPId_7" style="font-weight: bold;"&gt;Jira Ticket (AUTH-42):&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; Migrating a legacy Python codebase from custom dictionary-based user sessions to structured &lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="PhXPId_8" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid #f4f6f7; padding: 2px 4px;"&gt;Pydantic&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt; models across a service layer, a route layer, and tests.&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="rxoZB#M4fm4d" jsuid="PhXPId_9" style="background-color: #f4f6f7; display: flex; gap: 16px; overflow-x: auto; padding: 16px;"&gt;&lt;pre style="margin: 0; overflow: auto hidden;"&gt;&lt;code class="language-unset"&gt;&#128193; my-python-app/
├── &#128193; src/
│   ├── auth.py         &amp;lt;-- Edit Zone (Route Layer)
│   ├── user_service.py &amp;lt;-- Edit Zone (Service Layer)
│   └── schemas.py      &amp;lt;-- Edit Zone (Data Types)
├── &#128193; tests/
│   └── test_auth.py    &amp;lt;-- Edit Zone (Unit Tests)
└── main.py             &amp;lt;-- Reference Zone (App Initialization)
&lt;/code&gt;&lt;/pre&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;hr data-sfc-pl="|||[]" data-sfc-root="ep" jsaction="" jscontroller="zJhOJc#fwBjOe" jsuid="PhXPId_a" style="border-color: rgb(220, 223, 229) currentcolor currentcolor; border-image: none; border-style: solid none none; border-width: 1px 0px 0px; height: 1px;" /&gt;&lt;h2 data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="gjwZNd#ZxCkTb" jsuid="PhXPId_b" role="heading" style="font-size: 20px;"&gt;Step 1: Discovery &amp;amp; Map Generation&lt;!--TgQPHd|||[]--&gt;&lt;/h2&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="xUgpab#A1M9vc" jsuid="PhXPId_c" style="margin: 16px 0px; overflow-wrap: break-word;"&gt;Claude receives the Jira ticket via an &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="PhXPId_d" style="font-weight: bold;"&gt;MCP Jira Server&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; connection. Before reading any code, Claude invokes a custom &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="PhXPId_e" style="font-weight: bold;"&gt;codebase-indexer skill&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; (via a local Filesystem/Git MCP server) to map the directory.&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="qhbHec#lPvkWe" jsuid="PhXPId_f"&gt;&lt;div&gt;&lt;/div&gt;&lt;ul&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="PhXPId_g"&gt;&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="PhXPId_h" style="font-weight: bold;"&gt;Tool Call:&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; &lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="PhXPId_i" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid #f4f6f7; padding: 2px 4px;"&gt;mcp__filesystem__list_directory(path="./src")&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="PhXPId_j"&gt;&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="PhXPId_k" style="font-weight: bold;"&gt;Tool Call:&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; &lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="PhXPId_l" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid #f4f6f7; padding: 2px 4px;"&gt;mcp__grep__search(pattern="def login")&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="PhXPId_m"&gt;&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="PhXPId_n" style="font-weight: bold;"&gt;Output Matrix:&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; Claude maps out that &lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="PhXPId_o" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid #f4f6f7; padding: 2px 4px;"&gt;auth.py&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt; imports &lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="PhXPId_p" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid #f4f6f7; padding: 2px 4px;"&gt;user_service.py&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt;, which in turn relies on &lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="PhXPId_q" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid #f4f6f7; padding: 2px 4px;"&gt;schemas.py&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt;. &lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="PhXPId_r" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid #f4f6f7; padding: 2px 4px;"&gt;main.py&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt; initializes the app but does not manipulate user dictionaries directly.&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;/ul&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;h2 data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="gjwZNd#ZxCkTb" jsuid="PhXPId_s" role="heading" style="font-size: 20px;"&gt;Step 2: Context Restriction&lt;!--TgQPHd|||[]--&gt;&lt;/h2&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="xUgpab#A1M9vc" jsuid="PhXPId_t" style="margin: 16px 0px; overflow-wrap: break-word;"&gt;Claude explicitly partitions the project files into the three strict isolation zones, dropping everything else to save tokens.&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="qhbHec#lPvkWe" jsuid="PhXPId_u"&gt;&lt;div&gt;&lt;/div&gt;&lt;ul&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="PhXPId_v"&gt;&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="PhXPId_w" style="font-weight: bold;"&gt;Edit Zone (Full Ingestion):&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; &lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="PhXPId_x" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid #f4f6f7; padding: 2px 4px;"&gt;schemas.py&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt;, &lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="PhXPId_y" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid #f4f6f7; padding: 2px 4px;"&gt;user_service.py&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt;, &lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="PhXPId_z" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid #f4f6f7; padding: 2px 4px;"&gt;auth.py&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt;, &lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="PhXPId_10" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid #f4f6f7; padding: 2px 4px;"&gt;test_auth.py&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt;.&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="PhXPId_11"&gt;&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="PhXPId_12" style="font-weight: bold;"&gt;Reference Zone (Signatures Only):&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; &lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="PhXPId_13" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid #f4f6f7; padding: 2px 4px;"&gt;main.py&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt; (Claude uses an MCP tool to fetch &lt;em data-sfc-root="ep" jsaction="" jscontroller="ABoAEd#jBqpid" jsuid="PhXPId_14" style="font-weight: inherit;"&gt;only&lt;!--TgQPHd|||[]--&gt;&lt;/em&gt; the top 10 lines showing how the app starts, ignoring the database configuration logic below it).&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="PhXPId_15"&gt;&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="PhXPId_16" style="font-weight: bold;"&gt;Noise Zone (Blocked):&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; Dockerfiles, CI/CD configuration files, and unrelated business logic folders.&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;/ul&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;h2 data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="gjwZNd#ZxCkTb" jsuid="PhXPId_17" role="heading" style="font-size: 20px;"&gt;Step 3: Structured Multi-File Ingestion&lt;!--TgQPHd|||[]--&gt;&lt;/h2&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="xUgpab#A1M9vc" jsuid="PhXPId_18" style="margin: 16px 0px; overflow-wrap: break-word;"&gt;Claude pulls the Edit Zone files into the active context window, isolating them cleanly inside explicit structural tags so the code logic never bleeds together.&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="rxoZB#M4fm4d" jsuid="PhXPId_19" style="background-color: #f4f6f7; display: flex; gap: 16px; overflow-x: auto; padding: 16px;"&gt;&lt;pre style="margin: 0; overflow: auto hidden;"&gt;&lt;code class="language-xml"&gt;&amp;lt;&lt;span style="color: #9334e6;"&gt;file&lt;/span&gt; &lt;span style="color: #9334e6;"&gt;path&lt;/span&gt;=&lt;span style="color: #188038;"&gt;"src/schemas.py"&lt;/span&gt;&amp;gt;
# Current legacy state
class UserSession:
    def __init__(self, data: dict):
        self.data = data
&amp;lt;/&lt;span style="color: #9334e6;"&gt;file&lt;/span&gt;&amp;gt;

&amp;lt;&lt;span style="color: #9334e6;"&gt;file&lt;/span&gt; &lt;span style="color: #9334e6;"&gt;path&lt;/span&gt;=&lt;span style="color: #188038;"&gt;"src/user_service.py"&lt;/span&gt;&amp;gt;
from src.schemas import UserSession
def get_user_session(user_id: int):
    # Returns raw dict inside legacy class
    return UserSession({"id": user_id, "role": "admin"})
&amp;lt;/&lt;span style="color: #9334e6;"&gt;file&lt;/span&gt;&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;h2 data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="gjwZNd#ZxCkTb" jsuid="PhXPId_1a" role="heading" style="font-size: 20px;"&gt;Step 4: Fragmented Execution &amp;amp; Workflow Integration&lt;!--TgQPHd|||[]--&gt;&lt;/h2&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="xUgpab#A1M9vc" jsuid="PhXPId_1b" style="margin: 16px 0px; overflow-wrap: break-word;"&gt;Instead of outputting all changes at once, Claude executes a sequential state machine, executing terminal commands and Git operations via &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="PhXPId_1c" style="font-weight: bold;"&gt;MCP&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; at each milestone.&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uae3nf#pGIJIb" jsuid="PhXPId_1d"&gt;&lt;div&gt;&lt;/div&gt;&lt;ol&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="PhXPId_1e"&gt;&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="PhXPId_1f" style="font-weight: bold;"&gt;Modify Lowest Dependency (&lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="PhXPId_1g" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid #f4f6f7; padding: 2px 4px;"&gt;schemas.py&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt;):&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; Claude overwrites the file to use Pydantic.&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="qhbHec#lPvkWe" jsuid="PhXPId_1h"&gt;&lt;div&gt;&lt;/div&gt;&lt;ul&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="PhXPId_1i"&gt;&lt;em data-sfc-root="ep" jsaction="" jscontroller="ABoAEd#jBqpid" jsuid="PhXPId_1j" style="font-weight: inherit;"&gt;Tool Call:&lt;!--TgQPHd|||[]--&gt;&lt;/em&gt; &lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="PhXPId_1k" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid #f4f6f7; padding: 2px 4px;"&gt;mcp__filesystem__write_file(path="src/schemas.py", text="from pydantic import BaseModel\nclass UserSession(BaseModel):\n    id: int\n    role: str")&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;/ul&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="PhXPId_1l"&gt;&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="PhXPId_1m" style="font-weight: bold;"&gt;Modify Middle Layer (&lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="PhXPId_1n" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid #f4f6f7; padding: 2px 4px;"&gt;user_service.py&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt;):&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; Claude adjusts the service layer to instantiate the new Pydantic model.&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="PhXPId_1o"&gt;&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="PhXPId_1p" style="font-weight: bold;"&gt;Modify Top Layer &amp;amp; Tests (&lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="PhXPId_1q" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid #f4f6f7; padding: 2px 4px;"&gt;auth.py&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt; &amp;amp; &lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="PhXPId_1r" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid #f4f6f7; padding: 2px 4px;"&gt;test_auth.py&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt;):&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; Claude updates the endpoints and rewrites the test assertions from dictionary lookups (&lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="PhXPId_1s" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid #f4f6f7; padding: 2px 4px;"&gt;session['id']&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt;) to object attributes (&lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="PhXPId_1t" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid #f4f6f7; padding: 2px 4px;"&gt;session.id&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt;).&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="PhXPId_1u"&gt;&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="PhXPId_1v" style="font-weight: bold;"&gt;Automated Verification:&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; Claude runs pytest via the terminal MCP server to ensure type safety and logic integrity.&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="qhbHec#lPvkWe" jsuid="PhXPId_1w"&gt;&lt;div&gt;&lt;/div&gt;&lt;ul&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="PhXPId_1x"&gt;&lt;em data-sfc-root="ep" jsaction="" jscontroller="ABoAEd#jBqpid" jsuid="PhXPId_1y" style="font-weight: inherit;"&gt;Tool Call:&lt;!--TgQPHd|||[]--&gt;&lt;/em&gt; &lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="PhXPId_1z" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid #f4f6f7; padding: 2px 4px;"&gt;mcp__terminal__execute_command(command="poetry run pytest")&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;/ul&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="PhXPId_20"&gt;&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="PhXPId_21" style="font-weight: bold;"&gt;GitLab &amp;amp; Jira Update:&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; Once tests pass 100%, Claude uses the &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="PhXPId_22" style="font-weight: bold;"&gt;GitLab MCP Server&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; to create a branch, commit the changes, and push a Merge Request, concluding by updating the &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="PhXPId_23" style="font-weight: bold;"&gt;Jira&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; ticket status.&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="qhbHec#lPvkWe" jsuid="PhXPId_24"&gt;&lt;div&gt;&lt;/div&gt;&lt;ul&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="PhXPId_25"&gt;&lt;em data-sfc-root="ep" jsaction="" jscontroller="ABoAEd#jBqpid" jsuid="PhXPId_26" style="font-weight: inherit;"&gt;Tool Call:&lt;!--TgQPHd|||[]--&gt;&lt;/em&gt; &lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="PhXPId_27" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid #f4f6f7; padding: 2px 4px;"&gt;mcp__gitlab__create_merge_request(branch="feature/AUTH-42-pydantic-migration", title="Refactor sessions to Pydantic")&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="PhXPId_28"&gt;&lt;em data-sfc-root="ep" jsaction="" jscontroller="ABoAEd#jBqpid" jsuid="PhXPId_29" style="font-weight: inherit;"&gt;Tool Call:&lt;!--TgQPHd|||[]--&gt;&lt;/em&gt; &lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="PhXPId_2a" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid #f4f6f7; padding: 2px 4px;"&gt;mcp__jira__update_issue(ticket_id="AUTH-42", status="In Review", comment="Refactor complete. MR opened in GitLab.")&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;/ul&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;/ol&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;hr data-sfc-pl="|||[]" data-sfc-root="ep" jsaction="" jscontroller="zJhOJc#fwBjOe" jsuid="PhXPId_2b" style="border-color: rgb(220, 223, 229) currentcolor currentcolor; border-image: none; border-style: solid none none; border-width: 1px 0px 0px; height: 1px;" /&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="qhbHec#lPvkWe" jsuid="PhXPId_2d" style="text-align: left;"&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="xUgpab#A1M9vc" jsuid="KPcoff_0" style="margin: 16px 0px; overflow-wrap: break-word;"&gt;Here is the exact setup and configuration guide to bind &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="KPcoff_1" style="font-weight: bold;"&gt;Claude Desktop / Claude Code&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; to your workflow using the official and community-standard &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="KPcoff_2" style="font-weight: bold;"&gt;MCP (Model Context Protocol)&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; servers, paired with a robust Python verification stack.&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;hr data-sfc-pl="|||[]" data-sfc-root="ep" jsaction="" jscontroller="zJhOJc#fwBjOe" jsuid="KPcoff_3" style="border-color: rgb(220, 223, 229) currentcolor currentcolor; border-image: none; border-style: solid none none; border-width: 1px 0px 0px; height: 1px;" /&gt;&lt;h2 data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="gjwZNd#ZxCkTb" jsuid="KPcoff_4" role="heading" style="font-size: 20px;"&gt;Part 1: Initializing &amp;amp; Configuring MCP Servers&lt;!--TgQPHd|||[]--&gt;&lt;/h2&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="xUgpab#A1M9vc" jsuid="KPcoff_5" style="margin: 16px 0px; overflow-wrap: break-word;"&gt;MCP configurations are stored centrally in a JSON file. If you are using &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="KPcoff_6" style="font-weight: bold;"&gt;Claude Desktop&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;, this file is located at:&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="qhbHec#lPvkWe" jsuid="KPcoff_7"&gt;&lt;div&gt;&lt;/div&gt;&lt;ul&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="KPcoff_8"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="KPcoff_9"&gt;&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="KPcoff_a" style="font-weight: bold;"&gt;Mac/Linux:&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; &lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="KPcoff_b" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid #f4f6f7; padding: 2px 4px;"&gt;~/.claude/mcp.json&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="KPcoff_c"&gt;&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="KPcoff_d" style="font-weight: bold;"&gt;Windows:&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; &lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="KPcoff_e" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid #f4f6f7; padding: 2px 4px;"&gt;%APPDATA%\Claude\mcp.json&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="KPcoff_f"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;/ul&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="xUgpab#A1M9vc" jsuid="KPcoff_g" style="margin: 16px 0px; overflow-wrap: break-word;"&gt;Add the following standard configurations to your &lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="KPcoff_h" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid #f4f6f7; padding: 2px 4px;"&gt;mcp.json&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt; to link Claude to your system:&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="rxoZB#M4fm4d" jsuid="KPcoff_i" style="background-color: #f4f6f7; display: flex; gap: 16px; overflow-x: auto; padding: 16px;"&gt;&lt;pre style="margin: 0; overflow: auto hidden;"&gt;&lt;code class="language-json"&gt;{
  &lt;span style="color: #188038;"&gt;"mcpServers"&lt;/span&gt;: {
    &lt;span style="color: #188038;"&gt;"gitlab"&lt;/span&gt;: {
      &lt;span style="color: #188038;"&gt;"command"&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"npx"&lt;/span&gt;,
      &lt;span style="color: #188038;"&gt;"args"&lt;/span&gt;: [
        &lt;span style="color: #188038;"&gt;"-y"&lt;/span&gt;,
        &lt;span style="color: #188038;"&gt;"mcp-remote"&lt;/span&gt;,
        &lt;span style="color: #188038;"&gt;"https://gitlab.com"&lt;/span&gt;
      ]
    },
    &lt;span style="color: #188038;"&gt;"jira"&lt;/span&gt;: {
      &lt;span style="color: #188038;"&gt;"command"&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"npx"&lt;/span&gt;,
      &lt;span style="color: #188038;"&gt;"args"&lt;/span&gt;: [
        &lt;span style="color: #188038;"&gt;"-y"&lt;/span&gt;,
        &lt;span style="color: #188038;"&gt;"@hainanzhao/mcp-gitlab-jira"&lt;/span&gt;
      ],
      &lt;span style="color: #188038;"&gt;"env"&lt;/span&gt;: {
        &lt;span style="color: #188038;"&gt;"JIRA_HOST"&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"https://your-domain.atlassian.net"&lt;/span&gt;,
        &lt;span style="color: #188038;"&gt;"JIRA_USER_EMAIL"&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"your-email@example.com"&lt;/span&gt;,
        &lt;span style="color: #188038;"&gt;"JIRA_API_TOKEN"&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"YOUR_ATLASSIAN_API_TOKEN"&lt;/span&gt;
      }
    }
  }
}
&lt;/code&gt;&lt;/pre&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;h2 data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="gjwZNd#ZxCkTb" jsuid="KPcoff_j" role="heading" style="font-size: 16px;"&gt;Step-by-Step Initialization:&lt;!--TgQPHd|||[]--&gt;&lt;/h2&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uae3nf#pGIJIb" jsuid="KPcoff_k"&gt;&lt;div&gt;&lt;/div&gt;&lt;ol&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="KPcoff_l"&gt;&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="KPcoff_m" style="font-weight: bold;"&gt;GitLab Setup:&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; The official &lt;a data-sfc-cp="" data-sfc-root="ep" href="https://docs.gitlab.com/user/model_context_protocol/mcp_server/" jsaction="" jscontroller="SKtXpe#xR6Anb" jsuid="KPcoff_n"&gt;GitLab MCP Server&lt;!--TgQPHd|||[]--&gt;&lt;/a&gt; uses an elegant HTTP OAuth 2.0 transport flow. When Claude starts for the first time, your web browser will automatically open to securely authorize the connection directly to your GitLab account.&lt;span data-sfc-root="ep" jsaction="" jscontroller="gWOIub#gnsrYb" jsuid="KPcoff_o"&gt; [1] &lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="KPcoff_p"&gt;&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="KPcoff_q" style="font-weight: bold;"&gt;Jira Setup:&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; Generate a Jira API token inside your Atlassian Account Settings under Security. Paste that token into the &lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="KPcoff_r" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid #f4f6f7; padding: 2px 4px;"&gt;JIRA_API_TOKEN&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt; environment variable in the JSON configuration above.&lt;span data-sfc-root="ep" jsaction="" jscontroller="gWOIub#gnsrYb" jsuid="KPcoff_s"&gt; [2, 3] &lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="KPcoff_t"&gt;&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="KPcoff_u" style="font-weight: bold;"&gt;Restart Claude:&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; Fully quit and restart Claude Desktop (or relaunch your terminal if using Claude Code via &lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="KPcoff_v" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid #f4f6f7; padding: 2px 4px;"&gt;/mcp&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt;) to activate the connections.&lt;span data-sfc-root="ep" jsaction="" jscontroller="gWOIub#gnsrYb" jsuid="KPcoff_w"&gt; [1, 4] &lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;/ol&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;hr data-sfc-pl="|||[]" data-sfc-root="ep" jsaction="" jscontroller="zJhOJc#fwBjOe" jsuid="KPcoff_x" style="border-color: rgb(220, 223, 229) currentcolor currentcolor; border-image: none; border-style: solid none none; border-width: 1px 0px 0px; height: 1px;" /&gt;&lt;h2 data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="gjwZNd#ZxCkTb" jsuid="KPcoff_y" role="heading" style="font-size: 20px;"&gt;Part 2: The Python Verification Stack (Pre-Push Checks)&lt;!--TgQPHd|||[]--&gt;&lt;/h2&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="xUgpab#A1M9vc" jsuid="KPcoff_z" style="margin: 16px 0px; overflow-wrap: break-word;"&gt;To guarantee that Claude does not push broken code, it must use a local execution environment to test code variations &lt;em data-sfc-root="ep" jsaction="" jscontroller="ABoAEd#jBqpid" jsuid="KPcoff_10" style="font-weight: inherit;"&gt;before&lt;!--TgQPHd|||[]--&gt;&lt;/em&gt; opening a GitLab Merge Request. Integrate these three core tools via your build pipeline (e.g., inside a &lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="KPcoff_11" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid #f4f6f7; padding: 2px 4px;"&gt;pyproject.toml&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt; using &lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="KPcoff_12" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid #f4f6f7; padding: 2px 4px;"&gt;poetry&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt; or &lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="KPcoff_13" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid #f4f6f7; padding: 2px 4px;"&gt;pipenv&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt;):&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;table data-sfc-cp="" data-sfc-root="ep" export-element-id="aim-table-24" jsaction="" jscontroller="U6LtHc#vHIioc" jsuid="KPcoff_14" style="border-collapse: collapse; border: none; line-height: 1.2; table-layout: fixed; width: 100%;"&gt;&lt;tbody&gt;&lt;tr data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="qKcKWd#x8sSEf" jsuid="KPcoff_15"&gt;&lt;th data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="hcxKFe#NgVKOb" jsuid="KPcoff_16" style="border: 1pt solid #000000; overflow-wrap: break-word; padding: 5pt; text-align: left; vertical-align: top;"&gt;Tool&lt;!--TgQPHd|||[]--&gt;&lt;/th&gt;&lt;th data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="hcxKFe#NgVKOb" jsuid="KPcoff_17" style="border: 1pt solid #000000; overflow-wrap: break-word; padding: 5pt; text-align: left; vertical-align: top;"&gt;Verification Role&lt;!--TgQPHd|||[]--&gt;&lt;/th&gt;&lt;th data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="hcxKFe#NgVKOb" jsuid="KPcoff_18" style="border: 1pt solid #000000; overflow-wrap: break-word; padding: 5pt; text-align: left; vertical-align: top;"&gt;Claude Execution Command&lt;!--TgQPHd|||[]--&gt;&lt;/th&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/tr&gt;&lt;tr data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="qKcKWd#x8sSEf" jsuid="KPcoff_19"&gt;&lt;td data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="hcxKFe#NgVKOb" jsuid="KPcoff_1a" style="border: 1pt solid rgb(0, 0, 0); overflow-wrap: break-word; padding: 5pt; vertical-align: top;"&gt;&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="KPcoff_1b" style="font-weight: bold;"&gt;&lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="KPcoff_1c" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid #f4f6f7; padding: 2px 4px;"&gt;ruff&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/td&gt;&lt;td data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="hcxKFe#NgVKOb" jsuid="KPcoff_1d" style="border: 1pt solid rgb(0, 0, 0); overflow-wrap: break-word; padding: 5pt; vertical-align: top;"&gt;&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="KPcoff_1e" style="font-weight: bold;"&gt;Linting &amp;amp; Code Style:&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; Instantly catches syntax errors, unused imports, or bad formatting across edited files without executing code.&lt;!--TgQPHd|||[]--&gt;&lt;/td&gt;&lt;td data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="hcxKFe#NgVKOb" jsuid="KPcoff_1f" style="border: 1pt solid rgb(0, 0, 0); overflow-wrap: break-word; padding: 5pt; vertical-align: top;"&gt;&lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="KPcoff_1g" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid #f4f6f7; padding: 2px 4px;"&gt;poetry run ruff check src/&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/td&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/tr&gt;&lt;tr data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="qKcKWd#x8sSEf" jsuid="KPcoff_1h"&gt;&lt;td data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="hcxKFe#NgVKOb" jsuid="KPcoff_1i" style="border: 1pt solid rgb(0, 0, 0); overflow-wrap: break-word; padding: 5pt; vertical-align: top;"&gt;&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="KPcoff_1j" style="font-weight: bold;"&gt;&lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="KPcoff_1k" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid #f4f6f7; padding: 2px 4px;"&gt;mypy&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/td&gt;&lt;td data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="hcxKFe#NgVKOb" jsuid="KPcoff_1l" style="border: 1pt solid rgb(0, 0, 0); overflow-wrap: break-word; padding: 5pt; vertical-align: top;"&gt;&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="KPcoff_1m" style="font-weight: bold;"&gt;Static Type Checking:&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; Vital when refactoring interfaces (like dictionaries to Pydantic). Catches type conflicts upstream or downstream.&lt;!--TgQPHd|||[]--&gt;&lt;/td&gt;&lt;td data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="hcxKFe#NgVKOb" jsuid="KPcoff_1n" style="border: 1pt solid rgb(0, 0, 0); overflow-wrap: break-word; padding: 5pt; vertical-align: top;"&gt;&lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="KPcoff_1o" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid #f4f6f7; padding: 2px 4px;"&gt;poetry run mypy src/&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/td&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/tr&gt;&lt;tr data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="qKcKWd#x8sSEf" jsuid="KPcoff_1p"&gt;&lt;td data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="hcxKFe#NgVKOb" jsuid="KPcoff_1q" style="border: 1pt solid rgb(0, 0, 0); overflow-wrap: break-word; padding: 5pt; vertical-align: top;"&gt;&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="KPcoff_1r" style="font-weight: bold;"&gt;&lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="KPcoff_1s" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid #f4f6f7; padding: 2px 4px;"&gt;pytest&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/td&gt;&lt;td data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="hcxKFe#NgVKOb" jsuid="KPcoff_1t" style="border: 1pt solid rgb(0, 0, 0); overflow-wrap: break-word; padding: 5pt; vertical-align: top;"&gt;&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="KPcoff_1u" style="font-weight: bold;"&gt;Functional Unit Testing:&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; Executes unit tests to verify behavior and ensure that updated code matches expected outputs.&lt;!--TgQPHd|||[]--&gt;&lt;/td&gt;&lt;td data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="hcxKFe#NgVKOb" jsuid="KPcoff_1v" style="border: 1pt solid rgb(0, 0, 0); overflow-wrap: break-word; padding: 5pt; vertical-align: top;"&gt;&lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="KPcoff_1w" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid #f4f6f7; padding: 2px 4px;"&gt;poetry run pytest&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/td&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/tr&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;hr data-sfc-pl="|||[]" data-sfc-root="ep" jsaction="" jscontroller="zJhOJc#fwBjOe" jsuid="KPcoff_1x" style="border-color: rgb(220, 223, 229) currentcolor currentcolor; border-image: none; border-style: solid none none; border-width: 1px 0px 0px; height: 1px;" /&gt;&lt;h2 data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="gjwZNd#ZxCkTb" jsuid="KPcoff_1y" role="heading" style="font-size: 20px;"&gt;Part 3: The Complete Automated Workflow&lt;!--TgQPHd|||[]--&gt;&lt;/h2&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="xUgpab#A1M9vc" jsuid="KPcoff_1z" style="margin: 16px 0px; overflow-wrap: break-word;"&gt;Once everything is wired together, a typical interaction loop handles the entire task seamlessly from start to finish:&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div data-sfc-root="ep" jsaction="" jscontroller="rxoZB#M4fm4d" jsuid="KPcoff_20" style="background-color: #f4f6f7; display: flex; gap: 16px; overflow-x: auto; padding: 16px; text-align: left;"&gt;&lt;pre style="margin: 0; overflow: auto hidden;"&gt;&lt;code class="language-unset"&gt;[User Request] ➔ "Claude, look at ticket AUTH-42 and refactor the user session schemas."
       │
       ├── 1. Read Jira Ticket via MCP (Jira Server)
       ├── 2. Segment context into Isolation Zones (Filesystem MCP)
       ├── 3. Sequentially rewrite schemas, services, and tests (File-by-file)
       ├── 4. Trigger Pre-Push Checks:
       │      ├── ruff check (No lint errors)
       │      ├── mypy check (Type safety intact)
       │      └── pytest     (All tests passing 100%)
       │
       └── 5. Final Action:
              ├── GitLab: Commit code, create branch, and open Merge Request
              └── Jira: Progress ticket status to "In Review" and attach the MR link&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="qhbHec#lPvkWe" jsuid="KPcoff_22" style="text-align: left;"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div data-sfc-root="ep" jsaction="" jscontroller="kVZO2c#SfSkjb" jsuid="KPcoff_2a"&gt;&lt;br /&gt;&lt;div&gt;[1] &lt;a href="https://gitlab.com/gitlab-community/gitlab-org/gitlab/-/blob/438702-gcp-secret-manager-service-account-impersonation/doc/user/model_context_protocol/mcp_server.md"&gt;https://gitlab.com&lt;/a&gt;&lt;/div&gt;&lt;div&gt;[2] &lt;a href="https://mcpservers.org/servers/edrich13/mcp-jira-server"&gt;https://mcpservers.org&lt;/a&gt;&lt;/div&gt;&lt;div&gt;[3] &lt;a href="https://skywork.ai/skypage/en/ai-devops-gitlab-jira/1978656785630011392"&gt;https://skywork.ai&lt;/a&gt;&lt;/div&gt;&lt;div&gt;[4] &lt;a href="https://explainx.ai/mcp-servers/gitlab-jira"&gt;https://explainx.ai&lt;/a&gt;&lt;/div&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div data-sfc-root="ep" jsaction="" jscontroller="cU6Yt#LBga0c" jsuid="KPcoff_2b"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div data-sfc-root="ep" jsaction="" jscontroller="cU6Yt#LBga0c" jsuid="KPcoff_2c"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div data-sfc-root="ep" jsaction="" jscontroller="kVZO2c#SfSkjb" jsuid="PhXPId_2j"&gt;&lt;br /&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div data-sfc-root="ep" jsaction="" jscontroller="cU6Yt#LBga0c" jsuid="PhXPId_2k"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div data-sfc-root="ep" jsaction="" jscontroller="cU6Yt#LBga0c" jsuid="PhXPId_2l"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div data-sfc-root="ep" jsaction="" jscontroller="kVZO2c#SfSkjb" jsuid="BYKzWc_18"&gt;&lt;br /&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div data-sfc-root="ep" jsaction="" jscontroller="cU6Yt#LBga0c" jsuid="BYKzWc_19"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div data-sfc-root="ep" jsaction="" jscontroller="cU6Yt#LBga0c" jsuid="BYKzWc_1a"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Open Source Open Mind&lt;/div&gt;</description><author>dhiraj.patra@gmail.com (dhiraj patra)</author></item><item><title>AgenticAI Application Deployment in AWS, Azure and GCP</title><link>http://dhirajpatra.blogspot.com/2026/08/agenticai-application-deployment-in-aws.html</link><category>agent</category><category>agenticai</category><category>artificial intelligence</category><category>aws</category><category>azure</category><category>gcp</category><category>genai</category><category>mlops</category><pubDate>Wed, 26 Aug 2026 21:48:53 -0700</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8993867651193907565.post-2014910733163986083</guid><description>&lt;p&gt;To deploy your agentic AI application across cloud providers, you should &lt;mark data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="CoGy3c#Gbmioe" jsuid="hHaUJc_1" style="background: rgb(211, 227, 253); font-weight: bold;"&gt;treat your infrastructure as code using &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="hHaUJc_2"&gt;Terraform&lt;/span&gt;&lt;/mark&gt;. This ensures your databases, vector stores, compute environments, and IAM policies are version-controlled, repeatable, and secure.&lt;/p&gt;&lt;hr data-sfc-pl="|||[]" data-sfc-root="ep" jsaction="" jscontroller="zJhOJc#fwBjOe" jsuid="hHaUJc_3" style="border-color: rgb(220, 223, 229) currentcolor currentcolor; border-image: none; border-style: solid none none; border-width: 1px 0px 0px; height: 1px;" /&gt;&lt;h2 data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="gjwZNd#ZxCkTb" jsuid="hHaUJc_4" role="heading" style="font-size: 20px;"&gt;The Core Terraform Workflow&lt;!--TgQPHd|||[]--&gt;&lt;/h2&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="xUgpab#A1M9vc" jsuid="hHaUJc_5" style="margin: 16px 0px; overflow-wrap: break-word;"&gt;Every Terraform deployment follows the same four-step lifecycle:&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="rxoZB#M4fm4d" jsuid="hHaUJc_6" style="background-color: #f4f6f7; display: flex; gap: 16px; overflow-x: auto; padding: 16px;"&gt;&lt;pre style="margin: 0px; overflow: auto hidden;"&gt;&lt;code class="language-mermaid"&gt;graph LR
    A[1. Write .tf Files] --&amp;gt; B[2. terraform init]
    B --&amp;gt; C[3. terraform plan]
    C --&amp;gt; D[4. terraform apply]
&lt;/code&gt;&lt;/pre&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uae3nf#pGIJIb" jsuid="hHaUJc_7"&gt;&lt;div&gt;&lt;/div&gt;&lt;ol&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="hHaUJc_8"&gt;&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="hHaUJc_9" style="font-weight: bold;"&gt;Write:&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; Define your infrastructure components inside &lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="hHaUJc_a" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid rgb(244, 246, 247); padding: 2px 4px;"&gt;.tf&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt; files using HashiCorp Configuration Language (HCL).&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="hHaUJc_b"&gt;&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="hHaUJc_c" style="font-weight: bold;"&gt;Init:&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; Run &lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="hHaUJc_d" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid rgb(244, 246, 247); padding: 2px 4px;"&gt;terraform init&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt; to download the specific cloud providers (AWS, Azure, or GCP) and setup the backend storage.&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="hHaUJc_e"&gt;&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="hHaUJc_f" style="font-weight: bold;"&gt;Plan:&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; Run &lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="hHaUJc_g" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid rgb(244, 246, 247); padding: 2px 4px;"&gt;terraform plan&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt; to preview exactly what changes, creations, or deletions will happen.&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="hHaUJc_h"&gt;&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="hHaUJc_i" style="font-weight: bold;"&gt;Apply:&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; Run &lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="hHaUJc_j" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid rgb(244, 246, 247); padding: 2px 4px;"&gt;terraform apply&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt; to execute the plan and provision live cloud resources.&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;/ol&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;hr data-sfc-pl="|||[]" data-sfc-root="ep" jsaction="" jscontroller="zJhOJc#fwBjOe" jsuid="hHaUJc_k" style="border-color: rgb(220, 223, 229) currentcolor currentcolor; border-image: none; border-style: solid none none; border-width: 1px 0px 0px; height: 1px;" /&gt;&lt;h2 data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="gjwZNd#ZxCkTb" jsuid="hHaUJc_l" role="heading" style="font-size: 20px;"&gt;Cross-Cloud Terraform Architecture Blueprints&lt;!--TgQPHd|||[]--&gt;&lt;/h2&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="xUgpab#A1M9vc" jsuid="hHaUJc_m" style="margin: 16px 0px; overflow-wrap: break-word;"&gt;Below are production-ready code blocks to deploy the foundational agentic AI components for AWS, Azure, and GCP.&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;h2 data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="gjwZNd#ZxCkTb" jsuid="hHaUJc_n" role="heading" style="font-size: 16px;"&gt;Option A: AWS Deployment Blueprint&lt;!--TgQPHd|||[]--&gt;&lt;/h2&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="xUgpab#A1M9vc" jsuid="hHaUJc_o" style="margin: 16px 0px; overflow-wrap: break-word;"&gt;This script provisions an &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="hHaUJc_p" style="font-weight: bold;"&gt;Amazon Bedrock Agent&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;, maps it to an &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="hHaUJc_q" style="font-weight: bold;"&gt;S3 Knowledge Base&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; for RAG, and configures an &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="hHaUJc_r" style="font-weight: bold;"&gt;Aurora Serverless v2 PostgreSQL&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; cluster for memory storage.&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="rxoZB#M4fm4d" jsuid="hHaUJc_s" style="background-color: #f4f6f7; display: flex; gap: 16px; overflow-x: auto; padding: 16px;"&gt;&lt;pre style="margin: 0px; overflow: auto hidden;"&gt;&lt;code class="language-hcl"&gt;# 1. Define AWS Provider
provider "aws" {
  region = "us-east-1"
}

# 2. Storage for Unstructured Files (Vector Source)
resource "aws_s3_bucket" "agent_knowledge_base" {
  bucket = "enterprise-agent-knowledge-base-prod"
}

# 3. Aurora Serverless v2 for Relational/Long-Term Memory
resource "aws_rds_cluster" "agent_memory_db" {
  cluster_identifier   = "agent-memory-cluster"
  engine               = "aurora-postgresql"
  engine_mode          = "provisioned"
  engine_version       = "16.1"
  database_name        = "agent_memory"
  master_username      = "db_admin"
  master_password      = "SecurePasswordChangeMe123!" # Ideally sourced via AWS Secret Manager

  serverless_v2_scaling_configuration {
    max_capacity = 16
    min_capacity = 0.5
  }
}

# 4. Amazon Bedrock Agent Setup
resource "aws_bedrockagent_agent" "ai_agent" {
  agent_name                  = "enterprise-core-agent"
  foundation_model            = "amazon.nova-pro-v1:0" # Utilizing the Nova architecture
  instruction                 = "You are an enterprise orchestrator. Use your tools to query database states and check the knowledge base."
  agent_resource_role_arn     = aws_iam_role.agent_execution_role.arn
}
&lt;/code&gt;&lt;/pre&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;h2 data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="gjwZNd#ZxCkTb" jsuid="hHaUJc_t" role="heading" style="font-size: 16px;"&gt;Option B: Azure Deployment Blueprint&lt;!--TgQPHd|||[]--&gt;&lt;/h2&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="xUgpab#A1M9vc" jsuid="hHaUJc_u" style="margin: 16px 0px; overflow-wrap: break-word;"&gt;This script provisions the &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="hHaUJc_v" style="font-weight: bold;"&gt;Azure OpenAI Service&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;, hooks up an &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="hHaUJc_w" style="font-weight: bold;"&gt;Azure AI Search&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; instance for vector indexing, and launches &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="hHaUJc_x" style="font-weight: bold;"&gt;Azure Container Apps&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; to run your LangGraph/AutoGen Docker container.&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="rxoZB#M4fm4d" jsuid="hHaUJc_y" style="background-color: #f4f6f7; display: flex; gap: 16px; overflow-x: auto; padding: 16px;"&gt;&lt;pre style="margin: 0px; overflow: auto hidden;"&gt;&lt;code class="language-hcl"&gt;# 1. Define Azure Provider
provider "azurerm" {
  features {}
}

# 2. Resource Group
resource "azurerm_resource_group" "ai_rg" {
  name     = "rg-enterprise-agent-prod"
  location = "East US"
}

# 3. Azure OpenAI Service Deployment
resource "azurerm_cognitive_account" "openai" {
  name                = "cog-enterprise-openai-prod"
  location            = azurerm_resource_group.ai_rg.location
  resource_group_name = azurerm_resource_group.ai_rg.name
  kind                = "OpenAI"
  sku_name            = "S0"
}

# 4. Azure AI Search (Vector Store)
resource "azurerm_search_service" "vector_db" {
  name                = "src-agent-vector-store"
  resource_group_name = azurerm_resource_group.ai_rg.name
  location            = azurerm_resource_group.ai_rg.location
  sku                 = "standard"
}

# 5. Azure Container Apps (Orchestration Compute Runtime)
resource "azurerm_container_app" "agent_compute" {
  name                         = "ca-agent-orchestrator"
  resource_group_name          = azurerm_resource_group.ai_rg.name
  container_app_environment_id = azurerm_container_app_environment.main.id
  revision_mode                = "Single"

  template {
    container {
      name   = "agent-app"
      image  = "myregistry.azurecr.io/agentic-app:latest"
      cpu    = "0.5"
      memory = "1.0Gi"
      
      env {
        name  = "OPENAI_API_KEY"
        value = azurerm_cognitive_account.openai.primary_access_key
      }
    }
  }
}
&lt;/code&gt;&lt;/pre&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;h2 data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="gjwZNd#ZxCkTb" jsuid="hHaUJc_z" role="heading" style="font-size: 16px;"&gt;Option C: GCP Deployment Blueprint&lt;!--TgQPHd|||[]--&gt;&lt;/h2&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="xUgpab#A1M9vc" jsuid="hHaUJc_10" style="margin: 16px 0px; overflow-wrap: break-word;"&gt;This script provisions &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="hHaUJc_11" style="font-weight: bold;"&gt;Vertex AI Search&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; (Agent Builder backend), maps it to a &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="hHaUJc_12" style="font-weight: bold;"&gt;Cloud Storage&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; landing bucket, and configures a serverless &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="hHaUJc_13" style="font-weight: bold;"&gt;Cloud Run&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; environment to run containerized Model Context Protocol (MCP) tooling.&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="rxoZB#M4fm4d" jsuid="hHaUJc_14" style="background-color: #f4f6f7; display: flex; gap: 16px; overflow-x: auto; padding: 16px;"&gt;&lt;pre style="margin: 0px; overflow: auto hidden;"&gt;&lt;code class="language-hcl"&gt;# 1. Define GCP Provider
provider "google" {
  project = "enterprise-agentic-ai-prod"
  region  = "us-central1"
}

# 2. Storage Bucket for Data Lake
resource "google_storage_bucket" "agent_docs" {
  name     = "gcs-agent-unstructured-docs"
  location = "US"
}

# 3. Vertex AI Search / Discovery Engine Data Store
resource "google_discovery_engine_data_store" "rag_store" {
  location            = "global"
  data_store_id       = "agent-knowledge-base-store"
  display_name        = "Agent Knowledge Base"
  industry_vertical   = "GENERIC"
  content_config      = "CONTENT_REQUIRED"
  solution_types      = ["SOLUTION_TYPE_SEARCH"]
}

# 4. Cloud Run for MCP Tooling / Custom Python Code Logic
resource "google_cloud_run_v2_service" "mcp_tool_service" {
  name     = "cr-mcp-database-toolbox"
  location = "us-central1"

  template {
    containers {
      image = "gcr.io/enterprise-agentic-ai-prod/mcp-database-tool:latest"
      
      resources {
        limits = {
          cpu    = "2"
          memory = "2Gi"
        }
      }
    }
  }
}
&lt;/code&gt;&lt;/pre&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;hr data-sfc-pl="|||[]" data-sfc-root="ep" jsaction="" jscontroller="zJhOJc#fwBjOe" jsuid="hHaUJc_15" style="border-color: rgb(220, 223, 229) currentcolor currentcolor; border-image: none; border-style: solid none none; border-width: 1px 0px 0px; height: 1px;" /&gt;&lt;h2 data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="gjwZNd#ZxCkTb" jsuid="hHaUJc_16" role="heading" style="font-size: 20px;"&gt;Operational Best Practices for AI Terraform Pipelines&lt;!--TgQPHd|||[]--&gt;&lt;/h2&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="qhbHec#lPvkWe" jsuid="hHaUJc_17"&gt;&lt;div&gt;&lt;/div&gt;&lt;ul&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="hHaUJc_18"&gt;&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="hHaUJc_19" style="font-weight: bold;"&gt;Never Hardcode Secrets:&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; Never pass model API keys, database admin passwords, or access strings inside &lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="hHaUJc_1a" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid rgb(244, 246, 247); padding: 2px 4px;"&gt;.tf&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt; files. Use variables or refer directly to managed vaults (e.g., &lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="hHaUJc_1b" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid rgb(244, 246, 247); padding: 2px 4px;"&gt;aws_secretsmanager_secret&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt;, &lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="hHaUJc_1c" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid rgb(244, 246, 247); padding: 2px 4px;"&gt;azurerm_key_vault&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt;, or GCP &lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="hHaUJc_1d" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid rgb(244, 246, 247); padding: 2px 4px;"&gt;google_secret_manager_secret&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt;).&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="hHaUJc_1e"&gt;&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="hHaUJc_1f" style="font-weight: bold;"&gt;Secure Your State File:&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; The &lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="hHaUJc_1g" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid rgb(244, 246, 247); padding: 2px 4px;"&gt;terraform.tfstate&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt; file contains plain-text architectures and passwords. Always configure a &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="hHaUJc_1h" style="font-weight: bold;"&gt;Remote Backend&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; (like an encrypted AWS S3 bucket with DynamoDB locking, or Azure Blob Storage with lease blocks) to share state securely across your development team.&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="hHaUJc_1i"&gt;&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="hHaUJc_1j" style="font-weight: bold;"&gt;Isolate Environments:&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; Maintain distinct folder paths for &lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="hHaUJc_1k" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid rgb(244, 246, 247); padding: 2px 4px;"&gt;staging/&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt; and &lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="hHaUJc_1l" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid rgb(244, 246, 247); padding: 2px 4px;"&gt;production/&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt; environments to prevent accidental compute or database deletions during testing phases.&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;/ul&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;hr data-sfc-pl="|||[]" data-sfc-root="ep" jsaction="" jscontroller="zJhOJc#fwBjOe" jsuid="hHaUJc_1m" style="border-color: rgb(220, 223, 229) currentcolor currentcolor; border-image: none; border-style: solid none none; border-width: 1px 0px 0px; height: 1px;" /&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="xUgpab#A1M9vc" jsuid="hHaUJc_1n" style="margin: 16px 0px; overflow-wrap: break-word;"&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="xUgpab#A1M9vc" jsuid="MY6Oyb_0" style="margin: 16px 0px; overflow-wrap: break-word;"&gt;These modular files cleanly supplement the &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="MY6Oyb_2" style="font-weight: bold;"&gt;AWS Deployment Blueprint&lt;/span&gt; provided earlier, allowing you to externalize configurations and expose connection strings safely.&lt;/div&gt;&lt;h2 data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="gjwZNd#ZxCkTb" jsuid="MY6Oyb_3" role="heading" style="font-size: 20px;"&gt;Summary of Generated Files&lt;!--TgQPHd|||[]--&gt;&lt;/h2&gt;&lt;h2 data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="gjwZNd#ZxCkTb" jsuid="MY6Oyb_4" role="heading" style="font-size: 16px;"&gt;1. &lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="MY6Oyb_5" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid #f4f6f7; padding: 2px 4px;"&gt;variables.tf&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/h2&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="qhbHec#lPvkWe" jsuid="MY6Oyb_6"&gt;&lt;div&gt;&lt;/div&gt;&lt;ul&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="MY6Oyb_7"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="MY6Oyb_8"&gt;&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="MY6Oyb_9" style="font-weight: bold;"&gt;Input Isolation:&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; Parametrizes key cloud configuration targets, allowing you to easily swap regions, staging environments (&lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="MY6Oyb_a" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid #f4f6f7; padding: 2px 4px;"&gt;prod&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt; vs &lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="MY6Oyb_b" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid #f4f6f7; padding: 2px 4px;"&gt;dev&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt;), and names without editing main backend files.&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="MY6Oyb_c"&gt;&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="MY6Oyb_d" style="font-weight: bold;"&gt;Database Sizing:&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; Configures serverless boundaries (&lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="MY6Oyb_e" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid #f4f6f7; padding: 2px 4px;"&gt;db_min_capacity&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt;, &lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="MY6Oyb_f" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid #f4f6f7; padding: 2px 4px;"&gt;db_max_capacity&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt;) in Aurora Capacity Units (ACUs) to strictly limit unexpected hosting scaling costs.&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="MY6Oyb_g"&gt;&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="MY6Oyb_h" style="font-weight: bold;"&gt;Model Routing:&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; Provides a clean variable targeting your primary reasoning model (&lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="MY6Oyb_i" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid #f4f6f7; padding: 2px 4px;"&gt;amazon.nova-pro-v1:0&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt;), making it easy to swap variants later.&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="MY6Oyb_j"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;/ul&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;h2 data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="gjwZNd#ZxCkTb" jsuid="MY6Oyb_k" role="heading" style="font-size: 16px;"&gt;2. &lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="MY6Oyb_l" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid #f4f6f7; padding: 2px 4px;"&gt;outputs.tf&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/h2&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="qhbHec#lPvkWe" jsuid="MY6Oyb_m"&gt;&lt;div&gt;&lt;/div&gt;&lt;ul&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="MY6Oyb_n"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="MY6Oyb_o"&gt;&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="MY6Oyb_p" style="font-weight: bold;"&gt;Network &amp;amp; App Ingestion:&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; Exposes &lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="MY6Oyb_q" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid #f4f6f7; padding: 2px 4px;"&gt;database_cluster_endpoint&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt; so your local container or serverless runtime loops know exactly where to push transactional application state arrays.&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="MY6Oyb_r"&gt;&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="MY6Oyb_s" style="font-weight: bold;"&gt;Data Flow Targets:&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; Provides bucket domain routing indicators needed to wire up external data-lake synchronization tools or automated document upload bridges.&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="MY6Oyb_t"&gt;&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="MY6Oyb_u" style="font-weight: bold;"&gt;Execution Routing:&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; Returns &lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="MY6Oyb_v" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid #f4f6f7; padding: 2px 4px;"&gt;bedrock_agent_arn&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt;, allowing front-end API gateways or client channels to target your autonomous engine deployment during operational validation steps.&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="MY6Oyb_w"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;/ul&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;h2 data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="gjwZNd#ZxCkTb" jsuid="MY6Oyb_x" role="heading" style="font-size: 20px;"&gt;How to use these in your workspace&lt;!--TgQPHd|||[]--&gt;&lt;/h2&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uae3nf#pGIJIb" jsuid="MY6Oyb_y"&gt;&lt;div&gt;&lt;/div&gt;&lt;ol&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="MY6Oyb_z"&gt;Place &lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="MY6Oyb_10" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid #f4f6f7; padding: 2px 4px;"&gt;variables.tf&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt;, &lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="MY6Oyb_11" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid #f4f6f7; padding: 2px 4px;"&gt;outputs.tf&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt;, and your main code file (e.g., &lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="MY6Oyb_12" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid #f4f6f7; padding: 2px 4px;"&gt;main.tf&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt;) into the &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="MY6Oyb_13" style="font-weight: bold;"&gt;same project directory&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;.&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="MY6Oyb_14"&gt;Update the main code file to ingest these variables using &lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="MY6Oyb_15" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid #f4f6f7; padding: 2px 4px;"&gt;var.variable_name&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt; syntax:&lt;div data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="rxoZB#M4fm4d" jsuid="MY6Oyb_16" style="background-color: #f4f6f7; display: flex; gap: 16px; overflow-x: auto; padding: 16px;"&gt;&lt;pre style="margin: 0; overflow: auto hidden;"&gt;&lt;code class="language-hcl"&gt;# Example substitution snippet within your main.tf
resource "aws_s3_bucket" "agent_knowledge_base" {
  bucket = var.knowledge_base_bucket_name
}
&lt;/code&gt;&lt;/pre&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="MY6Oyb_17"&gt;Execute your workspace setup from your command line terminal:&lt;div data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="rxoZB#M4fm4d" jsuid="MY6Oyb_18" style="background-color: #f4f6f7; display: flex; gap: 16px; overflow-x: auto; padding: 16px;"&gt;&lt;pre style="margin: 0; overflow: auto hidden;"&gt;&lt;code class="language-bash"&gt;terraform init
terraform plan -out=tfplan.binary
terraform apply tfplan.binary
&lt;/code&gt;&lt;/pre&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;/ol&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="xUgpab#A1M9vc" jsuid="MY6Oyb_19" style="margin: 16px 0px; overflow-wrap: break-word;"&gt;&lt;br /&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div data-sfc-root="ep" jsaction="" jscontroller="kVZO2c#SfSkjb" jsuid="MY6Oyb_1c"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div data-sfc-root="ep" jsaction="" jscontroller="cU6Yt#LBga0c" jsuid="hHaUJc_1x"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div data-sfc-root="ep" jsaction="" jscontroller="cU6Yt#LBga0c" jsuid="hHaUJc_1y"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Open Source Open Mind&lt;/div&gt;</description><author>dhiraj.patra@gmail.com (dhiraj patra)</author></item><item><title>AgenticAi Application Deploying into GCP</title><link>http://dhirajpatra.blogspot.com/2026/08/agenticai-application-deploying-into-gcp.html</link><category>agent</category><category>agenticai</category><category>artificial intelligence</category><category>gcp</category><category>genai</category><category>mlops</category><pubDate>Wed, 26 Aug 2026 21:47:55 -0700</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8993867651193907565.post-3091144547823769581</guid><description>&lt;p&gt;Deploying a production-ready, feature-complete Agentic AI application on &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="QpPIPc_1" style="font-weight: bold;"&gt;Google Cloud Platform (GCP)&lt;/span&gt; requires &lt;mark data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="CoGy3c#Gbmioe" jsuid="QpPIPc_2" style="background: rgb(211, 227, 253); font-weight: bold;"&gt;leveraging the &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="QpPIPc_3"&gt;&lt;a data-sfc-cp="" data-sfc-root="ep" href="https://cloud.google.com/blog/products/ai-machine-learning/more-ways-to-build-and-scale-ai-agents-with-vertex-ai-agent-builder" jsaction="" jscontroller="SKtXpe#xR6Anb" jsuid="QpPIPc_4"&gt;Vertex AI Agent Builder&lt;/a&gt;&lt;/span&gt; ecosystem&lt;/mark&gt;. This managed framework handles long-running multi-agent execution loops, session state persistence, and native &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="QpPIPc_5" style="font-weight: bold;"&gt;Model Context Protocol (MCP)&lt;/span&gt; tool discovery.&lt;span data-sfc-root="ep" jsaction="" jscontroller="gWOIub#gnsrYb" jsuid="QpPIPc_6"&gt; [1, 2, 3]&lt;/span&gt;&lt;/p&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="xUgpab#A1M9vc" jsuid="QpPIPc_0" style="margin: 16px 0px; overflow-wrap: break-word;"&gt;&lt;span data-sfc-root="ep" jsaction="" jscontroller="gWOIub#gnsrYb" jsuid="QpPIPc_6"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;hr data-sfc-pl="|||[]" data-sfc-root="ep" jsaction="" jscontroller="zJhOJc#fwBjOe" jsuid="QpPIPc_7" style="border-color: rgb(220, 223, 229) currentcolor currentcolor; border-image: none; border-style: solid none none; border-width: 1px 0px 0px; height: 1px;" /&gt;&lt;h2 data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="gjwZNd#ZxCkTb" jsuid="QpPIPc_8" role="heading" style="font-size: 20px;"&gt;Step 1: Initialize Infrastructure &amp;amp; Core Reasoning Models&lt;!--TgQPHd|||[]--&gt;&lt;/h2&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="xUgpab#A1M9vc" jsuid="QpPIPc_9" style="margin: 16px 0px; overflow-wrap: break-word;"&gt;Set up your compute project boundaries and configure your primary intelligence layers.&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="qhbHec#lPvkWe" jsuid="QpPIPc_a"&gt;&lt;div&gt;&lt;/div&gt;&lt;ul&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="QpPIPc_b"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="QpPIPc_c"&gt;&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="QpPIPc_d" style="font-weight: bold;"&gt;Enable APIs:&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; Activate &lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="QpPIPc_e" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid rgb(244, 246, 247); padding: 2px 4px;"&gt;://googleapis.com&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt;, &lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="QpPIPc_f" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid rgb(244, 246, 247); padding: 2px 4px;"&gt;://googleapis.com&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt;, &lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="QpPIPc_g" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid rgb(244, 246, 247); padding: 2px 4px;"&gt;://googleapis.com&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt;, and &lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="QpPIPc_h" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid rgb(244, 246, 247); padding: 2px 4px;"&gt;://googleapis.com&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt; inside your Google Cloud Console.&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="QpPIPc_i"&gt;&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="QpPIPc_j" style="font-weight: bold;"&gt;Model Selection:&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; Provisions foundation models (such as &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="QpPIPc_k" style="font-weight: bold;"&gt;Gemini 1.5 Pro&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; or &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="QpPIPc_l" style="font-weight: bold;"&gt;Gemini 2.0 Flash&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;) via &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="QpPIPc_m" style="font-weight: bold;"&gt;Vertex AI Model Garden&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; to execute complex multi-step orchestration workflows.&lt;span data-sfc-root="ep" jsaction="" jscontroller="gWOIub#gnsrYb" jsuid="QpPIPc_n"&gt; [4, 5, 6] &lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="QpPIPc_o"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;/ul&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;h2 data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="gjwZNd#ZxCkTb" jsuid="QpPIPc_p" role="heading" style="font-size: 20px;"&gt;Step 2: Establish the Enterprise Data Connection Layer&lt;!--TgQPHd|||[]--&gt;&lt;/h2&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="xUgpab#A1M9vc" jsuid="QpPIPc_q" style="margin: 16px 0px; overflow-wrap: break-word;"&gt;Connect unstructured, structured, and open data meshes using managed data connectors.&lt;span data-sfc-root="ep" jsaction="" jscontroller="gWOIub#gnsrYb" jsuid="QpPIPc_r"&gt; [5] &lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div data-sfc-root="ep" jsaction="" jscontroller="cU6Yt#LBga0c" jsuid="QpPIPc_s"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="qhbHec#lPvkWe" jsuid="QpPIPc_t"&gt;&lt;div&gt;&lt;/div&gt;&lt;ul&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="QpPIPc_u"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="QpPIPc_v"&gt;&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="QpPIPc_w" style="font-weight: bold;"&gt;Unstructured Data Retrieval (RAG):&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; Create a &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="QpPIPc_x" style="font-weight: bold;"&gt;Vertex AI Search Data Store&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;. Point it at an &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="QpPIPc_y" style="font-weight: bold;"&gt;&lt;a data-sfc-cp="" data-sfc-root="ep" href="https://cloud.google.com/data-cloud" jsaction="" jscontroller="SKtXpe#xR6Anb" jsuid="QpPIPc_z"&gt;Agentic Data Cloud Storage&lt;!--TgQPHd|||[]--&gt;&lt;/a&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; bucket containing PDFs, logs, or documentation to serve as your agent grounding source.&lt;span data-sfc-root="ep" jsaction="" jscontroller="gWOIub#gnsrYb" jsuid="QpPIPc_10"&gt; [6, 7, 8] &lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="QpPIPc_11"&gt;&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="QpPIPc_12" style="font-weight: bold;"&gt;Structured Enterprise Systems:&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; Deploy the &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="QpPIPc_13" style="font-weight: bold;"&gt;MCP Toolbox for Databases&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; on &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="QpPIPc_14" style="font-weight: bold;"&gt;Cloud Run&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; to connect structured systems like &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="QpPIPc_15" style="font-weight: bold;"&gt;AlloyDB for PostgreSQL&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; or Cloud SQL. This allows agents to safely query database schemas using open-standard protocols.&lt;span data-sfc-root="ep" jsaction="" jscontroller="gWOIub#gnsrYb" jsuid="QpPIPc_16"&gt; [3, 9, 10] &lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="QpPIPc_17"&gt;&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="QpPIPc_18" style="font-weight: bold;"&gt;Cross-Cloud Analytics Data:&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; Connect analytical data lakes using &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="QpPIPc_19" style="font-weight: bold;"&gt;BigQuery Omni&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;, allowing your agent to analyze open table formats (like Apache Iceberg) on GCP or AWS without moving data.&lt;span data-sfc-root="ep" jsaction="" jscontroller="gWOIub#gnsrYb" jsuid="QpPIPc_1a"&gt; [7] &lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="QpPIPc_1b"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;/ul&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;h2 data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="gjwZNd#ZxCkTb" jsuid="QpPIPc_1c" role="heading" style="font-size: 20px;"&gt;Step 3: Package Agent Logic with the Google ADK&lt;!--TgQPHd|||[]--&gt;&lt;/h2&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="xUgpab#A1M9vc" jsuid="QpPIPc_1d" style="margin: 16px 0px; overflow-wrap: break-word;"&gt;Wrap your custom orchestrations (whether built via LangGraph, CrewAI, or Google's native framework) using the &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="QpPIPc_1e" style="font-weight: bold;"&gt;Agent Development Kit (ADK)&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;.&lt;span data-sfc-root="ep" jsaction="" jscontroller="gWOIub#gnsrYb" jsuid="QpPIPc_1f"&gt; [5, 11] &lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="qhbHec#lPvkWe" jsuid="QpPIPc_1g"&gt;&lt;div&gt;&lt;/div&gt;&lt;ul&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="QpPIPc_1h"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="QpPIPc_1i"&gt;&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="QpPIPc_1j" style="font-weight: bold;"&gt;Define App Wrapping:&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; Import &lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="QpPIPc_1k" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid rgb(244, 246, 247); padding: 2px 4px;"&gt;adk&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt; and bundle your multi-agent routing configurations inside a production-grade application script.&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="QpPIPc_1l"&gt;&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="QpPIPc_1m" style="font-weight: bold;"&gt;Configure Memory Pipelines:&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; Link your runtime configurations to &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="QpPIPc_1n" style="font-weight: bold;"&gt;Gemini Enterprise Agent Platform Sessions&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; or &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="QpPIPc_1o" style="font-weight: bold;"&gt;Memory Bank&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;. This allows the agent to pull from persistent short-term thread states and long-term user fact histories.&lt;span data-sfc-root="ep" jsaction="" jscontroller="gWOIub#gnsrYb" jsuid="QpPIPc_1p"&gt; [2, 3, 12] &lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="QpPIPc_1q"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;/ul&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="rxoZB#M4fm4d" jsuid="QpPIPc_1r" style="background-color: #f4f6f7; display: flex; gap: 16px; overflow-x: auto; padding: 16px;"&gt;&lt;pre style="margin: 0px; overflow: auto hidden;"&gt;&lt;code class="language-python"&gt;&lt;span style="color: #9334e6;"&gt;from&lt;/span&gt; &lt;span style="color: #b45908;"&gt;google&lt;/span&gt;.&lt;span style="color: #b45908;"&gt;cloud&lt;/span&gt; &lt;span style="color: #9334e6;"&gt;import&lt;/span&gt; &lt;span style="color: #b45908;"&gt;aiplatform_v1beta1&lt;/span&gt; &lt;span style="color: #9334e6;"&gt;as&lt;/span&gt; vertex_ai
&lt;span style="color: #9334e6;"&gt;from&lt;/span&gt; &lt;span style="color: #b45908;"&gt;vertex_adk&lt;/span&gt; &lt;span style="color: #9334e6;"&gt;import&lt;/span&gt; &lt;span style="color: #b45908;"&gt;AgentApplication&lt;/span&gt;

&lt;span style="color: #80868b; font-style: italic;"&gt;# Bind reasoning model and session-state handlers&lt;/span&gt;
&lt;span style="color: #b45908;"&gt;app&lt;/span&gt; = AgentApplication(
    model=&lt;span style="color: #188038;"&gt;"&lt;/span&gt;&lt;span style="color: #188038;"&gt;gemini-1.5-pro&lt;/span&gt;&lt;span style="color: #188038;"&gt;"&lt;/span&gt;,
    memory_provider=&lt;span style="color: #188038;"&gt;"&lt;/span&gt;&lt;span style="color: #188038;"&gt;vertex-session-service&lt;/span&gt;&lt;span style="color: #188038;"&gt;"&lt;/span&gt; &lt;span style="color: #80868b; font-style: italic;"&gt;# Automatic multi-turn state tracking&lt;/span&gt;
)

@app.tool
&lt;span style="color: #9334e6;"&gt;def&lt;/span&gt; &lt;span style="color: #b45908;"&gt;run_database_query&lt;/span&gt;(&lt;span style="color: #b45908;"&gt;query&lt;/span&gt;: str):
    &lt;span style="color: #188038;"&gt;"""&lt;/span&gt;&lt;span style="color: #188038;"&gt;Executes validated analytical operations via BigQuery.&lt;/span&gt;&lt;span style="color: #188038;"&gt;"""&lt;/span&gt;
    &lt;span style="color: #80868b; font-style: italic;"&gt;# Automated schema discovery mechanism hooks here&lt;/span&gt;
    &lt;span style="color: #9334e6;"&gt;pass&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;h2 data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="gjwZNd#ZxCkTb" jsuid="QpPIPc_1s" role="heading" style="font-size: 20px;"&gt;Step 4: Containerize &amp;amp; Choose Compute Runtime&lt;!--TgQPHd|||[]--&gt;&lt;/h2&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="xUgpab#A1M9vc" jsuid="QpPIPc_1t" style="margin: 16px 0px; overflow-wrap: break-word;"&gt;Depending on your enterprise topology, choose between an opinionated managed environment or an open cloud-native landscape.&lt;span data-sfc-root="ep" jsaction="" jscontroller="gWOIub#gnsrYb" jsuid="QpPIPc_1u"&gt; [11] &lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="qhbHec#lPvkWe" jsuid="QpPIPc_1v"&gt;&lt;div&gt;&lt;/div&gt;&lt;ul&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="QpPIPc_1w"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="QpPIPc_1x"&gt;&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="QpPIPc_1y" style="font-weight: bold;"&gt;Option A — Vertex AI Agent Engine (Recommended):&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; Package your application code using the &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="QpPIPc_1z" style="font-weight: bold;"&gt;Inline Source spec&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;. Upload files to a staging Cloud Storage bucket and execute &lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="QpPIPc_20" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid rgb(244, 246, 247); padding: 2px 4px;"&gt;aiplatform.developer_connect&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt; to push it straight into &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="QpPIPc_21" style="font-weight: bold;"&gt;Agent Engine&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; as a managed runtime.&lt;span data-sfc-root="ep" jsaction="" jscontroller="gWOIub#gnsrYb" jsuid="QpPIPc_22"&gt; [4, 13, 14, 15] &lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="QpPIPc_23"&gt;&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="QpPIPc_24" style="font-weight: bold;"&gt;Option B — Cloud Run (Flexible / Microservices):&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; Build a Docker container containing your agent scripts, store the image in &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="QpPIPc_25" style="font-weight: bold;"&gt;Artifact Registry&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;, and host it on &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="QpPIPc_26" style="font-weight: bold;"&gt;Cloud Run&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; using worker pools for scalable background execution.&lt;span data-sfc-root="ep" jsaction="" jscontroller="gWOIub#gnsrYb" jsuid="QpPIPc_27"&gt; [16] &lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="QpPIPc_28"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;/ul&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;h2 data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="gjwZNd#ZxCkTb" jsuid="QpPIPc_29" role="heading" style="font-size: 20px;"&gt;Step 5: Implement IAM Least-Privilege &amp;amp; Network Boundaries&lt;!--TgQPHd|||[]--&gt;&lt;/h2&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="xUgpab#A1M9vc" jsuid="QpPIPc_2a" style="margin: 16px 0px; overflow-wrap: break-word;"&gt;Lock down interactions between your autonomous agent, user directories, and storage blocks.&lt;span data-sfc-root="ep" jsaction="" jscontroller="gWOIub#gnsrYb" jsuid="QpPIPc_2b"&gt; [4, 9] &lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="qhbHec#lPvkWe" jsuid="QpPIPc_2c"&gt;&lt;div&gt;&lt;/div&gt;&lt;ul&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="QpPIPc_2d"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="QpPIPc_2e"&gt;&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="QpPIPc_2f" style="font-weight: bold;"&gt;User-Assigned Service Accounts:&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; Provision a specific worker service account with permissions strictly bound to &lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="QpPIPc_2g" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid rgb(244, 246, 247); padding: 2px 4px;"&gt;roles/aiplatform.user&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt; and storage bucket discovery roles.&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="QpPIPc_2h"&gt;&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="QpPIPc_2i" style="font-weight: bold;"&gt;VPC Service Controls:&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; Place your orchestration containers, database clusters, and MCP tooling nodes inside a isolated &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="QpPIPc_2j" style="font-weight: bold;"&gt;VPC Service Controls perimeter&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; to completely halt unauthorized exfiltration vectors.&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="QpPIPc_2k"&gt;&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="QpPIPc_2l" style="font-weight: bold;"&gt;Secret Ingestion:&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; Store operational API keys (e.g., Salesforce or third-party web tools) inside &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="QpPIPc_2m" style="font-weight: bold;"&gt;Secret Manager&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;, loading them dynamically at runtime.&lt;span data-sfc-root="ep" jsaction="" jscontroller="gWOIub#gnsrYb" jsuid="QpPIPc_2n"&gt; [4, 9] &lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="QpPIPc_2o"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;/ul&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;h2 data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="gjwZNd#ZxCkTb" jsuid="QpPIPc_2p" role="heading" style="font-size: 20px;"&gt;Step 6: Bind Model Armor and Operational Safeguards&lt;!--TgQPHd|||[]--&gt;&lt;/h2&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="xUgpab#A1M9vc" jsuid="QpPIPc_2q" style="margin: 16px 0px; overflow-wrap: break-word;"&gt;Filter input data arrays and output code execution tasks before they exit boundary perimeters.&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="qhbHec#lPvkWe" jsuid="QpPIPc_2r"&gt;&lt;div&gt;&lt;/div&gt;&lt;ul&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="QpPIPc_2s"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="QpPIPc_2t"&gt;&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="QpPIPc_2u" style="font-weight: bold;"&gt;Model Armor Guardrails:&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; Mount &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="QpPIPc_2v" style="font-weight: bold;"&gt;Vertex AI Model Armor&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; instances over the ingestion flow. This stops jailbreak prompt injections, redacts PII metrics (such as passwords and phone lines), and verifies grounding accuracy tags to block hallucinations.&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="QpPIPc_2w"&gt;&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="QpPIPc_2x" style="font-weight: bold;"&gt;Human-In-The-Loop (HITL) Triggers:&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; Set up conditional programmatic evaluations that halt agent progress and escalate tasks to an operational dashboard whenever an agent tries to finalize a high-risk financial transaction.&lt;span data-sfc-root="ep" jsaction="" jscontroller="gWOIub#gnsrYb" jsuid="QpPIPc_2y"&gt; [7, 9, 17] &lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="QpPIPc_2z"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;/ul&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;h2 data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="gjwZNd#ZxCkTb" jsuid="QpPIPc_30" role="heading" style="font-size: 20px;"&gt;Step 7: Observe and Continuous Evaluation&lt;!--TgQPHd|||[]--&gt;&lt;/h2&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="xUgpab#A1M9vc" jsuid="QpPIPc_31" style="margin: 16px 0px; overflow-wrap: break-word;"&gt;Maintain performance clarity and run real-time debugging against distributed multi-agent operations.&lt;span data-sfc-root="ep" jsaction="" jscontroller="gWOIub#gnsrYb" jsuid="QpPIPc_32"&gt; [1, 4] &lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="qhbHec#lPvkWe" jsuid="QpPIPc_33"&gt;&lt;div&gt;&lt;/div&gt;&lt;ul&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="QpPIPc_34"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="QpPIPc_35"&gt;&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="QpPIPc_36" style="font-weight: bold;"&gt;Execution Tracing:&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; Connect &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="QpPIPc_37" style="font-weight: bold;"&gt;Cloud Trace&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; to visualize granular execution timelines. This maps out exactly how long specific agent decisions take compared to underlying tool executions.&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="QpPIPc_38"&gt;&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="QpPIPc_39" style="font-weight: bold;"&gt;Telemetry Dashboards:&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; Track CPU runtime variations, request-per-second thresholds, and overall model token consumption volumes within the active &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="QpPIPc_3a" style="font-weight: bold;"&gt;Agent Engine UI&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; dashboard.&lt;span data-sfc-root="ep" jsaction="" jscontroller="gWOIub#gnsrYb" jsuid="QpPIPc_3b"&gt; [2, 4]&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div data-sfc-root="ep" jsaction="" jscontroller="kVZO2c#SfSkjb" jsuid="QpPIPc_3p"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div data-sfc-root="ep" jsaction="" jscontroller="cU6Yt#LBga0c" jsuid="QpPIPc_3q"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Open Source Open Mind&lt;/div&gt;</description><author>dhiraj.patra@gmail.com (dhiraj patra)</author></item><item><title>AgenticAI Deploying into Azure</title><link>http://dhirajpatra.blogspot.com/2026/08/agenticai-deploying-into-azure.html</link><category>agenticai</category><category>artificial intelligence</category><category>azure</category><category>genai</category><pubDate>Wed, 26 Aug 2026 21:46:32 -0700</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8993867651193907565.post-6075963697462559887</guid><description>&lt;p&gt;Deploying a production-grade agentic AI application on &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="gD7Ond_1" style="font-weight: bold;"&gt;Microsoft Azure&lt;/span&gt; requires orchestrating foundation models, vector databases, multi-agent frameworks, and secure access management.&lt;/p&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="xUgpab#A1M9vc" jsuid="gD7Ond_2" style="margin: 16px 0px; overflow-wrap: break-word;"&gt;Here is the step-by-step production deployment blueprint.&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;hr data-sfc-pl="|||[]" data-sfc-root="ep" jsaction="" jscontroller="zJhOJc#fwBjOe" jsuid="gD7Ond_3" style="border-color: rgb(220, 223, 229) currentcolor currentcolor; border-image: none; border-style: solid none none; border-width: 1px 0px 0px; height: 1px;" /&gt;&lt;h2 data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="gjwZNd#ZxCkTb" jsuid="gD7Ond_4" role="heading" style="font-size: 20px;"&gt;1. Provision the Enterprise AI Infrastructure&lt;!--TgQPHd|||[]--&gt;&lt;/h2&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="qhbHec#lPvkWe" jsuid="gD7Ond_5"&gt;&lt;div&gt;&lt;/div&gt;&lt;ul&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="gD7Ond_6"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="gD7Ond_7"&gt;&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="gD7Ond_8" style="font-weight: bold;"&gt;Azure OpenAI Service:&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; Deploy core reasoning models (&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="gD7Ond_9" style="font-weight: bold;"&gt;GPT-4o&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; or &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="gD7Ond_a" style="font-weight: bold;"&gt;o1&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;) via Azure AI Studio to handle complex multi-step planning and orchestration tasks.&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="gD7Ond_b"&gt;&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="gD7Ond_c" style="font-weight: bold;"&gt;Azure AI Search:&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; Provision this managed service to serve as your high-performance enterprise vector database, handling hybrid search and document indexing.&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="gD7Ond_d"&gt;&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="gD7Ond_e" style="font-weight: bold;"&gt;Private Endpoints:&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; Lock down network traffic by forcing all communication between compute resources and AI services to travel via private virtual networks (&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="gD7Ond_f" style="font-weight: bold;"&gt;VNet&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;).&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="gD7Ond_g"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;/ul&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;h2 data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="gjwZNd#ZxCkTb" jsuid="gD7Ond_h" role="heading" style="font-size: 20px;"&gt;2. Configure Enterprise Datasources &amp;amp; Ingestion&lt;!--TgQPHd|||[]--&gt;&lt;/h2&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="qhbHec#lPvkWe" jsuid="gD7Ond_i"&gt;&lt;div&gt;&lt;/div&gt;&lt;ul&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="gD7Ond_j"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="gD7Ond_k"&gt;&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="gD7Ond_l" style="font-weight: bold;"&gt;Storage Accounts:&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; Upload raw unstructured data (PDFs, docs) into secure &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="gD7Ond_m" style="font-weight: bold;"&gt;Azure Blob Storage&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; containers protected by localized firewalls.&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="gD7Ond_n"&gt;&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="gD7Ond_o" style="font-weight: bold;"&gt;Structured Data:&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; Connect transactional databases like &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="gD7Ond_p" style="font-weight: bold;"&gt;Azure SQL Database&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; or Cosmos DB using managed identity credentials rather than hardcoded keys.&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="gD7Ond_q"&gt;&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="gD7Ond_r" style="font-weight: bold;"&gt;Ingestion Pipelines:&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; Build &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="gD7Ond_s" style="font-weight: bold;"&gt;Azure Data Factory&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; or Azure AI Studio indexers to automatically chunk text, generate embeddings, and update the vector store.&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="gD7Ond_t"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;/ul&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;h2 data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="gjwZNd#ZxCkTb" jsuid="gD7Ond_u" role="heading" style="font-size: 20px;"&gt;3. Containerise and Package the Agent&lt;!--TgQPHd|||[]--&gt;&lt;/h2&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="qhbHec#lPvkWe" jsuid="gD7Ond_v"&gt;&lt;div&gt;&lt;/div&gt;&lt;ul&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="gD7Ond_w"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="gD7Ond_x"&gt;&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="gD7Ond_y" style="font-weight: bold;"&gt;Orchestration Code:&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; Bundle your multi-agent code framework (such as &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="gD7Ond_z" style="font-weight: bold;"&gt;LangGraph&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;, &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="gD7Ond_10" style="font-weight: bold;"&gt;AutoGen&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;, or &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="gD7Ond_11" style="font-weight: bold;"&gt;Semantic Kernel&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;) inside a lightweight Docker container image.&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="gD7Ond_12"&gt;&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="gD7Ond_13" style="font-weight: bold;"&gt;Container Registry:&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; Push your finalized enterprise production container images directly into a private &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="gD7Ond_14" style="font-weight: bold;"&gt;Azure Container Registry (ACR)&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; repository.&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="gD7Ond_15"&gt;&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="gD7Ond_16" style="font-weight: bold;"&gt;Environment Configuration:&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; Store runtime application secrets, external API keys, and endpoint configurations inside a secure &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="gD7Ond_17" style="font-weight: bold;"&gt;Azure Key Vault&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; instance.&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="gD7Ond_18"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;/ul&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;h2 data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="gjwZNd#ZxCkTb" jsuid="gD7Ond_19" role="heading" style="font-size: 20px;"&gt;4. Deploy the Agent Compute Layer&lt;!--TgQPHd|||[]--&gt;&lt;/h2&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="qhbHec#lPvkWe" jsuid="gD7Ond_1a"&gt;&lt;div&gt;&lt;/div&gt;&lt;ul&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="gD7Ond_1b"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="gD7Ond_1c"&gt;&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="gD7Ond_1d" style="font-weight: bold;"&gt;Azure Container Apps (ACA):&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; Deploy the multi-agent container into ACA for serverless scaling, built-in event routing, and clean HTTP microservice isolation.&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="gD7Ond_1e"&gt;&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="gD7Ond_1f" style="font-weight: bold;"&gt;Event-Driven Workflows:&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; Attach &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="gD7Ond_1g" style="font-weight: bold;"&gt;Azure Functions&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; or Service Bus to trigger background agent tasks automatically when files upload or databases update.&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="gD7Ond_1h"&gt;&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="gD7Ond_1i" style="font-weight: bold;"&gt;Managed Identities:&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; Assign a user-assigned &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="gD7Ond_1j" style="font-weight: bold;"&gt;Managed Identity&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; to the compute cluster to authenticate seamlessly with Azure OpenAI and databases.&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="gD7Ond_1k"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;/ul&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;h2 data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="gjwZNd#ZxCkTb" jsuid="gD7Ond_1l" role="heading" style="font-size: 20px;"&gt;5. Implement Operational Safeguards &amp;amp; Monitoring&lt;!--TgQPHd|||[]--&gt;&lt;/h2&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="qhbHec#lPvkWe" jsuid="gD7Ond_1m"&gt;&lt;div&gt;&lt;/div&gt;&lt;ul&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="gD7Ond_1n"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="gD7Ond_1o"&gt;&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="gD7Ond_1p" style="font-weight: bold;"&gt;Azure AI Content Safety:&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; Intercept user inputs and agent outputs in real-time to block jailbreaks, toxic speech, and protected material.&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="gD7Ond_1q"&gt;&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="gD7Ond_1r" style="font-weight: bold;"&gt;Application Insights:&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; Track runtime agent latency, asynchronous execution step durations, custom exceptions, and underlying model response structures.&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="gD7Ond_1s"&gt;&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="gD7Ond_1t" style="font-weight: bold;"&gt;Cost Controls:&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; Configure granular &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="gD7Ond_1u" style="font-weight: bold;"&gt;Azure Cost Management&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; budgets and token caps per API deployment to prevent recursive agent loops from spiking bills.&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="gD7Ond_1v"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;/ul&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;hr data-sfc-pl="|||[]" data-sfc-root="ep" jsaction="" jscontroller="zJhOJc#fwBjOe" jsuid="gD7Ond_1w" style="border-color: rgb(220, 223, 229) currentcolor currentcolor; border-image: none; border-style: solid none none; border-width: 1px 0px 0px; height: 1px;" /&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="xUgpab#A1M9vc" jsuid="gD7Ond_1x" style="margin: 16px 0px; overflow-wrap: break-word;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div data-sfc-root="ep" jsaction="" jscontroller="kVZO2c#SfSkjb" jsuid="gD7Ond_26"&gt;&lt;br /&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div data-sfc-root="ep" jsaction="" jscontroller="cU6Yt#LBga0c" jsuid="gD7Ond_27"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div data-sfc-root="ep" jsaction="" jscontroller="cU6Yt#LBga0c" jsuid="gD7Ond_28"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Open Source Open Mind&lt;/div&gt;</description><author>dhiraj.patra@gmail.com (dhiraj patra)</author></item><item><title>Azure  - Financial Services Application with RAG and AgenticAI</title><link>http://dhirajpatra.blogspot.com/2026/08/azure-financial-services-application.html</link><category>agent</category><category>agenticai</category><category>artificial intelligence</category><category>azure</category><category>rag</category><pubDate>Wed, 19 Aug 2026 08:23:54 -0700</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8993867651193907565.post-8542245466616850256</guid><description>&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZWZCRaUk5-8tUk2ueXpjLTB4SADOm3AdmnB7t3Z-sOVoKWAc1VV9_vJQIIulOVjm7p3JRL0wQerFNEO8azK06b5lHY9dxEmLX4x35AYduV2SIexjCQ8nXcRi6OLALSO3pIcgDSIsgYhyphenhyphenRYWg2I6Lp9aiShhL0uiyKBLBgSIH9pVLQA7SVnT5D4Qwmi61-/s1536/Azure_architecture_ecommerce.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="1024" data-original-width="1536" height="381" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZWZCRaUk5-8tUk2ueXpjLTB4SADOm3AdmnB7t3Z-sOVoKWAc1VV9_vJQIIulOVjm7p3JRL0wQerFNEO8azK06b5lHY9dxEmLX4x35AYduV2SIexjCQ8nXcRi6OLALSO3pIcgDSIsgYhyphenhyphenRYWg2I6Lp9aiShhL0uiyKBLBgSIH9pVLQA7SVnT5D4Qwmi61-/w572-h381/Azure_architecture_ecommerce.png" width="572" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;span style="text-align: left;"&gt;generated by microsoft copilot&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;I would make the Azure version slightly more advanced than the AWS/GCP versions because Azure now has a particularly strong enterprise story around Microsoft Foundry + Agent 365 + Entra + Defender + Purview.&lt;/p&gt;&lt;p&gt;I also want to update two terms in your original architecture for interview accuracy:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Use “Microsoft Foundry” / “Microsoft Foundry Agent Service” rather than treating the older Azure AI Foundry naming as the whole platform.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;“Agent 365” is now a real enterprise control plane for discovering, governing, securing and managing agents across Microsoft and third-party ecosystems. It became generally available for the commercial segment on May 1, 2026. (&lt;a href="https://learn.microsoft.com/en-us/microsoft-agent-365/overview?utm_source=chatgpt.com" title="Microsoft Agent 365 overview | Microsoft Learn"&gt;Microsoft Learn&lt;/a&gt;)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Azure API Management now has dedicated AI Gateway capabilities, including token quotas, semantic caching, model routing/governance and MCP management. The dedicated AI Gateway tier is currently preview, so for production architecture I would distinguish the generally available APIM AI-gateway capabilities from the preview tier. (&lt;a href="https://learn.microsoft.com/en-us/azure/api-management/genai-gateway-capabilities?utm_source=chatgpt.com" title="AI gateway capabilities in Azure API Management | Microsoft Learn"&gt;Microsoft Learn&lt;/a&gt;)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Azure AI Search now also has “agentic retrieval” and underpins Foundry IQ, Microsoft's managed, permission-aware knowledge layer for agents. (&lt;a href="https://learn.microsoft.com/en-us/azure/search/vector-search-overview?utm_source=chatgpt.com" title="Vector Search Overview - Azure AI Search | Microsoft Learn"&gt;Microsoft Learn&lt;/a&gt;)&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h1&gt;1. Business scenario&lt;/h1&gt;&lt;p&gt;We'll use exactly the same financial-services problem:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;“Investigate why counterparty ABC breached its exposure limit yesterday and recommend what action should be taken.”&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;The solution needs:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;                    FINANCIAL AI PLATFORM

        ┌────────────────────────────────────────┐
        │                                        │
        │  Unstructured Knowledge                │
        │  ├── Risk policies                     │
        │  ├── Regulatory documents              │
        │  ├── Credit policies                   │
        │  └── Procedures                        │
        │                                        │
        │  Structured Data                       │
        │  ├── Trades                            │
        │  ├── Exposure                          │
        │  ├── Limits                            │
        │  ├── P&amp;amp;L                               │
        │  └── Risk metrics                      │
        │                                        │
        │  Enterprise Tools                      │
        │  ├── Risk APIs                         │
        │  ├── Trade APIs                        │
        │  ├── Workflow                          │
        │  └── Microsoft 365                     │
        │                                        │
        └────────────────────────────────────────┘&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This is therefore:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;RAG
+
Agentic AI
+
Enterprise Data
+
Enterprise Tools
+
Security
+
Governance
+
Observability&lt;/code&gt;&lt;/pre&gt;&lt;hr /&gt;&lt;h1&gt;2. Complete Azure architecture&lt;/h1&gt;&lt;pre&gt;&lt;code class="language-text"&gt;                              USERS
                                │
                                ▼
                    ┌─────────────────────┐
                    │ Azure Application    │
                    │ Gateway + WAF        │
                    └──────────┬──────────┘
                               │
                         Azure Firewall
                        / Egress Control
                               │
                               ▼
                  ┌─────────────────────────┐
                  │ Azure App Service       │
                  │ / Container Apps / AKS  │
                  │                         │
                  │ API                     │
                  │ UI                      │
                  │ Orchestrator            │
                  └───────────┬─────────────┘
                              │
                              ▼
                 ┌──────────────────────────┐
                 │ Azure API Management     │
                 │ AI Gateway               │
                 │                          │
                 │ Auth                     │
                 │ Rate limits              │
                 │ Token quotas             │
                 │ Model routing            │
                 │ Semantic caching         │
                 │ Cost tracking            │
                 │ MCP governance           │
                 └────────────┬─────────────┘
                              │
                 ┌────────────┼──────────────┐
                 │            │              │
                 ▼            ▼              ▼
          Microsoft        Azure AI        Agent
          Foundry          Search          Tools
                 │            │              │
                 │            │              ├── Functions
                 │            │              ├── Logic Apps
                 │            │              ├── APIs
                 │            │              ├── SQL
                 │            │              └── MCP
                 │            │
                 ▼            ▼
          Foundry Models   RAG / Vector
          / Model Catalog   / Hybrid Search
                 │
                 ▼
           Foundry Agent
               Service
                 │
                 ▼
            Model Armor /
          Content Safety
                 │
                 ▼
          Human Approval
                 │
                 ▼
               USER&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Security and governance wrap around the entire architecture:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Entra ID
   │
   ├── Identity
   ├── RBAC
   └── Managed Identity

Agent 365
   │
   ├── Agent inventory
   ├── Governance
   ├── Ownership
   ├── Lifecycle
   └── Risk controls

Defender
   │
   ├── Threat detection
   └── Runtime protection

Purview
   │
   ├── Data governance
   ├── Classification
   └── Compliance

Private Endpoints
   │
   └── Private connectivity&lt;/code&gt;&lt;/pre&gt;&lt;hr /&gt;&lt;h1&gt;3. Perimeter&lt;/h1&gt;&lt;p&gt;The request first hits:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Internet
   │
   ▼
Azure Application Gateway
   │
   ▼
WAF
   │
   ├── SQL injection
   ├── XSS
   ├── malicious payloads
   ├── IP rules
   └── HTTP attacks
   │
   ▼
Backend&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;For a larger global architecture I would consider:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Azure Front Door
        │
        ▼
Application Gateway
        │
        ▼
Regional workload&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;That gives:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Global traffic management
+
Regional ingress
+
WAF
+
Application routing&lt;/code&gt;&lt;/pre&gt;&lt;hr /&gt;&lt;h1&gt;4. Compute layer&lt;/h1&gt;&lt;p&gt;Your original proposal uses App Service.&lt;/p&gt;&lt;p&gt;That is perfectly reasonable for:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Frontend
REST APIs
Lightweight orchestration
Stateless services&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;But for a senior architect interview, explain the alternatives:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;                    Azure Compute
                         │
          ┌──────────────┼──────────────┐
          ▼              ▼              ▼
     App Service    Container Apps     AKS
          │              │              │
       Simple          Serverless      Complex
       APIs            containers      Kubernetes&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;My decision:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;App Service
   ↓
Simple enterprise web/API application

Container Apps
   ↓
Microservices + event-driven agents

AKS
   ↓
Complex Kubernetes platform,
GPU/custom models,
advanced scheduling&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;For our architecture:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Application Gateway
        │
        ▼
Azure Container Apps / App Service
        │
        ├── API
        ├── UI
        └── Orchestration&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;And use AKS only where justified.&lt;/p&gt;&lt;hr /&gt;&lt;h1&gt;5. Azure API Management as AI Gateway&lt;/h1&gt;&lt;p&gt;This is one of the most important parts.&lt;/p&gt;&lt;p&gt;Do not allow:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;App
 │
 ├────► Gemini
 ├────► Claude
 ├────► GPT
 └────► other models&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Instead:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;                 Applications
                      │
                      ▼
              Azure API Management
                    AI Gateway
                      │
          ┌───────────┼───────────┐
          │           │           │
       Security     Routing      Cost
          │           │           │
          ▼           ▼           ▼
        IAM       Model choice  Tokens
                      │
          ┌───────────┼───────────┐
          ▼           ▼           ▼
       Foundry      Azure       External
        Models      OpenAI       Models&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Azure APIM's current AI gateway capabilities include token rate limiting, semantic caching, model routing/governance and support for model APIs from multiple providers. (&lt;a href="https://learn.microsoft.com/en-us/azure/api-management/genai-gateway-capabilities?utm_source=chatgpt.com" title="AI gateway capabilities in Azure API Management | Microsoft Learn"&gt;Microsoft Learn&lt;/a&gt;)&lt;/p&gt;&lt;hr /&gt;&lt;h1&gt;6. Token governance&lt;/h1&gt;&lt;p&gt;Imagine three departments:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Risk
Compliance
Research&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Without a gateway:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Risk
  │
  └── consumes entire model quota

Compliance
  │
  └── 429 errors

Research
  │
  └── 429 errors&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;APIM solves this with token-aware policies.&lt;/p&gt;&lt;p&gt;Conceptually:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Risk
   │
   ▼
100K TPM

Compliance
   │
   ▼
50K TPM

Research
   │
   ▼
25K TPM&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Azure API Management supports token limits based on consumers such as subscription keys or arbitrary policy keys. (&lt;a href="https://learn.microsoft.com/en-us/azure/api-management/genai-gateway-capabilities?utm_source=chatgpt.com" title="AI gateway capabilities in Azure API Management | Microsoft Learn"&gt;Microsoft Learn&lt;/a&gt;)&lt;/p&gt;&lt;hr /&gt;&lt;h1&gt;7. Semantic caching&lt;/h1&gt;&lt;p&gt;This is particularly useful for enterprise assistants.&lt;/p&gt;&lt;p&gt;User asks:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;“What is the counterparty limit policy?”&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Another user asks:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;“What is the approved exposure limit policy for counterparties?”&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;The prompts aren't identical but may be semantically equivalent.&lt;/p&gt;&lt;p&gt;Instead of:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Request
 ↓
LLM
 ↓
expensive inference&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;we can have:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Request
 ↓
Semantic Cache
 │
 ├── HIT ──► cached response
 │
 └── MISS
       ↓
      LLM&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Azure APIM supports semantic caching with Azure Managed Redis or another compatible external cache. (&lt;a href="https://learn.microsoft.com/en-us/azure/api-management/azure-openai-enable-semantic-caching?utm_source=chatgpt.com" title="Enable Semantic Caching for LLM APIs in Azure API Management | Microsoft Learn"&gt;Microsoft Learn&lt;/a&gt;)&lt;/p&gt;&lt;hr /&gt;&lt;h1&gt;8. Microsoft Foundry&lt;/h1&gt;&lt;p&gt;Now we reach the AI platform.&lt;/p&gt;&lt;p&gt;Conceptually:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;                 Microsoft Foundry
                       │
       ┌───────────────┼────────────────┐
       │               │                │
       ▼               ▼                ▼
     Models          Agents          Evaluation
       │               │                │
       ▼               ▼                ▼
    Model Catalog   Agent Service     Testing&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Foundry becomes the AI engineering platform.&lt;/p&gt;&lt;p&gt;The architecture is:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Developer
   │
   ▼
Foundry
   │
   ├── Model selection
   ├── Agent development
   ├── Tools
   ├── Evaluation
   ├── Deployment
   └── Monitoring&lt;/code&gt;&lt;/pre&gt;&lt;hr /&gt;&lt;h1&gt;9. Foundry Agent Service&lt;/h1&gt;&lt;p&gt;The agent receives:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;"Investigate ABC exposure breach."&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;It can:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;PLAN
 ↓
retrieve information
 ↓
call tools
 ↓
reason
 ↓
retrieve more information
 ↓
validate
 ↓
recommend action&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Architecture:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;                     USER
                       │
                       ▼
                Foundry Agent
                    Service
                       │
                 ┌─────┴─────┐
                 │   Planner │
                 └─────┬─────┘
                       │
        ┌──────────────┼──────────────┐
        ▼              ▼              ▼
      RAG            Tools          APIs
        │              │              │
        ▼              ▼              ▼
 AI Search        Functions      Enterprise
                                  systems&lt;/code&gt;&lt;/pre&gt;&lt;hr /&gt;&lt;h1&gt;10. Agent state&lt;/h1&gt;&lt;p&gt;Your original proposal uses Cosmos DB.&lt;/p&gt;&lt;p&gt;That's a good architectural choice.&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;                    Agent
                      │
                      ▼
                 Cosmos DB
                      │
       ┌──────────────┼──────────────┐
       ▼              ▼              ▼
 conversation      state          metadata
 history&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Example:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-json"&gt;{
  "conversation_id": "abc-123",
  "user_id": "u-987",
  "tenant_id": "bank-a",
  "agent": "risk-investigator",
  "state": {
    "counterparty": "ABC",
    "exposure": 125000000,
    "limit": 100000000,
    "breach": 25000000
  }
}&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;But I would separate:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Conversation state
       ↓
Cosmos DB

Financial source of truth
       ↓
PostgreSQL / Fabric / Databricks / core systems&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Never make agent memory the financial system of record.&lt;/p&gt;&lt;hr /&gt;&lt;h1&gt;11. RAG&lt;/h1&gt;&lt;p&gt;Now the knowledge layer.&lt;/p&gt;&lt;p&gt;Documents:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Azure Blob Storage
│
├── Credit Policy.pdf
├── Market Risk Policy.pdf
├── Counterparty Policy.pdf
├── Basel Regulations.pdf
└── Internal Procedures.pdf&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Pipeline:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;                 Blob Storage
                      │
                      ▼
                Azure AI Search
                      │
          ┌───────────┼───────────┐
          ▼           ▼           ▼
        Chunk       Embed       Metadata
          │           │           │
          └───────────┼───────────┘
                      ▼
                Search Index
                      │
           ┌──────────┼──────────┐
           ▼          ▼          ▼
        Keyword     Vector     Hybrid
        Search      Search     Search&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Azure AI Search currently supports vector, keyword, hybrid and multimodal search. (&lt;a href="https://learn.microsoft.com/en-us/azure/search/vector-search-overview?utm_source=chatgpt.com" title="Vector Search Overview - Azure AI Search | Microsoft Learn"&gt;Microsoft Learn&lt;/a&gt;)&lt;/p&gt;&lt;hr /&gt;&lt;h1&gt;12. Hybrid search&lt;/h1&gt;&lt;p&gt;Don't rely exclusively on vector search.&lt;/p&gt;&lt;p&gt;For financial applications:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;User:

"Find policy CR-1024 regarding
BBB- rated counterparties."&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The exact identifier:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;CR-1024&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;is better handled by lexical search.&lt;/p&gt;&lt;p&gt;But:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;"What happens if the counterparty's
credit quality deteriorates?"&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;is better suited to semantic retrieval.&lt;/p&gt;&lt;p&gt;Therefore:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;                 Query
                   │
          ┌────────┴────────┐
          ▼                 ▼
     Keyword Search    Vector Search
          │                 │
          └────────┬────────┘
                   ▼
             Hybrid ranking
                   │
                   ▼
             Top documents&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Azure AI Search explicitly supports hybrid vector + keyword queries. (&lt;a href="https://learn.microsoft.com/en-us/azure/search/vector-search-overview?utm_source=chatgpt.com" title="Vector Search Overview - Azure AI Search | Microsoft Learn"&gt;Microsoft Learn&lt;/a&gt;)&lt;/p&gt;&lt;hr /&gt;&lt;h1&gt;13. Agentic retrieval&lt;/h1&gt;&lt;p&gt;This is an important newer Azure capability.&lt;/p&gt;&lt;p&gt;Instead of a simplistic:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;question
 ↓
vector search
 ↓
documents&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;agentic retrieval can reason about the retrieval process itself.&lt;/p&gt;&lt;p&gt;Conceptually:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;User Question
      │
      ▼
Retrieval Agent
      │
      ├── Understand question
      ├── Break into subqueries
      ├── Search
      ├── Filter
      ├── Rank
      └── Produce evidence
             │
             ▼
          Main Agent&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Azure AI Search documentation now includes agentic retrieval and identifies Azure AI Search as the foundation for Foundry IQ's permission-aware knowledge layer. (&lt;a href="https://learn.microsoft.com/en-us/azure///search/?utm_source=chatgpt.com" title="Azure AI Search documentation - Azure AI Search | Microsoft Learn"&gt;Microsoft Learn&lt;/a&gt;)&lt;/p&gt;&lt;hr /&gt;&lt;h1&gt;14. Security-aware RAG&lt;/h1&gt;&lt;p&gt;This is critical for banking.&lt;/p&gt;&lt;p&gt;Suppose:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Consultant A
   ↓
Client A

Consultant B
   ↓
Client B&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The search index contains:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-json"&gt;{
  "document_id": "DOC-123",
  "tenant_id": "BANK-A",
  "classification": "CONFIDENTIAL",
  "business_unit": "MARKET_RISK"
}&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The retrieval request must incorporate authorization context.&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;User
 │
 ▼
Entra ID
 │
 ▼
Claims
 │
 ├── tenant
 ├── role
 ├── region
 └── classification
 │
 ▼
Azure AI Search
 │
 ▼
Authorized results&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Azure AI Search supports role-based access approaches, and current Microsoft documentation emphasizes permission-aware retrieval through the Foundry IQ knowledge layer. (&lt;a href="https://learn.microsoft.com/en-us/azure/search/vector-search-overview?utm_source=chatgpt.com" title="Vector Search Overview - Azure AI Search | Microsoft Learn"&gt;Microsoft Learn&lt;/a&gt;)&lt;/p&gt;&lt;hr /&gt;&lt;h1&gt;15. Microsoft Entra ID&lt;/h1&gt;&lt;p&gt;Entra becomes the identity backbone.&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;                    Entra ID
                       │
        ┌──────────────┼──────────────┐
        ▼              ▼              ▼
      Users          Agents         Services
        │              │              │
        ▼              ▼              ▼
      RBAC       Agent Identity    Managed Identity&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Avoid:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-python"&gt;API_KEY = "xxxxxxxx"&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Prefer:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Managed Identity
        │
        ▼
Entra
        │
        ▼
Azure resource&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This eliminates unnecessary secret distribution.&lt;/p&gt;&lt;hr /&gt;&lt;h1&gt;16. Azure Agent 365&lt;/h1&gt;&lt;p&gt;This is where your Azure architecture becomes substantially different from AWS/GCP.&lt;/p&gt;&lt;p&gt;Think of Agent 365 as the enterprise agent control plane.&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;                  Agent 365
                      │
       ┌──────────────┼─────────────────┐
       ▼              ▼                 ▼
   Inventory       Governance        Security
       │              │                 │
       ▼              ▼                 ▼
 Agent registry   Policies          Threat detection
 Ownership        Permissions       Runtime protection
 Lifecycle         Compliance       Risk&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Microsoft describes Agent 365 as a centralized control plane for discovering, managing, governing and securing agents across Microsoft and third-party ecosystems. (&lt;a href="https://learn.microsoft.com/en-us/office365/servicedescriptions/microsoft-agent-365/microsoft-agent-365?utm_source=chatgpt.com" title="Microsoft Agent 365 - Service Descriptions | Microsoft Learn"&gt;Microsoft Learn&lt;/a&gt;)&lt;/p&gt;&lt;hr /&gt;&lt;h1&gt;17. Agent lifecycle&lt;/h1&gt;&lt;p&gt;This is an excellent interview concept.&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;              CREATE
                │
                ▼
             TEST
                │
                ▼
           EVALUATE
                │
                ▼
            APPROVE
                │
                ▼
           REGISTER
                │
                ▼
            DEPLOY
                │
                ▼
            MONITOR
                │
                ▼
             AUDIT
                │
                ▼
            RETIRE&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Agent 365 provides governance capabilities around onboarding, ownership, activation, blocking and lifecycle management. (&lt;a href="https://learn.microsoft.com/en-us/training/modules/agent-365-govern/?utm_source=chatgpt.com" title="Govern agents using Agent 365 - Training | Microsoft Learn"&gt;Microsoft Learn&lt;/a&gt;)&lt;/p&gt;&lt;hr /&gt;&lt;h1&gt;18. Agent identity&lt;/h1&gt;&lt;p&gt;A modern Azure architecture should treat an agent as an identity-bearing enterprise entity.&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Human
 │
 ▼
Entra Identity
 │
 ▼
Agent
 │
 ▼
Agent Identity
 │
 ├── permissions
 ├── owner
 ├── environment
 ├── risk classification
 └── allowed tools&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Then:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Risk Agent
   │
   ├── READ exposure
   ├── READ policies
   ├── READ trades
   └── REQUEST approval

NOT:

   ├── DELETE trades
   ├── change credit limit
   └── transfer money&lt;/code&gt;&lt;/pre&gt;&lt;hr /&gt;&lt;h1&gt;19. Defender&lt;/h1&gt;&lt;p&gt;Add Microsoft Defender around runtime security.&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Agent
 │
 ▼
Defender
 │
 ├── threat detection
 ├── malicious behavior
 ├── suspicious activity
 └── runtime protection&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Microsoft's current Agent 365 security model integrates Defender capabilities for continuous threat detection and runtime protection. (&lt;a href="https://learn.microsoft.com/en-us/microsoft-agent-365/overview?utm_source=chatgpt.com" title="Microsoft Agent 365 overview | Microsoft Learn"&gt;Microsoft Learn&lt;/a&gt;)&lt;/p&gt;&lt;hr /&gt;&lt;h1&gt;20. Purview&lt;/h1&gt;&lt;p&gt;Purview answers a different question:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;"What data is this, who is allowed to access it, and what compliance rules apply?"&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Architecture:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;                  Microsoft Purview
                         │
        ┌────────────────┼────────────────┐
        ▼                ▼                ▼
   Classification     Lineage         Compliance
        │                │                │
        ▼                ▼                ▼
  Confidential       Data flow       Policies
  PII                dependencies
  Financial&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;For a financial-services GenAI platform:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Agent
 ↓
Data request
 ↓
Purview classification/governance
 ↓
Authorized data&lt;/code&gt;&lt;/pre&gt;&lt;hr /&gt;&lt;h1&gt;21. Model safety&lt;/h1&gt;&lt;p&gt;Use the current Microsoft AI safety stack rather than relying on one control.&lt;/p&gt;&lt;p&gt;Conceptually:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;USER
 │
 ▼
APIM
 │
 ▼
Input safety
 │
 ▼
Foundry Agent
 │
 ▼
Model
 │
 ▼
Output safety
 │
 ▼
APIM
 │
 ▼
USER&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;For interview purposes, distinguish:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Application security
        ↓
WAF / Firewall / Entra

Data security
        ↓
Purview / RBAC / Private Endpoint

AI safety
        ↓
Content safety / model safety controls

Agent security
        ↓
Agent 365 / Defender

LLM grounding
        ↓
Azure AI Search / RAG / citations&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Don't claim that any single component "prevents hallucinations."&lt;/p&gt;&lt;hr /&gt;&lt;h1&gt;22. Data architecture&lt;/h1&gt;&lt;p&gt;Now incorporate your Microsoft data stack.&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;                         DATA PLATFORM
                              │
          ┌───────────────────┼────────────────────┐
          │                   │                    │
          ▼                   ▼                    ▼
     Microsoft Fabric     Databricks          Operational DBs
          │                   │                    │
          ▼                   ▼                    ▼
       OneLake            Lakehouse          PostgreSQL
          │                   │                    │
          └───────────────────┼────────────────────┘
                              ▼
                       Agent / Analytics&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;I would use Fabric for:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Enterprise analytics
OneLake
Power BI
Data integration
Governed analytics&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Databricks for:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Advanced data engineering
Spark
ML workloads
Existing Databricks estate&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;PostgreSQL for:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Transactional application data
Agent metadata
Business services&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Cosmos DB for:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Agent state
Conversation history
High-scale JSON/session data&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Redis for:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Semantic cache
Session cache
Hot data
Rate-related state&lt;/code&gt;&lt;/pre&gt;&lt;hr /&gt;&lt;h1&gt;23. Microsoft Fabric&lt;/h1&gt;&lt;p&gt;For your financial architecture:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;                  Microsoft Fabric
                        │
        ┌───────────────┼─────────────────┐
        ▼               ▼                 ▼
     OneLake         Data Factory       Power BI
        │               │                 │
        ▼               ▼                 ▼
 Historical         Pipelines          Executive
 financial data                       dashboard&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Then:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Agent
 │
 ├── RAG → AI Search
 │
 └── Analytics → Fabric&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This is a powerful separation.&lt;/p&gt;&lt;hr /&gt;&lt;h1&gt;24. Agent tools&lt;/h1&gt;&lt;p&gt;Define deterministic tools.&lt;/p&gt;&lt;pre&gt;&lt;code class="language-python"&gt;async def get_counterparty_exposure(
    counterparty_id: str
):
    ...


async def get_counterparty_limit(
    counterparty_id: str
):
    ...


async def get_recent_trades(
    counterparty_id: str,
    hours: int
):
    ...


async def search_risk_policy(
    question: str
):
    ...


async def create_risk_case(
    counterparty_id: str,
    reason: str
):
    ...&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The agent gets capabilities, not unrestricted access.&lt;/p&gt;&lt;hr /&gt;&lt;h1&gt;25. Azure Functions&lt;/h1&gt;&lt;p&gt;Functions are ideal for short deterministic operations.&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Agent
 │
 ▼
Azure Function
 │
 ├── Validate
 ├── Calculate
 ├── Transform
 ├── Call API
 └── Return result&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Example:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-python"&gt;def calculate_breach(exposure, limit):

    breach = max(exposure - limit, 0)

    return {
        "exposure": exposure,
        "limit": limit,
        "breach": breach,
        "is_breach": breach &amp;gt; 0
    }&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This is better than asking the LLM to perform every business calculation.&lt;/p&gt;&lt;hr /&gt;&lt;h1&gt;26. Logic Apps&lt;/h1&gt;&lt;p&gt;Use Logic Apps for enterprise workflow integration.&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Agent
 │
 ▼
Logic Apps
 │
 ├── Send email
 ├── Teams notification
 ├── Create approval
 ├── Update CRM
 ├── Create ServiceNow case
 └── Trigger workflow&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Example:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Agent detects breach
        │
        ▼
Logic Apps
        │
        ▼
Risk Manager
        │
        ▼
Microsoft Teams
        │
        ▼
Approval&lt;/code&gt;&lt;/pre&gt;&lt;hr /&gt;&lt;h1&gt;27. Microsoft 365 integration&lt;/h1&gt;&lt;p&gt;This is where Azure becomes especially attractive for Microsoft-heavy enterprises.&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;                    Agent
                      │
          ┌───────────┼────────────┐
          ▼           ▼            ▼
       Outlook      Teams      SharePoint
          │           │            │
          ▼           ▼            ▼
       Email       Approval      Documents&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The agent could:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Find policy
      ↓
Investigate breach
      ↓
Create Teams approval
      ↓
Send Outlook notification
      ↓
Update SharePoint case&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;But permissions must remain delegated and governed rather than allowing the agent unrestricted Microsoft 365 access.&lt;/p&gt;&lt;hr /&gt;&lt;h1&gt;28. Complete agent workflow&lt;/h1&gt;&lt;p&gt;User:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;“Investigate ABC's exposure breach.”&lt;/p&gt;&lt;/blockquote&gt;&lt;pre&gt;&lt;code class="language-text"&gt;USER
 │
 ▼
Application Gateway
 │
 ▼
WAF
 │
 ▼
App Service / Container Apps
 │
 ▼
API Management
 │
 ▼
Entra authentication
 │
 ▼
Foundry Agent Service
 │
 ├── get_exposure()
 │       │
 │       ▼
 │    PostgreSQL/API
 │
 ├── get_limit()
 │       │
 │       ▼
 │    PostgreSQL
 │
 ├── get_recent_trades()
 │       │
 │       ▼
 │    Databricks/Fabric/API
 │
 ├── search_policy()
 │       │
 │       ▼
 │    Azure AI Search
 │
 └── calculate_breach()
         │
         ▼
      Azure Function
 │
 ▼
Agent reasoning
 │
 ▼
Recommendation
 │
 ▼
Human approval
 │
 ▼
Logic Apps
 │
 ▼
Teams / Outlook / workflow&lt;/code&gt;&lt;/pre&gt;&lt;hr /&gt;&lt;h1&gt;29. Example result&lt;/h1&gt;&lt;p&gt;The tools return:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Counterparty: ABC

Exposure:
$125M

Approved limit:
$100M

Breach:
$25M

Primary driver:
Trade XYZ

Policy:
Counterparty Policy §4.3&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The agent produces:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;ABC currently exceeds its approved counterparty
limit by $25M.

The breach is primarily attributable to Trade XYZ.

The applicable policy requires escalation to
Risk Control.

Recommendation:

1. Escalate the breach.
2. Review Trade XYZ.
3. Obtain Risk Control approval before changing
   the exposure limit.&lt;/code&gt;&lt;/pre&gt;&lt;hr /&gt;&lt;h1&gt;30. Human-in-the-loop&lt;/h1&gt;&lt;p&gt;Never allow:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Agent
 ↓
Change credit limit&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Instead:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Agent
 ↓
Recommendation
 ↓
Logic Apps
 ↓
Approval
 ↓
Risk Manager
 ┌───────────────┐
 │               │
 ▼               ▼
APPROVE        REJECT
 │               │
 ▼               ▼
Execute        Stop&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;For regulated financial workloads, this is one of the strongest architecture decisions you can explain in an interview.&lt;/p&gt;&lt;hr /&gt;&lt;h1&gt;31. MCP&lt;/h1&gt;&lt;p&gt;For a modern Azure architecture, add MCP.&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;                         Agent
                           │
                           ▼
                       MCP Client
                           │
          ┌────────────────┼────────────────┐
          ▼                ▼                ▼
      Risk MCP         Trade MCP        Policy MCP
          │                │                │
          ▼                ▼                ▼
      Risk API          Trade API       AI Search&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Azure API Management can expose and govern MCP servers, and its AI gateway capabilities also include MCP-related governance. (&lt;a href="https://learn.microsoft.com/en-us/azure/api-management/genai-gateway-capabilities?utm_source=chatgpt.com" title="AI gateway capabilities in Azure API Management | Microsoft Learn"&gt;Microsoft Learn&lt;/a&gt;)&lt;/p&gt;&lt;p&gt;This is particularly useful when you have:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Many agents
+
Many tools
+
Many teams&lt;/code&gt;&lt;/pre&gt;&lt;hr /&gt;&lt;h1&gt;32. Multi-agent architecture&lt;/h1&gt;&lt;p&gt;For a more sophisticated financial platform:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;                    Supervisor Agent
                           │
          ┌────────────────┼────────────────┐
          ▼                ▼                ▼
     Risk Agent       Compliance Agent    Trade Agent
          │                │                │
          ▼                ▼                ▼
      Risk APIs          Policies         Trade APIs
          │                │                │
          └────────────────┼────────────────┘
                           ▼
                    Decision Agent
                           │
                           ▼
                    Human Approval&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;But don't use multi-agent just because you can.&lt;/p&gt;&lt;p&gt;A strong interview statement:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;“I start with a single agent and deterministic tools. I introduce specialized agents only when responsibility boundaries, security isolation, independent evaluation or organizational ownership justify the additional orchestration complexity.”&lt;/p&gt;&lt;/blockquote&gt;&lt;hr /&gt;&lt;h1&gt;33. Agent 365 across the architecture&lt;/h1&gt;&lt;p&gt;This is important.&lt;/p&gt;&lt;p&gt;Agent 365 should not be thought of as another model or agent framework.&lt;/p&gt;&lt;p&gt;Think:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;                 AGENT 365
              ENTERPRISE CONTROL
                   PLANE
                      │
        ┌─────────────┼──────────────┐
        ▼             ▼              ▼
      FOUNDry       Copilot       3rd Party
       Agents        Agents         Agents
        │             │              │
        └─────────────┼──────────────┘
                      ▼
             Common governance&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Microsoft says Agent 365 can also surface agents built on third-party platforms such as Google Vertex AI and Amazon Bedrock in the Microsoft 365 admin center. (&lt;a href="https://learn.microsoft.com/en-us/microsoft-agent-365/third-party-agents?utm_source=chatgpt.com" title="Ecosystem partner agents available in Agent 365 | Microsoft Learn"&gt;Microsoft Learn&lt;/a&gt;)&lt;/p&gt;&lt;p&gt;That is a very important enterprise capability.&lt;/p&gt;&lt;p&gt;It means your enterprise architecture can be:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Azure Agent
      +
AWS Agent
      +
GCP Agent
      +
Microsoft 365 Agent
      ↓
Agent 365 governance&lt;/code&gt;&lt;/pre&gt;&lt;hr /&gt;&lt;h1&gt;34. Evaluation&lt;/h1&gt;&lt;p&gt;Your original list:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;F1
BLEU
GLEU
METEOR
ROUGE&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;is useful, but I would modernize the evaluation framework.&lt;/p&gt;&lt;p&gt;For an enterprise RAG/agent platform:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;                 EVALUATION
                     │
       ┌─────────────┼─────────────┐
       ▼             ▼             ▼
   Retrieval       Answer        Agent
       │             │             │
       ▼             ▼             ▼
 Precision        Correctness   Tool selection
 Recall           Grounding     Tool arguments
 MRR              Relevance     Trajectory
 NDCG             Citation      Safety&lt;/code&gt;&lt;/pre&gt;&lt;hr /&gt;&lt;h1&gt;35. Traditional NLP metrics&lt;/h1&gt;&lt;p&gt;Use:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;BLEU
ROUGE
METEOR
GLEU&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;when appropriate for text-overlap-oriented tasks.&lt;/p&gt;&lt;p&gt;But for modern GenAI:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;BLEU
ROUGE&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;alone are insufficient.&lt;/p&gt;&lt;p&gt;For RAG:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Context precision
Context recall
Faithfulness
Groundedness
Answer relevance
Citation correctness&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;For agents:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Tool selection accuracy
Tool argument accuracy
Trajectory correctness
Task completion
Policy compliance
Safety
Latency
Cost&lt;/code&gt;&lt;/pre&gt;&lt;hr /&gt;&lt;h1&gt;36. Evaluation pipeline&lt;/h1&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Historical questions
        │
        ▼
Evaluation Dataset
        │
        ▼
Agent
        │
        ▼
┌─────────────────────────┐
│ Evaluation              │
│                         │
│ Retrieval               │
│ Grounding               │
│ Answer                  │
│ Tool usage              │
│ Safety                  │
│ Cost                    │
│ Latency                 │
└────────────┬────────────┘
             │
             ▼
        Scorecard
             │
       ┌─────┴─────┐
       ▼           ▼
    PASS          FAIL
       │           │
       ▼           ▼
 Production      Improve&lt;/code&gt;&lt;/pre&gt;&lt;hr /&gt;&lt;h1&gt;37. Observability&lt;/h1&gt;&lt;p&gt;Use Azure Monitor ecosystem:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Application
    │
    ├── Azure Monitor
    ├── Application Insights
    ├── Log Analytics
    └── Distributed tracing
             │
             ▼
        Observability&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Capture:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Request ID
Tenant ID
Agent ID
Model
Prompt tokens
Completion tokens
Latency
Tool calls
RAG retrieval
Search scores
Errors
Retries
Guardrail events
Cost&lt;/code&gt;&lt;/pre&gt;&lt;hr /&gt;&lt;h1&gt;38. Agent trajectory&lt;/h1&gt;&lt;p&gt;Don't log only:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Request → Response&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Log:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Request
 │
 ▼
Agent
 │
 ├── RAG
 │    └── AI Search
 │
 ├── Tool
 │    └── Exposure API
 │
 ├── Tool
 │    └── Trade API
 │
 ├── Function
 │
 └── Model
      │
      ▼
   Response&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This lets you diagnose:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Why was the answer wrong?

Why was the agent slow?

Why did it call the wrong tool?

Why did it retrieve the wrong document?

Why did cost increase?&lt;/code&gt;&lt;/pre&gt;&lt;hr /&gt;&lt;h1&gt;39. Scaling&lt;/h1&gt;&lt;p&gt;This directly addresses your earlier architecture concern.&lt;/p&gt;&lt;p&gt;Don't autoscale GenAI applications only using CPU.&lt;/p&gt;&lt;p&gt;Monitor:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;CPU
Memory
Request rate
Concurrent requests
Queue depth
LLM latency
RAG latency
Token rate
Search latency
Tool latency
Cache hit rate&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Architecture:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;                 Traffic
                    │
                    ▼
              App Gateway
                    │
                    ▼
               Container
                 Apps
                    │
             ┌──────┴───────┐
             ▼              ▼
          Instance 1      Instance 2
             │              │
             └──────┬───────┘
                    ▼
                APIM
                    │
                    ▼
                  Model&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;For self-hosted models on AKS:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;GPU utilization
GPU memory
batch size
tokens/sec
queue depth
KV cache
concurrency&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;must also be monitored.&lt;/p&gt;&lt;hr /&gt;&lt;h1&gt;40. Failure handling&lt;/h1&gt;&lt;p&gt;Production AI must assume failures.&lt;/p&gt;&lt;h3&gt;AI model failure&lt;/h3&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Primary model
     │
     X
     │
     ▼
Fallback model
     │
     X
     │
     ▼
Graceful degradation&lt;/code&gt;&lt;/pre&gt;&lt;h3&gt;AI Search failure&lt;/h3&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Agent
 │
 ▼
AI Search
 │
 X
 │
 ▼
Retry
 │
 ▼
Circuit breaker
 │
 ▼
"Knowledge retrieval unavailable"&lt;/code&gt;&lt;/pre&gt;&lt;h3&gt;Enterprise API failure&lt;/h3&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Agent
 │
 ▼
Risk API
 │
 X
 │
 ▼
Retry
 │
 ▼
Timeout
 │
 ▼
No recommendation&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Never hallucinate missing financial data.&lt;/p&gt;&lt;hr /&gt;&lt;h1&gt;41. Private networking&lt;/h1&gt;&lt;p&gt;Your proposed architecture is correct in principle, but I would draw it more explicitly:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;                       INTERNET
                           │
                           ▼
                  Application Gateway
                           │
                          WAF
                           │
                           ▼
                     Azure VNet
                           │
               ┌───────────┴────────────┐
               │                        │
               ▼                        ▼
        App Service /              Container Apps
        private access
               │                        │
               └───────────┬────────────┘
                           │
                    API Management
                           │
                    Private Endpoint
                           │
          ┌────────────────┼─────────────────┐
          ▼                ▼                 ▼
      AI Search         Cosmos DB         PostgreSQL
          │                │                 │
          └────────────────┼─────────────────┘
                           ▼
                     Azure Services&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;And outbound traffic:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Private workloads
       │
       ▼
Azure Firewall
       │
       ├── ALLOW approved destination
       │
       └── BLOCK everything else&lt;/code&gt;&lt;/pre&gt;&lt;hr /&gt;&lt;h1&gt;42. Complete security architecture&lt;/h1&gt;&lt;pre&gt;&lt;code class="language-text"&gt;                         USER
                           │
                           ▼
                 Application Gateway
                           │
                         WAF
                           │
                           ▼
                     Azure VNet
                           │
                    Azure Firewall
                           │
                           ▼
              App Service / Container Apps
                           │
                           ▼
                 API Management
                           │
                     Entra ID
                           │
                           ▼
                 Foundry Agent Service
                           │
          ┌────────────────┼─────────────────┐
          ▼                ▼                 ▼
       AI Search        Cosmos DB        Enterprise APIs
          │                │                 │
          └────────────────┼─────────────────┘
                           │
                   Private Endpoints
                           │
                  ┌────────┴────────┐
                  ▼                 ▼
               Purview           Defender
                  │                 │
                  └────────┬────────┘
                           ▼
                       Agent 365&lt;/code&gt;&lt;/pre&gt;&lt;hr /&gt;&lt;h1&gt;43. Complete production architecture&lt;/h1&gt;&lt;p&gt;This is the diagram I would memorize.&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;                              USERS
                                │
                                ▼
                   ┌────────────────────────┐
                   │ Azure Front Door       │
                   │ / Application Gateway  │
                   └───────────┬────────────┘
                               │
                              WAF
                               │
                               ▼
                    ┌───────────────────────┐
                    │ Azure VNet            │
                    │                       │
                    │ App Service           │
                    │ Container Apps        │
                    │ AKS                   │
                    └───────────┬───────────┘
                                │
                                ▼
                 ┌──────────────────────────┐
                 │ Azure API Management     │
                 │ AI Gateway               │
                 │                          │
                 │ Auth                     │
                 │ Token quotas             │
                 │ Rate limits              │
                 │ Model routing            │
                 │ Semantic cache           │
                 │ MCP governance           │
                 │ Cost tracking            │
                 └────────────┬─────────────┘
                              │
                 ┌────────────┼────────────────┐
                 │            │                │
                 ▼            ▼                ▼
           Microsoft       Azure AI         Tool Layer
           Foundry         Search               │
                 │            │                  │
       ┌─────────┼──────┐     │          ┌──────┼──────┐
       │         │      │     │          ▼      ▼      ▼
     Models    Agent  Eval   RAG       Functions Logic APIs
       │       Service       │         Apps
       │         │           │
       ▼         ▼           ▼
    Foundry    Agent      Vector/
    Models     Runtime    Hybrid Search
       │         │           │
       └─────────┼───────────┘
                 │
                 ▼
          Enterprise Data
                 │
      ┌──────────┼─────────────┐
      ▼          ▼             ▼
   Cosmos DB  PostgreSQL    Fabric/Databricks
      │                         │
      └──────────┬──────────────┘
                 ▼
          Business Systems
                 │
                 ▼
          Human Approval
                 │
                 ▼
              USER


     ┌───────────────────────────────────────────┐
     │          ENTERPRISE CONTROL PLANE         │
     │                                           │
     │ Entra ID                                  │
     │ Agent 365                                 │
     │ Defender                                  │
     │ Purview                                   │
     │ Azure Monitor                             │
     │ Application Insights                      │
     │ Azure Firewall                            │
     │ Private Endpoints                         │
     └───────────────────────────────────────────┘&lt;/code&gt;&lt;/pre&gt;&lt;hr /&gt;&lt;h1&gt;44. Azure mental model&lt;/h1&gt;&lt;p&gt;For your interview, remember:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;AWS                    GCP                    AZURE

CloudFront             Cloud LB              Front Door
WAF                     Cloud Armor           WAF
ALB                     Cloud LB              App Gateway
ECS/EKS                 Cloud Run/GKE         App Service/
                                             Container Apps/AKS

Bedrock                 Gemini Platform       Microsoft Foundry

Bedrock KB              Vertex/GCP RAG        Azure AI Search
OpenSearch              BigQuery Vector       AI Search
Aurora                  Cloud SQL             PostgreSQL

IAM                     IAM                   Entra ID

KMS                     Cloud KMS             Key Vault

PrivateLink             PSC                   Private Endpoint

CloudWatch              Monitoring            Azure Monitor

X-Ray                   Trace                 App Insights

S3                      Cloud Storage         Blob Storage

SQS/SNS                 Pub/Sub               Service Bus/Event Grid

Redis                   Memorystore           Azure Managed Redis

SageMaker               Vertex AI             Foundry/ML

API Gateway             API Gateway            APIM

Guardrails              Model Armor          AI safety controls

Agent governance        Agent Platform       Agent 365&lt;/code&gt;&lt;/pre&gt;&lt;hr /&gt;&lt;h1&gt;Azure enterprise ready&lt;/h1&gt;&lt;p&gt;Enterprise AI&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;      │
      ├── Identity
      │     └── Entra
      │
      ├── AI Gateway
      │     └── APIM
      │
      ├── AI Platform
      │     └── Foundry
      │
      ├── Knowledge
      │     └── AI Search / Foundry IQ
      │
      ├── Data
      │     └── Fabric / Databricks / Cosmos /
      │         PostgreSQL
      │
      ├── Agent Governance
      │     └── Agent 365
      │
      ├── Security
      │     └── Defender / WAF / Firewall
      │
      ├── Data Governance
      │     └── Purview
      │
      ├── Networking
      │     └── Private Endpoints
      │
      └── Observability
            └── Azure Monitor&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;That is the architecture-level answer.&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgt9E-0Q43x4RI0heeUSKkAXBVIVsuVEdG39WuKlobPxsDVHal11YdWOAHKpvi8YVI_7O2aB8g259vti7ZrUp9LRXH1f7Hp9GuFxOtNqiG1CoZGxbmfrsp2s0548tlsOE58WUszVFg7FXmfyexu0lb87deucQJp3YRWfuPQJ4bkEBAE5jMxFtqguhlwr36y/s1536/Azure_architecture_ecommerce.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="1024" data-original-width="1536" height="213" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgt9E-0Q43x4RI0heeUSKkAXBVIVsuVEdG39WuKlobPxsDVHal11YdWOAHKpvi8YVI_7O2aB8g259vti7ZrUp9LRXH1f7Hp9GuFxOtNqiG1CoZGxbmfrsp2s0548tlsOE58WUszVFg7FXmfyexu0lb87deucQJp3YRWfuPQJ4bkEBAE5jMxFtqguhlwr36y/s320/Azure_architecture_ecommerce.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;Open Source Open Mind&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZWZCRaUk5-8tUk2ueXpjLTB4SADOm3AdmnB7t3Z-sOVoKWAc1VV9_vJQIIulOVjm7p3JRL0wQerFNEO8azK06b5lHY9dxEmLX4x35AYduV2SIexjCQ8nXcRi6OLALSO3pIcgDSIsgYhyphenhyphenRYWg2I6Lp9aiShhL0uiyKBLBgSIH9pVLQA7SVnT5D4Qwmi61-/s72-w572-h381-c/Azure_architecture_ecommerce.png" width="72"/><author>dhiraj.patra@gmail.com (dhiraj patra)</author></item><item><title>GCP - Financial Services Application with RAG and AgenticAI</title><link>http://dhirajpatra.blogspot.com/2026/08/gcp-financial-services-application-with.html</link><category>agent</category><category>agenticai</category><category>artificial intelligence</category><category>gcp</category><category>generativeai</category><category>rag</category><pubDate>Wed, 19 Aug 2026 08:19:58 -0700</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8993867651193907565.post-1342071459867994489</guid><description>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUerB97VCVj81CI47QZVunGJBSH8NJ1JpPCHK-lUJhmvcOUre9xz3vPC1F8826XdB9N69-pTrv5L6Lj69EthstZMJm93xEjC2M_4zfvABP7xfn1Lke61THA1svzh9VChyphenhyphen_EQAXl-fk-52aoB3IIQ4oy-bIirpD3OgG0hHGeMH3HzLeObxWPnEiHHLGvaiz/s1024/GCP_architecture_ecommerce.jpeg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="576" data-original-width="1024" height="357" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUerB97VCVj81CI47QZVunGJBSH8NJ1JpPCHK-lUJhmvcOUre9xz3vPC1F8826XdB9N69-pTrv5L6Lj69EthstZMJm93xEjC2M_4zfvABP7xfn1Lke61THA1svzh9VChyphenhyphen_EQAXl-fk-52aoB3IIQ4oy-bIirpD3OgG0hHGeMH3HzLeObxWPnEiHHLGvaiz/w635-h357/GCP_architecture_ecommerce.jpeg" width="635" /&gt;&lt;/a&gt;&lt;/div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; generated by gemini&lt;p&gt;I would build the GCP version around the same financial-services use case as the AWS architecture, but use the current 2026 Google Cloud stack: Gemini Enterprise Agent Platform, ADK, Agent Runtime, Model Garden, Model Armor, GKE, BigQuery Vector Search, Cloud Storage, VPC Service Controls, IAM, Cloud KMS, Cloud Logging/Monitoring, and MCP/A2A where appropriate.&lt;/p&gt;&lt;p&gt;Google's current Agent Platform has evolved from the older Vertex AI-centric terminology and now provides model access, agent development, evaluation, deployment, orchestration and governance. ADK can run agents on Agent Runtime, Cloud Run or GKE. (&lt;a href="https://cloud.google.com/blog/products/ai-machine-learning/introducing-gemini-enterprise-agent-platform?utm_source=chatgpt.com" title="Introducing Gemini Enterprise Agent Platform | Google Cloud Blog"&gt;Google Cloud&lt;/a&gt;)&lt;/p&gt;&lt;h1&gt;GCP Enterprise GenAI + Agentic AI Architecture&lt;/h1&gt;&lt;h2&gt;1. The business problem&lt;/h2&gt;&lt;p&gt;Let's use the same banking scenario:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;"Investigate why counterparty ABC breached its exposure limit yesterday and tell me what action should be taken."&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;The system needs to combine:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Unstructured knowledge
        │
        ├── Risk policies
        ├── Regulatory documents
        ├── Credit policies
        └── Internal procedures

Structured data
        │
        ├── Counterparty exposure
        ├── Credit limits
        ├── Trades
        ├── P&amp;amp;L
        └── Risk metrics

Enterprise tools
        │
        ├── Risk APIs
        ├── Trade APIs
        ├── SQL
        └── Workflow systems&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This is therefore not merely a chatbot.&lt;/p&gt;&lt;p&gt;It is:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;RAG + Agent + Enterprise Data + Enterprise Tools&lt;/code&gt;&lt;/pre&gt;&lt;hr /&gt;&lt;h1&gt;2. Complete GCP architecture&lt;/h1&gt;&lt;pre&gt;&lt;code class="language-text"&gt;                              USERS
                                │
                                ▼
                    ┌─────────────────────┐
                    │ Cloud Load Balancer  │
                    └──────────┬──────────┘
                               │
                         Cloud Armor
                       WAF + DDoS Defense
                               │
                               ▼
                    ┌─────────────────────┐
                    │ API / Ingress Layer │
                    └──────────┬──────────┘
                               │
                        PRIVATE NETWORK
                               │
              ┌────────────────┴────────────────┐
              │                                 │
              ▼                                 ▼
       ┌───────────────┐                 ┌───────────────┐
       │ GKE           │                 │ Cloud Run     │
       │               │                 │               │
       │ APIs          │                 │ Lightweight   │
       │ UI            │                 │ services      │
       │ AI Gateway    │                 │ Agent APIs    │
       └───────┬───────┘                 └───────┬───────┘
               │                                 │
               └────────────────┬────────────────┘
                                ▼
                ┌───────────────────────────────┐
                │ Gemini Enterprise            │
                │ Agent Platform               │
                │                               │
                │ Agent Runtime                 │
                │ ADK                           │
                │ Agent Studio                  │
                │ Model Garden                  │
                └───────────────┬───────────────┘
                                │
             ┌──────────────────┼───────────────────┐
             │                  │                   │
             ▼                  ▼                   ▼
        Model Armor          RAG Layer           Tool Layer
             │                  │                   │
             ▼                  ▼                   ▼
          Gemini          BigQuery Vector       Enterprise APIs
          Claude          Search                MCP
          Gemma           Cloud Storage          SQL
             │                  │                 A2A
             │                  │
             │             ┌────┴─────┐
             │             ▼          ▼
             │         BigQuery   Cloud Storage
             │         tables      documents
             │
             └──────────────────────┐
                                    ▼
                         Cloud Monitoring
                         Cloud Logging
                         Cloud Trace&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This architecture is consistent with Google's current direction: ADK supports agent development, evaluation and deployment, and agents can be deployed to Agent Runtime, Cloud Run or GKE. (&lt;a href="https://docs.cloud.google.com/gemini-enterprise-agent-platform/build/adk?hl=en&amp;amp;utm_source=chatgpt.com" title="Agent Development Kit  |  Gemini Enterprise Agent Platform  |  Google Cloud Documentation"&gt;Google Cloud Documentation&lt;/a&gt;)&lt;/p&gt;&lt;hr /&gt;&lt;h1&gt;3. Perimeter and ingress&lt;/h1&gt;&lt;p&gt;The first layer is:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Internet
   │
   ▼
Cloud Load Balancing
   │
   ▼
Cloud Armor
   │
   ├── WAF
   ├── DDoS protection
   ├── IP rules
   ├── Rate controls
   └── Threat filtering
   │
   ▼
GKE / Cloud Run&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;I would make Cloud Armor the first major security control rather than allowing the application itself to deal with malicious traffic.&lt;/p&gt;&lt;p&gt;Example:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Attacker
   │
   ▼
Cloud Load Balancer
   │
   ▼
Cloud Armor
   │
   ├── BLOCK ──► malicious request
   │
   └── ALLOW
          │
          ▼
       GKE&lt;/code&gt;&lt;/pre&gt;&lt;hr /&gt;&lt;h1&gt;4. Why GKE?&lt;/h1&gt;&lt;p&gt;For this particular architecture, GKE makes sense because we have:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Multiple microservices
+
Agent orchestration
+
High concurrency
+
Custom networking
+
MCP services
+
Tool services
+
Potential GPU workloads
+
Fine-grained scaling&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;A possible GKE cluster:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;GKE CLUSTER
│
├── ingress-service
│
├── frontend-service
│
├── api-service
│
├── ai-gateway
│
├── rag-service
│
├── agent-service
│
├── tool-service
│
├── mcp-server
│
└── background-workers&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;But I would not automatically put everything into GKE.&lt;/p&gt;&lt;p&gt;A senior architect answer is:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;"I use GKE when Kubernetes control, workload diversity, networking or GPU scheduling justifies it. For lightweight stateless APIs or simple agents, Cloud Run can reduce operational overhead."&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Google's own current architecture supports ADK agents on GKE, Cloud Run and Agent Runtime. (&lt;a href="https://docs.cloud.google.com/architecture/single-agent-ai-system-adk-cloud-run?utm_source=chatgpt.com" title="Single-agent AI system using ADK and Cloud Run  |  Cloud Architecture Center  |  Google Cloud Documentation"&gt;Google Cloud Documentation&lt;/a&gt;)&lt;/p&gt;&lt;hr /&gt;&lt;h1&gt;5. AI Gateway&lt;/h1&gt;&lt;p&gt;Don't let every microservice call Gemini directly.&lt;/p&gt;&lt;p&gt;Bad:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Service A ──► Gemini
Service B ──► Gemini
Service C ──► Gemini
Service D ──► Gemini&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Instead:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;                 Applications
                      │
                      ▼
                AI Gateway
                      │
       ┌──────────────┼──────────────┐
       │              │              │
    Security       Routing         Cost
       │              │              │
       ▼              ▼              ▼
    IAM         Model selection   Token tracking
       │              │              │
       └──────────────┼──────────────┘
                      ▼
                Agent Platform
                      │
               ┌──────┼──────┐
               ▼      ▼      ▼
             Gemini Claude  Gemma&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The gateway can implement:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Authentication
Authorization
Tenant isolation
Rate limiting
Model routing
Prompt policies
Cost tracking
Token budgets
Observability
Circuit breakers&lt;/code&gt;&lt;/pre&gt;&lt;hr /&gt;&lt;h1&gt;6. Gemini Enterprise Agent Platform&lt;/h1&gt;&lt;p&gt;The current Google architecture gives you a managed platform for the agent lifecycle.&lt;/p&gt;&lt;p&gt;Conceptually:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;                  Agent Platform
                       │
       ┌───────────────┼────────────────┐
       │               │                │
       ▼               ▼                ▼
  Model Garden     Agent Studio      Agent Runtime
       │               │                │
       ▼               ▼                ▼
   Models          Build agents       Deploy agents&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Model Garden provides access to Google's models and third-party models. Google describes Agent Platform as the evolution of Vertex AI for building, scaling, governing and optimizing agents. (&lt;a href="https://cloud.google.com/blog/products/ai-machine-learning/introducing-gemini-enterprise-agent-platform?utm_source=chatgpt.com" title="Introducing Gemini Enterprise Agent Platform | Google Cloud Blog"&gt;Google Cloud&lt;/a&gt;)&lt;/p&gt;&lt;p&gt;For code-first development, I would use ADK.&lt;/p&gt;&lt;hr /&gt;&lt;h1&gt;7. ADK&lt;/h1&gt;&lt;p&gt;ADK becomes the programming framework for our agent.&lt;/p&gt;&lt;p&gt;Very simplified:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-python"&gt;from google.adk.agents import Agent

root_agent = Agent(
    name="risk_investigation_agent",
    model="gemini-3.5-flash",
    instruction="""
    You are a financial risk investigation agent.

    Investigate counterparty exposure breaches.

    Never execute financial actions without
    human approval.

    Always provide evidence for conclusions.
    """,
    tools=[
        get_counterparty_exposure,
        get_counterparty_limit,
        get_recent_trades,
        search_risk_policy
    ]
)&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The exact model/version should be selected from the currently available models in the target region/project rather than hard-coding an interview answer around a particular model.&lt;/p&gt;&lt;p&gt;ADK currently supports Python, TypeScript, Go and Java and supports multi-agent architectures and tool integrations. (&lt;a href="https://docs.cloud.google.com/gemini-enterprise-agent-platform/build/adk?hl=en&amp;amp;utm_source=chatgpt.com" title="Agent Development Kit  |  Gemini Enterprise Agent Platform  |  Google Cloud Documentation"&gt;Google Cloud Documentation&lt;/a&gt;)&lt;/p&gt;&lt;hr /&gt;&lt;h1&gt;8. Model Garden&lt;/h1&gt;&lt;p&gt;Model Garden is your model abstraction layer.&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;                  Model Garden
                       │
        ┌──────────────┼──────────────┐
        ▼              ▼              ▼
      Gemini        Third-party      Open
                     models         models
        │              │              │
        └──────────────┼──────────────┘
                       ▼
                  Agent Platform&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The architectural benefit is model optionality.&lt;/p&gt;&lt;p&gt;For example:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;High reasoning requirement
       ↓
larger Gemini model

High-volume classification
       ↓
smaller/faster model

Specialized workload
       ↓
third-party model&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Google currently describes Model Garden as providing access to 200+ models. (&lt;a href="https://cloud.google.com/blog/products/ai-machine-learning/introducing-gemini-enterprise-agent-platform?utm_source=chatgpt.com" title="Introducing Gemini Enterprise Agent Platform | Google Cloud Blog"&gt;Google Cloud&lt;/a&gt;)&lt;/p&gt;&lt;hr /&gt;&lt;h1&gt;9. RAG architecture&lt;/h1&gt;&lt;p&gt;Now let's build the RAG component.&lt;/p&gt;&lt;p&gt;Suppose we have:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Cloud Storage
│
├── credit_policy.pdf
├── counterparty_policy.pdf
├── market_risk_policy.pdf
├── Basel_rules.pdf
└── escalation_procedure.pdf&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Pipeline:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;                  Cloud Storage
                       │
                       ▼
                 Document pipeline
                       │
              ┌────────┼────────┐
              ▼        ▼        ▼
           Parse     Chunk    Metadata
              │        │        │
              └────────┼────────┘
                       ▼
                   Embedding
                       │
                       ▼
                 BigQuery Vector
                       │
                       ▼
                  Vector Search&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;BigQuery is particularly attractive here because the same platform can hold structured financial data and support vector search.&lt;/p&gt;&lt;hr /&gt;&lt;h1&gt;10. Why BigQuery is powerful for this architecture&lt;/h1&gt;&lt;p&gt;This is one of the strongest differences from the AWS example.&lt;/p&gt;&lt;p&gt;AWS:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;OpenSearch
       +
Aurora
       +
S3&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;GCP can consolidate more of this:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;                 BigQuery
                    │
        ┌───────────┴───────────┐
        │                       │
   Structured data          Vector data
        │                       │
   exposures                embeddings
   trades                   documents
   limits                   chunks
   P&amp;amp;L                      metadata&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Now the agent can combine:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;SQL analytics
+
Vector retrieval&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;within the same analytical environment.&lt;/p&gt;&lt;hr /&gt;&lt;h1&gt;11. Example BigQuery data model&lt;/h1&gt;&lt;p&gt;Structured table:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;counterparty_exposure
────────────────────────────
counterparty_id
exposure
currency
timestamp
desk
region&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Limits:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;counterparty_limits
────────────────────
counterparty_id
approved_limit
currency
rating
effective_date&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Document chunks:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;risk_policy_chunks
────────────────────────
document_id
chunk_id
content
embedding
tenant_id
classification
policy_type
effective_date&lt;/code&gt;&lt;/pre&gt;&lt;hr /&gt;&lt;h1&gt;12. Vector retrieval&lt;/h1&gt;&lt;p&gt;Conceptually:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-sql"&gt;SELECT
    document_id,
    chunk_id,
    content,
    distance
FROM VECTOR_SEARCH(
    TABLE `risk.risk_policy_chunks`,
    'embedding',
    (
        SELECT embedding
        FROM `risk.query_embedding`
    ),
    top_k =&amp;gt; 5
)
ORDER BY distance;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;In production you would also apply authorization and business metadata filters.&lt;/p&gt;&lt;p&gt;For example:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;tenant_id
region
classification
business_unit
effective_date&lt;/code&gt;&lt;/pre&gt;&lt;hr /&gt;&lt;h1&gt;13. Authorization-aware RAG&lt;/h1&gt;&lt;p&gt;This is critical.&lt;/p&gt;&lt;p&gt;Never:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;User
 ↓
Vector Search
 ↓
All documents&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Instead:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;User
 │
 ▼
IAM
 │
 ▼
Identity context
 │
 ├── tenant
 ├── role
 ├── region
 └── classification
        │
        ▼
   Vector Search
        │
        ▼
Authorized documents only&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;For example:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-python"&gt;filters = {
    "tenant_id": user.tenant_id,
    "region": user.region,
    "classification": {
        "$in": user.allowed_classifications
    }
}&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The exact filtering implementation depends on the chosen BigQuery/vector architecture, but the security principle is essential:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;Retrieval authorization must happen before information reaches the LLM.&lt;/p&gt;&lt;/blockquote&gt;&lt;hr /&gt;&lt;h1&gt;14. RAG request flow&lt;/h1&gt;&lt;p&gt;User:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;"What happens when a counterparty falls below investment grade?"&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Flow:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;USER
 │
 ▼
Cloud Armor
 │
 ▼
GKE API
 │
 ▼
AI Gateway
 │
 ▼
Model Armor
 │
 ▼
Query embedding
 │
 ▼
BigQuery Vector Search
 │
 ▼
Top-K authorized chunks
 │
 ▼
Prompt construction
 │
 ▼
Gemini
 │
 ▼
Model Armor
 │
 ▼
Answer + citations&lt;/code&gt;&lt;/pre&gt;&lt;hr /&gt;&lt;h1&gt;15. Model Armor&lt;/h1&gt;&lt;p&gt;Model Armor belongs around the model interaction rather than being treated as a replacement for application security.&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;              USER
                │
                ▼
          Model Armor
          INPUT CHECK
                │
                ▼
          Agent / RAG
                │
                ▼
             Gemini
                │
                ▼
          Model Armor
         OUTPUT CHECK
                │
                ▼
             USER&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;It can be used to address AI-specific threats such as prompt injection and sensitive information leakage. Google has also documented Model Armor protecting AI inference running on GKE. (&lt;a href="https://cloud.google.com/blog/products/identity-security/securing-ai-inference-on-gke-with-model-armor?utm_source=chatgpt.com" title="Securing AI inference on GKE with Model Armor | Google Cloud Blog"&gt;Google Cloud&lt;/a&gt;)&lt;/p&gt;&lt;p&gt;But don't claim:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;"Model Armor guarantees no hallucinations."&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Instead:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Hallucination control
=
RAG grounding
+
tool constraints
+
structured outputs
+
evaluation
+
citations
+
business validation
+
Model Armor&lt;/code&gt;&lt;/pre&gt;&lt;hr /&gt;&lt;h1&gt;16. Agentic AI architecture&lt;/h1&gt;&lt;p&gt;Now we extend RAG.&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;                         USER
                           │
                           ▼
                    Risk Agent
                           │
                   ┌───────┴────────┐
                   │   Planner      │
                   └───────┬────────┘
                           │
       ┌───────────────────┼────────────────────┐
       │                   │                    │
       ▼                   ▼                    ▼
   RAG Agent          Exposure Tool         Trade Tool
       │                   │                    │
       ▼                   ▼                    ▼
 BigQuery Vector       BigQuery/API       Trade System
       │                   │                    │
       └───────────────────┼────────────────────┘
                           ▼
                    Reasoning Agent
                           │
                           ▼
                    Risk Assessment
                           │
                           ▼
                    Human Approval&lt;/code&gt;&lt;/pre&gt;&lt;hr /&gt;&lt;h1&gt;17. The agent's tools&lt;/h1&gt;&lt;p&gt;We define deterministic tools.&lt;/p&gt;&lt;pre&gt;&lt;code class="language-python"&gt;async def get_exposure(counterparty_id: str):
    ...


async def get_limit(counterparty_id: str):
    ...


async def get_recent_trades(
    counterparty_id: str,
    hours: int
):
    ...


async def search_risk_policy(
    question: str
):
    ...


async def calculate_breach(
    exposure: float,
    limit: float
):
    ...&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The LLM doesn't get unrestricted database access.&lt;/p&gt;&lt;p&gt;It gets controlled capabilities.&lt;/p&gt;&lt;hr /&gt;&lt;h1&gt;18. Example investigation&lt;/h1&gt;&lt;p&gt;User:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;"Investigate ABC's exposure breach."&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Agent workflow:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;                User
                  │
                  ▼
             Risk Agent
                  │
                  ▼
        get_exposure("ABC")
                  │
                  ▼
             $125M
                  │
                  ▼
         get_limit("ABC")
                  │
                  ▼
             $100M
                  │
                  ▼
        calculate_breach()
                  │
                  ▼
              $25M breach
                  │
                  ▼
       get_recent_trades("ABC")
                  │
                  ▼
         Trade information
                  │
                  ▼
       search_risk_policy()
                  │
                  ▼
          Policy evidence
                  │
                  ▼
           Risk conclusion&lt;/code&gt;&lt;/pre&gt;&lt;hr /&gt;&lt;h1&gt;19. BigQuery becomes extremely powerful here&lt;/h1&gt;&lt;p&gt;Imagine:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-sql"&gt;SELECT
    counterparty_id,
    SUM(exposure) AS exposure
FROM
    `risk.trades`
WHERE
    counterparty_id = 'ABC'
    AND trade_date &amp;gt;= CURRENT_DATE() - 1
GROUP BY
    counterparty_id;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Agent gets:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;ABC
Exposure = $125M&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Then:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-sql"&gt;SELECT
    approved_limit
FROM
    `risk.counterparty_limits`
WHERE
    counterparty_id = 'ABC'
ORDER BY effective_date DESC
LIMIT 1;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Returns:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Limit = $100M&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Then the agent can combine this with RAG:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Structured evidence
        +
Policy evidence
        +
Trade evidence
        ↓
Agent reasoning&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This is what makes the architecture genuinely useful for financial engineering.&lt;/p&gt;&lt;hr /&gt;&lt;h1&gt;20. RAG + SQL + Tools&lt;/h1&gt;&lt;p&gt;Think of the agent as having three knowledge mechanisms:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;                         AGENT
                           │
        ┌──────────────────┼──────────────────┐
        │                  │                  │
        ▼                  ▼                  ▼
       RAG                 SQL               API
        │                  │                  │
        ▼                  ▼                  ▼
Documents            Financial data     Enterprise systems&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;RAG answers:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;"What does the policy say?"&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;SQL answers:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;"What actually happened?"&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;API/tool answers:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;"What does the enterprise system currently report?"&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Agent combines all three.&lt;/p&gt;&lt;hr /&gt;&lt;h1&gt;21. MCP&lt;/h1&gt;&lt;p&gt;For a modern GCP architecture, I would also introduce MCP.&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;                    Agent
                      │
                      ▼
                  MCP Client
                      │
          ┌───────────┼────────────┐
          ▼           ▼            ▼
       Risk MCP    Trade MCP    Policy MCP
          │           │            │
          ▼           ▼            ▼
       Risk API     Trade API    BigQuery&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This creates a standardized tool interface.&lt;/p&gt;&lt;p&gt;Google's current agent architecture documentation explicitly discusses MCP, and Google's Agent Registry can authenticate agents to remote agents or MCP toolsets. (&lt;a href="https://docs.cloud.google.com/architecture/single-agent-ai-system-adk-cloud-run?utm_source=chatgpt.com" title="Single-agent AI system using ADK and Cloud Run  |  Cloud Architecture Center  |  Google Cloud Documentation"&gt;Google Cloud Documentation&lt;/a&gt;)&lt;/p&gt;&lt;hr /&gt;&lt;h1&gt;22. Multi-agent architecture&lt;/h1&gt;&lt;p&gt;For a more advanced interview answer:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;                       Supervisor Agent
                              │
          ┌───────────────────┼──────────────────┐
          ▼                   ▼                  ▼
    Risk Agent          Compliance Agent     Trade Agent
          │                   │                  │
          ▼                   ▼                  ▼
    Risk Data             Policies          Trade Data
          │                   │                  │
          └───────────────────┼──────────────────┘
                              ▼
                         Decision Agent
                              │
                              ▼
                       Human Approval&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;ADK supports multi-agent architectures where specialized agents can collaborate and delegate tasks. (&lt;a href="https://docs.cloud.google.com/gemini-enterprise-agent-platform/build/adk?hl=en&amp;amp;utm_source=chatgpt.com" title="Agent Development Kit  |  Gemini Enterprise Agent Platform  |  Google Cloud Documentation"&gt;Google Cloud Documentation&lt;/a&gt;)&lt;/p&gt;&lt;p&gt;But don't introduce multi-agent architecture just because it sounds sophisticated.&lt;/p&gt;&lt;p&gt;My interview answer would be:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;"I start with a single agent and deterministic tools. I introduce multiple agents only when separation of responsibility, independent evaluation, security boundaries or organizational ownership justify the additional orchestration complexity."&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;That is a much stronger architect answer.&lt;/p&gt;&lt;hr /&gt;&lt;h1&gt;23. Human-in-the-loop&lt;/h1&gt;&lt;p&gt;For financial services:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Agent
 │
 ▼
Recommendation
 │
 ▼
Risk Officer
 │
 ├──── APPROVE
 │       │
 │       ▼
 │   Execute action
 │
 └──── REJECT
         │
         ▼
       Stop&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Example:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Agent:

ABC exceeds its approved limit by $25M.

Evidence:
- Exposure: $125M
- Limit: $100M
- Policy: Section 4.3
- Primary driver: Trade XYZ

Recommendation:
Escalate to Risk Control.&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The agent should not automatically change the credit limit.&lt;/p&gt;&lt;hr /&gt;&lt;h1&gt;24. Security architecture&lt;/h1&gt;&lt;p&gt;Now the most important enterprise part.&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;                       INTERNET
                           │
                           ▼
                   Cloud Load Balancer
                           │
                           ▼
                     Cloud Armor
                           │
                           ▼
                         GKE
                           │
                  ┌────────┴────────┐
                  │                 │
                  ▼                 ▼
                IAM           Service Accounts
                  │                 │
                  └────────┬────────┘
                           ▼
                    VPC Service
                      Controls
                           │
             ┌─────────────┼─────────────┐
             ▼             ▼             ▼
          BigQuery      Cloud Storage   Agent Platform&lt;/code&gt;&lt;/pre&gt;&lt;hr /&gt;&lt;h1&gt;25. IAM&lt;/h1&gt;&lt;p&gt;Use separate service identities.&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;User
 │
 ▼
Identity
 │
 ▼
IAM
 │
 ├── Analyst
 ├── Risk Manager
 ├── Admin
 └── Agent Service Account&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Don't give the agent:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;roles/owner&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Instead:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Agent Service Account

 ├── Read risk tables
 ├── Read approved documents
 ├── Execute selected APIs
 └── No unrestricted write access&lt;/code&gt;&lt;/pre&gt;&lt;hr /&gt;&lt;h1&gt;26. VPC Service Controls&lt;/h1&gt;&lt;p&gt;This is one of the strongest GCP security controls for this architecture.&lt;/p&gt;&lt;p&gt;Conceptually:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;             SECURITY PERIMETER
        ┌───────────────────────────┐
        │                           │
        │       Financial Data      │
        │                           │
        │   BigQuery                │
        │   Cloud Storage           │
        │   AI services             │
        │                           │
        └───────────────────────────┘
                    │
              VPC Service
                 Controls
                    │
              Data exfiltration
                 prevention&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Even if an identity is compromised, VPC-SC provides a network-level/data-perimeter control.&lt;/p&gt;&lt;p&gt;Google specifically recommends VPC Service Controls as a key perimeter guardrail for agentic AI workloads and has added newer capabilities aimed at agentic workloads. (&lt;a href="https://cloud.google.com/blog/products/identity-security/securing-agentic-ai-whats-new-in-vpc-service-controls?utm_source=chatgpt.com" title="Securing agentic AI: What's new in VPC Service Controls | Google Cloud Blog"&gt;Google Cloud&lt;/a&gt;)&lt;/p&gt;&lt;p&gt;Current Agent Platform security controls include VPC Service Controls, CMEK and Access Transparency, subject to service-specific support. (&lt;a href="https://docs.cloud.google.com/gemini-enterprise-agent-platform/machine-learning/security-controls?authuser=0&amp;amp;utm_source=chatgpt.com" title="Security controls for machine learning services  |  Gemini Enterprise Agent Platform  |  Google Cloud Documentation"&gt;Google Cloud Documentation&lt;/a&gt;)&lt;/p&gt;&lt;hr /&gt;&lt;h1&gt;27. Cloud KMS&lt;/h1&gt;&lt;p&gt;For highly regulated environments:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Data
 │
 ▼
Cloud KMS
 │
 ▼
Customer-managed encryption key
 │
 ├── BigQuery
 ├── Cloud Storage
 └── Other supported services&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Use CMEK where the service and compliance requirements justify it.&lt;/p&gt;&lt;hr /&gt;&lt;h1&gt;28. Complete secure network architecture&lt;/h1&gt;&lt;pre&gt;&lt;code class="language-text"&gt;                         INTERNET
                            │
                            ▼
                ┌─────────────────────┐
                │ Cloud Load Balancer  │
                └──────────┬──────────┘
                           │
                     Cloud Armor
                     WAF + DDoS
                           │
                           ▼
                    PRIVATE GKE
                           │
              ┌────────────┼────────────┐
              │            │            │
              ▼            ▼            ▼
          API Layer    AI Gateway    Agent Layer
              │            │            │
              └────────────┼────────────┘
                           │
                  VPC Service Controls
                           │
             ┌─────────────┼─────────────┐
             │             │             │
             ▼             ▼             ▼
          BigQuery     Cloud Storage   Agent Platform
             │             │             │
             ▼             ▼             ▼
         Vector DB      Documents       Gemini&lt;/code&gt;&lt;/pre&gt;&lt;hr /&gt;&lt;h1&gt;29. Observability&lt;/h1&gt;&lt;p&gt;For production, instrument everything.&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;                      Application
                           │
              ┌────────────┼────────────┐
              ▼            ▼            ▼
           Metrics        Logs         Traces
              │            │            │
              └────────────┼────────────┘
                           ▼
                  Cloud Monitoring
                  Cloud Logging
                  Cloud Trace
                           │
                           ▼
                       Dashboard&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Monitor:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;API latency
p50
p95
p99

Agent latency
RAG latency
BigQuery latency
LLM latency

Tokens
Cost
Requests
Errors

Tool failures
Agent retries
Agent loops
Prompt injection
Guardrail blocks

GPU utilization
GPU memory
Queue depth&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;For agents, trace the entire trajectory:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Request
 │
 ├── Guardrail
 │
 ├── Agent
 │
 ├── RAG
 │    └── BigQuery
 │
 ├── Tool
 │    └── Risk API
 │
 ├── Tool
 │    └── Trade API
 │
 └── Gemini&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Google's current Agent Platform tooling supports evaluation and observability around agent execution, and Cloud Trace is used in the current Agents CLI deployment workflow. (&lt;a href="https://docs.cloud.google.com/gemini-enterprise-agent-platform/agents/quickstart-adk?hl=en&amp;amp;utm_source=chatgpt.com" title="Build an agent with ADK and Agents CLI in Agent Platform  |  Gemini Enterprise Agent Platform  |  Google Cloud Documentation"&gt;Google Cloud Documentation&lt;/a&gt;)&lt;/p&gt;&lt;hr /&gt;&lt;h1&gt;30. Agent evaluation&lt;/h1&gt;&lt;p&gt;This is something I would add to your original architecture because it is important for a senior GenAI interview.&lt;/p&gt;&lt;p&gt;Don't deploy an agent simply because:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;"It works."&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Create an evaluation dataset:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;100–1,000 historical questions
          │
          ▼
      Agent runs
          │
          ▼
       Evaluate
          │
 ┌────────┼────────┐
 ▼        ▼        ▼
Accuracy Grounding Safety&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Measure:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Answer correctness
Citation correctness
Retrieval precision
Retrieval recall
Groundedness
Tool selection
Tool arguments
Trajectory correctness
Safety
Latency
Cost&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;ADK and Agent Platform now provide evaluation capabilities for testing agent execution and trajectories. (&lt;a href="https://docs.cloud.google.com/gemini-enterprise-agent-platform/agents/quickstart-adk?hl=en&amp;amp;utm_source=chatgpt.com" title="Build an agent with ADK and Agents CLI in Agent Platform  |  Gemini Enterprise Agent Platform  |  Google Cloud Documentation"&gt;Google Cloud Documentation&lt;/a&gt;)&lt;/p&gt;&lt;hr /&gt;&lt;h1&gt;31. CI/CD architecture&lt;/h1&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Developer
    │
    ▼
Git
    │
    ▼
Cloud Build
    │
    ├── Unit tests
    ├── Security scan
    ├── Agent evaluation
    ├── RAG evaluation
    └── Prompt tests
            │
            ▼
      Artifact Registry
            │
            ▼
          GKE
            │
       ┌────┴─────┐
       ▼          ▼
    Staging     Production
       │
       ▼
   Evaluation
       │
       ▼
    Approval&lt;/code&gt;&lt;/pre&gt;&lt;hr /&gt;&lt;h1&gt;32. Production scaling&lt;/h1&gt;&lt;p&gt;This addresses the architecture problems you asked about earlier.&lt;/p&gt;&lt;p&gt;Don't scale only based on CPU.&lt;/p&gt;&lt;p&gt;For GenAI:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;GKE
 │
 ├── CPU
 ├── Memory
 ├── Requests
 ├── Queue depth
 ├── Agent concurrency
 ├── RAG latency
 └── Model latency&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;For GPU workloads:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;GPU utilization
GPU memory
tokens/sec
requests/sec
queue depth
KV-cache pressure&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Then:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;             Load
               │
               ▼
          GKE Autoscaler
               │
       ┌───────┼────────┐
       ▼       ▼        ▼
     Pod 1   Pod 2    Pod 3
       │       │        │
       └───────┼────────┘
               ▼
            Gemini&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;For managed Gemini inference, you generally don't manage the underlying GPU concurrency yourself in the same way you would for self-hosted models. If you deploy custom models on GKE, however, GPU capacity, batching, concurrency and memory become your responsibility.&lt;/p&gt;&lt;hr /&gt;&lt;h1&gt;33. Failure architecture&lt;/h1&gt;&lt;p&gt;This is another important senior-level topic.&lt;/p&gt;&lt;h3&gt;BigQuery temporarily unavailable&lt;/h3&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Agent
 │
 ▼
BigQuery
 │
 X
 │
 ▼
Cache / fallback
 │
 ▼
Graceful response&lt;/code&gt;&lt;/pre&gt;&lt;h3&gt;Tool API unavailable&lt;/h3&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Agent
 │
 ▼
Risk API
 │
 X
 │
 ▼
Retry
 │
 ▼
Circuit breaker
 │
 ▼
Agent explains
"Exposure data unavailable"&lt;/code&gt;&lt;/pre&gt;&lt;h3&gt;Gemini unavailable&lt;/h3&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Agent
 │
 ▼
Primary model
 │
 X
 │
 ▼
Fallback model
 │
 ▼
Response&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Model routing can therefore become:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Primary
 Gemini
   │
   X
   ▼
Fallback
 Claude / other approved model
   │
   X
   ▼
Graceful degradation&lt;/code&gt;&lt;/pre&gt;&lt;hr /&gt;&lt;h1&gt;34. The final production architecture&lt;/h1&gt;&lt;p&gt;This is the diagram I would memorize for your GCP interview:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;                              USERS
                                │
                                ▼
                    ┌──────────────────────┐
                    │ Cloud Load Balancer   │
                    └──────────┬───────────┘
                               │
                         Cloud Armor
                        WAF + DDoS
                               │
                               ▼
                    ┌──────────────────────┐
                    │ GKE PRIVATE CLUSTER  │
                    │                      │
                    │ API                  │
                    │ AI Gateway           │
                    │ RAG Service          │
                    │ Agent Service        │
                    │ MCP Services         │
                    └──────────┬───────────┘
                               │
                       IAM / Service Accounts
                               │
                       VPC SERVICE CONTROLS
                               │
             ┌─────────────────┼──────────────────┐
             │                 │                  │
             ▼                 ▼                  ▼
       Agent Platform       BigQuery          Cloud Storage
             │                 │                  │
       ┌─────┼─────┐           │             Documents
       │     │     │           │                  │
       ▼     ▼     ▼           ▼                  │
    Gemini Claude Gemma    SQL + Vector            │
       │           │        Search                 │
       └─────┬─────┘           │                   │
             │                 │                   │
             └────────┬────────┘                   │
                      ▼                            │
                  AGENT                            │
                      │                            │
         ┌────────────┼──────────────┐             │
         ▼            ▼              ▼             │
       RAG          SQL/API         MCP            │
         │            │              │             │
         └────────────┼──────────────┘             │
                      ▼                            │
               Model Armor                         │
                      │                            │
                      ▼                            │
                Human Approval                     │
                      │                            │
                      ▼                            │
                    USER                           │
                                                   │
          ┌────────────────────────────────────────┘
          │
          ▼
   Cloud Monitoring
   Cloud Logging
   Cloud Trace
   Cloud KMS
   IAM Audit Logs&lt;/code&gt;&lt;/pre&gt;&lt;hr /&gt;&lt;h1&gt;35. AWS → GCP mental mapping&lt;/h1&gt;&lt;p&gt;For your interviews, memorize this:&lt;/p&gt;&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;AWS&lt;/th&gt;&lt;th&gt;GCP&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;CloudFront&lt;/td&gt;&lt;td&gt;Cloud CDN / Cloud Load Balancing&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;AWS WAF&lt;/td&gt;&lt;td&gt;Cloud Armor&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;AWS Shield&lt;/td&gt;&lt;td&gt;Cloud Armor / Google Cloud DDoS protection&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ALB&lt;/td&gt;&lt;td&gt;Cloud Load Balancing&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ECS&lt;/td&gt;&lt;td&gt;Cloud Run / GKE&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;EKS&lt;/td&gt;&lt;td&gt;GKE&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Bedrock&lt;/td&gt;&lt;td&gt;Gemini Enterprise Agent Platform / Model Garden&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Bedrock Guardrails&lt;/td&gt;&lt;td&gt;Model Armor&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Bedrock Knowledge Bases&lt;/td&gt;&lt;td&gt;Agent Platform RAG capabilities / custom RAG&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;OpenSearch&lt;/td&gt;&lt;td&gt;BigQuery Vector Search / Vertex AI Vector Search&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Aurora pgvector&lt;/td&gt;&lt;td&gt;AlloyDB / Cloud SQL with pgvector&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;S3&lt;/td&gt;&lt;td&gt;Cloud Storage&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;IAM&lt;/td&gt;&lt;td&gt;Cloud IAM&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;KMS&lt;/td&gt;&lt;td&gt;Cloud KMS&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;PrivateLink&lt;/td&gt;&lt;td&gt;Private Service Connect / VPC connectivity patterns&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CloudWatch&lt;/td&gt;&lt;td&gt;Cloud Monitoring + Cloud Logging&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;X-Ray&lt;/td&gt;&lt;td&gt;Cloud Trace&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;EventBridge&lt;/td&gt;&lt;td&gt;Eventarc&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SQS&lt;/td&gt;&lt;td&gt;Cloud Tasks / Pub/Sub depending on pattern&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SNS&lt;/td&gt;&lt;td&gt;Pub/Sub&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Redshift&lt;/td&gt;&lt;td&gt;BigQuery&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SageMaker&lt;/td&gt;&lt;td&gt;Vertex AI / Agent Platform&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ECR&lt;/td&gt;&lt;td&gt;Artifact Registry&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CodeBuild&lt;/td&gt;&lt;td&gt;Cloud Build&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;EKS autoscaling&lt;/td&gt;&lt;td&gt;GKE autoscaling&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;One nuance: there isn't always a strict one-to-one mapping; for example, GCP's networking and managed AI services often combine capabilities that are separate AWS products.&amp;nbsp;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;Open Source Open Mind&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUerB97VCVj81CI47QZVunGJBSH8NJ1JpPCHK-lUJhmvcOUre9xz3vPC1F8826XdB9N69-pTrv5L6Lj69EthstZMJm93xEjC2M_4zfvABP7xfn1Lke61THA1svzh9VChyphenhyphen_EQAXl-fk-52aoB3IIQ4oy-bIirpD3OgG0hHGeMH3HzLeObxWPnEiHHLGvaiz/s72-w635-h357-c/GCP_architecture_ecommerce.jpeg" width="72"/><author>dhiraj.patra@gmail.com (dhiraj patra)</author></item><item><title>AWS - Financial Services Application with RAG and AgenticAI</title><link>http://dhirajpatra.blogspot.com/2026/08/aws-financial-services-application-with.html</link><category>agent</category><category>agenticai</category><category>artificial intelligence</category><category>aws</category><category>generativeai</category><category>rag</category><pubDate>Wed, 19 Aug 2026 08:08:39 -0700</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8993867651193907565.post-3416123471575420147</guid><description>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijKxSpnXNt6l07NeCJERwa7WmQ_3n4-EdX_Zq5H87q5p52Y8ny9AXopy8OOKQQMSJuu7zLvZ2bmkY337JXcNYyody0Ooc2L4ncpgxurTw4fXogPypgCYtVJd2hTLwbXjDRZZUpnf1yKLTDEIW3WRl3434Jwt386NqpAiaZs2URmdU09MBQC9fiJhJmqlOE/s1366/AWS_architecture_ecommerce.png" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="768" data-original-width="1366" height="362" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijKxSpnXNt6l07NeCJERwa7WmQ_3n4-EdX_Zq5H87q5p52Y8ny9AXopy8OOKQQMSJuu7zLvZ2bmkY337JXcNYyody0Ooc2L4ncpgxurTw4fXogPypgCYtVJd2hTLwbXjDRZZUpnf1yKLTDEIW3WRl3434Jwt386NqpAiaZs2URmdU09MBQC9fiJhJmqlOE/w644-h362/AWS_architecture_ecommerce.png" width="644" /&gt;&lt;/a&gt;&lt;/div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;generated by chatgpt&lt;p&gt;The best way to understand this architecture is to build one realistic financial-services application twice:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;p&gt;RAG application — "Risk Policy Assistant"&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Agentic AI application — "Risk Investigation Agent"&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Guardrails can detect/filter certain unsafe or policy-violating content and can help with grounding-related controls, but hallucination prevention fundamentally comes from architecture: RAG grounding, tool constraints, evaluation, citations, and validation.&lt;/p&gt;&lt;hr /&gt;&lt;h1&gt;1. Real-world example&lt;/h1&gt;&lt;p&gt;Imagine a bank has thousands of documents:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Risk Policies
Credit Policies
Liquidity Policies
Market Risk Policies
Counterparty Policies
Basel Documents
Regulatory Documents
Internal Procedures
Trade Processing Manuals&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;A user asks:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;"What is the bank's policy for counterparty exposure when the credit rating falls below investment grade?"&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;We want:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;User
 ↓
AWS security perimeter
 ↓
AI Gateway
 ↓
RAG
 ↓
Authorized documents
 ↓
Bedrock
 ↓
Guardrails
 ↓
Answer + citations&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Then we extend it.&lt;/p&gt;&lt;p&gt;User asks:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;"Investigate why counterparty ABC breached its exposure limit yesterday and tell me what action should be taken."&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Now we need an agent.&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;User
 ↓
Agent
 ├── Search risk policy
 ├── Retrieve counterparty data
 ├── Retrieve trades
 ├── Calculate exposure
 ├── Compare against limit
 ├── Investigate breach
 └── Recommend action&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;That is the difference between RAG and Agentic AI.&lt;/p&gt;&lt;hr /&gt;&lt;h1&gt;2. Complete AWS architecture&lt;/h1&gt;&lt;pre&gt;&lt;code class="language-text"&gt;                         ┌─────────────────┐
                         │      USER       │
                         └────────┬────────┘
                                  │
                                  ▼
                         ┌─────────────────┐
                         │ Amazon         │
                         │ CloudFront     │
                         └────────┬────────┘
                                  │
                         ┌────────▼────────┐
                         │ AWS WAF         │
                         │ AWS Shield      │
                         └────────┬────────┘
                                  │
                                  ▼
                       ┌─────────────────────┐
                       │ Application Load    │
                       │ Balancer            │
                       └──────────┬──────────┘
                                  │
                         PRIVATE SUBNETS
                                  │
                    ┌─────────────▼─────────────┐
                    │ ECS / EKS                 │
                    │                           │
                    │ Frontend                  │
                    │ API                       │
                    │ RAG Service               │
                    │ Agent Service             │
                    └─────────────┬─────────────┘
                                  │
                         ┌────────▼────────┐
                         │ AI Gateway      │
                         │                 │
                         │ Auth            │
                         │ Rate Limit      │
                         │ Tenant          │
                         │ Cost Tracking   │
                         │ Model Routing   │
                         └────────┬─────────┘
                                  │
                     ┌────────────┼─────────────┐
                     │            │             │
                     ▼            ▼             ▼
               Bedrock       Knowledge      Application
               Guardrails     Bases          Tools
                     │            │             │
                     ▼            ▼             ▼
                  Bedrock      OpenSearch     APIs
                  Claude       / Aurora       DB
                  Llama       pgvector        Kafka
                  Titan&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Network path:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Internet
   │
   ▼
CloudFront
   │
   ▼
WAF + Shield
   │
   ▼
ALB
   │
   ▼
Private ECS/EKS
   │
   ▼
AI Gateway
   │
   ├───────────────► Bedrock
   │
   ├───────────────► Knowledge Base
   │
   └───────────────► Internal APIs&lt;/code&gt;&lt;/pre&gt;&lt;hr /&gt;&lt;h1&gt;3. RAG application&lt;/h1&gt;&lt;p&gt;Let's build the simpler system first.&lt;/p&gt;&lt;h2&gt;User question&lt;/h2&gt;&lt;pre&gt;&lt;code class="language-text"&gt;"What is the counterparty exposure policy
for below-investment-grade entities?"&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Architecture:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;                     USER
                       │
                       ▼
                 API Gateway
                       │
                       ▼
                  AI Gateway
                       │
                       ▼
                Bedrock Guardrail
                       │
                       ▼
             Bedrock Knowledge Base
                       │
                       ▼
             Vector Search / OpenSearch
                       │
                  Top K documents
                       │
                       ▼
                   Claude
                       │
                       ▼
               Grounded answer
                       │
                       ▼
                     USER&lt;/code&gt;&lt;/pre&gt;&lt;hr /&gt;&lt;h1&gt;4. Document ingestion&lt;/h1&gt;&lt;p&gt;Suppose we have:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;s3://bank-risk-documents/

├── credit/
│   ├── credit_policy.pdf
│   └── rating_policy.pdf
│
├── market/
│   └── market_risk_policy.pdf
│
└── liquidity/
    └── liquidity_policy.pdf&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The pipeline is:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;PDF
 │
 ▼
Amazon S3
 │
 ▼
Bedrock Knowledge Base
 │
 ├── Parse
 ├── Chunk
 ├── Embed
 └── Index
       │
       ▼
Amazon OpenSearch Serverless&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The embedding model converts:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;"Counterparty exposure must not exceed..."&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;into something like:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;[0.021, -0.182, 0.731, ...]&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The vector is stored in the vector index.&lt;/p&gt;&lt;hr /&gt;&lt;h1&gt;5. Retrieval&lt;/h1&gt;&lt;p&gt;User asks:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;"What happens if rating falls below BBB?"&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The question becomes:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;query
 ↓
embedding
 ↓
vector similarity
 ↓
Top 5 chunks&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Example:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Document 1 → similarity 0.92
Document 2 → similarity 0.88
Document 3 → similarity 0.84
Document 4 → similarity 0.81
Document 5 → similarity 0.79&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Those documents become context for the LLM.&lt;/p&gt;&lt;hr /&gt;&lt;h1&gt;6. Important enterprise feature: authorization-aware RAG&lt;/h1&gt;&lt;p&gt;This is where your architecture becomes enterprise-grade.&lt;/p&gt;&lt;p&gt;Suppose:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Consultant A
    │
    └── Client A documents

Consultant B
    │
    └── Client B documents&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Never do:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-python"&gt;results = vector_db.search(query)&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Do:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-python"&gt;results = vector_db.search(
    query=query,
    filter={
        "tenant_id": user.tenant_id,
        "classification": {
            "$in": user.allowed_classifications
        }
    }
)&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Metadata:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-json"&gt;{
  "document_id": "RISK-001",
  "tenant_id": "BANK-A",
  "classification": "CONFIDENTIAL",
  "department": "MARKET_RISK",
  "region": "EU"
}&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This prevents:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Client A
   ↓
Client B's documents
   ↓
DATA LEAK&lt;/code&gt;&lt;/pre&gt;&lt;hr /&gt;&lt;h1&gt;7. RAG code&lt;/h1&gt;&lt;p&gt;A simplified Python service:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-python"&gt;from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()


class Query(BaseModel):
    question: str
    tenant_id: str


@app.post("/rag")
async def rag(query: Query):

    documents = await retrieve_documents(
        question=query.question,
        tenant_id=query.tenant_id
    )

    context = "\n\n".join(
        document["text"]
        for document in documents
    )

    prompt = f"""
You are an enterprise risk assistant.

Answer only from the supplied context.

If the answer is not available,
say that the information is unavailable.

Context:
{context}

Question:
{query.question}
"""

    response = await invoke_bedrock(
        prompt=prompt
    )

    return {
        "answer": response,
        "sources": [
            d["document_id"]
            for d in documents
        ]
    }&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Notice the architecture:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;FastAPI
   │
   ├── Authorization
   │
   ├── Retrieval
   │
   ├── Prompt construction
   │
   ├── Bedrock
   │
   └── Citation&lt;/code&gt;&lt;/pre&gt;&lt;hr /&gt;&lt;h1&gt;8. Bedrock model invocation&lt;/h1&gt;&lt;p&gt;Your application should not directly scatter Bedrock calls everywhere.&lt;/p&gt;&lt;p&gt;Bad:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-python"&gt;bedrock.invoke_model(...)&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;from 20 different microservices.&lt;/p&gt;&lt;p&gt;Better:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Applications
     │
     ▼
AI Gateway
     │
     ▼
Bedrock&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The gateway provides:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Authentication
Authorization
Rate limiting
Tenant isolation
Model routing
Cost tracking
Prompt policy
Guardrails
Observability&lt;/code&gt;&lt;/pre&gt;&lt;hr /&gt;&lt;h1&gt;9. LiteLLM architecture&lt;/h1&gt;&lt;p&gt;If you use LiteLLM:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;                  Applications
                       │
                       ▼
                   LiteLLM
                       │
             ┌─────────┼─────────┐
             ▼         ▼         ▼
          Claude     Llama      Titan
             │         │         │
             └─────────┼─────────┘
                       ▼
                    Bedrock&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Now your application doesn't need to know which model is being used.&lt;/p&gt;&lt;p&gt;For example:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-python"&gt;response = completion(
    model="bedrock/anthropic.claude",
    messages=[
        {
            "role": "user",
            "content": prompt
        }
    ]
)&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Then your gateway can implement:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Premium request
      ↓
Claude

Normal request
      ↓
Llama

Low-cost request
      ↓
smaller model&lt;/code&gt;&lt;/pre&gt;&lt;hr /&gt;&lt;h1&gt;10. Where Guardrails belong&lt;/h1&gt;&lt;p&gt;There are actually multiple guardrail points.&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;                    USER
                      │
                      ▼
              Input Guardrail
                      │
                      ▼
                 AI Gateway
                      │
                      ▼
                    RAG
                      │
                      ▼
                  Bedrock
                      │
                      ▼
             Output Guardrail
                      │
                      ▼
                    USER&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Check:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Input:
├── Prompt injection
├── Toxicity
├── PII
└── Policy violations

Output:
├── PII
├── Unsafe content
├── Policy violations
└── Grounding/citation requirements&lt;/code&gt;&lt;/pre&gt;&lt;hr /&gt;&lt;h1&gt;11. Now let's make it Agentic AI&lt;/h1&gt;&lt;p&gt;RAG answers:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;"What does the policy say?"&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Agentic AI can answer:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;"Why did this counterparty breach its exposure limit?"&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;That requires multiple actions.&lt;/p&gt;&lt;p&gt;Architecture:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;                         USER
                           │
                           ▼
                      Agent API
                           │
                           ▼
                      AI Gateway
                           │
                           ▼
                       Agent
                           │
           ┌───────────────┼────────────────┐
           │               │                │
           ▼               ▼                ▼
      Policy RAG      Exposure API      Trade API
           │               │                │
           ▼               ▼                ▼
      Knowledge Base    Risk Engine       Trade DB
           │               │                │
           └───────────────┼────────────────┘
                           ▼
                        Gemini/Claude
                           │
                           ▼
                    Final Explanation&lt;/code&gt;&lt;/pre&gt;&lt;hr /&gt;&lt;h1&gt;12. Agent's tools&lt;/h1&gt;&lt;p&gt;Define tools explicitly.&lt;/p&gt;&lt;pre&gt;&lt;code class="language-python"&gt;tools = [

    get_counterparty_exposure,

    get_counterparty_limit,

    get_recent_trades,

    search_risk_policy,

    calculate_potential_exposure,

    create_risk_case
]&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The LLM doesn't directly access databases.&lt;/p&gt;&lt;p&gt;Instead:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Agent
  │
  ├── get_exposure()
  │
  ├── get_limit()
  │
  ├── search_policy()
  │
  └── get_trades()&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This is critical for security.&lt;/p&gt;&lt;hr /&gt;&lt;h1&gt;13. Example Agent Workflow&lt;/h1&gt;&lt;p&gt;User:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;"Investigate ABC's exposure breach."&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Agent thinks in terms of actions:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;STEP 1
Get ABC exposure

       ↓

STEP 2
Get ABC approved limit

       ↓

STEP 3
Compare exposure vs limit

       ↓

STEP 4
If breach:
      search relevant policy

       ↓

STEP 5
Get recent trades

       ↓

STEP 6
Determine likely cause

       ↓

STEP 7
Generate recommendation

       ↓

STEP 8
Ask human approval
if action has financial impact&lt;/code&gt;&lt;/pre&gt;&lt;hr /&gt;&lt;h1&gt;14. Agent architecture&lt;/h1&gt;&lt;pre&gt;&lt;code class="language-text"&gt;                    ┌───────────────┐
                    │     USER      │
                    └───────┬───────┘
                            │
                            ▼
                    ┌───────────────┐
                    │  Agent        │
                    │  Orchestrator │
                    └───────┬───────┘
                            │
                    ┌───────▼────────┐
                    │   Planner      │
                    └───────┬────────┘
                            │
          ┌─────────────────┼──────────────────┐
          ▼                 ▼                  ▼
     Policy Tool       Exposure Tool       Trade Tool
          │                 │                  │
          ▼                 ▼                  ▼
     RAG/KB             Risk API            Trade DB
          │                 │                  │
          └─────────────────┼──────────────────┘
                            ▼
                     Result Aggregator
                            │
                            ▼
                         LLM Judge
                            │
                            ▼
                       Human Review
                            │
                            ▼
                         Response&lt;/code&gt;&lt;/pre&gt;&lt;hr /&gt;&lt;h1&gt;15. Example Agent Tool&lt;/h1&gt;&lt;pre&gt;&lt;code class="language-python"&gt;async def get_counterparty_exposure(
    counterparty_id: str
):

    response = await risk_api.get(
        f"/counterparty/{counterparty_id}/exposure"
    )

    return {
        "counterparty": counterparty_id,
        "exposure": response["exposure"],
        "currency": response["currency"],
        "timestamp": response["timestamp"]
    }&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Another:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-python"&gt;async def get_counterparty_limit(
    counterparty_id: str
):

    response = await risk_api.get(
        f"/counterparty/{counterparty_id}/limit"
    )

    return {
        "limit": response["limit"],
        "currency": response["currency"]
    }&lt;/code&gt;&lt;/pre&gt;&lt;hr /&gt;&lt;h1&gt;16. Agent decision&lt;/h1&gt;&lt;p&gt;Suppose tools return:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Exposure = $125M

Limit = $100M

Breach = $25M&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Agent then calls:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;search_risk_policy(
    "counterparty exposure breach"
)&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;RAG returns:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;"If exposure exceeds approved limit,
the breach must be escalated to Risk Control..."&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Then:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Agent
 │
 ├── Exposure = $125M
 ├── Limit = $100M
 ├── Breach = $25M
 │
 └── Policy = escalation required&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Final answer:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;ABC currently exceeds its approved counterparty
limit by $25M.

The applicable risk policy requires escalation
to Risk Control.

Recent trade activity indicates that the breach
was primarily driven by ...

Recommended action:
Escalate to Risk Control and review the
transactions responsible for the increase.&lt;/code&gt;&lt;/pre&gt;&lt;hr /&gt;&lt;h1&gt;17. Human-in-the-loop&lt;/h1&gt;&lt;p&gt;This is extremely important in financial services.&lt;/p&gt;&lt;p&gt;Never let the agent autonomously execute:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Cancel trade
Change credit limit
Transfer money
Approve transaction
Modify collateral&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Instead:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Agent
  │
  ▼
Recommendation
  │
  ▼
Human Approval
  │
 ┌┴────────────┐
 ▼             ▼
Approve       Reject
 │
 ▼
Tool execution&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;For example:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Agent:

"I recommend reducing the exposure limit
from $100M to $80M."

             ↓

Risk Officer:

[ APPROVE ] [ REJECT ]&lt;/code&gt;&lt;/pre&gt;&lt;hr /&gt;&lt;h1&gt;18. Agent + RAG together&lt;/h1&gt;&lt;p&gt;This is the architecture you should really understand.&lt;/p&gt;&lt;p&gt;RAG is a capability.&lt;/p&gt;&lt;p&gt;Agentic AI is an orchestration pattern.&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;                   AGENT
                     │
        ┌────────────┼────────────┐
        │            │            │
        ▼            ▼            ▼
       RAG          API          SQL
        │            │            │
        ▼            ▼            ▼
 Knowledge       Risk Engine    Database
 Base&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Therefore:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;RAG ≠ Agent

Agent can USE RAG.&lt;/code&gt;&lt;/pre&gt;&lt;hr /&gt;&lt;h1&gt;19. AWS network architecture&lt;/h1&gt;&lt;p&gt;Now incorporate your PrivateLink requirement.&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;                         INTERNET
                            │
                            ▼
                       CloudFront
                            │
                            ▼
                    WAF + Shield
                            │
                            ▼
                         ALB
                            │
                    PUBLIC SUBNET
                            │
                  ──────────┼──────────
                            │
                   PRIVATE SUBNET
                            │
                    ┌───────▼───────┐
                    │ ECS / EKS     │
                    │               │
                    │ RAG Service   │
                    │ Agent Service │
                    │ API Gateway   │
                    └───────┬───────┘
                            │
                    VPC Endpoints
                            │
               ┌────────────┼────────────┐
               ▼            ▼            ▼
            Bedrock      S3          OpenSearch&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The important idea is:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Application
     │
     ▼
Private VPC
     │
     ▼
Interface VPC Endpoint
     │
     ▼
AWS service&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;So your workloads don't need public internet paths to reach supported AWS services.&lt;/p&gt;&lt;hr /&gt;&lt;h1&gt;20. ECS vs EKS&lt;/h1&gt;&lt;p&gt;For the example, I would start with ECS unless Kubernetes is explicitly required.&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;ECS
│
├── RAG API
├── Agent API
├── AI Gateway
└── Worker&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Use EKS when you need:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Complex Kubernetes workloads
Custom scheduling
Service mesh
GPU workloads
Large microservice platform
Existing Kubernetes organization&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;For an interview, say:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;"I would default to ECS/Fargate for a relatively straightforward stateless GenAI platform because it reduces operational overhead. I would choose EKS where Kubernetes-level control, GPU scheduling, service mesh or an existing enterprise Kubernetes platform justifies the additional complexity."&lt;/p&gt;&lt;/blockquote&gt;&lt;hr /&gt;&lt;h1&gt;21. Complete Agentic AI request&lt;/h1&gt;&lt;p&gt;Here is the complete request flow:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;USER
 │
 │ "Investigate ABC exposure breach"
 ▼
CloudFront
 │
 ▼
WAF
 │
 ▼
Shield
 │
 ▼
ALB
 │
 ▼
ECS
 │
 ▼
AI Gateway
 │
 ├── Authentication
 ├── Tenant validation
 ├── Rate limit
 ├── Cost tracking
 └── Guardrails
 │
 ▼
Agent
 │
 ├──────────────┐
 │              │
 ▼              ▼
RAG           Tools
 │              │
 ▼              ├── Exposure API
Bedrock KB      ├── Limit API
 │              ├── Trade API
 ▼              └── Risk DB
OpenSearch
 │
 └──────────────┐
                ▼
             Bedrock
                │
                ▼
           Reasoning
                │
                ▼
        Recommendation
                │
                ▼
       Human approval
                │
                ▼
              User&lt;/code&gt;&lt;/pre&gt;&lt;hr /&gt;&lt;h1&gt;22. Production observability&lt;/h1&gt;&lt;p&gt;You should instrument every agent step.&lt;/p&gt;&lt;p&gt;Example trace:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Trace ID: ABC-123

00ms  API Gateway
  15ms Authentication
  20ms Guardrail
  35ms Agent started
  90ms RAG retrieval
 150ms Exposure API
 180ms Limit API
 250ms Trade API
 400ms Bedrock
 430ms Output guardrail&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Then you can answer:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;"Why is the agent slow?"&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Maybe:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;LLM = 120ms
RAG = 40ms
Risk API = 20ms
Trade API = 800ms   ← bottleneck&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This is much better than simply looking at total latency.&lt;/p&gt;&lt;hr /&gt;&lt;h1&gt;23. Cost tracking&lt;/h1&gt;&lt;p&gt;Your AI Gateway should attach:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-json"&gt;{
  "tenant_id": "BANK-A",
  "user_id": "U123",
  "application": "risk-agent",
  "model": "claude",
  "input_tokens": 4200,
  "output_tokens": 850,
  "latency_ms": 1430
}&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Then:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;Tenant
   │
   ▼
AI Gateway
   │
   ├── Token accounting
   ├── Model accounting
   ├── Request accounting
   └── Cost accounting
          │
          ▼
       BigQuery/S3
          │
          ▼
       Dashboard&lt;/code&gt;&lt;/pre&gt;&lt;hr /&gt;&lt;h1&gt;24. What makes this architecture "Senior Architect" level?&lt;/h1&gt;&lt;p&gt;Not:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;CloudFront
+
ECS
+
Bedrock
+
OpenSearch&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Anyone can draw AWS services.&lt;/p&gt;&lt;p&gt;The architecture becomes senior-level when you explain:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;                    ┌──────────────┐
                    │ REQUIREMENTS │
                    └──────┬───────┘
                           │
         ┌─────────────────┼─────────────────┐
         ▼                 ▼                 ▼
      Security          Reliability       Cost
         │                 │                 │
         ▼                 ▼                 ▼
      IAM/WAF          Retry/CB          Model routing
      KMS              Fallback          Caching
      VPC              Queue             Token budget
         │                 │                 │
         └─────────────────┼─────────────────┘
                           ▼
                      Scalability
                           │
                           ▼
                      Observability&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;And especially:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-text"&gt;RAG:
"Find the right information."

Agent:
"Decide which actions/tools are required
to solve the problem."

LLM:
"Reason/generate."

Tools:
"Actually interact with enterprise systems."

Guardrails:
"Constrain what the system is allowed to do."

Human:
"Approve high-impact decisions."&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;That distinction is one of the strongest concepts to internalize for an AWS GenAI Architect interview.&lt;/p&gt;&lt;h3&gt;One final architecture to memorize&lt;/h3&gt;&lt;pre&gt;&lt;code class="language-text"&gt;                     ┌─────────────────────┐
                     │       USER          │
                     └──────────┬──────────┘
                                ▼
                     ┌─────────────────────┐
                     │ CloudFront          │
                     │ WAF + Shield        │
                     └──────────┬──────────┘
                                ▼
                     ┌─────────────────────┐
                     │ ALB                 │
                     └──────────┬──────────┘
                                ▼
                 ┌─────────────────────────────┐
                 │ ECS / EKS PRIVATE SUBNET   │
                 │                             │
                 │ AI Gateway                  │
                 │ Agent Orchestrator          │
                 │ RAG Service                 │
                 └─────────────┬───────────────┘
                               │
             ┌─────────────────┼─────────────────┐
             ▼                 ▼                 ▼
        Guardrails         Knowledge Base       Tools
             │                 │                 │
             │                 ▼                 ├── Risk API
             │            OpenSearch              ├── Trade API
             │            / Aurora                ├── SQL
             │                 │                 └── MCP
             │                 │
             └─────────────────┼─────────────────┐
                               ▼                 │
                         Amazon Bedrock          │
                         Claude/Llama/Titan      │
                               │                 │
                               ▼                 │
                          Agent Result ◄─────────┘
                               │
                               ▼
                       Human Approval
                               │
                               ▼
                             USER&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This single architecture can answer a surprisingly large number of AWS GenAI Architect interview questions: RAG, agents, Bedrock, security, networking, multi-tenancy, governance, scalability, observability, cost optimization, human-in-the-loop, and enterprise integration.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;Open Source Open Mind&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijKxSpnXNt6l07NeCJERwa7WmQ_3n4-EdX_Zq5H87q5p52Y8ny9AXopy8OOKQQMSJuu7zLvZ2bmkY337JXcNYyody0Ooc2L4ncpgxurTw4fXogPypgCYtVJd2hTLwbXjDRZZUpnf1yKLTDEIW3WRl3434Jwt386NqpAiaZs2URmdU09MBQC9fiJhJmqlOE/s72-w644-h362-c/AWS_architecture_ecommerce.png" width="72"/><author>dhiraj.patra@gmail.com (dhiraj patra)</author></item><item><title>Keep Data Local Architecture for AgenticAI</title><link>http://dhirajpatra.blogspot.com/2026/08/keep-data-local-architecture-for.html</link><category>agent</category><category>agenticai</category><category>architecture</category><category>artificial intelligence</category><category>data</category><category>data architect</category><category>generativeai</category><pubDate>Tue, 18 Aug 2026 20:49:29 -0700</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8993867651193907565.post-3376260556659290834</guid><description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhr2r14nYwDNCbLaBiPTSTII6vko6ADcs953mR95fagbRusDh1qi4eWermDDLINSvAxmp77UH0EER0DVQgbZnQ7zb0Mh8TMtVMxbJbgN-uq5nvRStfKBBEJFMnPpcN5o2GXf4cRxow9MQ5egWOAm_bpGJ_GA8-PevE4IDSnL1I6KwNNirH9HWdlU9w-v-CQ/s1920/bank_on_premise_private_ai_architecture.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="1280" data-original-width="1920" height="305" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhr2r14nYwDNCbLaBiPTSTII6vko6ADcs953mR95fagbRusDh1qi4eWermDDLINSvAxmp77UH0EER0DVQgbZnQ7zb0Mh8TMtVMxbJbgN-uq5nvRStfKBBEJFMnPpcN5o2GXf4cRxow9MQ5egWOAm_bpGJ_GA8-PevE4IDSnL1I6KwNNirH9HWdlU9w-v-CQ/w458-h305/bank_on_premise_private_ai_architecture.jpg" width="458" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;generated by meta ai&lt;/span&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div _ngcontent-ng-c1372448136="" aria-busy="false" aria-live="polite" class="markdown markdown-main-panel md-content enable-luminous-fast-follows enable-updated-hr-color stronger tutor-markdown-rendering" dir="ltr" id="model-response-message-contentr_106aa530444a3457" inline-copy-host="" style="--animation-duration: 400ms; --fade-animation-function: ease-out; animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; color: #1f1f1f; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: column; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif !important; gap: 0px; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;If a bank refuses to send raw or sensitive data outside its perimeter, you can build an agentic AI application using OpenAI, Gemini, or Claude APIs by adopting architectural patterns that &lt;b data-index-in-node="188" data-path-to-node="0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;keep raw data local while using public models strictly for high-level reasoning and orchestrating tasks&lt;/b&gt;.&lt;/div&gt;&lt;br /&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;The primary strategies to achieve this include:&lt;/div&gt;&lt;br /&gt;&lt;h2 data-path-to-node="3" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans&amp;quot;, sans-serif !important; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;1. Local Anonymization &amp;amp; Data Masking (PII Redaction)&lt;/h2&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Before sending any prompt to the API, pass the internal data through a local processing layer that strips out or replaces sensitive information (PII, account numbers, names, financial balances) with synthetic placeholders.&lt;/div&gt;&lt;br /&gt;&lt;ul data-path-to-node="5" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding-inline-start: 32px; padding: 0px 0px 0px 3.36px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;b data-index-in-node="0" data-path-to-node="5,0,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;How it works:&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;ol data-path-to-node="5,0,1" start="1" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding-inline-start: 32px; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;A local service intercepts the query and masks data: &lt;code data-index-in-node="53" data-path-to-node="5,0,1,0,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(242, 240, 240); border: 0px rgba(0, 0, 0, 0.55); clear: none; clip: auto; color: rgba(0, 0, 0, 0.55); columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline-block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif !important; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 15px; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgba(0, 0, 0, 0.55) none 3px; overlay: none; padding: 4px 6px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgba(0, 0, 0, 0.55); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;"John Doe's balance is $50,000"&lt;/code&gt; &lt;span class="math-inline" data-index-in-node="85" data-math="\rightarrow" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;$\rightarrow$&lt;/span&gt; &lt;code data-index-in-node="97" data-path-to-node="5,0,1,0,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(242, 240, 240); border: 0px rgba(0, 0, 0, 0.55); clear: none; clip: auto; color: rgba(0, 0, 0, 0.55); columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline-block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif !important; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 15px; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgba(0, 0, 0, 0.55) none 3px; overlay: none; padding: 4px 6px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgba(0, 0, 0, 0.55); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;"User_1's balance is [VAR_1]"&lt;/code&gt;.&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;The masked prompt is sent to the LLM (OpenAI/Gemini/Claude).&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;The model processes the logic and returns an agentic plan or response.&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;The local application unmasks the placeholders back to real data before displaying it or running a local tool.&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;b data-index-in-node="0" data-path-to-node="5,1,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Tools:&lt;/b&gt; Presidio (Microsoft), Private AI, or custom regex/NLP pipelines running strictly within the bank's network.&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 data-path-to-node="7" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans&amp;quot;, sans-serif !important; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;2. Hybrid Agentic Architecture (Local Tools, External Brain)&lt;/h2&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;In an agentic workflow, an LLM acts as the &lt;b data-index-in-node="43" data-path-to-node="8" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;reasoning engine&lt;/b&gt;, while external code (tools/APIs) handles data access. The LLM does not need to store or directly process raw data if you separate planning from execution.&lt;/div&gt;&lt;br /&gt;&lt;ul data-path-to-node="9" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding-inline-start: 32px; padding: 0px 0px 0px 3.36px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;b data-index-in-node="0" data-path-to-node="9,0,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;How it works:&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;ul data-path-to-node="9,0,1" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding-inline-start: 32px; padding: 0px 0px 0px 3.36px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;b data-index-in-node="0" data-path-to-node="9,0,1,0,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Metadata/Schema Sharing:&lt;/b&gt; Share only database schemas, function signatures, or sanitized metadata with the LLM API.&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;b data-index-in-node="0" data-path-to-node="9,0,1,1,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;SQL / Tool Generation:&lt;/b&gt; Ask the API to write SQL queries or API call parameters based on user intents without giving it the actual database content.&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;b data-index-in-node="0" data-path-to-node="9,0,1,2,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Local Execution:&lt;/b&gt; Your internal microservices run the generated SQL query or call internal banking endpoints inside the bank's secure perimeter.&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;b data-index-in-node="0" data-path-to-node="9,0,1,3,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Local Summarization:&lt;/b&gt; If necessary, filter or compute aggregate statistics locally before passing small, sanitized summaries back to the LLM for the final step.&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 data-path-to-node="11" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans&amp;quot;, sans-serif !important; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;3. Enterprise VPC &amp;amp; Private Link Connectivity&lt;/h2&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Commercial API providers offer dedicated enterprise instances hosted inside isolated clouds (e.g., Azure OpenAI Service, AWS Bedrock for Claude, or Google Cloud Vertex AI for Gemini).&lt;/div&gt;&lt;br /&gt;&lt;ul data-path-to-node="13" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding-inline-start: 32px; padding: 0px 0px 0px 3.36px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;b data-index-in-node="0" data-path-to-node="13,0,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Key Controls:&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;ul data-path-to-node="13,0,1" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding-inline-start: 32px; padding: 0px 0px 0px 3.36px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;b data-index-in-node="0" data-path-to-node="13,0,1,0,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Zero Data Retention (ZDR):&lt;/b&gt; Contractually guarantee that input/output prompts are deleted immediately after inference and are never logged or used for model training.&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;b data-index-in-node="0" data-path-to-node="13,0,1,1,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Private Endpoints (Azure Private Link / AWS PrivateLink):&lt;/b&gt; API traffic travels over a private connection, completely bypassing the public internet.&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;b data-index-in-node="0" data-path-to-node="13,0,1,2,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Customer-Managed Encryption Keys (CMEK):&lt;/b&gt; Ensure the cloud provider cannot decrypt payload memory or cached data.&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 data-path-to-node="15" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans&amp;quot;, sans-serif !important; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;4. Local Vector DBs &amp;amp; Local Embeddings for RAG&lt;/h2&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;If your agent relies on Retrieval-Augmented Generation (RAG) to query internal banking documents, run the vector search infrastructure inside the bank:&lt;/div&gt;&lt;br /&gt;&lt;ul data-path-to-node="17" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding-inline-start: 32px; padding: 0px 0px 0px 3.36px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Generate embeddings and store vectors locally using self-hosted vector databases (e.g., Qdrant, Milvus, PGVector).&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Run lightweight open-source embedding models locally (e.g., &lt;code data-index-in-node="60" data-path-to-node="17,1,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(242, 240, 240); border: 0px rgba(0, 0, 0, 0.55); clear: none; clip: auto; color: rgba(0, 0, 0, 0.55); columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline-block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif !important; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 15px; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgba(0, 0, 0, 0.55) none 3px; overlay: none; padding: 4px 6px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgba(0, 0, 0, 0.55); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;bge-large&lt;/code&gt;, &lt;code data-index-in-node="71" data-path-to-node="17,1,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(242, 240, 240); border: 0px rgba(0, 0, 0, 0.55); clear: none; clip: auto; color: rgba(0, 0, 0, 0.55); columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline-block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif !important; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 15px; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgba(0, 0, 0, 0.55) none 3px; overlay: none; padding: 4px 6px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgba(0, 0, 0, 0.55); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;e5&lt;/code&gt;).&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Extract relevant document chunks, sanitize them locally, and feed only the minimal required context to the API.&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 data-path-to-node="19" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans&amp;quot;, sans-serif !important; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;5. Local Orchestration Frameworks&lt;/h2&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Use agent frameworks that allow local tool routing and strict policy enforcement:&lt;/div&gt;&lt;br /&gt;&lt;ul data-path-to-node="21" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding-inline-start: 32px; padding: 0px 0px 0px 3.36px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Frameworks like &lt;b data-index-in-node="16" data-path-to-node="21,0,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;LangGraph&lt;/b&gt;, &lt;b data-index-in-node="27" data-path-to-node="21,0,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;CrewAI&lt;/b&gt;, or &lt;b data-index-in-node="38" data-path-to-node="21,0,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;LlamaIndex&lt;/b&gt; can be deployed entirely inside the bank's infrastructure.&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Set up middleware guardrails (e.g., NeMo Guardrails or Llama Guard) to inspect and block any accidental data leaks in prompts before they exit the firewall.&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-path-to-node="23" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans&amp;quot;, sans-serif !important; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Architectural Summary&lt;/h3&gt;&lt;response-element class="no-md" ng-version="0.0.0-PLACEHOLDER" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;code-block _nghost-ng-c2189877342="" class="ng-tns-c2189877342-43 enable-luminous-code-block ng-star-inserted" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;!----&gt;&lt;!----&gt;&lt;div _ngcontent-ng-c2189877342="" class="code-block ng-tns-c2189877342-43 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation" data-hveid="0" data-ved="0CAAQhtANahcKEwii55eN4quWAxUAAAAAHQAAAAAQJQ" decode-data-ved="1" jslog="223238;track:impression,attention;BardVeMetadataKey:[[&amp;quot;r_106aa530444a3457&amp;quot;,&amp;quot;c_00a009247c875fd6&amp;quot;,null,&amp;quot;rc_1722a73538b10cb2&amp;quot;,null,null,&amp;quot;en&amp;quot;,null,1,null,null,1,0]]" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: -16px; margin-right: -16px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;!----&gt;&lt;div _ngcontent-ng-c2189877342="" class="formatted-code-block-internal-container ng-tns-c2189877342-43" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(20, 20, 20); border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 26px 0px 0px 32px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div _ngcontent-ng-c2189877342="" class="animated-opacity ng-tns-c2189877342-43" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div _ngcontent-ng-c2189877342="" class="code-block-decoration header-formatted gds-emphasized-body-m ng-tns-c2189877342-43 ng-star-inserted" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(255, 255, 255); clear: none; clip: auto; color: white; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: flex; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: -72px auto auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(255, 255, 255) none 3px; overlay: none; padding: 0px 11px 0px 0px; page: auto; perspective: none; position: sticky; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(255, 255, 255); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;span _ngcontent-ng-c2189877342="" class="ng-tns-c2189877342-43" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(255, 255, 255); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(255, 255, 255) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(255, 255, 255); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Plaintext&lt;/span&gt;&lt;div _ngcontent-ng-c2189877342="" class="buttons ng-tns-c2189877342-43 ng-star-inserted" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(255, 255, 255); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(255, 255, 255) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(255, 255, 255); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;gem-icon-button _ngcontent-ng-c2189877342="" _nghost-ng-c3576132223="" aria-describedby="cdk-describedby-message-ng-1-16" arialabel="Download code" cdk-describedby-host="ng-1" class="mat-mdc-tooltip-trigger download-button ng-tns-c2189877342-43 gem-button gem-button-badge-size-small gem-button-size-small gem-button-type-on-surface lm-enabled ng-star-inserted" fonticonname="arrow_circle_down" gemtooltip="Download code" size="small" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(255, 255, 255); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline-block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(255, 255, 255) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(255, 255, 255); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;" tabindex="-1" theme="lm" type="onSurface"&gt;&lt;!----&gt;&lt;!----&gt;&lt;button _ngcontent-ng-c3576132223="" aria-label="Download code" class="mdc-icon-button mat-mdc-icon-button mat-mdc-button-base mat-badge mat-unthemed mat-badge-overlap mat-badge-above mat-badge-after mat-badge-small mat-badge-hidden ng-star-inserted" jslog="305704;track:generic_click,impression" mat-ripple-loader-centered="" mat-ripple-loader-class-name="mat-mdc-button-ripple" mat-ripple-loader-uninitialized="" matbadgeposition="after" maticonbutton="" style="animation: auto ease 0s 1 normal none running none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border-color: rgb(0, 0, 0); border-style: none; border-width: 0px; clear: none; clip: auto; color: black; columns: auto; contain: none; container: none; content: normal; cursor: pointer; cx: 0px; cy: 0px; d: none; direction: ltr; display: flex; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 0 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif !important; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 24px; font-stretch: normal; font-style: normal; font-variation-settings: normal; font-weight: normal; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(0, 0, 0) none 3px; overlay: none; padding: 6px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(0, 0, 0); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;span class="mat-mdc-button-persistent-ripple mdc-icon-button__ripple" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(0, 0, 0); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: pointer; cx: 0px; cy: 0px; d: none; direction: ltr; display: block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(0, 0, 0) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: absolute; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(0, 0, 0); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;/span&gt;&lt;gem-icon _ngcontent-ng-c3576132223="" _nghost-ng-c3933130945="" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(0, 0, 0); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: pointer; cx: 0px; cy: 0px; d: none; direction: ltr; display: flex; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 0 auto; float: none; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(0, 0, 0) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(0, 0, 0); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;mat-icon _ngcontent-ng-c3933130945="" aria-hidden="true" class="mat-icon notranslate lm-icon-l lumi-symbols mat-ligature-font mat-icon-no-color ng-star-inserted" data-mat-icon-name="arrow_circle_down" data-mat-icon-namespace="lumi-symbols" data-mat-icon-type="font" fonticon="arrow_circle_down" role="img" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(255, 255, 255); clear: none; clip: auto; color: white; columns: auto; contain: none; container: none; content: normal; cursor: pointer; cx: 0px; cy: 0px; d: none; direction: ltr; display: flex; fill: rgb(255, 255, 255); filter: none; flex-direction: row; flex: 0 0 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(255, 255, 255) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(255, 255, 255); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;/mat-icon&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/gem-icon&gt;&lt;!----&gt;&lt;span class="mat-focus-indicator" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(0, 0, 0); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: pointer; cx: 0px; cy: 0px; d: none; direction: ltr; display: block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(0, 0, 0) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: absolute; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(0, 0, 0); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;/span&gt;&lt;span class="mat-mdc-button-touch-target" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(0, 0, 0); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: pointer; cx: 0px; cy: 0px; d: none; direction: ltr; display: none; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: 50% auto auto 50%; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(0, 0, 0) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: absolute; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(0, 0, 0); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;/span&gt;&lt;/button&gt;&lt;!----&gt;&lt;!----&gt;&lt;/gem-icon-button&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;gem-icon-button _ngcontent-ng-c2189877342="" _nghost-ng-c3576132223="" aria-describedby="cdk-describedby-message-ng-1-17" arialabel="Copy code" cdk-describedby-host="ng-1" class="mat-mdc-tooltip-trigger copy-button ng-tns-c2189877342-43 gem-button gem-button-badge-size-small gem-button-size-small gem-button-type-on-surface lm-enabled ng-star-inserted" data-test-id="gem-copy-button" fonticonname="copy" gemtooltip="Copy code" size="small" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(255, 255, 255); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline-block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(255, 255, 255) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(255, 255, 255); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;" tabindex="-1" theme="lm" type="onSurface"&gt;&lt;!----&gt;&lt;!----&gt;&lt;button _ngcontent-ng-c3576132223="" aria-label="Copy code" class="mdc-icon-button mat-mdc-icon-button mat-mdc-button-base mat-badge mat-unthemed mat-badge-overlap mat-badge-above mat-badge-after mat-badge-small mat-badge-hidden ng-star-inserted" jslog="179062;track:generic_click,impression;BardVeMetadataKey:[[&amp;quot;r_106aa530444a3457&amp;quot;,&amp;quot;c_00a009247c875fd6&amp;quot;,null,&amp;quot;rc_1722a73538b10cb2&amp;quot;,null,null,&amp;quot;en&amp;quot;,null,1,null,null,1,0]];mutable:true" mat-ripple-loader-centered="" mat-ripple-loader-class-name="mat-mdc-button-ripple" mat-ripple-loader-uninitialized="" matbadgeposition="after" maticonbutton="" style="animation: auto ease 0s 1 normal none running none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border-color: rgb(0, 0, 0); border-style: none; border-width: 0px; clear: none; clip: auto; color: black; columns: auto; contain: none; container: none; content: normal; cursor: pointer; cx: 0px; cy: 0px; d: none; direction: ltr; display: flex; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 0 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif !important; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 24px; font-stretch: normal; font-style: normal; font-variation-settings: normal; font-weight: normal; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(0, 0, 0) none 3px; overlay: none; padding: 6px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(0, 0, 0); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;span class="mat-mdc-button-persistent-ripple mdc-icon-button__ripple" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(0, 0, 0); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: pointer; cx: 0px; cy: 0px; d: none; direction: ltr; display: block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(0, 0, 0) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: absolute; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(0, 0, 0); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;/span&gt;&lt;gem-icon _ngcontent-ng-c3576132223="" _nghost-ng-c3933130945="" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(0, 0, 0); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: pointer; cx: 0px; cy: 0px; d: none; direction: ltr; display: flex; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 0 auto; float: none; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(0, 0, 0) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(0, 0, 0); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;mat-icon _ngcontent-ng-c3933130945="" aria-hidden="true" class="mat-icon notranslate lm-icon-l lumi-symbols mat-ligature-font mat-icon-no-color ng-star-inserted" data-mat-icon-name="copy" data-mat-icon-namespace="lumi-symbols" data-mat-icon-type="font" fonticon="copy" role="img" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(255, 255, 255); clear: none; clip: auto; color: white; columns: auto; contain: none; container: none; content: normal; cursor: pointer; cx: 0px; cy: 0px; d: none; direction: ltr; display: flex; fill: rgb(255, 255, 255); filter: none; flex-direction: row; flex: 0 0 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(255, 255, 255) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(255, 255, 255); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;/mat-icon&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/gem-icon&gt;&lt;!----&gt;&lt;span class="mat-focus-indicator" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(0, 0, 0); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: pointer; cx: 0px; cy: 0px; d: none; direction: ltr; display: block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(0, 0, 0) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: absolute; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(0, 0, 0); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;/span&gt;&lt;span class="mat-mdc-button-touch-target" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(0, 0, 0); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: pointer; cx: 0px; cy: 0px; d: none; direction: ltr; display: none; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: 50% auto auto 50%; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(0, 0, 0) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: absolute; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(0, 0, 0); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;/span&gt;&lt;/button&gt;&lt;!----&gt;&lt;!----&gt;&lt;/gem-icon-button&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/div&gt;&lt;!----&gt;&lt;!----&gt;&lt;/div&gt;&lt;!----&gt;&lt;pre _ngcontent-ng-c2189877342="" class="ng-tns-c2189877342-43" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif !important; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;code _ngcontent-ng-c2189877342="" class="code-container formatted ng-tns-c2189877342-43" data-test-id="code-content" role="text" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(255, 255, 255); clear: none; clip: auto; color: white; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif !important; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 14px; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15 !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; marker: none; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(255, 255, 255) none 3px; overlay: none; padding: 16px 0px 32px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(255, 255, 255); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;[ User / Bank System ] 
        │
        ▼
[ Local Middleware: Guardrails &amp;amp; PII Masking ]
        │
        ├─── Send Sanitized/Metadata Prompt ───► [ Cloud API: OpenAI / Gemini / Claude ]
        │                                                     │
        │◄─── Return Tool Call / Plan / SQL Query ────────────┘
        │
[ Local Tool Execution (DBs, Core Banking APIs) ]
        │
[ Local Unmasking &amp;amp; Final Output ]
&lt;/code&gt;&lt;/pre&gt;&lt;!----&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/code-block&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/response-element&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Open Source Open Mind&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhr2r14nYwDNCbLaBiPTSTII6vko6ADcs953mR95fagbRusDh1qi4eWermDDLINSvAxmp77UH0EER0DVQgbZnQ7zb0Mh8TMtVMxbJbgN-uq5nvRStfKBBEJFMnPpcN5o2GXf4cRxow9MQ5egWOAm_bpGJ_GA8-PevE4IDSnL1I6KwNNirH9HWdlU9w-v-CQ/s72-w458-h305-c/bank_on_premise_private_ai_architecture.jpg" width="72"/><author>dhiraj.patra@gmail.com (dhiraj patra)</author></item><item><title>ML self-service pipeline that abstracts Kubernetes complexity</title><link>http://dhirajpatra.blogspot.com/2026/08/ml-self-service-pipeline-that-abstracts.html</link><category>gpu</category><category>kubernetes</category><category>mlops</category><pubDate>Mon, 10 Aug 2026 08:19:45 -0700</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8993867651193907565.post-5833307942319390168</guid><description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div&gt;&lt;span&gt;To successfully bridge the gap between machine learning engineering and cluster operations, you need to &lt;span style="background: #D3E3FD; font-weight: bold;"&gt;build a self-service pipeline that abstracts Kubernetes complexity&lt;/span&gt;. The goal is to let ML practitioners provision GPUs and scale workloads using simple configurations, while Operations maintains guardrails around costs and resources.&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;span data-di="" style="font-size: 11pt;"&gt;&lt;br style="line-height: 11pt;" /&gt;&lt;/span&gt;&lt;/p&gt;&lt;div&gt;&lt;span&gt;Here is the operational blueprint to build, scale, and operationalize your ML-focused Kubernetes platform. &lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;span data-di="" style="font-size: 11pt;"&gt;&lt;br style="line-height: 11pt;" /&gt;&lt;/span&gt;&lt;/p&gt;&lt;div&gt;&lt;span&gt;1. Provision the ML Development Cluster &lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;span data-di="" style="font-size: 11pt;"&gt;&lt;br style="line-height: 11pt;" /&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="font-size: 13pt; font-weight: bold; margin-bottom: 11pt;"&gt;&lt;span&gt;Setting up a dedicated ML development cluster requires integrating hardware acceleration into the Kubernetes control plane from day one. &lt;/span&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;span&gt;&lt;span style="font-weight: bold;"&gt;Select the Infrastructure:&lt;/span&gt; Use cloud-managed services (AWS EKS, GCP GKE, or Azure AKS) for stable control planes and automated node OS provisioning. &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;span style="font-weight: bold;"&gt;Install GPU Drivers:&lt;/span&gt; Deploy the &lt;span style="font-weight: bold;"&gt;NVIDIA GPU Operator&lt;/span&gt; via Helm. This automatically manages the NVIDIA driver, container toolkit, and device plug-in across all GPU nodes. &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;span style="font-weight: bold;"&gt;Configure Node Pools:&lt;/span&gt; Create distinct, labeled node groups. &lt;/span&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;span&gt;&lt;span style="font-weight: bold;"&gt;CPU Pool:&lt;/span&gt; For the cluster control plane, core services, and light tooling (e.g., ). &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;span style="font-weight: bold;"&gt;GPU Pool:&lt;/span&gt; For training and inference (e.g.,  or ).&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;span&gt;&lt;span style="font-weight: bold;"&gt;Apply Taints and Labels:&lt;/span&gt; Prevent non-ML workloads from scheduling on expensive GPU hardware. &lt;/span&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;span&gt;Add taint:  &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;Add label:&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;div&gt;&lt;span&gt;2. Implement Automated GPU Provisioning &lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;span data-di="" style="font-size: 11pt;"&gt;&lt;br style="line-height: 11pt;" /&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="font-size: 13pt; font-weight: bold; margin-bottom: 11pt;"&gt;&lt;span&gt;ML workloads have highly variable resource demands. Standard scaling is too slow; you need just-in-time provisioning. &lt;/span&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;span&gt;&lt;span style="font-weight: bold;"&gt;Deploy Karpenter:&lt;/span&gt; Replace the standard Cluster Autoscaler with &lt;span style="font-weight: bold;"&gt;Karpenter&lt;/span&gt;. It evaluates pending pods and launches the optimal EC2/Compute instance type in seconds. &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;span style="font-weight: bold;"&gt;Define NodePools:&lt;/span&gt; Configure Karpenter to recognize ML constraints. Set limits on maximum cloud spend and allowed instance types. &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;span style="font-weight: bold;"&gt;Enable Multi-Instance GPU (MIG):&lt;/span&gt; For dev workloads, split large physical GPUs (like A100s) into smaller, isolated instances. This allows multiple practitioners to share a single card for light experimentation. &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;span style="font-weight: bold;"&gt;Enforce Resource Quotas:&lt;/span&gt; Implement Kubernetes  and  per namespace. This ensures a single user cannot accidentally spin up 50 GPU instances and drain the budget.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;span&gt;3. Enable Dynamic Autoscaling for ML Workloads &lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;span data-di="" style="font-size: 11pt;"&gt;&lt;br style="line-height: 11pt;" /&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="font-size: 13pt; font-weight: bold; margin-bottom: 11pt;"&gt;&lt;span&gt;ML workloads require scaling based on real-time metrics like GPU utilization or API request queues, rather than standard CPU/Memory metrics. &lt;/span&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;span&gt;&lt;span style="font-weight: bold;"&gt;Deploy KEDA (Kubernetes Event-driven Autoscaling):&lt;/span&gt; KEDA extends the Horizontal Pod Autoscaler (HPA) to scale workloads based on external metrics. &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;span style="font-weight: bold;"&gt;Inference Autoscaling:&lt;/span&gt; Configure KEDA to monitor your ingress controller or a message broker (like RabbitMQ/Kafka). Scale the model serving pods based on &lt;span style="font-weight: bold;"&gt;concurrent request volume&lt;/span&gt; or &lt;span&gt;&lt;span style="font-weight: bold;"&gt;queue length&lt;/span&gt;.&lt;/span&gt; &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;span style="font-weight: bold;"&gt;Training Autoscaling:&lt;/span&gt; For distributed training, use the &lt;span style="font-weight: bold;"&gt;Training Operator (Kubeflow)&lt;/span&gt;. It orchestrates PyTorch or TensorFlow jobs, dynamically scaling worker pods up for the job and tearing them down immediately upon completion. &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;span style="font-weight: bold;"&gt;Scale-to-Zero:&lt;/span&gt; Configure KEDA to scale inference models down to &lt;span style="font-weight: bold;"&gt;0 replicas&lt;/span&gt; during off-hours if no requests are received, eliminating idle GPU costs.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;span&gt;4. Create the Self-Service Interface &lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;span data-di="" style="font-size: 11pt;"&gt;&lt;br style="line-height: 11pt;" /&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="font-size: 13pt; font-weight: bold; margin-bottom: 11pt;"&gt;&lt;span&gt;ML practitioners should not write raw Kubernetes YAML. Abstract the infrastructure into familiar interfaces. &lt;/span&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;span&gt;&lt;span style="font-weight: bold;"&gt;Standardize with Helm/Kustomize:&lt;/span&gt; Create internal charts for standard ML patterns (e.g., "Jupyter Notebook Dev Environment" or "Triton Model Server Deployment"). &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;span style="font-weight: bold;"&gt;Expose User Interfaces:&lt;/span&gt; &lt;/span&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;span&gt;&lt;span style="font-weight: bold;"&gt;Kubeflow / OpenDataHub:&lt;/span&gt; Provide a centralized dashboard where users can click a button to launch a Jupyter, VS Code, or RStudio instance backed by a requested number of GPUs. &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;span style="font-weight: bold;"&gt;Internal CLI/Internal Developer Portal (Backstage):&lt;/span&gt; Allow practitioners to deploy a model to production by filling out a simple form specifying only the model registry path and required GPU memory.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;span&gt;&lt;span style="font-weight: bold;"&gt;Simplify the Pod Spec:&lt;/span&gt; Users should only need to add a simple  block and a toleration to their configuration: &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;span&gt;5. Establish Production Guardrails and Observability &lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;span data-di="" style="font-size: 11pt;"&gt;&lt;br style="line-height: 11pt;" /&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="font-size: 13pt; font-weight: bold; margin-bottom: 11pt;"&gt;&lt;span&gt;Moving from dev to GPU-backed production requires strict monitoring and cost-attribution pipelines. &lt;/span&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;span&gt;&lt;span style="font-weight: bold;"&gt;Deploy DCGM Exporter:&lt;/span&gt; The Data Center GPU Manager (DCGM) exporter feeds hardware-level metrics (GPU temperature, VRAM usage, SM utilization) into Prometheus. &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;span style="font-weight: bold;"&gt;Set Up Cost Allocation:&lt;/span&gt; Deploy &lt;span style="font-weight: bold;"&gt;KubeCost&lt;/span&gt;. Tag namespaces by team, project, or individual practitioner to track exactly who is driving cloud spend. &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;span style="font-weight: bold;"&gt;Configure Spot Instances:&lt;/span&gt; Train Karpenter to use &lt;span style="font-weight: bold;"&gt;Spot GPUs&lt;/span&gt; for fault-tolerant, interruptible training jobs, reducing compute costs by up to 70%. Use On-Demand GPUs strictly for production inference. &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;span style="font-weight: bold;"&gt;Implement Progressive Delivery:&lt;/span&gt; Use a service mesh (like Istio) or advanced ingress (like Argo Rollouts) to perform Canary deployments for new models, ensuring traffic is split safely before shifting full volume to new GPU pods.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="font-size: 13pt; font-weight: bold; margin-bottom: 11pt;"&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-size: 13pt; font-weight: bold; margin-bottom: 11pt;"&gt;&lt;span&gt;To align this setup perfectly with your current workflow:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;To build this self-service machine learning platform on Azure, you will use &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="d3HNPd_1" style="font-weight: bold;"&gt;Azure Kubernetes Service (AKS)&lt;/span&gt;, the &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="d3HNPd_2" style="font-weight: bold;"&gt;NVIDIA GPU Operator&lt;/span&gt;, &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="d3HNPd_3" style="font-weight: bold;"&gt;Karpenter&lt;/span&gt; (now natively supported on AKS via the Node Auto-Provisioning provider), and &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="d3HNPd_4" style="font-weight: bold;"&gt;KEDA&lt;/span&gt;.&lt;/div&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="xUgpab#A1M9vc" jsuid="d3HNPd_5" style="margin: 16px 0px; overflow-wrap: break-word;"&gt;Here is the turnkey deployment blueprint, complete with configurations that abstract infrastructure management away from your ML practitioners.&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;hr data-sfc-pl="|||[]" data-sfc-root="ep" jsaction="" jscontroller="zJhOJc#fwBjOe" jsuid="d3HNPd_6" style="border-color: rgb(220, 223, 229) currentcolor currentcolor; border-image: none; border-style: solid none none; border-width: 1px 0px 0px; height: 1px;" /&gt;&lt;h2 data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="gjwZNd#ZxCkTb" jsuid="d3HNPd_7" role="heading" style="font-size: 20px;"&gt;1. Configure the Infrastructure (Operations Setup)&lt;!--TgQPHd|||[]--&gt;&lt;/h2&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="xUgpab#A1M9vc" jsuid="d3HNPd_8" style="margin: 16px 0px; overflow-wrap: break-word;"&gt;Operations must first provision an AKS cluster configured for automated node generation and GPU drivers.&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;h2 data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="gjwZNd#ZxCkTb" jsuid="d3HNPd_9" role="heading" style="font-size: 16px;"&gt;Install the NVIDIA GPU Operator via Helm&lt;!--TgQPHd|||[]--&gt;&lt;/h2&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="xUgpab#A1M9vc" jsuid="d3HNPd_a" style="margin: 16px 0px; overflow-wrap: break-word;"&gt;Run this command to handle automated driver installation, container toolkit setup, and health monitoring across any GPU instances AKS spins up:&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="rxoZB#M4fm4d" jsuid="d3HNPd_b" style="background-color: #f4f6f7; display: flex; gap: 16px; overflow-x: auto; padding: 16px;"&gt;&lt;pre style="margin: 0; overflow: auto hidden;"&gt;&lt;code class="language-bash"&gt;helm repo add nvidia https://github.io
helm repo update
helm install gpu-operator nvidia/gpu-operator \
  --namespace gpu-operator \
  --create-namespace \
  --&lt;span style="color: #9334e6;"&gt;set&lt;/span&gt; driver.enabled=true
&lt;/code&gt;&lt;/pre&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;h2 data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="gjwZNd#ZxCkTb" jsuid="d3HNPd_c" role="heading" style="font-size: 16px;"&gt;Define the Karpenter NodePool (&lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="d3HNPd_d" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid #f4f6f7; padding: 2px 4px;"&gt;nodepool.yaml&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt;)&lt;!--TgQPHd|||[]--&gt;&lt;/h2&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="xUgpab#A1M9vc" jsuid="d3HNPd_e" style="margin: 16px 0px; overflow-wrap: break-word;"&gt;This configuration enables automated, just-in-time GPU node provisioning on Azure. It allows your cluster to dynamically spin up &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="d3HNPd_f" style="font-weight: bold;"&gt;Standard_NCs_v3&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; (NVIDIA V100) or &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="d3HNPd_g" style="font-weight: bold;"&gt;Standard_NDs_v4&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; (NVIDIA A100) machines based solely on developer requests, utilizing lower-cost &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="d3HNPd_h" style="font-weight: bold;"&gt;Spot instances&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; with an automatic fallback to On-Demand compute.&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="rxoZB#M4fm4d" jsuid="d3HNPd_i" style="background-color: #f4f6f7; display: flex; gap: 16px; overflow-x: auto; padding: 16px;"&gt;&lt;pre style="margin: 0; overflow: auto hidden;"&gt;&lt;code class="language-yaml"&gt;&lt;span style="color: #b45908;"&gt;apiVersion&lt;/span&gt;: karpenter.sh/v1beta1
&lt;span style="color: #b45908;"&gt;kind&lt;/span&gt;: NodePool
&lt;span style="color: #b45908;"&gt;metadata&lt;/span&gt;:
  &lt;span style="color: #b45908;"&gt;name&lt;/span&gt;: ml-gpu-pool
&lt;span style="color: #b45908;"&gt;spec&lt;/span&gt;:
  &lt;span style="color: #b45908;"&gt;template&lt;/span&gt;:
    &lt;span style="color: #b45908;"&gt;metadata&lt;/span&gt;:
      &lt;span style="color: #b45908;"&gt;labels&lt;/span&gt;:
        &lt;span style="color: #b45908;"&gt;tier&lt;/span&gt;: machine-learning
        &lt;span style="color: #b45908;"&gt;accelerator&lt;/span&gt;: nvidia-gpu
    &lt;span style="color: #b45908;"&gt;spec&lt;/span&gt;:
      &lt;span style="color: #b45908;"&gt;requirements&lt;/span&gt;:
        - &lt;span style="color: #b45908;"&gt;key&lt;/span&gt;: karpenter.sh/capacity-type
          &lt;span style="color: #b45908;"&gt;operator&lt;/span&gt;: In
          &lt;span style="color: #b45908;"&gt;values&lt;/span&gt;: [&lt;span style="color: #188038;"&gt;"spot"&lt;/span&gt;, &lt;span style="color: #188038;"&gt;"on-demand"&lt;/span&gt;]
        - &lt;span style="color: #b45908;"&gt;key&lt;/span&gt;: kubernetes.io/arch
          &lt;span style="color: #b45908;"&gt;operator&lt;/span&gt;: In
          &lt;span style="color: #b45908;"&gt;values&lt;/span&gt;: [&lt;span style="color: #188038;"&gt;"amd64"&lt;/span&gt;]
        - &lt;span style="color: #b45908;"&gt;key&lt;/span&gt;: node.kubernetes.io/instance-type
          &lt;span style="color: #b45908;"&gt;operator&lt;/span&gt;: In
          &lt;span style="color: #b45908;"&gt;values&lt;/span&gt;: [&lt;span style="color: #188038;"&gt;"Standard_NC6s_v3"&lt;/span&gt;, &lt;span style="color: #188038;"&gt;"Standard_NC12s_v3"&lt;/span&gt;, &lt;span style="color: #188038;"&gt;"Standard_ND96asr_v4"&lt;/span&gt;]
      &lt;span style="color: #b45908;"&gt;taints&lt;/span&gt;:
        - &lt;span style="color: #b45908;"&gt;key&lt;/span&gt;: ://nvidia.com
          &lt;span style="color: #b45908;"&gt;operator&lt;/span&gt;: Exists
          &lt;span style="color: #b45908;"&gt;effect&lt;/span&gt;: NoSchedule
  &lt;span style="color: #b45908;"&gt;limits&lt;/span&gt;:
    &lt;span style="color: #b45908;"&gt;cpu&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"1000"&lt;/span&gt;
    &lt;span style="color: #b45908;"&gt;memory&lt;/span&gt;: &lt;span style="color: #b45908;"&gt;4000&lt;/span&gt;Gi
  &lt;span style="color: #b45908;"&gt;disruption&lt;/span&gt;:
    &lt;span style="color: #b45908;"&gt;consolidationPolicy&lt;/span&gt;: WhenUnderutilized
    &lt;span style="color: #b45908;"&gt;expireAfter&lt;/span&gt;: &lt;span style="color: #b45908;"&gt;720&lt;/span&gt;h
&lt;/code&gt;&lt;/pre&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;hr data-sfc-pl="|||[]" data-sfc-root="ep" jsaction="" jscontroller="zJhOJc#fwBjOe" jsuid="d3HNPd_j" style="border-color: rgb(220, 223, 229) currentcolor currentcolor; border-image: none; border-style: solid none none; border-width: 1px 0px 0px; height: 1px;" /&gt;&lt;h2 data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="gjwZNd#ZxCkTb" jsuid="d3HNPd_k" role="heading" style="font-size: 20px;"&gt;2. Implement Dynamic Metrics Scaling (KEDA)&lt;!--TgQPHd|||[]--&gt;&lt;/h2&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="xUgpab#A1M9vc" jsuid="d3HNPd_l" style="margin: 16px 0px; overflow-wrap: break-word;"&gt;ML workloads are rarely constrained by traditional CPU or Memory limits; traffic concurrency and GPU memory are the true scale metrics. Use this &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="d3HNPd_m" style="font-weight: bold;"&gt;KEDA ScaledObject&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; to monitor your model endpoint and automatically scale your inference pods to zero during periods of inactivity.&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;h2 data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="gjwZNd#ZxCkTb" jsuid="d3HNPd_n" role="heading" style="font-size: 16px;"&gt;Create the KEDA Scaler (&lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="d3HNPd_o" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid #f4f6f7; padding: 2px 4px;"&gt;keda-scaler.yaml&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt;)&lt;!--TgQPHd|||[]--&gt;&lt;/h2&gt;&lt;div data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="rxoZB#M4fm4d" jsuid="d3HNPd_p" style="background-color: #f4f6f7; display: flex; gap: 16px; overflow-x: auto; padding: 16px;"&gt;&lt;pre style="margin: 0; overflow: auto hidden;"&gt;&lt;code class="language-yaml"&gt;&lt;span style="color: #b45908;"&gt;apiVersion&lt;/span&gt;: keda.sh/v1alpha1
&lt;span style="color: #b45908;"&gt;kind&lt;/span&gt;: ScaledObject
&lt;span style="color: #b45908;"&gt;metadata&lt;/span&gt;:
  &lt;span style="color: #b45908;"&gt;name&lt;/span&gt;: ml-model-scaler
  &lt;span style="color: #b45908;"&gt;namespace&lt;/span&gt;: ml-workloads
&lt;span style="color: #b45908;"&gt;spec&lt;/span&gt;:
  &lt;span style="color: #b45908;"&gt;scaleTargetRef&lt;/span&gt;:
    &lt;span style="color: #b45908;"&gt;apiVersion&lt;/span&gt;: apps/v1
    &lt;span style="color: #b45908;"&gt;kind&lt;/span&gt;: Deployment
    &lt;span style="color: #b45908;"&gt;name&lt;/span&gt;: vllm-inference-service
  &lt;span style="color: #b45908;"&gt;minReplicaCount&lt;/span&gt;: &lt;span style="color: #b45908;"&gt;0&lt;/span&gt;  &lt;span style="color: #80868b; font-style: italic;"&gt;# Enables scale-to-zero to save Azure costs&lt;/span&gt;
  &lt;span style="color: #b45908;"&gt;maxReplicaCount&lt;/span&gt;: &lt;span style="color: #b45908;"&gt;5&lt;/span&gt;
  &lt;span style="color: #b45908;"&gt;cooldownPeriod&lt;/span&gt;: &lt;span style="color: #b45908;"&gt;300&lt;/span&gt; &lt;span style="color: #80868b; font-style: italic;"&gt;# Wait 5 minutes before spinning down nodes&lt;/span&gt;
  &lt;span style="color: #b45908;"&gt;triggers&lt;/span&gt;:
    - &lt;span style="color: #b45908;"&gt;type&lt;/span&gt;: prometheus
      &lt;span style="color: #b45908;"&gt;metadata&lt;/span&gt;:
        &lt;span style="color: #b45908;"&gt;serverAddress&lt;/span&gt;: &lt;span style="color: #b45908;"&gt;http&lt;/span&gt;://cluster.local
        &lt;span style="color: #80868b; font-style: italic;"&gt;# Scales based on concurrent requests processing inside your serving framework&lt;/span&gt;
        &lt;span style="color: #b45908;"&gt;metricName&lt;/span&gt;: vllm_num_requests_waiting
        &lt;span style="color: #b45908;"&gt;threshold&lt;/span&gt;: &lt;span style="color: #188038;"&gt;'5'&lt;/span&gt;
        &lt;span style="color: #b45908;"&gt;query&lt;/span&gt;: sum(vllm_num_requests_waiting)
&lt;/code&gt;&lt;/pre&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;hr data-sfc-pl="|||[]" data-sfc-root="ep" jsaction="" jscontroller="zJhOJc#fwBjOe" jsuid="d3HNPd_q" style="border-color: rgb(220, 223, 229) currentcolor currentcolor; border-image: none; border-style: solid none none; border-width: 1px 0px 0px; height: 1px;" /&gt;&lt;h2 data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="gjwZNd#ZxCkTb" jsuid="d3HNPd_r" role="heading" style="font-size: 20px;"&gt;3. Build the Self-Service Interface (Developer Templates)&lt;!--TgQPHd|||[]--&gt;&lt;/h2&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="xUgpab#A1M9vc" jsuid="d3HNPd_s" style="margin: 16px 0px; overflow-wrap: break-word;"&gt;ML engineers should only interacting with high-level configurations. Package the infrastructure complexity into a standardized template.&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;h2 data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="gjwZNd#ZxCkTb" jsuid="d3HNPd_t" role="heading" style="font-size: 16px;"&gt;The Simplified Developer Manifest (&lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="d3HNPd_u" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid #f4f6f7; padding: 2px 4px;"&gt;deployment.yaml&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt;)&lt;!--TgQPHd|||[]--&gt;&lt;/h2&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="xUgpab#A1M9vc" jsuid="d3HNPd_v" style="margin: 16px 0px; overflow-wrap: break-word;"&gt;To deploy a model, an ML practitioner only needs to fill out this streamlined schema. Karpenter reads the &lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="d3HNPd_w" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid #f4f6f7; padding: 2px 4px;"&gt;resources.limits&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt; and &lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="d3HNPd_x" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid #f4f6f7; padding: 2px 4px;"&gt;tolerations&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt; blocks, calls Azure APIs, creates the appropriate virtual machine, hooks up the drivers, and schedules the job with zero operational friction.&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="rxoZB#M4fm4d" jsuid="d3HNPd_y" style="background-color: #f4f6f7; display: flex; gap: 16px; overflow-x: auto; padding: 16px;"&gt;&lt;pre style="margin: 0; overflow: auto hidden;"&gt;&lt;code class="language-yaml"&gt;&lt;span style="color: #b45908;"&gt;apiVersion&lt;/span&gt;: apps/v1
&lt;span style="color: #b45908;"&gt;kind&lt;/span&gt;: Deployment
&lt;span style="color: #b45908;"&gt;metadata&lt;/span&gt;:
  &lt;span style="color: #b45908;"&gt;name&lt;/span&gt;: vllm-inference-service
  &lt;span style="color: #b45908;"&gt;namespace&lt;/span&gt;: ml-workloads
&lt;span style="color: #b45908;"&gt;spec&lt;/span&gt;:
  &lt;span style="color: #b45908;"&gt;replicas&lt;/span&gt;: &lt;span style="color: #b45908;"&gt;1&lt;/span&gt;
  &lt;span style="color: #b45908;"&gt;selector&lt;/span&gt;:
    &lt;span style="color: #b45908;"&gt;matchLabels&lt;/span&gt;:
      &lt;span style="color: #b45908;"&gt;app&lt;/span&gt;: llama-3-inference
  &lt;span style="color: #b45908;"&gt;template&lt;/span&gt;:
    &lt;span style="color: #b45908;"&gt;metadata&lt;/span&gt;:
      &lt;span style="color: #b45908;"&gt;labels&lt;/span&gt;:
        &lt;span style="color: #b45908;"&gt;app&lt;/span&gt;: llama-3-inference
    &lt;span style="color: #b45908;"&gt;spec&lt;/span&gt;:
      &lt;span style="color: #b45908;"&gt;tolerations&lt;/span&gt;:
        - &lt;span style="color: #b45908;"&gt;key&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"://nvidia.com"&lt;/span&gt;
          &lt;span style="color: #b45908;"&gt;operator&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"Exists"&lt;/span&gt;
          &lt;span style="color: #b45908;"&gt;effect&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"NoSchedule"&lt;/span&gt;
      &lt;span style="color: #b45908;"&gt;containers&lt;/span&gt;:
        - &lt;span style="color: #b45908;"&gt;name&lt;/span&gt;: engine
          &lt;span style="color: #b45908;"&gt;image&lt;/span&gt;: &lt;span style="color: #b45908;"&gt;vllm/vllm-openai&lt;/span&gt;:latest
          &lt;span style="color: #b45908;"&gt;args&lt;/span&gt;: [&lt;span style="color: #188038;"&gt;"--model"&lt;/span&gt;, &lt;span style="color: #188038;"&gt;"meta-llama/Meta-Llama-3-8B-Instruct"&lt;/span&gt;]
          &lt;span style="color: #b45908;"&gt;env&lt;/span&gt;:
            - &lt;span style="color: #b45908;"&gt;name&lt;/span&gt;: HUGGING_FACE_HUB_TOKEN
              &lt;span style="color: #b45908;"&gt;valueFrom&lt;/span&gt;:
                &lt;span style="color: #b45908;"&gt;secretKeyRef&lt;/span&gt;:
                  &lt;span style="color: #b45908;"&gt;name&lt;/span&gt;: hf-token
                  &lt;span style="color: #b45908;"&gt;key&lt;/span&gt;: token
          &lt;span style="color: #b45908;"&gt;ports&lt;/span&gt;:
            - &lt;span style="color: #b45908;"&gt;containerPort&lt;/span&gt;: &lt;span style="color: #b45908;"&gt;8000&lt;/span&gt;
          &lt;span style="color: #b45908;"&gt;resources&lt;/span&gt;:
            &lt;span style="color: #b45908;"&gt;requests&lt;/span&gt;:
              &lt;span style="color: #b45908;"&gt;cpu&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"4"&lt;/span&gt;
              &lt;span style="color: #b45908;"&gt;memory&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"16Gi"&lt;/span&gt;
              :&lt;span style="color: #b45908;"&gt;//nvidia.com&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"1"&lt;/span&gt; &lt;span style="color: #80868b; font-style: italic;"&gt;# Operations setup triggers Karpenter node provisioning here&lt;/span&gt;
            &lt;span style="color: #b45908;"&gt;limits&lt;/span&gt;:
              &lt;span style="color: #b45908;"&gt;cpu&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"8"&lt;/span&gt;
              &lt;span style="color: #b45908;"&gt;memory&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"32Gi"&lt;/span&gt;
              :&lt;span style="color: #b45908;"&gt;//nvidia.com&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"1"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;hr data-sfc-pl="|||[]" data-sfc-root="ep" jsaction="" jscontroller="zJhOJc#fwBjOe" jsuid="d3HNPd_z" style="border-color: rgb(220, 223, 229) currentcolor currentcolor; border-image: none; border-style: solid none none; border-width: 1px 0px 0px; height: 1px;" /&gt;&lt;h2 data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="gjwZNd#ZxCkTb" jsuid="d3HNPd_10" role="heading" style="font-size: 20px;"&gt;4. Establish Operational Guardrails&lt;!--TgQPHd|||[]--&gt;&lt;/h2&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="xUgpab#A1M9vc" jsuid="d3HNPd_11" style="margin: 16px 0px; overflow-wrap: break-word;"&gt;To prevent run-away expenditure on expensive GPU clusters, enforce hard walls at the namespace level.&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;h2 data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="gjwZNd#ZxCkTb" jsuid="d3HNPd_12" role="heading" style="font-size: 16px;"&gt;ResourceQuota Guardrail (&lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="d3HNPd_13" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid #f4f6f7; padding: 2px 4px;"&gt;quota.yaml&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt;)&lt;!--TgQPHd|||[]--&gt;&lt;/h2&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="xUgpab#A1M9vc" jsuid="d3HNPd_14" style="margin: 16px 0px; overflow-wrap: break-word;"&gt;Apply this file to individual team namespaces to ensure a single experiment cannot accidentally exceed your organization's budget allocations.&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="rxoZB#M4fm4d" jsuid="d3HNPd_15" style="background-color: #f4f6f7; display: flex; gap: 16px; overflow-x: auto; padding: 16px;"&gt;&lt;pre style="margin: 0; overflow: auto hidden;"&gt;&lt;code class="language-yaml"&gt;&lt;span style="color: #b45908;"&gt;apiVersion&lt;/span&gt;: v1
&lt;span style="color: #b45908;"&gt;kind&lt;/span&gt;: ResourceQuota
&lt;span style="color: #b45908;"&gt;metadata&lt;/span&gt;:
  &lt;span style="color: #b45908;"&gt;name&lt;/span&gt;: team-alpha-gpu-limit
  &lt;span style="color: #b45908;"&gt;namespace&lt;/span&gt;: ml-workloads
&lt;span style="color: #b45908;"&gt;spec&lt;/span&gt;:
  &lt;span style="color: #b45908;"&gt;hard&lt;/span&gt;:
    :&lt;span style="color: #b45908;"&gt;//nvidia.com&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"4"&lt;/span&gt; &lt;span style="color: #80868b; font-style: italic;"&gt;# Limits the team to a maximum of 4 concurrent GPUs&lt;/span&gt;
    :&lt;span style="color: #b45908;"&gt;//nvidia.com&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"4"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;hr data-sfc-pl="|||[]" data-sfc-root="ep" jsaction="" jscontroller="zJhOJc#fwBjOe" jsuid="d3HNPd_16" style="border-color: rgb(220, 223, 229) currentcolor currentcolor; border-image: none; border-style: solid none none; border-width: 1px 0px 0px; height: 1px;" /&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="xUgpab#A1M9vc" jsuid="d3HNPd_17" style="margin: 16px 0px; overflow-wrap: break-word;"&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="xUgpab#A1M9vc" jsuid="wbeiFd_0" style="margin: 16px 0px; overflow-wrap: break-word;"&gt;To support &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="wbeiFd_1" style="font-weight: bold;"&gt;Triton Inference Server&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; on your self-service Azure platform, you need to structure your deployment to handle multi-model repositories, optimize model loading from Azure Blob Storage, and track Triton-specific performance metrics for autoscaling.&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="xUgpab#A1M9vc" jsuid="wbeiFd_2" style="margin: 16px 0px; overflow-wrap: break-word;"&gt;Here is the production-ready implementation blueprint for both Operations and ML practitioners.&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;hr data-sfc-pl="|||[]" data-sfc-root="ep" jsaction="" jscontroller="zJhOJc#fwBjOe" jsuid="wbeiFd_3" style="border-color: rgb(220, 223, 229) currentcolor currentcolor; border-image: none; border-style: solid none none; border-width: 1px 0px 0px; height: 1px;" /&gt;&lt;h2 data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="gjwZNd#ZxCkTb" jsuid="wbeiFd_4" role="heading" style="font-size: 20px;"&gt;1. Configure the Infrastructure (Operations Setup)&lt;!--TgQPHd|||[]--&gt;&lt;/h2&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="xUgpab#A1M9vc" jsuid="wbeiFd_5" style="margin: 16px 0px; overflow-wrap: break-word;"&gt;Operations must ensure that Triton pods can securely access your model registry in Azure Blob Storage without hardcoding static credentials.&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;h2 data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="gjwZNd#ZxCkTb" jsuid="wbeiFd_6" role="heading" style="font-size: 20px;"&gt;Step A: Configure Managed Identity for Blob Storage&lt;!--TgQPHd|||[]--&gt;&lt;/h2&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="xUgpab#A1M9vc" jsuid="wbeiFd_7" style="margin: 16px 0px; overflow-wrap: break-word;"&gt;Use &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="wbeiFd_8" style="font-weight: bold;"&gt;Azure Workload Identity&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; to map a Kubernetes ServiceAccount directly to an Azure User-Assigned Managed Identity. This identity must have at least &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="wbeiFd_9" style="font-weight: bold;"&gt;Storage Blob Data Reader&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; permissions on your Triton model repository container.&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="rxoZB#M4fm4d" jsuid="wbeiFd_a" style="background-color: #f4f6f7; display: flex; gap: 16px; overflow-x: auto; padding: 16px;"&gt;&lt;pre style="margin: 0; overflow: auto hidden;"&gt;&lt;code class="language-yaml"&gt;&lt;span style="color: #b45908;"&gt;apiVersion&lt;/span&gt;: v1
&lt;span style="color: #b45908;"&gt;kind&lt;/span&gt;: ServiceAccount
&lt;span style="color: #b45908;"&gt;metadata&lt;/span&gt;:
  &lt;span style="color: #b45908;"&gt;name&lt;/span&gt;: triton-storage-sa
  &lt;span style="color: #b45908;"&gt;namespace&lt;/span&gt;: ml-workloads
  &lt;span style="color: #b45908;"&gt;annotations&lt;/span&gt;:
    &lt;span style="color: #b45908;"&gt;azure.workload.identity/client-id&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"00000000-0000-0000-0000-000000000000"&lt;/span&gt; &lt;span style="color: #80868b; font-style: italic;"&gt;# Your Azure Managed Identity Client ID&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;hr data-sfc-pl="|||[]" data-sfc-root="ep" jsaction="" jscontroller="zJhOJc#fwBjOe" jsuid="wbeiFd_b" style="border-color: rgb(220, 223, 229) currentcolor currentcolor; border-image: none; border-style: solid none none; border-width: 1px 0px 0px; height: 1px;" /&gt;&lt;h2 data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="gjwZNd#ZxCkTb" jsuid="wbeiFd_c" role="heading" style="font-size: 20px;"&gt;2. Dynamic Metric Scaling (KEDA Configuration)&lt;!--TgQPHd|||[]--&gt;&lt;/h2&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="xUgpab#A1M9vc" jsuid="wbeiFd_d" style="margin: 16px 0px; overflow-wrap: break-word;"&gt;Triton exposes dense execution metrics. Instead of relying on crude request counts, we scale based on Triton’s &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="wbeiFd_e" style="font-weight: bold;"&gt;Queue Time&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; (&lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="wbeiFd_f" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid #f4f6f7; padding: 2px 4px;"&gt;nv_inference_queue_duration_us&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt;). If requests are sitting in the queue waiting for a GPU engine execution slot, KEDA will instantly trigger Karpenter to provision more hardware.&lt;span data-sfc-root="ep" jsaction="" jscontroller="gWOIub#gnsrYb" jsuid="wbeiFd_g"&gt; [1] &lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;h2 data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="gjwZNd#ZxCkTb" jsuid="wbeiFd_h" role="heading" style="font-size: 20px;"&gt;The Triton KEDA Scaler (&lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="wbeiFd_i" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid #f4f6f7; padding: 2px 4px;"&gt;triton-scaler.yaml&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt;)&lt;!--TgQPHd|||[]--&gt;&lt;/h2&gt;&lt;div data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="rxoZB#M4fm4d" jsuid="wbeiFd_j" style="background-color: #f4f6f7; display: flex; gap: 16px; overflow-x: auto; padding: 16px;"&gt;&lt;pre style="margin: 0; overflow: auto hidden;"&gt;&lt;code class="language-yaml"&gt;&lt;span style="color: #b45908;"&gt;apiVersion&lt;/span&gt;: keda.sh/v1alpha1
&lt;span style="color: #b45908;"&gt;kind&lt;/span&gt;: ScaledObject
&lt;span style="color: #b45908;"&gt;metadata&lt;/span&gt;:
  &lt;span style="color: #b45908;"&gt;name&lt;/span&gt;: triton-autoscaler
  &lt;span style="color: #b45908;"&gt;namespace&lt;/span&gt;: ml-workloads
&lt;span style="color: #b45908;"&gt;spec&lt;/span&gt;:
  &lt;span style="color: #b45908;"&gt;scaleTargetRef&lt;/span&gt;:
    &lt;span style="color: #b45908;"&gt;apiVersion&lt;/span&gt;: apps/v1
    &lt;span style="color: #b45908;"&gt;kind&lt;/span&gt;: Deployment
    &lt;span style="color: #b45908;"&gt;name&lt;/span&gt;: triton-inference-server
  &lt;span style="color: #b45908;"&gt;minReplicaCount&lt;/span&gt;: &lt;span style="color: #b45908;"&gt;1&lt;/span&gt;  &lt;span style="color: #80868b; font-style: italic;"&gt;# Keep 1 warm instance for production pipelines&lt;/span&gt;
  &lt;span style="color: #b45908;"&gt;maxReplicaCount&lt;/span&gt;: &lt;span style="color: #b45908;"&gt;8&lt;/span&gt;
  &lt;span style="color: #b45908;"&gt;cooldownPeriod&lt;/span&gt;: &lt;span style="color: #b45908;"&gt;600&lt;/span&gt; &lt;span style="color: #80868b; font-style: italic;"&gt;# 10 minutes to minimize GPU node thrashing&lt;/span&gt;
  &lt;span style="color: #b45908;"&gt;triggers&lt;/span&gt;:
    - &lt;span style="color: #b45908;"&gt;type&lt;/span&gt;: prometheus
      &lt;span style="color: #b45908;"&gt;metadata&lt;/span&gt;:
        &lt;span style="color: #b45908;"&gt;serverAddress&lt;/span&gt;: &lt;span style="color: #b45908;"&gt;http&lt;/span&gt;://cluster.local
        &lt;span style="color: #b45908;"&gt;metricName&lt;/span&gt;: triton_queue_delay
        &lt;span style="color: #b45908;"&gt;threshold&lt;/span&gt;: &lt;span style="color: #188038;"&gt;'20000'&lt;/span&gt; &lt;span style="color: #80868b; font-style: italic;"&gt;# Trigger scaling if avg queue delay exceeds 20 milliseconds&lt;/span&gt;
        &lt;span style="color: #b45908;"&gt;query&lt;/span&gt;: &lt;span style="color: #188038;"&gt;|
          sum(rate(nv_inference_queue_duration_us[1m])) 
          / 
          sum(rate(nv_inference_request_duration_us[1m]))
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;hr data-sfc-pl="|||[]" data-sfc-root="ep" jsaction="" jscontroller="zJhOJc#fwBjOe" jsuid="wbeiFd_k" style="border-color: rgb(220, 223, 229) currentcolor currentcolor; border-image: none; border-style: solid none none; border-width: 1px 0px 0px; height: 1px;" /&gt;&lt;h2 data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="gjwZNd#ZxCkTb" jsuid="wbeiFd_l" role="heading" style="font-size: 20px;"&gt;3. The Self-Service Interface (Developer Templates)&lt;!--TgQPHd|||[]--&gt;&lt;/h2&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="xUgpab#A1M9vc" jsuid="wbeiFd_m" style="margin: 16px 0px; overflow-wrap: break-word;"&gt;ML practitioners use this standardized blueprint to deploy their models. Triton streams the model folder directory structured layout (&lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="wbeiFd_n" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid #f4f6f7; padding: 2px 4px;"&gt;config.pbtxt&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt;, &lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="wbeiFd_o" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid #f4f6f7; padding: 2px 4px;"&gt;model.onnx&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt;, or &lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="wbeiFd_p" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid #f4f6f7; padding: 2px 4px;"&gt;model.pt&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt;) straight out of your Azure Storage account directly into GPU VRAM.&lt;span data-sfc-root="ep" jsaction="" jscontroller="gWOIub#gnsrYb" jsuid="wbeiFd_q"&gt; [2] &lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;h2 data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="gjwZNd#ZxCkTb" jsuid="wbeiFd_r" role="heading" style="font-size: 20px;"&gt;The Simplified Triton Deployment (&lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="wbeiFd_s" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid #f4f6f7; padding: 2px 4px;"&gt;triton-deployment.yaml&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt;)&lt;!--TgQPHd|||[]--&gt;&lt;/h2&gt;&lt;div data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="rxoZB#M4fm4d" jsuid="wbeiFd_t" style="background-color: #f4f6f7; display: flex; gap: 16px; overflow-x: auto; padding: 16px;"&gt;&lt;pre style="margin: 0; overflow: auto hidden;"&gt;&lt;code class="language-yaml"&gt;&lt;span style="color: #b45908;"&gt;apiVersion&lt;/span&gt;: apps/v1
&lt;span style="color: #b45908;"&gt;kind&lt;/span&gt;: Deployment
&lt;span style="color: #b45908;"&gt;metadata&lt;/span&gt;:
  &lt;span style="color: #b45908;"&gt;name&lt;/span&gt;: triton-inference-server
  &lt;span style="color: #b45908;"&gt;namespace&lt;/span&gt;: ml-workloads
  &lt;span style="color: #b45908;"&gt;labels&lt;/span&gt;:
    &lt;span style="color: #b45908;"&gt;app&lt;/span&gt;: triton-server
&lt;span style="color: #b45908;"&gt;spec&lt;/span&gt;:
  &lt;span style="color: #b45908;"&gt;replicas&lt;/span&gt;: &lt;span style="color: #b45908;"&gt;1&lt;/span&gt;
  &lt;span style="color: #b45908;"&gt;selector&lt;/span&gt;:
    &lt;span style="color: #b45908;"&gt;matchLabels&lt;/span&gt;:
      &lt;span style="color: #b45908;"&gt;app&lt;/span&gt;: triton-server
  &lt;span style="color: #b45908;"&gt;template&lt;/span&gt;:
    &lt;span style="color: #b45908;"&gt;metadata&lt;/span&gt;:
      &lt;span style="color: #b45908;"&gt;labels&lt;/span&gt;:
        &lt;span style="color: #b45908;"&gt;app&lt;/span&gt;: triton-server
        &lt;span style="color: #b45908;"&gt;azure.workload.identity/use&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"true"&lt;/span&gt; &lt;span style="color: #80868b; font-style: italic;"&gt;# Triggers the Azure Workload Identity sidecar injection&lt;/span&gt;
    &lt;span style="color: #b45908;"&gt;spec&lt;/span&gt;:
      &lt;span style="color: #b45908;"&gt;serviceAccountName&lt;/span&gt;: triton-storage-sa
      &lt;span style="color: #b45908;"&gt;tolerations&lt;/span&gt;:
        - &lt;span style="color: #b45908;"&gt;key&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"://nvidia.com"&lt;/span&gt;
          &lt;span style="color: #b45908;"&gt;operator&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"Exists"&lt;/span&gt;
          &lt;span style="color: #b45908;"&gt;effect&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"NoSchedule"&lt;/span&gt;
      &lt;span style="color: #b45908;"&gt;containers&lt;/span&gt;:
        - &lt;span style="color: #b45908;"&gt;name&lt;/span&gt;: triton-container
          &lt;span style="color: #b45908;"&gt;image&lt;/span&gt;: &lt;span style="color: #b45908;"&gt;nvcr.io/nvidia/tritonserver&lt;/span&gt;:&lt;span style="color: #b45908;"&gt;24.01&lt;/span&gt;-py3 &lt;span style="color: #80868b; font-style: italic;"&gt;# Updated stable Triton runtime&lt;/span&gt;
          &lt;span style="color: #b45908;"&gt;args&lt;/span&gt;:
            - &lt;span style="color: #188038;"&gt;"tritonserver"&lt;/span&gt;
            &lt;span style="color: #80868b; font-style: italic;"&gt;# Triton reads natively from Azure Storage Blob via the asys:// protocol&lt;/span&gt;
            - &lt;span style="color: #188038;"&gt;"--model-repository=asys://your-storage-account.blob.core.windows.net/model-registry-container"&lt;/span&gt;
            - &lt;span style="color: #188038;"&gt;"--strict-model-config=true"&lt;/span&gt;
            - &lt;span style="color: #188038;"&gt;"--log-verbose=1"&lt;/span&gt;
          &lt;span style="color: #b45908;"&gt;ports&lt;/span&gt;:
            - &lt;span style="color: #b45908;"&gt;containerPort&lt;/span&gt;: &lt;span style="color: #b45908;"&gt;8000&lt;/span&gt;
              &lt;span style="color: #b45908;"&gt;name&lt;/span&gt;: http
            - &lt;span style="color: #b45908;"&gt;containerPort&lt;/span&gt;: &lt;span style="color: #b45908;"&gt;8001&lt;/span&gt;
              &lt;span style="color: #b45908;"&gt;name&lt;/span&gt;: grpc
            - &lt;span style="color: #b45908;"&gt;containerPort&lt;/span&gt;: &lt;span style="color: #b45908;"&gt;8002&lt;/span&gt;
              &lt;span style="color: #b45908;"&gt;name&lt;/span&gt;: metrics &lt;span style="color: #80868b; font-style: italic;"&gt;# Scraped by Prometheus to inform KEDA&lt;/span&gt;
          &lt;span style="color: #b45908;"&gt;resources&lt;/span&gt;:
            &lt;span style="color: #b45908;"&gt;requests&lt;/span&gt;:
              &lt;span style="color: #b45908;"&gt;cpu&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"4"&lt;/span&gt;
              &lt;span style="color: #b45908;"&gt;memory&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"16Gi"&lt;/span&gt;
              :&lt;span style="color: #b45908;"&gt;//nvidia.com&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"1"&lt;/span&gt; &lt;span style="color: #80868b; font-style: italic;"&gt;# Prompts Karpenter to provision an Azure GPU VM instantly&lt;/span&gt;
            &lt;span style="color: #b45908;"&gt;limits&lt;/span&gt;:
              &lt;span style="color: #b45908;"&gt;cpu&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"8"&lt;/span&gt;
              &lt;span style="color: #b45908;"&gt;memory&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"32Gi"&lt;/span&gt;
              :&lt;span style="color: #b45908;"&gt;//nvidia.com&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"1"&lt;/span&gt;
          &lt;span style="color: #b45908;"&gt;readinessProbe&lt;/span&gt;:
            &lt;span style="color: #b45908;"&gt;httpGet&lt;/span&gt;:
              &lt;span style="color: #b45908;"&gt;path&lt;/span&gt;: /v2/health/ready
              &lt;span style="color: #b45908;"&gt;port&lt;/span&gt;: &lt;span style="color: #b45908;"&gt;8000&lt;/span&gt;
            &lt;span style="color: #b45908;"&gt;initialDelaySeconds&lt;/span&gt;: &lt;span style="color: #b45908;"&gt;30&lt;/span&gt;
            &lt;span style="color: #b45908;"&gt;periodSeconds&lt;/span&gt;: &lt;span style="color: #b45908;"&gt;10&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;h2 data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="gjwZNd#ZxCkTb" jsuid="wbeiFd_u" role="heading" style="font-size: 20px;"&gt;The Accompanying Triton Service Routing (&lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="wbeiFd_v" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid #f4f6f7; padding: 2px 4px;"&gt;triton-service.yaml&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt;)&lt;!--TgQPHd|||[]--&gt;&lt;/h2&gt;&lt;div data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="rxoZB#M4fm4d" jsuid="wbeiFd_w" style="background-color: #f4f6f7; display: flex; gap: 16px; overflow-x: auto; padding: 16px;"&gt;&lt;pre style="margin: 0; overflow: auto hidden;"&gt;&lt;code class="language-yaml"&gt;&lt;span style="color: #b45908;"&gt;apiVersion&lt;/span&gt;: v1
&lt;span style="color: #b45908;"&gt;kind&lt;/span&gt;: Service
&lt;span style="color: #b45908;"&gt;metadata&lt;/span&gt;:
  &lt;span style="color: #b45908;"&gt;name&lt;/span&gt;: triton-inference-service
  &lt;span style="color: #b45908;"&gt;namespace&lt;/span&gt;: ml-workloads
  &lt;span style="color: #b45908;"&gt;labels&lt;/span&gt;:
    &lt;span style="color: #b45908;"&gt;app&lt;/span&gt;: triton-server
&lt;span style="color: #b45908;"&gt;spec&lt;/span&gt;:
  &lt;span style="color: #b45908;"&gt;ports&lt;/span&gt;:
    - &lt;span style="color: #b45908;"&gt;port&lt;/span&gt;: &lt;span style="color: #b45908;"&gt;8000&lt;/span&gt;
      &lt;span style="color: #b45908;"&gt;name&lt;/span&gt;: http
      &lt;span style="color: #b45908;"&gt;targetPort&lt;/span&gt;: &lt;span style="color: #b45908;"&gt;8000&lt;/span&gt;
    - &lt;span style="color: #b45908;"&gt;port&lt;/span&gt;: &lt;span style="color: #b45908;"&gt;8001&lt;/span&gt;
      &lt;span style="color: #b45908;"&gt;name&lt;/span&gt;: grpc
      &lt;span style="color: #b45908;"&gt;targetPort&lt;/span&gt;: &lt;span style="color: #b45908;"&gt;8001&lt;/span&gt;
    - &lt;span style="color: #b45908;"&gt;port&lt;/span&gt;: &lt;span style="color: #b45908;"&gt;8002&lt;/span&gt;
      &lt;span style="color: #b45908;"&gt;name&lt;/span&gt;: metrics
      &lt;span style="color: #b45908;"&gt;targetPort&lt;/span&gt;: &lt;span style="color: #b45908;"&gt;8002&lt;/span&gt;
  &lt;span style="color: #b45908;"&gt;selector&lt;/span&gt;:
    &lt;span style="color: #b45908;"&gt;app&lt;/span&gt;: triton-server
&lt;/code&gt;&lt;/pre&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;hr data-sfc-pl="|||[]" data-sfc-root="ep" jsaction="" jscontroller="zJhOJc#fwBjOe" jsuid="wbeiFd_x" style="border-color: rgb(220, 223, 229) currentcolor currentcolor; border-image: none; border-style: solid none none; border-width: 1px 0px 0px; height: 1px;" /&gt;&lt;h2 data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="gjwZNd#ZxCkTb" jsuid="wbeiFd_y" role="heading" style="font-size: 20px;"&gt;4. Production Optimization Guardrail: Sharing GPUs (Optional)&lt;!--TgQPHd|||[]--&gt;&lt;/h2&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="xUgpab#A1M9vc" jsuid="wbeiFd_z" style="margin: 16px 0px; overflow-wrap: break-word;"&gt;If your practitioners run multiple small Triton models (e.g., Computer Vision classification or lightweight tabular nets), assigning an entire Azure GPU to a single container is cost-prohibitive.&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="xUgpab#A1M9vc" jsuid="wbeiFd_10" style="margin: 16px 0px; overflow-wrap: break-word;"&gt;You can configure Triton to split a single GPU across multiple execution model instances directly via its &lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="wbeiFd_11" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid #f4f6f7; padding: 2px 4px;"&gt;config.pbtxt&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt; or leverage &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="wbeiFd_12" style="font-weight: bold;"&gt;MIG (Multi-Instance GPU)&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; if using &lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="wbeiFd_13" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid #f4f6f7; padding: 2px 4px;"&gt;Standard_ND96asr_v4&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt; (A100) nodes.&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="xUgpab#A1M9vc" jsuid="wbeiFd_14" style="margin: 16px 0px; overflow-wrap: break-word;"&gt;For software-level instance sharing inside Triton, direct your developers to add this snippet directly to their &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="wbeiFd_15" style="font-weight: bold;"&gt;&lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="wbeiFd_16" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid #f4f6f7; padding: 2px 4px;"&gt;config.pbtxt&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; inside their Azure Storage bucket:&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="rxoZB#M4fm4d" jsuid="wbeiFd_17" style="background-color: #f4f6f7; display: flex; gap: 16px; overflow-x: auto; padding: 16px;"&gt;&lt;pre style="margin: 0; overflow: auto hidden;"&gt;&lt;code class="language-pbtxt"&gt;# config.pbtxt snippet to maximize GPU utilization
instance_group [
  {
    count: 2  # Runs 2 concurrent instances of this model on a single assigned GPU
    kind: KIND_GPU
  }
]
&lt;/code&gt;&lt;/pre&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="xUgpab#A1M9vc" jsuid="wbeiFd_18" style="margin: 16px 0px; overflow-wrap: break-word;"&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="xUgpab#A1M9vc" jsuid="CuAZc_0" style="margin: 16px 0px; overflow-wrap: break-word;"&gt;To embed this setup into your Operations pipeline, we need to convert these requirements into structural infrastructure-as-code.&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="xUgpab#A1M9vc" jsuid="CuAZc_1" style="margin: 16px 0px; overflow-wrap: break-word;"&gt;This &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="CuAZc_2" style="font-weight: bold;"&gt;Terraform root module&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; provisions the core building blocks on Azure: it activates Azure Kubernetes Service (AKS) node auto-provisioning (Karpenter engine), configures the Azure Workload Identity infrastructure, sets up the Azure Storage Account model repository, and deploys the necessary Helm charts for Triton, KEDA, and the GPU operators.&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;h2 data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="gjwZNd#ZxCkTb" jsuid="CuAZc_3" role="heading" style="font-size: 20px;"&gt;1. Directory Architecture&lt;!--TgQPHd|||[]--&gt;&lt;/h2&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="xUgpab#A1M9vc" jsuid="CuAZc_4" style="margin: 16px 0px; overflow-wrap: break-word;"&gt;Organize your Terraform repository layout to keep infrastructure declaration clean and separated from application space.&lt;span data-sfc-root="ep" jsaction="" jscontroller="gWOIub#gnsrYb" jsuid="CuAZc_5"&gt; [1, 2, 3] &lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="rxoZB#M4fm4d" jsuid="CuAZc_6" style="background-color: #f4f6f7; display: flex; gap: 16px; overflow-x: auto; padding: 16px;"&gt;&lt;pre style="margin: 0; overflow: auto hidden;"&gt;&lt;code class="language-text"&gt;├── main.tf                 # Core cluster, identity, and storage components
├── providers.tf            # Azure, Helm, and Kubernetes provider definitions
├── variables.tf            # Input configuration variables
└── outputs.tf              # Storage links, client IDs, and cluster endpoints
&lt;/code&gt;&lt;/pre&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;h2 data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="gjwZNd#ZxCkTb" jsuid="CuAZc_7" role="heading" style="font-size: 20px;"&gt;2. Infrastructure Declaration (&lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="CuAZc_8" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid #f4f6f7; padding: 2px 4px;"&gt;main.tf&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt;)&lt;!--TgQPHd|||[]--&gt;&lt;/h2&gt;&lt;div data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="rxoZB#M4fm4d" jsuid="CuAZc_9" style="background-color: #f4f6f7; display: flex; gap: 16px; overflow-x: auto; padding: 16px;"&gt;&lt;pre style="margin: 0; overflow: auto hidden;"&gt;&lt;code class="language-hcl"&gt;# 1. Resource Group
resource "azurerm_resource_group" "ml_ops" {
  name     = var.resource_group_name
  location = var.location
}

# 2. Azure Kubernetes Service (AKS) with Node Auto-Provisioning (Karpenter)
resource "azurerm_kubernetes_cluster" "aks" {
  name                = "aks-ml-platform"
  location            = azurerm_resource_group.ml_ops.location
  resource_group_name = azurerm_resource_group.ml_ops.name
  dns_prefix          = "mlops-k8s"

  default_node_pool {
    name       = "systempool"
    node_count = 3
    vm_size    = "Standard_D4s_v5" # Cost-effective pool for core cluster overhead
  }

  identity {
    type = "SystemAssigned"
  }

  # Native Azure integration for Workload Identity &amp;amp; Open ID Connect
  oidc_issuer_enabled       = true
  workload_identity_enabled = true

  # Activates the native Azure Karpenter implementation (Node Auto-Provisioning)
  node_os_channel_upgrade = "NodeImage"
  
  # Ensure the cluster can run standard K8s scheduling optimizations
  sku_tier = "Standard"
}

# 3. Model Storage Infrastructure
resource "azurerm_storage_account" "model_registry" {
  name                     = var.storage_account_name
  resource_group_name      = azurerm_resource_group.ml_ops.name
  location                 = azurerm_resource_group.ml_ops.location
  account_tier             = "Standard"
  account_replication_type = "LRS"
}

resource "azurerm_storage_container" "models" {
  name                  = "triton-model-repository"
  storage_account_id    = azurerm_storage_account.model_registry.id
  container_access_type = "private"
}

# 4. Identity Mapping (Azure Workload Identity Setup)
resource "azurerm_user_assigned_identity" "triton_identity" {
  name                = "uai-triton-storage-reader"
  resource_group_name = azurerm_resource_group.ml_ops.name
  location            = azurerm_resource_group.ml_ops.location
}

# Give the Managed Identity read access to the storage bucket
resource "azurerm_role_assignment" "storage_reader" {
  scope                = azurerm_storage_account.model_registry.id
  role_definition_name = "Storage Blob Data Reader"
  principal_id         = azurerm_user_assigned_identity.triton_identity.principal_id
}

# Establish federated identity link between Azure and the cluster ServiceAccount
resource "azurerm_federated_identity_credential" "triton_fed_link" {
  name                = "fic-triton-sa-link"
  resource_group_name = azurerm_resource_group.ml_ops.name
  audience            = ["api://AzureADTokenExchange"]
  issuer              = azurerm_kubernetes_cluster.aks.oidc_issuer_url
  parent_id           = azurerm_user_assigned_identity.triton_identity.id
  subject             = "system:serviceaccount:ml-workloads:triton-storage-sa"
}

# 5. Helm Integrations
resource "helm_release" "gpu_operator" {
  name             = "gpu-operator"
  repository       = "https://nvidia.com"
  chart            = "gpu-operator"
  namespace        = "gpu-operator"
  create_namespace = true
  depends_on       = [azurerm_kubernetes_cluster.aks]

  set {
    name  = "driver.enabled"
    value = "true"
  }
}

resource "helm_release" "keda" {
  name             = "keda"
  repository       = "https://github.io"
  chart            = "keda"
  namespace        = "keda"
  create_namespace = true
  depends_on       = [azurerm_kubernetes_cluster.aks]
}
&lt;/code&gt;&lt;/pre&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;h2 data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="gjwZNd#ZxCkTb" jsuid="CuAZc_a" role="heading" style="font-size: 20px;"&gt;3. Providers System Config (&lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="CuAZc_b" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid #f4f6f7; padding: 2px 4px;"&gt;providers.tf&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt;)&lt;!--TgQPHd|||[]--&gt;&lt;/h2&gt;&lt;div data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="rxoZB#M4fm4d" jsuid="CuAZc_c" style="background-color: #f4f6f7; display: flex; gap: 16px; overflow-x: auto; padding: 16px;"&gt;&lt;pre style="margin: 0; overflow: auto hidden;"&gt;&lt;code class="language-hcl"&gt;terraform {
  required_version = "&amp;gt;= 1.5.0"
  required_providers {
    azurerm = {
      source  = "hashicorp/azurerm"
      version = "~&amp;gt; 4.0"
    }
    kubernetes = {
      source  = "hashicorp/kubernetes"
      version = "~&amp;gt; 2.23"
    }
    helm = {
      source  = "hashicorp/helm"
      version = "~&amp;gt; 2.11"
    }
  }
}

provider "azurerm" {
  features {}
}

provider "kubernetes" {
  host                   = azurerm_kubernetes_cluster.aks.kube_config[0].host
  client_certificate     = base64decode(azurerm_kubernetes_cluster.aks.kube_config[0].client_certificate)
  client_key             = base64decode(azurerm_kubernetes_cluster.aks.kube_config[0].client_key)
  cluster_ca_certificate = base64decode(azurerm_kubernetes_cluster.aks.kube_config[0].cluster_ca_certificate)
}

provider "helm" {
  kubernetes {
    host                   = azurerm_kubernetes_cluster.aks.kube_config[0].host
    client_certificate     = base64decode(azurerm_kubernetes_cluster.aks.kube_config[0].client_certificate)
    client_key             = base64decode(azurerm_kubernetes_cluster.aks.kube_config[0].client_key)
    cluster_ca_certificate = base64decode(azurerm_kubernetes_cluster.aks.kube_config[0].cluster_ca_certificate)
  }
}
&lt;/code&gt;&lt;/pre&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;h2 data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="gjwZNd#ZxCkTb" jsuid="CuAZc_d" role="heading" style="font-size: 20px;"&gt;4. Input Controls (&lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="CuAZc_e" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid #f4f6f7; padding: 2px 4px;"&gt;variables.tf&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt;)&lt;!--TgQPHd|||[]--&gt;&lt;/h2&gt;&lt;div data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="rxoZB#M4fm4d" jsuid="CuAZc_f" style="background-color: #f4f6f7; display: flex; gap: 16px; overflow-x: auto; padding: 16px;"&gt;&lt;pre style="margin: 0; overflow: auto hidden;"&gt;&lt;code class="language-hcl"&gt;variable "resource_group_name" {
  type        = string
  default     = "rg-mlplatform-prod"
  description = "Target infrastructure resource group"
}

variable "location" {
  type        = string
  default     = "eastus2"
  description = "Target Azure data center location (Ensure GPU SKU availability here)"
}

variable "storage_account_name" {
  type        = string
  default     = "stmlmodelregistryprod"
  description = "Unique global naming string for the Blob Storage account"
}
&lt;/code&gt;&lt;/pre&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;h2 data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="gjwZNd#ZxCkTb" jsuid="CuAZc_g" role="heading" style="font-size: 20px;"&gt;5. Deployment Lifecycle Output (&lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="CuAZc_h" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid #f4f6f7; padding: 2px 4px;"&gt;outputs.tf&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt;)&lt;!--TgQPHd|||[]--&gt;&lt;/h2&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="xUgpab#A1M9vc" jsuid="CuAZc_i" style="margin: 16px 0px; overflow-wrap: break-word;"&gt;These output parameters expose the critical connection targets needed by ML Engineers to deploy their applications.&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="rxoZB#M4fm4d" jsuid="CuAZc_j" style="background-color: #f4f6f7; display: flex; gap: 16px; overflow-x: auto; padding: 16px;"&gt;&lt;pre style="margin: 0; overflow: auto hidden;"&gt;&lt;code class="language-hcl"&gt;output "aks_cluster_name" {
  value = azurerm_kubernetes_cluster.aks.name
}

output "triton_workload_identity_client_id" {
  value       = azurerm_user_assigned_identity.triton_identity.client_id
  description = "Value to paste inside the developer's ServiceAccount annotation block"
}

output "storage_blob_endpoint" {
  value       = azurerm_storage_account.model_registry.primary_blob_endpoint
  description = "Value to paste inside Triton configuration arguments string"
}
&lt;/code&gt;&lt;/pre&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;h2 data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="gjwZNd#ZxCkTb" jsuid="CuAZc_k" role="heading" style="font-size: 20px;"&gt;Next Action Step&lt;!--TgQPHd|||[]--&gt;&lt;/h2&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="xUgpab#A1M9vc" jsuid="CuAZc_l" style="margin: 16px 0px; overflow-wrap: break-word;"&gt;Run the compilation process to instantiate your cluster control plane:&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="rxoZB#M4fm4d" jsuid="CuAZc_m" style="background-color: #f4f6f7; display: flex; gap: 16px; overflow-x: auto; padding: 16px;"&gt;&lt;pre style="margin: 0; overflow: auto hidden;"&gt;&lt;code class="language-bash"&gt;terraform init
terraform apply -auto-approve
&lt;/code&gt;&lt;/pre&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="xUgpab#A1M9vc" jsuid="CuAZc_n" style="margin: 16px 0px; overflow-wrap: break-word;"&gt;Once the terraform setup is complete, you can pass the output values to your practitioners. They can plug &lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="CuAZc_o" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid #f4f6f7; padding: 2px 4px;"&gt;triton_workload_identity_client_id&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt; and &lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="CuAZc_p" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid #f4f6f7; padding: 2px 4px;"&gt;storage_blob_endpoint&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt; directly into the templates we built previously to begin serving models.&lt;span data-sfc-root="ep" jsaction="" jscontroller="gWOIub#gnsrYb" jsuid="CuAZc_q"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="xUgpab#A1M9vc" jsuid="CuAZc_r" style="margin: 16px 0px; overflow-wrap: break-word;"&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="xUgpab#A1M9vc" jsuid="QXY53d_11" style="margin: 16px 0px; overflow-wrap: break-word;"&gt;To protect your budget and catch model degradation before it impacts users, you need alerts that target two specific areas: &lt;mark data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="CoGy3c#Gbmioe" jsuid="QXY53d_18" style="background: #D3E3FD; font-weight: bold;"&gt;&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="QXY53d_1c"&gt;infrastructure failures&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; (e.g., thermal throttling, stuck GPU drivers) and &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="QXY53d_1e"&gt;application inefficiencies&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; (e.g., models wasting VRAM or requests piling up in Triton’s queue)&lt;!--TgQPHd|||[]--&gt;&lt;/mark&gt;.&lt;span data-sfc-root="ep" jsaction="" jscontroller="gWOIub#gnsrYb" jsuid="QXY53d_1h"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="xUgpab#A1M9vc" jsuid="QXY53d_1k" style="margin: 16px 0px; overflow-wrap: break-word;"&gt;Here are the production-ready &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="QXY53d_1l" style="font-weight: bold;"&gt;PrometheusAlertmanager&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; rules, configured as a standard Kubernetes &lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="QXY53d_1o" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid #f4f6f7; padding: 2px 4px;"&gt;PrometheusRule&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt; custom resource definition (CRD).&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;h2 data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="gjwZNd#ZxCkTb" jsuid="QXY53d_1t" role="heading" style="font-size: 20px;"&gt;1. Prometheus Alerts Configuration (&lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="QXY53d_1v" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid #f4f6f7; padding: 2px 4px;"&gt;ml-gpu-alerts.yaml&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt;)&lt;!--TgQPHd|||[]--&gt;&lt;/h2&gt;&lt;div data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="rxoZB#M4fm4d" jsuid="QXY53d_78" style="background-color: #f4f6f7; display: flex; gap: 16px; overflow-x: auto; padding: 16px;"&gt;&lt;pre style="margin: 0; overflow: auto hidden;"&gt;&lt;code class="language-yaml"&gt;&lt;span style="color: #b45908;"&gt;apiVersion&lt;/span&gt;: ://coreos.com
&lt;span style="color: #b45908;"&gt;kind&lt;/span&gt;: PrometheusRule
&lt;span style="color: #b45908;"&gt;metadata&lt;/span&gt;:
  &lt;span style="color: #b45908;"&gt;name&lt;/span&gt;: Triton-gpu-alerts
  &lt;span style="color: #b45908;"&gt;namespace&lt;/span&gt;: monitoring
  &lt;span style="color: #b45908;"&gt;labels&lt;/span&gt;:
    &lt;span style="color: #b45908;"&gt;role&lt;/span&gt;: alert-rules
&lt;span style="color: #b45908;"&gt;spec&lt;/span&gt;:
  &lt;span style="color: #b45908;"&gt;groups&lt;/span&gt;:
    - &lt;span style="color: #b45908;"&gt;name&lt;/span&gt;: ML.Platform.Hardware.Alerts
      &lt;span style="color: #b45908;"&gt;rules&lt;/span&gt;:
        &lt;span style="color: #80868b; font-style: italic;"&gt;# 1. Stuck GPU Driver / Broken Hardware Detection&lt;/span&gt;
        - &lt;span style="color: #b45908;"&gt;alert&lt;/span&gt;: GpuDriverOrHardwareFailure
          &lt;span style="color: #b45908;"&gt;expr&lt;/span&gt;: dcgm_fi_driver_version == &lt;span style="color: #b45908;"&gt;0&lt;/span&gt; or count(dcgm_fi_gpu_temp) == &lt;span style="color: #b45908;"&gt;0&lt;/span&gt;
          &lt;span style="color: #b45908;"&gt;for&lt;/span&gt;: &lt;span style="color: #b45908;"&gt;2&lt;/span&gt;m
          &lt;span style="color: #b45908;"&gt;labels&lt;/span&gt;:
            &lt;span style="color: #b45908;"&gt;severity&lt;/span&gt;: critical
            &lt;span style="color: #b45908;"&gt;tier&lt;/span&gt;: ml-platform
          &lt;span style="color: #b45908;"&gt;annotations&lt;/span&gt;:
            &lt;span style="color: #b45908;"&gt;summary&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"GPU Driver or hardware failure detected on node {{ $labels.kubernetes_node }}"&lt;/span&gt;
            &lt;span style="color: #b45908;"&gt;description&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"The NVIDIA driver is reporting a crash or the card has dropped off the PCIe bus. Karpenter should replace this node."&lt;/span&gt;

        &lt;span style="color: #80868b; font-style: italic;"&gt;# 2. Thermal Throttling Guard&lt;/span&gt;
        - &lt;span style="color: #b45908;"&gt;alert&lt;/span&gt;: GpuThermalThrottlingActive
          &lt;span style="color: #b45908;"&gt;expr&lt;/span&gt;: dcgm_fi_therm_violation == &lt;span style="color: #b45908;"&gt;1&lt;/span&gt;
          &lt;span style="color: #b45908;"&gt;for&lt;/span&gt;: &lt;span style="color: #b45908;"&gt;5&lt;/span&gt;m
          &lt;span style="color: #b45908;"&gt;labels&lt;/span&gt;:
            &lt;span style="color: #b45908;"&gt;severity&lt;/span&gt;: warning
            &lt;span style="color: #b45908;"&gt;tier&lt;/span&gt;: ml-platform
          &lt;span style="color: #b45908;"&gt;annotations&lt;/span&gt;:
            &lt;span style="color: #b45908;"&gt;summary&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"GPU Thermal Throttling active on {{ $labels.kubernetes_node }}"&lt;/span&gt;
            &lt;span style="color: #b45908;"&gt;description&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"The GPU clock speeds are being throttled due to high heat. Check the physical host health or cluster scheduling density."&lt;/span&gt;

        &lt;span style="color: #80868b; font-style: italic;"&gt;# 3. Running Out of Video RAM (VRAM)&lt;/span&gt;
        - &lt;span style="color: #b45908;"&gt;alert&lt;/span&gt;: GpuVramCriticalExhaustion
          &lt;span style="color: #b45908;"&gt;expr&lt;/span&gt;: (dcgm_fi_fb_used / (dcgm_fi_fb_used + dcgm_fi_fb_free)) * &lt;span style="color: #b45908;"&gt;100&lt;/span&gt; &amp;gt; &lt;span style="color: #b45908;"&gt;92&lt;/span&gt;
          &lt;span style="color: #b45908;"&gt;for&lt;/span&gt;: &lt;span style="color: #b45908;"&gt;3&lt;/span&gt;m
          &lt;span style="color: #b45908;"&gt;labels&lt;/span&gt;:
            &lt;span style="color: #b45908;"&gt;severity&lt;/span&gt;: critical
            &lt;span style="color: #b45908;"&gt;tier&lt;/span&gt;: ml-platform
          &lt;span style="color: #b45908;"&gt;annotations&lt;/span&gt;:
            &lt;span style="color: #b45908;"&gt;summary&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"GPU VRAM critical exhaustion on node {{ $labels.kubernetes_node }}"&lt;/span&gt;
            &lt;span style="color: #b45908;"&gt;description&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"VRAM utilization is at {{ $value | printf \"%.2f\" }}%. Triton is dangerously close to an Out-Of-Memory (OOM) crash."&lt;/span&gt;

    - &lt;span style="color: #b45908;"&gt;name&lt;/span&gt;: ML.Platform.Application.Performance
      &lt;span style="color: #b45908;"&gt;rules&lt;/span&gt;:
        &lt;span style="color: #80868b; font-style: italic;"&gt;# 4. Triton Model Inference Latency Breach&lt;/span&gt;
        - &lt;span style="color: #b45908;"&gt;alert&lt;/span&gt;: TritonInferenceLatencyTooHigh
          &lt;span style="color: #b45908;"&gt;expr&lt;/span&gt;: &lt;span style="color: #188038;"&gt;|
            (sum(rate(nv_inference_compute_input_duration_us[5m])) 
            + sum(rate(nv_inference_compute_infer_duration_us[5m])) 
            + sum(rate(nv_inference_compute_output_duration_us[5m]))) 
            / sum(rate(nv_inference_request_duration_us[5m])) &amp;gt; 150000
&lt;/span&gt;          &lt;span style="color: #b45908;"&gt;for&lt;/span&gt;: &lt;span style="color: #b45908;"&gt;3&lt;/span&gt;m
          &lt;span style="color: #b45908;"&gt;labels&lt;/span&gt;:
            &lt;span style="color: #b45908;"&gt;severity&lt;/span&gt;: warning
            &lt;span style="color: #b45908;"&gt;tier&lt;/span&gt;: ml-platform
          &lt;span style="color: #b45908;"&gt;annotations&lt;/span&gt;:
            &lt;span style="color: #b45908;"&gt;summary&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"Triton model inference execution time exceeded 150ms"&lt;/span&gt;
            &lt;span style="color: #b45908;"&gt;description&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"Model execution pipelines are slowing down. Actual calculation overhead is running at {{ $value | humanizeDuration }}."&lt;/span&gt;

        &lt;span style="color: #80868b; font-style: italic;"&gt;# 5. Massive Request Queue (Autoscaler Bottleneck or Lock)&lt;/span&gt;
        - &lt;span style="color: #b45908;"&gt;alert&lt;/span&gt;: TritonQueueSaturationBreach
          &lt;span style="color: #b45908;"&gt;expr&lt;/span&gt;: &lt;span style="color: #188038;"&gt;|
            sum(rate(nv_inference_queue_duration_us[5m])) 
            / sum(rate(nv_inference_request_duration_us[5m])) &amp;gt; 50000
&lt;/span&gt;          &lt;span style="color: #b45908;"&gt;for&lt;/span&gt;: &lt;span style="color: #b45908;"&gt;4&lt;/span&gt;m
          &lt;span style="color: #b45908;"&gt;labels&lt;/span&gt;:
            &lt;span style="color: #b45908;"&gt;severity&lt;/span&gt;: critical
            &lt;span style="color: #b45908;"&gt;tier&lt;/span&gt;: ml-platform
          &lt;span style="color: #b45908;"&gt;annotations&lt;/span&gt;:
            &lt;span style="color: #b45908;"&gt;summary&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"Triton request queue delay exceeded 50ms"&lt;/span&gt;
            &lt;span style="color: #b45908;"&gt;description&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"Requests are waiting too long in the memory queue. KEDA and Karpenter may have hit their max replica limits (Cluster Saturation)."&lt;/span&gt;

        &lt;span style="color: #80868b; font-style: italic;"&gt;# 6. Underutilized GPU Hardware (Wasted Budget Guard)&lt;/span&gt;
        - &lt;span style="color: #b45908;"&gt;alert&lt;/span&gt;: GpuSeverelyUnderutilized
          &lt;span style="color: #b45908;"&gt;expr&lt;/span&gt;: avg_over_time(dcgm_fi_gpu_util[1h]) &amp;lt; &lt;span style="color: #b45908;"&gt;10&lt;/span&gt; and count(dcgm_fi_gpu_util) &amp;gt; &lt;span style="color: #b45908;"&gt;0&lt;/span&gt;
          &lt;span style="color: #b45908;"&gt;for&lt;/span&gt;: &lt;span style="color: #b45908;"&gt;1&lt;/span&gt;h
          &lt;span style="color: #b45908;"&gt;labels&lt;/span&gt;:
            &lt;span style="color: #b45908;"&gt;severity&lt;/span&gt;: warning
            &lt;span style="color: #b45908;"&gt;tier&lt;/span&gt;: ml-platform
          &lt;span style="color: #b45908;"&gt;annotations&lt;/span&gt;:
            &lt;span style="color: #b45908;"&gt;summary&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"GPU Node {{ $labels.kubernetes_node }} is heavily underutilized"&lt;/span&gt;
            &lt;span style="color: #b45908;"&gt;description&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"Average GPU computing SM utilization over the past hour is only {{ $value | printf \"%.2f\" }}%. A practitioner may have forgotten to release an interactive Jupyter environment."&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;h2 data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="gjwZNd#ZxCkTb" jsuid="QXY53d_79" role="heading" style="font-size: 20px;"&gt;2. Connect Your Alert Routing (&lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="QXY53d_7a" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid #f4f6f7; padding: 2px 4px;"&gt;alertmanager-config.yaml&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt;)&lt;!--TgQPHd|||[]--&gt;&lt;/h2&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="xUgpab#A1M9vc" jsuid="QXY53d_7b" style="margin: 16px 0px; overflow-wrap: break-word;"&gt;To ensure these rules land in the right hands, route the &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="QXY53d_7c" style="font-weight: bold;"&gt;hardware&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; alerts straight to your Operations on-call rota (like PagerDuty) and the &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="QXY53d_7d" style="font-weight: bold;"&gt;underutilization/latency&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; alerts directly to the ML Engineering team's Slack/Teams channel.&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="rxoZB#M4fm4d" jsuid="QXY53d_7e" style="background-color: #f4f6f7; display: flex; gap: 16px; overflow-x: auto; padding: 16px;"&gt;&lt;pre style="margin: 0; overflow: auto hidden;"&gt;&lt;code class="language-yaml"&gt;&lt;span style="color: #b45908;"&gt;apiVersion&lt;/span&gt;: ://coreos.com
&lt;span style="color: #b45908;"&gt;kind&lt;/span&gt;: AlertmanagerConfig
&lt;span style="color: #b45908;"&gt;metadata&lt;/span&gt;:
  &lt;span style="color: #b45908;"&gt;name&lt;/span&gt;: ml-routing-rules
  &lt;span style="color: #b45908;"&gt;namespace&lt;/span&gt;: monitoring
&lt;span style="color: #b45908;"&gt;spec&lt;/span&gt;:
  &lt;span style="color: #b45908;"&gt;route&lt;/span&gt;:
    &lt;span style="color: #b45908;"&gt;groupBy&lt;/span&gt;: [&lt;span style="color: #188038;"&gt;'alertname'&lt;/span&gt;, &lt;span style="color: #188038;"&gt;'kubernetes_node'&lt;/span&gt;, &lt;span style="color: #188038;"&gt;'namespace'&lt;/span&gt;]
    &lt;span style="color: #b45908;"&gt;groupWait&lt;/span&gt;: &lt;span style="color: #b45908;"&gt;30&lt;/span&gt;s
    &lt;span style="color: #b45908;"&gt;groupInterval&lt;/span&gt;: &lt;span style="color: #b45908;"&gt;5&lt;/span&gt;m
    &lt;span style="color: #b45908;"&gt;repeatInterval&lt;/span&gt;: &lt;span style="color: #b45908;"&gt;4&lt;/span&gt;h
    &lt;span style="color: #b45908;"&gt;receiver&lt;/span&gt;: &lt;span style="color: #188038;"&gt;'Default Empty'&lt;/span&gt;
    &lt;span style="color: #b45908;"&gt;routes&lt;/span&gt;:
      &lt;span style="color: #80868b; font-style: italic;"&gt;# Send hardware failures straight to Operations PagerDuty&lt;/span&gt;
      - &lt;span style="color: #b45908;"&gt;matchers&lt;/span&gt;:
          - &lt;span style="color: #b45908;"&gt;name&lt;/span&gt;: severity
            &lt;span style="color: #b45908;"&gt;value&lt;/span&gt;: critical
          - &lt;span style="color: #b45908;"&gt;name&lt;/span&gt;: tier
            &lt;span style="color: #b45908;"&gt;value&lt;/span&gt;: ml-platform
        &lt;span style="color: #b45908;"&gt;receiver&lt;/span&gt;: &lt;span style="color: #188038;"&gt;'Ops-PagerDuty'&lt;/span&gt;
      &lt;span style="color: #80868b; font-style: italic;"&gt;# Send performance metrics and budget leaks to ML Team channels&lt;/span&gt;
      - &lt;span style="color: #b45908;"&gt;matchers&lt;/span&gt;:
          - &lt;span style="color: #b45908;"&gt;name&lt;/span&gt;: severity
            &lt;span style="color: #b45908;"&gt;value&lt;/span&gt;: warning
          - &lt;span style="color: #b45908;"&gt;name&lt;/span&gt;: tier
            &lt;span style="color: #b45908;"&gt;value&lt;/span&gt;: ml-platform
        &lt;span style="color: #b45908;"&gt;receiver&lt;/span&gt;: &lt;span style="color: #188038;"&gt;'ML-Engineers-Slack'&lt;/span&gt;
  &lt;span style="color: #b45908;"&gt;receivers&lt;/span&gt;:
    - &lt;span style="color: #b45908;"&gt;name&lt;/span&gt;: &lt;span style="color: #188038;"&gt;'Ops-PagerDuty'&lt;/span&gt;
      &lt;span style="color: #b45908;"&gt;pagerdutyConfigs&lt;/span&gt;:
        - &lt;span style="color: #b45908;"&gt;routingKey&lt;/span&gt;:
            &lt;span style="color: #b45908;"&gt;name&lt;/span&gt;: pagerduty-keys
            &lt;span style="color: #b45908;"&gt;key&lt;/span&gt;: ops-key
    - &lt;span style="color: #b45908;"&gt;name&lt;/span&gt;: &lt;span style="color: #188038;"&gt;'ML-Engineers-Slack'&lt;/span&gt;
      &lt;span style="color: #b45908;"&gt;slackConfigs&lt;/span&gt;:
        - &lt;span style="color: #b45908;"&gt;channel&lt;/span&gt;: &lt;span style="color: #188038;"&gt;'#mlops-alerts'&lt;/span&gt;
          &lt;span style="color: #b45908;"&gt;apiURL&lt;/span&gt;:
            &lt;span style="color: #b45908;"&gt;name&lt;/span&gt;: slack-webhook
            &lt;span style="color: #b45908;"&gt;key&lt;/span&gt;: webhook-url
          &lt;span style="color: #b45908;"&gt;text&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"Notification: {{ .CommonAnnotations.summary }}\nDetails: {{ .CommonAnnotations.description }}"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;h2 data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="gjwZNd#ZxCkTb" jsuid="QXY53d_7f" role="heading" style="font-size: 20px;"&gt;How to apply this setup&lt;!--TgQPHd|||[]--&gt;&lt;/h2&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="xUgpab#A1M9vc" jsuid="QXY53d_7g" style="margin: 16px 0px; overflow-wrap: break-word;"&gt;Ensure your cluster's Prometheus installation is scraping the Triton pods on port &lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="QXY53d_7h" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid #f4f6f7; padding: 2px 4px;"&gt;8002&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt; (via a &lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="QXY53d_7i" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid #f4f6f7; padding: 2px 4px;"&gt;PodMonitor&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt; or standard annotation parsing), then run:&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="rxoZB#M4fm4d" jsuid="QXY53d_7j" style="background-color: #f4f6f7; display: flex; gap: 16px; overflow-x: auto; padding: 16px;"&gt;&lt;pre style="margin: 0; overflow: auto hidden;"&gt;&lt;code class="language-bash"&gt;kubectl apply -f ml-gpu-alerts.yaml
kubectl apply -f alertmanager-config.yaml
&lt;/code&gt;&lt;/pre&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="xUgpab#A1M9vc" jsuid="QXY53d_7k" style="margin: 16px 0px; overflow-wrap: break-word;"&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="xUgpab#A1M9vc" jsuid="cja1od_0" style="margin: 16px 0px; overflow-wrap: break-word;"&gt;To visually monitor your cluster, you can use pre-built community templates or a unified configuration file. This setup combines metrics from the &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="cja1od_1" style="font-weight: bold;"&gt;NVIDIA DCGM Exporter&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; and &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="cja1od_2" style="font-weight: bold;"&gt;Triton Inference Server&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; into a single glass view.&lt;span data-sfc-root="ep" jsaction="" jscontroller="gWOIub#gnsrYb" jsuid="cja1od_3"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;h2 data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="gjwZNd#ZxCkTb" jsuid="cja1od_4" role="heading" style="font-size: 20px;"&gt;Option A: Use Official Dashboard IDs (Quickest Setup)&lt;!--TgQPHd|||[]--&gt;&lt;/h2&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="xUgpab#A1M9vc" jsuid="cja1od_5" style="margin: 16px 0px; overflow-wrap: break-word;"&gt;Instead of copying a long configuration file, you can import these two official IDs into your Grafana instance (&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="cja1od_6" style="font-weight: bold;"&gt;Dashboards&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; ➔ &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="cja1od_7" style="font-weight: bold;"&gt;New&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; ➔ &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="cja1od_8" style="font-weight: bold;"&gt;Import&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;):&lt;span data-sfc-root="ep" jsaction="" jscontroller="gWOIub#gnsrYb" jsuid="cja1od_9"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uae3nf#pGIJIb" jsuid="cja1od_a"&gt;&lt;div&gt;&lt;/div&gt;&lt;ol&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="cja1od_b"&gt;&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="cja1od_c" style="font-weight: bold;"&gt;NVIDIA DCGM Hardware Metrics:&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; Use Grafana Dashboard &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="cja1od_d" style="font-weight: bold;"&gt;ID: &lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="cja1od_e" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid #f4f6f7; padding: 2px 4px;"&gt;12239&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;. This tracks physical card health, VRAM limits, and temperatures.&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;li data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uJpRZe#rJqRnf" jsuid="cja1od_f"&gt;&lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="cja1od_g" style="font-weight: bold;"&gt;NVIDIA Triton Performance Metrics:&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; Use Grafana Dashboard &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="cja1od_h" style="font-weight: bold;"&gt;ID: &lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="cja1od_i" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid #f4f6f7; padding: 2px 4px;"&gt;12832&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;. This tracks inference execution latency, queue times, and throughput counters.&lt;span data-sfc-root="ep" jsaction="" jscontroller="gWOIub#gnsrYb" jsuid="cja1od_j"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/li&gt;&lt;/ol&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;hr data-sfc-pl="|||[]" data-sfc-root="ep" jsaction="" jscontroller="zJhOJc#fwBjOe" jsuid="cja1od_k" style="border-color: rgb(220, 223, 229) currentcolor currentcolor; border-image: none; border-style: solid none none; border-width: 1px 0px 0px; height: 1px;" /&gt;&lt;h2 data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="gjwZNd#ZxCkTb" jsuid="cja1od_l" role="heading" style="font-size: 20px;"&gt;Option B: The Unified Production JSON Manifest&lt;!--TgQPHd|||[]--&gt;&lt;/h2&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="xUgpab#A1M9vc" jsuid="cja1od_m" style="margin: 16px 0px; overflow-wrap: break-word;"&gt;To bundle your infrastructure, deploy this custom &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="cja1od_n" style="font-weight: bold;"&gt;Kubernetes ConfigMap JSON schema&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt;. It creates a unified &lt;span data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="cjmLxf#dPtwvc" jsuid="cja1od_o" style="font-weight: bold;"&gt;"ML Platform &amp;amp; Triton Model Insights"&lt;!--TgQPHd|||[]--&gt;&lt;/span&gt; dashboard, pre-configured with panels for the Prometheus alerts we configured earlier.&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="xUgpab#A1M9vc" jsuid="cja1od_p" style="margin: 16px 0px; overflow-wrap: break-word;"&gt;Save this file as &lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="cja1od_q" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid #f4f6f7; padding: 2px 4px;"&gt;ml-grafana-dashboard.yaml&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt;:&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="rxoZB#M4fm4d" jsuid="cja1od_r" style="background-color: #f4f6f7; display: flex; gap: 16px; overflow-x: auto; padding: 16px;"&gt;&lt;pre style="margin: 0; overflow: auto hidden;"&gt;&lt;code class="language-yaml"&gt;&lt;span style="color: #b45908;"&gt;apiVersion&lt;/span&gt;: v1
&lt;span style="color: #b45908;"&gt;kind&lt;/span&gt;: ConfigMap
&lt;span style="color: #b45908;"&gt;metadata&lt;/span&gt;:
  &lt;span style="color: #b45908;"&gt;name&lt;/span&gt;: ml-platform-dashboard-export
  &lt;span style="color: #b45908;"&gt;namespace&lt;/span&gt;: monitoring
  &lt;span style="color: #b45908;"&gt;labels&lt;/span&gt;:
    &lt;span style="color: #80868b; font-style: italic;"&gt;# Triggers your Grafana sidecar provider to automatically load the dashboard&lt;/span&gt;
    &lt;span style="color: #b45908;"&gt;grafana_dashboard&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"1"&lt;/span&gt;
&lt;span style="color: #b45908;"&gt;data&lt;/span&gt;:
  &lt;span style="color: #b45908;"&gt;ml-platform-insights.json&lt;/span&gt;: |-
    {
      &lt;span style="color: #188038;"&gt;"annotations"&lt;/span&gt;: { &lt;span style="color: #188038;"&gt;"list"&lt;/span&gt;: [] },
      &lt;span style="color: #188038;"&gt;"editable"&lt;/span&gt;: true,
      &lt;span style="color: #188038;"&gt;"fiscalYearStartMonth"&lt;/span&gt;: &lt;span style="color: #b45908;"&gt;0&lt;/span&gt;,
      &lt;span style="color: #188038;"&gt;"graphTooltip"&lt;/span&gt;: &lt;span style="color: #b45908;"&gt;1&lt;/span&gt;,
      &lt;span style="color: #188038;"&gt;"id"&lt;/span&gt;: null,
      &lt;span style="color: #188038;"&gt;"links"&lt;/span&gt;: [],
      &lt;span style="color: #188038;"&gt;"liveNow"&lt;/span&gt;: false,
      &lt;span style="color: #188038;"&gt;"panels"&lt;/span&gt;: [
        {
          &lt;span style="color: #188038;"&gt;"title"&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"Active GPU Compute Hardware Utilization"&lt;/span&gt;,
          &lt;span style="color: #188038;"&gt;"type"&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"timeseries"&lt;/span&gt;,
          &lt;span style="color: #188038;"&gt;"gridPos"&lt;/span&gt;: { &lt;span style="color: #188038;"&gt;"h"&lt;/span&gt;: &lt;span style="color: #b45908;"&gt;8&lt;/span&gt;, &lt;span style="color: #188038;"&gt;"w"&lt;/span&gt;: &lt;span style="color: #b45908;"&gt;12&lt;/span&gt;, &lt;span style="color: #188038;"&gt;"x"&lt;/span&gt;: &lt;span style="color: #b45908;"&gt;0&lt;/span&gt;, &lt;span style="color: #188038;"&gt;"y"&lt;/span&gt;: &lt;span style="color: #b45908;"&gt;0&lt;/span&gt; },
          &lt;span style="color: #188038;"&gt;"targets"&lt;/span&gt;: [
            {
              &lt;span style="color: #188038;"&gt;"datasource"&lt;/span&gt;: { &lt;span style="color: #188038;"&gt;"type"&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"prometheus"&lt;/span&gt;, &lt;span style="color: #188038;"&gt;"uid"&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"prometheus"&lt;/span&gt; },
              &lt;span style="color: #188038;"&gt;"editorMode"&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"code"&lt;/span&gt;,
              &lt;span style="color: #188038;"&gt;"expr"&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"sum(dcgm_fi_gpu_util) by (kubernetes_node)"&lt;/span&gt;,
              &lt;span style="color: #188038;"&gt;"legendFormat"&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"Node: {{kubernetes_node}}"&lt;/span&gt;,
              &lt;span style="color: #188038;"&gt;"range"&lt;/span&gt;: &lt;span style="color: #9334e6;"&gt;true&lt;/span&gt;
            }
          ],
          &lt;span style="color: #188038;"&gt;"fieldConfig"&lt;/span&gt;: {
            &lt;span style="color: #188038;"&gt;"defaults"&lt;/span&gt;: {
              &lt;span style="color: #188038;"&gt;"custom"&lt;/span&gt;: { &lt;span style="color: #188038;"&gt;"drawStyle"&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"line"&lt;/span&gt;, &lt;span style="color: #188038;"&gt;"lineInterpolation"&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"smooth"&lt;/span&gt; },
              &lt;span style="color: #188038;"&gt;"unit"&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"percent"&lt;/span&gt;
            }
          }
        },
        {
          &lt;span style="color: #188038;"&gt;"title"&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"VRAM Exhaustion Tracker"&lt;/span&gt;,
          &lt;span style="color: #188038;"&gt;"type"&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"timeseries"&lt;/span&gt;,
          &lt;span style="color: #188038;"&gt;"gridPos"&lt;/span&gt;: { &lt;span style="color: #188038;"&gt;"h"&lt;/span&gt;: &lt;span style="color: #b45908;"&gt;8&lt;/span&gt;, &lt;span style="color: #188038;"&gt;"w"&lt;/span&gt;: &lt;span style="color: #b45908;"&gt;12&lt;/span&gt;, &lt;span style="color: #188038;"&gt;"x"&lt;/span&gt;: &lt;span style="color: #b45908;"&gt;12&lt;/span&gt;, &lt;span style="color: #188038;"&gt;"y"&lt;/span&gt;: &lt;span style="color: #b45908;"&gt;0&lt;/span&gt; },
          &lt;span style="color: #188038;"&gt;"targets"&lt;/span&gt;: [
            {
              &lt;span style="color: #188038;"&gt;"datasource"&lt;/span&gt;: { &lt;span style="color: #188038;"&gt;"type"&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"prometheus"&lt;/span&gt;, &lt;span style="color: #188038;"&gt;"uid"&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"prometheus"&lt;/span&gt; },
              &lt;span style="color: #188038;"&gt;"editorMode"&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"code"&lt;/span&gt;,
              &lt;span style="color: #188038;"&gt;"expr"&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"(dcgm_fi_fb_used / (dcgm_fi_fb_used + dcgm_fi_fb_free)) * 100"&lt;/span&gt;,
              &lt;span style="color: #188038;"&gt;"legendFormat"&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"GPU Slot: {{gpu}} on {{pod}}"&lt;/span&gt;,
              &lt;span style="color: #188038;"&gt;"range"&lt;/span&gt;: &lt;span style="color: #9334e6;"&gt;true&lt;/span&gt;
            }
          ],
          &lt;span style="color: #188038;"&gt;"fieldConfig"&lt;/span&gt;: {
            &lt;span style="color: #188038;"&gt;"defaults"&lt;/span&gt;: {
              &lt;span style="color: #188038;"&gt;"unit"&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"percent"&lt;/span&gt;,
              &lt;span style="color: #188038;"&gt;"thresholds"&lt;/span&gt;: {
                &lt;span style="color: #188038;"&gt;"mode"&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"absolute"&lt;/span&gt;,
                &lt;span style="color: #188038;"&gt;"steps"&lt;/span&gt;: [
                  { &lt;span style="color: #188038;"&gt;"color"&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"green"&lt;/span&gt;, &lt;span style="color: #188038;"&gt;"value"&lt;/span&gt;: &lt;span style="color: #9334e6;"&gt;null&lt;/span&gt; },
                  { &lt;span style="color: #188038;"&gt;"color"&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"orange"&lt;/span&gt;, &lt;span style="color: #188038;"&gt;"value"&lt;/span&gt;: &lt;span style="color: #b45908;"&gt;80&lt;/span&gt; },
                  { &lt;span style="color: #188038;"&gt;"color"&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"red"&lt;/span&gt;, &lt;span style="color: #188038;"&gt;"value"&lt;/span&gt;: &lt;span style="color: #b45908;"&gt;92&lt;/span&gt; }
                ]
              }
            }
          }
        },
        {
          &lt;span style="color: #188038;"&gt;"title"&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"Triton Model Inference Latency Breakdown"&lt;/span&gt;,
          &lt;span style="color: #188038;"&gt;"type"&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"timeseries"&lt;/span&gt;,
          &lt;span style="color: #188038;"&gt;"gridPos"&lt;/span&gt;: { &lt;span style="color: #188038;"&gt;"h"&lt;/span&gt;: &lt;span style="color: #b45908;"&gt;8&lt;/span&gt;, &lt;span style="color: #188038;"&gt;"w"&lt;/span&gt;: &lt;span style="color: #b45908;"&gt;12&lt;/span&gt;, &lt;span style="color: #188038;"&gt;"x"&lt;/span&gt;: &lt;span style="color: #b45908;"&gt;0&lt;/span&gt;, &lt;span style="color: #188038;"&gt;"y"&lt;/span&gt;: &lt;span style="color: #b45908;"&gt;8&lt;/span&gt; },
          &lt;span style="color: #188038;"&gt;"targets"&lt;/span&gt;: [
            {
              &lt;span style="color: #188038;"&gt;"datasource"&lt;/span&gt;: { &lt;span style="color: #188038;"&gt;"type"&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"prometheus"&lt;/span&gt;, &lt;span style="color: #188038;"&gt;"uid"&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"prometheus"&lt;/span&gt; },
              &lt;span style="color: #188038;"&gt;"editorMode"&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"code"&lt;/span&gt;,
              &lt;span style="color: #188038;"&gt;"expr"&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"(sum(rate(nv_inference_compute_input_duration_us[5m])) by (model) + sum(rate(nv_inference_compute_infer_duration_us[5m])) by (model) + sum(rate(nv_inference_compute_output_duration_us[5m])) by (model)) / sum(rate(nv_inference_request_duration_us[5m])) by (model) / 1000"&lt;/span&gt;,
              &lt;span style="color: #188038;"&gt;"legendFormat"&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"Model: {{model}} (v{{version}})"&lt;/span&gt;,
              &lt;span style="color: #188038;"&gt;"range"&lt;/span&gt;: &lt;span style="color: #9334e6;"&gt;true&lt;/span&gt;
            }
          ],
          &lt;span style="color: #188038;"&gt;"fieldConfig"&lt;/span&gt;: {
            &lt;span style="color: #188038;"&gt;"defaults"&lt;/span&gt;: {
              &lt;span style="color: #188038;"&gt;"custom"&lt;/span&gt;: { &lt;span style="color: #188038;"&gt;"drawStyle"&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"line"&lt;/span&gt; },
              &lt;span style="color: #188038;"&gt;"unit"&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"ms"&lt;/span&gt;
            }
          }
        },
        {
          &lt;span style="color: #188038;"&gt;"title"&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"Triton Memory Queue Delays (Saturation Hook)"&lt;/span&gt;,
          &lt;span style="color: #188038;"&gt;"type"&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"timeseries"&lt;/span&gt;,
          &lt;span style="color: #188038;"&gt;"gridPos"&lt;/span&gt;: { &lt;span style="color: #188038;"&gt;"h"&lt;/span&gt;: &lt;span style="color: #b45908;"&gt;8&lt;/span&gt;, &lt;span style="color: #188038;"&gt;"w"&lt;/span&gt;: &lt;span style="color: #b45908;"&gt;12&lt;/span&gt;, &lt;span style="color: #188038;"&gt;"x"&lt;/span&gt;: &lt;span style="color: #b45908;"&gt;12&lt;/span&gt;, &lt;span style="color: #188038;"&gt;"y"&lt;/span&gt;: &lt;span style="color: #b45908;"&gt;8&lt;/span&gt; },
          &lt;span style="color: #188038;"&gt;"targets"&lt;/span&gt;: [
            {
              &lt;span style="color: #188038;"&gt;"datasource"&lt;/span&gt;: { &lt;span style="color: #188038;"&gt;"type"&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"prometheus"&lt;/span&gt;, &lt;span style="color: #188038;"&gt;"uid"&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"prometheus"&lt;/span&gt; },
              &lt;span style="color: #188038;"&gt;"editorMode"&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"code"&lt;/span&gt;,
              &lt;span style="color: #188038;"&gt;"expr"&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"sum(rate(nv_inference_queue_duration_us[5m])) by (model) / sum(rate(nv_inference_request_duration_us[5m])) by (model) / 1000"&lt;/span&gt;,
              &lt;span style="color: #188038;"&gt;"legendFormat"&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"Queue Wait: {{model}}"&lt;/span&gt;,
              &lt;span style="color: #188038;"&gt;"range"&lt;/span&gt;: &lt;span style="color: #9334e6;"&gt;true&lt;/span&gt;
            }
          ],
          &lt;span style="color: #188038;"&gt;"fieldConfig"&lt;/span&gt;: {
            &lt;span style="color: #188038;"&gt;"defaults"&lt;/span&gt;: {
              &lt;span style="color: #188038;"&gt;"custom"&lt;/span&gt;: { &lt;span style="color: #188038;"&gt;"drawStyle"&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"bars"&lt;/span&gt; },
              &lt;span style="color: #188038;"&gt;"unit"&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"ms"&lt;/span&gt;
            }
          }
        }
      ],
      &lt;span style="color: #188038;"&gt;"refresh"&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"10s"&lt;/span&gt;,
      &lt;span style="color: #188038;"&gt;"schemaVersion"&lt;/span&gt;: &lt;span style="color: #b45908;"&gt;38&lt;/span&gt;,
      &lt;span style="color: #188038;"&gt;"style"&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"dark"&lt;/span&gt;,
      &lt;span style="color: #188038;"&gt;"tags"&lt;/span&gt;: [&lt;span style="color: #188038;"&gt;"mlops"&lt;/span&gt;, &lt;span style="color: #188038;"&gt;"triton"&lt;/span&gt;, &lt;span style="color: #188038;"&gt;"gpu"&lt;/span&gt;, &lt;span style="color: #188038;"&gt;"azure"&lt;/span&gt;],
      &lt;span style="color: #188038;"&gt;"time"&lt;/span&gt;: { &lt;span style="color: #188038;"&gt;"from"&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"now-1h"&lt;/span&gt;, &lt;span style="color: #188038;"&gt;"to"&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"now"&lt;/span&gt; },
      &lt;span style="color: #188038;"&gt;"timepicker"&lt;/span&gt;: {},
      &lt;span style="color: #188038;"&gt;"timezone"&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"browser"&lt;/span&gt;,
      &lt;span style="color: #188038;"&gt;"title"&lt;/span&gt;: &lt;span style="color: #188038;"&gt;"ML Platform &amp;amp; Triton Model Insights"&lt;/span&gt;,
      &lt;span style="color: #188038;"&gt;"version"&lt;/span&gt;: &lt;span style="color: #b45908;"&gt;1&lt;/span&gt;
    }
&lt;/code&gt;&lt;/pre&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;h2 data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="gjwZNd#ZxCkTb" jsuid="cja1od_s" role="heading" style="font-size: 20px;"&gt;Apply to Your Environment&lt;!--TgQPHd|||[]--&gt;&lt;/h2&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="xUgpab#A1M9vc" jsuid="cja1od_t" style="margin: 16px 0px; overflow-wrap: break-word;"&gt;Deploy this configuration mapping directly to your cluster backend:&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="rxoZB#M4fm4d" jsuid="cja1od_u" style="background-color: #f4f6f7; display: flex; gap: 16px; overflow-x: auto; padding: 16px;"&gt;&lt;pre style="margin: 0; overflow: auto hidden;"&gt;&lt;code class="language-bash"&gt;kubectl apply -f ml-grafana-dashboard.yaml
&lt;/code&gt;&lt;/pre&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="xUgpab#A1M9vc" jsuid="cja1od_v" style="margin: 16px 0px; overflow-wrap: break-word;"&gt;If your platform uses Grafana’s standard &lt;code data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="jM7ape#mDCHfd" jsuid="cja1od_w" style="background-color: #f4f6f7; border-radius: 4px; border: 1px solid #f4f6f7; padding: 2px 4px;"&gt;dashboard-provider&lt;!--TgQPHd|||[]--&gt;&lt;/code&gt; sidecar setup, this console will automatically populate under your shared directory tree.&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="xUgpab#A1M9vc" jsuid="cja1od_x" style="margin: 16px 0px; overflow-wrap: break-word;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div data-sfc-root="ep" jsaction="" jscontroller="kVZO2c#SfSkjb" jsuid="cja1od_z"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div data-sfc-root="ep" jsaction="" jscontroller="cU6Yt#LBga0c" jsuid="cja1od_10"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div data-sfc-root="ep" jsaction="" jscontroller="cU6Yt#LBga0c" jsuid="cja1od_11"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;/div&gt;&lt;div data-sfc-root="ep" jsaction="" jscontroller="kVZO2c#SfSkjb" jsuid="QXY53d_7s"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div data-sfc-root="ep" jsaction="" jscontroller="cU6Yt#LBga0c" jsuid="QXY53d_7t"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div data-sfc-root="ep" jsaction="" jscontroller="cU6Yt#LBga0c" jsuid="QXY53d_7u"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;/div&gt;&lt;div data-sfc-root="ep" jsaction="" jscontroller="kVZO2c#SfSkjb" jsuid="CuAZc_u"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div data-sfc-root="ep" jsaction="" jscontroller="cU6Yt#LBga0c" jsuid="CuAZc_v"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div data-sfc-root="ep" jsaction="" jscontroller="cU6Yt#LBga0c" jsuid="CuAZc_w"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;/div&gt;&lt;div data-sfc-root="ep" jsaction="" jscontroller="kVZO2c#SfSkjb" jsuid="wbeiFd_1g"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div data-sfc-root="ep" jsaction="" jscontroller="cU6Yt#LBga0c" jsuid="wbeiFd_1h"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;div data-sfc-root="ep" jsaction="" jscontroller="cU6Yt#LBga0c" jsuid="wbeiFd_1i"&gt;&lt;!--TgQPHd|||[]--&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Open Source Open Mind&lt;/div&gt;</description><author>dhiraj.patra@gmail.com (dhiraj patra)</author></item><item><title>Causal Modeling</title><link>http://dhirajpatra.blogspot.com/2026/08/causal-modeling.html</link><category>artificial intelligence</category><category>economy</category><category>finance</category><category>financial engineering</category><category>machine learning</category><category>model</category><category>python</category><pubDate>Thu, 6 Aug 2026 06:54:00 -0700</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8993867651193907565.post-7088255360010050901</guid><description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHF_0nfoqywPHkIMRhC-q8KfdUyP5atxg42XgWXVlpfMHKOEksUcTxdfaGdrF54PdLbw0Ncgi76GsIalO12brJ2EB9L_kL7thhUSyOGFvQJb6RJ_2BsaMLuKZ8-4O3JOh_rQBTZSE-bgB5GCxPp_3zpRx3oiciQdh0S3JdR83_9pismj9DpUdpT4PKcjkS/s2240/financial_causal_model_dag.webp" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="1136" data-original-width="2240" height="280" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHF_0nfoqywPHkIMRhC-q8KfdUyP5atxg42XgWXVlpfMHKOEksUcTxdfaGdrF54PdLbw0Ncgi76GsIalO12brJ2EB9L_kL7thhUSyOGFvQJb6RJ_2BsaMLuKZ8-4O3JOh_rQBTZSE-bgB5GCxPp_3zpRx3oiciQdh0S3JdR83_9pismj9DpUdpT4PKcjkS/w553-h280/financial_causal_model_dag.webp" width="553" /&gt;&lt;/a&gt;&lt;/div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;generated by meta ai&lt;p&gt;&lt;/p&gt;&lt;p&gt;Yes. In fact, &lt;strong&gt;causal&amp;nbsp;&lt;/strong&gt;&lt;span style="box-sizing: border-box; margin: 0px; padding: 0px;"&gt;&lt;strong&gt;modelling&lt;/strong&gt;&amp;nbsp;is one of the most advanced topics in quantitative finance and is becoming increasingly important because traditional ML models (LSTM, XGBoost, Transformers) often learn&amp;nbsp;&lt;strong&gt;correlations&lt;/strong&gt;, whereas causal models aim&lt;/span&gt;&amp;nbsp;to discover &lt;strong&gt;why&lt;/strong&gt; prices move.&lt;/p&gt;&lt;p&gt;Since I am&amp;nbsp;&lt;span style="box-sizing: border-box; margin: 0px; padding: 0px;"&gt;pursuing an&amp;nbsp;&lt;strong&gt;MSc in Financial Engineering&amp;nbsp;&lt;/strong&gt;at&amp;nbsp;&lt;strong&gt;WQU&lt;/strong&gt;, I'll teach it at that level, covering&lt;/span&gt;&amp;nbsp;theory, mathematics, and Python implementations.&lt;/p&gt;&lt;h1&gt;Learning Roadmap&lt;/h1&gt;&lt;p&gt;We'll build from scratch.&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;p&gt;Correlation vs Causation&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Structural Causal Models (SCM)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Directed Acyclic Graphs (DAGs)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Causal Discovery Algorithms&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Do-Calculus (Pearl)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Counterfactual Prediction&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Causal Forecasting&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Applying causal models to stock prediction&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Building an end-to-end project&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;hr /&gt;&lt;h1&gt;Step 1 — Correlation vs Causation&lt;/h1&gt;&lt;p&gt;Suppose we have&lt;/p&gt;&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Oil Price&lt;/th&gt;&lt;th&gt;Airline Stock&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;↑&lt;/td&gt;&lt;td&gt;↓&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;↓&lt;/td&gt;&lt;td&gt;↑&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;They are negatively correlated.&lt;/p&gt;&lt;p&gt;But does oil directly affect airlines?&lt;/p&gt;&lt;p&gt;Yes.&lt;/p&gt;&lt;p&gt;Higher fuel cost&lt;br /&gt;→ higher operating expenses&lt;br /&gt;→ lower profit&lt;br /&gt;→ lower stock price&lt;/p&gt;&lt;p&gt;This is a causal relationship.&lt;/p&gt;&lt;p&gt;Now another example.&lt;/p&gt;&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Ice Cream Sales&lt;/th&gt;&lt;th&gt;Shark Attacks&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;↑&lt;/td&gt;&lt;td&gt;↑&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;Highly correlated.&lt;/p&gt;&lt;p&gt;Does ice cream cause sharks?&lt;/p&gt;&lt;p&gt;No.&lt;/p&gt;&lt;p&gt;Common cause:&lt;/p&gt;&lt;p&gt;Summer&lt;br /&gt;→ more people swim&lt;br /&gt;→ more shark attacks&lt;/p&gt;&lt;p&gt;Summer&lt;br /&gt;→ more ice cream sales&lt;/p&gt;&lt;p&gt;This is a confounder.&lt;/p&gt;&lt;p&gt;Traditional ML usually cannot distinguish these.&lt;/p&gt;&lt;hr /&gt;&lt;h1&gt;Step 2 — Financial Example&lt;/h1&gt;&lt;p&gt;Imagine predicting Apple stock.&lt;/p&gt;&lt;p&gt;Variables&lt;/p&gt;&lt;pre&gt;&lt;code&gt;Interest Rate

Inflation

USD Index

Nasdaq Index

Apple Earnings

Apple Stock
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The causal graph looks like&lt;/p&gt;&lt;pre&gt;&lt;code&gt;Interest Rate
        \
         \
          \
Inflation ---&amp;gt; USD
     \
      \
       \
     Nasdaq ----\
                  \
                   \
              Apple Earnings
                     \
                      \
                   Apple Stock
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Notice&lt;/p&gt;&lt;p&gt;Interest rate does NOT directly cause Apple stock.&lt;/p&gt;&lt;p&gt;It changes&lt;/p&gt;&lt;p&gt;Interest Rate&lt;br /&gt;↓&lt;/p&gt;&lt;p&gt;Bond Yield&lt;/p&gt;&lt;p&gt;↓&lt;/p&gt;&lt;p&gt;Investor Preference&lt;/p&gt;&lt;p&gt;↓&lt;/p&gt;&lt;p&gt;Nasdaq&lt;/p&gt;&lt;p&gt;↓&lt;/p&gt;&lt;p&gt;Apple&lt;/p&gt;&lt;p&gt;That matters.&lt;/p&gt;&lt;hr /&gt;&lt;h1&gt;Step 3 — Structural Causal Model (SCM)&lt;/h1&gt;&lt;p&gt;Every node has an equation.&lt;/p&gt;&lt;p&gt;Example&lt;/p&gt;&lt;pre&gt;&lt;code&gt;Inflation = Noise

InterestRate = 0.8 × Inflation + Noise

USD = 0.5 × InterestRate + Noise

Nasdaq = -0.7 × InterestRate + Noise

Apple =

0.6 × Nasdaq

+0.4 × Earnings

+Noise
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Unlike regression,&lt;/p&gt;&lt;p&gt;each equation represents a mechanism.&lt;/p&gt;&lt;hr /&gt;&lt;h1&gt;Python Example&lt;/h1&gt;&lt;p&gt;Generate synthetic causal data.&lt;/p&gt;&lt;pre&gt;&lt;code class="language-python"&gt;import numpy as np
import pandas as pd

np.random.seed(42)

N = 1000

inflation = np.random.normal(2,0.5,N)

interest = 0.8*inflation + np.random.normal(0,0.2,N)

usd = 0.5*interest + np.random.normal(0,0.3,N)

nasdaq = -0.7*interest + np.random.normal(0,0.5,N)

earnings = np.random.normal(5,1,N)

apple = (
    0.6*nasdaq
    +0.4*earnings
    +np.random.normal(0,0.5,N)
)

df = pd.DataFrame({
    "Inflation":inflation,
    "Interest":interest,
    "USD":usd,
    "Nasdaq":nasdaq,
    "Earnings":earnings,
    "Apple":apple
})

print(df.head())
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Notice that we explicitly generated the causal relationships.&lt;/p&gt;&lt;hr /&gt;&lt;h1&gt;Step 4 — Draw the DAG&lt;/h1&gt;&lt;p&gt;Using NetworkX&lt;/p&gt;&lt;pre&gt;&lt;code class="language-python"&gt;import networkx as nx
import matplotlib.pyplot as plt

G = nx.DiGraph()

G.add_edges_from([
    ("Inflation","Interest"),
    ("Interest","USD"),
    ("Interest","Nasdaq"),
    ("Nasdaq","Apple"),
    ("Earnings","Apple")
])

nx.draw(G,
        with_labels=True,
        node_size=3000,
        arrows=True)

plt.show()
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Produces&lt;/p&gt;&lt;pre&gt;&lt;code&gt;Inflation

↓

Interest

↙      ↘

USD   Nasdaq

          ↓

      Apple
↑

Earnings
&lt;/code&gt;&lt;/pre&gt;&lt;hr /&gt;&lt;h1&gt;Step 5 — Why This Is Better Than Regression&lt;/h1&gt;&lt;p&gt;Suppose Fed raises rates.&lt;/p&gt;&lt;p&gt;Regression says&lt;/p&gt;&lt;pre&gt;&lt;code&gt;Past data:

Rate ↑

Apple ↓

Therefore predict Apple ↓
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;But suppose&lt;/p&gt;&lt;p&gt;Apple reports record earnings.&lt;/p&gt;&lt;p&gt;Causal model says&lt;/p&gt;&lt;pre&gt;&lt;code&gt;Interest ↑

↓

Nasdaq ↓

↓

Apple ↓

BUT

Earnings ↑↑

↓

Apple ↑
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The model understands competing causes.&lt;/p&gt;&lt;p&gt;This is much closer to how human analysts reason.&lt;/p&gt;&lt;hr /&gt;&lt;h1&gt;Step 6 — Counterfactual Prediction&lt;/h1&gt;&lt;p&gt;Question:&lt;/p&gt;&lt;p&gt;"What would Apple have done if the Fed had NOT increased rates?"&lt;/p&gt;&lt;p&gt;Regression cannot answer.&lt;/p&gt;&lt;p&gt;Causal model can.&lt;/p&gt;&lt;pre&gt;&lt;code class="language-python"&gt;interest = 5.5

# Intervention

interest = 2.0

# Recompute downstream variables

usd = 0.5*interest

nasdaq = -0.7*interest

apple = 0.6*nasdaq + 0.4*earnings
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This is called an intervention:&lt;/p&gt;&lt;pre&gt;&lt;code&gt;do(Interest=2%)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;instead of merely observing &lt;code inline=""&gt;Interest = 2%&lt;/code&gt;.&lt;/p&gt;&lt;hr /&gt;&lt;h1&gt;Step 7 — Real Stock Prediction&lt;/h1&gt;&lt;p&gt;For NIFTY prediction, a richer causal graph might be:&lt;/p&gt;&lt;pre&gt;&lt;code&gt;Fed Rate
     ↓
US Dollar
     ↓
Crude Oil
     ↓
Indian Inflation
     ↓
RBI Rate
     ↓
Bank Nifty
     ↓
NIFTY

GDP

↓

Corporate Earnings

↓

NIFTY

VIX

↓

NIFTY

FII Flow

↓

NIFTY
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;A causal model uses these relationships rather than feeding all variables into a black-box predictor.&lt;/p&gt;&lt;hr /&gt;&lt;h1&gt;Step 8 — Libraries&lt;/h1&gt;&lt;p&gt;Popular Python libraries include:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;code inline=""&gt;DoWhy&lt;/code&gt; — causal inference and effect estimation&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;code inline=""&gt;CausalNex&lt;/code&gt; — Bayesian networks and causal graphs&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;code inline=""&gt;pgmpy&lt;/code&gt; — Bayesian networks (already familiar from your coursework)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;code inline=""&gt;econml&lt;/code&gt; — heterogeneous treatment effects&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;code inline=""&gt;lingam&lt;/code&gt; — causal discovery for linear non-Gaussian models&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;code inline=""&gt;causal-learn&lt;/code&gt; — PC, GES, FCI, NOTEARS and other discovery algorithms&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;code inline=""&gt;networkx&lt;/code&gt; — graph visualization&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Example with &lt;code inline=""&gt;DoWhy&lt;/code&gt;:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-python"&gt;from dowhy import CausalModel

model = CausalModel(
    data=df,
    treatment="Interest",
    outcome="Apple",
    common_causes=["Inflation"]
)

identified_estimand = model.identify_effect()

estimate = model.estimate_effect(
    identified_estimand,
    method_name="backdoor.linear_regression"
)

print(estimate.value)
&lt;/code&gt;&lt;/pre&gt;&lt;hr /&gt;&lt;h1&gt;Final Project (MSc-Level)&lt;/h1&gt;&lt;p&gt;A strong capstone could combine:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;p&gt;Data collection&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Yahoo Finance&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;FRED (interest rates)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;RBI&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;FII/DII flows&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;VIX&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Crude oil&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;USD/INR&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;CPI&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Causal discovery&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;PC Algorithm&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;NOTEARS&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;LiNGAM&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Bayesian Network&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Build the DAG&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Learn conditional probability tables or continuous conditional distributions&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Causal forecasting&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Estimate intervention effects&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Perform counterfactual analysis&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Forecast index or stock prices under different macroeconomic scenarios&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Explainability&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Show which causal paths contributed most to the prediction&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Compare against LSTM, XGBoost, and Transformer models&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;This kind of project aligns well with your financial engineering background because it integrates probabilistic graphical models, macroeconomic reasoning, and interpretable AI rather than relying solely on black-box prediction.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;Open Source Open Mind&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHF_0nfoqywPHkIMRhC-q8KfdUyP5atxg42XgWXVlpfMHKOEksUcTxdfaGdrF54PdLbw0Ncgi76GsIalO12brJ2EB9L_kL7thhUSyOGFvQJb6RJ_2BsaMLuKZ8-4O3JOh_rQBTZSE-bgB5GCxPp_3zpRx3oiciQdh0S3JdR83_9pismj9DpUdpT4PKcjkS/s72-w553-h280-c/financial_causal_model_dag.webp" width="72"/><author>dhiraj.patra@gmail.com (dhiraj patra)</author></item><item><title>Scaling a Python application to serve millions of users</title><link>http://dhirajpatra.blogspot.com/2026/08/scaling-python-application-to-serve.html</link><category>architecture</category><category>cloud</category><category>python</category><pubDate>Tue, 4 Aug 2026 07:44:14 -0700</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8993867651193907565.post-6928504197494273254</guid><description>&lt;span data-di=""&gt;&lt;div style="font-size: 11pt;"&gt;Scaling a Python application to serve millions of users requires &lt;span style="background: #D3E3FD; font-weight: bold;"&gt;moving past single-server setups and bypassing Python’s Global Interpreter Lock (GIL) through modern architecture&lt;/span&gt;. True scale is achieved by making the application stateless, caching aggressively, offloading heavy lifting, and ensuring the database never becomes a bottleneck.&lt;/div&gt;&lt;br style="line-height: 11pt;" /&gt;&lt;div style="font-size: 11pt;"&gt;&lt;b&gt;1. Master Concurrency and Framework Selection &lt;/b&gt;&lt;/div&gt;&lt;br style="line-height: 11pt;" /&gt;&lt;div style="font-size: 13pt; font-weight: bold; margin-bottom: 11pt;"&gt;Python handles traffic differently depending on the chosen framework and runtime strategy: &lt;/div&gt;&lt;ul style="font-size: 11pt;"&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Use Async Frameworks&lt;/span&gt;: Transition from synchronous frameworks (like standard Flask or Django) to asynchronous frameworks like FastAPI or Sanic. Async frameworks handle thousands of concurrent I/O-bound connections on a single process using an event loop. &lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Optimize WSGI/ASGI Servers&lt;/span&gt;: Run applications behind multi-process workers. For Django/Flask, use &lt;span style="font-weight: bold;"&gt;Gunicorn&lt;/span&gt; with  or  workers. For FastAPI, utilize &lt;span style="font-weight: bold;"&gt;Uvicorn&lt;/span&gt; with a defined number of worker processes to fully utilize multi-core CPU architectures.&lt;/li&gt;&lt;/ul&gt;&lt;div style="font-size: 11pt;"&gt;&lt;b&gt;2. Design for Horizontal Scaling &lt;/b&gt;&lt;/div&gt;&lt;br style="line-height: 11pt;" /&gt;&lt;div style="font-size: 13pt; font-weight: bold; margin-bottom: 11pt;"&gt;A single machine will always hit physical hardware limits. &lt;/div&gt;&lt;ul style="font-size: 11pt;"&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Go Stateless&lt;/span&gt;: Never store user sessions, uploaded files, or state data directly on the application server memory. Move sessions to a shared cache and files to an object store like AWS S3. &lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Containerization&lt;/span&gt;: Package the app using Docker and manage it via Kubernetes. This allows automatic replication and auto-scaling of application instances based on real-time traffic spikes. &lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Reverse Proxy and Load Balancing&lt;/span&gt;: Deploy Nginx or HAProxy in front of application instances. They distribute the incoming million-user load evenly across your containerized fleet.&lt;/li&gt;&lt;/ul&gt;&lt;div style="font-size: 11pt;"&gt;&lt;b&gt;3. Eliminate Database Bottlenecks &lt;/b&gt;&lt;/div&gt;&lt;br style="line-height: 11pt;" /&gt;&lt;div style="font-size: 13pt; font-weight: bold; margin-bottom: 11pt;"&gt;The database is almost always the ultimate bottleneck in high-traffic applications. &lt;/div&gt;&lt;ul style="font-size: 11pt;"&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Connection Pooling&lt;/span&gt;: Creating a database connection for every user request kills performance. Use connection poolers like PgBouncer for PostgreSQL to reuse existing connections safely. &lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Read/Write Splitting&lt;/span&gt;: Route all data mutations (Writes) to a primary database instance, and distribute all fetches (Reads) across multiple read-replicas. &lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Database Sharding or NoSQL&lt;/span&gt;: When data outgrows a single database, shard relational data across multiple databases, or transition high-volume, non-relational telemetry to NoSQL databases like Cassandra or MongoDB.&lt;/li&gt;&lt;/ul&gt;&lt;div style="font-size: 11pt;"&gt;&lt;b&gt;4. Implement a Strict Caching Layer &lt;/b&gt;&lt;/div&gt;&lt;br style="line-height: 11pt;" /&gt;&lt;div style="font-size: 13pt; font-weight: bold; margin-bottom: 11pt;"&gt;The fastest database query is the one you never have to make. &lt;/div&gt;&lt;ul style="font-size: 11pt;"&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Application Caching&lt;/span&gt;: Implement Redis or Memcached directly in front of your database. Cache complex database queries, configuration settings, and user authorization tokens. &lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Edge Caching&lt;/span&gt;: Use a Content Delivery Network (CDN) like Cloudflare or  Amazon CloudFront  to cache and deliver static assets (images, JS, CSS) and API responses close to the user's geographic location.&lt;/li&gt;&lt;/ul&gt;&lt;div style="font-size: 11pt;"&gt;&lt;b&gt;5. Decouple via Asynchronous Task Queues &lt;/b&gt;&lt;/div&gt;&lt;br style="line-height: 11pt;" /&gt;&lt;div style="font-size: 13pt; font-weight: bold; margin-bottom: 11pt;"&gt;Never make a user wait for slow tasks during a standard HTTP request/response cycle. &lt;/div&gt;&lt;ul style="font-size: 11pt;"&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Task Offloading&lt;/span&gt;: Send notification emails, process image uploads, or run analytics in the background. &lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Message Brokers&lt;/span&gt;: Use Celery combined with RabbitMQ or Apache Kafka to handle background job distributions safely across dedicated worker nodes.&lt;/li&gt;&lt;/ul&gt;&lt;div style="font-size: 11pt;"&gt;&lt;b&gt;Summary Architecture Blueprint &lt;/b&gt;&lt;/div&gt;&lt;div style="font-size: 11pt;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span style="font-size: 14.6667px;"&gt;&lt;b&gt;[ Million Users ]&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 14.6667px;"&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;│&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 14.6667px;"&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;▼&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 14.6667px;"&gt;&lt;b&gt;&amp;nbsp;[ Cloudflare CDN ]&amp;nbsp; ───(Serves Static Files)&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 14.6667px;"&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;│&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 14.6667px;"&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;▼&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 14.6667px;"&gt;&lt;b&gt;&amp;nbsp;[ Nginx Load Balancer ]&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 14.6667px;"&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;│&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 14.6667px;"&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;▼&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 14.6667px;"&gt;&lt;b&gt;&amp;nbsp;[ Kubernetes Pods (FastAPI / Gunicorn Workers) ]&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 14.6667px;"&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;│&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 14.6667px;"&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;├───► [ Redis Cache ] (Fast Reads)&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 14.6667px;"&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;│&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 14.6667px;"&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;├───► [ Celery Workers ] ──► [ Background Tasks ]&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 14.6667px;"&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;│&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 14.6667px;"&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;▼&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 14.6667px;"&gt;&lt;b&gt;&amp;nbsp;[ PgBouncer / Database Cluster ] (Primary Write / Replica Reads)&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 14.6667px;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="font-size: 13pt; font-weight: bold; margin-bottom: 11pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;Open Source Open Mind&lt;/div&gt;</description><author>dhiraj.patra@gmail.com (dhiraj patra)</author></item><item><title>Beyond Spot-Checking: Why LLM Applications Require Specialized Evaluation</title><link>http://dhirajpatra.blogspot.com/2026/07/beyond-spot-checking-why-llm.html</link><category>artificial intelligence</category><category>evaluation</category><category>generativeai</category><category>llm</category><category>llmops</category><category>rag</category><pubDate>Tue, 28 Jul 2026 03:37:36 -0700</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8993867651193907565.post-6268698855965105360</guid><description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3nUj6abzcw-3zXgVaKYmFeNEL-IUm0yeXdcRHtSjOgS74KzN3QpSMC5gbrUviMdV7P1Pkn_BXH0WzzrUb2S6rU2I6HqkYwzqMD-_xwiDHjMmyutxd-kg1KR1EMCMQ0NN0-rAH2_rovaTNtr9fGXIgiT7-ot4bdoZcs_8aeQZubReG6Nsbaz3o_NS0BOks/s1920/rag_ai_agent_evaluation_flow.jpg" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="1280" data-original-width="1920" height="213" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3nUj6abzcw-3zXgVaKYmFeNEL-IUm0yeXdcRHtSjOgS74KzN3QpSMC5gbrUviMdV7P1Pkn_BXH0WzzrUb2S6rU2I6HqkYwzqMD-_xwiDHjMmyutxd-kg1KR1EMCMQ0NN0-rAH2_rovaTNtr9fGXIgiT7-ot4bdoZcs_8aeQZubReG6Nsbaz3o_NS0BOks/s320/rag_ai_agent_evaluation_flow.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimK6Wl1zwXyh7rBfh-BitfS3g6nPGAmW5koF-ZfPMOsaLR_WEwmIIqQ-RWxvwgXnP5GCY_CNoTi06IgJWWcRGi3_3qSNGnhQ0VFtzYz2JYnJLXaqemdNwfaCyEFfqotAOwLpHEl4rt8G90tSSJxk6HYPzRDlGIqE45JiYn2YthXDBhADAgTQAjmUX2wNNp/s1920/llm_evaluation_dashboard.jpg" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="1280" data-original-width="1920" height="213" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimK6Wl1zwXyh7rBfh-BitfS3g6nPGAmW5koF-ZfPMOsaLR_WEwmIIqQ-RWxvwgXnP5GCY_CNoTi06IgJWWcRGi3_3qSNGnhQ0VFtzYz2JYnJLXaqemdNwfaCyEFfqotAOwLpHEl4rt8G90tSSJxk6HYPzRDlGIqE45JiYn2YthXDBhADAgTQAjmUX2wNNp/s320/llm_evaluation_dashboard.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjVFD3SKfIhU2WXS0CYv6Acp6-cSOPbia8PCWPRAxJggavhcfOBpLagr7zP93AweNg72uv3g2clshO1KGBqoqW2Th8l7JyavhStd9SijIcTQ-kOTUW7ip0RuXgj8ye7iQWE5_qL-_Zoa3zAaJO9JmJOjwQ1nr8sRx8bSxDQpTRgmI0d_288YL3vjLwN3WQ/s1920/llm_evaluation_taxonomy_mindmap.jpg" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="1280" data-original-width="1920" height="213" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjVFD3SKfIhU2WXS0CYv6Acp6-cSOPbia8PCWPRAxJggavhcfOBpLagr7zP93AweNg72uv3g2clshO1KGBqoqW2Th8l7JyavhStd9SijIcTQ-kOTUW7ip0RuXgj8ye7iQWE5_qL-_Zoa3zAaJO9JmJOjwQ1nr8sRx8bSxDQpTRgmI0d_288YL3vjLwN3WQ/s320/llm_evaluation_taxonomy_mindmap.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;images generated by meta ai&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;div _ngcontent-ng-c1229960162="" aria-busy="false" aria-live="polite" class="markdown markdown-main-panel enable-luminous-fast-follows enable-updated-hr-color md-content stronger tutor-markdown-rendering" dir="ltr" id="model-response-message-contentr_2655ceae91e5edc0" inline-copy-host="" style="--animation-duration: 400ms; --fade-animation-function: ease-out; animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: flex; fill: rgb(0, 0, 0); filter: none; flex-direction: column; flex: 0 1 auto; float: none; gap: 16px; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;p style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; color: #1f1f1f; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; text-align: left; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;span face="&amp;quot;Google Sans Text&amp;quot;, sans-serif"&gt;Building applications with Large Language Models (LLMs) feels deceptively fast at first. A single engineer can write a prompt or connect a database using Retrieval-Augmented Generation (RAG) and get a working prototype in a afternoon.&lt;/span&gt;&lt;/p&gt;&lt;p data-path-to-node="2" id="p-rc_d3f9715f06918a14-48" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; color: #1f1f1f; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;However, moving that prototype into production is where the real challenge begins. &lt;span class="citation-77" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Unlike traditional software that fails loudly with a stack trace when a bug occurs, LLMs fail &lt;/span&gt;&lt;b data-index-in-node="177" data-path-to-node="2" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;silently and plausibly&lt;/b&gt;&lt;span class="citation-77 citation-end-77" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;.&lt;source-footnote _nghost-ng-c1494966972="" ng-version="0.0.0-PLACEHOLDER" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;sup _ngcontent-ng-c1494966972="" class="superscript" data-turn-source-index="1" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-color: transparent !important; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; background: none 0% 0% / auto repeat scroll padding-box border-box transparent; border: 0px rgb(68, 71, 70); clear: none; clip: auto; color: #444746; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline-flex; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-size: 16px; gap: normal; hyphens: manual; inset: -10px 2px 10px -2px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: -6px; margin-right: -6px; margin-top: 0px !important; margin: 0px -6px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(68, 71, 70) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(68, 71, 70); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;!----&gt;&lt;/sup&gt;&lt;/source-footnote&gt;&lt;/span&gt; A system can return confident answers that are completely hallucinated, subtly outdated, or entirely off-topic without throwing a single runtime error.&lt;sources-carousel-inline _nghost-ng-c1309300032="" ng-version="0.0.0-PLACEHOLDER" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;  &lt;source-inline-chip _ngcontent-ng-c1309300032="" _nghost-ng-c1612898071="" class="ng-star-inserted" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/source-inline-chip&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/sources-carousel-inline&gt;&lt;/p&gt;&lt;p data-path-to-node="3" id="p-rc_d3f9715f06918a14-49" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; color: #1f1f1f; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Manual "vibes-based" spot-checking—asking 5 to 10 questions and assuming the app works—does not scale. &lt;span class="citation-76" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Modern AI evaluation (often called &lt;/span&gt;&lt;i data-index-in-node="138" data-path-to-node="3" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;LLM Eval&lt;/i&gt;&lt;span class="citation-76 citation-end-76" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;) replaces guesswork with structured measurement.&lt;source-footnote _nghost-ng-c1494966972="" ng-version="0.0.0-PLACEHOLDER" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;sup _ngcontent-ng-c1494966972="" class="superscript" data-turn-source-index="2" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-color: transparent !important; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; background: none 0% 0% / auto repeat scroll padding-box border-box transparent; border: 0px rgb(68, 71, 70); clear: none; clip: auto; color: #444746; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline-flex; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-size: 16px; gap: normal; hyphens: manual; inset: -10px 2px 10px -2px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: -6px; margin-right: -6px; margin-top: 0px !important; margin: 0px -6px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(68, 71, 70) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(68, 71, 70); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;!----&gt;&lt;/sup&gt;&lt;/source-footnote&gt;&lt;/span&gt;&lt;sources-carousel-inline _nghost-ng-c1309300032="" ng-version="0.0.0-PLACEHOLDER" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;  &lt;source-inline-chip _ngcontent-ng-c1309300032="" _nghost-ng-c1612898071="" class="ng-star-inserted" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/source-inline-chip&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/sources-carousel-inline&gt;&lt;/p&gt;&lt;h2 data-path-to-node="5" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; color: #1f1f1f; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Why Is LLM Evaluation Necessary?&lt;/h2&gt;&lt;h3 data-path-to-node="6" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; color: #1f1f1f; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: -8px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px 0px -8px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;1. Catching Silent Regressions&lt;/h3&gt;&lt;p data-path-to-node="7" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; color: #1f1f1f; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;When you tweak a prompt to fix one edge case, change your vector database's top-&lt;span class="math-inline" data-index-in-node="80" data-math="k" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;$k$&lt;/span&gt; search parameter, or switch underlying models (e.g., upgrading from GPT-4o to Claude 3.5 Sonnet), how do you know you didn't break 20 other behaviors? Automated evaluation frameworks run your entire benchmark suite automatically, acting as a quality gate before bad changes hit users.&lt;/p&gt;&lt;h3 data-path-to-node="8" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; color: #1f1f1f; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: -8px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px 0px -8px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;2. Disentangling Retrieval vs. Generation Failures&lt;/h3&gt;&lt;p data-path-to-node="9" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; color: #1f1f1f; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;If an AI assistant gives a poor answer, identifying &lt;i data-index-in-node="52" data-path-to-node="9" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;why&lt;/i&gt; it failed can be tricky:&lt;/p&gt;&lt;ul data-path-to-node="10" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; color: #1f1f1f; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding-inline-start: 32px; padding: 0px 0px 0px 3.36px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;p data-path-to-node="10,0,0" id="p-rc_d3f9715f06918a14-50" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;span class="citation-75 citation-end-75" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Did the retrieval system fail to find the right source documents (Context Recall issue)?&lt;source-footnote _nghost-ng-c1494966972="" ng-version="0.0.0-PLACEHOLDER" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;sup _ngcontent-ng-c1494966972="" class="superscript" data-turn-source-index="3" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-color: transparent !important; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; background: none 0% 0% / auto repeat scroll padding-box border-box transparent; border: 0px rgb(68, 71, 70); clear: none; clip: auto; color: #444746; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline-flex; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-size: 16px; gap: normal; hyphens: manual; inset: -10px 2px 10px -2px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: -6px; margin-right: -6px; margin-top: 0px !important; margin: 0px -6px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(68, 71, 70) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(68, 71, 70); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;!----&gt;&lt;/sup&gt;&lt;/source-footnote&gt;&lt;/span&gt;&lt;sources-carousel-inline _nghost-ng-c1309300032="" ng-version="0.0.0-PLACEHOLDER" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;  &lt;source-inline-chip _ngcontent-ng-c1309300032="" _nghost-ng-c1612898071="" class="ng-star-inserted" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/source-inline-chip&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/sources-carousel-inline&gt;&lt;/p&gt;&lt;/li&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;p data-path-to-node="10,1,0" id="p-rc_d3f9715f06918a14-51" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;span class="citation-74 citation-end-74" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Did the retriever pull the right documents, but the LLM ignored them and made things up (Faithfulness issue)?&lt;source-footnote _nghost-ng-c1494966972="" ng-version="0.0.0-PLACEHOLDER" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;sup _ngcontent-ng-c1494966972="" class="superscript" data-turn-source-index="4" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-color: transparent !important; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; background: none 0% 0% / auto repeat scroll padding-box border-box transparent; border: 0px rgb(68, 71, 70); clear: none; clip: auto; color: #444746; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline-flex; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-size: 16px; gap: normal; hyphens: manual; inset: -10px 2px 10px -2px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: -6px; margin-right: -6px; margin-top: 0px !important; margin: 0px -6px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(68, 71, 70) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(68, 71, 70); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;!----&gt;&lt;/sup&gt;&lt;/source-footnote&gt;&lt;/span&gt;&lt;sources-carousel-inline _nghost-ng-c1309300032="" ng-version="0.0.0-PLACEHOLDER" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;  &lt;source-inline-chip _ngcontent-ng-c1309300032="" _nghost-ng-c1612898071="" class="ng-star-inserted" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/source-inline-chip&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/sources-carousel-inline&gt;&lt;/p&gt;&lt;/li&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;p data-path-to-node="10,2,0" id="p-rc_d3f9715f06918a14-52" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;span class="citation-73 citation-end-73" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Did the model answer correctly based on the documents, but fail to directly address what the user actually asked (Answer Relevancy issue)?&lt;source-footnote _nghost-ng-c1494966972="" ng-version="0.0.0-PLACEHOLDER" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;sup _ngcontent-ng-c1494966972="" class="superscript" data-turn-source-index="5" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-color: transparent !important; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; background: none 0% 0% / auto repeat scroll padding-box border-box transparent; border: 0px rgb(68, 71, 70); clear: none; clip: auto; color: #444746; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline-flex; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-size: 16px; gap: normal; hyphens: manual; inset: -10px 2px 10px -2px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: -6px; margin-right: -6px; margin-top: 0px !important; margin: 0px -6px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(68, 71, 70) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(68, 71, 70); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;!----&gt;&lt;/sup&gt;&lt;/source-footnote&gt;&lt;/span&gt;&lt;sources-carousel-inline _nghost-ng-c1309300032="" ng-version="0.0.0-PLACEHOLDER" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;  &lt;source-inline-chip _ngcontent-ng-c1309300032="" _nghost-ng-c1612898071="" class="ng-star-inserted" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/source-inline-chip&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/sources-carousel-inline&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p data-path-to-node="11" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; color: #1f1f1f; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Automated frameworks isolate these components so developers fix the exact component that broke rather than blindly editing prompts.&lt;/p&gt;&lt;h3 data-path-to-node="12" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; color: #1f1f1f; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: -8px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px 0px -8px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;3. Cost and Latency Optimization&lt;/h3&gt;&lt;p data-path-to-node="13" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; color: #1f1f1f; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Smaller, cheaper models or fine-tuned open-source variants often run significantly faster and at a fraction of the cost compared to frontier models. Systematically evaluating quality allows teams to confidently downgrade model size for simpler tasks without regressing user experience.&lt;/p&gt;&lt;h3 data-path-to-node="14" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; color: #1f1f1f; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: -8px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px 0px -8px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;4. Safety, Red-Teaming, and Compliance&lt;/h3&gt;&lt;p data-path-to-node="15" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; color: #1f1f1f; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Enterprise apps require guardrails against prompt injection attacks, toxicity, data leakage, and brand damage. Systematic evaluation tests applications against thousands of adversarial inputs automatically to uncover security vulnerabilities before attackers do.&lt;/p&gt;&lt;h2 data-path-to-node="17" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; color: #1f1f1f; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;How Evaluation Frameworks Help (and How They Compare)&lt;/h2&gt;&lt;p data-path-to-node="18" id="p-rc_d3f9715f06918a14-53" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; color: #1f1f1f; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;span class="citation-72 citation-end-72" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Specialized evaluation frameworks automate the process of measuring, scoring, and tracking AI behavior.&lt;source-footnote _nghost-ng-c1494966972="" ng-version="0.0.0-PLACEHOLDER" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;sup _ngcontent-ng-c1494966972="" class="superscript" data-turn-source-index="6" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-color: transparent !important; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; background: none 0% 0% / auto repeat scroll padding-box border-box transparent; border: 0px rgb(68, 71, 70); clear: none; clip: auto; color: #444746; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline-flex; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-size: 16px; gap: normal; hyphens: manual; inset: -10px 2px 10px -2px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: -6px; margin-right: -6px; margin-top: 0px !important; margin: 0px -6px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(68, 71, 70) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(68, 71, 70); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;!----&gt;&lt;/sup&gt;&lt;/source-footnote&gt;&lt;/span&gt; &lt;span class="citation-71 citation-end-71" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Rather than competing for the same task, the four leading tools serve distinct phases of the development cycle:&lt;source-footnote _nghost-ng-c1494966972="" ng-version="0.0.0-PLACEHOLDER" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;sup _ngcontent-ng-c1494966972="" class="superscript" data-turn-source-index="7" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-color: transparent !important; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; background: none 0% 0% / auto repeat scroll padding-box border-box transparent; border: 0px rgb(68, 71, 70); clear: none; clip: auto; color: #444746; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline-flex; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-size: 16px; gap: normal; hyphens: manual; inset: -10px 2px 10px -2px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: -6px; margin-right: -6px; margin-top: 0px !important; margin: 0px -6px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(68, 71, 70) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(68, 71, 70); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;!----&gt;&lt;/sup&gt;&lt;/source-footnote&gt;&lt;/span&gt;&lt;sources-carousel-inline _nghost-ng-c1309300032="" ng-version="0.0.0-PLACEHOLDER" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;  &lt;source-inline-chip _ngcontent-ng-c1309300032="" _nghost-ng-c1612898071="" class="ng-star-inserted" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/source-inline-chip&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/sources-carousel-inline&gt;&lt;/p&gt;&lt;response-element class="no-md" ng-version="0.0.0-PLACEHOLDER" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; color: #1f1f1f; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;code-block _nghost-ng-c1436864849="" class="ng-tns-c1436864849-106 enable-luminous-code-block ng-star-inserted" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;!----&gt;&lt;!----&gt;&lt;div _ngcontent-ng-c1436864849="" class="code-block ng-tns-c1436864849-106 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation" data-hveid="0" data-ved="0CAAQhtANahgKEwiGgLvi0fKVAxUAAAAAHQAAAAAQygE" decode-data-ved="1" jslog="223238;track:impression,attention;BardVeMetadataKey:[[&amp;quot;r_2655ceae91e5edc0&amp;quot;,&amp;quot;c_6fa19ed31de5531a&amp;quot;,null,&amp;quot;rc_d3f9715f06918a14&amp;quot;,null,null,&amp;quot;en&amp;quot;,null,1,null,null,1,0]]" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: -16px; margin-right: -16px; margin-top: 0px !important; margin: 0px -16px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;!----&gt;&lt;div _ngcontent-ng-c1436864849="" class="formatted-code-block-internal-container ng-tns-c1436864849-106" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(20, 20, 20); border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 26px 0px 32px 32px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;div _ngcontent-ng-c1436864849="" class="animated-opacity ng-tns-c1436864849-106" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;!----&gt;&lt;pre _ngcontent-ng-c1436864849="" class="ng-tns-c1436864849-106" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;code _ngcontent-ng-c1436864849="" class="code-container formatted ng-tns-c1436864849-106 no-decoration-radius" data-test-id="code-content" role="text" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgb(255, 255, 255); clear: none; clip: auto; color: white; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: block; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 14px; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(255, 255, 255) none 3px; overlay: none; padding: 16px 0px 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(255, 255, 255); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;      +-------------------------------------------------------------+
      |                DEVELOPMENT &amp;amp; ITERATION                      |
      +------------------------------+------------------------------+
                                     |
    [ Promptfoo ]                    |            [ DeepEval ]
  * Multi-model testing              |          * Pytest integration
  * Prompt optimization              |          * CI/CD build gates
  * Security red-teaming             |          * Continuous unit tests
                                     |
      +------------------------------+------------------------------+
      |               EVALUATION &amp;amp; OBSERVABILITY                    |
      +------------------------------+------------------------------+
                                     |
      [ RAGAS ]                      |            [ TruLens ]
  * Deep RAG component scoring       |          * Full tracing dashboard
  * Academic-grade algorithms        |          * "RAG Triad" monitoring
                                     v
                       +---------------------------+
                       |    PRODUCTION APP STORE   |
                       +---------------------------+
&lt;/code&gt;&lt;/pre&gt;&lt;!----&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/code-block&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/response-element&gt;&lt;h3 data-path-to-node="20" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; color: #1f1f1f; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: -8px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px 0px -8px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;1. DeepEval: Bringing Unit-Testing Rigor to CI/CD&lt;/h3&gt;&lt;ul data-path-to-node="21" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; color: #1f1f1f; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding-inline-start: 32px; padding: 0px 0px 0px 3.36px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;p data-path-to-node="21,0,0" id="p-rc_d3f9715f06918a14-54" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;b data-index-in-node="0" data-path-to-node="21,0,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;How it helps:&lt;/b&gt; &lt;span class="citation-70" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Integrates directly into existing test runners like &lt;/span&gt;&lt;code data-index-in-node="66" data-path-to-node="21,0,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(242, 240, 240); border: 0px rgba(0, 0, 0, 0.55); clear: none; clip: auto; color: rgba(0, 0, 0, 0.55); columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 15px; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgba(0, 0, 0, 0.55) none 3px; overlay: none; padding: 4px 6px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgba(0, 0, 0, 0.55); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;span class="citation-70" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); border: 0px rgba(0, 0, 0, 0.55); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-stretch: normal; font-variant: normal; font-variation-settings: normal; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgba(0, 0, 0, 0.55) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgba(0, 0, 0, 0.55); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;pytest&lt;/span&gt;&lt;/code&gt;&lt;span class="citation-70 citation-end-70" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;. &lt;source-footnote _nghost-ng-c1494966972="" ng-version="0.0.0-PLACEHOLDER" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;sup _ngcontent-ng-c1494966972="" class="superscript" data-turn-source-index="8" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-color: transparent !important; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; background: none 0% 0% / auto repeat scroll padding-box border-box transparent; border: 0px rgb(68, 71, 70); clear: none; clip: auto; color: #444746; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline-flex; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-size: 16px; gap: normal; hyphens: manual; inset: -10px 2px 10px -2px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: -6px; margin-right: -6px; margin-top: 0px !important; margin: 0px -6px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(68, 71, 70) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(68, 71, 70); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;!----&gt;&lt;/sup&gt;&lt;/source-footnote&gt;&lt;/span&gt;If a prompt change causes your model's relevancy or hallucination score to fall below a defined threshold (e.g., 85%), your pull request build fails.&lt;sources-carousel-inline _nghost-ng-c1309300032="" ng-version="0.0.0-PLACEHOLDER" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;  &lt;source-inline-chip _ngcontent-ng-c1309300032="" _nghost-ng-c1612898071="" class="ng-star-inserted" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/source-inline-chip&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/sources-carousel-inline&gt;&lt;/p&gt;&lt;/li&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;p data-path-to-node="21,1,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;b data-index-in-node="0" data-path-to-node="21,1,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Best outcome:&lt;/b&gt; Prevents broken model changes from ever reaching production.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-path-to-node="22" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; color: #1f1f1f; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: -8px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px 0px -8px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;2. RAGAS: Diagnosing Complex Knowledge Pipelines&lt;/h3&gt;&lt;ul data-path-to-node="23" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; color: #1f1f1f; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding-inline-start: 32px; padding: 0px 0px 0px 3.36px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;p data-path-to-node="23,0,0" id="p-rc_d3f9715f06918a14-55" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;b data-index-in-node="0" data-path-to-node="23,0,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;How it helps:&lt;/b&gt; &lt;span class="citation-69 citation-end-69" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Uses reference-free mathematical and algorithmic scoring to isolate retrieval metrics (Context Precision, Context Recall) from generation metrics (Faithfulness, Answer Relevancy).&lt;source-footnote _nghost-ng-c1494966972="" ng-version="0.0.0-PLACEHOLDER" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;sup _ngcontent-ng-c1494966972="" class="superscript" data-turn-source-index="9" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-color: transparent !important; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; background: none 0% 0% / auto repeat scroll padding-box border-box transparent; border: 0px rgb(68, 71, 70); clear: none; clip: auto; color: #444746; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline-flex; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-size: 16px; gap: normal; hyphens: manual; inset: -10px 2px 10px -2px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: -6px; margin-right: -6px; margin-top: 0px !important; margin: 0px -6px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(68, 71, 70) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(68, 71, 70); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;!----&gt;&lt;/sup&gt;&lt;/source-footnote&gt;&lt;/span&gt;&lt;sources-carousel-inline _nghost-ng-c1309300032="" ng-version="0.0.0-PLACEHOLDER" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;  &lt;source-inline-chip _ngcontent-ng-c1309300032="" _nghost-ng-c1612898071="" class="ng-star-inserted" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/source-inline-chip&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/sources-carousel-inline&gt;&lt;/p&gt;&lt;/li&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;p data-path-to-node="23,1,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;b data-index-in-node="0" data-path-to-node="23,1,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Best outcome:&lt;/b&gt; Tells engineers exactly whether to adjust chunk sizes in their vector database or rewrite generation prompts.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-path-to-node="24" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; color: #1f1f1f; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: -8px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px 0px -8px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;3. TruLens: Observability and Visual Tracing&lt;/h3&gt;&lt;ul data-path-to-node="25" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; color: #1f1f1f; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding-inline-start: 32px; padding: 0px 0px 0px 3.36px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;p data-path-to-node="25,0,0" id="p-rc_d3f9715f06918a14-56" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;b data-index-in-node="0" data-path-to-node="25,0,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;How it helps:&lt;/b&gt; Instruments the execution path of complex agent chains and RAG pipelines. &lt;span class="citation-68" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;It evaluates each step using the &lt;/span&gt;&lt;b data-index-in-node="121" data-path-to-node="25,0,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;RAG Triad&lt;/b&gt;&lt;span class="citation-68 citation-end-68" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt; and visualizes step-by-step traces in a local UI.&lt;source-footnote _nghost-ng-c1494966972="" ng-version="0.0.0-PLACEHOLDER" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;sup _ngcontent-ng-c1494966972="" class="superscript" data-turn-source-index="10" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-color: transparent !important; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; background: none 0% 0% / auto repeat scroll padding-box border-box transparent; border: 0px rgb(68, 71, 70); clear: none; clip: auto; color: #444746; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline-flex; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-size: 16px; gap: normal; hyphens: manual; inset: -10px 2px 10px -2px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: -6px; margin-right: -6px; margin-top: 0px !important; margin: 0px -6px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(68, 71, 70) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(68, 71, 70); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;!----&gt;&lt;/sup&gt;&lt;/source-footnote&gt;&lt;/span&gt;&lt;sources-carousel-inline _nghost-ng-c1309300032="" ng-version="0.0.0-PLACEHOLDER" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;  &lt;source-inline-chip _ngcontent-ng-c1309300032="" _nghost-ng-c1612898071="" class="ng-star-inserted" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/source-inline-chip&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/sources-carousel-inline&gt;&lt;/p&gt;&lt;/li&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;p data-path-to-node="25,1,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;b data-index-in-node="0" data-path-to-node="25,1,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Best outcome:&lt;/b&gt; Enables developers to inspect why multi-step agents failed and identify bottleneck steps instantly.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-path-to-node="26" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; color: #1f1f1f; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: -8px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px 0px -8px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;4. Promptfoo: Fast Matrix Benchmarking and Security Red-Teaming&lt;/h3&gt;&lt;ul data-path-to-node="27" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; color: #1f1f1f; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding-inline-start: 32px; padding: 0px 0px 0px 3.36px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;p data-path-to-node="27,0,0" id="p-rc_d3f9715f06918a14-57" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;b data-index-in-node="0" data-path-to-node="27,0,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;How it helps:&lt;/b&gt; Uses simple, declarative YAML configuration files to run matrix evaluations across combinations of inputs, prompts, and model providers simultaneously. &lt;span class="citation-67 citation-end-67" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;It also features built-in automated security scanning.&lt;source-footnote _nghost-ng-c1494966972="" ng-version="0.0.0-PLACEHOLDER" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;sup _ngcontent-ng-c1494966972="" class="superscript" data-turn-source-index="11" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-color: transparent !important; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; background: none 0% 0% / auto repeat scroll padding-box border-box transparent; border: 0px rgb(68, 71, 70); clear: none; clip: auto; color: #444746; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline-flex; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-size: 16px; gap: normal; hyphens: manual; inset: -10px 2px 10px -2px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: -6px; margin-right: -6px; margin-top: 0px !important; margin: 0px -6px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(68, 71, 70) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(68, 71, 70); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;!----&gt;&lt;/sup&gt;&lt;/source-footnote&gt;&lt;/span&gt;&lt;sources-carousel-inline _nghost-ng-c1309300032="" ng-version="0.0.0-PLACEHOLDER" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;  &lt;source-inline-chip _ngcontent-ng-c1309300032="" _nghost-ng-c1612898071="" class="ng-star-inserted" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/source-inline-chip&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/sources-carousel-inline&gt;&lt;/p&gt;&lt;/li&gt;&lt;li style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 36px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;p data-path-to-node="27,1,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px 0px 0px 4px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;b data-index-in-node="0" data-path-to-node="27,1,0" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Best outcome:&lt;/b&gt; Helps teams rapidly compare 5 prompt variations across 3 different models to find the most cost-effective combination while flagging potential prompt injection vulnerabilities.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&lt;b&gt;Evaluating Large Language Model (LLM)&lt;/b&gt; applications—especially Retrieval-Augmented Generation (RAG) systems—requires moving beyond manual spot-checks. Four of the most prominent frameworks for this are &lt;b&gt;DeepEval&lt;/b&gt;, &lt;b&gt;RAGAS&lt;/b&gt;, &lt;b&gt;TruLens&lt;/b&gt;, and &lt;b&gt;Promptfoo&lt;/b&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;While all four help test model quality, they shine in different parts of the developer workflow.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;---&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&lt;b&gt;Quick Comparison&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;| Tool&amp;nbsp; &amp;nbsp; &amp;nbsp; | Primary Focus&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; | Best Used For&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; | Interface&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;| ---&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;| ------------------------------------------ | ----------------------------------- | -------------------- |&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;| DeepEval | Unit testing for LLMs | Developer CI/CD test automation | Python (`pytest`) |&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;| RAGAS | Component-level RAG metrics | Deep evaluation of retrieval vs. generation | Python |&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;| TruLens | The "RAG Triad" + App Observability | Instrumenting and tracking app performance | Python + UI Dashboard |&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;| Promptfoo | Prompt &amp;amp; model benchmarking | Fast matrix testing (Prompts × Models) | CLI / YAML / JS |&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&lt;b&gt;1. DeepEval: Pytest for LLMs&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;DeepEval models LLM evaluation similarly to unit testing. It integrates natively with Python test runners like `pytest`, allowing you to write assertions on LLM outputs and fail CI/CD builds if model performance drops below a specified threshold.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;```python&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;# pip install deepeval&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;from deepeval import assert_test&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;from deepeval.test_case import LLMTestCase&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;from deepeval.metrics import AnswerRelevancyMetric&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;def test_answer_relevance():&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&amp;nbsp; &amp;nbsp; # 1. Define input, retrieved contexts, and the actual output&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&amp;nbsp; &amp;nbsp; test_case = LLMTestCase(&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; input="What is the refund policy?",&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; actual_output="You can return items within 30 days for a full refund.",&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; retrieval_context=["Our policy allows full refunds for returns processed within 30 days of purchase."]&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&amp;nbsp; &amp;nbsp; )&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&amp;nbsp; &amp;nbsp; # 2. Set up metric with threshold (0.0 to 1.0)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&amp;nbsp; &amp;nbsp; relevancy_metric = AnswerRelevancyMetric(threshold=0.7)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&amp;nbsp; &amp;nbsp; # 3. Assert (fails pytest if score &amp;lt; 0.7)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&amp;nbsp; &amp;nbsp; assert_test(test_case, [relevancy_metric])&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;```&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&lt;b&gt;2. RAGAS: Mathematical RAG Metrics&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;RAGAS (Retrieval Augmented Generation Assessment) focuses on quantifying the quality of RAG components separately. It breaks down evaluation into specific dimensions:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&lt;b&gt;Faithfulness:&lt;/b&gt;&amp;nbsp;Is the output grounded strictly in the retrieved text?&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&lt;b&gt;Answer Relevance:&lt;/b&gt;&amp;nbsp;Does the output actually answer the query?&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&lt;b&gt;Context Precision / Recall:&lt;/b&gt;&amp;nbsp;Did the retriever pull the right documents?&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;```python&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;# pip install ragas datasets&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;from datasets import Dataset&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;from ragas import evaluate&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;from ragas.metrics import faithfulness, answer_relevance&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;# Prepare evaluation dataset&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;data = {&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&amp;nbsp; &amp;nbsp; "question": ["When was the company founded?"],&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&amp;nbsp; &amp;nbsp; "contexts": [["Acme Corp was established in 2010 by Jane Doe."]],&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&amp;nbsp; &amp;nbsp; "answer": ["Acme Corp was founded in 2010."],&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;dataset = Dataset.from_dict(data)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;# Run batch evaluation&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;results = evaluate(&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&amp;nbsp; &amp;nbsp; dataset=dataset,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&amp;nbsp; &amp;nbsp; metrics=[faithfulness, answer_relevance]&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;print(results)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;# Output: {'faithfulness': 1.0, 'answer_relevance': 1.0}&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;```&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&lt;b&gt;3. TruLens: The "RAG Triad" &amp;amp; Dashboard&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;TruLens introduces &lt;b&gt;The RAG Triad&lt;/b&gt;&amp;nbsp;framework (Context Relevance, Groundedness, Answer Relevance) and wraps LLM frameworks (like LangChain or LlamaIndex) with feedback functions. It includes an interactive local dashboard to visually trace inputs, retrieved chunks, and scores.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;```python&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;# pip install trulens_eval&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;from trulens_eval import Tru, Feedback, TruChain&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;from trulens_eval.feedback.provider.openai import OpenAI as OpenAIProvider&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;tru = Tru()&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;# Define Feedback Functions (e.g., Groundedness using OpenAI as judge)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;provider = OpenAIProvider()&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;f_groundedness = Feedback(provider.groundedness_measure_with_cot_reasons).on_thought()&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;# Wrap your existing application (e.g., a LangChain rag_chain)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;tru_recorder = TruChain(&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&amp;nbsp; &amp;nbsp; rag_chain,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&amp;nbsp; &amp;nbsp; app_id="RAG_v1",&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&amp;nbsp; &amp;nbsp; feedbacks=[f_groundedness]&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;# Run application inside recorder context&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;with tru_recorder:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&amp;nbsp; &amp;nbsp; response = rag_chain.invoke("How do I reset my password?")&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;# Launch the visual dashboard&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;tru.run_dashboard()&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;```&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&lt;b&gt;4. Promptfoo: CLI-Based Prompt &amp;amp; Model Benchmarking&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;Unlike the Python-heavy tools above, Promptfoo uses declarative YAML configurations. It is ideal for testing how different prompts, temperature settings, or models (e.g., OpenAI vs. Anthropic vs. local models) perform across a matrix of inputs.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;Step 1: Write `promptfooconfig.yaml`&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;```yaml&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;prompts:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&amp;nbsp; - "Summarize this article in one sentence: {{article}}"&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&amp;nbsp; - "Give a 3-bullet-point summary of this text: {{article}}"&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;providers:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&amp;nbsp; - openai:gpt-4o&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&amp;nbsp; - anthropic:messages:claude-3-5-sonnet-20241022&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;tests:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&amp;nbsp; - vars:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; article: "Retrieval-Augmented Generation (RAG) improves LLM factual accuracy by fetching external documents before generation."&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&amp;nbsp; &amp;nbsp; assert:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - type: contains&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; value: "RAG"&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - type: llm-rubric&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; value: "is concise and avoids jargon"&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;```&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;Step 2: Run via terminal&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;```bash&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;npx promptfoo@latest eval&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;npx promptfoo@latest view&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;```&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;This generates a side-by-side matrix comparison table in your terminal or browser.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;---&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&lt;b&gt;How to Choose&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;Choose &lt;b&gt;Promptfoo&lt;/b&gt;&amp;nbsp;when optimizing prompts, testing model switches, or collaborating via simple YAML files without writing Python code.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;Choose &lt;b&gt;DeepEval&lt;/b&gt;&amp;nbsp;when writing automated `pytest` test suites for CI/CD pipelines.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;Choose &lt;b&gt;RAGAS&lt;/b&gt;&amp;nbsp;for running batch evaluation on dataset benchmarks to evaluate retrieval vs. generation quality.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="Google Sans Text, sans-serif" style="color: #1f1f1f;"&gt;Choose &lt;b&gt;TruLens&lt;/b&gt;&amp;nbsp;when building complex agent workflows that require step-by-step tracing and UI dashboards.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;h2 data-path-to-node="29" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; color: #1f1f1f; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Conclusion&lt;/h2&gt;&lt;p data-path-to-node="30" id="p-rc_d3f9715f06918a14-58" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; color: #1f1f1f; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Evaluation turns LLM engineering from an unpredictable art into a repeatable discipline. &lt;span class="citation-66" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;By combining these frameworks—using &lt;/span&gt;&lt;b data-index-in-node="125" data-path-to-node="30" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;Promptfoo&lt;/b&gt;&lt;span class="citation-66" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt; to design prompts, &lt;/span&gt;&lt;b data-index-in-node="154" data-path-to-node="30" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;RAGAS&lt;/b&gt;&lt;span class="citation-66" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt; to benchmark retrieval quality, &lt;/span&gt;&lt;b data-index-in-node="192" data-path-to-node="30" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;DeepEval&lt;/b&gt;&lt;span class="citation-66" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt; to enforce CI/CD gates, and &lt;/span&gt;&lt;b data-index-in-node="229" data-path-to-node="30" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;TruLens&lt;/b&gt;&lt;span class="citation-66 citation-end-66" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt; to monitor traces—teams can ship AI products with the same speed, reliability, and confidence as traditional software.&lt;source-footnote _nghost-ng-c1494966972="" ng-version="0.0.0-PLACEHOLDER" style="animation: auto ease 0s 1 normal none running none; appearance: none; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;sup _ngcontent-ng-c1494966972="" class="superscript" data-turn-source-index="12" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-color: transparent !important; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; background: none 0% 0% / auto repeat scroll padding-box border-box transparent; border: 0px rgb(68, 71, 70); clear: none; clip: auto; color: #444746; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline-flex; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; font-size: 16px; gap: normal; hyphens: manual; inset: -10px 2px 10px -2px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: -6px; margin-right: -6px; margin-top: 0px !important; margin: 0px -6px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(68, 71, 70) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(68, 71, 70); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;!----&gt;&lt;/sup&gt;&lt;/source-footnote&gt;&lt;/span&gt;&lt;sources-carousel-inline _nghost-ng-c1309300032="" ng-version="0.0.0-PLACEHOLDER" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: auto; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: static; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;  &lt;source-inline-chip _ngcontent-ng-c1309300032="" _nghost-ng-c1612898071="" class="ng-star-inserted" style="animation: auto ease 0s 1 normal none running none; appearance: none; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(31, 31, 31); clear: none; clip: auto; columns: auto; contain: none; container: none; content: normal; cursor: auto; cx: 0px; cy: 0px; d: none; direction: ltr; display: inline; fill: rgb(0, 0, 0); filter: none; flex-direction: row; flex: 0 1 auto; float: none; gap: normal; hyphens: manual; inset: 0px; interactivity: auto; isolation: auto; line-height: 1.15; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; margin: 0px; marker: none; mask-clip: border-box; mask-composite: add; mask-image: none; mask-mode: match-source; mask-origin: border-box; mask-repeat: repeat; mask-size: auto; mask: none; offset: normal; opacity: 1; order: 0; outline: rgb(31, 31, 31) none 3px; overlay: none; padding: 0px; page: auto; perspective: none; position: relative; quotes: auto; r: 0px; resize: none; rotate: none; rule: 3px rgb(31, 31, 31); rx: auto; ry: auto; scale: none; speak: normal; stroke: none; transform: none; transition: all; translate: none; visibility: visible; x: 0px; y: 0px; zoom: 1;"&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/source-inline-chip&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/sources-carousel-inline&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Open Source Open Mind&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3nUj6abzcw-3zXgVaKYmFeNEL-IUm0yeXdcRHtSjOgS74KzN3QpSMC5gbrUviMdV7P1Pkn_BXH0WzzrUb2S6rU2I6HqkYwzqMD-_xwiDHjMmyutxd-kg1KR1EMCMQ0NN0-rAH2_rovaTNtr9fGXIgiT7-ot4bdoZcs_8aeQZubReG6Nsbaz3o_NS0BOks/s72-c/rag_ai_agent_evaluation_flow.jpg" width="72"/><author>dhiraj.patra@gmail.com (dhiraj patra)</author></item><item><title>Difference Between NASA + SpaceX and ISRO + Skyroot</title><link>http://dhirajpatra.blogspot.com/2026/07/difference-between-nasa-spacex-and-isro.html</link><category>govt</category><category>rocket</category><category>space</category><pubDate>Thu, 23 Jul 2026 19:09:54 -0700</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8993867651193907565.post-6509296769518166517</guid><description>&lt;p class="article-editor-paragraph" style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(244, 242, 238); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; font-variant-ligatures: none; line-height: 1.5; margin: 0px 0px 32px; padding: 0px; vertical-align: baseline; white-space: break-spaces;"&gt;&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXVSuBXqoVW7Q-Hh1-NvapHAgz8xntIzOQ8ereUhifoZJq0B2v6vWqBwpZC0f7GT3Dx9g9eoSjTdiVI2ypNk0VmCnkLbsPvWCciScOfLNvcOoXH52C0-wlXaLZsMJNn-63Aefu6x7Wm8Q7gyLaZIAUgj7oPYOuNGjGwGPcvNO7iWFtQy7bUJP58DqrscOf/s1920/rockets_side_by_side_comparison.webp" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="1280" data-original-width="1920" height="292" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXVSuBXqoVW7Q-Hh1-NvapHAgz8xntIzOQ8ereUhifoZJq0B2v6vWqBwpZC0f7GT3Dx9g9eoSjTdiVI2ypNk0VmCnkLbsPvWCciScOfLNvcOoXH52C0-wlXaLZsMJNn-63Aefu6x7Wm8Q7gyLaZIAUgj7oPYOuNGjGwGPcvNO7iWFtQy7bUJP58DqrscOf/w438-h292/rockets_side_by_side_comparison.webp" width="438" /&gt;&lt;/a&gt;&lt;/div&gt;                                                         generated by meta ai&lt;span style="background-color: white;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;p&gt;&lt;/p&gt;&lt;p class="article-editor-paragraph" style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(244, 242, 238); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; font-variant-ligatures: none; line-height: 1.5; margin: 0px 0px 32px; padding: 0px; vertical-align: baseline; white-space: break-spaces;"&gt;&lt;span style="background-color: white;"&gt;The core difference in both countries is the relationship between a &lt;span style="background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; font-weight: 600; margin: 0px; outline: rgba(0, 0, 0, 0.9) none 0px; padding: 0px; vertical-align: baseline;"&gt;#government&lt;/span&gt; &lt;span style="background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; font-weight: 600; margin: 0px; outline: rgba(0, 0, 0, 0.9) none 0px; padding: 0px; vertical-align: baseline;"&gt;#space&lt;/span&gt; agency and a private company. In the US, &lt;a class="article-editor-link article-editor-link" href="https://www.linkedin.com/feed/#" rel="noopener noreferrer" style="background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(10, 102, 194); box-sizing: inherit; color: #0a66c2; cursor: pointer; font-weight: 600; margin: 0px; overflow-wrap: break-word; padding: 0px; text-decoration: rgb(10, 102, 194); touch-action: manipulation; vertical-align: baseline;"&gt;&lt;span style="background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(10, 102, 194); box-sizing: inherit; margin: 0px; outline: rgb(10, 102, 194) none 0px; padding: 0px; vertical-align: baseline;"&gt;NASA - National Aeronautics and Space Administration&lt;/span&gt;&lt;/a&gt; acts as a primary customer for &lt;a class="article-editor-link article-editor-link" href="https://www.linkedin.com/feed/#" rel="noopener noreferrer" style="background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(10, 102, 194); box-sizing: inherit; color: #0a66c2; cursor: pointer; font-weight: 600; margin: 0px; overflow-wrap: break-word; padding: 0px; text-decoration: rgb(10, 102, 194); touch-action: manipulation; vertical-align: baseline;"&gt;&lt;span style="background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(10, 102, 194); box-sizing: inherit; margin: 0px; outline: rgb(10, 102, 194) none 0px; padding: 0px; vertical-align: baseline;"&gt;SpaceX&lt;/span&gt;&lt;/a&gt;, creating a model where the private company leads in operational launches. In India, &lt;a class="article-editor-link article-editor-link" href="https://www.linkedin.com/feed/#" rel="noopener noreferrer" style="background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(10, 102, 194); box-sizing: inherit; color: #0a66c2; cursor: pointer; font-weight: 600; margin: 0px; overflow-wrap: break-word; padding: 0px; text-decoration: rgb(10, 102, 194); touch-action: manipulation; vertical-align: baseline;"&gt;&lt;span style="background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(10, 102, 194); box-sizing: inherit; margin: 0px; outline: rgb(10, 102, 194) none 0px; padding: 0px; vertical-align: baseline;"&gt;ISRO&lt;/span&gt;&lt;/a&gt; is a nurturing parent to &lt;a class="article-editor-link article-editor-link" href="https://www.linkedin.com/feed/#" rel="noopener noreferrer" style="background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(10, 102, 194); box-sizing: inherit; color: #0a66c2; cursor: pointer; font-weight: 600; margin: 0px; overflow-wrap: break-word; padding: 0px; text-decoration: rgb(10, 102, 194); touch-action: manipulation; vertical-align: baseline;"&gt;&lt;span style="background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgb(10, 102, 194); box-sizing: inherit; margin: 0px; outline: rgb(10, 102, 194) none 0px; padding: 0px; vertical-align: baseline;"&gt;Skyroot Aerospace&lt;/span&gt;&lt;/a&gt;, providing the technology and infrastructure for the startup to take its first steps.&lt;/span&gt;&lt;/p&gt;&lt;p class="article-editor-paragraph" style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(244, 242, 238); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; font-variant-ligatures: none; line-height: 1.5; margin: 0px 0px 32px; padding: 0px; vertical-align: baseline; white-space: break-spaces;"&gt;&lt;span style="background-color: white;"&gt;&#127963;️ NASA and SpaceX: A Customer-Contractor Model&lt;/span&gt;&lt;/p&gt;&lt;p class="article-editor-paragraph" style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(244, 242, 238); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; font-variant-ligatures: none; line-height: 1.5; margin: 0px 0px 32px; padding: 0px; vertical-align: baseline; white-space: break-spaces;"&gt;&lt;span style="background-color: white;"&gt;The NASA-SpaceX relationship is one of a primary customer and a key contractor. NASA provides funding and contracts for specific missions, allowing SpaceX to operate with significant independence .&lt;/span&gt;&lt;/p&gt;&lt;p class="article-editor-paragraph" style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(244, 242, 238); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; font-variant-ligatures: none; line-height: 1.5; margin: 0px 0px 32px; padding: 0px; vertical-align: baseline; white-space: break-spaces;"&gt;&lt;span style="background-color: white;"&gt;Launch Cadence and Dominance: This model has enabled SpaceX to achieve an unmatched launch frequency. For example, SpaceX conducted 165 orbital launches in 2025 alone, while India, as a nation, conducted just four major orbital launches in the same year .&lt;/span&gt;&lt;/p&gt;&lt;p class="article-editor-paragraph" style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(244, 242, 238); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; font-variant-ligatures: none; line-height: 1.5; margin: 0px 0px 32px; padding: 0px; vertical-align: baseline; white-space: break-spaces;"&gt;&lt;span style="background-color: white;"&gt;Approach to Failure: The two organizations have different attitudes toward failure. SpaceX embraces a rapid, iterative development process where failures are seen as learning opportunities, a luxury a government agency like NASA cannot always afford due to public and political scrutiny .&lt;/span&gt;&lt;/p&gt;&lt;p class="article-editor-paragraph" style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(244, 242, 238); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; font-variant-ligatures: none; line-height: 1.5; margin: 0px 0px 32px; padding: 0px; vertical-align: baseline; white-space: break-spaces;"&gt;&lt;span style="background-color: white;"&gt;&lt;em style="background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; margin: 0px; outline: rgba(0, 0, 0, 0.9) none 0px; padding: 0px; vertical-align: baseline;"&gt;&amp;nbsp;&lt;/em&gt;NASA's Reliance: NASA has become heavily reliant on SpaceX for critical national goals, such as the Artemis mission to return humans to the Moon. This reliance on a single private company for such a high-stakes objective has raised concerns .&lt;/span&gt;&lt;/p&gt;&lt;p class="article-editor-paragraph" style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(244, 242, 238); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; font-variant-ligatures: none; line-height: 1.5; margin: 0px 0px 32px; padding: 0px; vertical-align: baseline; white-space: break-spaces;"&gt;&lt;span style="background-color: white;"&gt;&#127470;&#127475; ISRO and Skyroot: A Mentor and Protégé Model&lt;/span&gt;&lt;/p&gt;&lt;p class="article-editor-paragraph" style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(244, 242, 238); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; font-variant-ligatures: none; line-height: 1.5; margin: 0px 0px 32px; padding: 0px; vertical-align: baseline; white-space: break-spaces;"&gt;&lt;span style="background-color: white;"&gt;The ISRO-Skyroot relationship is more that of a mentor and protégé. Skyroot was founded by former ISRO scientists and benefits greatly from the national agency's expertise, testing facilities, and launchpads .&lt;/span&gt;&lt;/p&gt;&lt;p class="article-editor-paragraph" style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(244, 242, 238); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; font-variant-ligatures: none; line-height: 1.5; margin: 0px 0px 32px; padding: 0px; vertical-align: baseline; white-space: break-spaces;"&gt;&lt;span style="background-color: white;"&gt;First Steps: Skyroot is a developing company preparing for its first orbital launch, aiming to conduct one launch every three months next year . Its recent successful launch of Vikram-1 marks a significant milestone for India's private space sector .&lt;/span&gt;&lt;/p&gt;&lt;p class="article-editor-paragraph" style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(244, 242, 238); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; font-variant-ligatures: none; line-height: 1.5; margin: 0px 0px 32px; padding: 0px; vertical-align: baseline; white-space: break-spaces;"&gt;&lt;span style="background-color: white;"&gt;Complementary Ambitions: The expectation is that while Skyroot and other private companies handle commercial launches, ISRO will focus on more ambitious, high-risk, and exploratory missions like human spaceflight, lunar exploration, and advanced research .&lt;/span&gt;&lt;/p&gt;&lt;p class="article-editor-paragraph" style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(244, 242, 238); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; font-variant-ligatures: none; line-height: 1.5; margin: 0px 0px 32px; padding: 0px; vertical-align: baseline; white-space: break-spaces;"&gt;&lt;span style="background-color: white;"&gt;Talent Flow: Skyroot's success has also highlighted a challenge for ISRO. The private sector's allure of higher salaries, equity, and faster career progression has reportedly led to an exodus of experienced scientists from the national agency, creating a potential brain drain .&lt;/span&gt;&lt;/p&gt;&lt;p class="article-editor-paragraph" style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(244, 242, 238); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; font-variant-ligatures: none; line-height: 1.5; margin: 0px 0px 32px; padding: 0px; vertical-align: baseline; white-space: break-spaces;"&gt;&lt;span style="background-color: white;"&gt;&#128640; At a Glance: Comparing the Two Models&lt;/span&gt;&lt;/p&gt;&lt;p class="article-editor-paragraph" style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(244, 242, 238); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; font-variant-ligatures: none; line-height: 1.5; margin: 0px 0px 32px; padding: 0px; vertical-align: baseline; white-space: break-spaces;"&gt;&lt;span style="background-color: white;"&gt;Here is a summary of the key distinctions:&lt;/span&gt;&lt;/p&gt;&lt;p class="article-editor-paragraph" style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(244, 242, 238); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; font-variant-ligatures: none; line-height: 1.5; margin: 0px 0px 32px; padding: 0px; vertical-align: baseline; white-space: break-spaces;"&gt;&lt;span style="background-color: white;"&gt;| Feature | &#127482;&#127480; NASA &amp;amp; SpaceX | &#127470;&#127475; ISRO &amp;amp; Skyroot |&lt;/span&gt;&lt;/p&gt;&lt;p class="article-editor-paragraph" style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(244, 242, 238); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; font-variant-ligatures: none; line-height: 1.5; margin: 0px 0px 32px; padding: 0px; vertical-align: baseline; white-space: break-spaces;"&gt;&lt;span style="background-color: white;"&gt;| :--- | :--- | :--- |&lt;/span&gt;&lt;/p&gt;&lt;p class="article-editor-paragraph" style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(244, 242, 238); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; font-variant-ligatures: none; line-height: 1.5; margin: 0px 0px 32px; padding: 0px; vertical-align: baseline; white-space: break-spaces;"&gt;&lt;span style="background-color: white;"&gt;| &lt;span style="background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; font-weight: 600; margin: 0px; outline: rgba(0, 0, 0, 0.9) none 0px; padding: 0px; vertical-align: baseline;"&gt;Primary Relationship&lt;/span&gt; | &lt;span style="background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; font-weight: 600; margin: 0px; outline: rgba(0, 0, 0, 0.9) none 0px; padding: 0px; vertical-align: baseline;"&gt;Customer &amp;amp; Contractor&lt;/span&gt;: NASA pays for services&amp;nbsp;| &lt;span style="background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; font-weight: 600; margin: 0px; outline: rgba(0, 0, 0, 0.9) none 0px; padding: 0px; vertical-align: baseline;"&gt;Mentor &amp;amp; Protégé&lt;/span&gt;: ISRO provides support and infrastructure&amp;nbsp;|&lt;/span&gt;&lt;/p&gt;&lt;p class="article-editor-paragraph" style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(244, 242, 238); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; font-variant-ligatures: none; line-height: 1.5; margin: 0px 0px 32px; padding: 0px; vertical-align: baseline; white-space: break-spaces;"&gt;&lt;span style="background-color: white;"&gt;| &lt;span style="background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; font-weight: 600; margin: 0px; outline: rgba(0, 0, 0, 0.9) none 0px; padding: 0px; vertical-align: baseline;"&gt;Company Lifecycle&lt;/span&gt; | &lt;span style="background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; font-weight: 600; margin: 0px; outline: rgba(0, 0, 0, 0.9) none 0px; padding: 0px; vertical-align: baseline;"&gt;Mature Industry Leader&lt;/span&gt;: Dominates global commercial launches&amp;nbsp;| &lt;span style="background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; font-weight: 600; margin: 0px; outline: rgba(0, 0, 0, 0.9) none 0px; padding: 0px; vertical-align: baseline;"&gt;Developing Startup&lt;/span&gt;: Proving its capability for commercial launches&amp;nbsp;|&lt;/span&gt;&lt;/p&gt;&lt;p class="article-editor-paragraph" style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(244, 242, 238); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; font-variant-ligatures: none; line-height: 1.5; margin: 0px 0px 32px; padding: 0px; vertical-align: baseline; white-space: break-spaces;"&gt;&lt;span style="background-color: white;"&gt;| &lt;span style="background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; font-weight: 600; margin: 0px; outline: rgba(0, 0, 0, 0.9) none 0px; padding: 0px; vertical-align: baseline;"&gt;Key Milestones&lt;/span&gt; | 165 orbital launches in 2025; taking astronauts to the ISS; partnering on Moon missions&amp;nbsp;| First private rocket launch from India (Vikram-S, 2022); first orbital launch (Vikram-1, 2026)&amp;nbsp;|&lt;/span&gt;&lt;/p&gt;&lt;p class="article-editor-paragraph" style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(244, 242, 238); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; font-variant-ligatures: none; line-height: 1.5; margin: 0px 0px 32px; padding: 0px; vertical-align: baseline; white-space: break-spaces;"&gt;&lt;span style="background-color: white;"&gt;| &lt;span style="background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; font-weight: 600; margin: 0px; outline: rgba(0, 0, 0, 0.9) none 0px; padding: 0px; vertical-align: baseline;"&gt;Technology&lt;/span&gt; | &lt;span style="background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; font-weight: 600; margin: 0px; outline: rgba(0, 0, 0, 0.9) none 0px; padding: 0px; vertical-align: baseline;"&gt;Iterative &amp;amp; Independent&lt;/span&gt;: Designs, builds, and operates its own rockets (Falcon, Starship)&amp;nbsp;| &lt;span style="background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; font-weight: 600; margin: 0px; outline: rgba(0, 0, 0, 0.9) none 0px; padding: 0px; vertical-align: baseline;"&gt;ISRO-Derived Innovation&lt;/span&gt;: Founders from ISRO; uses ISRO facilities and is building its own Vikram series rockets&amp;nbsp;|&lt;/span&gt;&lt;/p&gt;&lt;p class="article-editor-paragraph" style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(244, 242, 238); border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; font-variant-ligatures: none; line-height: 1.5; margin: 0px 0px 32px; padding: 0px; vertical-align: baseline; white-space: break-spaces;"&gt;&lt;span style="background-color: white;"&gt;| &lt;span style="background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: repeat; background-size: auto; border: 0px rgba(0, 0, 0, 0.9); box-sizing: inherit; font-weight: 600; margin: 0px; outline: rgba(0, 0, 0, 0.9) none 0px; padding: 0px; vertical-align: baseline;"&gt;Role for the Agency&lt;/span&gt; | Relies on SpaceX for key national missions&amp;nbsp;| Uses commercial sector for routine launches; focuses on national priorities and advanced R&amp;amp;D&amp;nbsp;|&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="background-color: white;"&gt;&lt;span color="rgba(0, 0, 0, 0.9)" face="-apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif" style="font-size: 16px; font-variant-ligatures: none; white-space: break-spaces;"&gt;The NASA-SpaceX model shows a mature private sector taking the lead, while the ISRO-Skyroot model represents a strategic "handing over" of commercial launch capabilities to private enterprises .&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;Open Source Open Mind&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXVSuBXqoVW7Q-Hh1-NvapHAgz8xntIzOQ8ereUhifoZJq0B2v6vWqBwpZC0f7GT3Dx9g9eoSjTdiVI2ypNk0VmCnkLbsPvWCciScOfLNvcOoXH52C0-wlXaLZsMJNn-63Aefu6x7Wm8Q7gyLaZIAUgj7oPYOuNGjGwGPcvNO7iWFtQy7bUJP58DqrscOf/s72-w438-h292-c/rockets_side_by_side_comparison.webp" width="72"/><author>dhiraj.patra@gmail.com (dhiraj patra)</author></item></channel></rss>