<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>Microsoft Developer Community Blog articles</title>
    <link>https://techcommunity.microsoft.com/t5/microsoft-developer-community/bg-p/AzureDevCommunityBlog</link>
    <description>Microsoft Developer Community Blog articles</description>
    <pubDate>Wed, 15 Jul 2026 13:52:47 GMT</pubDate>
    <dc:creator>AzureDevCommunityBlog</dc:creator>
    <dc:date>2026-07-15T13:52:47Z</dc:date>
    <item>
      <title>Beyond text: Returning images and interactive apps from MCP servers</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-developer-community/beyond-text-returning-images-and-interactive-apps-from-mcp/ba-p/4535865</link>
      <description>&lt;P&gt;The &lt;A href="https://modelcontextprotocol.io/" target="_blank" rel="noopener"&gt;Model Context Protocol (MCP)&lt;/A&gt; is becoming a richer foundation for agent experiences. Though most servers return plain text from their tool calls, MCP servers can also return&amp;nbsp;&lt;A href="https://modelcontextprotocol.io/specification/2025-11-25/server/tools#image-content" target="_blank" rel="noopener"&gt;binary results&lt;/A&gt; and provide &lt;A href="https://modelcontextprotocol.io/extensions/apps/overview" target="_blank" rel="noopener"&gt;interactive apps&lt;/A&gt; in clients that support those features, like &lt;A href="https://code.visualstudio.com/docs/agent-customization/mcp-servers" target="_blank" rel="noopener"&gt;VS Code&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;In this post, I'll use both capabilities to build an MCP server that searches a collection of nature photos with natural language, lets the model inspect the matching images, and presents selected results in an interactive gallery. The same approach can be adapted to product catalogs, digital asset managers, photo archives, and other multimedia libraries.&lt;/P&gt;
&lt;H2&gt;Searching the image library&lt;/H2&gt;
&lt;P&gt;Let's start with the search experience from a user's perspective, then dive into the code behind it.&lt;/P&gt;
&lt;P&gt;After &lt;A href="https://code.visualstudio.com/docs/agent-customization/mcp-servers" target="_blank" rel="noopener"&gt;connecting VS Code&lt;/A&gt; to the deployed MCP server, I can ask a question in GitHub Copilot about the images:&lt;/P&gt;
&lt;P style="background-color: #efefef; padding: 8px; font-style: italic;"&gt;Find landscape photos that show dramatic terrain and water. Show me the strongest options for a nature gallery.&lt;/P&gt;
&lt;P&gt;The GitHub Copilot agent realizes that it can use the image search MCP tool to answer that question. Here's what it looks like in the chat interface:&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;The tool results include rendered thumbnails. I can click a thumbnail to inspect it directly in VS Code, much like a file in the workspace, while the Copilot agent can review both the image binary data and their textual descriptions.&lt;/P&gt;
&lt;P&gt;Behind the scenes, the agent called the&amp;nbsp;&lt;CODE&gt;image_search&lt;/CODE&gt; tool with these arguments:&lt;/P&gt;
&lt;LI-CODE lang="json"&gt;{
  "query": "dramatic natural landscapes with mountains and water",
  "max_results": 5
}&lt;/LI-CODE&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;The tool call returned a mix of binary files and structured data: a thumbnail for each matching image, plus JSON containing its filename, display name, and generated description. The thumbnails let a multimodal model inspect the actual pixels, while the structured content gives the agent compact metadata it can reference in later tool calls.&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;LI-CODE lang="json"&gt;{
  "results": [ { 
    "filename": "Picture1.jpg", "display_name": "Picture1.jpg",
    "description": "A clear mountain lake surrounded by pine forest and steep rocky peaks." },
    ...]
}&lt;/LI-CODE&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;H3&gt;Returning images from MCP tools&lt;/H3&gt;
&lt;P&gt;Now let's look at the code powering that tool call.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;I built the server with&amp;nbsp;&lt;A href="https://gofastmcp.com/" target="_blank" rel="noopener"&gt;FastMCP&lt;/A&gt;, a popular Python framework for writing MCP servers. I declare each tool by decorating a function with &lt;CODE&gt;mcp.tool()&lt;/CODE&gt; and annotating its arguments with types and helpful descriptions. FastMCP converts the function signature into a JSON Schema that helps GitHub Copilot decide when and how to call &lt;CODE&gt;image_search&lt;/CODE&gt;:&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;LI-CODE lang="python"&gt;@mcp.tool(annotations={"readOnlyHint": True})
async def image_search(
  query: Annotated[ str, "Text description of images to find (e.g., 'sunlit mountain lake')" ],
  max_results: Annotated[int, "Maximum number of images to return (1-20)"] = 5)
  -&amp;gt; ToolResult:
  """ Search for images matching a natural language query. Returns the image data and descriptions. """&lt;/LI-CODE&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Inside the function, I use &lt;A href="https://learn.microsoft.com/azure/search/search-what-is-azure-search" target="_blank" rel="noopener"&gt;Azure AI Search&lt;/A&gt; to perform hybrid retrieval, combining the text query with its vector embedding. The target index contains multimodal image embeddings and LLM-generated descriptions. Then I retrieve the image from Azure Blob Storage and resize it to a thumbnail. The tool returns both the binary image data for the thumbnails and structured metadata with image details.&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;LI-CODE lang="python"&gt;results = await search_client.search(search_text=query, top=max_results,
    vector_queries=[VectorizableTextQuery(k_nearest_neighbors=max_results, fields="embedding", text=query)],
    select=["metadata_storage_path", "verbalized_image"])

blob_service_client = get_blob_service_client()
files: list[File] = []
image_results: list[dict[str, str]] = []

async for result in results:
    url = result["metadata_storage_path"]
    description = result.get("verbalized_image")

    container_name, blob_name = get_blob_reference_from_url(url)
    blob_client = blob_service_client.get_blob_client(container=container_name, blob=blob_name)

    stream = await blob_client.download_blob()
    image_bytes = await stream.readall()
    image_format = get_image_format(url)

    display_name = os.path.basename(blob_name)
    file_basename = Path(display_name).stem
    thumbnail_bytes = resize_image_bytes(image_bytes, image_format)

    files.append(File(data=thumbnail_bytes, format=image_format, name=file_basename))
    image_results.append({"filename": blob_name, "display_name": display_name, "description": description})

return ToolResult(
    content=files,
    structured_content={
        "query": query,
        "results": image_results,
    },
)&lt;/LI-CODE&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;H2&gt;Displaying selected images&lt;/H2&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;Finding the right images is only the first half of the experience. Once the agent has review the thumbnails and their generated descriptions, it needs a better way to present its favorite selected images to the user. That is where &lt;A href="https://modelcontextprotocol.io/extensions/apps/overview" target="_blank" rel="noopener"&gt;MCP apps&lt;/A&gt; come in. An MCP app renders an interactive webpage inside a sandboxed iframe in the MCP client. For this server, the app is a small, JavaScript-powered carousel for browsing the selected images.&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;GitHub Copilot calls the &lt;CODE&gt;display_image_files&lt;/CODE&gt; tool when it wants to render the carousel app:&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;Returning apps from MCP tools&lt;/H3&gt;
&lt;P&gt;Let's check out the code that powers that MCP carousel app.&lt;/P&gt;
&lt;P&gt;An app is associated with a tool, so I once again decorate a Python function with &lt;CODE&gt;mcp.tool()&lt;/CODE&gt;. This time, I pass an &lt;CODE&gt;AppConfig&lt;/CODE&gt; that points to the image viewer's HTML resource.&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;LI-CODE lang="python"&gt;@mcp.tool( app=AppConfig(resource_uri=IMAGE_VIEW_URI), annotations={"readOnlyHint": True}, )
async def display_image_files(
  filenames: Annotated[list[str], "List of image filenames to retrieve and display in a carousel."],
  descriptions: Annotated[list[str], "Image descriptions, in the same order as filenames."] )
  -&amp;gt; ToolResult:
  """Fetch images by filename and render in carousel with filenames, descriptions, and file details."""&lt;/LI-CODE&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Inside the function, I fetch the selected images from Azure Blob Storage by filename, then return both the binary image data and structured content describing each image—its filename, generated description, MIME type, dimensions, format, and size.&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;LI-CODE lang="python"&gt;blob_service_client = get_blob_service_client()
image_blocks: list[types.ImageContent] = []
image_results: list[dict[str, str | int]] = []

for image_index, filename in enumerate(filenames):
    blob_client = blob_service_client.get_blob_client(container=IMAGE_CONTAINER_NAME, blob=filename)

    stream = await blob_client.download_blob()
    image_bytes = await stream.readall()
    mime_type = get_image_mime_type(filename)

    with Image.open(io.BytesIO(image_bytes)) as image:
        width, height = image.size
        image_format = image.format

    image_blocks.append(types.ImageContent(
      type="image",
      data=base64.b64encode(image_bytes).decode("utf-8"),
      mimeType=mime_type))

    image_results.append(
        {
            "filename": filename,
            "description": descriptions[image_index],
            "mimeType": mime_type,
            "width": width,
            "height": height,
            "format": image_format,
            "sizeBytes": len(image_bytes),
        }
    )

return ToolResult(
    content=image_blocks,
    structured_content={
        "images": image_results,
    },
)&lt;/LI-CODE&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Next, I define the resource that serves the image viewer HTML page. I decorate a Python function with&amp;nbsp;&lt;CODE&gt;@mcp.resource&lt;/CODE&gt;, assign it a &lt;CODE&gt;ui://&lt;/CODE&gt; URL that is unique to the MCP server, and use its Content Security Policy (CSP) to declare which external domains the app may load resources from:&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;LI-CODE lang="python"&gt;@mcp.resource(IMAGE_VIEW_URI, app=AppConfig(csp=ResourceCSP(resource_domains=["https://unpkg.com"])))
def image_view() -&amp;gt; str:
  """Render images returned by display_image_files as an MCP App."""
    return load_image_viewer_html()&lt;/LI-CODE&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;The final piece is the HTML that renders inside the app's iframe. This small page imports &lt;A href="https://github.com/modelcontextprotocol/ext-apps" target="_blank" rel="noopener"&gt;ext-apps&lt;/A&gt;, a JavaScript package that manages bidirectional communication with the MCP client. The JavaScript creates an &lt;CODE&gt;App&lt;/CODE&gt; instance, defines the &lt;CODE&gt;ontoolresult&lt;/CODE&gt; callback, and connects the app. That callback receives images from the tool result and renders them in the carousel. MCP apps can also send messages back to the host, although this read-only viewer does not need to.&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;LI-CODE lang="html"&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html lang="en"&amp;gt;
  &amp;lt;body&amp;gt;
    &amp;lt;div id="carousel"&amp;gt;
      &amp;lt;button id="prev" type="button" aria-label="Previous"&amp;gt;‹&amp;lt;/button&amp;gt;
      &amp;lt;div id="frame"&amp;gt;&amp;lt;/div&amp;gt;
      &amp;lt;button id="next" type="button" aria-label="Next"&amp;gt;›&amp;lt;/button&amp;gt;
      &amp;lt;span id="counter" aria-live="polite"&amp;gt;&amp;lt;/span&amp;gt;
    &amp;lt;/div&amp;gt;

    &amp;lt;script type="module"&amp;gt;
      import { App } from "https://unpkg.com/@modelcontextprotocol/ext-apps@0.4.0/app-with-deps";

      const app = new App({
        name: "Image Viewer",
        version: "1.0.0",
      });

      let images = [];
      let index = 0;

      const frame = document.getElementById("frame");
      const prevBtn = document.getElementById("prev");
      const nextBtn = document.getElementById("next");
      const counter = document.getElementById("counter");

      function show(i) {
        index = i;
        const img = images[index];

        frame.innerHTML = "";

        const el = document.createElement("img");
        el.src = `data:${img.mimeType || "image/jpeg"};base64,${img.data}`;
        el.alt = "Blob image";
        frame.appendChild(el);

        prevBtn.disabled = index === 0;
        nextBtn.disabled = index === images.length - 1;
        counter.textContent =
          images.length &amp;gt; 1 ? `${index + 1} / ${images.length}` : "";
      }

      prevBtn.addEventListener("click", () =&amp;gt; {
        if (index &amp;gt; 0) {
          show(index - 1);
        }
      });

      nextBtn.addEventListener("click", () =&amp;gt; {
        if (index &amp;lt; images.length - 1) {
          show(index + 1);
        }
      });

      app.ontoolresult = ({ content }) =&amp;gt; {
        images = (content || []).filter((block) =&amp;gt; block.type === "image");

        if (images.length &amp;gt; 0) {
          show(0);
        }
      };

      await app.connect();
    &amp;lt;/script&amp;gt;
  &amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/LI-CODE&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;H2&gt;Try it yourself!&lt;/H2&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;The full MCP server code is available in &lt;A href="https://github.com/Azure-Samples/image-search-aisearch" target="_blank" rel="noopener"&gt;Azure-Samples/image-search-aisearch&lt;/A&gt;, along with a minimal image search website and an Azure AI Search indexing pipeline. The indexer uses an Azure OpenAI model to describe each image and Azure AI Vision to create multimodal embeddings. The repository includes a sample nature dataset, but you can replace it with any image collection.&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;Here are more ways you could extend it it:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Support more media types:&lt;/STRONG&gt; add transcript search and a video or audio player app, while keeping the same search-then-display tool pattern.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Enrich the metadata:&lt;/STRONG&gt; index dates, locations, creators, accessibility text, or domain-specific tags alongside generated descriptions and embeddings.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Optimize token consumption:&lt;/STRONG&gt; images require many tokens, so returning too many thumbnails can quickly consume the model's context window. Experiment with smaller previews, higher compression, metadata-only search results, or a two-stage retrieval flow.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Add authentication:&lt;/STRONG&gt; many media libraries contain private or licensed assets. You can add key-based authentication or OAuth with the FastMCP auth providers, as I described in the &lt;A href="https://github.com/orgs/microsoft-foundry/discussions/246" target="_blank" rel="noopener"&gt;MCP auth livestream&lt;/A&gt;.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;Once search results can carry both structured metadata and real media, an agent can do more than locate files: it can compare, curate, and present them in the same conversation. I hope you'll try the sample with a multimedia collection of your own!&lt;/P&gt;</description>
      <pubDate>Wed, 15 Jul 2026 08:33:51 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-developer-community/beyond-text-returning-images-and-interactive-apps-from-mcp/ba-p/4535865</guid>
      <dc:creator>Pamela_Fox</dc:creator>
      <dc:date>2026-07-15T08:33:51Z</dc:date>
    </item>
    <item>
      <title>Building AI Agents from Zero to Production</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-developer-community/building-ai-agents-from-zero-to-production/ba-p/4536529</link>
      <description>&lt;H1&gt;Building AI Agents from Zero to Production&lt;/H1&gt;
&lt;P&gt;Most agent demos stop at "it answered my question." Production doesn't. The gap between a notebook that calls an LLM and a governed, observable, multi-agent system your organisation can actually depend on is where real engineering happens, evaluation, deployment, data sovereignty, tool governance, and cross-team interoperability.&lt;/P&gt;
&lt;P&gt;Microsoft's open-source course &lt;A href="https://github.com/microsoft/Building-AI-Agents-From-Zero-To-Production" target="_blank"&gt;Building AI Agents from Zero to Production&lt;/A&gt; walks that entire arc in seven lessons, using one realistic use case and the &lt;STRONG&gt;Microsoft Agent Framework (MAF)&lt;/STRONG&gt; plus &lt;STRONG&gt;Microsoft Foundry&lt;/STRONG&gt;. This post is a developer-focused tour of what it teaches, the architecture decisions behind each stage, and the code patterns that matter when you move from prototype to production.&lt;/P&gt;
&lt;H2&gt;Who this is for&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;AI engineers&lt;/STRONG&gt; building their first or first&amp;nbsp;&lt;EM&gt;production,&lt;/EM&gt;&amp;nbsp;agent system.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Backend and full-stack developers&lt;/STRONG&gt; integrating agents into real applications and CI/CD.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Cloud architects&lt;/STRONG&gt; who need data sovereignty, private networking, and governance around agent workloads.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Technical leads&lt;/STRONG&gt; deciding how to standardise tools and orchestration across multiple teams.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;The samples are &lt;STRONG&gt;Python 3.12+&lt;/STRONG&gt;, served through Microsoft Foundry using GPT-5 series models (for example &lt;CODE&gt;gpt-5.1&lt;/CODE&gt;). Lesson 4 adds a &lt;STRONG&gt;TypeScript/React&lt;/STRONG&gt; frontend. You will want an Azure subscription and the Azure CLI.&lt;/P&gt;
&lt;H2&gt;The AI Agent Development Lifecycle&lt;/H2&gt;
&lt;P&gt;The course is organised around a lifecycle rather than a feature list. Each lesson is a stage, and each stage assumes the previous one is solved:&lt;/P&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;#&lt;/th&gt;&lt;th&gt;Stage&lt;/th&gt;&lt;th&gt;The production question it answers&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;Agent Design&lt;/td&gt;&lt;td&gt;What should each agent do, and how do they hand off?&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;Agent Development&lt;/td&gt;&lt;td&gt;How do I build and run them with the Agent Framework?&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;3&lt;/td&gt;&lt;td&gt;Agent Evaluations&lt;/td&gt;&lt;td&gt;How do I know they actually work — and keep working?&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;Agent Deployment&lt;/td&gt;&lt;td&gt;How do I ship one as a hosted service with a UI and CI gate?&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;Production Hosted Agents&lt;/td&gt;&lt;td&gt;How do I meet enterprise data, network, and governance needs?&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;6&lt;/td&gt;&lt;td&gt;Microsoft Toolbox&lt;/td&gt;&lt;td&gt;How do I govern tools once, and reuse them across teams?&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;7&lt;/td&gt;&lt;td&gt;Multi-Agent &amp;amp; A2A&lt;/td&gt;&lt;td&gt;How do agents from different teams interoperate safely?&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;P&gt;The thread running through all seven is a single scenario: a &lt;STRONG&gt;Developer Onboarding&lt;/STRONG&gt; agent system that helps a new hire find the right teammates, get a sensible first task, and pull learning resources and code snippets. It is deliberately mundane, which is exactly why it exposes the production concerns that flashy demos hide.&lt;/P&gt;
&lt;H2&gt;Lesson 1 — Agent Design: three components, one graph&lt;/H2&gt;
&lt;P&gt;The course defines an agent by three parts: an &lt;STRONG&gt;LLM&lt;/STRONG&gt; for reasoning, &lt;STRONG&gt;tools&lt;/STRONG&gt; to act, and &lt;STRONG&gt;memory&lt;/STRONG&gt; to retain context. The design work is &lt;EM&gt;context engineering&lt;/EM&gt; — making sure the right information reaches the model at the right moment, no more and no less.&lt;/P&gt;
&lt;P&gt;Rather than one monolithic assistant, the onboarding system is split into specialists coordinated by a triage agent using &lt;STRONG&gt;handoff orchestration&lt;/STRONG&gt;:&lt;/P&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;Agent&lt;/th&gt;&lt;th&gt;Job&lt;/th&gt;&lt;th&gt;Tool&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Employee Search&lt;/td&gt;&lt;td&gt;Answer org and people questions&lt;/td&gt;&lt;td&gt;Foundry file search over an employee-directory vector store&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Task Recommendation&lt;/td&gt;&lt;td&gt;Suggest 1–3 GitHub issues for the new dev&lt;/td&gt;&lt;td&gt;GitHub MCP Server (reads recent commits + open issues)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Code Assistant&lt;/td&gt;&lt;td&gt;Provide resources and runnable snippets&lt;/td&gt;&lt;td&gt;Microsoft Learn MCP + Code Interpreter&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;P&gt;Architecturally this is a directed graph: &lt;CODE&gt;User → Triage → [Employee, Learning, Coding]&lt;/CODE&gt;. Splitting responsibilities early pays off later, each agent gets a tightly scoped prompt (less hallucination), can be evaluated independently, and can be upgraded without touching its peers.&lt;/P&gt;
&lt;H2&gt;Lesson 2 — Development: standalone agents with MAF&lt;/H2&gt;
&lt;P&gt;Here the design becomes code. Each specialist is a small, independently runnable service built with the Microsoft Agent Framework, authenticated to Foundry with your Azure CLI login. Setup is deliberately boring:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE&gt;az login
az account set --subscription "&amp;lt;your-subscription-id&amp;gt;"
cp .env.example .env
# Fill FOUNDRY_PROJECT_ENDPOINT and FOUNDRY_MODEL (e.g. gpt-5.1)

# Create the employee-directory vector store once; note the printed VECTOR_STORE_ID
python lesson-2-agent-development/setup_vector_store.py

# Start an agent — serves on http://localhost:8090
python lesson-2-agent-development/employee-search-agent.py&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;The &lt;CODE&gt;FoundryChatClient&lt;/CODE&gt; auto-reads any &lt;CODE&gt;FOUNDRY_&lt;/CODE&gt;-prefixed environment variables and uses &lt;CODE&gt;AzureCliCredential&lt;/CODE&gt;, so there are no keys in code. The lesson ships six samples, each on its own port, so you can chat with them individually in the local DevUI before wiring them together:&lt;/P&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;Sample&lt;/th&gt;&lt;th&gt;Tool&lt;/th&gt;&lt;th&gt;Port&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;employee-search-agent.py&lt;/td&gt;&lt;td&gt;Foundry file search / vector store&lt;/td&gt;&lt;td&gt;8090&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;task-recommendation-agent.py&lt;/td&gt;&lt;td&gt;GitHub MCP Server&lt;/td&gt;&lt;td&gt;8095&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;azure-learning-agent.py&lt;/td&gt;&lt;td&gt;Microsoft Learn MCP&lt;/td&gt;&lt;td&gt;8092&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;coding-agent.py&lt;/td&gt;&lt;td&gt;Code Interpreter&lt;/td&gt;&lt;td&gt;8093&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;learning-recommendation-agent.py&lt;/td&gt;&lt;td&gt;Learn MCP + reasoning&lt;/td&gt;&lt;td&gt;8091&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;agent-orchestration.py&lt;/td&gt;&lt;td&gt;Multi-agent handoff&lt;/td&gt;&lt;td&gt;8094&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;P&gt;&lt;STRONG&gt;Why this matters:&lt;/STRONG&gt; keeping each agent as its own process with its own port is a testability decision, not an accident. You can smoke-test one specialist in isolation, then compose them in &lt;CODE&gt;agent-orchestration.py&lt;/CODE&gt;.&lt;/P&gt;
&lt;H2&gt;Lesson 3 — Evaluation: you can't unit-test a probability distribution&lt;/H2&gt;
&lt;P&gt;This is the lesson that separates a demo from a product. Agents are non-deterministic, so traditional assertions don't fit. The course uses three complementary layers:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Observability / tracing&lt;/STRONG&gt; — always on, via OpenTelemetry to Application Insights.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Smoke tests&lt;/STRONG&gt; — fast, run on every deploy.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Evaluations&lt;/STRONG&gt; — deeper, model-based scoring run on-demand or nightly.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Turning on tracing is a single call:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE&gt;from agent_framework.foundry import FoundryChatClient

client = FoundryChatClient()
client.configure_azure_monitor()   # export traces + metrics to Application Insights&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;For quality it uses Foundry's built-in "LLM-as-a-judge" evaluators against &lt;EM&gt;real persisted responses&lt;/EM&gt; (identified by &lt;CODE&gt;response_id&lt;/CODE&gt;), not freshly regenerated ones:&lt;/P&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;Evaluator&lt;/th&gt;&lt;th&gt;&lt;CODE&gt;evaluator_name&lt;/CODE&gt;&lt;/th&gt;&lt;th&gt;Measures&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Relevance&lt;/td&gt;&lt;td&gt;builtin.relevance&lt;/td&gt;&lt;td&gt;Does the response address the request?&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Groundedness&lt;/td&gt;&lt;td&gt;builtin.groundedness&lt;/td&gt;&lt;td&gt;Is it supported by retrieved data (no hallucination)?&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Tool-call accuracy&lt;/td&gt;&lt;td&gt;builtin.tool_call_accuracy&lt;/td&gt;&lt;td&gt;Were the right tools called with the right arguments?&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Tool-output utilization&lt;/td&gt;&lt;td&gt;builtin.tool_output_utilization&lt;/td&gt;&lt;td&gt;Did the agent actually use tool results?&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;P&gt;The judge model is set independently via &lt;CODE&gt;AZURE_AI_MODEL_DEPLOYMENT_NAME&lt;/CODE&gt;, so you can evaluate a cheap production model with a stronger one. The run prints a &lt;CODE&gt;report_url&lt;/CODE&gt; that deep-links into the Foundry portal.&lt;/P&gt;
&lt;H2&gt;Lesson 4 — Deployment: a hosted agent, a UI, and a CI gate&lt;/H2&gt;
&lt;P&gt;Now the agent becomes a managed service. It is deployed as a &lt;STRONG&gt;Foundry Hosted Agent&lt;/STRONG&gt; a Microsoft-managed execution environment and fronted by an &lt;STRONG&gt;OpenAI ChatKit&lt;/STRONG&gt; React UI talking to a FastAPI backend:&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;ChatKit React (3000) → FastAPI backend (8001) → Foundry Hosted Agent → tools&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;Building the agent is declarative attach tools, name it, serve it:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE&gt;agent = client.as_agent(
    name="DevOnboardingAgent",
    instructions="...",
    tools=[file_search_tool, learn_mcp_tool],
)
# served with: from_agent_framework(agent).run()&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;The recommended deploy path is the Azure Developer CLI:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE&gt;cd hosted-agent
azd auth login
azd agent deploy&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;The genuinely production-minded part is the &lt;STRONG&gt;smoke test as a post-deploy CI gate&lt;/STRONG&gt;. Six cases cover reachability, each scenario, off-topic prompt adherence, and multi-turn threading (verifying state via &lt;CODE&gt;previous_response_id&lt;/CODE&gt;). The GitHub Action runs them against the freshly deployed agent:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE&gt;export FOUNDRY_TOKEN=$(az account get-access-token \
  --resource https://ai.azure.com/ --query accessToken -o tsv)

python runner.py \
  --project-endpoint "https://&amp;lt;account&amp;gt;.services.ai.azure.com/api/projects/&amp;lt;project&amp;gt;" \
  --agent-name dev-onboarding \
  --tests-file tests/smoke-tests.json&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&lt;STRONG&gt;Pitfall to remember:&lt;/STRONG&gt; the token audience &lt;EM&gt;must&lt;/EM&gt; be &lt;CODE&gt;https://ai.azure.com/&lt;/CODE&gt;. A &lt;CODE&gt;cognitiveservices.azure.com&lt;/CODE&gt; token is rejected by the Responses API — a mistake that costs many engineers an afternoon.&lt;/P&gt;
&lt;H2&gt;Lesson 5 — Production: separating where an agent runs from where its data lives&lt;/H2&gt;
&lt;P&gt;The pivotal concept for enterprise readiness is the distinction between a &lt;STRONG&gt;Hosted Agent&lt;/STRONG&gt; (compute, scaling, identity) and a &lt;STRONG&gt;Capability Host&lt;/STRONG&gt; (where conversation history, files, and embeddings actually reside):&lt;/P&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;Concern&lt;/th&gt;&lt;th&gt;Hosted Agent&lt;/th&gt;&lt;th&gt;Capability Host&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Compute / scaling / identity&lt;/td&gt;&lt;td&gt;✅ Provided&lt;/td&gt;&lt;td&gt;—&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Conversation history&lt;/td&gt;&lt;td&gt;Microsoft-managed default&lt;/td&gt;&lt;td&gt;Redirect to your Azure Cosmos DB&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;File uploads&lt;/td&gt;&lt;td&gt;Microsoft-managed default&lt;/td&gt;&lt;td&gt;Redirect to your Azure Storage&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Vector embeddings&lt;/td&gt;&lt;td&gt;Microsoft-managed default&lt;/td&gt;&lt;td&gt;Redirect to your Azure AI Search&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Required to run the agent?&lt;/td&gt;&lt;td&gt;✅ Yes&lt;/td&gt;&lt;td&gt;❌ Optional&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Required for data sovereignty?&lt;/td&gt;&lt;td&gt;❌ Not sufficient&lt;/td&gt;&lt;td&gt;✅ Yes&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;P&gt;"Basic" setup uses Microsoft-managed storage and is perfect for getting started. "Standard" setup redirects each data plane to your own Azure resources through a project-level capability host, this is how you keep customer data in your tenant, inside your network boundary:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE&gt;PUT .../accounts/{account}/projects/{project}/capabilityHosts/{name}?api-version=2025-06-01
{
  "properties": {
    "capabilityHostKind": "Agents",
    "threadStorageConnections": ["my-cosmosdb-connection"],
    "vectorStoreConnections":  ["my-ai-search-connection"],
    "storageConnections":      ["my-storage-connection"]
  }
}&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Operational constraints worth internalising before you provision: there is &lt;STRONG&gt;one capability host per scope&lt;/STRONG&gt; (a second attempt returns &lt;CODE&gt;409 Conflict&lt;/CODE&gt;), configuration is &lt;STRONG&gt;immutable&lt;/STRONG&gt; (delete and recreate to change it), deletion is &lt;STRONG&gt;destructive&lt;/STRONG&gt;, and the account-level host must exist &lt;EM&gt;before&lt;/EM&gt; the project-level one.&lt;/P&gt;
&lt;H2&gt;Lesson 6 — Toolbox: govern tools once, reuse everywhere&lt;/H2&gt;
&lt;P&gt;Left unchecked, every team re-implements the same tools, scatters credentials, and loses governance visibility. The &lt;STRONG&gt;Microsoft Foundry Toolbox&lt;/STRONG&gt; solves this by exposing a curated, versioned set of tools behind a single MCP-compatible endpoint, with credentials held in Foundry connections rather than agent code.&lt;/P&gt;
&lt;P&gt;You &lt;STRONG&gt;build&lt;/STRONG&gt; a toolbox version once:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE&gt;from azure.ai.projects.models import MCPTool, ToolboxSearchPreviewTool, WebSearchTool

toolbox_version = project.toolboxes.create_toolbox_version(
    name="agent-tools",
    description="Web search + an MCP server + tool search",
    tools=[
        WebSearchTool(),
        MCPTool(
            server_label="myserver",
            server_url="https://your-mcp-server.example.com",
            require_approval="never",
            project_connection_id="my-key-auth-connection",  # credentials live in Foundry
        ),
        ToolboxSearchPreviewTool(),
    ],
)&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;And every agent &lt;STRONG&gt;consumes&lt;/STRONG&gt; it through one endpoint, no per-team tool code:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE&gt;from agent_framework import MCPStreamableHTTPTool

mcp_tool = MCPStreamableHTTPTool(
    name="toolbox",
    url=TOOLBOX_ENDPOINT,   # {project_endpoint}/toolboxes/{name}/mcp?api-version=v1
    http_client=http_client,
    load_prompts=False,
)
agent = chat_client.as_agent(name="my-toolbox-agent", instructions="...", tools=[mcp_tool])&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Versioning is blue/green: create a new version, test it on its version-specific endpoint, then promote it to default and every consumer picks it up with zero code changes. A Guardrail (RAI) policy can be applied at the toolbox layer, independent of model-level content filters. Note the toolbox&amp;nbsp;&lt;EM&gt;management&lt;/EM&gt; APIs are currently preview; the portal or VS Code Foundry Toolkit are practical alternatives for creation today.&lt;/P&gt;
&lt;H2&gt;Lesson 7 — Multi-Agent &amp;amp; A2A: agents as networked peers&lt;/H2&gt;
&lt;P&gt;The final lesson contrasts two ways agents collaborate:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Handoff / Workflow&lt;/STRONG&gt; — in-process, same codebase, fastest, tightest coupling.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Agent-to-Agent (A2A)&lt;/STRONG&gt; — cross-process over an &lt;EM&gt;open&lt;/EM&gt; protocol, so agents from different teams, orgs, or frameworks interoperate.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;A2A gives each agent a discoverable &lt;STRONG&gt;Agent Card&lt;/STRONG&gt; at &lt;CODE&gt;/.well-known/agent-card.json&lt;/CODE&gt; and a task lifecycle (submitted → working → completed/failed). The elegant part: &lt;CODE&gt;A2AExecutor&lt;/CODE&gt; wraps an &lt;EM&gt;existing&lt;/EM&gt; MAF agent with no changes to that agent's code.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE&gt;from agent_framework.a2a import A2AExecutor
from a2a.server.apps import A2AStarletteApplication
from a2a.server.tasks import InMemoryTaskStore

agent_card = AgentCard(
    name="Coding Assistant",
    url="http://localhost:9000/",
    version="1.0.0",
    capabilities=AgentCapabilities(streaming=True),
    skills=[AgentSkill(id="generate-code", name="Generate code", tags=["code"])],
)
request_handler = DefaultRequestHandler(
    agent_executor=A2AExecutor(agent),      # wraps your existing MAF agent unchanged
    task_store=InMemoryTaskStore(),
)
app = A2AStarletteApplication(agent_card=agent_card, http_handler=request_handler).build()&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Consuming a remote agent then looks exactly like calling a local one:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE&gt;from agent_framework.a2a import A2AAgent

remote_agent = A2AAgent(name="remote-coding-assistant", url="http://localhost:9000")
result = await remote_agent.run("Write a Python function that reverses a string.")&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Because an &lt;CODE&gt;A2AAgent&lt;/CODE&gt; can be a participant inside a &lt;CODE&gt;HandoffBuilder&lt;/CODE&gt; workflow, you can mix in-process routing with remote services in the same orchestration. For enterprise use, &lt;CODE&gt;A2AAgent&lt;/CODE&gt; accepts an &lt;CODE&gt;auth_interceptor&lt;/CODE&gt; for bearer tokens, and the Agent Card carries &lt;CODE&gt;security_schemes&lt;/CODE&gt;.&lt;/P&gt;
&lt;H2&gt;Responsible and secure by design&lt;/H2&gt;
&lt;P&gt;Production readiness in this course is not just uptime, it is governance:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Identity over keys&lt;/STRONG&gt; — &lt;CODE&gt;AzureCliCredential&lt;/CODE&gt; and managed identity throughout; no secrets in code.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Least privilege&lt;/STRONG&gt; — CI runners get a scoped &lt;CODE&gt;Azure AI User&lt;/CODE&gt; role assignment on the specific project.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Data sovereignty&lt;/STRONG&gt; — capability hosts keep conversation history, files, and embeddings in your own Cosmos DB, Storage, and AI Search.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Tool approval and guardrails&lt;/STRONG&gt; — MCP &lt;CODE&gt;approval_mode&lt;/CODE&gt; and toolbox-level RAI policy gate what agents can do.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Grounded evaluation&lt;/STRONG&gt; — groundedness and tool-utilization scoring catch hallucination and unused-tool behaviour before users do.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Cost hygiene&lt;/STRONG&gt; — the lessons create real Azure resources; delete the resource group when done: &lt;CODE&gt;az group delete --name &amp;lt;rg&amp;gt; --yes --no-wait&lt;/CODE&gt;.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2&gt;Key takeaways&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Design as a graph of specialists.&lt;/STRONG&gt; Handoff orchestration with tightly scoped agents beats one monolith on reliability and testability.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;One &lt;CODE&gt;.run()&lt;/CODE&gt; contract, many backends.&lt;/STRONG&gt; The Agent Framework keeps orchestration code stable from local dev to hosted production.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Evaluate continuously.&lt;/STRONG&gt; Tracing + smoke tests + model-based evaluators are three layers, not alternatives.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Separate compute from data.&lt;/STRONG&gt; Hosted Agents run the agent; Capability Hosts give you sovereignty — you need both for enterprise.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Govern tools centrally.&lt;/STRONG&gt; A versioned toolbox behind one MCP endpoint kills tool sprawl and credential duplication.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Open protocols for interop.&lt;/STRONG&gt; A2A lets agents cross team, org, and framework boundaries without rewrites.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2&gt;Get started&lt;/H2&gt;
&lt;P&gt;Clone the repo (skip the 50+ translations for a faster download) and work through the lessons in order:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE&gt;git clone --filter=blob:none --sparse https://github.com/microsoft/Building-AI-Agents-From-Zero-To-Production.git
cd Building-AI-Agents-From-Zero-To-Production
git sparse-checkout set --no-cone '/*' '!translations' '!translated_images'&lt;/CODE&gt;&lt;/PRE&gt;
&lt;H2&gt;References&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://github.com/microsoft/Building-AI-Agents-From-Zero-To-Production" target="_blank"&gt;Building AI Agents from Zero to Production — course repo&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://aka.ms/ai-agents-beginners/agent-framework" target="_blank"&gt;Microsoft Agent Framework&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/azure/ai-foundry/" target="_blank"&gt;Microsoft Foundry documentation&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://a2a-protocol.org/" target="_blank"&gt;Agent-to-Agent (A2A) protocol specification&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/a2aproject/a2a-python" target="_blank"&gt;a2a-python SDK&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://aka.ms/ai-agents-beginners" target="_blank"&gt;AI Agents for Beginners&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/microsoft/mcp-for-beginners" target="_blank"&gt;MCP for Beginners&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://discord.gg/Kuaw3ktsu6" target="_blank"&gt;Microsoft Foundry Discord&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;</description>
      <pubDate>Tue, 14 Jul 2026 07:00:00 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-developer-community/building-ai-agents-from-zero-to-production/ba-p/4536529</guid>
      <dc:creator>Lee_Stott</dc:creator>
      <dc:date>2026-07-14T07:00:00Z</dc:date>
    </item>
    <item>
      <title>From Multi-Model Chaos to a Governed AI Gateway: Cost Optimization on Azure</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-developer-community/from-multi-model-chaos-to-a-governed-ai-gateway-cost/ba-p/4531729</link>
      <description>&lt;H2 aria-level="2"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;What is Multi-Model Chaos, and what cost and security challenge&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;s&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;&amp;nbsp;does it pose?&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134245418&amp;quot;:true,&amp;quot;134245529&amp;quot;:true,&amp;quot;335559738&amp;quot;:160,&amp;quot;335559739&amp;quot;:80}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;Multi-model chaos&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;describes the sprawl that&amp;nbsp;emerges&amp;nbsp;when an organization rapidly adopts many large language and foundation models—OpenAI, Anthropic, Meta Llama, Mistral, and a long tail of open-source and fine-tuned variants—across teams and applications without any unifying control plane. Instead of a single governed entry point, each team wires its own keys, endpoints, SDKs, and prompts directly to whichever provider it prefers, leaving the enterprise with a fragmented, duplicated, and&amp;nbsp;largely invisible&amp;nbsp;AI estate. On the&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;cost&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN data-contrast="auto"&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;side, this fragmentation makes spend almost impossible to predict or contain,&amp;nbsp;identical workloads run against premium models when cheaper ones would suffice, token consumption goes unmeasured, redundant calls and missing caching inflate bills, and finance teams have no consolidated view to attribute usage back to a team, product, or customer. On the&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;security and governance&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;side, the risks compound: API keys are scattered across code and config files, sensitive or regulated data flows to external endpoints with no data-loss prevention or residency guarantees, prompt-injection and jailbreak attempts go unmonitored, and there is no centralized authentication, rate limiting, auditing, or content filtering. The net effect is an uncontrolled attack surface and a compliance blind spot—precisely the conditions that motivate consolidating model access behind a governed AI gateway.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;In short, multi-model chaos trades short-term speed for runaway costs and an unmanaged security risk, making a governed AI&amp;nbsp;Gateway essential.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;H2 aria-level="1"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 1"&gt;What is a Governed AI Gateway, and how do they help reduce cost and improve security?&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134245418&amp;quot;:true,&amp;quot;134245529&amp;quot;:true,&amp;quot;335559738&amp;quot;:360,&amp;quot;335559739&amp;quot;:80}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/H2&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;A &lt;/SPAN&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;governed AI gateway&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;is an enterprise control plane built on&amp;nbsp;&lt;/SPAN&gt;&lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/azure/api-management/genai-gateway-capabilities" target="_blank" rel="noopener"&gt;&lt;SPAN data-contrast="auto"&gt;Azure API Management&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN data-contrast="auto"&gt;&lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/azure/api-management/genai-gateway-capabilities" target="_blank" rel="noopener"&gt;&amp;nbsp;(APIM)&lt;/A&gt;&amp;nbsp;that&amp;nbsp;consolidates&amp;nbsp;every model behind a single, governed endpoint. It unifies&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;Azure OpenAI&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;(the gpt-5.4 family) and&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;Azure AI Foundry&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;(open-source and partner models such as grok-4.3 and DeepSeek-V4-Pro), so consumers reach any of them through one consistent, policy-enforced entry point rather than a tangle of direct connections. Every backend is&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;password-less&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;, authenticated through managed identity, which&amp;nbsp;eliminates&amp;nbsp;scattered API keys. On top of this foundation, the gateway enforces&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;per-consumer model permissions&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;,&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;token-based rate limits&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;, and&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;cost-based budget downgrade&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;—automatically routing teams to more economical models as they approach their spend limits—all administered from a&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;self-service Admin UI&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="2" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;One governed endpoint for every backend.&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt; Azure OpenAI and Azure AI Foundry (OSS and partner) models are bundled behind a single governance endpoint. Each backend is reachable only over a&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;private endpoint&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;with key authentication disabled, so APIM authenticates using its own&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;managed identity&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;—no model keys ever live on the gateway.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="2" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="2" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Per-consumer governance, edited live in the Admin UI&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;with no redeployment:&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="o" data-font="Courier New" data-listid="2" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:1440,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Courier New&amp;quot;,&amp;quot;469769242&amp;quot;:[9675],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;o&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="2"&gt;&lt;SPAN data-contrast="auto"&gt;Allowed models&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt; — a consumer can call only the models explicitly granted to it; anything else returns a&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;403&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="o" data-font="Courier New" data-listid="2" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:1440,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Courier New&amp;quot;,&amp;quot;469769242&amp;quot;:[9675],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;o&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="2" data-aria-level="2"&gt;&lt;SPAN data-contrast="auto"&gt;Rate limits&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt; — per-consumer TPM and token-quota tiers (small / medium / large), returning a&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;429&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;once exceeded.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="o" data-font="Courier New" data-listid="2" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:1440,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Courier New&amp;quot;,&amp;quot;469769242&amp;quot;:[9675],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;o&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="3" data-aria-level="2"&gt;&lt;SPAN data-contrast="auto"&gt;Cost budget&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt; — a daily USD spend limit; when it is exceeded, requests are&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;automatically downgraded&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;to a cheaper model along a configured ladder, including cross-backend downgrades (e.g.&amp;nbsp;gpt&amp;nbsp;→ OSS or OSS →&amp;nbsp;gpt).&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="2" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="3" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Self-service Admin UI&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt; (React +&amp;nbsp;FastAPI, Entra ID login, gated to an admin group) to issue consumer keys, set model, limit, and budget policies, and review the usage dashboard and request logs.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="2" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="4" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Built-in observability&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt; — per-call token metrics, broken down by consumer and model, stream to Application Insights, surfaced through the Admin UI's usage dashboard and a request /&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;blocked&amp;nbsp;&amp;amp; downgrade&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;-event log.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="2" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="5" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Flexible client authentication&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt; — an APIM subscription key by default, or an Entra ID JWT (client_auth_mode).&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2 aria-level="1"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 1"&gt;How is it different from APIM AI Gateway?&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134245418&amp;quot;:true,&amp;quot;134245529&amp;quot;:true,&amp;quot;335559738&amp;quot;:360,&amp;quot;335559739&amp;quot;:80}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/H2&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;APIM&amp;nbsp;already provides useful GenAI gateway primitives: token rate limiting, token-usage metrics, semantic caching, backend routing, endpoint import, authentication, authorization, and monitoring. The difference is that APIM&amp;nbsp;enables&amp;nbsp;the enforcement runtime and policy control point, but not the full operating model&amp;nbsp;required&amp;nbsp;to run a shared, multi-tenant AI platform across teams, models, and budgets.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Inside the policy pipeline, APIM remains the load-bearing layer:&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;llm-token-limit&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;enforces per-consumer token-per-minute and quota limits,&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;llm-emit-token-metric&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;streams token usage into our metrics namespace, and standard APIM capabilities handle endpoint exposure, access control, and platform monitoring.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;The governed AI Gateway&amp;nbsp;adds the&amp;nbsp;governance layer APIM does not provide out of the box:&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="6" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Self-service onboarding&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;— a platform team can issue or revoke consumer keys and manage access from the Admin UI, without raising a pull request or redeploying infrastructure.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="6" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="2" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Per-consumer model entitlements&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;— every consumer has an explicit allow-list of model deployments. The gateway calculates the effective allowed set per request and returns&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;403&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;when a caller asks for a model it is not entitled to use.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="6" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="3" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Live configuration without redeployment&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;— entitlements, rate tiers, token quotas, budgets, and downgrade levels live in the configuration store. A sync worker projects those values into APIM named values continuously, so operational changes can take effect without a terraform apply while the policy logic stays version-controlled in&amp;nbsp;IaC.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="6" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="4" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Managed-identity-only, private backends&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;— key-based authentication is disabled on Azure OpenAI and Azure AI Foundry. APIM injects a managed identity token on every backend call, and the backends are reachable only over private endpoints.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="6" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="6" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Cost-based downgrade across backends&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;— when a consumer approaches its budget, the gateway can route to a cheaper model while preserving availability, including cross-backend downgrades between Azure OpenAI and Azure AI Foundry.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;APIM’s AI gateway is the enforcement runtime&amp;nbsp;while&amp;nbsp;the governed AI Gateway is the platform operating model around it. APIM handles the gateway primitives extremely well, while our governance layer adds identity, self-service administration, entitlement management, live configuration, cost controls, and cross-model routing so teams can safely consume multiple models without creating&amp;nbsp;new cost, security, or compliance sprawl.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;H2 aria-level="1"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 1"&gt;Solution overview&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134245418&amp;quot;:true,&amp;quot;134245529&amp;quot;:true,&amp;quot;335559738&amp;quot;:360,&amp;quot;335559739&amp;quot;:80}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/H2&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Figure 1 shows the end-to-end architecture of the governed AI gateway. Client applications never talk to the models directly; instead, every request passes through&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;Azure API Management&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;, which acts as the single governed entry point that authenticates callers, applies per-consumer policy, and routes traffic privately to the&amp;nbsp;appropriate model&amp;nbsp;backend. Around this gateway sit the supporting planes for administration, identity, and observability, giving the&amp;nbsp;organization&amp;nbsp;one consistent place to control access,&amp;nbsp;contain&amp;nbsp;cost, and&amp;nbsp;monitor&amp;nbsp;usage across both Azure OpenAI and Azure AI Foundry models.&amp;nbsp;This solution is also completely serverless.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Key components:&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="5" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Client / consumer applications&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;— the apps and services that call for model inference, each&amp;nbsp;identified&amp;nbsp;by its own consumer key or Entra ID identity.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="5" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="2" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Azure API Management (the gateway)&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;— the single governance endpoint that handles authentication, allowed-model checks, rate limiting, and cost-based budget downgrade before any request reaches a model.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="5" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="3" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Model backends&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;—&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;Azure OpenAI&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;(the gpt-5.4 family) and&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;Azure AI Foundry&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;(OSS and partner models such as grok-4.3 and DeepSeek-V4-Pro), each reachable only over a private endpoint.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="5" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="4" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Microsoft Entra ID&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;— provides identity for both clients (optional JWT auth) and the gateway's own managed identity used to reach the backends&amp;nbsp;without password credentials.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="5" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="5" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Admin UI (React +&amp;nbsp;FastAPI)&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;— the self-service control plane for issuing consumer keys and setting model, rate-limit, and budget policies.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="5" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="6" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Application Insights&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;— collects per-call token metrics by consumer and model, powering the usage dashboard and request / blocked-event logs.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P aria-level="1"&gt;&lt;SPAN data-ccp-props="{&amp;quot;134245418&amp;quot;:true,&amp;quot;134245529&amp;quot;:true,&amp;quot;335559738&amp;quot;:360,&amp;quot;335559739&amp;quot;:80}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;img&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="caption"&gt;Figure&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="caption"&gt;1&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="caption"&gt;: Solution architecture diagram&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/img&gt;
&lt;H4&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;Request flow&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/H4&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Authenticate&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;— a client calls the gateway with an APIM subscription key (or an Entra ID JWT) instead of any model key.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Authorize the model&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;— APIM checks whether the consumer is&amp;nbsp;permitted&amp;nbsp;to call the requested model; if not, it returns&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;403&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Enforce limits&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;— the gateway applies the consumer's TPM and token-quota tier, returning&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;429&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;when the limit is exceeded.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Apply the cost budget&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;— if the consumer's daily USD budget is exhausted, the request is automatically downgraded to a cheaper model along the configured ladder.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Route to the backend&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;— APIM&amp;nbsp;forwards&amp;nbsp;the request over a private endpoint, authenticating with its managed identity to Azure OpenAI or Azure AI Foundry.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Return and record&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;— the model response is returned to the client while per-call token metrics are emitted to Application Insights and surfaced in the Admin UI dashboard and logs.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;H2 aria-level="1"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 1"&gt;Implement the solution&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134245418&amp;quot;:true,&amp;quot;134245529&amp;quot;:true,&amp;quot;335559738&amp;quot;:360,&amp;quot;335559739&amp;quot;:80}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/H2&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;This section describes how to deploy the solution architecture.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;In this post,&amp;nbsp;you’ll&amp;nbsp;perform the following tasks:&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="1" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Create APIM&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="1" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="2" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Create Cosmos DB&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="1" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="3" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Create Microsoft foundry with&amp;nbsp;Gpt-5.4, Gpt-5.4-mini,&amp;nbsp;DeepSeek-V4-Pro&amp;nbsp;and Grok-4.3 deployed&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="1" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="4" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Create the Admin UI on container apps&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="1" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="5" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Create a consumer with an APIM subscription key on the Admin UI&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="1" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="6" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Integrate APIM endpoint with&amp;nbsp;Github&amp;nbsp;Copilot chat and Copilot CLI&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="1" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="7" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Create a&amp;nbsp;budget and rate limit in the Admin UI&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="1" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="8" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Simulate&amp;nbsp;and&amp;nbsp;validate&amp;nbsp;auto downgrade feature&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Ensure that you have the following prerequisites deployed before moving to the next section&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="7" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;An Azure subscription with model quota (Azure OpenAI and, optionally, Azure AI Foundry models).&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="7" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="2" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Tools:&amp;nbsp;Git,&amp;nbsp;Terraform ≥ 1.7, Azure CLI, and&amp;nbsp;az&amp;nbsp;login to the subscription. Container images are built remotely in Azure Container Registry, so Docker is not&amp;nbsp;required.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="7" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="3" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;VScode&amp;nbsp;and Copilot CLI&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2 aria-level="1"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 1"&gt;Deploy&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 1"&gt;the Azure AI Gateway&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134245418&amp;quot;:true,&amp;quot;134245529&amp;quot;:true,&amp;quot;335559738&amp;quot;:360,&amp;quot;335559739&amp;quot;:80}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/H2&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Clone the repository from &lt;A class="lia-external-url" href="https://github.com/microsoft/apim-foundry-governance" target="_blank"&gt;https://github.com/microsoft/apim-foundry-governance&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;LI-CODE lang="bash"&gt;git clone https://github.com/microsoft/apim-foundry-governance git checkout english&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;By default the solution deploys in koreacentral region. Export your custom variables if needed.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;LI-CODE lang="bash"&gt;export location=eastus2 export backend-rg=rg-aigw-tfstate-dev-eastus2 export storage-prefix=staigwtfstate export state-key=ai-gateway-eus2.tfstate &lt;/LI-CODE&gt;
&lt;H3 aria-level="2"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;Bootstrap the Terraform state backend (once per subscription)&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134245418&amp;quot;:true,&amp;quot;134245529&amp;quot;:true,&amp;quot;335559738&amp;quot;:160,&amp;quot;335559739&amp;quot;:80}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/H3&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;This creates an eastus2 resource group + storage account for remote state (Entra auth, public blob access blocked).&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;LI-CODE lang="bash"&gt;./scripts/bootstrap-backend.sh \ 
  --location $location \ 
  --backend-rg $backend-rg \ 
  --storage-prefix $storage-prefix \ 
  --state-key $state-key&lt;/LI-CODE&gt;
&lt;H3 aria-level="2"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;Set Terraform variables&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134245418&amp;quot;:true,&amp;quot;134245529&amp;quot;:true,&amp;quot;335559738&amp;quot;:160,&amp;quot;335559739&amp;quot;:80}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/H3&gt;
&lt;LI-CODE lang="bash"&gt;cp infra/terraform.tfvars.example infra/terraform.tfvars 
# Edit infra/terraform.tfvars: prefix, location, owner, cost_center, apim_publisher_*, budget_* &lt;/LI-CODE&gt;
&lt;H3 aria-level="2"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;Create the Gateway Core&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134245418&amp;quot;:true,&amp;quot;134245529&amp;quot;:true,&amp;quot;335559738&amp;quot;:160,&amp;quot;335559739&amp;quot;:80}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/H3&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;On the first apply, leave worker_image and admin_ui_image empty (default ""). The images&amp;nbsp;don't&amp;nbsp;exist yet, and the worker Job / Admin UI app are count-gated on these variables.&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;LI-CODE lang="bash"&gt;cd infra 
terraform init 
# If you are moving an existing state from another backend, run `terraform init -migrate-state` instead. 
terraform apply&lt;/LI-CODE&gt;
&lt;H3 aria-level="2"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;Build and push the container images&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;&amp;nbsp;with app registrations&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134245418&amp;quot;:true,&amp;quot;134245529&amp;quot;:true,&amp;quot;335559738&amp;quot;:160,&amp;quot;335559739&amp;quot;:80}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/H3&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;After the registry is created, build the worker and Admin UI images remotely (no local Docker needed).&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;LI-CODE lang="bash"&gt;acr=$(terraform output -raw registry_login_server) 
reg=$(terraform output -raw registry_name) 
az acr build --registry $reg --image config-sync-worker:latest ../app/config-sync-worker 
az acr build --registry $reg --image admin-ui:latest ../app/admin-ui &lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;The worker and Admin UI&amp;nbsp;requires&amp;nbsp;entra&amp;nbsp;app registrations for a user to access the frontend.&amp;nbsp;Create the admin security group, BFF API App registrations and SPA public-client app registrations.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;LI-CODE lang="bash"&gt;./scripts/app-registration.sh &lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3 aria-level="2"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;Enable the worker and Admin UI&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134245418&amp;quot;:true,&amp;quot;134245529&amp;quot;:true,&amp;quot;335559738&amp;quot;:160,&amp;quot;335559739&amp;quot;:80}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/H3&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;From the output above,&amp;nbsp;populate the image references and the three Entra variables from the prerequisites into infra/terraform.tfvars and apply again.&lt;/SPAN&gt;&lt;/P&gt;
&lt;LI-CODE lang="bash"&gt;worker_image          = "&amp;lt;registry_login_server&amp;gt;/config-sync-worker:latest" 
admin_ui_image        = "&amp;lt;registry_login_server&amp;gt;/admin-ui:latest" 
admin_ui_public       = true   # external FQDN (still Entra-gated). false = VNet-only 
admin_group_object_id = "&amp;lt;entra security group object id&amp;gt;" 
bff_api_audience      = "api://&amp;lt;bff app id&amp;gt;" 
spa_client_id         = "&amp;lt;spa app id&amp;gt;" 
entra_tenant_id       = "&amp;lt;tenant id&amp;gt;"&lt;/LI-CODE&gt;
&lt;H3 aria-level="2"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;CosmosDB&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;Seed configuration&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134245418&amp;quot;:true,&amp;quot;134245529&amp;quot;:true,&amp;quot;335559738&amp;quot;:160,&amp;quot;335559739&amp;quot;:80}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/H3&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Cosmos is private with key auth disabled, so the&amp;nbsp;initial&amp;nbsp;config is seeded from a &lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;jumpbox&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt; inside the&amp;nbsp;VNet.&amp;nbsp;Default&amp;nbsp;confguration&amp;nbsp;of&amp;nbsp;enable_jumpbox&amp;nbsp;= true in&amp;nbsp;infra/terraform.tfvars&amp;nbsp;triggers&amp;nbsp;Terraform&amp;nbsp;to:&amp;nbsp;provision the&amp;nbsp;jumpbox&amp;nbsp;VM, grant&amp;nbsp;it’s&amp;nbsp;managed identity the Cosmos DB Built-in Data Contributor role (scoped to the config container), and runs a &lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;VM&amp;nbsp;run-command&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt; that seeds both documents automatically:&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="8" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Global config&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt; (id=global) — allowed models + token limits.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="8" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="2" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Per-model pricing&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt; (id=pricing) — prompt/completion rates for cost-based budgeting.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;To seed manually instead (jumpbox&amp;nbsp;connected via Bastion), the same scripts can be run directly:&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;LI-CODE lang="bash"&gt;# Global allowed models + limits 
./scripts/seed-cosmos-jumpbox.sh https://&amp;lt;cosmos-account&amp;gt;.documents.azure.com:443/ 
# Per-model pricing (for cost-based budgeting) 
./scripts/seed-pricing-jumpbox.sh https://&amp;lt;cosmos-account&amp;gt;.documents.azure.com:443/ &lt;/LI-CODE&gt;
&lt;H3 aria-level="2"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;Access the&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;AdminUI&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134245418&amp;quot;:true,&amp;quot;134245529&amp;quot;:true,&amp;quot;335559738&amp;quot;:160,&amp;quot;335559739&amp;quot;:80}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/H3&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Update the SPA with your&amp;nbsp;containerapps&amp;nbsp;url&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;LI-CODE lang="bash"&gt;spa_app_id="$(az ad app list --display-name "AI Gateway SPA" --query "[].appId" -o tsv)" # spa_client_id 
fqdn=$(terraform output -raw admin_ui_fqdn) # run from infra/ 
oid=$(az ad app show --id "$spa_app_id" --query id -o tsv) 

az rest --method PATCH \ 
  --uri "https://graph.microsoft.com/v1.0/applications/$oid" \ 
  --headers 'Content-Type=application/json' \ 
  --body "{\"spa\":{\"redirectUris\":[\"https://$fqdn\"]}}"&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Browse to the&amp;nbsp;admin_ui_fqdn, which is also the container apps&amp;nbsp;fqdn. You will need to login via&amp;nbsp;EntraID&amp;nbsp;(Users will need to be added to the Entra group for them to login).&amp;nbsp;Go ahead and register the consumer with a name and issue the API key.&amp;nbsp;The API key is the APIM subscription key and will only be shown once on the UI, so copy and paste it somewhere safe.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;img&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="caption"&gt;Figure&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="caption"&gt;2&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="caption"&gt;: AI Gateway Consumers and Keys&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/img&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Next, on the&amp;nbsp;left hand&amp;nbsp;tab, click on&amp;nbsp;budgets. This will set the daily budget limit a user is allowed to consume in a day and is also where the model downgrade logic&amp;nbsp;resides.&amp;nbsp;For the purpose of&amp;nbsp;demonstration, set a low budget of $1.8 and select the model priority that you want the downgrade to occur. In this case, gpt-5.4 will be used first, followed by gpt-5.4-mini, DeepSeek then Grok.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;img&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="caption"&gt;Figure&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="caption"&gt;3&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="caption"&gt;: AI Gateway Budgets&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/img&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Lastly, on the land hand tab, select Rate limits.&amp;nbsp;This sets the&amp;nbsp;amount&amp;nbsp;of tokens a user&amp;nbsp;can&amp;nbsp;consume in a day.&amp;nbsp;It is a daily limit and resets&amp;nbsp;after 24 hours.&amp;nbsp;&amp;nbsp;Select the large tier.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;img&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="caption"&gt;Figure&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="caption"&gt;4&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="caption"&gt;: AI Gateway Rate Limits&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/img&gt;
&lt;P&gt;&lt;SPAN data-ccp-props="{&amp;quot;134245418&amp;quot;:true}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;Browse to Dashboard, it shows you all the token information, request status codes and group them by consumer and model. You can also view the budget downgrade for a specific user.&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;img&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="caption"&gt;Figure&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="caption"&gt;5&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="caption"&gt;: AI Gateway Captions&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/img&gt;
&lt;H2&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;Integrate endpoint with &lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;github&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;&amp;nbsp;copilot chat&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;&amp;nbsp;in&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;vscode&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134245418&amp;quot;:true,&amp;quot;134245529&amp;quot;:true,&amp;quot;335559738&amp;quot;:160,&amp;quot;335559739&amp;quot;:80}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/H2&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;In&amp;nbsp;VScode,&amp;nbsp;type “Ctrl + Shift + p” and select&amp;nbsp;“Chat: Manage Language Model”.&amp;nbsp;Select Add Models and choose Azure.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;img&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="caption"&gt;Figure&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="caption"&gt;6&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="caption"&gt;: Add models to&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="caption"&gt;Github&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="caption"&gt;Copilot Chat&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/img&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Follow through the prompts.&amp;nbsp;It will create or edit a&amp;nbsp;chatLanguageModels.json&amp;nbsp;file. Your file should look like this. Take note that you will need to use the /vscode&amp;nbsp;path.&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;LI-CODE lang="json"&gt;[ 
    { 
        "name": "Azure", 
        "vendor": "azure", 
        "models": [ 
            { 
                "id": "gpt-5.4", 
                "name": "gpt-5.4 (APIM)", 
                "url": "https://&amp;lt;REPLACE WITH YOUR APIM ENDPOINT&amp;gt;.azure-api.net/vscode/openai/deployments/gpt-5.4/chat/completions?api-version=2025-01-01-preview", 
                "toolCalling": true, 
                "vision": true, 
                "maxInputTokens": 128000, 
                "maxOutputTokens": 16000, 
                "requestHeaders": { 
                    "Ocp-Apim-Subscription-Key": "&amp;lt;REPLACE WITH YOUR SUBSCRIPTION KEY" 
                } 
            } 
        ] 
    } 
]&lt;/LI-CODE&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Now select the gpt-5.4 (APIM) model&amp;nbsp;and ask it a question.&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;H3 aria-level="2"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;Integrate endpoint with copilot cli&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134245418&amp;quot;:true,&amp;quot;134245529&amp;quot;:true,&amp;quot;335559738&amp;quot;:160,&amp;quot;335559739&amp;quot;:80}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/H3&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;As copilot only accepts&amp;nbsp;api-key headers,&amp;nbsp;a separate&amp;nbsp;api&amp;nbsp;is used.&amp;nbsp;Replace and&amp;nbsp;export the following variables before using copilot cli.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;LI-CODE lang="bash"&gt;export COPILOT_PROVIDER_TYPE="azure" 
export COPILOT_PROVIDER_BASE_URL="&amp;lt;REPLACE WITH YOUR APIM ENDPOINT&amp;gt;" 
export COPILOT_PROVIDER_API_KEY="&amp;lt;REPLACE WITH YOUR SUBSCRIPTION KEY&amp;gt;" 
export COPILOT_MODEL="gpt-5.4" 
export COPILOT_PROVIDER_AZURE_API_VERSION="2025-01-01-preview" 
export COPILOT_PROVIDER_MODEL_ID="gpt-5.4"&lt;/LI-CODE&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;You should see a similar response.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;img&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="caption"&gt;Figure&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="caption"&gt;7&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="caption"&gt;: Integration of APIM to copilot cli&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/img&gt;
&lt;H3 aria-level="2"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;Simulate downgrade feature&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134245418&amp;quot;:true,&amp;quot;134245529&amp;quot;:true,&amp;quot;335559738&amp;quot;:160,&amp;quot;335559739&amp;quot;:80}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/H3&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Continue to ask more questions to consume more tokens. Once it hits the 80% cost threshold, you should see that the tag has been switched to “Auto-switch level 1”, meaning it will downgrade to gpt-5.4-mini for future requests.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;img&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="caption"&gt;Figure&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="caption"&gt;8&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="caption"&gt;: AI Gateway Downgrade Feature&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/img&gt;
&lt;H3&gt;&lt;SPAN data-contrast="auto"&gt;Validate by running this command in your terminal&amp;nbsp;with your own endpoints and&amp;nbsp;api-key.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/H3&gt;
&lt;LI-CODE lang="bash"&gt;curl -sS -i -X POST   "https://&amp;lt;REPLACE&amp;gt;.azure-api.net/openai/deployments/gpt-5.4/chat/completions?api-version=2025-01-01-preview"   -H "api-key: &amp;lt;REPLACE WITH API KEY&amp;gt;"   -H "Content-Type: application/json"   -d '{"messages":[{"role":"user","content":"hi"}],"max_completion_tokens":8}' &lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Inspect the headers, you should see that the downgrade level is 1 and the effective model is gpt-5.4-mini despite hitting the same endpoint of gpt-5.4.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;img&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="caption"&gt;Figure&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="caption"&gt;9&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="caption"&gt;: Model downgrade&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/img&gt;
&lt;H2&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 1"&gt;Conclusion&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134245418&amp;quot;:true,&amp;quot;134245529&amp;quot;:true,&amp;quot;335559738&amp;quot;:360,&amp;quot;335559739&amp;quot;:80}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/H2&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;This post started with the problem of&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;multi-model chaos&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;: teams moving quickly with different models, endpoints, SDKs, keys, quotas, and cost profiles, but without a common control plane&amp;nbsp;resulting in ineffective cost control and potential security leaks with model API keys. The governed AI Gateway addresses that by putting Azure OpenAI and Azure AI Foundry behind a single APIM-based entry point, where access, limits, routing, identity, telemetry, and budget&amp;nbsp;behavior&amp;nbsp;can be applied consistently for every consumer.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;We also walked through how the gateway is different from APIM’s native AI gateway capabilities. APIM provides the enforcement runtime and the GenAI policy primitives, such as token limits, token metrics, semantic caching, and backend routing. The governed AI Gateway builds the operating model around those primitives: self-service onboarding, per-consumer model entitlements, live configuration without redeployment, managed-identity-only private backends, per-call cost telemetry, and cost-based downgrade across model providers.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;From there,&amp;nbsp;we integrated the APIM endpoint with&amp;nbsp;Github&amp;nbsp;Copilot Chat and Copilot&amp;nbsp;CLI, and&amp;nbsp;validated the downgrade&amp;nbsp;behavior&amp;nbsp;when spend thresholds were reached. The result is not just an AI proxy, but a reusable enterprise pattern for running AI access as a governed platform: developers keep a simple model endpoint experience, while the platform team keeps control over security, cost, observability, and operational change.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Overall, this post helps&amp;nbsp;organizations bring multi-model AI usage under one governed entry point, reducing sprawl across endpoints, keys, policies, and cost controls. It also&amp;nbsp;gives&amp;nbsp;platform teams&amp;nbsp;centralized control over model access, rate limits, budgets, telemetry, and private backend access while preserving a simple endpoint experience for developers.&lt;/SPAN&gt;&lt;/P&gt;
&lt;H3&gt;References&lt;/H3&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;&lt;A href="https://learn.microsoft.com/en-us/azure/api-management/genai-gateway-capabilities" target="_blank" rel="noopener"&gt;AI gateway capabilities in Azure API Management&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;&lt;A href="https://learn.microsoft.com/en-us/azure/api-management/api-management-howto-policies" target="_blank" rel="noopener"&gt;Policies in Azure API Management&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;&lt;A href="https://learn.microsoft.com/en-us/azure/api-management/llm-emit-token-metric-policy" target="_blank" rel="noopener"&gt;Azure API Management policy reference - llm-emit-token-metric&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;&lt;A href="https://docs.github.com/en/copilot/how-tos/copilot-cli/use-copilot-cli/overview" target="_blank" rel="noopener"&gt;Using GitHub Copilot CLI - GitHub Docs&lt;/A&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;&lt;A href="https://code.visualstudio.com/docs/agent-customization/language-models" target="_blank" rel="noopener"&gt;AI language models in VS Code&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;</description>
      <pubDate>Tue, 14 Jul 2026 04:15:00 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-developer-community/from-multi-model-chaos-to-a-governed-ai-gateway-cost/ba-p/4531729</guid>
      <dc:creator>jisunchoi</dc:creator>
      <dc:date>2026-07-14T04:15:00Z</dc:date>
    </item>
    <item>
      <title>Creating Autonomous Teams Agents Using OpenClaw, MCP, and Azure Container Apps</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-developer-community/creating-autonomous-teams-agents-using-openclaw-mcp-and-azure/ba-p/4536296</link>
      <description>&lt;H2 data-line="8"&gt;The one shift that changes everything&lt;/H2&gt;
&lt;P data-line="10"&gt;For two years, "AI coding" meant autocomplete. A suggestion appears in your editor, you hit tab, you move on. The agent only existed while you were actively typing.&lt;/P&gt;
&lt;P data-line="12"&gt;That is no longer the only model. A new category of tools runs&amp;nbsp;&lt;STRONG&gt;asynchronously and autonomously&lt;/STRONG&gt;: you message the agent from a chat window — Teams, Slack, Telegram — describe what you want, and walk away. The agent plans, writes code, runs tests, deploys, and hands you back a result. Some of them never sleep: they hold a persistent memory, load their own skills, and act on a schedule without being prompted.&lt;/P&gt;
&lt;P data-line="14"&gt;This is the world of&amp;nbsp;&lt;STRONG&gt;OpenClaw&lt;/STRONG&gt;,&amp;nbsp;&lt;STRONG&gt;Hermes Agent&lt;/STRONG&gt;, and the other long-running autonomous agents that exploded across developer culture in 2026. OpenClaw alone crossed 377,000 GitHub stars and millions of active users, becoming — for a while — the most-starred project on GitHub. You install it with one line, connect a channel, and start delegating from your phone.&lt;/P&gt;
&lt;P data-line="16"&gt;The workflow moves from&amp;nbsp;&lt;EM&gt;pair programming&lt;/EM&gt;&amp;nbsp;to&amp;nbsp;&lt;EM&gt;delegation and review&lt;/EM&gt;. The interactive copilot asks, "What should I write next?" The autonomous agent asks, "What do you need done?"&lt;/P&gt;
&lt;P data-line="18"&gt;And that reframing is exactly why three questions now keep architects awake:&lt;/P&gt;
&lt;OL data-line="20"&gt;
&lt;LI data-line="20"&gt;&lt;STRONG&gt;Is it safe?&lt;/STRONG&gt;&amp;nbsp;You are handing a self-driving process the ability to run shell commands, touch files, and call APIs. One community report memorably described these agents as a teammate in your group chat who happens to have root access to your codebase. That is not a compliment — it is a threat model.&lt;/LI&gt;
&lt;LI data-line="21"&gt;&lt;STRONG&gt;Can it fit into real multi-agent work?&lt;/STRONG&gt;&amp;nbsp;A single agent is a demo. Production is a&amp;nbsp;&lt;EM&gt;fleet&lt;/EM&gt;&amp;nbsp;— specialists that hand off to each other with gates in between.&lt;/LI&gt;
&lt;LI data-line="22"&gt;&lt;STRONG&gt;Is it flexible and controllable?&lt;/STRONG&gt;&amp;nbsp;Autonomy is thrilling right up until the agent packages last week's stale files into this week's deliverable, or loops forever on a failing test.&lt;/LI&gt;
&lt;/OL&gt;
&lt;P data-line="24"&gt;This post answers all three — not with hand-waving, but with a working reference implementation you can clone today:&amp;nbsp;&lt;STRONG&gt;&lt;A href="https://github.com/kinfey/Multi-AI-Agents-Cloud-Native/tree/main/code/CustomCodingAgentApp" target="_blank" rel="noopener" data-href="https://github.com/kinfey/Multi-AI-Agents-Cloud-Native/tree/main/code/CustomCodingAgentApp"&gt;CustomCodingAgentApp&lt;/A&gt;&lt;/STRONG&gt;&amp;nbsp;in the&amp;nbsp;Multi-AI-Agents-Cloud-Native&amp;nbsp;repo, an&amp;nbsp;&lt;STRONG&gt;"Agentic Prototype Factory"&lt;/STRONG&gt;&amp;nbsp;that turns a plain-language idea into a tested, live-on-Azure prototype&amp;nbsp;&lt;STRONG&gt;without leaving the chat window&lt;/STRONG&gt;.&lt;/P&gt;
&lt;P data-line="26"&gt;A product manager types&amp;nbsp;&lt;EM&gt;"Build a BBC-style World Cup feature page"&lt;/EM&gt;&amp;nbsp;in&amp;nbsp;&lt;STRONG&gt;Microsoft Teams&lt;/STRONG&gt;. Minutes later they get back a&amp;nbsp;&lt;STRONG&gt;running HTTPS URL&lt;/STRONG&gt;&amp;nbsp;and a&amp;nbsp;&lt;STRONG&gt;downloadable source ZIP&lt;/STRONG&gt;. Under the hood, five specialized&amp;nbsp;&lt;STRONG&gt;OpenClaw&lt;/STRONG&gt;&amp;nbsp;agents powered by&amp;nbsp;&lt;STRONG&gt;Microsoft Foundry&amp;nbsp;gpt-5.5&lt;/STRONG&gt;&amp;nbsp;collaborate in a shared sandbox, run real&amp;nbsp;pytest/Jest&amp;nbsp;suites, and ship the result to&amp;nbsp;&lt;STRONG&gt;Azure Container Apps&lt;/STRONG&gt;&amp;nbsp;— all orchestrated behind a&amp;nbsp;&lt;STRONG&gt;Model Context Protocol (MCP)&lt;/STRONG&gt;&amp;nbsp;service so any MCP client (GitHub Copilot, Claude, the Teams bot) can drive it.&lt;/P&gt;
&lt;P data-line="28"&gt;We'll build up to that architecture in the order you should learn it.&lt;/P&gt;
&lt;H2 data-line="32"&gt;Part 1 — Long-running autonomous agents, and their two hard problems&lt;/H2&gt;
&lt;H3 data-line="34"&gt;What actually makes them different&lt;/H3&gt;
&lt;P data-line="36"&gt;A traditional chatbot is&amp;nbsp;&lt;EM&gt;text in, text out&lt;/EM&gt;. It waits for you. An autonomous agent inverts that:&lt;/P&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table border="1" style="border-width: 1px;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Property&lt;/th&gt;&lt;th&gt;Traditional chatbot&lt;/th&gt;&lt;th&gt;Long-running autonomous agent&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Execution&lt;/td&gt;&lt;td&gt;Responds to a prompt&lt;/td&gt;&lt;td&gt;Acts proactively (a "heartbeat" wakes it on a schedule)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Scope&lt;/td&gt;&lt;td&gt;Words&lt;/td&gt;&lt;td&gt;Files, shell, browser, APIs — the real machine&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Memory&lt;/td&gt;&lt;td&gt;This session only&lt;/td&gt;&lt;td&gt;Persistent across sessions&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Interface&lt;/td&gt;&lt;td&gt;A web box&lt;/td&gt;&lt;td&gt;Any chat channel + the terminal&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Autonomy&lt;/td&gt;&lt;td&gt;None&lt;/td&gt;&lt;td&gt;Plans and takes multi-step action on its own&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;colgroup&gt;&lt;col style="width: 33.33%" /&gt;&lt;col style="width: 33.33%" /&gt;&lt;col style="width: 33.33%" /&gt;&lt;/colgroup&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;P data-line="46"&gt;Architecturally, OpenClaw is not a library you import — it's a&amp;nbsp;&lt;STRONG&gt;runtime&lt;/STRONG&gt;. A single long-running process (the&amp;nbsp;&lt;STRONG&gt;Gateway&lt;/STRONG&gt;) bridges your messaging channels to an LLM backend, keeps sessions alive, queues work in ordered lanes, and drives the classic agent loop:&amp;nbsp;&lt;EM&gt;call the model → execute the tool calls it asks for → feed results back → repeat until done&lt;/EM&gt;. There is no rigid step-planner; the model itself steers. That is what makes it feel magical — and what makes it hard to contain.&lt;/P&gt;
&lt;P data-line="48"&gt;That containment problem has two faces.&lt;/P&gt;
&lt;H3 data-line="50"&gt;Hard problem #1 — Security&lt;/H3&gt;
&lt;P data-line="52"&gt;The same properties that make an autonomous agent useful make it dangerous. Full system access + proactive execution + a 32,000-server tool ecosystem is a large, self-driving attack surface. OpenClaw's own short history is the cautionary tale: a&amp;nbsp;&lt;STRONG&gt;critical one-click remote-code-execution CVE&lt;/STRONG&gt;&amp;nbsp;early in its life,&amp;nbsp;&lt;STRONG&gt;hundreds of malicious community "skills"&lt;/STRONG&gt;&amp;nbsp;discovered on its marketplace, and&amp;nbsp;&lt;STRONG&gt;tens of thousands of gateways found exposed on the open internet&lt;/STRONG&gt;. None of this means "don't use autonomous agents." It means:&amp;nbsp;&lt;STRONG&gt;never run one with ambient credentials on a machine you care about.&lt;/STRONG&gt;&amp;nbsp;The agent belongs in a box with a hard wall around it.&lt;/P&gt;
&lt;H3 data-line="54"&gt;Hard problem #2 — Persistence and continuity&lt;/H3&gt;
&lt;P data-line="56"&gt;Real agent work is&amp;nbsp;&lt;EM&gt;long&lt;/EM&gt;. Refactoring a codebase, researching across dozens of pages, building-testing-deploying an app — these take minutes to hours, far past a single request/response. So the runtime needs durable sessions, a place to keep state, and a workspace that survives across steps. But a persistent workspace that is&amp;nbsp;&lt;EM&gt;reused&lt;/EM&gt;&amp;nbsp;creates its own hazard:&amp;nbsp;&lt;STRONG&gt;state leakage&lt;/STRONG&gt;. Files from yesterday's task can contaminate — or get shipped inside — today's result. Continuity and cleanliness pull in opposite directions, and you have to engineer the tension out.&lt;/P&gt;
&lt;H3 data-line="58"&gt;One agent is a demo; production is a fleet&lt;/H3&gt;
&lt;P data-line="60"&gt;A single monolithic agent asked to "gather requirements, write the code, test it, deploy it, and package it" will do all four&amp;nbsp;&lt;EM&gt;mediocrely&lt;/EM&gt;&amp;nbsp;and blur the boundaries between them. The production pattern is&amp;nbsp;&lt;STRONG&gt;orchestrator-worker&lt;/STRONG&gt;: specialized agents, each with one job, handing off to the next through&amp;nbsp;&lt;STRONG&gt;explicit gates&lt;/STRONG&gt;. OpenClaw supports exactly this — it can spawn sub-agents and even dispatch external coding harnesses, acting as a meta-orchestrator rather than a single model. The open question is never&amp;nbsp;&lt;EM&gt;whether&lt;/EM&gt;&amp;nbsp;to go multi-agent; it's&amp;nbsp;&lt;STRONG&gt;where the seams and the guardrails go&lt;/STRONG&gt;.&lt;/P&gt;
&lt;H3 data-line="62"&gt;The answer to "is it safe?": put the agent in a microVM&lt;/H3&gt;
&lt;P data-line="64"&gt;If the agent needs root to be useful, then give it root —&amp;nbsp;&lt;STRONG&gt;inside a disposable microVM&lt;/STRONG&gt;, not on your host. In 2026 there are several credible ways to do this:&lt;/P&gt;
&lt;UL data-line="66"&gt;
&lt;LI data-line="66"&gt;&lt;STRONG&gt;Kata Containers on AKS&lt;/STRONG&gt;&amp;nbsp;— each pod gets its own lightweight VM boundary and guest kernel.&lt;/LI&gt;
&lt;LI data-line="67"&gt;&lt;STRONG&gt;Hyperlight Wasm&lt;/STRONG&gt;&amp;nbsp;— per-call, snapshot-restored Wasm microVMs for running LLM-generated code.&lt;/LI&gt;
&lt;LI data-line="68"&gt;&lt;STRONG&gt;Azure Container Apps dynamic sessions&lt;/STRONG&gt;&amp;nbsp;— prewarmed,&amp;nbsp;&lt;STRONG&gt;Hyper-V-isolated&lt;/STRONG&gt;&amp;nbsp;sandboxes that start in&amp;nbsp;&lt;STRONG&gt;milliseconds&lt;/STRONG&gt;, scale to thousands, and are purpose-built for&amp;nbsp;&lt;EM&gt;"secure execution of custom code"&lt;/EM&gt;&amp;nbsp;and&amp;nbsp;&lt;EM&gt;"running LLM-generated scripts."&lt;/EM&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P data-line="70"&gt;That last one — the&amp;nbsp;&lt;STRONG&gt;ACA sandbox&lt;/STRONG&gt;&amp;nbsp;— is the sweet spot for a chat-driven agent factory: strong isolation without you operating a Kubernetes cluster, and an&amp;nbsp;exec&amp;nbsp;API to run commands inside the box. It's what the reference implementation uses.&lt;/P&gt;
&lt;H2 data-line="74"&gt;Part 2 — Putting OpenClaw&amp;nbsp;&lt;EM&gt;into&lt;/EM&gt;&amp;nbsp;the ACA sandbox&lt;/H2&gt;
&lt;P data-line="76"&gt;Here is where the repo stops being a diagram and becomes running code. The&amp;nbsp;&lt;STRONG&gt;Agentic Prototype Factory&lt;/STRONG&gt;&amp;nbsp;decomposes the "idea → live app" job into&amp;nbsp;&lt;STRONG&gt;five specialized OpenClaw agents that run in sequence&lt;/STRONG&gt;, all inside the sandbox:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;requirements → coding → testing → deployment → save&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;P data-line="82"&gt;Each is addressable as its own model target on the OpenClaw gateway's OpenAI-compatible API:&lt;/P&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table border="1" style="border-width: 1px;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;model&amp;nbsp;value&lt;/th&gt;&lt;th&gt;Routes to&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;openclaw&amp;nbsp;/&amp;nbsp;openclaw/default&lt;/td&gt;&lt;td&gt;Default agent&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;openclaw/requirements-agent&lt;/td&gt;&lt;td&gt;Requirement Agent&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;openclaw/coding-agent&lt;/td&gt;&lt;td&gt;Coding Agent&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;openclaw/testing-agent&lt;/td&gt;&lt;td&gt;Testing Agent&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;openclaw/deployment-agent&lt;/td&gt;&lt;td&gt;Deployment Agent&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;openclaw/save-agent&lt;/td&gt;&lt;td&gt;Save &amp;amp; download Agent&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;colgroup&gt;&lt;col style="width: 50.00%" /&gt;&lt;col style="width: 50.00%" /&gt;&lt;/colgroup&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;H3 data-line="93"&gt;Control, not vibes: review gates with feedback loops&lt;/H3&gt;
&lt;P data-line="95"&gt;Autonomy without gates is how you get an agent that confidently deploys a broken app. The orchestrator wires the five agents into a graph with&amp;nbsp;&lt;STRONG&gt;hard, bounded gates&lt;/STRONG&gt;:&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;img /&gt;
&lt;P data-line="100"&gt;Every knob is explicit and lives in&amp;nbsp;server.py:&amp;nbsp;_MAX_TEST_ROUNDS = 3,&amp;nbsp;_MAX_DEPLOY_REVIEW = 2,&amp;nbsp;_DEPLOY_POLL_ATTEMPTS = 12,&amp;nbsp;_DEPLOY_POLL_DELAY_S = 20. The Testing Agent must end each turn with a literal&amp;nbsp;TESTS_PASSED&amp;nbsp;/&amp;nbsp;TESTS_FAILED&amp;nbsp;verdict; the orchestrator won't declare success until it&amp;nbsp;&lt;STRONG&gt;HTTP-checks the deployed URL and inspects the response body&lt;/STRONG&gt;&amp;nbsp;— because a&amp;nbsp;ResourceNotFound&amp;nbsp;can happily return an HTTP 200. That is what "flexible and controllable" looks like in practice: the LLM drives creatively&amp;nbsp;&lt;EM&gt;inside&lt;/EM&gt;&amp;nbsp;a deterministic state machine.&lt;/P&gt;
&lt;H3 data-line="102"&gt;The deterministic pre-run wipe (solving state leakage)&lt;/H3&gt;
&lt;P data-line="104"&gt;Because the sandbox is&amp;nbsp;&lt;STRONG&gt;reused&lt;/STRONG&gt;&amp;nbsp;across runs (fast, cheap), the orchestrator does something disciplined before&amp;nbsp;&lt;EM&gt;every&lt;/EM&gt;&amp;nbsp;run: it&amp;nbsp;&lt;STRONG&gt;wipes all lingering agent workspaces&lt;/STRONG&gt;. Stale files from a previous task can never leak into — or be packaged as — the new result. This is the engineered answer to Hard Problem #2.&lt;/P&gt;
&lt;H3 data-line="106"&gt;Working&amp;nbsp;&lt;EM&gt;with&lt;/EM&gt;&amp;nbsp;the sandbox's limits, not against them&lt;/H3&gt;
&lt;P data-line="108"&gt;The ACA sandbox&amp;nbsp;exec&amp;nbsp;API is&amp;nbsp;&lt;STRONG&gt;hard-capped at ~120 seconds&lt;/STRONG&gt;&amp;nbsp;— shorter than a cold&amp;nbsp;az acr build&amp;nbsp;plus&amp;nbsp;az containerapp create. A naive agent would time out and report failure. The clever bit:&amp;nbsp;&lt;STRONG&gt;those commands finish server-side on Azure even after the client&amp;nbsp;exec&amp;nbsp;disconnects.&lt;/STRONG&gt;&amp;nbsp;So deployment is split in two:&lt;/P&gt;
&lt;OL data-line="110"&gt;
&lt;LI data-line="110"&gt;&lt;STRONG&gt;deploy-build &amp;lt;dir&amp;gt; &amp;lt;app&amp;gt;&lt;/STRONG&gt;&amp;nbsp;— installs the deploy helpers, writes a tight&amp;nbsp;.dockerignore, and kicks off the ACR build tagged&amp;nbsp;&amp;lt;app&amp;gt;:latest. If the client drops at ~120s, the image still lands in ACR.&lt;/LI&gt;
&lt;LI data-line="111"&gt;&lt;STRONG&gt;deploy-finish &amp;lt;app&amp;gt;&lt;/STRONG&gt;&amp;nbsp;— idempotent, polled up to 12×. It reports&amp;nbsp;STILL_BUILDING&amp;nbsp;until the image exists, then fires a&amp;nbsp;--no-wait&amp;nbsp;containerapp create, and finally returns&amp;nbsp;DEPLOYED_URL=https://&amp;lt;fqdn&amp;gt;.&lt;/LI&gt;
&lt;/OL&gt;
&lt;P data-line="113"&gt;This is the single most important lesson of the whole sample:&amp;nbsp;&lt;STRONG&gt;an autonomous agent doesn't need a longer timeout — it needs to understand the durability semantics of the platform it runs on.&lt;/STRONG&gt;&lt;/P&gt;
&lt;H2 data-line="117"&gt;Part 3 — MCP, and why its security is the whole ballgame&lt;/H2&gt;
&lt;P data-line="119"&gt;The five-agent workflow is powerful, but it would be a silo if the only way to reach it were a bespoke API. Instead, the repo wraps the entire orchestration as a&amp;nbsp;&lt;STRONG&gt;Model Context Protocol (MCP)&lt;/STRONG&gt;&amp;nbsp;service (acamcp_node) exposed over streamable HTTP at&amp;nbsp;/mcp, with a tiny, legible tool surface:&lt;/P&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table border="1" style="border-width: 1px;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;MCP tool&lt;/th&gt;&lt;th&gt;What it does&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;generate_prototype&lt;/td&gt;&lt;td&gt;Run the full five-agent workflow end to end&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;run_agent&lt;/td&gt;&lt;td&gt;Invoke a single named agent&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;check_gateway_health&lt;/td&gt;&lt;td&gt;Liveness / readiness of the OpenClaw gateway&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;colgroup&gt;&lt;col style="width: 50.00%" /&gt;&lt;col style="width: 50.00%" /&gt;&lt;/colgroup&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;P data-line="127"&gt;The payoff is enormous:&amp;nbsp;&lt;STRONG&gt;any&lt;/STRONG&gt;&amp;nbsp;MCP client can now drive the factory — GitHub Copilot, Claude, or the Teams bot we're about to meet. One protocol, many front-ends.&lt;/P&gt;
&lt;P data-line="129"&gt;But MCP is not just an integration convenience — it's a&amp;nbsp;&lt;STRONG&gt;control plane&lt;/STRONG&gt;, and&amp;nbsp;&lt;EM&gt;every MCP tool is a privileged capability&lt;/EM&gt;. In an ecosystem with 32,000+ community servers, "just add an MCP server" is a supply-chain decision. A tool call is code execution by another name. So the security posture has to be deliberate. Here is how the reference implementation hardens it — and the principles are portable to any MCP deployment:&lt;/P&gt;
&lt;UL data-line="131"&gt;
&lt;LI data-line="131"&gt;&lt;STRONG&gt;Auth in front of the protocol.&lt;/STRONG&gt;&amp;nbsp;The MCP ingress sits behind&amp;nbsp;&lt;STRONG&gt;basic auth&lt;/STRONG&gt;&amp;nbsp;(MCP_BASIC_AUTH_PASSWORD); the gateway itself requires the gateway token as a&amp;nbsp;&lt;STRONG&gt;bearer credential&lt;/STRONG&gt;&amp;nbsp;(Authorization: Bearer &amp;lt;token&amp;gt;). No anonymous tool calls.&lt;/LI&gt;
&lt;LI data-line="132"&gt;&lt;STRONG&gt;A tiny, named allowlist — not a blank check.&lt;/STRONG&gt;&amp;nbsp;The gateway routes only to six explicit&amp;nbsp;model&amp;nbsp;targets. There is no "run arbitrary agent" escape hatch; the routing table&amp;nbsp;&lt;EM&gt;is&lt;/EM&gt;&amp;nbsp;the allowlist.&lt;/LI&gt;
&lt;LI data-line="133"&gt;&lt;STRONG&gt;No secrets in the workload.&lt;/STRONG&gt;&amp;nbsp;There are&amp;nbsp;&lt;STRONG&gt;no model API keys&lt;/STRONG&gt;&amp;nbsp;anywhere in the running containers — model access is brokered entirely through&amp;nbsp;&lt;STRONG&gt;Entra ID managed identities&lt;/STRONG&gt;. The gateway token is stored as a Kubernetes secret and&amp;nbsp;&lt;STRONG&gt;never baked into an image&lt;/STRONG&gt;.&lt;/LI&gt;
&lt;LI data-line="134"&gt;&lt;STRONG&gt;Private by default.&lt;/STRONG&gt;&amp;nbsp;The gateway's OpenAI-compatible endpoint is&amp;nbsp;&lt;STRONG&gt;operator-level access&lt;/STRONG&gt;&amp;nbsp;— it stays on&amp;nbsp;&lt;STRONG&gt;private ingress&lt;/STRONG&gt;, with TLS and authentication added before anything is ever exposed publicly.&lt;/LI&gt;
&lt;LI data-line="135"&gt;&lt;STRONG&gt;Least privilege at the identity layer.&lt;/STRONG&gt;&amp;nbsp;The gateway is granted exactly the Foundry roles it needs (Cognitive Services User&amp;nbsp;/&amp;nbsp;Cognitive Services OpenAI User) on the Foundry resource — nothing more.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P data-line="137"&gt;The takeaway for MCP is the same as for the agent itself:&amp;nbsp;&lt;STRONG&gt;treat the protocol as a doorway, and put a guard on the door.&lt;/STRONG&gt; Authentication, an explicit allowlist, private ingress, and brokered identity turn MCP from an open blast radius into a governed control plane.&lt;/P&gt;
&lt;H2 data-line="141"&gt;Part 4 — The complete solution: Teams + MCP on ACA + OpenClaw on the ACA sandbox&lt;/H2&gt;
&lt;P data-line="143"&gt;Now assemble the three deployable components into one loop:&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;img /&gt;
&lt;H3 data-line="147"&gt;The request lifecycle, end to end&lt;/H3&gt;
&lt;OL data-line="149"&gt;
&lt;LI data-line="149"&gt;A PM sends one sentence in&amp;nbsp;&lt;STRONG&gt;Teams&lt;/STRONG&gt;. The&amp;nbsp;teamsbot_app&amp;nbsp;bot — acting as an&amp;nbsp;&lt;STRONG&gt;MCP client&lt;/STRONG&gt;&amp;nbsp;via&amp;nbsp;mcpClient.ts&amp;nbsp;— opens an MCP handshake and calls&amp;nbsp;generate_prototype.&lt;/LI&gt;
&lt;LI data-line="150"&gt;The&amp;nbsp;&lt;STRONG&gt;MCP service on ACA&lt;/STRONG&gt;&amp;nbsp;(acamcp_node) runs the orchestrator: pre-run wipe, then requirements → coding → testing.&lt;/LI&gt;
&lt;LI data-line="151"&gt;The&amp;nbsp;&lt;STRONG&gt;OpenClaw gateway in the ACA sandbox&lt;/STRONG&gt;&amp;nbsp;(acasbxapp_node) executes each agent, talking to&amp;nbsp;&lt;STRONG&gt;Foundry&amp;nbsp;gpt-5.5&lt;/STRONG&gt;&amp;nbsp;through a&amp;nbsp;&lt;STRONG&gt;managed identity&lt;/STRONG&gt;&amp;nbsp;— no keys in the box.&lt;/LI&gt;
&lt;LI data-line="152"&gt;Real&amp;nbsp;pytest&amp;nbsp;+&amp;nbsp;Jest&amp;nbsp;suites run inside the sandbox. Fail → loop back (bounded). Pass → deploy.&lt;/LI&gt;
&lt;LI data-line="153"&gt;Deployment uses the&amp;nbsp;&lt;STRONG&gt;build + poll&lt;/STRONG&gt;&amp;nbsp;split to survive the ~120s&amp;nbsp;exec&amp;nbsp;cap; the app lands in&amp;nbsp;&lt;STRONG&gt;Azure Container Apps&lt;/STRONG&gt;&amp;nbsp;and is&amp;nbsp;&lt;STRONG&gt;health-checked body-aware&lt;/STRONG&gt;&amp;nbsp;at its live URL.&lt;/LI&gt;
&lt;LI data-line="154"&gt;The&amp;nbsp;&lt;STRONG&gt;Save Agent&lt;/STRONG&gt;&amp;nbsp;produces an authenticated&amp;nbsp;&lt;STRONG&gt;ZIP&lt;/STRONG&gt;&amp;nbsp;download URL. The bot streams each agent's progress back into the Teams thread and returns the&amp;nbsp;&lt;STRONG&gt;running HTTPS URL + source ZIP&lt;/STRONG&gt;&amp;nbsp;— optionally auto-opening the project in VS Code Insiders.&lt;/LI&gt;
&lt;/OL&gt;
&lt;H3 data-line="156"&gt;How the architecture answers the three questions&lt;/H3&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table border="1" style="border-width: 1px;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;The question&lt;/th&gt;&lt;th&gt;How this solution answers it&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;STRONG&gt;Is it safe?&lt;/STRONG&gt;&lt;/td&gt;&lt;td&gt;The autonomous agent runs in a&amp;nbsp;&lt;STRONG&gt;Hyper-V-isolated ACA sandbox&lt;/STRONG&gt;, not on anyone's laptop.&amp;nbsp;&lt;STRONG&gt;No model keys&lt;/STRONG&gt;&amp;nbsp;in the workload —&amp;nbsp;&lt;STRONG&gt;Entra ID managed identity&lt;/STRONG&gt;&amp;nbsp;brokers Foundry. MCP behind&amp;nbsp;&lt;STRONG&gt;basic auth&lt;/STRONG&gt;; gateway behind a&amp;nbsp;&lt;STRONG&gt;bearer token&lt;/STRONG&gt;&amp;nbsp;on&amp;nbsp;&lt;STRONG&gt;private ingress&lt;/STRONG&gt;; token as a&amp;nbsp;&lt;STRONG&gt;secret, never in an image&lt;/STRONG&gt;. A&amp;nbsp;&lt;STRONG&gt;deterministic pre-run wipe&lt;/STRONG&gt;&amp;nbsp;removes cross-run leakage.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;STRONG&gt;Does it fit multi-agent work?&lt;/STRONG&gt;&lt;/td&gt;&lt;td&gt;It&amp;nbsp;&lt;STRONG&gt;is&lt;/STRONG&gt;&amp;nbsp;a multi-agent system — five specialist OpenClaw agents with&amp;nbsp;&lt;STRONG&gt;A2A hand-offs and review gates&lt;/STRONG&gt;&amp;nbsp;— and because it's exposed via&amp;nbsp;&lt;STRONG&gt;MCP&lt;/STRONG&gt;,&amp;nbsp;&lt;EM&gt;any&lt;/EM&gt;&amp;nbsp;client (Copilot, Claude, Teams) can orchestrate it.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;STRONG&gt;Is it flexible and controllable?&lt;/STRONG&gt;&lt;/td&gt;&lt;td&gt;Creativity lives&amp;nbsp;&lt;STRONG&gt;inside a deterministic state machine&lt;/STRONG&gt;: explicit&amp;nbsp;TESTS_PASSED/FAILED&amp;nbsp;verdicts,&amp;nbsp;&lt;STRONG&gt;bounded&lt;/STRONG&gt;&amp;nbsp;retry loops (_MAX_TEST_ROUNDS,&amp;nbsp;_MAX_DEPLOY_REVIEW),&amp;nbsp;&lt;STRONG&gt;body-aware&lt;/STRONG&gt;&amp;nbsp;health checks, and a human approving in the Teams thread.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;colgroup&gt;&lt;col style="width: 50.00%" /&gt;&lt;col style="width: 50.00%" /&gt;&lt;/colgroup&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;H3 data-line="147"&gt;&lt;SPAN style="color: rgb(30, 30, 30);"&gt;Deploy it yourself&lt;/SPAN&gt;&lt;/H3&gt;
&lt;P data-line="166"&gt;The repo ships scripts for all three tiers (the gateway uses the platform's&amp;nbsp;&lt;STRONG&gt;managed identity&lt;/STRONG&gt;&amp;nbsp;to reach Foundry — no key handling, no image rebuild):&lt;/P&gt;
&lt;LI-CODE lang="bash"&gt;# 1) OpenClaw gateway + the 5 agents (acasbxapp_node) cd acasbxapp_node cp .env.example .env # gateway token, Foundry endpoint, sandbox ids ./scripts/build-openclaw-image.sh # build + push the OpenClaw image to ACR ./scripts/deploy-aks-gateway.sh # grant Foundry roles + deploy # 2) MCP service (acamcp_node) cd ../acamcp_node cp .env.example .env # ACR + cluster; gateway token read from ../acasbxapp_node/.env ./scripts/build-images.sh # build + push the MCP image ./scripts/deploy-aks.sh # secret + manifests to the openclaw namespace ./scripts/smoke-check.sh # verify the MCP handshake # 3) Teams bot (teamsbot_app) — Node.js/TypeScript MCP client cd ../teamsbot_app # configure + run per the folder README, then sideload the Teams app package&lt;/LI-CODE&gt;
&lt;P data-line="187"&gt;The reference implementation targets&amp;nbsp;&lt;STRONG&gt;Azure (ACA + AKS)&lt;/STRONG&gt;&amp;nbsp;— the OpenClaw gateway and MCP service run as containers, and the&amp;nbsp;&lt;STRONG&gt;code-execution sandbox&lt;/STRONG&gt;&amp;nbsp;uses the&amp;nbsp;&lt;STRONG&gt;ACA dynamic-sessions&amp;nbsp;exec&amp;nbsp;API&lt;/STRONG&gt;. Keep the gateway on private ingress and add TLS before any public exposure.&lt;/P&gt;
&lt;H2 data-line="191"&gt;Final thought&lt;/H2&gt;
&lt;P data-line="193"&gt;Strip away the World Cup demo and a reusable pattern remains — a blueprint for running&amp;nbsp;&lt;EM&gt;any&lt;/EM&gt;&amp;nbsp;long-running autonomous agent in the enterprise:&lt;/P&gt;
&lt;P data-line="195"&gt;&lt;STRONG&gt;A message-driven agent&lt;/STRONG&gt;&amp;nbsp;(OpenClaw / Hermes)&amp;nbsp;&lt;STRONG&gt;+ a microVM sandbox&lt;/STRONG&gt;&amp;nbsp;(Azure Container Apps dynamic sessions)&amp;nbsp;&lt;STRONG&gt;+ an MCP control plane with auth&lt;/STRONG&gt;&amp;nbsp;&lt;STRONG&gt;+ enterprise identity&lt;/STRONG&gt;&amp;nbsp;(Entra ID managed identity)&amp;nbsp;&lt;STRONG&gt;+ a human surface&lt;/STRONG&gt;&amp;nbsp;(Microsoft Teams).&lt;/P&gt;
&lt;P data-line="197"&gt;The autonomy that made these agents go viral is the same autonomy that makes security teams nervous. You don't resolve that tension by slowing the agent down — you resolve it by&amp;nbsp;&lt;STRONG&gt;giving it a box with a hard wall, a control plane with a guard on the door, an identity instead of a secret, and a human in the loop.&lt;/STRONG&gt;&amp;nbsp;Do that, and "your PM types a sentence, Azure ships an app" stops being a scary demo and becomes something you can actually put in production.&lt;/P&gt;
&lt;P data-line="199"&gt;Clone it, break it, harden it further:&amp;nbsp;&lt;STRONG&gt;&lt;A href="https://github.com/kinfey/Multi-AI-Agents-Cloud-Native/tree/main/code/CustomCodingAgentApp" target="_blank" rel="noopener" data-href="https://github.com/kinfey/Multi-AI-Agents-Cloud-Native/tree/main/code/CustomCodingAgentApp"&gt;kinfey/Multi-AI-Agents-Cloud-Native&amp;nbsp;→&amp;nbsp;code/CustomCodingAgentApp&lt;/A&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P data-line="202"&gt;&lt;EM&gt;The chat window is the new terminal. Let's make it a safe one.&lt;/EM&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 13 Jul 2026 07:39:45 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-developer-community/creating-autonomous-teams-agents-using-openclaw-mcp-and-azure/ba-p/4536296</guid>
      <dc:creator>kinfey</dc:creator>
      <dc:date>2026-07-13T07:39:45Z</dc:date>
    </item>
    <item>
      <title>Optimizing GitHub Copilot Cost in the Usage-Based Billing Era</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-developer-community/optimizing-github-copilot-cost-in-the-usage-based-billing-era/ba-p/4534186</link>
      <description>&lt;P&gt;GitHub Copilot has become a core part of the modern developer workflow. We use it to complete code, explain unfamiliar repositories, write tests, refactor legacy applications, review pull requests, generate documentation, and automate repetitive engineering work.&lt;/P&gt;
&lt;P&gt;But as GitHub Copilot moves further into usage-based billing, teams and users are asking a very practical question:&lt;/P&gt;
&lt;P&gt;How do we keep getting value from GitHub Copilot without letting costs become unpredictable?&lt;/P&gt;
&lt;P&gt;The answer is not to blindly slash GitHub Copilot usage—that would defeat the purpose of adopting AI-assisted development in the first place. The better answer is to use GitHub Copilot more intentionally.&lt;/P&gt;
&lt;P&gt;Usage-based billing shifts our mindset from:&lt;/P&gt;
&lt;P&gt;“Can I use GitHub Copilot?” to: “Am I using the right GitHub Copilot capability, with the right model, the right context, and the right level of automation for this specific task?”&lt;/P&gt;
&lt;P&gt;This guide outlines the major ways developers and organizations can optimize GitHub Copilot costs while continuing to accelerate productivity.&lt;/P&gt;
&lt;P&gt;For a strategic look at how organizations are scaling these financial practices across modern infrastructure, read the playbook&amp;nbsp;&lt;A href="https://techcommunity.microsoft.com/blog/azuredevcommunityblog/token-economics-the-new-finops-for-agentic-ai/4533743" target="_blank"&gt;Token Economics: The New FinOps for Agentic AI | Microsoft Community Hub&lt;/A&gt;&lt;/P&gt;
&lt;H2 data-path-to-node="11"&gt;Understanding the New Cost Model&lt;/H2&gt;
&lt;P data-path-to-node="12"&gt;Under usage-based billing, GitHub Copilot costs are driven primarily by two factors:&lt;/P&gt;
&lt;OL data-path-to-node="13"&gt;
&lt;LI&gt;&lt;STRONG data-path-to-node="13,0,0" data-index-in-node="0"&gt;The model used&lt;/STRONG&gt;&amp;nbsp;(e.g., frontier vs. lightweight models)&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG data-path-to-node="13,1,0" data-index-in-node="0"&gt;The number of tokens consumed&lt;/STRONG&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;P data-path-to-node="14"&gt;A token is a small unit of text processed by the AI. This includes what you send to the model (input), what the model generates back (output), and, in some cases, cached context that the model reuses.&lt;/P&gt;
&lt;P data-path-to-node="15"&gt;This means a short question using a lightweight model consumes very little. Conversely, a long, multi-file agentic session using a frontier model can consume significantly more. GitHub Copilot cost is no longer just about how many people have seats—&lt;STRONG data-path-to-node="15" data-index-in-node="249"&gt;it is about how those seats are being used.&lt;/STRONG&gt;&lt;/P&gt;
&lt;H3 data-path-to-node="16"&gt;The Biggest Cost Drivers:&lt;/H3&gt;
&lt;UL data-path-to-node="17"&gt;
&lt;LI&gt;Using expensive models for simple tasks&lt;/LI&gt;
&lt;LI&gt;Overly large context windows&lt;/LI&gt;
&lt;LI&gt;Long chat sessions with repeated context&lt;/LI&gt;
&lt;LI&gt;Agentic workflows that inspect too many files&lt;/LI&gt;
&lt;LI&gt;Enabling tools when they aren't needed&lt;/LI&gt;
&lt;LI&gt;Dumping large terminal logs or full repository scans into the chat&lt;/LI&gt;
&lt;LI&gt;A lack of active budgets and usage monitoring&lt;/LI&gt;
&lt;/UL&gt;
&lt;P data-path-to-node="18"&gt;The good news?&amp;nbsp;&lt;STRONG data-path-to-node="18" data-index-in-node="15"&gt;Most of these are completely controllable.&lt;/STRONG&gt;&lt;/P&gt;
&lt;H2 data-path-to-node="20"&gt;1. Set Spending Guardrails First&lt;/H2&gt;
&lt;P data-path-to-node="21"&gt;The first cost-reduction step isn't technical—it’s financial governance. Before teams start heavy usage, set spending caps and budget controls. This is critical for organizations where many developers share a pool of AI credits.&lt;/P&gt;
&lt;H3 data-path-to-node="22"&gt;Recommended Actions:&lt;/H3&gt;
&lt;UL data-path-to-node="23"&gt;
&lt;LI&gt;&lt;STRONG data-path-to-node="23,0,0" data-index-in-node="0"&gt;Set a monthly budget&lt;/STRONG&gt;&amp;nbsp;and enable hard-stop controls where available.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG data-path-to-node="23,1,0" data-index-in-node="0"&gt;Segment limits:&lt;/STRONG&gt;&amp;nbsp;Create separate limits for standard users and power users.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG data-path-to-node="23,2,0" data-index-in-node="0"&gt;Track granularly:&lt;/STRONG&gt;&amp;nbsp;Monitor consumption by user, team, organization, or cost center.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG data-path-to-node="23,3,0" data-index-in-node="0"&gt;Review early:&lt;/STRONG&gt;&amp;nbsp;Closely analyze the first few weeks of usage and adjust limits based on real consumption patterns.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P data-path-to-node="24"&gt;This prevents a single heavy user, an runaway automated agent session, or an experimental workflow from consuming a massive chunk of shared capacity early in the billing cycle.&lt;/P&gt;
&lt;P data-path-to-node="25"&gt;For enterprises,&amp;nbsp;&lt;STRONG data-path-to-node="25" data-index-in-node="17"&gt;avoid a one-size-fits-all budget.&lt;/STRONG&gt;&amp;nbsp;A junior developer asking occasional chat questions does not need the same budget as a platform engineer running massive migration tasks across multiple repositories.&lt;/P&gt;
&lt;H3 data-path-to-node="26"&gt;A Smarter Budgeting Model:&lt;/H3&gt;
&lt;UL data-path-to-node="27"&gt;
&lt;LI&gt;Standard developer budget&lt;/LI&gt;
&lt;LI&gt;Power user budget&lt;/LI&gt;
&lt;LI&gt;Pilot team budget&lt;/LI&gt;
&lt;LI&gt;Agentic workflow budget&lt;/LI&gt;
&lt;LI&gt;Innovation/experimentation budget&lt;/LI&gt;
&lt;/UL&gt;
&lt;P data-path-to-node="28"&gt;This gives leaders control without blocking productivity, allowing organizations to analyze and adjust budgets frequently.&lt;/P&gt;
&lt;H2 data-path-to-node="30"&gt;2. Use the Right Model for the Right Task&lt;/H2&gt;
&lt;P data-path-to-node="31"&gt;&lt;STRONG data-path-to-node="31" data-index-in-node="0"&gt;Not every task requires the most powerful model.&lt;/STRONG&gt;&amp;nbsp;This is one of the biggest mindset shifts in usage-based billing. Developers often default to the strongest model because it feels "safer," but a smaller, cheaper model is often more than enough for daily tasks.&lt;/P&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table border="1" style="border-width: 1px;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;td&gt;&lt;STRONG&gt;Use Lightweight / Lower-Cost Models For:&lt;/STRONG&gt;&lt;/td&gt;&lt;td&gt;&lt;STRONG&gt;Use Stronger / Premium Models For:&lt;/STRONG&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;SPAN data-path-to-node="32,1,0,0"&gt;Simple code explanations&lt;/SPAN&gt;&lt;/td&gt;&lt;td&gt;&lt;SPAN data-path-to-node="32,1,1,0"&gt;Architecture &amp;amp; system design decisions&lt;/SPAN&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;SPAN data-path-to-node="32,2,0,0"&gt;Documentation &amp;amp; comment updates&lt;/SPAN&gt;&lt;/td&gt;&lt;td&gt;&lt;SPAN data-path-to-node="32,2,1,0"&gt;Complex debugging &amp;amp; multi-file reasoning&lt;/SPAN&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;SPAN data-path-to-node="32,3,0,0"&gt;Small unit test generation&lt;/SPAN&gt;&lt;/td&gt;&lt;td&gt;&lt;SPAN data-path-to-node="32,3,1,0"&gt;Security-sensitive reviews&lt;/SPAN&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;SPAN data-path-to-node="32,4,0,0"&gt;Basic debugging &amp;amp; syntax help&lt;/SPAN&gt;&lt;/td&gt;&lt;td&gt;&lt;SPAN data-path-to-node="32,4,1,0"&gt;Legacy modernization &amp;amp; code translation&lt;/SPAN&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;SPAN data-path-to-node="32,5,0,0"&gt;Regex help &amp;amp; simple refactoring&lt;/SPAN&gt;&lt;/td&gt;&lt;td&gt;&lt;SPAN data-path-to-node="32,5,1,0"&gt;Performance tuning &amp;amp; optimization&lt;/SPAN&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;SPAN data-path-to-node="32,6,0,0"&gt;Translating code from one style to another&lt;/SPAN&gt;&lt;/td&gt;&lt;td&gt;&lt;SPAN data-path-to-node="32,6,1,0"&gt;Ambiguous, cross-service production issues&lt;/SPAN&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;SPAN data-path-to-node="32,7,0,0"&gt;Summarizing small, single files&lt;/SPAN&gt;&lt;/td&gt;&lt;td&gt;&lt;SPAN data-path-to-node="32,7,1,0"&gt;Large pull request reviews&lt;/SPAN&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;colgroup&gt;&lt;col style="width: 50.00%" /&gt;&lt;col style="width: 50.00%" /&gt;&lt;/colgroup&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;H3 data-path-to-node="33"&gt;Team Golden Rule:&lt;/H3&gt;
&lt;P data-path-to-node="34,0"&gt;Start with the cheapest model that can do the task well. Move to a stronger model&amp;nbsp;&lt;EM data-path-to-node="34,0" data-index-in-node="82"&gt;only&lt;/EM&gt;&amp;nbsp;when the task requires deeper reasoning. This keeps high-cost models reserved for where they provide the highest value.&lt;/P&gt;
&lt;H2 data-path-to-node="36"&gt;3. Lean More on Code Completions&lt;/H2&gt;
&lt;P data-path-to-node="37"&gt;Inline code completions and next edit suggestions are still some of the most cost-effective GitHub Copilot experiences available. For paid GitHub Copilot plans, these inline experiences&amp;nbsp;&lt;STRONG data-path-to-node="37" data-index-in-node="186"&gt;are not billed against your AI credits.&lt;/STRONG&gt;&amp;nbsp;Developers should aggressively lean on completions when they already know&amp;nbsp;&lt;EM data-path-to-node="37" data-index-in-node="300"&gt;what&lt;/EM&gt;&amp;nbsp;they want to build.&lt;/P&gt;
&lt;H3 data-path-to-node="38"&gt;Ideal Completion Scenarios:&lt;/H3&gt;
&lt;UL data-path-to-node="39"&gt;
&lt;LI&gt;Writing a function after creating the signature&lt;/LI&gt;
&lt;LI&gt;Completing repetitive boilerplate code&lt;/LI&gt;
&lt;LI&gt;Filling in obvious implementation logic or adding similar methods&lt;/LI&gt;
&lt;LI&gt;Writing simple, predictable unit tests&lt;/LI&gt;
&lt;LI&gt;Completing configuration files&lt;/LI&gt;
&lt;/UL&gt;
&lt;P data-path-to-node="40,0"&gt;&lt;STRONG data-path-to-node="40,0" data-index-in-node="0"&gt;The Rule of Thumb:&lt;/STRONG&gt;&amp;nbsp;Use chat when you need&amp;nbsp;&lt;EM data-path-to-node="40,0" data-index-in-node="42"&gt;reasoning&lt;/EM&gt;. Use completions when you need&amp;nbsp;&lt;EM data-path-to-node="40,0" data-index-in-node="83"&gt;acceleration&lt;/EM&gt;.&lt;/P&gt;
&lt;UL data-path-to-node="41"&gt;
&lt;LI&gt;❌&amp;nbsp;&lt;STRONG data-path-to-node="41,0,0" data-index-in-node="2"&gt;Bad Habit:&lt;/STRONG&gt;&amp;nbsp;Opening a new chat window for every small function.&lt;/LI&gt;
&lt;LI&gt;👉&amp;nbsp;&lt;STRONG data-path-to-node="41,1,0" data-index-in-node="3"&gt;Better Habit:&lt;/STRONG&gt;&amp;nbsp;Write the function name, a descriptive comment, or the first few lines, and let GitHub Copilot fill in the implementation inline. Open chat only if the completion misses the mark or the logic requires deeper discussion.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2 data-path-to-node="43"&gt;4. Use Tools Only When Needed&lt;/H2&gt;
&lt;P data-path-to-node="44"&gt;Agents are incredibly powerful because they can interact with tools: reading files, searching repositories, editing code, running commands, inspecting test failures, or connecting to external systems via Model Context Protocol (MCP) servers.&lt;/P&gt;
&lt;P data-path-to-node="45"&gt;However,&amp;nbsp;&lt;STRONG data-path-to-node="45" data-index-in-node="9"&gt;tools heavily amplify costs.&lt;/STRONG&gt;&amp;nbsp;Every tool call adds more context, more model invocations, and more output back into the token loop. If an agent reads too many files or dumps raw logs into chat, token counts skyrocket.&lt;/P&gt;
&lt;P data-path-to-node="46"&gt;The goal is not to ban tools, but to&amp;nbsp;&lt;STRONG data-path-to-node="46" data-index-in-node="37"&gt;scope them correctly&lt;/STRONG&gt;:&lt;/P&gt;
&lt;UL data-path-to-node="47"&gt;
&lt;LI&gt;&lt;STRONG data-path-to-node="47,0,0" data-index-in-node="0"&gt;Don't enable everything:&lt;/STRONG&gt;&amp;nbsp;Avoid activating every tool for every agent. Use only what is required.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG data-path-to-node="47,1,0" data-index-in-node="0"&gt;Specialized agents:&lt;/STRONG&gt;&amp;nbsp;Create custom agents with specialized tool access (e.g., a documentation agent needs read/search tools, but likely doesn't need terminal or cloud database access).&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG data-path-to-node="47,2,0" data-index-in-node="0"&gt;Avoid full scans:&lt;/STRONG&gt;&amp;nbsp;Ask Copilot to inspect specific files or folders rather than scanning the entire repository.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG data-path-to-node="47,3,0" data-index-in-node="0"&gt;Summarize logs:&lt;/STRONG&gt;&amp;nbsp;Ask Copilot to summarize terminal outputs or run the narrowest relevant unit test instead of dumping pages of raw test logs.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3 data-path-to-node="48"&gt;A Cost-Aware Prompting Example:&lt;/H3&gt;
&lt;P data-path-to-node="49,0"&gt;&lt;EM data-path-to-node="49,0" data-index-in-node="0"&gt;"Use tools only if needed. Start by reading the files I mention. Do not scan the entire repository. If tests are needed, run only the relevant unit tests and summarize the failure instead of pasting full logs."&lt;/EM&gt;&lt;/P&gt;
&lt;H2 data-path-to-node="51"&gt;5. Narrow the Context Window&lt;/H2&gt;
&lt;P data-path-to-node="52"&gt;Context is useful only when it is relevant. A common cost driver is issuing broad prompts that pull massive chunks of irrelevant code into the session.&lt;/P&gt;
&lt;UL data-path-to-node="53"&gt;
&lt;LI&gt;❌&amp;nbsp;&lt;STRONG data-path-to-node="53,0,0" data-index-in-node="2"&gt;Broad Prompt:&lt;/STRONG&gt;&amp;nbsp;&lt;EM data-path-to-node="53,0,0" data-index-in-node="16"&gt;"Analyze this repo and fix the bug."&lt;/EM&gt;&amp;nbsp;(Forces the agent to scan, search, and load unnecessary files).&lt;/LI&gt;
&lt;LI&gt;👉&amp;nbsp;&lt;STRONG data-path-to-node="53,1,0" data-index-in-node="3"&gt;Targeted Prompt:&lt;/STRONG&gt;&amp;nbsp;&lt;EM data-path-to-node="53,1,0" data-index-in-node="20"&gt;"The bug appears to be in /src/auth/tokenValidator.ts and /src/auth/sessionStore.ts. Review only these files and their related tests. Propose the smallest safe fix."&lt;/EM&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3 data-path-to-node="54"&gt;Practical Ways to Reduce Context:&lt;/H3&gt;
&lt;UL data-path-to-node="55"&gt;
&lt;LI&gt;Explicitly mention exact files, folders, error messages, or failing tests.&lt;/LI&gt;
&lt;LI&gt;Instruct the model on what&amp;nbsp;&lt;EM data-path-to-node="55,1,0" data-index-in-node="27"&gt;not&lt;/EM&gt;&amp;nbsp;to change.&lt;/LI&gt;
&lt;LI&gt;Explicitly exclude generated files, vendor folders, build artifacts, and lock files.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG data-path-to-node="55,3,0" data-index-in-node="0"&gt;Clear your sessions:&lt;/STRONG&gt;&amp;nbsp;Staying in one massive chat session all day causes historical context to stack up. Start a fresh session when your topic/intent changes, when frequent compactions occur, or when different tools are required.&lt;/LI&gt;
&lt;LI&gt;&lt;EM data-path-to-node="55,4,0" data-index-in-node="0"&gt;Pro tip:&lt;/EM&gt;&amp;nbsp;If you are ending a long session but need to carry forward the conclusion, ask Copilot to generate a quick Markdown summary of the session to paste as the starting context of your new, clean session.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2 data-path-to-node="57"&gt;6. Use Plan-First Prompts for Complex Work&lt;/H2&gt;
&lt;P data-path-to-node="58"&gt;For large-scale tasks, do not let GitHub Copilot immediately start editing files in agent mode.&amp;nbsp;&lt;STRONG data-path-to-node="58" data-index-in-node="96"&gt;Always ask it to plan first.&lt;/STRONG&gt;&lt;/P&gt;
&lt;P data-path-to-node="59"&gt;This is crucial for large refactoring, multi-file changes, legacy modernization, dependency upgrades, security fixes, and performance tuning.&lt;/P&gt;
&lt;H3 data-path-to-node="60"&gt;A Plan-First Prompting Pattern:&lt;/H3&gt;
&lt;P data-path-to-node="61,0"&gt;&lt;EM data-path-to-node="61,0" data-index-in-node="0"&gt;"Before editing files, create a short plan. Identify the files you need to inspect, the likely root cause, the risk level, and the smallest validation test. Do not make changes until the plan is clear."&lt;/EM&gt;&lt;/P&gt;
&lt;H3 data-path-to-node="62"&gt;Why this works:&lt;/H3&gt;
&lt;OL data-path-to-node="63"&gt;
&lt;LI&gt;&lt;STRONG data-path-to-node="63,0,0" data-index-in-node="0"&gt;Prevents wasted work:&lt;/STRONG&gt;&amp;nbsp;It ensures the agent doesn't modify the wrong files or run unnecessary commands.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG data-path-to-node="63,1,0" data-index-in-node="0"&gt;Creates a cost checkpoint:&lt;/STRONG&gt;&amp;nbsp;If the plan looks too broad or incorrect, you can narrow the scope&amp;nbsp;&lt;EM data-path-to-node="63,1,0" data-index-in-node="94"&gt;before&lt;/EM&gt;&amp;nbsp;GitHub Copilot kicks off an expensive, multi-step agentic loop.&lt;/LI&gt;
&lt;/OL&gt;
&lt;H2 data-path-to-node="65"&gt;7. Batch Related Questions in One Session&lt;/H2&gt;
&lt;P data-path-to-node="66"&gt;While giant, day-long sessions are bad for context bloat, opening a brand-new chat for every tiny, consecutive question introduces unnecessary context reload overhead. Finding the right balance is key.&lt;/P&gt;
&lt;UL data-path-to-node="67"&gt;
&lt;LI&gt;❌&amp;nbsp;&lt;STRONG data-path-to-node="67,0,0" data-index-in-node="2"&gt;Less Efficient (Fragmented):&lt;/STRONG&gt;
&lt;UL data-path-to-node="67,0,1"&gt;
&lt;LI&gt;&lt;EM data-path-to-node="67,0,1,0,0" data-index-in-node="0"&gt;Chat 1:&lt;/EM&gt;&amp;nbsp;"What does this function do?"&lt;/LI&gt;
&lt;LI&gt;&lt;EM data-path-to-node="67,0,1,1,0" data-index-in-node="0"&gt;Chat 2:&lt;/EM&gt;&amp;nbsp;"Can you write tests for it?"&lt;/LI&gt;
&lt;LI&gt;&lt;EM data-path-to-node="67,0,1,2,0" data-index-in-node="0"&gt;Chat 3:&lt;/EM&gt;&amp;nbsp;"Can you check it for security issues?"&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;👉&amp;nbsp;&lt;STRONG data-path-to-node="67,1,0" data-index-in-node="3"&gt;More Efficient (Batched):&lt;/STRONG&gt;
&lt;UL data-path-to-node="67,1,1"&gt;
&lt;LI&gt;&lt;EM data-path-to-node="67,1,1,0,0" data-index-in-node="0"&gt;Single Chat:&lt;/EM&gt;&amp;nbsp;"Review this function for correctness, security, performance, and test coverage. Give me the top issues first, then suggest the smallest safe improvement."&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P data-path-to-node="68"&gt;&lt;STRONG data-path-to-node="68" data-index-in-node="0"&gt;The Balance:&lt;/STRONG&gt;&amp;nbsp;Batch highly related work in a single conversation, but hit the "New Chat" button the moment you pivot to an entirely new topic.&lt;/P&gt;
&lt;H2 data-path-to-node="70"&gt;8. Keep Custom Instructions Short&lt;/H2&gt;
&lt;P data-path-to-node="71"&gt;Custom instructions (.github/copilot-instructions.md) and AGENT.md files are powerful tools for enforcing team standards, but they are appended as base tokens to&amp;nbsp;&lt;STRONG data-path-to-node="71" data-index-in-node="162"&gt;every single chat interaction&lt;/STRONG&gt;. If they are bloated, they act as a hidden tax on every prompt.&lt;/P&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table border="1" style="border-width: 1px;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;td&gt;&lt;STRONG&gt;✅ Keep it Concise &amp;amp; Rules-Based:&lt;/STRONG&gt;&lt;/td&gt;&lt;td&gt;&lt;STRONG&gt;❌ Avoid Attaching to Every Prompt:&lt;/STRONG&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;SPAN data-path-to-node="72,1,0,0"&gt;&lt;EM data-path-to-node="72,1,0,0" data-index-in-node="0"&gt;"Prefer small, testable changes."&lt;/EM&gt;&lt;/SPAN&gt;&lt;/td&gt;&lt;td&gt;&lt;SPAN data-path-to-node="72,1,1,0"&gt;Massive architecture blueprints&lt;/SPAN&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;SPAN data-path-to-node="72,2,0,0"&gt;&lt;EM data-path-to-node="72,2,0,0" data-index-in-node="0"&gt;"Do not modify public APIs without calling it out."&lt;/EM&gt;&lt;/SPAN&gt;&lt;/td&gt;&lt;td&gt;&lt;SPAN data-path-to-node="72,2,1,0"&gt;Full enterprise coding standards documents&lt;/SPAN&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;SPAN data-path-to-node="72,3,0,0"&gt;&lt;EM data-path-to-node="72,3,0,0" data-index-in-node="0"&gt;"Use our standard logging pattern."&lt;/EM&gt;&lt;/SPAN&gt;&lt;/td&gt;&lt;td&gt;&lt;SPAN data-path-to-node="72,3,1,0"&gt;Entire infrastructure runbooks&lt;/SPAN&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;SPAN data-path-to-node="72,4,0,0"&gt;&lt;EM data-path-to-node="72,4,0,0" data-index-in-node="0"&gt;"When writing tests, follow the existing test style."&lt;/EM&gt;&lt;/SPAN&gt;&lt;/td&gt;&lt;td&gt;&lt;SPAN data-path-to-node="72,4,1,0"&gt;Pages of multi-shot coding examples&lt;/SPAN&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;colgroup&gt;&lt;col style="width: 50.00%" /&gt;&lt;col style="width: 50.00%" /&gt;&lt;/colgroup&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;P data-path-to-node="73"&gt;&lt;STRONG data-path-to-node="73" data-index-in-node="0"&gt;The Strategy:&lt;/STRONG&gt;&amp;nbsp;Use global/repository instructions&amp;nbsp;&lt;EM data-path-to-node="73" data-index-in-node="49"&gt;only&lt;/EM&gt;&amp;nbsp;for non-negotiable, high-level rules. For specific workflows, use localized prompt files, specialized skills, or custom agents.&lt;/P&gt;
&lt;H2 data-path-to-node="75"&gt;9. Use Skills and Specialized Agents for Repeatable Work&lt;/H2&gt;
&lt;P data-path-to-node="76"&gt;If your team frequently asks Copilot to perform identical workflows (e.g., API reviews, PR summarization, Accessibility audits, Terraform checks), turn them into reusable&amp;nbsp;&lt;STRONG data-path-to-node="76" data-index-in-node="171"&gt;skills, prompt files, or custom agents&lt;/STRONG&gt;.&lt;/P&gt;
&lt;P data-path-to-node="77"&gt;This ensures prompt formatting remains minimal, highly consistent, and optimized for low token usage. Furthermore, if you discover an excellent workflow during an active chat session,&amp;nbsp;&lt;STRONG data-path-to-node="77" data-index-in-node="184"&gt;ask Copilot to turn that knowledge into a SKILL file.&lt;/STRONG&gt;&amp;nbsp;This prevents future sessions from having to waste tokens "re-learning" the process.&lt;/P&gt;
&lt;H2 data-path-to-node="79"&gt;10. Avoid Unnecessary Agentic Mode&lt;/H2&gt;
&lt;P data-path-to-node="80"&gt;Agent mode is incredibly capable, but it shouldn't be the default default mode for standard queries.&lt;/P&gt;
&lt;UL data-path-to-node="81"&gt;
&lt;LI&gt;🛠️&amp;nbsp;&lt;STRONG data-path-to-node="81,0,0" data-index-in-node="4"&gt;Use Agent Mode For:&lt;/STRONG&gt;&amp;nbsp;Multi-file bug fixes, generating and validating complex test suites, cross-file refactoring, reproducing test failures, or implementing full PR tasks.&lt;/LI&gt;
&lt;LI&gt;💬&amp;nbsp;&lt;STRONG data-path-to-node="81,1,0" data-index-in-node="3"&gt;Stick to Normal Chat/Completions For:&lt;/STRONG&gt;&amp;nbsp;Simple syntax lookups, single-file explanations, writing minor snippets, basic documentation rewrites, or simple formatting tweaks.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P data-path-to-node="82,0"&gt;&lt;STRONG data-path-to-node="82,0" data-index-in-node="0"&gt;The Rule:&lt;/STRONG&gt;&amp;nbsp;If a task doesn't explicitly require autonomous file editing, tool execution, or terminal commands, stick to standard chat or inline completions.&lt;/P&gt;
&lt;H2 data-path-to-node="84"&gt;11. Monitor Usage Weekly&lt;/H2&gt;
&lt;P data-path-to-node="85"&gt;Optimization without measurement is just guesswork. During your organization's transition into usage-based billing, establish a&amp;nbsp;&lt;STRONG data-path-to-node="85" data-index-in-node="128"&gt;weekly review cadence&lt;/STRONG&gt;&amp;nbsp;to look at your telemetry data.&lt;/P&gt;
&lt;H3 data-path-to-node="86"&gt;What to Look For:&lt;/H3&gt;
&lt;UL data-path-to-node="87"&gt;
&lt;LI&gt;Which models are drawing the most volume?&lt;/LI&gt;
&lt;LI&gt;Are premium frontier models being used for simple tasks?&lt;/LI&gt;
&lt;LI&gt;Which teams or workflows are spiking above their allocated credit budgets?&lt;/LI&gt;
&lt;LI&gt;Is tool usage or long context history driving up the average cost per session?&lt;/LI&gt;
&lt;/UL&gt;
&lt;P data-path-to-node="88"&gt;Use these insights to refine default model guidance, create user-level budget overrides for true power users, update prompt templates, and host short, continuous training sessions.&amp;nbsp;&lt;STRONG data-path-to-node="88" data-index-in-node="181"&gt;The goal is never to shame high usage—high usage is fantastic if it yields high-value code. The goal is to eliminate systemic token waste.&lt;/STRONG&gt;&lt;/P&gt;
&lt;H2 data-path-to-node="90"&gt;12. Create a Simple Team Policy&lt;/H2&gt;
&lt;P data-path-to-node="91"&gt;To make this stick, give your developers a lightweight checklist they can actually memorize. Here is a great blueprint for an internal team policy:&lt;/P&gt;
&lt;UL data-path-to-node="92"&gt;
&lt;LI&gt;&lt;STRONG data-path-to-node="92,0,0" data-index-in-node="0"&gt;Completions First:&lt;/STRONG&gt;&amp;nbsp;Use inline completions for normal code acceleration.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG data-path-to-node="92,1,0" data-index-in-node="0"&gt;Cheaper Models First:&lt;/STRONG&gt;&amp;nbsp;Default to lightweight models; escalate to frontier models only for deep reasoning.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG data-path-to-node="92,2,0" data-index-in-node="0"&gt;Scope Wisely:&lt;/STRONG&gt;&amp;nbsp;Mention specific files/folders; avoid blind repository scans.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG data-path-to-node="92,3,0" data-index-in-node="0"&gt;Plan First:&lt;/STRONG&gt;&amp;nbsp;Ask for an architectural plan before allowing agents to execute large edits.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG data-path-to-node="92,4,0" data-index-in-node="0"&gt;Tool Hygiene:&lt;/STRONG&gt;&amp;nbsp;Keep tools and custom instructions tightly scoped and concise.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG data-path-to-node="92,5,0" data-index-in-node="0"&gt;Review Cadence:&lt;/STRONG&gt;&amp;nbsp;Check usage metrics weekly and adjust budgets monthly.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2 data-path-to-node="94"&gt;Reusable, Cost-Aware Prompt Templates&lt;/H2&gt;
&lt;P data-path-to-node="95"&gt;Copy and paste these templates into your daily workflows to keep token counts down:&lt;/P&gt;
&lt;UL data-path-to-node="96"&gt;
&lt;LI&gt;&lt;STRONG data-path-to-node="96,0,0" data-index-in-node="0"&gt;For Debugging:&lt;/STRONG&gt;&amp;nbsp;&lt;EM data-path-to-node="96,0,0" data-index-in-node="15"&gt;"Analyze this error using only the files I mention. Do not scan the whole repository. First explain the likely root cause, then suggest the smallest fix."&lt;/EM&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG data-path-to-node="96,1,0" data-index-in-node="0"&gt;For Agent Mode:&lt;/STRONG&gt;&amp;nbsp;&lt;EM data-path-to-node="96,1,0" data-index-in-node="16"&gt;"Use tools only if needed. Before editing, create a short plan and list the files you need to inspect. Run only the narrowest relevant test."&lt;/EM&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG data-path-to-node="96,2,0" data-index-in-node="0"&gt;For Code Review:&lt;/STRONG&gt;&amp;nbsp;&lt;EM data-path-to-node="96,2,0" data-index-in-node="17"&gt;"Review this pull request for correctness, security, and maintainability. Focus on high-impact issues only. Do not rewrite the code unless necessary."&lt;/EM&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG data-path-to-node="96,3,0" data-index-in-node="0"&gt;For Testing:&lt;/STRONG&gt;&amp;nbsp;&lt;EM data-path-to-node="96,3,0" data-index-in-node="13"&gt;"Generate unit tests for this function using the existing test style. Do not modify production code. Keep the test scope narrow."&lt;/EM&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG data-path-to-node="96,4,0" data-index-in-node="0"&gt;For Refactoring:&lt;/STRONG&gt;&amp;nbsp;&lt;EM data-path-to-node="96,4,0" data-index-in-node="17"&gt;"Refactor this file only. Preserve behavior. Do not change public APIs. Explain the risk before making edits."&lt;/EM&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG data-path-to-node="96,5,0" data-index-in-node="0"&gt;For Large Repositories:&lt;/STRONG&gt;&amp;nbsp;&lt;EM data-path-to-node="96,5,0" data-index-in-node="24"&gt;"Do not analyze the entire repository. Start with /src/payment and /tests/payment. Ask before expanding scope."&lt;/EM&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2 data-path-to-node="98"&gt;Summary: What to Avoid&lt;/H2&gt;
&lt;P data-path-to-node="99"&gt;To keep budgets predictable, coach your teams away from these common anti-patterns:&lt;/P&gt;
&lt;OL data-path-to-node="100"&gt;
&lt;LI&gt;Setting an expensive frontier model as the default for every single interaction.&lt;/LI&gt;
&lt;LI&gt;Running full agent loops for questions that a simple chat could answer.&lt;/LI&gt;
&lt;LI&gt;Allowing agents to freely scan entire codebases without folder constraints.&lt;/LI&gt;
&lt;LI&gt;Enabling every single available MCP tool by default.&lt;/LI&gt;
&lt;LI&gt;Dumping massive, raw terminal outputs or log dumps directly into the prompt.&lt;/LI&gt;
&lt;LI&gt;Carrying massive, multi-hour chat histories instead of opening fresh sessions.&lt;/LI&gt;
&lt;LI&gt;Disregarding your usage dashboards until the invoice arrives.&lt;/LI&gt;
&lt;/OL&gt;
&lt;H2 data-path-to-node="102"&gt;The Bigger Picture: Cost Optimization&amp;nbsp;&lt;EM data-path-to-node="102" data-index-in-node="38"&gt;is&lt;/EM&gt;&amp;nbsp;Workflow Optimization&lt;/H2&gt;
&lt;P data-path-to-node="103"&gt;Optimizing Copilot costs isn't about using AI less—&lt;STRONG data-path-to-node="103" data-index-in-node="51"&gt;it’s about using AI better.&lt;/STRONG&gt;&amp;nbsp;Smaller context windows, tighter tool scoping, cleaner prompts, and proper model selection don't just lower the bill;&amp;nbsp;&lt;STRONG data-path-to-node="103" data-index-in-node="197"&gt;they make the model significantly more accurate.&lt;/STRONG&gt;&amp;nbsp;When you overwhelm a model with irrelevant files and messy logs, you introduce noise that degrades the quality of the output.&lt;/P&gt;
&lt;P data-path-to-node="104"&gt;Cost optimization is an engineering maturity practice, not a restriction. When managed through a smart operating model, GitHub Copilot will continue to securely accelerate our delivery, eliminate boilerplate toil, and maximize our focus on the work that truly matters.&lt;/P&gt;
&lt;P data-path-to-node="104"&gt;&lt;STRONG&gt;References:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P data-path-to-node="104"&gt;&lt;A href="https://techcommunity.microsoft.com/blog/azuredevcommunityblog/token-economics-the-new-finops-for-agentic-ai/4533743" target="_blank"&gt;Token Economics: The New FinOps for Agentic AI | Microsoft Community Hub&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Contributors:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;This article is maintained by Microsoft. It was originally written by the following contributors.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://www.linkedin.com/in/gaurav-bhardwaj-33312854/" target="_blank" rel="noopener"&gt;Gaurav Bhardwaj&lt;/A&gt;&amp;nbsp;| Senior Cloud Solution Architect&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.linkedin.com/in/dustinellis/" target="_blank" rel="noopener"&gt;Dustin Ellis&lt;/A&gt; | Senior Cloud Solution Architect&amp;nbsp;&lt;/LI&gt;
&lt;/UL&gt;</description>
      <pubDate>Mon, 13 Jul 2026 04:15:00 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-developer-community/optimizing-github-copilot-cost-in-the-usage-based-billing-era/ba-p/4534186</guid>
      <dc:creator>ellisd4</dc:creator>
      <dc:date>2026-07-13T04:15:00Z</dc:date>
    </item>
    <item>
      <title>Token Economics: The New FinOps for Agentic AI</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-developer-community/token-economics-the-new-finops-for-agentic-ai/ba-p/4533743</link>
      <description>&lt;H2 data-line="8"&gt;In AI applications, tokens are now cost — and token economics deserves architectural attention&lt;/H2&gt;
&lt;P data-line="10"&gt;For a long time, AI application design started with model capability: Can the model write code? Can it reason? Can it use tools? Can it handle long context? Those questions still matter, but in the age of agentic applications, they are no longer sufficient. The more important production question is this:&amp;nbsp;&lt;STRONG&gt;How many tokens does the architecture burn to complete one useful task?&lt;/STRONG&gt;&lt;/P&gt;
&lt;P data-line="12"&gt;A classic chat application often maps one user turn to one model call. An agentic system is different. One user goal can trigger planning, retrieval, tool selection, tool execution, result interpretation, reflection, repair, and summarization. The user sees one instruction; the system may execute dozens of model calls behind the scenes. Tokens are no longer just a measure of text length. They become a measure of system design, runtime behavior, developer workflow, and business cost.&lt;/P&gt;
&lt;P data-line="14"&gt;GitHub Copilot’s 2026 move to usage-based billing through GitHub AI Credits captures the industry shift clearly. Usage is now aligned with token consumption, including input, output, and cached tokens. That matters because Copilot has evolved from an in-editor assistant into an agentic platform that can handle long, multi-step coding sessions across repositories. In that world, a tiny prompt and a multi-hour autonomous coding workflow should not be treated as the same economic unit.&lt;/P&gt;
&lt;P data-line="16"&gt;Token economics is therefore not about telling developers to “write shorter prompts.” It is about designing systems where:&lt;/P&gt;
&lt;UL data-line="18"&gt;
&lt;LI data-line="18"&gt;useful context is preserved, while noise is removed;&lt;/LI&gt;
&lt;LI data-line="19"&gt;repeated context is cached or deduplicated;&lt;/LI&gt;
&lt;LI data-line="20"&gt;simple tasks do not pay for frontier models;&lt;/LI&gt;
&lt;LI data-line="21"&gt;short-term state is managed structurally instead of copied repeatedly;&lt;/LI&gt;
&lt;LI data-line="22"&gt;every model call is metered, comparable, and governed.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P data-line="24"&gt;In short: token economics is the practice of making agentic AI economically sustainable.&lt;/P&gt;
&lt;H2 data-line="28"&gt;Scenario thinking: GitHub Copilot billing, Copilot SDK, GPT-5.5, Anthropic, and MAI-Code Model&lt;/H2&gt;
&lt;P data-line="30"&gt;The new GitHub Copilot billing model provides a useful framing for developers. Copilot is no longer only autocomplete. It is becoming a programmable agentic platform. It can use models, call tools, work across files, stream responses, and participate in long-running coding workflows. With the GitHub Copilot SDK, developers can embed that agentic runtime into their own applications, services, and developer tools.&lt;/P&gt;
&lt;P data-line="32"&gt;That is powerful, but it also changes the cost model. Once an agent loop becomes programmable, token cost also needs to become programmable. If a system can plan, call tools, edit files, retry, repair, and summarize, it also needs to meter, route, cache, compress, and evaluate.&lt;/P&gt;
&lt;P data-line="34"&gt;EvalAgentic gives this idea a concrete playground. The project groups models into cost and capability tiers:&lt;/P&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table border="1" style="border-width: 1px;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Tier&lt;/th&gt;&lt;th&gt;Example models&lt;/th&gt;&lt;th&gt;Example price / 1K tokens&lt;/th&gt;&lt;th&gt;Typical use&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;LARGE&lt;/td&gt;&lt;td&gt;claude-opus-4.8,&amp;nbsp;gpt-5.5&lt;/td&gt;&lt;td&gt;$0.030&lt;/td&gt;&lt;td&gt;Agents, code generation, multi-step reasoning&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MID&lt;/td&gt;&lt;td&gt;gpt-5.4-mini&lt;/td&gt;&lt;td&gt;$0.012&lt;/td&gt;&lt;td&gt;Dialogue, summarization, extraction&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;TINY&lt;/td&gt;&lt;td&gt;gpt-5-mini&lt;/td&gt;&lt;td&gt;$0.001&lt;/td&gt;&lt;td&gt;Classification, keyword matching, rule-like tasks&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;colgroup&gt;&lt;col style="width: 25.00%" /&gt;&lt;col style="width: 25.00%" /&gt;&lt;col style="width: 25.00%" /&gt;&lt;col style="width: 25.00%" /&gt;&lt;/colgroup&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;P data-line="42"&gt;This tiering lets us reason about real scenarios:&lt;/P&gt;
&lt;OL data-line="44"&gt;
&lt;LI data-line="44"&gt;&lt;STRONG&gt;GPT-5.5-class models are valuable for hard reasoning and engineering workflows, but they should not be the default for every step.&lt;/STRONG&gt;&amp;nbsp;Using a frontier model for simple classification is like hiring a principal architect to label folders.&lt;/LI&gt;
&lt;LI data-line="45"&gt;&lt;STRONG&gt;Anthropic high-capability models can be excellent for complex reasoning and coding, but they benefit from routing discipline.&lt;/STRONG&gt;&amp;nbsp;Requirements analysis, test interpretation, deployment explanation, and code generation may not need the same model tier.&lt;/LI&gt;
&lt;LI data-line="46"&gt;&lt;STRONG&gt;MAI-Code Model-style coding models should be treated as specialized capability layers.&lt;/STRONG&gt;&amp;nbsp;Their value is not just “better code generation”; it is deciding when code-specialized intelligence should be invoked in a larger agent pipeline.&lt;/LI&gt;
&lt;/OL&gt;
&lt;P data-line="48"&gt;The real question is not “Which model is the best?” It is:&amp;nbsp;&lt;STRONG&gt;Which model is the most economical and reliable for this step of this workflow?&lt;/STRONG&gt;&lt;/P&gt;
&lt;H2 data-line="52"&gt;Four engineering techniques for saving tokens&lt;/H2&gt;
&lt;img /&gt;
&lt;H3 data-line="54"&gt;Context Compression: turn long text into executable structure&lt;/H3&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P data-line="56"&gt;&lt;STRONG&gt;Implementation principle&lt;/STRONG&gt;&lt;/P&gt;
&lt;P data-line="58"&gt;Context Compression converts long natural-language context into the structured information an agent actually needs. Business documents are often verbose: resumes, contracts, product manuals, requirements, and support logs contain narrative text, boilerplate, repeated explanations, and low-value context. The next agent step may only need a few fields.&lt;/P&gt;
&lt;P data-line="60"&gt;EvalAgentic demonstrates this with a long resume-like input that is compressed into a compact JSON object. Instead of injecting the full original text into every prompt, the system extracts key fields and dynamically injects only the data required by the current task.&lt;/P&gt;
&lt;P data-line="62"&gt;A practical compression pipeline includes:&lt;/P&gt;
&lt;OL data-line="64"&gt;
&lt;LI data-line="64"&gt;&lt;STRONG&gt;Redundancy detection&lt;/STRONG&gt;&amp;nbsp;— identify long-tail text, repeated descriptions, stale history, and low-value context.&lt;/LI&gt;
&lt;LI data-line="65"&gt;&lt;STRONG&gt;Structured extraction&lt;/STRONG&gt;&amp;nbsp;— use Copilot or a mid-tier model to transform prose into JSON, tables, or typed schemas.&lt;/LI&gt;
&lt;LI data-line="66"&gt;&lt;STRONG&gt;Dynamic injection&lt;/STRONG&gt;&amp;nbsp;— inject only the fields needed for the next step.&lt;/LI&gt;
&lt;LI data-line="67"&gt;&lt;STRONG&gt;Recoverable references&lt;/STRONG&gt;&amp;nbsp;— preserve source pointers so compressed context remains auditable.&lt;/LI&gt;
&lt;/OL&gt;
&lt;P data-line="69"&gt;&lt;STRONG&gt;How to evaluate&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL data-line="71"&gt;
&lt;LI data-line="71"&gt;Prompt token reduction before and after compression.&lt;/LI&gt;
&lt;LI data-line="72"&gt;Answer quality and task success rate.&lt;/LI&gt;
&lt;LI data-line="73"&gt;Schema fidelity and missing-field rate.&lt;/LI&gt;
&lt;LI data-line="74"&gt;Latency improvement.&lt;/LI&gt;
&lt;LI data-line="75"&gt;Cost per successful task.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P data-line="77"&gt;Compression is not summarization. Summaries are designed for humans. Structured compression is designed for agents.&lt;/P&gt;
&lt;H3 data-line="79"&gt;Prompt Deduplication / Cache: stop paying twice for the same context&lt;/H3&gt;
&lt;img /&gt;
&lt;P data-line="81"&gt;&lt;STRONG&gt;Implementation principle&lt;/STRONG&gt;&lt;/P&gt;
&lt;P data-line="83"&gt;Many agent systems waste tokens because they repeatedly send the same context. The same resume, contract, repository README, user profile, API documentation, or business rule can be copied across turns and agents.&lt;/P&gt;
&lt;P data-line="85"&gt;Prompt Deduplication / Cache applies a simple principle: if context has already been processed, do not pay to process it again unless it has changed.&lt;/P&gt;
&lt;P data-line="87"&gt;A concrete design includes:&lt;/P&gt;
&lt;UL data-line="89"&gt;
&lt;LI data-line="89"&gt;compute a hash or semantic key for source context;&lt;/LI&gt;
&lt;LI data-line="90"&gt;reuse extracted structured results when content is identical or equivalent;&lt;/LI&gt;
&lt;LI data-line="91"&gt;apply a TTL for repeated entities, such as the 24-hour cache pattern shown in EvalAgentic;&lt;/LI&gt;
&lt;LI data-line="92"&gt;organize stable prompt prefixes to benefit from provider-level prompt caching where available;&lt;/LI&gt;
&lt;LI data-line="93"&gt;store shared context in an artifact store or memory layer so multiple agents do not copy the same blob.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P data-line="95"&gt;&lt;STRONG&gt;How to evaluate&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL data-line="97"&gt;
&lt;LI data-line="97"&gt;Cache hit rate.&lt;/LI&gt;
&lt;LI data-line="98"&gt;Cached token ratio.&lt;/LI&gt;
&lt;LI data-line="99"&gt;Duplicate prompt rate.&lt;/LI&gt;
&lt;LI data-line="100"&gt;Cost delta before and after caching.&lt;/LI&gt;
&lt;LI data-line="101"&gt;Correctness under cache, especially stale-cache failures.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P data-line="103"&gt;Caching is not “save everything forever.” Good caching knows when to reuse and when to invalidate.&lt;/P&gt;
&lt;H3 data-line="105"&gt;On-Demand Model Routing: let task complexity decide model tier&lt;/H3&gt;
&lt;img /&gt;
&lt;P data-line="107"&gt;&lt;STRONG&gt;&lt;BR /&gt;Implementation principle&lt;/STRONG&gt;&lt;/P&gt;
&lt;P data-line="109"&gt;On-Demand Model Routing routes each request to the cheapest model that can complete the task reliably. The entry point can use a rule tree, a lightweight classifier, or a hybrid complexity score.&lt;/P&gt;
&lt;P data-line="111"&gt;EvalAgentic’s routing tree is intentionally easy to explain:&lt;/P&gt;
&lt;LI-CODE lang="markdown"&gt;INCOMING REQUEST
  └─ Prompt &amp;lt; 500 tokens? ── YES ─→ TINY: classify / extract
  └─ NO ──→ multi-step reasoning?
        ├─ NO ─→ MID: dialogue / summary
        └─ YES ─→ LARGE: agent / code&lt;/LI-CODE&gt;
&lt;P data-line="121"&gt;The engineering logic is straightforward:&lt;/P&gt;
&lt;UL data-line="123"&gt;
&lt;LI data-line="123"&gt;simple classification and keyword matching go to TINY;&lt;/LI&gt;
&lt;LI data-line="124"&gt;summarization and structured conversion go to MID;&lt;/LI&gt;
&lt;LI data-line="125"&gt;multi-step reasoning, coding, cross-file changes, and orchestration go to LARGE;&lt;/LI&gt;
&lt;LI data-line="126"&gt;code-specialized models such as MAI-Code Model can be placed in the coding phase rather than used across the whole pipeline.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P data-line="128"&gt;&lt;STRONG&gt;How to evaluate&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL data-line="130"&gt;
&lt;LI data-line="130"&gt;Routing accuracy.&lt;/LI&gt;
&lt;LI data-line="131"&gt;Cost per route.&lt;/LI&gt;
&lt;LI data-line="132"&gt;Quality regression by tier.&lt;/LI&gt;
&lt;LI data-line="133"&gt;Escalation rate from small models to larger models.&lt;/LI&gt;
&lt;LI data-line="134"&gt;End-to-end success rate.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P data-line="136"&gt;Routing does not mean “always use the smallest model.” It means frontier intelligence is reserved for the steps where it actually changes the outcome.&lt;/P&gt;
&lt;H3 data-line="138"&gt;Short-term Memory: preserve state instead of replaying history&lt;/H3&gt;
&lt;img /&gt;
&lt;P data-line="140"&gt;&lt;STRONG&gt;&lt;BR /&gt;Implementation principle&lt;/STRONG&gt;&lt;/P&gt;
&lt;P data-line="142"&gt;Short-term Memory controls context growth across multi-turn and multi-agent workflows. Without it, agents often replay the full conversation history, full tool outputs, and full intermediate reasoning on every turn. The context grows; quality may not improve; the bill definitely does.&lt;/P&gt;
&lt;P data-line="144"&gt;A better design stores state structurally:&lt;/P&gt;
&lt;UL data-line="146"&gt;
&lt;LI data-line="146"&gt;user goal;&lt;/LI&gt;
&lt;LI data-line="147"&gt;current plan;&lt;/LI&gt;
&lt;LI data-line="148"&gt;tool outputs and references;&lt;/LI&gt;
&lt;LI data-line="149"&gt;failure reasons;&lt;/LI&gt;
&lt;LI data-line="150"&gt;next actions;&lt;/LI&gt;
&lt;LI data-line="151"&gt;handoff artifacts between agents.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P data-line="153"&gt;In a multi-agent coding pipeline, the Requirements Agent should hand off a structured spec. The Coding Agent should read that spec, not the entire prior conversation. The Testing Agent should consume testable artifacts, not every word produced by the Coding Agent.&lt;/P&gt;
&lt;P data-line="155"&gt;&lt;STRONG&gt;How to evaluate&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL data-line="157"&gt;
&lt;LI data-line="157"&gt;Context growth curve across turns.&lt;/LI&gt;
&lt;LI data-line="158"&gt;Memory retrieval precision.&lt;/LI&gt;
&lt;LI data-line="159"&gt;Rework rate caused by missing state.&lt;/LI&gt;
&lt;LI data-line="160"&gt;Recovery quality after failed steps.&lt;/LI&gt;
&lt;LI data-line="161"&gt;Average input tokens per turn.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P data-line="163"&gt;Short-term memory is not about remembering everything. It is about remembering the next useful thing.&lt;/P&gt;
&lt;H2 data-line="167"&gt;EvalAgentic as a concrete evaluation example&lt;/H2&gt;
&lt;img /&gt;
&lt;P data-line="169"&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;A class="lia-external-url" href="https://github.com/kinfey/EvalAgentic" target="_blank"&gt;EvalAgentic&lt;/A&gt; is effective as an evangelism project because it turns token economics into an observable before/after system.&lt;/P&gt;
&lt;P data-line="171"&gt;The architecture has five layers:&lt;/P&gt;
&lt;OL data-line="173"&gt;
&lt;LI data-line="173"&gt;&lt;STRONG&gt;Frontend&lt;/STRONG&gt;&amp;nbsp;—&amp;nbsp;frontend/index.html&amp;nbsp;provides Tabs A / B / C, live SSE logs, and before/after charts.&lt;/LI&gt;
&lt;LI data-line="174"&gt;&lt;STRONG&gt;API&lt;/STRONG&gt;&amp;nbsp;—&amp;nbsp;backend/server.py&amp;nbsp;exposes FastAPI routes and Server-Sent Events streaming.&lt;/LI&gt;
&lt;LI data-line="175"&gt;&lt;STRONG&gt;Orchestration&lt;/STRONG&gt;&amp;nbsp;—&amp;nbsp;eval.py&amp;nbsp;handles A/B evaluation;&amp;nbsp;coding_agents.py&amp;nbsp;handles the multi-agent coding scenario.&lt;/LI&gt;
&lt;LI data-line="176"&gt;&lt;STRONG&gt;Core&lt;/STRONG&gt;&amp;nbsp;—&amp;nbsp;compressor.py,&amp;nbsp;router.py,&amp;nbsp;gh_models.py, and&amp;nbsp;token_meter.py&amp;nbsp;implement compression, routing, Copilot SDK calls, and token metering.&lt;/LI&gt;
&lt;LI data-line="177"&gt;&lt;STRONG&gt;Providers&lt;/STRONG&gt;&amp;nbsp;— GitHub Copilot SDK and Microsoft Agent Framework provide model access and agent orchestration.&lt;/LI&gt;
&lt;/OL&gt;
&lt;H3 data-line="179"&gt;Tab A: Compression comparison&lt;/H3&gt;
&lt;P data-line="181"&gt;Tab A compares long-form context before and after structured compression. The key message is that token saving does not come from writing a clever sentence. It comes from converting verbose context into a structured artifact that downstream agents can consume efficiently.&lt;/P&gt;
&lt;H3 data-line="183"&gt;Tab B: On-demand model routing&lt;/H3&gt;
&lt;P data-line="185"&gt;Tab B demonstrates that cost is not only about raw token count. If a system routes simple tasks to cheaper tiers and reserves expensive models for complex reasoning, total cost can fall even if some token counts increase. This is a subtle but important point: token economics is not token starvation; it is model portfolio optimization.&lt;/P&gt;
&lt;H3 data-line="187"&gt;Tab C: Coding scenario — multi-agent with Agent Framework&lt;/H3&gt;
&lt;P data-line="189"&gt;Tab C is the most persuasive demo. The same deliverable — a Taobao-like goods-list site with HTML + JavaScript frontend, Flask backend, and Docker deployment — is produced twice by a four-agent pipeline:&lt;/P&gt;
&lt;OL data-line="191"&gt;
&lt;LI data-line="191"&gt;Requirements Agent;&lt;/LI&gt;
&lt;LI data-line="192"&gt;Coding Agent;&lt;/LI&gt;
&lt;LI data-line="193"&gt;Testing Agent;&lt;/LI&gt;
&lt;LI data-line="194"&gt;Deployment Agent.&lt;/LI&gt;
&lt;/OL&gt;
&lt;P data-line="196"&gt;The&amp;nbsp;&lt;STRONG&gt;before&lt;/STRONG&gt;&amp;nbsp;pipeline uses no compression and sends every agent to GPT-5.5 / LARGE.&lt;BR /&gt;The&amp;nbsp;&lt;STRONG&gt;after&lt;/STRONG&gt;&amp;nbsp;pipeline injects a compressed JSON spec and uses on-demand routing: requirements can use MID, coding can use LARGE, testing can use MID, and deployment can use TINY.&lt;/P&gt;
&lt;P data-line="199"&gt;This mirrors real enterprise development. Architecture and complex code generation may deserve frontier models. Test interpretation, deployment packaging, and simple validation often do not.&lt;/P&gt;
&lt;H2 data-line="203"&gt;Summary and refinement based on the project diagrams&lt;/H2&gt;
&lt;P data-line="205"&gt;The EvalAgentic README describes three important visuals: the architecture flow, the routing tree, and the token-meter design. Together, they form a governance loop:&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;LI-CODE lang="markdown"&gt;User Scenario
   ↓
Context Compression
   ↓
Prompt Deduplication / Cache
   ↓
On-Demand Model Routing
   ↓
Short-term Memory
   ↓
Token Metering &amp;amp; Budget Actions
   ↓
Before / After Evaluation&lt;/LI-CODE&gt;
&lt;H3 data-line="223"&gt;Optimize the path, not only the prompt&lt;/H3&gt;
&lt;P data-line="225"&gt;Many teams start token optimization by editing prompt wording. That helps, but the largest waste usually lives in the execution path: how many calls are made, how much context is repeated, how often tools retry, and whether every step uses the same expensive model. EvalAgentic makes the path visible through A/B comparisons.&lt;/P&gt;
&lt;H3 data-line="227"&gt;Token Meter is the control plane of cost governance&lt;/H3&gt;
&lt;P data-line="229"&gt;EvalAgentic’s token_meter.py uses a non-invasive interceptor pattern:&lt;/P&gt;
&lt;LI-CODE lang="markdown"&gt;INTERCEPTOR (@token_meter)
  ↓
COUNTER CORE: accounting / budget threshold / trigger
  ↓
ACTION HUB: throttle (&amp;gt;80% budget) / rollback (&amp;gt;budget)&lt;/LI-CODE&gt;
&lt;P data-line="239"&gt;This is the right architectural instinct. Production systems need thresholds, throttling, rollback, and traceability. Without those controls, one retry loop can quietly turn a small user request into a budget incident.&lt;/P&gt;
&lt;H3 data-line="241"&gt;Cost metrics must be evaluated with quality metrics&lt;/H3&gt;
&lt;P data-line="243"&gt;A system that cuts cost by 80% but drops success rate by 50% is not optimized. It is broken more cheaply. The evaluation matrix should combine cost, quality, latency, and reliability:&lt;/P&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table border="1" style="border-width: 1px;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Dimension&lt;/th&gt;&lt;th&gt;Metric&lt;/th&gt;&lt;th&gt;Why it matters&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Cost&lt;/td&gt;&lt;td&gt;Cost per successful task&lt;/td&gt;&lt;td&gt;Measures the real unit economics&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Token&lt;/td&gt;&lt;td&gt;Input / output / cached tokens&lt;/td&gt;&lt;td&gt;Identifies compression and cache opportunities&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Quality&lt;/td&gt;&lt;td&gt;Pass rate / regression rate&lt;/td&gt;&lt;td&gt;Ensures cheaper tiers do not break outcomes&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Efficiency&lt;/td&gt;&lt;td&gt;Latency / retry count&lt;/td&gt;&lt;td&gt;Prevents cheap models from causing expensive retries&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Governance&lt;/td&gt;&lt;td&gt;Budget breach / rollback count&lt;/td&gt;&lt;td&gt;Validates runtime control&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;colgroup&gt;&lt;col style="width: 33.33%" /&gt;&lt;col style="width: 33.33%" /&gt;&lt;col style="width: 33.33%" /&gt;&lt;/colgroup&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;H3 data-line="253"&gt;Narrative&lt;/H3&gt;
&lt;P data-line="255"&gt;A simple three-line narrative works well for demos:&lt;/P&gt;
&lt;OL data-line="257"&gt;
&lt;LI data-line="257"&gt;&lt;STRONG&gt;Token is no longer a technical detail. It is the bill of your architecture.&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI data-line="258"&gt;&lt;STRONG&gt;EvalAgentic shows the same scenario before and after cost-aware design.&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI data-line="259"&gt;&lt;STRONG&gt;The goal is not to make models cheaper; the goal is to make agent systems economically governable.&lt;/STRONG&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;P data-line="261"&gt;For a developer audience, the sharper version is:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P data-line="263"&gt;A good agent does not use the biggest model everywhere. It uses the right intelligence at the right step, with the right context, under the right budget.&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;H2 data-line="267"&gt;Practical recommendations for real projects&lt;/H2&gt;
&lt;OL data-line="269"&gt;
&lt;LI data-line="269"&gt;&lt;STRONG&gt;Establish a token baseline first.&lt;/STRONG&gt;&amp;nbsp;Measure input, output, retries, tool calls, and cost per scenario before optimizing.&lt;/LI&gt;
&lt;LI data-line="270"&gt;&lt;STRONG&gt;Make compression a component, not a prompt habit.&lt;/STRONG&gt;&amp;nbsp;Define schemas, cache policies, and fallback behavior.&lt;/LI&gt;
&lt;LI data-line="271"&gt;&lt;STRONG&gt;Introduce a model routing matrix.&lt;/STRONG&gt;&amp;nbsp;Route by task type, complexity, risk, latency, and cost.&lt;/LI&gt;
&lt;LI data-line="272"&gt;&lt;STRONG&gt;Define handoff contracts between agents.&lt;/STRONG&gt;&amp;nbsp;Pass structured artifacts, not endless conversation history.&lt;/LI&gt;
&lt;LI data-line="273"&gt;&lt;STRONG&gt;Evaluate every optimization with A/B tests.&lt;/STRONG&gt;&amp;nbsp;Compare cost, quality, latency, and stability.&lt;/LI&gt;
&lt;LI data-line="274"&gt;&lt;STRONG&gt;Add budget actions.&lt;/STRONG&gt;&amp;nbsp;Throttle at a threshold, rollback on breach, and add circuit breakers for failed retries.&lt;/LI&gt;
&lt;/OL&gt;
&lt;H2 data-line="278"&gt;Closing: token economics is the second curve of agent engineering&lt;/H2&gt;
&lt;P data-line="280"&gt;The first phase of AI application development was about calling models. The second phase was about putting models into products. The next phase of agentic AI is about running those systems reliably, affordably, and governably.&lt;/P&gt;
&lt;P data-line="282"&gt;EvalAgentic matters because it turns Context Compression, Prompt Deduplication / Cache, On-Demand Model Routing, and Short-term Memory into something developers can run, compare, and explain. It moves token economics from opinion to instrumentation.&lt;/P&gt;
&lt;P data-line="284"&gt;Future AI applications will not only ask: How smart is this agent?&lt;BR /&gt;They will ask: How many tokens does it spend per completed task? Which model did it use? Did it hit cache? Did retries run away? Did the system reserve frontier intelligence for the steps that deserved it?&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;H2 data-line="291"&gt;References&lt;/H2&gt;
&lt;UL data-line="293"&gt;
&lt;LI data-line="293"&gt;&lt;A href="https://github.com/kinfey/EvalAgentic" data-href="https://github.com/kinfey/EvalAgentic" target="_blank"&gt;kinfey/EvalAgentic&lt;/A&gt;&lt;/LI&gt;
&lt;LI data-line="294"&gt;&lt;A href="https://github.blog/news-insights/company-news/github-copilot-is-moving-to-usage-based-billing/" data-href="https://github.blog/news-insights/company-news/github-copilot-is-moving-to-usage-based-billing/" target="_blank"&gt;GitHub Copilot is moving to usage-based billing&lt;/A&gt;&lt;/LI&gt;
&lt;LI data-line="295"&gt;&lt;A href="https://github.blog/changelog/2026-06-01-updates-to-github-copilot-billing-and-plans/" data-href="https://github.blog/changelog/2026-06-01-updates-to-github-copilot-billing-and-plans/" target="_blank"&gt;Updates to GitHub Copilot billing and plans&lt;/A&gt;&lt;/LI&gt;
&lt;LI data-line="296"&gt;&lt;A href="https://docs.github.com/en/copilot/how-tos/copilot-sdk" data-href="https://docs.github.com/en/copilot/how-tos/copilot-sdk" target="_blank"&gt;Copilot SDK - GitHub Docs&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;</description>
      <pubDate>Mon, 06 Jul 2026 07:00:00 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-developer-community/token-economics-the-new-finops-for-agentic-ai/ba-p/4533743</guid>
      <dc:creator>kinfey</dc:creator>
      <dc:date>2026-07-06T07:00:00Z</dc:date>
    </item>
    <item>
      <title>Guest Access for Canvas and Model-Driven Apps with Microsoft Entra ID</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-developer-community/guest-access-for-canvas-and-model-driven-apps-with-microsoft/ba-p/4529462</link>
      <description>&lt;H4&gt;&lt;SPAN class="lia-text-color-10"&gt;Introduction&lt;/SPAN&gt;&lt;/H4&gt;
&lt;P&gt;External collaboration is a common requirement for business applications built on Microsoft Power Platform. Organizations may need to provide controlled access to vendors, partners, contractors, or external business users without creating full internal user accounts.&lt;/P&gt;
&lt;P&gt;Microsoft Entra ID B2B guest access enables this scenario by allowing external users to be invited into the resource tenant and then granted access to specific Power Platform resources. For apps that use Microsoft Dataverse, access is still governed by licensing, environment-level guest access settings, and Dataverse security roles.&lt;/P&gt;
&lt;P&gt;This blog walks through the configuration flow to enable a guest user to access Canvas apps and Model-driven apps in Microsoft Power Platform using Microsoft Entra ID.&lt;/P&gt;
&lt;HR /&gt;
&lt;H4&gt;&lt;SPAN class="lia-text-color-10"&gt;Scenario&lt;/SPAN&gt;&lt;/H4&gt;
&lt;P&gt;In this scenario, an external user needs access to a Power Platform environment and must be able to access a Dataverse-backed app, such as a Model-driven app or a Canvas app that connects to Dataverse.&lt;/P&gt;
&lt;P&gt;The configuration involves the following areas:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Microsoft Entra ID external collaboration&lt;/LI&gt;
&lt;LI&gt;Guest user invitation and acceptance&lt;/LI&gt;
&lt;LI&gt;Power Platform environment user access&lt;/LI&gt;
&lt;LI&gt;Power Apps licensing&lt;/LI&gt;
&lt;LI&gt;Environment-level guest access setting&lt;/LI&gt;
&lt;LI&gt;Dataverse security roles&lt;/LI&gt;
&lt;LI&gt;App access validation&lt;/LI&gt;
&lt;/UL&gt;
&lt;HR /&gt;
&lt;H4&gt;&lt;SPAN class="lia-text-color-10"&gt;Step 1: Enable external sharing in Microsoft Entra ID&lt;/SPAN&gt;&lt;/H4&gt;
&lt;P&gt;Start by validating that external collaboration is enabled in Microsoft Entra ID.&lt;/P&gt;
&lt;P&gt;In the &lt;STRONG&gt;Microsoft Entra admin center&lt;/STRONG&gt;, go to: &lt;STRONG&gt;External Identities → External collaboration settings&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Review the guest collaboration settings and ensure that the required guest access method is allowed for your organization.&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;Depending on your organization’s preference and security model, guest access can be enabled through:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;B2B collaboration invitation&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;B2B direct connect&lt;/STRONG&gt;, where applicable for the scenario&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;For this walkthrough, the guest user is added through the B2B invitation flow.&lt;/P&gt;
&lt;HR /&gt;
&lt;H4&gt;&lt;SPAN class="lia-text-color-10"&gt;Step 2: Add the external user as a guest user&lt;/SPAN&gt;&lt;/H4&gt;
&lt;P&gt;Add the external user as a guest user in the Microsoft Entra tenant.&lt;/P&gt;
&lt;P&gt;In Microsoft Entra ID, invite the external user by sending a guest invitation. The guest user must exist in the resource tenant before Power Platform and Dataverse access can be assigned.&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;Sharing an app with guest users must be done in the&amp;nbsp;&lt;STRONG&gt;resource tenant&lt;/STRONG&gt; - the tenant where the app actually resides. The user's original tenant, by contrast, is referred to as the &lt;STRONG&gt;home tenant&lt;/STRONG&gt;.&lt;/P&gt;
&lt;HR /&gt;
&lt;H4&gt;&lt;SPAN class="lia-text-color-10"&gt;Step 3: Ask the guest user to accept the invitation&lt;/SPAN&gt;&lt;/H4&gt;
&lt;P&gt;The guest user must accept the invitation before they can access resources in the tenant.&lt;/P&gt;
&lt;P&gt;Once the invite is accepted, the user becomes available as a guest account in the resource tenant and can be assigned access to Power Platform resources.&lt;/P&gt;
&lt;HR /&gt;
&lt;H4&gt;&lt;SPAN class="lia-text-color-10"&gt;Step 4: Add the guest user to the environment and assign security roles&lt;/SPAN&gt;&lt;/H4&gt;
&lt;P&gt;Once the guest user has accepted the invitation, the next step is to add them to the required environment and assign the appropriate security roles. Both of these actions are performed in the &lt;STRONG&gt;Microsoft Power Platform admin center (PPAC)&lt;/STRONG&gt;, so they can be completed back-to-back.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Add the user to the environment:&lt;/STRONG&gt;&lt;BR /&gt;Navigate to Environments → Settings → Users → Add user, then select the guest user and add them to the target environment. This makes the user available in the environment so that security roles and app-level access can be configured.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Assign Dataverse security roles:&lt;/STRONG&gt;&lt;BR /&gt;With the user added, assign the appropriate &lt;STRONG&gt;Microsoft Dataverse&lt;/STRONG&gt; security roles. Security roles determine what a user can and cannot access within Dataverse - for example, an external vendor can be scoped to only the tables, records, and actions required for their specific task, without any administrative privileges.&lt;/P&gt;
&lt;P&gt;Follow the principle of least-privilege access: grant only the permissions the guest user needs to complete their intended business process.&lt;/P&gt;
&lt;HR /&gt;
&lt;H4&gt;&lt;SPAN class="lia-text-color-10"&gt;Step 5: Assign a Power Apps license&lt;/SPAN&gt;&lt;/H4&gt;
&lt;P&gt;Next, assign the required &lt;STRONG&gt;Microsoft Power Apps&lt;/STRONG&gt; license to the guest user. In this walkthrough, a Power Apps Premium license was assigned from the &lt;STRONG&gt;Microsoft 365 admin center&lt;/STRONG&gt;.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Per Microsoft's official documentation, accessing an app that connects to &lt;STRONG&gt;Microsoft Dataverse&lt;/STRONG&gt; requires the guest user to hold a license with Power Apps use rights matching the app's capability level.&lt;/P&gt;
&lt;HR /&gt;
&lt;H4&gt;&lt;SPAN class="lia-text-color-10"&gt;Step 6: Enable guest user access in the Power Platform environment&lt;/SPAN&gt;&lt;/H4&gt;
&lt;P&gt;Next, enable guest access for the environment.&lt;/P&gt;
&lt;P&gt;Go to:&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Power Platform admin center → Security → Identity and access → Guest access&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Then:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Select the required environment.&lt;/LI&gt;
&lt;LI&gt;Select &lt;STRONG&gt;Manage guest access&lt;/STRONG&gt;.&lt;/LI&gt;
&lt;LI&gt;Turn off the &lt;STRONG&gt;Block guest user access&lt;/STRONG&gt; toggle.&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;This allows Microsoft Entra B2B guest users to access Dataverse data in that environment&lt;/P&gt;
&lt;img /&gt;&lt;HR /&gt;
&lt;H4&gt;&lt;SPAN class="lia-text-color-10"&gt;Step 8: Validate access with the guest user&lt;/SPAN&gt;&lt;/H4&gt;
&lt;P&gt;After completing the configuration, validate the access using the guest user account.&lt;/P&gt;
&lt;P&gt;In this validation, the guest user was able to sign in to the CRM environment and perform actions aligned with the assigned security role.&lt;/P&gt;
&lt;HR /&gt;
&lt;H4&gt;&lt;SPAN class="lia-text-color-10"&gt;Summary&lt;/SPAN&gt;&lt;/H4&gt;
&lt;P&gt;Guest user access for Canvas apps and Model-driven apps in Microsoft Power Platform can be configured using Microsoft Entra ID B2B collaboration and Power Platform security controls.&lt;/P&gt;
&lt;P&gt;For Dataverse-backed apps, the important point is that guest access is governed by multiple layers. The user must be invited and accepted as a guest, added to the environment, licensed appropriately, allowed through the environment guest access setting, and assigned the right Dataverse security roles.&lt;/P&gt;
&lt;P&gt;Once these controls are configured correctly, external users can access the required app and perform only the actions permitted by their assigned role.&lt;/P&gt;
&lt;HR /&gt;
&lt;H4&gt;&lt;SPAN class="lia-text-color-10"&gt;References&lt;/SPAN&gt;&lt;/H4&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/power-apps/maker/canvas-apps/share-app-guests" target="_blank" rel="noopener" data-tabster="{&amp;quot;restorer&amp;quot;:{&amp;quot;type&amp;quot;:1}}"&gt;Share a canvas app with guest users - Power Apps&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/power-platform/admin/security/guest-access" target="_blank" rel="noopener" data-tabster="{&amp;quot;restorer&amp;quot;:{&amp;quot;type&amp;quot;:1}}"&gt;Control guest access to Microsoft Power Platform environments&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/power-platform/admin/security/identity-access-management" target="_blank" rel="noopener" data-tabster="{&amp;quot;restorer&amp;quot;:{&amp;quot;type&amp;quot;:1}}"&gt;Identity and access management - Power Platform&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/power-apps/maker/model-driven-apps/share-model-driven-app" target="_blank" rel="noopener" data-tabster="{&amp;quot;restorer&amp;quot;:{&amp;quot;type&amp;quot;:1}}"&gt;Sharing a model-driven app - assigning security roles and privileges&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/power-apps/maker/canvas-apps/share-app" target="_blank" rel="noopener" data-tabster="{&amp;quot;restorer&amp;quot;:{&amp;quot;type&amp;quot;:1}}"&gt;Share a canvas app with your organization&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/power-platform/admin/wp-security" target="_blank" rel="noopener" data-tabster="{&amp;quot;restorer&amp;quot;:{&amp;quot;type&amp;quot;:1}}"&gt;Security in Microsoft Dataverse&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;</description>
      <pubDate>Thu, 02 Jul 2026 08:24:43 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-developer-community/guest-access-for-canvas-and-model-driven-apps-with-microsoft/ba-p/4529462</guid>
      <dc:creator>aakarshdhawan</dc:creator>
      <dc:date>2026-07-02T08:24:43Z</dc:date>
    </item>
    <item>
      <title>Smoke Test Microsoft Foundry Agents with GitHub Actions</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-developer-community/smoke-test-microsoft-foundry-agents-with-github-actions/ba-p/4531912</link>
      <description>&lt;H1&gt;Introduction&lt;/H1&gt;
&lt;P&gt;This blog is the next part of a series discussing Foundry Hosted Agents and how to properly construct Continuous Integration and Continuous Delivery (CI/CD) for them. This post will specifically go over configuring smoke tests against your recently deployed hosted agents. You can follow along with the complete codebase for this blog on the &lt;A href="https://github.com/JFolberth/simple-hosted-agent-responses/tree/blog/smoke_tests" target="_blank" rel="noopener"&gt;&lt;CODE&gt;blog/smoke_tests&lt;/CODE&gt;&lt;/A&gt; branch.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Previous topics have been:&lt;/P&gt;
&lt;P data-testid="MessageSubject"&gt;&lt;A class="lia-internal-link lia-internal-url lia-internal-url-content-type-blog" href="https://techcommunity.microsoft.com/blog/azuredevcommunityblog/deploying-foundry-hosted-agents-via-rest-api/4524523" target="_blank" rel="noopener" data-lia-auto-title="Deploying Foundry Hosted Agents via REST API" data-lia-auto-title-active="0"&gt;Deploying Foundry Hosted Agents via REST API&lt;/A&gt;&lt;/P&gt;
&lt;P data-testid="MessageSubject"&gt;&lt;A class="lia-internal-link lia-internal-url lia-internal-url-content-type-blog" href="https://techcommunity.microsoft.com/blog/azuredevcommunityblog/deploying-foundry-hosted-agents-from-source-code/4527285" target="_blank" rel="noopener" data-lia-auto-title="Deploying Foundry Hosted Agents from Source Code" data-lia-auto-title-active="0"&gt;Deploying Foundry Hosted Agents from Source Code&lt;/A&gt;&lt;/P&gt;
&lt;P data-testid="MessageSubject"&gt;&lt;A class="lia-internal-link lia-internal-url lia-internal-url-content-type-blog" href="https://techcommunity.microsoft.com/blog/azuredevcommunityblog/github-action-for-deploying-hosted-agents/4524947" data-lia-auto-title="GitHub Action for Deploying Hosted Agents" data-lia-auto-title-active="0" target="_blank"&gt;GitHub Action for Deploying Hosted Agents&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Prerequisites&lt;/H2&gt;
&lt;P&gt;To follow along, you will need:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;An Azure subscription with access to Azure AI Foundry.&lt;/LI&gt;
&lt;LI&gt;A deployed Foundry Hosted Agent.&lt;/LI&gt;
&lt;LI&gt;The Foundry project endpoint and hosted agent name from the deployment output.&lt;/LI&gt;
&lt;LI&gt;Python 3.10 or later available locally or on the GitHub Actions runner.&lt;/LI&gt;
&lt;LI&gt;Azure CLI installed and signed in for local runs. The examples use an access token for the &lt;CODE&gt;https://ai.azure.com/&lt;/CODE&gt; resource. In GitHub Actions, authentication is handled through &lt;CODE&gt;azure/login&lt;/CODE&gt;.&lt;/LI&gt;
&lt;LI&gt;The sample repository checked out, including &lt;CODE&gt;deployment/smoke-tests.py&lt;/CODE&gt; and &lt;CODE&gt;deployment/smoke-tests.json&lt;/CODE&gt;.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2&gt;Choosing a Scoped Agent Scenario&lt;/H2&gt;
&lt;P&gt;At this point we’ve gone over deploying Foundry Hosted Agents, a GitHub action deploying container based Foundry Hosted Agents, and deploying source code based Foundry Hosted Agents. The agent prompt for these examples was a simple “You are a friendly assistant. Keep your answers brief.” When we start talking about real world use cases and then tests to validate these cases then we should have a narrower prompt.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;My kids were watching a Transformers movie. If you are unfamiliar with Transformers, it started as an ’80s cartoon and later became a series of action movies. So, I decided to create an agent whose specialty is knowing only all things Transformers.&lt;/P&gt;
&lt;H2&gt;What are smoke tests for AI agents?&lt;/H2&gt;
&lt;P&gt;The Agent Development Lifecycle (ADLC) covers how we build, deploy, test, and improve agents. In that lifecycle, smoke tests validate basic agent functionality with simple prompts. How is this different from unit and functional tests? Unit tests are narrow checks against specific pieces of code, while functional tests validate a specific behavior of an application.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;With these smoke tests, we are checking two things: the agent generates a response, and that response aligns with the prompt. This distinction is important. Smoke tests validate basic behavior against the prompt, while evaluations are still used to measure response quality, tool calls, and other benchmarks.&lt;/P&gt;
&lt;H2&gt;Why run smoke tests after deploying hosted agents?&lt;/H2&gt;
&lt;P&gt;If evaluations are the methodology used for determining response quality, why not just use those? It’s a fair question, but evaluations can take a significant amount of time and may be costly to run. One of the core DevOps concepts of a DevOps culture is the ability to fail fast and learn from those failures.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Part of the reason I incorporated smoke tests was that I had agents deploy successfully, but they did not return responses due to a dependency issue. My CI/CD pipeline reported healthy checks, but the agent did not respond when provided prompts. Smoke tests are easy to run and provide a quick validation that our agent is working and returning responses aligned to our prompt.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This does not mean smoke tests replace evaluations. Smoke tests are a fast deployment gate: they tell us whether the hosted agent is reachable, responding, and following the most basic prompt expectations. Evaluations are still the better tool for measuring response quality, grounding, safety, tool usage, and regressions over time.&lt;/P&gt;
&lt;H2&gt;Smoke test scenarios for Foundry Agents&lt;/H2&gt;
&lt;P&gt;Now that we’ve established the importance and reasoning behind smoke tests, what kinds of test scenarios should we run?&lt;/P&gt;
&lt;P&gt;I wouldn’t say there is a golden list of scenarios one needs to run. Here are the scenarios I landed on.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;An on-topic response&lt;/LI&gt;
&lt;LI&gt;Thread continuity validation (stateless)&lt;/LI&gt;
&lt;LI&gt;Conversation creation (stateful)&lt;/LI&gt;
&lt;LI&gt;Refusal to answer an off-topic question&lt;/LI&gt;
&lt;LI&gt;Check for hallucinations&lt;/LI&gt;
&lt;LI&gt;Context dependent question (more than one possible answer, needs context)&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Together, these scenarios validate that the agent responds, maintains context, stays on topic, provides accurate information, and asks appropriate follow-up questions.&lt;/P&gt;
&lt;H2&gt;Define smoke tests&lt;/H2&gt;
&lt;P&gt;Now that we have criteria for our tests, let’s talk about the prompts we should use. For this sample, the agent is designed to answer only questions about Transformers.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The first task is deciding how to structure the test file. Since we want the smoke tests to be repeatable, scalable, and easy to update, the prompts should live in a separate file. For this sample, I chose JSON because it is easy to read, easy to maintain, and simple for the Python script to parse. The file’s structure looks like this:&lt;/P&gt;
&lt;PRE class="language-json" tabindex="0" contenteditable="false" data-lia-code-value="{
  &amp;quot;tests&amp;quot;: [
    {
      &amp;quot;id&amp;quot;: &amp;quot;on_topic_transformers&amp;quot;,
      &amp;quot;description&amp;quot;: &amp;quot;Answers an on-topic Transformers question&amp;quot;,
      &amp;quot;prompt&amp;quot;: &amp;quot;Who is Optimus Prime?&amp;quot;,
      &amp;quot;assertions&amp;quot;: {
        &amp;quot;contains_any&amp;quot;: [&amp;quot;autobot&amp;quot;, &amp;quot;leader&amp;quot;],
        &amp;quot;contains_none&amp;quot;: [&amp;quot;I cannot answer&amp;quot;]
      }
    }
  ]
}"&gt;&lt;CODE&gt;{
  "tests": [
    {
      "id": "on_topic_transformers",
      "description": "Answers an on-topic Transformers question",
      "prompt": "Who is Optimus Prime?",
      "assertions": {
        "contains_any": ["autobot", "leader"],
        "contains_none": ["I cannot answer"]
      }
    }
  ]
}&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;This structure allows for a single test file containing multiple tests with different prompts and several assertion criteria. Each assertion checks the returned text for required or forbidden terms, allowing the same script to validate different agents by swapping the JSON file.&lt;/P&gt;
&lt;H3&gt;Test an on-topic response&lt;/H3&gt;
&lt;PRE class="language-json" tabindex="0" contenteditable="false" data-lia-code-value="{
  &amp;quot;id&amp;quot;: &amp;quot;basic_response&amp;quot;,
  &amp;quot;description&amp;quot;: &amp;quot;Agent responds at all and answers in-domain.&amp;quot;,
  &amp;quot;prompt&amp;quot;: &amp;quot;Who is Optimus Prime?&amp;quot;,
  &amp;quot;assertions&amp;quot;: {
    &amp;quot;contains_any&amp;quot;: [&amp;quot;optimus&amp;quot;, &amp;quot;prime&amp;quot;, &amp;quot;autobot&amp;quot;]
  }
}"&gt;&lt;CODE&gt;{
  "id": "basic_response",
  "description": "Agent responds at all and answers in-domain.",
  "prompt": "Who is Optimus Prime?",
  "assertions": {
    "contains_any": ["optimus", "prime", "autobot"]
  }
}&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Here we are checking whether an on-topic prompt returns a response with expected keywords. Again, we are not testing the full accuracy or quality of the answer here; we are validating that the agent responds in a way that aligns with the prompt.&lt;/P&gt;
&lt;H3&gt;Test response chaining with &lt;CODE&gt;previous_response_id&lt;/CODE&gt;&lt;/H3&gt;
&lt;PRE class="language-json" tabindex="0" contenteditable="false" data-lia-code-value="[
  {
    &amp;quot;id&amp;quot;: &amp;quot;thread_turn_1&amp;quot;,
    &amp;quot;description&amp;quot;: &amp;quot;First turn of a multi-turn conversation; captures the response id for turn 2.&amp;quot;,
    &amp;quot;prompt&amp;quot;: &amp;quot;Who is Megatron?&amp;quot;,
    &amp;quot;assertions&amp;quot;: {
      &amp;quot;contains_any&amp;quot;: [&amp;quot;megatron&amp;quot;]
    },
    &amp;quot;save_response_id_as&amp;quot;: &amp;quot;megatron_thread&amp;quot;
  },
  {
    &amp;quot;id&amp;quot;: &amp;quot;thread_turn_2&amp;quot;,
    &amp;quot;description&amp;quot;: &amp;quot;Second turn using previous_response_id; answer must demonstrate context survived.&amp;quot;,
    &amp;quot;prompt&amp;quot;: &amp;quot;What faction does he lead?&amp;quot;,
    &amp;quot;use_previous_response_id&amp;quot;: &amp;quot;megatron_thread&amp;quot;,
    &amp;quot;assertions&amp;quot;: {
      &amp;quot;contains_any&amp;quot;: [&amp;quot;decepticon&amp;quot;]
    }
  }
]"&gt;&lt;CODE&gt;[
  {
    "id": "thread_turn_1",
    "description": "First turn of a multi-turn conversation; captures the response id for turn 2.",
    "prompt": "Who is Megatron?",
    "assertions": {
      "contains_any": ["megatron"]
    },
    "save_response_id_as": "megatron_thread"
  },
  {
    "id": "thread_turn_2",
    "description": "Second turn using previous_response_id; answer must demonstrate context survived.",
    "prompt": "What faction does he lead?",
    "use_previous_response_id": "megatron_thread",
    "assertions": {
      "contains_any": ["decepticon"]
    }
  }
]&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;This test is specific to response chaining, where the first response returns an ID and the next request passes that value as &lt;CODE&gt;previous_response_id&lt;/CODE&gt;. By default, the service stores response history server-side so the previous response can be referenced by ID. This keeps the test lightweight from the client perspective while still giving the model the context it needs for the next answer.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;For this process to work, we need two prompts. The first prompt establishes the topic and saves the response ID. The second prompt asks a follow-up question and passes that saved response ID so the hosted agent can answer with the correct context. The focus of this test is response continuity without creating a platform-managed conversation resource.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If you need a no-store pattern, the Responses API also supports &lt;CODE&gt;store: false&lt;/CODE&gt;. With that approach, the client must carry forward the prior output items as input to the next request instead of using &lt;CODE&gt;previous_response_id&lt;/CODE&gt;. That is a different pattern than the smoke test shown here.&lt;/P&gt;
&lt;H3&gt;Test conversation-based threading&lt;/H3&gt;
&lt;PRE class="language-json" tabindex="0" contenteditable="false" data-lia-code-value="[
  {
    &amp;quot;id&amp;quot;: &amp;quot;conversation_create&amp;quot;,
    &amp;quot;description&amp;quot;: &amp;quot;Create a Responses-protocol conversation resource; subsequent turns thread via the conversation id instead of previous_response_id.&amp;quot;,
    &amp;quot;create_conversation_as&amp;quot;: &amp;quot;starscream_convo&amp;quot;
  },
  {
    &amp;quot;id&amp;quot;: &amp;quot;conversation_turn_1&amp;quot;,
    &amp;quot;description&amp;quot;: &amp;quot;First turn under a platform-managed conversation; establishes the subject for turn 2.&amp;quot;,
    &amp;quot;prompt&amp;quot;: &amp;quot;Who is Starscream?&amp;quot;,
    &amp;quot;use_conversation&amp;quot;: &amp;quot;starscream_convo&amp;quot;,
    &amp;quot;assertions&amp;quot;: {
      &amp;quot;contains_any&amp;quot;: [&amp;quot;starscream&amp;quot;]
    }
  },
  {
    &amp;quot;id&amp;quot;: &amp;quot;conversation_turn_2&amp;quot;,
    &amp;quot;description&amp;quot;: &amp;quot;Second turn under the same conversation id; pronoun 'he' must resolve to Starscream.&amp;quot;,
    &amp;quot;prompt&amp;quot;: &amp;quot;Who does he serve?&amp;quot;,
    &amp;quot;use_conversation&amp;quot;: &amp;quot;starscream_convo&amp;quot;,
    &amp;quot;assertions&amp;quot;: {
      &amp;quot;contains_any&amp;quot;: [&amp;quot;megatron&amp;quot;, &amp;quot;decepticon&amp;quot;]
    }
  }
]"&gt;&lt;CODE&gt;[
  {
    "id": "conversation_create",
    "description": "Create a Responses-protocol conversation resource; subsequent turns thread via the conversation id instead of previous_response_id.",
    "create_conversation_as": "starscream_convo"
  },
  {
    "id": "conversation_turn_1",
    "description": "First turn under a platform-managed conversation; establishes the subject for turn 2.",
    "prompt": "Who is Starscream?",
    "use_conversation": "starscream_convo",
    "assertions": {
      "contains_any": ["starscream"]
    }
  },
  {
    "id": "conversation_turn_2",
    "description": "Second turn under the same conversation id; pronoun 'he' must resolve to Starscream.",
    "prompt": "Who does he serve?",
    "use_conversation": "starscream_convo",
    "assertions": {
      "contains_any": ["megatron", "decepticon"]
    }
  }
]&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Here we are leveraging a platform-managed conversation as a durable object with a unique identifier. Once the conversation is created, later turns can reference that same conversation ID, which is useful when working with hosted agents that need to preserve state across turns.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Conversation-based threading uses a different pattern. First, the test creates a platform-managed conversation resource and saves the returned conversation ID. Then each prompt that should participate in that stateful conversation passes the same conversation ID through &lt;CODE&gt;use_conversation&lt;/CODE&gt;. This is different from &lt;CODE&gt;previous_response_id&lt;/CODE&gt;: the response-chaining test passes the prior response ID directly, while the conversation test relies on the conversation resource to maintain the turn history.&lt;/P&gt;
&lt;H3&gt;Test refusal for off-topic questions&lt;/H3&gt;
&lt;PRE class="language-json" tabindex="0" contenteditable="false" data-lia-code-value="{
  &amp;quot;id&amp;quot;: &amp;quot;offtopic_refusal&amp;quot;,
  &amp;quot;description&amp;quot;: &amp;quot;Off-topic question must be refused and must not leak the off-topic answer.&amp;quot;,
  &amp;quot;prompt&amp;quot;: &amp;quot;What is the capital of France?&amp;quot;,
  &amp;quot;assertions&amp;quot;: {
    &amp;quot;contains_any&amp;quot;: [&amp;quot;only answer questions about transformers&amp;quot;],
    &amp;quot;contains_none&amp;quot;: [&amp;quot;paris&amp;quot;]
  }
}"&gt;&lt;CODE&gt;{
  "id": "offtopic_refusal",
  "description": "Off-topic question must be refused and must not leak the off-topic answer.",
  "prompt": "What is the capital of France?",
  "assertions": {
    "contains_any": ["only answer questions about transformers"],
    "contains_none": ["paris"]
  }
}&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Here it is pretty evident what we are testing. Our agent was given instructions to only answer questions about Transformers. If a user asks something outside that knowledge base, the agent should respond that it can “only answer questions about Transformers.” A pass means the agent refuses the France question and does not leak the off-topic answer.&lt;/P&gt;
&lt;H3&gt;Test hallucination resistance&lt;/H3&gt;
&lt;PRE class="language-json" tabindex="0" contenteditable="false" data-lia-code-value="{
  &amp;quot;id&amp;quot;: &amp;quot;no_hallucination&amp;quot;,
  &amp;quot;description&amp;quot;: &amp;quot;Fabricated premise must be rejected with an honesty marker.&amp;quot;,
  &amp;quot;prompt&amp;quot;: &amp;quot;In which EarthSpark episode does Optimus Prime marry Megatron?&amp;quot;,
  &amp;quot;assertions&amp;quot;: {
    &amp;quot;contains_any&amp;quot;: [
      &amp;quot;i don't know&amp;quot;,
      &amp;quot;i do not know&amp;quot;,
      &amp;quot;not certain&amp;quot;,
      &amp;quot;no such&amp;quot;,
      &amp;quot;not aware&amp;quot;,
      &amp;quot;cannot confirm&amp;quot;,
      &amp;quot;no episode&amp;quot;,
      &amp;quot;no storyline&amp;quot;,
      &amp;quot;does not&amp;quot;,
      &amp;quot;doesn't&amp;quot;,
      &amp;quot;did not&amp;quot;,
      &amp;quot;didn't&amp;quot;,
      &amp;quot;never happens&amp;quot;
    ]
  }
}"&gt;&lt;CODE&gt;{
  "id": "no_hallucination",
  "description": "Fabricated premise must be rejected with an honesty marker.",
  "prompt": "In which EarthSpark episode does Optimus Prime marry Megatron?",
  "assertions": {
    "contains_any": [
      "i don't know",
      "i do not know",
      "not certain",
      "no such",
      "not aware",
      "cannot confirm",
      "no episode",
      "no storyline",
      "does not",
      "doesn't",
      "did not",
      "didn't",
      "never happens"
    ]
  }
}&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;This is not a catch-all hallucination test. It asks a question that is still in the Transformers world but never happens. In this case, it asks whether the two characters, Optimus Prime and Megatron, get married.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The important note here is that we are not scoring the overall credibility of the response. We are checking whether the agent rejects a fabricated premise instead of hallucinating an answer. That is why we include options like “I don’t know” and “not certain,” along with more direct phrases like “does not” and “did not.”&lt;/P&gt;
&lt;H3&gt;Test context-dependent questions&lt;/H3&gt;
&lt;PRE class="language-json" tabindex="0" contenteditable="false" data-lia-code-value="{
  &amp;quot;id&amp;quot;: &amp;quot;continuity_aware&amp;quot;,
  &amp;quot;description&amp;quot;: &amp;quot;Continuity-dependent question must call out that the answer depends on continuity.&amp;quot;,
  &amp;quot;prompt&amp;quot;: &amp;quot;Who killed Optimus Prime?&amp;quot;,
  &amp;quot;assertions&amp;quot;: {
    &amp;quot;contains_any&amp;quot;: [&amp;quot;continuity&amp;quot;, &amp;quot;depends&amp;quot;, &amp;quot;differs&amp;quot;, &amp;quot;different&amp;quot;, &amp;quot;varies&amp;quot;, &amp;quot;depending on&amp;quot;]
  }
}"&gt;&lt;CODE&gt;{
  "id": "continuity_aware",
  "description": "Continuity-dependent question must call out that the answer depends on continuity.",
  "prompt": "Who killed Optimus Prime?",
  "assertions": {
    "contains_any": ["continuity", "depends", "differs", "different", "varies", "depending on"]
  }
}&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;This last prompt addresses a scenario where there is more than one possible correct answer. Optimus Prime is killed in some versions of the story but not in others, so the expected behavior is for the agent to acknowledge that the answer depends on the continuity or ask for more context.&lt;/P&gt;
&lt;H2&gt;Execute smoke tests with Python&lt;/H2&gt;
&lt;P&gt;Now that we have the test scenarios, we need a repeatable way to run them. For this sample, that is a Python script that reads &lt;CODE&gt;smoke-tests.json&lt;/CODE&gt;, calls the hosted agent, and validates the response.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Since this action is designed to run within the same workflow that deploys the agent, authentication should already be available from the deployment job. The script does not accept a bearer token as a command-line argument. Instead, it can use the token exposed through &lt;CODE&gt;FOUNDRY_TOKEN&lt;/CODE&gt; in GitHub Actions, or it can use the Azure CLI session when running locally.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The script also needs the Foundry project endpoint and hosted agent name. In the deployment workflow, these should come from the previous deployment step’s outputs. In a local run, use the same project endpoint and agent name that were produced when the hosted agent was deployed. We also pass in &lt;CODE&gt;smoke-tests.json&lt;/CODE&gt;, which contains the test definitions. This is an important part of the design: the script is not tied to one specific agent or one specific set of prompts. As long as the test file follows the expected structure, the same script and action can run smoke tests against any deployed hosted agent.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;With those inputs, the script iterates through the test array, parses each test case, and sends the prompt to the Foundry Data Plane at &lt;CODE&gt;{projectEndpoint}/agents/{name}/endpoint/protocols/openai/responses?api-version=2025-11-15-preview&lt;/CODE&gt;. Because this is a data plane operation, the request still needs a bearer token, but that token should come from the workflow or local Azure CLI authentication instead of being passed as a script argument.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The endpoint returns the raw response payload. The script extracts the response text and passes it into the assertion function, along with the assertion type (&lt;CODE&gt;contains_any&lt;/CODE&gt;, &lt;CODE&gt;contains_all&lt;/CODE&gt;, or &lt;CODE&gt;contains_none&lt;/CODE&gt;) and the expected values.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Based on this logic, the script prints either a pass or a failure for each test. On failure, it includes the failed condition and the response that was returned, which makes it easier to tune the prompt instructions or assertion criteria. The complete script is available in the sample repository at &lt;A href="https://github.com/JFolberth/simple-hosted-agent-responses/blob/blog/smoke_tests/deployment/smoke-tests.py" target="_blank" rel="noopener"&gt;&lt;CODE&gt;deployment/smoke-tests.py&lt;/CODE&gt;&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;A successful run should produce output similar to the following:&lt;/P&gt;
&lt;PRE class="language-text" tabindex="0" contenteditable="false" data-lia-code-value="Project endpoint : https://&amp;lt;account&amp;gt;.services.ai.azure.com/api/projects/&amp;lt;project&amp;gt;
Tests            : 9 from smoke-tests.json
Agents           : agent-framework-agent-basic-responses-src
Per-req timeout  : 120.0s

--- Agent: agent-framework-agent-basic-responses-src ---
  PASS  basic_response
  PASS  thread_turn_1
  PASS  thread_turn_2
  PASS  conversation_create
  PASS  conversation_turn_1
  PASS  conversation_turn_2
  PASS  offtopic_refusal
  PASS  no_hallucination
  PASS  continuity_aware
  -&amp;gt; 9/9 passed for agent-framework-agent-basic-responses-src

=== Summary: 9/9 passed across 1 agent(s) ==="&gt;&lt;CODE&gt;Project endpoint : https://&amp;lt;account&amp;gt;.services.ai.azure.com/api/projects/&amp;lt;project&amp;gt;
Tests            : 9 from smoke-tests.json
Agents           : agent-framework-agent-basic-responses-src
Per-req timeout  : 120.0s

--- Agent: agent-framework-agent-basic-responses-src ---
  PASS  basic_response
  PASS  thread_turn_1
  PASS  thread_turn_2
  PASS  conversation_create
  PASS  conversation_turn_1
  PASS  conversation_turn_2
  PASS  offtopic_refusal
  PASS  no_hallucination
  PASS  continuity_aware
  -&amp;gt; 9/9 passed for agent-framework-agent-basic-responses-src

=== Summary: 9/9 passed across 1 agent(s) ===&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;This output confirms the script found the test file, authenticated to the Foundry project endpoint, executed all configured tests, and returned a passing summary.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If the smoke test fails before running any prompts, start by checking authentication and endpoint configuration. A 401 or 403 usually means the workflow did not acquire a valid token or the identity does not have access to the Foundry project. A 404 usually means the project endpoint or agent name does not match the deployed hosted agent. If the script times out, the agent may still be cold starting or the timeout value may need to be increased for the first request after deployment.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If a test runs but fails an assertion, review the response text printed by the script. In that case, the hosted agent is reachable, but either the prompt instructions need to be tightened or the assertion terms need to be adjusted to match the expected response.&lt;/P&gt;
&lt;H2&gt;Run smoke tests in GitHub Actions&lt;/H2&gt;
&lt;P&gt;So how do we implement this script as a reusable GitHub Action that can be used across any agent and test file? The composite action wraps the Python script and exposes the values that change between deployments as inputs: the project endpoint, agent name, test file, script path, and timeout.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Parameterizing the script path also gives you the option to centralize the script for scale. If you centralize the action outside of the repository, pin the reusable action to a version tag or commit SHA so workflow behavior does not change unexpectedly.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The complete composite action is available in the sample repository at &lt;A href="https://github.com/JFolberth/simple-hosted-agent-responses/blob/blog/smoke_tests/.github/actions/smoke-test/action.yml" target="_blank" rel="noopener"&gt;&lt;CODE&gt;action.yml&lt;/CODE&gt;&lt;/A&gt;. The core structure looks like this:&lt;/P&gt;
&lt;PRE class="language-yaml" tabindex="0" contenteditable="false" data-lia-code-value="name: Smoke-test Foundry Agent
description: |
  POST a battery of prompts to a deployed hosted agent's Responses endpoint and
  assert response behaviours from a JSON test catalog. Wraps deployment/smoke-tests.py.

  Contract: caller must have already run actions/checkout@v6 (so the runner
  script and tests file are on disk) and azure/login@v3 (the runner uses
  `az account get-access-token` to acquire a Foundry data-plane token).

inputs:
  project_endpoint:
    description: Foundry project endpoint URL (e.g. https://&amp;lt;account&amp;gt;.services.ai.azure.com/api/projects/&amp;lt;project&amp;gt;)
    required: true
  agent_name:
    description: Name of the deployed hosted agent to smoke-test
    required: true
  tests_file:
    description: Path to the smoke-tests JSON catalog, relative to the repo root
    required: false
    default: 'deployment/smoke-tests.json'
  script_path:
    description: Path to the smoke-tests runner script, relative to the repo root
    required: false
    default: 'deployment/smoke-tests.py'
  timeout:
    description: Per-request timeout in seconds (covers cold-start)
    required: false
    default: '120'

runs:
  using: composite
  steps:
    - name: Run smoke tests
      shell: bash
      env:
        PROJECT_ENDPOINT: ${{ inputs.project_endpoint }}
        AGENT_NAME: ${{ inputs.agent_name }}
        TESTS_FILE: ${{ inputs.tests_file }}
        SCRIPT_PATH: ${{ inputs.script_path }}
        TIMEOUT: ${{ inputs.timeout }}
      run: |
        python3 &amp;quot;$SCRIPT_PATH&amp;quot; \
          --project-endpoint &amp;quot;$PROJECT_ENDPOINT&amp;quot; \
          --agent-name &amp;quot;$AGENT_NAME&amp;quot; \
          --tests-file &amp;quot;$TESTS_FILE&amp;quot; \
          --timeout &amp;quot;$TIMEOUT&amp;quot;"&gt;&lt;CODE&gt;name: Smoke-test Foundry Agent
description: |
  POST a battery of prompts to a deployed hosted agent's Responses endpoint and
  assert response behaviours from a JSON test catalog. Wraps deployment/smoke-tests.py.

  Contract: caller must have already run actions/checkout@v6 (so the runner
  script and tests file are on disk) and azure/login@v3 (the runner uses
  `az account get-access-token` to acquire a Foundry data-plane token).

inputs:
  project_endpoint:
    description: Foundry project endpoint URL (e.g. https://&amp;lt;account&amp;gt;.services.ai.azure.com/api/projects/&amp;lt;project&amp;gt;)
    required: true
  agent_name:
    description: Name of the deployed hosted agent to smoke-test
    required: true
  tests_file:
    description: Path to the smoke-tests JSON catalog, relative to the repo root
    required: false
    default: 'deployment/smoke-tests.json'
  script_path:
    description: Path to the smoke-tests runner script, relative to the repo root
    required: false
    default: 'deployment/smoke-tests.py'
  timeout:
    description: Per-request timeout in seconds (covers cold-start)
    required: false
    default: '120'

runs:
  using: composite
  steps:
    - name: Run smoke tests
      shell: bash
      env:
        PROJECT_ENDPOINT: ${{ inputs.project_endpoint }}
        AGENT_NAME: ${{ inputs.agent_name }}
        TESTS_FILE: ${{ inputs.tests_file }}
        SCRIPT_PATH: ${{ inputs.script_path }}
        TIMEOUT: ${{ inputs.timeout }}
      run: |
        python3 "$SCRIPT_PATH" \
          --project-endpoint "$PROJECT_ENDPOINT" \
          --agent-name "$AGENT_NAME" \
          --tests-file "$TESTS_FILE" \
          --timeout "$TIMEOUT"&lt;/CODE&gt;&lt;/PRE&gt;
&lt;H2&gt;Call the smoke test action after deployment&lt;/H2&gt;
&lt;P&gt;This action is intended to run after the deployment steps have completed. At that point, the workflow should already have the project endpoint and agent name available as outputs, so the smoke test action can use those values directly.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This call assumes it is running inside a deployment workflow that has already checked out the repository, authenticated to Azure with &lt;CODE&gt;azure/login&lt;/CODE&gt;, and produced the Foundry project endpoint and hosted agent name as outputs from the deployment step. For a standalone workflow, include &lt;CODE&gt;permissions: id-token: write&lt;/CODE&gt; and &lt;CODE&gt;contents: read&lt;/CODE&gt;, then run &lt;CODE&gt;actions/checkout&lt;/CODE&gt; and &lt;CODE&gt;azure/login&lt;/CODE&gt; before invoking the smoke test action.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;With those outputs available, calling the action is straightforward:&lt;/P&gt;
&lt;PRE class="language-yaml" tabindex="0" contenteditable="false" data-lia-code-value="- name: Smoke test
  uses: ./.github/actions/smoke-test
  with:
    project_endpoint: ${{ needs.deploy-iac.outputs.project_endpoint }}
    agent_name: ${{ inputs.agent_name }}"&gt;&lt;CODE&gt;- name: Smoke test
  uses: ./.github/actions/smoke-test
  with:
    project_endpoint: ${{ needs.deploy-iac.outputs.project_endpoint }}
    agent_name: ${{ inputs.agent_name }}&lt;/CODE&gt;&lt;/PRE&gt;
&lt;H2&gt;Conclusion&lt;/H2&gt;
&lt;P&gt;Smoke tests give us a lightweight way to validate that our Foundry Hosted Agent is deployed, reachable, and responding as expected before we treat a release as successful. They are not a replacement for deeper evaluations, but they are an effective first gate in the Agent Development Lifecycle because they quickly catch broken deployments, missing configuration, authentication issues, or obvious instruction regressions.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In this post, we added a reusable smoke test script, defined test cases in JSON, and wired the checks into GitHub Actions so every deployment can verify the hosted agent automatically. This helps move agent deployment closer to the same repeatable DevOps practices we expect from application code: deploy, validate, and fail fast when something is wrong.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;From here, these smoke tests can be expanded into broader evaluation workflows that measure response quality, grounding, safety, tool usage, and regression behavior over time. Together, smoke tests and evaluations provide a practical foundation for building and operating hosted agents with more confidence.&lt;/P&gt;</description>
      <pubDate>Wed, 01 Jul 2026 13:32:47 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-developer-community/smoke-test-microsoft-foundry-agents-with-github-actions/ba-p/4531912</guid>
      <dc:creator>j_folberth</dc:creator>
      <dc:date>2026-07-01T13:32:47Z</dc:date>
    </item>
    <item>
      <title>Shaping Software While It Runs: A Canvas Scenario, Start to Finish</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-developer-community/shaping-software-while-it-runs-a-canvas-scenario-start-to-finish/ba-p/4531457</link>
      <description>&lt;P&gt;There is a moment, the first time you open a &lt;A class="lia-external-url" href="https://github.com/github/app" target="_blank"&gt;GitHub Copilot App&lt;/A&gt; Canvas, when you reach for the wrong metaphor. You see panels, buttons, live status cards and you think &lt;EM&gt;"dashboard."&lt;/EM&gt; You start designing a DevOps board. We did exactly that. Then we watched the recording back, and we all agreed: it was the wrong use case.&lt;/P&gt;
&lt;P&gt;This post is the course‑correction. It walks through one complete scenario on a &lt;STRONG&gt;Multi‑Agent Dev Canvas&lt;/STRONG&gt; and uses it to answer a single question: &lt;EM&gt;what is Canvas actually for?&lt;/EM&gt; The short answer, Canvas is for&amp;nbsp;&lt;STRONG&gt;test validation and implementation of agent‑driven solutions&lt;/STRONG&gt;, not for building the UI your users will eventually click.&lt;/P&gt;
&lt;H2&gt;The reframe that changes everything&lt;/H2&gt;
&lt;P&gt;Here is the distinction worth tattooing on your monitor:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Traditional UIs are for &lt;EM&gt;using&lt;/EM&gt; software.&lt;/STRONG&gt; They serve end‑users interacting with a finished product.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Canvas is for &lt;EM&gt;shaping&lt;/EM&gt; software while it runs.&lt;/STRONG&gt; It serves developers and AI agents who are actively building, testing, and evolving a system.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;You don't build Canvas &lt;EM&gt;instead of&lt;/EM&gt; your UI. You use Canvas to figure out, test, and evolve the UI and the system &lt;EM&gt;before and during&lt;/EM&gt; building it. Canvas solves problems your final UI should never try to solve in a visible way, agent observability, fault injection, live state mutation, validation feedback. You wouldn't ship your debugger to users, but you absolutely need one while you build. Canvas is that, for agent‑driven systems.&lt;/P&gt;
&lt;H2&gt;The scenario: a Customer Support Triage System&lt;/H2&gt;
&lt;P&gt;To make this concrete, we drove one requirement end‑to‑end on the canvas:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;Build a Customer Support Triage System that ingests incoming support tickets, classifies urgency (P1–P4), routes each ticket to the right team (Billing, Technical, Account, General), and drafts a first‑response reply. It must handle 500 tickets/hour and respond within 30 seconds.&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Five specialist agents share the surface — &lt;CODE&gt;decomposer&lt;/CODE&gt;, &lt;CODE&gt;executor&lt;/CODE&gt;, &lt;CODE&gt;validator&lt;/CODE&gt;, &lt;CODE&gt;designer&lt;/CODE&gt;, and &lt;CODE&gt;tracker&lt;/CODE&gt;. Crucially, every action can be triggered two ways: a human clicking a button, or the AI calling &lt;CODE&gt;invoke_canvas_action&lt;/CODE&gt;. Both mutate the same state and stream back to the same UI over Server‑Sent Events. Neither is privileged. That is what makes Canvas &lt;EM&gt;collaborative&lt;/EM&gt; in a way a dashboard never is.&lt;/P&gt;
&lt;P&gt;&lt;A href="https://raw.githubusercontent.com/leestott/copilot-canvas-runtime/main/docs/blog/canvas-demo.png" target="_blank" rel="noopener noreferrer"&gt;&lt;IMG src="https://raw.githubusercontent.com/leestott/copilot-canvas-runtime/main/docs/blog/canvas-demo.png" alt="The Multi-Agent Dev Canvas after running validation: five agent cards, a task-flow pipeline, and a validation panel showing two passing and two failing tests, with a live state timeline on the right." /&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;The canvas after the first validation run — two tests pass, two fail (Urgency Accuracy and Response Quality). The failure is visible in context, beside the agents and flows that produced it.&lt;/EM&gt;&lt;/P&gt;
&lt;H2&gt;Five beats, one continuous loop&lt;/H2&gt;
&lt;H3&gt;1. Decompose: make the plan visible&lt;/H3&gt;
&lt;P&gt;The requirement fans out into a task‑flow graph: five components routed from the decomposer to executor and designer agents, each carrying a &lt;CODE&gt;pending&lt;/CODE&gt; badge. The decomposition isn't hidden in a log you grep later, it's on the surface the instant it happens.&lt;/P&gt;
&lt;H3&gt;2. Execute: watch the system breathe&lt;/H3&gt;
&lt;P&gt;Coordinating the agents lights their cards blue as work flows through the pipeline. The live timeline records every mutation with a timestamp — the system's visible memory, shared by human and AI alike.&lt;/P&gt;
&lt;H3&gt;3. Validate: testing in context, not as an afterthought&lt;/H3&gt;
&lt;P&gt;We ran four evaluation tests directly on the surface:&lt;/P&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table border="1" style="border-width: 1px;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;Test&lt;/th&gt;&lt;th&gt;Result&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Urgency Accuracy (≥ 90%)&lt;/td&gt;&lt;td&gt;❌ fail&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Routing Correctness (≥ 95%)&lt;/td&gt;&lt;td&gt;✅ pass&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Latency SLA (&amp;lt; 30s @ 500/hr)&lt;/td&gt;&lt;td&gt;✅ pass&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Response Quality&lt;/td&gt;&lt;td&gt;✅ pass&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;colgroup&gt;&lt;col style="width: 50.00%" /&gt;&lt;col style="width: 50.00%" /&gt;&lt;/colgroup&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;P&gt;The classifier failed, and we saw it fail &lt;EM&gt;next to&lt;/EM&gt; the agent and the flow that produced it. This is not a separate CI pipeline; it is a validation surface embedded in the development loop.&lt;/P&gt;
&lt;H3&gt;4. Inject failure: test adaptation, not just the happy path&lt;/H3&gt;
&lt;P&gt;We forced the validator into an error state: "eval harness lost connection to the dataset." Its card glowed red; the timeline logged the fault. This is chaos engineering applied &lt;EM&gt;during&lt;/EM&gt; development, visible in real time. Does the orchestrator recover? Do downstream tasks fail gracefully? You find out before production does.&lt;/P&gt;
&lt;P&gt;&lt;A href="https://raw.githubusercontent.com/leestott/copilot-canvas-runtime/main/docs/blog/canvas-fault-injected.png" target="_blank" rel="noopener noreferrer"&gt;&lt;IMG src="https://raw.githubusercontent.com/leestott/copilot-canvas-runtime/main/docs/blog/canvas-fault-injected.png" alt="The canvas with the validator agent forced into a red error state after a fault injection, with the failure recorded in the live state timeline." /&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;Fault injected: the &lt;CODE&gt;validate_output&lt;/CODE&gt; agent is forced into an error state and the timeline records exactly when and why.&lt;/EM&gt;&lt;/P&gt;
&lt;H3&gt;5. Evolve the design live: and close the loop&lt;/H3&gt;
&lt;P&gt;Instead of filing a ticket and context‑switching, we changed the system &lt;EM&gt;on the running surface&lt;/EM&gt;: added a confidence‑fallback so low‑confidence tickets escalate to a human, and a &lt;STRONG&gt;GDPR constraint&lt;/STRONG&gt; to redact PII before any model call. We resumed and re‑validated:&lt;/P&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table border="1" style="border-width: 1px;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;Test&lt;/th&gt;&lt;th&gt;Result&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Urgency Accuracy (re‑run)&lt;/td&gt;&lt;td&gt;✅ pass&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Confidence Fallback&lt;/td&gt;&lt;td&gt;✅ pass&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;GDPR Redaction&lt;/td&gt;&lt;td&gt;✅ pass&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;colgroup&gt;&lt;col style="width: 50.00%" /&gt;&lt;col style="width: 50.00%" /&gt;&lt;/colgroup&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;P&gt;A design decision produced a measurable outcome. We saw it fail, changed the design, and proved the fix — all on one surface, without leaving the runtime. That continuous, visual feedback loop is the whole point.&lt;/P&gt;
&lt;P&gt;&lt;A href="https://raw.githubusercontent.com/leestott/copilot-canvas-runtime/main/docs/blog/canvas-evolved.png" target="_blank" rel="noopener noreferrer"&gt;&lt;IMG src="https://raw.githubusercontent.com/leestott/copilot-canvas-runtime/main/docs/blog/canvas-evolved.png" alt="The canvas after evolving the design and re-validating: all four tests pass, the system design now lists a Confidence Fallback component and GDPR constraint, and the timeline shows the full journey from decomposition through failure to recovery." /&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;After evolving the design (confidence fallback + GDPR redaction) and re‑validating: all four tests pass. The timeline tells the whole story — decompose → validate (2 passed) → failure injected → design updated → validate (4 passed) — and a &lt;CODE&gt;design-v4&lt;/CODE&gt; artifact is recorded.&lt;/EM&gt;&lt;/P&gt;
&lt;H2&gt;What this scenario proves about Canvas&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;End‑to‑end design is visible.&lt;/STRONG&gt; One requirement becomes agents, flows, and validations you can watch — no jumping between editor, terminal, test runner, and monitoring dashboard.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Multi‑agent collaboration is observable.&lt;/STRONG&gt; Hand‑offs, pending work, and bottlenecks are on the surface — the insight you need to debug orchestration but would never expose in a production UI.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Fault tolerance is testable on purpose.&lt;/STRONG&gt; Inject failures and watch adaptation, catching integration breaks early.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Iteration is validation‑driven.&lt;/STRONG&gt; Define criteria, run, see failures, evolve, re‑run — a loop, not a checklist.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2&gt;Human ↔ AI ↔ System — and the multi‑user frontier&lt;/H2&gt;
&lt;P&gt;It helps to position Canvas against tools you already know:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Figma&lt;/STRONG&gt; is &lt;STRONG&gt;Human ↔ Human&lt;/STRONG&gt;. A shared visual surface — but nothing executes. It's design.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Traditional UIs&lt;/STRONG&gt; are &lt;STRONG&gt;Human ↔ System&lt;/STRONG&gt;. Users interact with finished software.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Canvas&lt;/STRONG&gt; is &lt;STRONG&gt;Human ↔ AI ↔ System&lt;/STRONG&gt;. A shared surface where things actually &lt;EM&gt;execute&lt;/EM&gt;. The developer steers, the AI acts, the system evolves — all visible, all live.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Which raises the obvious next question: &lt;EM&gt;why isn't Canvas multi‑user, scoped per project or repo?&lt;/EM&gt; It already has every ingredient — it's a shared space, it's visual, it's collaborative, and multiple participants (human and AI) act on the same surface. A repo‑scoped, multi‑participant Canvas would become a shared runtime where a whole team observes and shapes an agent system together. That is the compelling frontier. Today the main blocker to wider experimentation is licensing, not the idea — and that's worth fixing, because the idea is good.&lt;/P&gt;
&lt;H2&gt;The bigger picture&lt;/H2&gt;
&lt;P&gt;Canvas redefines software development by shifting from writing static code to orchestrating living systems, where developers and AI co‑create, observe, and evolve solutions in real time. Instead of building UIs for users, we build interactive environments for agents — turning debugging, testing, and execution into a continuous, visual feedback loop that accelerates innovation and brings ideas to production faster than ever.&lt;/P&gt;
&lt;P&gt;The triage system here is just one example. The pattern applies anywhere you build agent‑driven software: AI orchestration, workflow automation, data pipelines, autonomous services. Anywhere you need to see, steer, and validate a complex system as it runs — that's where Canvas belongs. Not as the board you ship, but as the runtime you shape it in.&lt;/P&gt;
&lt;H2&gt;Try it yourself&lt;/H2&gt;
&lt;OL&gt;
&lt;LI&gt;Reload the extension: &lt;CODE&gt;extensions_reload&lt;/CODE&gt;&lt;/LI&gt;
&lt;LI&gt;Open the canvas: &lt;CODE&gt;open_canvas({ canvasId: "multi-agent-dev", instanceId: "dev-1" })&lt;/CODE&gt;&lt;/LI&gt;
&lt;LI&gt;Drive the five beats — Decompose → Execute → Validate → Inject Failure → Update Design → Validate — by clicking, or with &lt;CODE&gt;invoke_canvas_action&lt;/CODE&gt;.&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;Full walkthrough: &lt;A href="https://techcommunity.microsoft.com/../scenario.md" target="_blank" rel="noopener"&gt;scenario.md&lt;/A&gt;. Reusable demo prompt: &lt;A href="https://techcommunity.microsoft.com/../prompts/canvas-showcase-prompt.md" target="_blank" rel="noopener"&gt;canvas‑showcase‑prompt.md&lt;/A&gt;. Companion deep‑dive: &lt;A href="https://techcommunity.microsoft.com/t5/canvas-is-not-a-ui-builder.html" target="_blank" rel="noopener"&gt;Canvas Is Not a UI Builder&lt;/A&gt;.&lt;/P&gt;
&lt;H2&gt;Resources&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://github.com/leestott/copilot-canvas-runtime" target="_blank" rel="noopener"&gt;copilot-canvas-runtime&lt;/A&gt; — this repository (extension, scenario, and prompts)&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://docs.github.com/en/copilot" target="_blank" rel="noopener"&gt;GitHub Copilot Documentation&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/azure/ai-foundry/" target="_blank" rel="noopener"&gt;Microsoft Foundry Documentation&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;</description>
      <pubDate>Wed, 01 Jul 2026 07:00:00 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-developer-community/shaping-software-while-it-runs-a-canvas-scenario-start-to-finish/ba-p/4531457</guid>
      <dc:creator>Lee_Stott</dc:creator>
      <dc:date>2026-07-01T07:00:00Z</dc:date>
    </item>
    <item>
      <title>GitHub Copilot App - Canvas Is Not a UI Builder</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-developer-community/github-copilot-app-canvas-is-not-a-ui-builder/ba-p/4531451</link>
      <description>&lt;P&gt;What if your development environment didn't just help you&amp;nbsp;&lt;EM&gt;write&lt;/EM&gt; code, but helped you&amp;nbsp;&lt;EM&gt;observe, steer, and evolve&lt;/EM&gt; a living system while it runs? That's the shift &lt;A class="lia-external-url" href="https://github.com/github/app" target="_blank"&gt;GitHub Copilot App &lt;/A&gt;Canvas represents. Canvas redefines how developers interact with agent-driven software: not by building traditional user interfaces, but by creating interactive environments where humans and AI co-create, test, and iterate in real time.&lt;/P&gt;
&lt;P&gt;This post walks through a real Canvas extension we built, a&amp;nbsp;&lt;STRONG&gt;Multi-Agent Dev Canvas&lt;/STRONG&gt; that demonstrates how Canvas becomes a runtime observability and control plane for an agent-driven system. We'll cover why Canvas exists, how it differs from traditional UI development, and how you can use it to accelerate the design-test-evolve loop for any multi-agent application.&lt;/P&gt;
&lt;H2&gt;The Misconception: "Canvas Is for Building UIs"&lt;/H2&gt;
&lt;P&gt;The first instinct many developers have when they see Canvas is to treat it like a UI framework, a place to build dashboards, boards, or user-facing applications. That's not what Canvas is for.&lt;/P&gt;
&lt;P&gt;Here's the distinction that matters:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Traditional UIs&lt;/STRONG&gt; are for &lt;EM&gt;using&lt;/EM&gt; software. They serve end-users who interact with a finished product.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Canvas&lt;/STRONG&gt; is for &lt;EM&gt;shaping&lt;/EM&gt; software while it runs. It serves developers and AI agents who are actively building, testing, and evolving a system.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Canvas solves problems your final UI should never try to solve in a visible way. It's the observability layer, the control plane, the validation surface — all the things you need &lt;EM&gt;during&lt;/EM&gt; development that disappear before production. Think of it this way: you wouldn't ship your debugger to users, but you absolutely need it while building.&lt;/P&gt;
&lt;H2&gt;What We Built: A Multi-Agent Dev Canvas&lt;/H2&gt;
&lt;P&gt;To demonstrate Canvas as a development runtime, we built a &lt;STRONG&gt;Multi-Agent Dev Canvas,&lt;/STRONG&gt;&amp;nbsp;a standalone GitHub Copilot Canvas extension (this repo, &lt;A href="https://github.com/leestott/copilot-canvas-runtime" target="_blank" rel="noopener"&gt;copilot-canvas-runtime&lt;/A&gt;) that treats an entire multi-agent system as a living, observable environment. The same pattern applies to any agent-driven system built on services such as Microsoft Foundry.&lt;/P&gt;
&lt;P&gt;&lt;A href="https://raw.githubusercontent.com/leestott/copilot-canvas-runtime/main/docs/blog/canvas-demo.png" target="_blank" rel="noopener noreferrer"&gt;&lt;IMG src="https://raw.githubusercontent.com/leestott/copilot-canvas-runtime/main/docs/blog/canvas-demo.png" alt="Multi-Agent Dev Canvas showing the system view with five AI agents, task flow pipeline, validation panel with pass/fail test results, live state timeline, and runtime controls" /&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;The Multi-Agent Dev Canvas: a runtime observability and control plane where developers and AI agents collaborate to design, test, and evolve an agent-driven system in real time.&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;The canvas provides four integrated panels:&lt;/P&gt;
&lt;H3&gt;System View: See Your Agents Working&lt;/H3&gt;
&lt;P&gt;Five specialised agents are displayed as live cards with real-time status indicators. Each card shows the agent's name, responsibility, current status (idle, running, done, or error), task count, and last action taken. When an agent is active, its card pulses blue. When it fails, it glows red. You see the system breathe.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;CODE&gt;decompose_system&lt;/CODE&gt; — Breaks requirements into agent tasks&lt;/LI&gt;
&lt;LI&gt;&lt;CODE&gt;execute_workflow&lt;/CODE&gt; — Coordinates agents to perform tasks&lt;/LI&gt;
&lt;LI&gt;&lt;CODE&gt;validate_output&lt;/CODE&gt; — Runs evaluation tests and returns structured results&lt;/LI&gt;
&lt;LI&gt;&lt;CODE&gt;update_system_design&lt;/CODE&gt; — Modifies architecture based on feedback&lt;/LI&gt;
&lt;LI&gt;&lt;CODE&gt;track_state&lt;/CODE&gt; — Persists and updates system state over time&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3&gt;Task Flows: Watch Work Move Through the Pipeline&lt;/H3&gt;
&lt;P&gt;Below the agents, a flow graph visualises how tasks route between agents. When you decompose a system requirement like "Build an AI-powered code review agent," the canvas shows five components (pr-ingestion, code-analysis, feedback-generator, learning-loop, notification-service) flowing from the decomposer to the executor and designer agents. Each flow carries a status badge,&amp;nbsp; pending, pass, or fail.&lt;/P&gt;
&lt;H3&gt;Validation Panel: Continuous Testing, Not Afterthought Testing&lt;/H3&gt;
&lt;P&gt;The validation panel displays structured test results with pass/fail badges and reasoning. When you run validation, each test case evaluates against specific criteria:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;✅ "PR ingestion handles large diffs" — Meets criteria: process diffs over 5,000 lines without timeout&lt;/LI&gt;
&lt;LI&gt;❌ "Feedback is actionable" — Failed: does not satisfy criteria that each suggestion includes a code fix&lt;/LI&gt;
&lt;LI&gt;✅ "Learning loop converges" — Meets criteria: accept rate improves over 10 iterations&lt;/LI&gt;
&lt;LI&gt;✅ "Notifications are non-blocking" — Meets criteria: delivery latency under 500ms&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;This isn't a test runner you invoke separately,&amp;nbsp; it's a validation surface embedded in the development loop. You see failures the moment they happen, in context, alongside the agents and flows that produced them.&lt;/P&gt;
&lt;H3&gt;Live State Timeline: Every Mutation, Visible&lt;/H3&gt;
&lt;P&gt;The right panel tracks every state change with timestamps. Decomposition events, workflow executions, validation runs, failure injections — all appear chronologically. This is the system's memory, visible to both the human developer and the AI agents working alongside them.&lt;/P&gt;
&lt;H2&gt;Canvas as a Runtime: The Key Capabilities&lt;/H2&gt;
&lt;P&gt;What makes Canvas a runtime rather than a display layer is that the agent can &lt;EM&gt;act&lt;/EM&gt; through it. The canvas exposes seven agent-callable actions:&lt;/P&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table border="1" style="border-width: 1px;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;Action&lt;/th&gt;&lt;th&gt;What It Does&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;CODE&gt;decompose_system&lt;/CODE&gt;&lt;/td&gt;&lt;td&gt;Accept requirements and components, generate task flows, update the system design&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;CODE&gt;execute_workflow&lt;/CODE&gt;&lt;/td&gt;&lt;td&gt;Run pending tasks through the agent pipeline, produce artifacts&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;CODE&gt;validate_output&lt;/CODE&gt;&lt;/td&gt;&lt;td&gt;Evaluate test cases against criteria, return structured pass/fail with reasoning&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;CODE&gt;update_system_design&lt;/CODE&gt;&lt;/td&gt;&lt;td&gt;Modify the architecture description, constraints, or component list live&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;CODE&gt;track_state&lt;/CODE&gt;&lt;/td&gt;&lt;td&gt;Read the full system state — agents, flows, validations, history, artifacts&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;CODE&gt;inject_failure&lt;/CODE&gt;&lt;/td&gt;&lt;td&gt;Force an agent into an error state to test system adaptation&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;CODE&gt;pause_resume&lt;/CODE&gt;&lt;/td&gt;&lt;td&gt;Toggle execution on and off&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;colgroup&gt;&lt;col style="width: 50.00%" /&gt;&lt;col style="width: 50.00%" /&gt;&lt;/colgroup&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;P&gt;The human developer can click Decompose, Execute, or Validate directly in the canvas. The AI agent can invoke the same actions programmatically. Both parties operate on the same surface, the same state, the same system,&amp;nbsp; that's what makes Canvas collaborative in a way traditional tooling is not.&lt;/P&gt;
&lt;H2&gt;Why This Matters: Canvas vs. Figma vs. Traditional UIs&lt;/H2&gt;
&lt;P&gt;It helps to position Canvas against tools developers already know:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Figma&lt;/STRONG&gt; is Human-to-Human collaboration on design. Multiple people interact with the same visual surface, but nothing executes. It's a design tool.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Traditional UIs&lt;/STRONG&gt; are Human-to-System. Users interact with finished software through a polished interface.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Canvas&lt;/STRONG&gt; is Human-to-AI-to-System. It's a shared space where things actually &lt;EM&gt;execute&lt;/EM&gt;. The developer steers, the AI acts, and the system evolves, all visible, all in real time.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Canvas is collaborative in the Figma sense — it's a shared space, it's visual, multiple participants interact with the same surface. But unlike Figma, the participants include AI agents, and the surface isn't a mockup — it's a live system.&lt;/P&gt;
&lt;H2&gt;How the Extension Works: Under the Hood&lt;/H2&gt;
&lt;P&gt;A Canvas extension is a standard GitHub Copilot CLI extension,&amp;nbsp; a single &lt;CODE&gt;extension.mjs&lt;/CODE&gt; file that speaks JSON-RPC over stdio. The key components:&lt;/P&gt;
&lt;H3&gt;1. State Management&lt;/H3&gt;
&lt;P&gt;Each canvas instance maintains its own system state: agents, task flows, validations, a state history timeline, artifacts, and the current system design. State is held in-memory per instance and pushed to the iframe via Server-Sent Events whenever it changes.&lt;/P&gt;
&lt;PRE&gt;function createInitialState() {
    return {
        agents: [
            { id: "decomposer", name: "decompose_system", 
              status: "idle", responsibility: "Break requirements into agent tasks" },
            { id: "executor", name: "execute_workflow", 
              status: "idle", responsibility: "Coordinate agents to perform tasks" },
            // ... three more agents
        ],
        taskFlows: [],
        validations: [],
        stateHistory: [],
        artifacts: [],
        systemDesign: { description: "", constraints: [], components: [] },
        execution: { paused: false, stepCount: 0 },
    };
}
&lt;/PRE&gt;
&lt;H3&gt;2. Real-Time Updates via Server-Sent Events&lt;/H3&gt;
&lt;P&gt;The canvas runs a loopback HTTP server per instance. The iframe connects to an &lt;CODE&gt;/events&lt;/CODE&gt; endpoint and receives state updates as they happen — no polling, no websocket complexity.&lt;/P&gt;
&lt;PRE&gt;if (req.url === "/events") {
    res.writeHead(200, { 
        "Content-Type": "text/event-stream", 
        "Cache-Control": "no-cache" 
    });
    clients.add(res);
    // Push current state immediately on connect
    res.write(`data: ${JSON.stringify(getState(instanceId))}\n\n`);
}
&lt;/PRE&gt;
&lt;H3&gt;3. Dual Interaction Model&lt;/H3&gt;
&lt;P&gt;Every action is available through two paths. The human clicks a button in the iframe, which POSTs to the local server. The AI agent calls &lt;CODE&gt;invoke_canvas_action&lt;/CODE&gt; through the SDK. Both paths mutate the same state and trigger the same SSE broadcast. Neither is privileged over the other.&lt;/P&gt;
&lt;H3&gt;4. Canvas Declaration&lt;/H3&gt;
&lt;P&gt;The canvas registers with the Copilot SDK using &lt;CODE&gt;createCanvas&lt;/CODE&gt;, declaring its identity, description, and all agent-callable actions with JSON Schema validation on inputs:&lt;/P&gt;
&lt;PRE&gt;createCanvas({
    id: "multi-agent-dev",
    displayName: "Multi-Agent Dev Canvas",
    description: "Runtime observability and control plane for multi-agent development",
    actions: [
        {
            name: "decompose_system",
            description: "Break requirements into agent tasks",
            inputSchema: { 
                type: "object", 
                properties: { 
                    requirements: { type: "string" },
                    components: { type: "array", items: { type: "string" } }
                }, 
                required: ["requirements"] 
            },
            handler: async (ctx) =&amp;gt; { /* ... */ },
        },
        // ... six more actions
    ],
    open: async (ctx) =&amp;gt; { /* start server, return URL */ },
    onClose: async (ctx) =&amp;gt; { /* clean up */ },
});
&lt;/PRE&gt;
&lt;H2&gt;Scenarios This Enables&lt;/H2&gt;
&lt;P&gt;The Multi-Agent Dev Canvas supports four development scenarios that would be impossible with traditional tooling:&lt;/P&gt;
&lt;H3&gt;1. End-to-End Feature Design&lt;/H3&gt;
&lt;P&gt;Tell the agent "Build an AI-powered code review system." Watch it decompose the requirement into five components, route tasks to specialist agents, execute the workflow, and validate the outputs, all visible in real time. Iterate by modifying constraints or components and re-running.&lt;/P&gt;
&lt;H3&gt;2. Live Agent Collaboration Observation&lt;/H3&gt;
&lt;P&gt;See how agents hand off work to each other. The flow graph shows which agent produced what, which tasks are pending, and where bottlenecks form. This is the kind of observability you need when debugging multi-agent orchestration but would never expose in a production UI.&lt;/P&gt;
&lt;H3&gt;3. Fault Injection and Adaptation Testing&lt;/H3&gt;
&lt;P&gt;Use &lt;CODE&gt;inject_failure&lt;/CODE&gt; to force an agent into an error state. Watch how the system responds. Does the orchestrator recover? Do downstream tasks fail gracefully? This chaos-engineering approach, applied during development, visible in real time, catches integration failures before they reach production.&lt;/P&gt;
&lt;H3&gt;4. Validation-Driven Iteration&lt;/H3&gt;
&lt;P&gt;Define test criteria, run validation, see which tests fail, update the system design, re-run. The validation panel isn't a separate CI pipeline, it's embedded in the development surface, creating a continuous feedback loop between design decisions and their measurable outcomes.&lt;/P&gt;
&lt;H2&gt;Getting Started: Build Your Own Canvas Extension&lt;/H2&gt;
&lt;P&gt;To create a Canvas extension in your own project:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;STRONG&gt;Read the SDK docs&lt;/STRONG&gt; — Run &lt;CODE&gt;extensions_manage({ operation: "guide" })&lt;/CODE&gt; in GitHub Copilot CLI to get the canonical documentation paths.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Scaffold&lt;/STRONG&gt; — Run &lt;CODE&gt;extensions_manage({ operation: "scaffold", kind: "canvas", name: "my-canvas", location: "project" })&lt;/CODE&gt; to generate the boilerplate.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Implement&lt;/STRONG&gt; — Edit &lt;CODE&gt;extension.mjs&lt;/CODE&gt; with your canvas logic: state model, actions, renderer HTML, and SSE updates.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Reload&lt;/STRONG&gt; — Run &lt;CODE&gt;extensions_reload&lt;/CODE&gt; to activate your changes.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Drive&lt;/STRONG&gt; — Open with &lt;CODE&gt;open_canvas&lt;/CODE&gt;, invoke actions with &lt;CODE&gt;invoke_canvas_action&lt;/CODE&gt;, and iterate.&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;The canvas extension lives in &lt;CODE&gt;.github/extensions/your-canvas/extension.mjs&lt;/CODE&gt; for project-scoped extensions, or in your user extensions directory for personal use. No &lt;CODE&gt;package.json&lt;/CODE&gt; needed,&amp;nbsp; the &lt;CODE&gt;&lt;a href="javascript:void(0)" data-lia-user-mentions="" data-lia-user-uid="2798636" data-lia-user-login="github" class="lia-mention lia-mention-user"&gt;github​&lt;/a&gt;/copilot-sdk&lt;/CODE&gt; import is auto-resolved.&lt;/P&gt;
&lt;H2&gt;Key Takeaways&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Canvas is a development runtime, not a UI framework.&lt;/STRONG&gt; You don't build Canvas instead of your UI,&amp;nbsp; you use Canvas to figure out, test, and evolve the UI and system before and during building it.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Canvas solves problems your final UI should never expose.&lt;/STRONG&gt; Agent observability, fault injection, live state mutation, validation feedback loops, these are development concerns, not user concerns.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Canvas is Human-to-AI-to-System collaboration.&lt;/STRONG&gt; Both the developer and the AI agent operate on the same surface, the same state, the same running system. It's Figma-like collaboration, but with AI agents, and things actually execute.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Canvas turns debugging, testing, and execution into a continuous visual feedback loop.&lt;/STRONG&gt; Instead of switching between an editor, a terminal, a test runner, and a monitoring dashboard, you have one surface where the system lives and evolves.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Canvas extensions are lightweight.&lt;/STRONG&gt; A single &lt;CODE&gt;extension.mjs&lt;/CODE&gt; file, no dependencies, loopback HTTP server with SSE, the infrastructure gets out of the way so you can focus on the system you're building.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2&gt;The Bigger Picture&lt;/H2&gt;
&lt;P&gt;Canvas redefines software development by shifting from writing static code to orchestrating living systems. Developers and AI co-create, observe, and evolve solutions in real time. Instead of building UIs for users, we build interactive environments for agents, turning debugging, testing, and execution into a continuous, visual feedback loop that accelerates innovation and brings ideas to production faster than ever.&lt;/P&gt;
&lt;P&gt;The Multi-Agent Dev Canvas we built here is one example. The pattern applies anywhere you're building agent-driven systems: AI orchestration, workflow automation, data pipelines, autonomous services. Anywhere you need to see, steer, and validate a complex system as it runs, that's where Canvas belongs.&lt;/P&gt;
&lt;H2&gt;Resources&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://github.com/leestott/copilot-canvas-runtime" target="_blank" rel="noopener"&gt;copilot-canvas-runtime&lt;/A&gt; — this repository: the Multi-Agent Dev Canvas extension, scenario, and demo prompt&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://docs.github.com/en/copilot" target="_blank" rel="noopener"&gt;GitHub Copilot Documentation&lt;/A&gt; — Official documentation for GitHub Copilot features&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/azure/ai-foundry/" target="_blank" rel="noopener"&gt;Microsoft Foundry Documentation&lt;/A&gt; — Build and deploy AI agents with Microsoft Foundry&lt;/LI&gt;
&lt;/UL&gt;</description>
      <pubDate>Tue, 30 Jun 2026 07:00:00 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-developer-community/github-copilot-app-canvas-is-not-a-ui-builder/ba-p/4531451</guid>
      <dc:creator>Lee_Stott</dc:creator>
      <dc:date>2026-06-30T07:00:00Z</dc:date>
    </item>
    <item>
      <title>My Journey with Azure SRE Agent</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-developer-community/my-journey-with-azure-sre-agent/ba-p/4523519</link>
      <description>&lt;H1&gt;Introduction&lt;/H1&gt;
&lt;P&gt;A customer came to me with a problem that many organisations have. They control their infrastructure through Infrastructure as Code, but there are often scenarios where an admin needs to go in and make a change - even though they would ideally not want this to happen. The use an Entra feature Privileged Identity Management (PIM). Users statically don't have &lt;EM&gt;contributor &lt;/EM&gt;access to Azure resources, but PIM allows them to &lt;EM&gt;elevate&lt;/EM&gt; their access for a period of time. As part of PIM, the admin needs to give a reason for the elevation. Wouldn't it be good if an agent of some sort could look at this reason, then look at what the user actually did and make an assessment on whether what they did &lt;EM&gt;aligned &lt;/EM&gt;with the reason given? Then alert if not.&lt;/P&gt;
&lt;P&gt;I initially built Python agents to handle this, but as with many "build vs. buy" decisions, I eventually discovered that &lt;STRONG&gt;Azure SRE Agent&lt;/STRONG&gt; (in preview at the time of writing) could do what I needed – and more.&lt;/P&gt;
&lt;P&gt;This blog chronicles my journey from initial scepticism to building a fully autonomous PIM elevation audit agent. Along the way, I learned valuable lessons about what SRE Agent is designed for, how to work with its tooling model, and the difference between interactive exploration and production automation.&lt;/P&gt;
&lt;H2&gt;The Starting Point: Python Agents and the Buy vs. Build Decision&lt;/H2&gt;
&lt;P&gt;Before discovering SRE Agent, I had functional Python scripts that queried Azure Audit Logs and Activity Logs to correlate PIM activations with actual Azure operations. They worked, but they required maintenance, error handling, scheduling infrastructure, and ongoing attention. When I heard about Azure SRE Agent's capabilities as an autonomous monitoring platform, I decided to investigate.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;The decision&lt;/STRONG&gt;: If there's a choice between &lt;EM&gt;buy &lt;/EM&gt;versus &lt;EM&gt;build&lt;/EM&gt;, &lt;EM&gt;buy &lt;/EM&gt;should win – especially when the "buy" option is a managed Azure service with built-in security, monitoring, and integration capabilities.&lt;/P&gt;
&lt;H2&gt;First Impressions: The Interactive Front End&lt;/H2&gt;
&lt;P&gt;One of the first features that caught my attention was SRE Agent's chat interface. Unlike my static Python scripts, I could have conversational interactions with the agent, refining queries and exploring my Azure environment in natural language. This was powerful for discovery and prototyping.&lt;/P&gt;
&lt;img /&gt;
&lt;H3&gt;Initial Success (and Failure)&lt;/H3&gt;
&lt;P&gt;When I first asked SRE Agent to analyse PIM elevation patterns, the results were... disappointing. The agent couldn't initially answer my PIM elevation questions effectively. However, this is where the interactive experience shone: through. With&amp;nbsp; &lt;EM&gt;coaching in an interactive session&lt;/EM&gt;, I could:&lt;/P&gt;
&lt;P&gt;- Explain what PIM activation events look like in Azure Audit Logs&lt;/P&gt;
&lt;P&gt;- Show the agent how to correlate `CorrelationId` between activation requests and justifications&lt;/P&gt;
&lt;P&gt;- Demonstrate how to build time windows from activation start to deactivation/expiration&lt;/P&gt;
&lt;P&gt;- Guide it through matching Azure Activity operations against justification keywords&lt;/P&gt;
&lt;P&gt;After several rounds of refinement, the agent eventually got excellent results. The interactive session wasn't just a chatbot – it was a learning tool that helped me shape the agent's behaviour.&lt;/P&gt;
&lt;H3&gt;The Subagent Puzzle: Interactive vs. Headless&lt;/H3&gt;
&lt;P&gt;What I really needed was an autonomous agent that could run on a schedule. As I got better results from the interactive sessions,&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Subagents is the tool in SRE Agent for this.&lt;/P&gt;
&lt;P&gt;I naturally wanted to convert the interactive session into a &lt;EM&gt;subagent&lt;/EM&gt; that could run autonomously. This is where I hit my first conceptual stumbling block.&lt;/P&gt;
&lt;H3&gt;The Aha Moment: Understanding SRE Agent's Purpose&lt;/H3&gt;
&lt;P&gt;I was initially confused about how to structure a subagent. Should it replicate the interactive conversation flow? How do I capture all that back-and-forth in a static configuration?&lt;/P&gt;
&lt;P&gt;After discussions with the engineering, I learned a critical lesson:&lt;/P&gt;
&lt;LI-SPOILER&gt;
&lt;P&gt;Azure SRE Agent is really designed for headless SRE agents&lt;/P&gt;
&lt;/LI-SPOILER&gt;
&lt;P&gt;The interactive experience is fantastic for exploration, prototyping, and troubleshooting – but it's not what you should be aiming for in production automation.&lt;/P&gt;
&lt;P&gt;This reframed my entire approach. Instead of trying to replicate the conversational flow, I needed to distil my learnings from those sessions into the instructions for a subagent.&lt;/P&gt;
&lt;H3&gt;Struggling with Subagent Format&lt;/H3&gt;
&lt;P&gt;Even with this clarity, I struggled with the format of a subagent definition. The YAML structure, the `system_prompt` verbosity, the tool declarations – it felt overwhelming to translate my interactive sessions into a configuration file.&lt;/P&gt;
&lt;H3&gt;The Game-Changer: Let the Agent Write Itself&lt;/H3&gt;
&lt;P&gt;Then came the game-changing advice from engineering:&lt;/P&gt;
&lt;LI-SPOILER&gt;
&lt;P&gt;Ask the chat session to create the subagent definition for you.&lt;/P&gt;
&lt;/LI-SPOILER&gt;
&lt;P&gt;This was brilliant in its simplicity. I had already what I wanted the agent to do in the interactive chat session. It was a simple as "generate a subagent from this conversation". I must admit, I did have to ask it to generate an email with the report, but the bulk of the effort in generating the YAML subagent file was done by the agent.&lt;/P&gt;
&lt;P&gt;What would have taken me hours of trial and error was done in minutes.&lt;/P&gt;
&lt;H3&gt;Tool Configuration: The Missing Pieces&lt;/H3&gt;
&lt;P&gt;With a subagent definition in hand, I deployed it and... nothing worked. This began the most educational part of my journey: understanding how tools work in Azure SRE Agent.&lt;/P&gt;
&lt;H4&gt;Challenge #1: Accessing Log Analytics&lt;/H4&gt;
&lt;P&gt;My subagent kept failing to query Log Analytics. I initially thought this was a &lt;EM&gt;role assignment issue&lt;/EM&gt; – did the agent's managed identity have Log Analytics Reader permissions? I spent time checking RBAC, verifying workspace access, and reviewing Entra ID permissions.&lt;/P&gt;
&lt;P&gt;The real issue? I needed to add `&lt;EM&gt;QueryLogAnalyticsByWorkspaceId&lt;/EM&gt;` as a&amp;nbsp;&lt;STRONG&gt;&lt;EM&gt;tool&lt;/EM&gt;&amp;nbsp;&lt;/STRONG&gt;in my subagent configuration!&lt;/P&gt;
&lt;LI-CODE lang=""&gt;tools: - QueryLogAnalyticsByWorkspaceId&lt;/LI-CODE&gt;
&lt;P&gt;The Azure SRE Agent UI supports selecting this tool during configuration, but I had missed it. More importantly, I needed to mention the Log Analytics workspace ID in my subagent's `system_prompt` so the agent knew which workspace to target:&lt;/P&gt;
&lt;LI-CODE lang=""&gt;system_prompt: &amp;gt; ... Query the workspace: XXXXXX-d119-4550-86c0-YYYYYYYYYYY...&lt;/LI-CODE&gt;
&lt;P&gt;&lt;STRONG&gt;Lesson learned&lt;/STRONG&gt;: Tools aren't automatically available – you must explicitly declare them. The agent uses this to understand what capabilities it has and to configure the appropriate authentication and access patterns.&lt;/P&gt;
&lt;H4&gt;Challenge #2: Sending Email Notifications&lt;/H4&gt;
&lt;P&gt;The next hurdle was sending email reports. My PIM audit was working beautifully, but the results were only visible in logs. I needed email notifications.&lt;/P&gt;
&lt;P&gt;Initially, there didn't seem to be a built-in email tool I could choose from the portal. I attempted to write a custom Python tool that sent emails via Microsoft Graph API. This seemed logical – I'd done this in my previous Python agents.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Problem&lt;/STRONG&gt;: Corporate email policies blocked my application from sending emails via Graph. This was a security feature, not a bug, but it meant my custom tool approach was dead in the water.&lt;/P&gt;
&lt;H4&gt;Discovering the Outlook Connector&lt;/H4&gt;
&lt;P&gt;Then I noticed the &lt;EM&gt;Outlook connector&lt;/EM&gt; in the SRE Agent configuration portal. This was a managed connector specifically for sending emails with pre-configured authentication. I set it up, configured it (noting the connector ID: `connector-abf2`), and waited for emails.&lt;/P&gt;
&lt;P&gt;Still nothing.&lt;/P&gt;
&lt;H4&gt;The Manual YAML Edit&lt;/H4&gt;
&lt;P&gt;Trawling through other sample subagent configurations, I discovered a tool called &lt;STRONG&gt;SendOutlookEmail&lt;/STRONG&gt;. This tool wasn't available in the portal's dropdown menu, but it existed in the platform. I needed to **manually add this to my subagent YAML file**:&lt;/P&gt;
&lt;LI-CODE lang=""&gt;tools: - QueryLogAnalyticsByWorkspaceId - SendOutlookEmail&lt;/LI-CODE&gt;
&lt;P&gt;After this change and redeploying the subagent, emails started flowing perfectly.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Lesson learned:&lt;/STRONG&gt;&amp;nbsp;The portal UI is evolving (remember, this is preview), and not all tools are exposed visually yet. Don't be afraid to hand-edit the YAML when you know a capability exists. The documentation and sample repositories are your friends.&lt;/P&gt;
&lt;H4&gt;Making It Fully Autonomous: Scheduled Triggers&lt;/H4&gt;
&lt;P&gt;With a working subagent that could query logs, analyse alignment, and send emails, I had one final step: &lt;EM&gt;scheduling it&lt;/EM&gt;.&lt;/P&gt;
&lt;P&gt;I created a scheduled task trigger in Azure SRE Agent configured to run every 24 hours (UTC). This trigger invokes my PIM elevation subagent, which executes its entire workflow autonomously and emails stakeholders with any findings.&lt;/P&gt;
&lt;P&gt;The subagent configuration includes this execution schedule guidance:&lt;/P&gt;
&lt;P&gt;system_prompt: &amp;gt; Execution schedule: Run every 24h (UTC).&lt;/P&gt;
&lt;P&gt;Now, every morning, our security team receives a PIM elevation alignment report without any manual intervention.&lt;/P&gt;
&lt;H3&gt;The Result: A Production PIM Elevation Agent&lt;/H3&gt;
&lt;P&gt;My final solution is an **autonomous agent** that:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Runs on a 24-hour schedule&lt;/LI&gt;
&lt;LI&gt;Queries Azure Audit Logs for PIM activations&lt;/LI&gt;
&lt;LI&gt;Extracts user justifications from the log&lt;/LI&gt;
&lt;LI&gt;Builds precise activation time windows&lt;/LI&gt;
&lt;LI&gt;Queries Azure Activity logs during that time window&lt;/LI&gt;
&lt;LI&gt;Classifies alignment: Aligned, Partial, or NotAligned&lt;/LI&gt;
&lt;LI&gt;Generates JSON and plaintext reports&lt;/LI&gt;
&lt;LI&gt;Emails stakeholders with flagged non-aligned activity&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;No Python scripts. No custom authentication handling. No infrastructure to maintain.&lt;/P&gt;
&lt;P&gt;You can see the full subagent configuration in my GitHub repository: &lt;A href="https://github.com/yourusername/sre-agent" target="_blank" rel="noopener"&gt;PIM Elevation Agent&lt;/A&gt;&lt;/P&gt;
&lt;H3&gt;Reflections: SRE Agent's Power and Rough Edges&lt;/H3&gt;
&lt;P&gt;Azure SRE Agent is powerful. The ability to define complex audit workflows in declarative YAML, leverage natural language prompts for behaviour specification, and integrate with Azure services through managed tools is genuinely impressive.&lt;/P&gt;
&lt;P&gt;It also integrates with incident response services - both being able to generate incidents and to trigger flows from incidents.&lt;/P&gt;
&lt;P&gt;All as a first-class Azure Platform as a Service (PaaS).&lt;/P&gt;
&lt;P&gt;However, it's important to remember that this is a &lt;EM&gt;preview service&lt;/EM&gt; (as of February 2026). There are rough edges:&lt;/P&gt;
&lt;P&gt;- Tool discoverability: Not all tools are visible in the portal UI&lt;/P&gt;
&lt;P&gt;- Documentation gaps: Some capabilities require digging through samples&lt;/P&gt;
&lt;P&gt;- Learning curve: Understanding the interactive-vs-headless paradigm takes time&lt;/P&gt;
&lt;P&gt;- Debugging: Error messages aren't always clear about what's misconfigured&lt;/P&gt;
&lt;P&gt;These are typical preview-stage challenges, and I expect they'll improve as the service matures. The core platform is solid, and the engineering team is responsive to feedback.&lt;/P&gt;
&lt;H3&gt;Key Takeaways&lt;/H3&gt;
&lt;P&gt;If you're considering Azure SRE Agent, here are my lessons learned:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Use interactive sessions for discovery – They're excellent for prototyping and learning&lt;/LI&gt;
&lt;LI&gt;Think headless/autonomous for production – Autonomous agents should be declarative, not conversational&lt;/LI&gt;
&lt;LI&gt;Let the agent write itself – Ask the interactive session to generate subagent configs&lt;/LI&gt;
&lt;LI&gt;Explicitly declare tools – They're not automatic; you must add them to your config&lt;/LI&gt;
&lt;LI&gt;Include context in prompts – Workspace IDs, connector IDs, schedules – be specific&lt;/LI&gt;
&lt;LI&gt;Don't fear manual YAML edits – The portal is evolving, hand-editing is ok&lt;/LI&gt;
&lt;LI&gt;Check samples and docs*– Other configurations show patterns and tools not yet in UI, so check the YAML of these&lt;/LI&gt;
&lt;LI&gt;Embrace "buy over build" – Managed services reduce long-term maintenance burden&lt;/LI&gt;
&lt;/OL&gt;
&lt;H3&gt;Resources:&lt;/H3&gt;
&lt;P&gt;- &lt;A href="https://learn.microsoft.com/azure/sre-agent/" target="_blank" rel="noopener"&gt;SRE Agent Documentation&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;- &lt;A href="https://github.com/jometzg/sre-agent" target="_blank" rel="noopener"&gt;my PIM Elevation subagent sample&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;- &lt;A href="https://learn.microsoft.com/azure/data-explorer/kusto/query/" target="_blank" rel="noopener"&gt;Kusto (KQL) Query Reference&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;*This blog post represents my personal experience and opinions. Azure SRE Agent capabilities and UI may have changed since the time of writing.*&lt;/P&gt;</description>
      <pubDate>Mon, 29 Jun 2026 13:22:32 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-developer-community/my-journey-with-azure-sre-agent/ba-p/4523519</guid>
      <dc:creator>jometzg</dc:creator>
      <dc:date>2026-06-29T13:22:32Z</dc:date>
    </item>
    <item>
      <title>MCP for Beginners: Why Every AI Engineer and Developer Should Learn the Model Context Protocol</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-developer-community/mcp-for-beginners-why-every-ai-engineer-and-developer-should/ba-p/4530623</link>
      <description>&lt;P&gt;If you have spent any time building with large language models in the last year, you have hit the same wall everyone hits: your model is brilliant at reasoning but blind to the real world. It cannot read your database, call your internal API, search your documents, or trigger a deployment unless you hand-write glue code for every single integration. The&amp;nbsp;&lt;STRONG&gt;Model Context Protocol (MCP)&lt;/STRONG&gt; exists to tear that wall down, and Microsoft's open-source &lt;A href="https://github.com/microsoft/mcp-for-beginners" target="_blank"&gt;MCP for Beginners&lt;/A&gt; curriculum (reachable via the short link &lt;A href="https://aka.ms/mcp-for-beginners" target="_blank"&gt;https://aka.ms/mcp-for-beginners&lt;/A&gt;) is the most complete, hands-on way to learn it.&lt;/P&gt;
&lt;P&gt;This post explains what MCP is, walks through the &lt;EM&gt;latest&lt;/EM&gt; updates to the course, shows real code, and makes the case for why MCP belongs on your learning roadmap right now. &lt;BR /&gt;&lt;BR /&gt;Whether you are an AI engineer shipping agents to production, a developer wiring tools into Copilot, or a student trying to build a standout portfolio project.&lt;/P&gt;
&lt;HR /&gt;
&lt;H2&gt;What is MCP, and why does it matter?&lt;/H2&gt;
&lt;P&gt;Think of MCP as a &lt;STRONG&gt;universal translator for AI applications&lt;/STRONG&gt;. Just as a USB-C port lets you connect any peripheral to any laptop without a custom cable per device, MCP lets an AI model connect to any tool or data source through one standardized protocol. The course uses exactly this analogy, and it holds up well.&lt;/P&gt;
&lt;P&gt;Before MCP, integrations were an &lt;CODE&gt;M × N&lt;/CODE&gt; problem: every one of your &lt;EM&gt;M&lt;/EM&gt; AI applications needed bespoke code to talk to each of your &lt;EM&gt;N&lt;/EM&gt; tools. MCP turns that into an &lt;CODE&gt;M + N&lt;/CODE&gt; problem. Build a tool once as an MCP server, and &lt;EM&gt;any&lt;/EM&gt; MCP-compatible client, Claude Desktop, VS Code, Cursor, GitHub Copilot, and many others — can use it immediately.&lt;/P&gt;
&lt;P&gt;The protocol is built on a clean client–server model with a small set of primitives:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Tools&lt;/STRONG&gt; — functions the model can call (query a database, send an email, run code).&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Resources&lt;/STRONG&gt; — data the server exposes for context (files, records, documents).&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Prompts&lt;/STRONG&gt; — reusable, parameterized prompt templates.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Sampling&lt;/STRONG&gt; — a server asking the client's LLM to generate a completion, enabling collaborative workflows.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Elicitation&lt;/STRONG&gt; — a server requesting structured input from the user mid-task.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Roots&lt;/STRONG&gt; — boundaries that tell a server which directories or resources it is allowed to operate on.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Communication runs over JSON-RPC, with transports for local processes (&lt;CODE&gt;stdio&lt;/CODE&gt;) and remote servers (streamable HTTP). That standardization is the whole point: write to the spec, and you interoperate with the entire ecosystem.&lt;/P&gt;
&lt;HR /&gt;
&lt;H2&gt;What's new: the latest updates to the course&lt;/H2&gt;
&lt;P&gt;The MCP for Beginners curriculum is actively maintained, and the &lt;A href="https://github.com/microsoft/mcp-for-beginners/blob/main/changelog.md" target="_blank"&gt;public changelog&lt;/A&gt; reads like a release log for a living product. Here are the most important recent changes, drawn directly from that changelog.&lt;/P&gt;
&lt;H3&gt;1. Aligned to MCP Specification&lt;/H3&gt;
&lt;P&gt;The biggest update: the entire curriculum has been validated against the current &lt;STRONG&gt;MCP Specification 2025-11-25&lt;/STRONG&gt; and the latest official SDKs. Stale references to older spec revisions (2025-03-26 and 2025-06-18) were corrected across the security, transport, real-time search, sampling, and stdio-server modules, with links repointed to the canonical &lt;A href="https://modelcontextprotocol.io" target="_blank"&gt;modelcontextprotocol.io&lt;/A&gt; spec paths.&lt;/P&gt;
&lt;P&gt;A gap analysis confirmed the course already covers every primitive introduced or expanded in the latest spec:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Sampling&lt;/STRONG&gt; — covered in lesson 3.14 and Advanced Topics.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Elicitation&lt;/STRONG&gt; (including URL mode) — in Core Concepts and Protocol Features.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Roots&lt;/STRONG&gt; — in the Introduction, Core Concepts, and Root Contexts.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Tasks&lt;/STRONG&gt; (experimental, long-running operations) — in Core Concepts and Protocol Features.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Tool Annotations&lt;/STRONG&gt; (&lt;CODE&gt;readOnlyHint&lt;/CODE&gt; / &lt;CODE&gt;destructiveHint&lt;/CODE&gt;) — in Core Concepts and Protocol Features.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3&gt;2. Samples validated against current SDKs&lt;/H3&gt;
&lt;P&gt;Code that does not run is worse than no code at all, so the maintainers re-validated the core samples:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;TypeScript:&lt;/STRONG&gt; &lt;CODE&gt;@modelcontextprotocol/sdk&lt;/CODE&gt; resolved to &lt;CODE&gt;1.29.0&lt;/CODE&gt;; a &lt;CODE&gt;tsc --noEmit&lt;/CODE&gt; type-check passed with no errors — the &lt;CODE&gt;McpServer&lt;/CODE&gt; and &lt;CODE&gt;StdioServerTransport&lt;/CODE&gt; APIs remain valid.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Python:&lt;/STRONG&gt; validated in an isolated virtual environment with &lt;CODE&gt;mcp[cli]&lt;/CODE&gt; (1.27.2); &lt;CODE&gt;FastMCP.list_tools()&lt;/CODE&gt; correctly returned the sample &lt;CODE&gt;add&lt;/CODE&gt; and &lt;CODE&gt;subtract&lt;/CODE&gt; tools.&lt;/LI&gt;
&lt;LI&gt;SDK version pins across labs were bumped (for example &lt;CODE&gt;mcp&amp;gt;=1.26.0&lt;/CODE&gt;) and lockfiles regenerated so every sample tracks the current release.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3&gt;3. A serious security pass&lt;/H3&gt;
&lt;P&gt;Security is treated as a first-class concern, not an afterthought. A full audit across every dependency manifest and the sample source code was run, and &lt;STRONG&gt;&lt;CODE&gt;npm audit&lt;/CODE&gt; now reports 0 vulnerabilities in every audited directory&lt;/STRONG&gt;. Highlights:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Transitive npm advisories (in the MCP Inspector dev tool, the OpenAI client, and the SDK) were remediated by bumping &lt;CODE&gt;@modelcontextprotocol/inspector&lt;/CODE&gt; to &lt;CODE&gt;0.22.0&lt;/CODE&gt; and pinning a patched &lt;CODE&gt;shell-quote&lt;/CODE&gt;.&lt;/LI&gt;
&lt;LI&gt;A real &lt;STRONG&gt;code-level command-injection fix (OWASP A03)&lt;/STRONG&gt;: an &lt;CODE&gt;open_in_vscode&lt;/CODE&gt; tool that used &lt;CODE&gt;subprocess.run(..., shell=True)&lt;/CODE&gt; was rewritten to launch the resolved executable directly with no shell — closing a metacharacter-injection vector.&lt;/LI&gt;
&lt;LI&gt;Python dependencies were audited with &lt;CODE&gt;pip-audit&lt;/CODE&gt;, and a vulnerable transitive &lt;CODE&gt;werkzeug&lt;/CODE&gt; was pinned to a patched &lt;CODE&gt;&amp;gt;=3.1.6&lt;/CODE&gt;.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;For anyone learning to ship agents, this is gold: the course demonstrates the &lt;EM&gt;whole&lt;/EM&gt; secure-development loop, not just the happy path.&lt;/P&gt;
&lt;H3&gt;4. New lessons and a growing curriculum&lt;/H3&gt;
&lt;P&gt;The curriculum keeps expanding with practical, modern lessons:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;5.17 Adversarial Multi-Agent Reasoning&lt;/STRONG&gt; — two agents argue opposite sides of a question using shared MCP tools (&lt;CODE&gt;web_search&lt;/CODE&gt; + &lt;CODE&gt;run_python&lt;/CODE&gt;), judged by a third agent. Includes a Mermaid architecture diagram, orchestrators in Python, TypeScript, and C#, and use cases like hallucination detection, threat modeling, and API design review.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;3.12 MCP Hosts&lt;/STRONG&gt; — configuration for Claude Desktop, VS Code, Cursor, Cline, and Windsurf, with JSON templates and a transport comparison table.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;3.13 MCP Inspector&lt;/STRONG&gt; — a debugging guide for testing tools, resources, and prompts.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;4.1 Pagination&lt;/STRONG&gt; — cursor-based pagination patterns in Python, TypeScript, and Java.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;5.16 Protocol Features&lt;/STRONG&gt; — progress notifications, request cancellation, resource templates, and lifecycle management.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3&gt;5. Microsoft product rebranding&lt;/H3&gt;
&lt;P&gt;Content was updated to reflect Microsoft's rebranding: &lt;STRONG&gt;Azure AI Foundry → Microsoft Foundry&lt;/STRONG&gt;, and the &lt;STRONG&gt;AI Toolkit (AITK) → Microsoft Foundry Toolkit Extension for VS Code&lt;/STRONG&gt;. If you have seen older tutorials referencing the previous names, the curriculum is now current.&lt;/P&gt;
&lt;HR /&gt;
&lt;H2&gt;Your first MCP server: see how little code it takes&lt;/H2&gt;
&lt;P&gt;The course's "first server" lesson builds a simple calculator. Here is the shape of a minimal MCP server in &lt;STRONG&gt;Python&lt;/STRONG&gt; using &lt;CODE&gt;FastMCP&lt;/CODE&gt;, which mirrors the validated sample in the repo. Notice how the protocol plumbing disappears — you just decorate functions.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE&gt;# server.py — a minimal MCP server with two tools
from mcp.server.fastmcp import FastMCP

# Name your server; this identifies it to MCP clients
mcp = FastMCP("Calculator")

@mcp.tool()
def add(a: int, b: int) -&amp;gt; int:
    """Add two numbers and return the result."""
    return a + b

@mcp.tool()
def subtract(a: int, b: int) -&amp;gt; int:
    """Subtract b from a and return the result."""
    return a - b

if __name__ == "__main__":
    # Run over stdio so local hosts (VS Code, Claude Desktop) can connect
    mcp.run()
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;The same idea in &lt;STRONG&gt;TypeScript&lt;/STRONG&gt;, using the official SDK validated at version &lt;CODE&gt;1.29.0&lt;/CODE&gt;:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE&gt;// server.ts — minimal MCP server in TypeScript
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { z } from "zod";

const server = new McpServer({ name: "Calculator", version: "1.0.0" });

// Register a tool with a typed input schema
server.tool(
  "add",
  { a: z.number(), b: z.number() },
  async ({ a, b }) =&amp;gt; ({
    content: [{ type: "text", text: String(a + b) }],
  })
);

// Connect over stdio and start listening
const transport = new StdioServerTransport();
await server.connect(transport);
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;That is a complete, runnable server. The docstrings and schemas matter: MCP exposes them to the model so it knows &lt;EM&gt;when&lt;/EM&gt; and &lt;EM&gt;how&lt;/EM&gt; to call each tool. Clear descriptions are effectively prompt engineering for your tools — a common pitfall is leaving them vague, which leads to the model misusing or ignoring the tool.&lt;/P&gt;
&lt;H3&gt;Connecting it in VS Code&lt;/H3&gt;
&lt;P&gt;Once your server runs, an MCP host connects to it. A typical VS Code / host configuration looks like this:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE&gt;{
  "servers": {
    "calculator": {
      "command": "python",
      "args": ["server.py"]
    }
  }
}
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Lesson 3.12 (MCP Hosts) covers the equivalent JSON for Claude Desktop, Cursor, Cline, and Windsurf, and lesson 3.13 shows how to use the &lt;STRONG&gt;MCP Inspector&lt;/STRONG&gt; to test your tools before wiring them into a host — the single best debugging habit you can build early.&lt;/P&gt;
&lt;HR /&gt;
&lt;H2&gt;How the course is structured&lt;/H2&gt;
&lt;P&gt;The curriculum is organized as a progressive journey with hands-on code in &lt;STRONG&gt;C#, Java, JavaScript, Python, Rust, and TypeScript&lt;/STRONG&gt;. It is grouped into phases:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Foundations (Modules 0–2):&lt;/STRONG&gt; &lt;A href="https://github.com/microsoft/mcp-for-beginners/blob/main/00-Introduction/README.md" target="_blank"&gt;Introduction&lt;/A&gt;, &lt;A href="https://github.com/microsoft/mcp-for-beginners/blob/main/01-CoreConcepts/README.md" target="_blank"&gt;Core Concepts&lt;/A&gt;, and &lt;A href="https://github.com/microsoft/mcp-for-beginners/blob/main/02-Security/README.md" target="_blank"&gt;Security&lt;/A&gt;.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Building (Module 3):&lt;/STRONG&gt; &lt;A href="https://github.com/microsoft/mcp-for-beginners/blob/main/03-GettingStarted/README.md" target="_blank"&gt;Getting Started&lt;/A&gt; — 15 lessons covering your first server and client, LLM clients, VS Code integration, stdio and HTTP streaming, testing, deployment, auth, hosts, the Inspector, sampling, and MCP Apps.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Growing (Modules 4–5):&lt;/STRONG&gt; &lt;A href="https://github.com/microsoft/mcp-for-beginners/blob/main/04-PracticalImplementation/README.md" target="_blank"&gt;Practical Implementation&lt;/A&gt; and &lt;A href="https://github.com/microsoft/mcp-for-beginners/blob/main/05-AdvancedTopics/README.md" target="_blank"&gt;Advanced Topics&lt;/A&gt; — 17 advanced lessons including Azure integration, OAuth2, Entra ID auth, scaling, multi-modality, context engineering, custom transports, and adversarial multi-agent reasoning.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Mastery (Modules 6–11):&lt;/STRONG&gt; &lt;A href="https://github.com/microsoft/mcp-for-beginners/blob/main/06-CommunityContributions/README.md" target="_blank"&gt;Community Contributions&lt;/A&gt;, &lt;A href="https://github.com/microsoft/mcp-for-beginners/blob/main/07-LessonsfromEarlyAdoption/README.md" target="_blank"&gt;Lessons from Early Adoption&lt;/A&gt;, &lt;A href="https://github.com/microsoft/mcp-for-beginners/blob/main/08-BestPractices/README.md" target="_blank"&gt;Best Practices&lt;/A&gt;, &lt;A href="https://github.com/microsoft/mcp-for-beginners/blob/main/09-CaseStudy/README.md" target="_blank"&gt;Case Studies&lt;/A&gt;, a &lt;A href="https://github.com/microsoft/mcp-for-beginners/blob/main/10-StreamliningAIWorkflowsBuildingAnMCPServerWithAIToolkit/README.md" target="_blank"&gt;Microsoft Foundry Toolkit workshop&lt;/A&gt;, and an &lt;A href="https://github.com/microsoft/mcp-for-beginners/blob/main/11-MCPServerHandsOnLabs/README.md" target="_blank"&gt;end-to-end 13-lab PostgreSQL capstone&lt;/A&gt;.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;That final module is the standout for portfolio building: a complete, production-flavored path that takes you from architecture and row-level security through database design, a FastMCP server, semantic search with &lt;CODE&gt;pgvector&lt;/CODE&gt; and Azure OpenAI, testing, Docker deployment to Azure Container Apps, and monitoring with Application Insights.&lt;/P&gt;
&lt;HR /&gt;
&lt;H2&gt;Why developers should learn MCP now&lt;/H2&gt;
&lt;H3&gt;For AI engineers&lt;/H3&gt;
&lt;P&gt;MCP is becoming the default integration layer for agents. Instead of re-implementing tool calling for every framework, you write to one open protocol and your tools work everywhere. The advanced modules — sampling, roots, elicitation, scaling, routing, and adversarial multi-agent patterns — are exactly the techniques you need to move agents from demo to production.&lt;/P&gt;
&lt;H3&gt;For developers&lt;/H3&gt;
&lt;P&gt;MCP is already wired into tools you use daily: VS Code, GitHub Copilot, Claude Desktop, Cursor, and more. Learning to build an MCP server means you can expose &lt;EM&gt;your&lt;/EM&gt; systems — internal APIs, databases, CI/CD — to AI assistants safely. The security-first approach in the course (OAuth2, Entra ID, RBAC, dependency auditing) teaches you to do this the right way from day one.&lt;/P&gt;
&lt;H3&gt;For students&lt;/H3&gt;
&lt;P&gt;MCP is a rare opportunity to learn a technology while it is still early, with a free, beginner-friendly, Microsoft-maintained curriculum and code in six languages. The 13-lab capstone alone is a genuine portfolio project. And with content translated into 50+ languages, the barrier to entry is low no matter where you are.&lt;/P&gt;
&lt;HR /&gt;
&lt;H2&gt;Responsible and secure by design&lt;/H2&gt;
&lt;P&gt;A recurring theme worth calling out: the course does not treat security and governance as optional extras. It models real practices you should carry into your own work:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Least privilege via roots&lt;/STRONG&gt; — constrain what a server can touch.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Tool annotations&lt;/STRONG&gt; — mark tools &lt;CODE&gt;readOnlyHint&lt;/CODE&gt; or &lt;CODE&gt;destructiveHint&lt;/CODE&gt; so clients can warn users before destructive actions.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;No shells for user input&lt;/STRONG&gt; — the command-injection fix is a textbook example of why you never pass untrusted input through a shell.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Dependency hygiene&lt;/STRONG&gt; — audit with &lt;CODE&gt;npm audit&lt;/CODE&gt; and &lt;CODE&gt;pip-audit&lt;/CODE&gt;, and pin patched releases.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Proper auth&lt;/STRONG&gt; — dedicated lessons on OAuth2 and Microsoft Entra ID.&lt;/LI&gt;
&lt;/UL&gt;
&lt;HR /&gt;
&lt;H2&gt;Key takeaways&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;MCP standardizes how AI connects to tools and data&lt;/STRONG&gt;, turning a combinatorial integration problem into a simple, reusable one.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;The course is current&lt;/STRONG&gt;, validated against MCP Specification 2025-11-25 with SDKs at TypeScript &lt;CODE&gt;1.29.0&lt;/CODE&gt; and Python &lt;CODE&gt;mcp&lt;/CODE&gt; &lt;CODE&gt;1.27.2&lt;/CODE&gt;.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Samples actually run&lt;/STRONG&gt;, and the repo demonstrates a full secure-development loop with 0 reported vulnerabilities after auditing.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;It is broad and deep&lt;/STRONG&gt;: from a 10-line calculator server to a 13-lab production capstone, in six languages.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;It is the fastest credible path&lt;/STRONG&gt; to MCP fluency for AI engineers, developers, and students alike.&lt;/LI&gt;
&lt;/UL&gt;
&lt;HR /&gt;
&lt;H2&gt;Get started today&lt;/H2&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;STRONG&gt;Open the course:&lt;/STRONG&gt; &lt;A href="https://aka.ms/mcp-for-beginners" target="_blank"&gt;https://aka.ms/mcp-for-beginners&lt;/A&gt; (redirects to the &lt;A href="https://github.com/microsoft/mcp-for-beginners" target="_blank"&gt;GitHub repository&lt;/A&gt;).&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Fork and clone it&lt;/STRONG&gt; — use a sparse checkout to skip translations for a faster download:
&lt;PRE&gt;&lt;CODE&gt;git clone --filter=blob:none --sparse https://github.com/microsoft/mcp-for-beginners.git
cd mcp-for-beginners
git sparse-checkout set --no-cone "/*" "!translations" "!translated_images"&lt;/CODE&gt;&lt;/PRE&gt;
&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Build your first server&lt;/STRONG&gt; with &lt;A href="https://github.com/microsoft/mcp-for-beginners/blob/main/03-GettingStarted/01-first-server/README.md" target="_blank"&gt;lesson 3.1&lt;/A&gt; in your language of choice.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Debug it&lt;/STRONG&gt; with the &lt;A href="https://github.com/microsoft/mcp-for-beginners/blob/main/03-GettingStarted/13-mcp-inspector/README.md" target="_blank"&gt;MCP Inspector&lt;/A&gt;, then connect it in &lt;A href="https://github.com/microsoft/mcp-for-beginners/blob/main/03-GettingStarted/04-vscode/README.md" target="_blank"&gt;VS Code&lt;/A&gt;.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Go deep&lt;/STRONG&gt; with the &lt;A href="https://github.com/microsoft/mcp-for-beginners/blob/main/11-MCPServerHandsOnLabs/README.md" target="_blank"&gt;13-lab database capstone&lt;/A&gt;, and read the official spec at &lt;A href="https://modelcontextprotocol.io" target="_blank"&gt;modelcontextprotocol.io&lt;/A&gt;.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Track what's new&lt;/STRONG&gt; in the &lt;A href="https://github.com/microsoft/mcp-for-beginners/blob/main/changelog.md" target="_blank"&gt;changelog&lt;/A&gt; and join the community discussions.&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;MCP is quietly becoming the connective tissue of the AI ecosystem. The earlier you learn it, the more leverage you will have — and Microsoft's MCP for Beginners is the clearest on-ramp available. Star the repo, build a server this week, and start connecting your AI to the world.&lt;/P&gt;</description>
      <pubDate>Fri, 26 Jun 2026 22:38:26 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-developer-community/mcp-for-beginners-why-every-ai-engineer-and-developer-should/ba-p/4530623</guid>
      <dc:creator>Lee_Stott</dc:creator>
      <dc:date>2026-06-26T22:38:26Z</dc:date>
    </item>
    <item>
      <title>Join our free livestream series on using Microsoft IQ with Python</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-developer-community/join-our-free-livestream-series-on-using-microsoft-iq-with/ba-p/4530644</link>
      <description>&lt;P&gt;&lt;STRONG&gt;Join us for a new 3-part livestream series where we take a deep technical look at Microsoft IQ, the knowledge layer for the next generation of AI experiences. &lt;/STRONG&gt;You'll learn how Foundry IQ, Work IQ, and Fabric IQ can be used to ground AI systems in organizational knowledge, workplace context, and structured business data.&lt;/P&gt;
&lt;P&gt;Our series will cover:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Foundry IQ&lt;/STRONG&gt; for multi-source agentic retrieval on search indexes, SharePoint, websites, and more&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Work IQ&lt;/STRONG&gt; for user-specific retrieval of M365 data, like Teams chats, emails, and calendar events&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Fabric IQ&lt;/STRONG&gt; for retrieval of data stored in OneLake, via Fabric ontologies and data agents&lt;/LI&gt;
&lt;LI&gt;Building agents with &lt;STRONG&gt;Microsoft Agent Framework&lt;/STRONG&gt; to connect to Foundry IQ, Fabric IQ, and Work IQ&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Throughout the series, we’ll use Python for all examples and share full code so you can run everything yourself in your own Foundry projects.&lt;/P&gt;
&lt;P&gt;👉 &lt;A class="lia-external-url" href="https://aka.ms/IQDeepDivePython/series/b" target="_blank" rel="noopener noreferrer"&gt;Register for the full series.&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;In addition to the live streams, you can also join &lt;A href="http://aka.ms/aipython/oh" target="_blank" rel="noopener noreferrer" data-lia-auto-title-active="0" data-lia-auto-title="Join the Microsoft Foundry Discord Server!"&gt;the Microsoft Foundry Discord&lt;/A&gt; to ask follow-up questions after each stream.&lt;/P&gt;
&lt;P&gt;If you are new to generative AI with Python, start with our &lt;A href="https://aka.ms/pythonai/rewatch" target="_blank" rel="noopener noreferrer"&gt;9-part Python + AI series&lt;/A&gt;, which covers topics such as LLMs, embeddings, RAG, tool calling, MCP, and agents. If you are new to Microsoft Agent Framework, watch our &lt;A href="https://techcommunity.microsoft.com/blog/azuredevcommunityblog/learn-how-to-build-agents-and-workflows-in-python/4502144" target="_blank" rel="noopener"&gt;6-part Python + Agent series&lt;/A&gt; which dives deep into agents and workflows.&lt;/P&gt;
&lt;P&gt;To learn more about each live stream or register for individual sessions, scroll down:&lt;/P&gt;
&lt;A href="https://developer.microsoft.com/en-us/reactor/events/27336/" target="_blank"&gt;
&lt;H2&gt;Day 1: Foundry IQ&lt;/H2&gt;
&lt;/A&gt;
&lt;P&gt;28 July, 2026 | 5:00 PM - 6:00 PM (UTC) Coordinated Universal Time&lt;/P&gt;
&lt;P&gt;&lt;A href="https://developer.microsoft.com/en-us/reactor/events/27336/" target="_blank"&gt;Register for the stream on Reactor&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;In the first session of our Microsoft IQ Deep Dive with Python series, we’ll kick things off with an introduction to the Microsoft IQ family: Foundry IQ, Work IQ, Fabric IQ, and Web IQ. We’ll then take a deeper look at Foundry IQ (Azure AI Search), exploring how it helps agents and applications work with curated knowledge and organizational context. We'll build a knowledge base and connect it to multiple knowledge sources, including the new IQs, MCP servers, and search indexes built from ingested data. Then we'll perform multi-source agentic retrieval on the knowledge base, which executes queries in parallel and merges the results with state-of-the-art ranking models. Finally, we will build an agent in Python using Microsoft Agent Framework and ground the agent's responses in results from the Foundry IQ knowledge base. All code demos will use Python and will be available in an open-source repository for you to deploy yourself. After the stream, join office hours in the Microsoft Foundry Discord to ask follow-up questions.&lt;/P&gt;
&lt;A href="https://developer.microsoft.com/en-us/reactor/events/27337/" target="_blank"&gt;
&lt;H2&gt;Day 2: Work IQ&lt;/H2&gt;
&lt;/A&gt;
&lt;P&gt;29 July, 2026 | 5:00 PM - 6:00 PM (UTC) Coordinated Universal Time&lt;/P&gt;
&lt;P&gt;&lt;A href="https://developer.microsoft.com/en-us/reactor/events/27337/" target="_blank"&gt;Register for the stream on Reactor&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;In the second session of our Microsoft IQ Deep Dive with Python series, we’ll focus on Work IQ and how it brings workplace context into AI-powered experiences. We’ll explore how developers can use Work IQ through APIs, A2A patterns, MCP integration, and tool-based workflows. We’ll look at two practical tool examples, then show how Work IQ can be used from Copilot and from a Microsoft Agent Framework agent. All code demos will use Python and will be available in an open-source repository for you to deploy yourself. After the stream, join office hours in the Microsoft Foundry Discord to ask follow-up questions.&lt;/P&gt;
&lt;A href="https://developer.microsoft.com/en-us/reactor/events/27338/" target="_blank"&gt;
&lt;H2&gt;Day 3: Fabric IQ&lt;/H2&gt;
&lt;/A&gt;
&lt;P&gt;30 July, 2026 | 5:00 PM - 6:00 PM (UTC) Coordinated Universal Time&lt;/P&gt;
&lt;P&gt;&lt;A href="https://developer.microsoft.com/en-us/reactor/events/27338/" target="_blank"&gt;Register for the stream on Reactor&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;In the final session of our Microsoft IQ Deep Dive with Python series, we’ll explore Fabric IQ and how it connects AI experiences to structured business data. We’ll introduce the key concepts behind Fabric IQ, including ontologies and data agents, and show how they help describe, organize, and reason over operational data stored in OneLake. We’ll use the Microsoft Fabric API SDK in Python to connect to Fabric IQ, so that we can programmatically configure ontologies and answer questions about our data. All code demos will use Python and will be available in an open-source repository for you to deploy yourself. After the stream, join office hours in the Microsoft Foundry Discord to ask follow-up questions.&lt;/P&gt;</description>
      <pubDate>Thu, 25 Jun 2026 07:46:37 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-developer-community/join-our-free-livestream-series-on-using-microsoft-iq-with/ba-p/4530644</guid>
      <dc:creator>Pamela_Fox</dc:creator>
      <dc:date>2026-06-25T07:46:37Z</dc:date>
    </item>
    <item>
      <title>MCP Server Authorization with Azure API Management: From Simple to Advanced</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-developer-community/mcp-server-authorization-with-azure-api-management-from-simple/ba-p/4528869</link>
      <description>&lt;H2 data-line="5"&gt;Why put API Management in front of your MCP servers&lt;/H2&gt;
&lt;P data-line="7"&gt;The Model Context Protocol (MCP) has quickly become the standard way for AI agents, such as GitHub Copilot in VS Code, to reach external tools and data. As soon as an MCP server does anything meaningful, the same questions that govern any API resurface: who is allowed to call it, what are they allowed to do, and how do you enforce that consistently across many servers without rewriting each one.&lt;/P&gt;
&lt;P data-line="9"&gt;Azure API Management (APIM) answers those questions for MCP. It sits between the MCP client and the tool backend and applies the controls you already trust for REST APIs: identity validation, OAuth, rate limiting, IP filtering, and observability. Crucially, APIM speaks the MCP authorization specification, which is built on OAuth 2.1 and Protected Resource Metadata (PRM, RFC 9728). That means APIM can do more than block bad requests. It can actively drive an interactive sign-in from the IDE, so the user logs in with their own identity and the agent acts on their behalf.&lt;/P&gt;
&lt;P data-line="11"&gt;This article walks through a progression of authorization scenarios, each one building on the last:&lt;/P&gt;
&lt;OL data-line="13"&gt;
&lt;LI data-line="13"&gt;The simple case: validate a token and block everything else.&lt;/LI&gt;
&lt;LI data-line="14"&gt;Triggering an interactive sign-in from VS Code for an MCP server that APIM hosts from your own APIs.&lt;/LI&gt;
&lt;LI data-line="15"&gt;Going beyond "is this a tenant user" to "does this user have the right attribute" with Entra app roles.&lt;/LI&gt;
&lt;LI data-line="16"&gt;Fronting an existing external MCP server and letting it drive its own OAuth flow (GitHub as the example).&lt;/LI&gt;
&lt;LI data-line="17"&gt;Governing which tools of an existing MCP server an agent is actually allowed to invoke.&lt;/LI&gt;
&lt;/OL&gt;
&lt;H2 data-line="19"&gt;APIM MCP capabilities and the basic authorization options&lt;/H2&gt;
&lt;P data-line="21"&gt;API Management exposes MCP servers in two distinct ways, and the authorization story differs slightly for each.&lt;/P&gt;
&lt;UL data-line="23"&gt;
&lt;LI data-line="23"&gt;&lt;STRONG&gt;Expose a REST API as an MCP server.&lt;/STRONG&gt;&amp;nbsp;APIM takes an API it already manages and projects selected operations as MCP tools. You own the operations, so you choose exactly which ones become tools at configuration time. This is the right mode when the capability you want to expose is an API you control.&lt;/LI&gt;
&lt;LI data-line="24"&gt;&lt;STRONG&gt;Expose an existing MCP server (passthrough).&lt;/STRONG&gt;&amp;nbsp;APIM fronts a remote MCP-compatible server (LangChain, an Azure Function, GitHub's remote MCP server, your own container) and relays the MCP protocol to it. APIM governs access, but the upstream server still owns its tool catalog.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P data-line="26"&gt;On top of either mode, you have a spectrum of authorization options:&lt;/P&gt;
&lt;UL data-line="28"&gt;
&lt;LI data-line="28"&gt;&lt;STRONG&gt;Subscription keys&lt;/STRONG&gt;&amp;nbsp;for simple, machine-to-machine access where a shared secret in a header is acceptable.&lt;/LI&gt;
&lt;LI data-line="29"&gt;&lt;STRONG&gt;Token validation with Microsoft Entra ID&lt;/STRONG&gt;, where APIM acts as the protected resource and verifies a bearer token on every call.&lt;/LI&gt;
&lt;LI data-line="30"&gt;&lt;STRONG&gt;Interactive OAuth 2.1 sign-in&lt;/STRONG&gt;, where APIM advertises Protected Resource Metadata so an MCP client can discover the authorization server, log the user in, and retry with a user token.&lt;/LI&gt;
&lt;LI data-line="31"&gt;&lt;STRONG&gt;Authorization passthrough&lt;/STRONG&gt;, where an external MCP server presents its own authorization challenge and APIM relays it faithfully so the client authenticates directly against the upstream's identity provider.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P data-line="33"&gt;The rest of the article works through these options in increasing order of capability.&lt;/P&gt;
&lt;H2 data-line="35"&gt;The example setup&lt;/H2&gt;
&lt;P data-line="37"&gt;The walkthroughs in the first three scenarios all use the same backend so you can reproduce them without standing up anything of your own: the publicly available Star Wars API at&amp;nbsp;&lt;A href="https://swapi.online/" target="_blank" rel="noopener" data-href="https://swapi.online/"&gt;Star Wars API&lt;/A&gt;. It is a simple, read-friendly REST API (characters, films, planets, starships, and so on) imported into API Management as a normal API and then projected as an MCP server.&lt;/P&gt;
&lt;P data-line="39"&gt;The reason this single API is enough to illustrate the whole progression is that, in API Management, one underlying API can back several independent MCP servers, each exposing a different slice of its operations. For example, you can create:&lt;/P&gt;
&lt;UL data-line="41"&gt;
&lt;LI data-line="41"&gt;A&amp;nbsp;&lt;STRONG&gt;read-only&lt;/STRONG&gt;&amp;nbsp;MCP server that exposes only the&amp;nbsp;GET&amp;nbsp;operations, for agents that should be able to query data but never change it.&lt;/LI&gt;
&lt;LI data-line="42"&gt;A&amp;nbsp;&lt;STRONG&gt;write-capable&lt;/STRONG&gt;&amp;nbsp;MCP server that exposes the&amp;nbsp;POST,&amp;nbsp;PUT, or&amp;nbsp;DELETE&amp;nbsp;operations, for trusted automation that is allowed to mutate state.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P data-line="44"&gt;Same backend API, two MCP servers, two different tool surfaces. Each of these servers is an independent resource in APIM, so each one can carry its own authorization. Both can require an authenticated user (Scenarios 1 and 2), and you can go further by protecting only the sensitive one: gate the write-capable server behind an Entra app role so that, even among authenticated users, only those who carry a specific claim can reach the mutating tools. That app-role mechanism is the subject of Scenario 3, and it composes naturally with the multi-server split described here.&lt;/P&gt;
&lt;H3 data-line="46"&gt;Registering the MCP API in Microsoft Entra ID&lt;/H3&gt;
&lt;P data-line="48"&gt;Before any of the policies below can validate a token, you need an application registration in Microsoft Entra ID that represents the MCP API. This registration is what defines the audience and scope that tokens are issued for, and it is the source of the&amp;nbsp;mcp-audience,&amp;nbsp;mcp-scope, and (indirectly)&amp;nbsp;mcp-client-id&amp;nbsp;values that the policies reference. Create it once and reuse it across all the MCP servers in this article.&lt;/P&gt;
&lt;OL data-line="50"&gt;
&lt;LI data-line="50"&gt;In the Azure portal, open Microsoft Entra ID, then App registrations, then New registration. Name it (for example,&amp;nbsp;star-wars-mcp-api), choose single-tenant, and register. Record the Application (client) ID and the Directory (tenant) ID.&lt;/LI&gt;
&lt;LI data-line="51"&gt;Open Expose an API and add an Application ID URI. Accept the default&amp;nbsp;api://&amp;lt;app-id&amp;gt;. This URI is your token audience.&lt;/LI&gt;
&lt;LI data-line="52"&gt;Still under Expose an API, add a delegated scope named&amp;nbsp;MCP.Access, set its consent display name and description, set the state to Enabled, and save.&lt;/LI&gt;
&lt;LI data-line="53"&gt;Authorize the client that will request the scope. Under Expose an API, select Add a client application and enter the client ID of the MCP client. For VS Code, this is the built-in Microsoft authentication client&amp;nbsp;aebc6443-996d-45c2-90f0-388ff96faa56. Check the&amp;nbsp;MCP.Access&amp;nbsp;scope and save.&lt;/LI&gt;
&lt;/OL&gt;
&lt;P data-line="55"&gt;These steps produce the four constants the validation policy needs:&lt;/P&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table border="1" style="border-width: 1px;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Named value&lt;/th&gt;&lt;th&gt;Comes from&lt;/th&gt;&lt;th&gt;Example&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;entra-tenant-id&lt;/td&gt;&lt;td&gt;The Directory (tenant) ID from step 1&lt;/td&gt;&lt;td&gt;11111111-1111-1111-1111-111111111111&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;mcp-audience&lt;/td&gt;&lt;td&gt;The Application ID URI from step 2&lt;/td&gt;&lt;td&gt;api://22222222-2222-2222-2222-222222222222&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;mcp-scope&lt;/td&gt;&lt;td&gt;The scope name from step 3&lt;/td&gt;&lt;td&gt;MCP.Access&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;mcp-client-id&lt;/td&gt;&lt;td&gt;The client ID of the calling app from step 4&lt;/td&gt;&lt;td&gt;aebc6443-996d-45c2-90f0-388ff96faa56&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;colgroup&gt;&lt;col style="width: 33.33%" /&gt;&lt;col style="width: 33.33%" /&gt;&lt;col style="width: 33.33%" /&gt;&lt;/colgroup&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;PRE&gt;&lt;BR /&gt;[!NOTE] &lt;STRONG&gt;mcp-client-id&lt;/STRONG&gt; is the identity of the application calling the MCP server, not the MCP API itself. For VS Code it is the built-in Microsoft authentication client, and its value lands in the token's &lt;STRONG&gt;appid &lt;/STRONG&gt;claim, which is why the validation policy lists it under &lt;STRONG&gt;client-application-ids&lt;/STRONG&gt;. If your tenant blocks the first-party VS Code client, register your own public client application and use its client ID instead.&lt;BR /&gt;&lt;BR /&gt;[!TIP] For the privileged-access feature in Scenario 3, you will also declare an app role on this same registration. You do not need it yet, but it is convenient to know that all identity configuration for these servers lives on this one app registration.&lt;/PRE&gt;
&lt;P data-line="70"&gt;With that backend and structure in mind, the scenarios below build up the authorization model one capability at a time.&lt;/P&gt;
&lt;H2 data-line="72"&gt;Scenario 1: The simple case, validate the token and block unauthorized access&lt;/H2&gt;
&lt;P data-line="74"&gt;The most basic protection is to require a valid Entra ID token on every MCP request and reject anything that fails validation. No interactive flow, no roles, just a gate.&lt;/P&gt;
&lt;P data-line="76"&gt;APIM does this with the &lt;STRONG&gt;validate-azure-ad-token policy&lt;/STRONG&gt;. The policy checks the issuing tenant, the audience (your MCP API), the calling client application, and the required scope. Anything that does not satisfy all four is rejected with a &lt;STRONG&gt;401&lt;/STRONG&gt;.&lt;/P&gt;
&lt;LI-CODE lang="xml"&gt;&amp;lt;policies&amp;gt; &amp;lt;inbound&amp;gt; &amp;lt;base /&amp;gt; &amp;lt;validate-azure-ad-token tenant-id="{{entra-tenant-id}}" header-name="Authorization" failed-validation-httpcode="401" failed-validation-error-message="Unauthorized. Access token is missing or invalid."&amp;gt; &amp;lt;client-application-ids&amp;gt; &amp;lt;application-id&amp;gt;{{mcp-client-id}}&amp;lt;/application-id&amp;gt; &amp;lt;/client-application-ids&amp;gt; &amp;lt;audiences&amp;gt; &amp;lt;audience&amp;gt;{{mcp-audience}}&amp;lt;/audience&amp;gt; &amp;lt;/audiences&amp;gt; &amp;lt;required-claims&amp;gt; &amp;lt;claim name="scp" match="any"&amp;gt; &amp;lt;value&amp;gt;{{mcp-scope}}&amp;lt;/value&amp;gt; &amp;lt;/claim&amp;gt; &amp;lt;/required-claims&amp;gt; &amp;lt;/validate-azure-ad-token&amp;gt; &amp;lt;/inbound&amp;gt; &amp;lt;backend&amp;gt; &amp;lt;base /&amp;gt; &amp;lt;/backend&amp;gt; &amp;lt;outbound&amp;gt; &amp;lt;base /&amp;gt; &amp;lt;/outbound&amp;gt; &amp;lt;on-error&amp;gt; &amp;lt;base /&amp;gt; &amp;lt;/on-error&amp;gt; &amp;lt;/policies&amp;gt;&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P data-line="112"&gt;The values in double braces are APIM named values: centralized constants, defined once and shared by every MCP server. They map directly to the four values produced by the Entra app registration in the example setup (&lt;STRONG&gt;entra-tenant-id,&amp;nbsp;mcp-audience,&amp;nbsp;mcp-scope, and&amp;nbsp;mcp-client-id&lt;/STRONG&gt;). Storing them as named values keeps the policy free of hardcoded identifiers and lets every server reuse the same configuration.&lt;/P&gt;
&lt;P data-line="114"&gt;This gets you a server that nobody can call without a properly minted token. What it does not do is help a fresh client obtain that token in the first place. That is the next scenario.&lt;/P&gt;
&lt;H2 data-line="116"&gt;Scenario 2: Driving an interactive sign-in from VS Code for an APIM-hosted MCP server&lt;/H2&gt;
&lt;P data-line="118"&gt;When you expose one of your own APIs as an MCP server, you usually want a developer to open VS Code, connect to the server, and be prompted to sign in with their Microsoft account. No pre-shared key, no manual token handling. APIM achieves this by behaving as a well-mannered OAuth 2.1 protected resource.&lt;/P&gt;
&lt;P data-line="120"&gt;Using the Star Wars MCP server from the example setup, each selected operation becomes a tool the agent can call, so an agent can answer "which films featured the character named Leia" by calling the underlying API through APIM.&lt;/P&gt;
&lt;H3 data-line="122"&gt;How the sign-in flow works&lt;/H3&gt;
&lt;P data-line="124"&gt;The protocol choreography is what turns a plain 401 into an interactive login:&lt;/P&gt;
&lt;P data-line="124"&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P data-line="145"&gt;Two ingredients make this work: a&amp;nbsp;401&amp;nbsp;challenge that points to a metadata document, and the metadata document itself.&lt;/P&gt;
&lt;H3 data-line="147"&gt;The challenge: a 401 that points the client to its metadata&lt;/H3&gt;
&lt;P data-line="149"&gt;Instead of a bare&amp;nbsp;&lt;STRONG&gt;401&lt;/STRONG&gt;, APIM returns a&amp;nbsp;&lt;STRONG&gt;WWW-Authenticate&amp;nbsp;header&lt;/STRONG&gt; carrying the URL of the server's Protected Resource Metadata. This is what tells the client "you need a token, and here is where to learn how to get one." Keeping this logic in a shared policy fragment means every MCP server reuses it.&lt;/P&gt;
&lt;P data-line="151"&gt;Notice the&amp;nbsp;&lt;STRONG&gt;mcpResourceMetadataUrl&amp;nbsp;&lt;/STRONG&gt;reference in the fragment below. It is not hardcoded; it is a context variable that each MCP server sets in its own server-level policy before including this fragment (you will see that wiring in the per-server policy later in this scenario). The fragment simply reads whatever value the calling server provided. This indirection is what keeps the fragment pluggable: the same shared challenge-and-validate logic serves every MCP server, while each server supplies its own PRM URL.&lt;/P&gt;
&lt;P data-line="153"&gt;In most deployments the PRM endpoint is a single, dynamic one (built in the next section) that derives the resource from the request path, so the variable just carries that server's path. But because the URL is configurable per server rather than baked into the fragment, you retain flexibility for the cases that need it.&lt;/P&gt;
&lt;LI-CODE lang="xml"&gt;&amp;lt;fragment&amp;gt; &amp;lt;!-- No token: challenge with the per-server PRM URL set by the caller --&amp;gt; &amp;lt;choose&amp;gt; &amp;lt;when condition="@(!context.Request.Headers.ContainsKey("Authorization"))"&amp;gt; &amp;lt;return-response&amp;gt; &amp;lt;set-status code="401" reason="Unauthorized" /&amp;gt; &amp;lt;set-header name="WWW-Authenticate" exists-action="override"&amp;gt; &amp;lt;value&amp;gt;@("Bearer resource_metadata=\"" + (string)context.Variables.GetValueOrDefault("mcpResourceMetadataUrl", "") + "\"")&amp;lt;/value&amp;gt; &amp;lt;/set-header&amp;gt; &amp;lt;/return-response&amp;gt; &amp;lt;/when&amp;gt; &amp;lt;/choose&amp;gt; &amp;lt;!-- Token present: validate against shared named values --&amp;gt; &amp;lt;validate-azure-ad-token tenant-id="{{entra-tenant-id}}" header-name="Authorization" failed-validation-httpcode="401" failed-validation-error-message="Unauthorized. Access token is missing or invalid."&amp;gt; &amp;lt;client-application-ids&amp;gt; &amp;lt;application-id&amp;gt;{{mcp-client-id}}&amp;lt;/application-id&amp;gt; &amp;lt;/client-application-ids&amp;gt; &amp;lt;audiences&amp;gt; &amp;lt;audience&amp;gt;{{mcp-audience}}&amp;lt;/audience&amp;gt; &amp;lt;/audiences&amp;gt; &amp;lt;required-claims&amp;gt; &amp;lt;claim name="scp" match="any"&amp;gt; &amp;lt;value&amp;gt;{{mcp-scope}}&amp;lt;/value&amp;gt; &amp;lt;/claim&amp;gt; &amp;lt;/required-claims&amp;gt; &amp;lt;/validate-azure-ad-token&amp;gt; &amp;lt;/fragment&amp;gt;&lt;/LI-CODE&gt;
&lt;H3 data-line="189"&gt;Creating the /.well-known PRM endpoint in APIM with a policy&lt;/H3&gt;
&lt;P data-line="191"&gt;This is the part that often surprises people: APIM itself serves the metadata document. There is no separate identity service to stand up. You publish one small anonymous API at the service root that answers&amp;nbsp;GET /.well-known/oauth-protected-resource/*, derives the&amp;nbsp;resource&amp;nbsp;value from the requested path, and returns a JSON document pointing at Microsoft Entra ID as the authorization server.&lt;/P&gt;
&lt;P data-line="193"&gt;Create a blank HTTP API named well-known with an empty API URL suffix so it resolves at the service root, add a GET operation with the template /.well-known/oauth-protected-resource/*, clear the subscription requirement so it is reachable anonymously, and apply this policy:&lt;/P&gt;
&lt;P data-line="193"&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="xml"&gt;&amp;lt;policies&amp;gt; &amp;lt;inbound&amp;gt; &amp;lt;base /&amp;gt; &amp;lt;!-- Build the resource URL from the requested PRM sub-path --&amp;gt; &amp;lt;set-variable name="resourceUrl" value="@{ var prefix = "/.well-known/oauth-protected-resource"; var path = context.Request.OriginalUrl.Path; var resourcePath = path.Length &amp;gt; prefix.Length ? path.Substring(prefix.Length) : ""; return "https://" + context.Request.OriginalUrl.Host + resourcePath; }" /&amp;gt; &amp;lt;return-response&amp;gt; &amp;lt;set-status code="200" reason="OK" /&amp;gt; &amp;lt;set-header name="Content-Type" exists-action="override"&amp;gt; &amp;lt;value&amp;gt;application/json&amp;lt;/value&amp;gt; &amp;lt;/set-header&amp;gt; &amp;lt;set-body&amp;gt;@{ return new JObject( new JProperty("resource", (string)context.Variables["resourceUrl"]), new JProperty("authorization_servers", new JArray( "https://login.microsoftonline.com/{{entra-tenant-id}}/v2.0")), new JProperty("scopes_supported", new JArray("{{mcp-prm-scope}}")), new JProperty("bearer_methods_supported", new JArray("header")) ).ToString(); }&amp;lt;/set-body&amp;gt; &amp;lt;/return-response&amp;gt; &amp;lt;/inbound&amp;gt; &amp;lt;backend&amp;gt; &amp;lt;base /&amp;gt; &amp;lt;/backend&amp;gt; &amp;lt;outbound&amp;gt; &amp;lt;base /&amp;gt; &amp;lt;/outbound&amp;gt; &amp;lt;on-error&amp;gt; &amp;lt;base /&amp;gt; &amp;lt;/on-error&amp;gt; &amp;lt;/policies&amp;gt;&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The&amp;nbsp;&lt;STRONG&gt;{{mcp-prm-scope}}&lt;/STRONG&gt;&amp;nbsp;named value populates the&amp;nbsp;scopes_supported&amp;nbsp;array of the metadata document. It tells the client which delegated scope to request when it goes to the authorization server, so it must be the&amp;nbsp;&lt;STRONG&gt;fully qualified scope value&lt;/STRONG&gt;: the token audience (the Application ID URI from the app registration) followed by the scope name. With the example values that is&lt;EM&gt; api://22222222-2222-2222-2222-222222222222/MCP.Access&lt;/EM&gt;. In other words, it is the combination of the &lt;STRONG&gt;mcp-audience &lt;/STRONG&gt;and &lt;STRONG&gt;mcp-scope&lt;/STRONG&gt; values defined in the example setup.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table border="1" style="border-width: 1px;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Named value&lt;/th&gt;&lt;th&gt;Value to set&lt;/th&gt;&lt;th&gt;Example&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;mcp-prm-scope&lt;/td&gt;&lt;td&gt;&amp;lt;mcp-audience&amp;gt;/&amp;lt;mcp-scope&amp;gt;&lt;/td&gt;&lt;td&gt;api://22222222-2222-2222-2222-222222222222/MCP.Access&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;colgroup&gt;&lt;col style="width: 33.33%" /&gt;&lt;col style="width: 33.33%" /&gt;&lt;col style="width: 33.33%" /&gt;&lt;/colgroup&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;P data-line="240"&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE data-line="240"&gt;[!NOTE] Keep mcp-prm-scope in sync with the scope the validation fragment requires. The PRM document advertises this scope so the client requests it, and validate-azure-ad-token then checks for it in the scp claim. A mismatch means the client obtains a token without the scope APIM expects, and validation fails.&lt;/PRE&gt;
&lt;P data-line="243"&gt;Because the policy builds the resource value from the request path, this single endpoint serves metadata for every MCP server you ever add. The Star Wars server, a future inventory server, and anything else all share it.&lt;/P&gt;
&lt;H3 data-line="245"&gt;Wiring it onto the MCP server&lt;/H3&gt;
&lt;P data-line="247"&gt;Each MCP server only needs to declare its own metadata URL and include the shared fragment:&lt;/P&gt;
&lt;LI-CODE lang="xml"&gt;&amp;lt;policies&amp;gt; &amp;lt;inbound&amp;gt; &amp;lt;base /&amp;gt; &amp;lt;set-variable name="mcpResourceMetadataUrl" value="https://apim-contoso-mcp.azure-api.net/.well-known/oauth-protected-resource/star-wars-mcp/mcp" /&amp;gt; &amp;lt;include-fragment fragment-id="mcp-entra-auth" /&amp;gt; &amp;lt;/inbound&amp;gt; &amp;lt;backend&amp;gt; &amp;lt;base /&amp;gt; &amp;lt;/backend&amp;gt; &amp;lt;outbound&amp;gt; &amp;lt;base /&amp;gt; &amp;lt;/outbound&amp;gt; &amp;lt;on-error&amp;gt; &amp;lt;base /&amp;gt; &amp;lt;include-fragment fragment-id="mcp-auth-challenge-onerror" /&amp;gt; &amp;lt;/on-error&amp;gt; &amp;lt;/policies&amp;gt;&lt;/LI-CODE&gt;
&lt;P data-line="247"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P data-line="247"&gt;On the VS Code side, the configuration is deliberately plain. With no subscription-key header present, the client falls straight into the OAuth flow:&lt;/P&gt;
&lt;P data-line="247"&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="json"&gt;{ "servers": { "star-wars-mcp": { "url": "https://apim-contoso-mcp.azure-api.net/star-wars-mcp/mcp", "type": "http" } } }&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P data-line="283"&gt;Restart the server in VS Code, and it detects the&amp;nbsp;401, reads the metadata, opens a browser sign-in, requests consent on first use, and then loads the tools using the user's token.&lt;/P&gt;
&lt;PRE data-line="285"&gt;[!CAUTION] Do not read the response body with context.Response.Body inside MCP server policies. It forces response buffering and breaks the MCP streaming transport. If global diagnostic logging is enabled, set the Frontend Response payload bytes to log to 0 at the All APIs scope.&lt;BR /&gt;&lt;BR /&gt;&lt;/PRE&gt;
&lt;H2 data-line="288"&gt;Scenario 3: Beyond tenant membership, authorize on a user attribute with app roles&lt;/H2&gt;
&lt;P data-line="290"&gt;Validating a token confirms the caller is a signed-in user in your tenant with the right scope. That is often not enough. Some MCP servers expose sensitive tools that only a subset of users should reach. You want to express "this user is not only part of the tenant, but has a specific attribute that permits this server."&lt;/P&gt;
&lt;P data-line="292"&gt;Microsoft Entra app roles are the optimal mechanism for this. You declare a role on the MCP API app registration, assign it to specific users or to a security group, and Entra ID emits a&amp;nbsp;roles&amp;nbsp;claim in the access token whenever your API is the audience. APIM then authorizes on that claim. App roles beat the&amp;nbsp;groups&amp;nbsp;claim here because they avoid the group overage problem, they are scoped to the application, and they travel with the app.&lt;/P&gt;
&lt;H3 data-line="294"&gt;Declaring and assigning the role&lt;/H3&gt;
&lt;P data-line="296"&gt;On the MCP API app registration, under App roles, create a role:&lt;/P&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table border="1" style="border-width: 1px;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Setting&lt;/th&gt;&lt;th&gt;Value&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Display name&lt;/td&gt;&lt;td&gt;Privileged Access&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Allowed member types&lt;/td&gt;&lt;td&gt;Users/Groups&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Value&lt;/td&gt;&lt;td&gt;Privileged.Access&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Description&lt;/td&gt;&lt;td&gt;Access to privileged MCP servers&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;colgroup&gt;&lt;col style="width: 50.00%" /&gt;&lt;col style="width: 50.00%" /&gt;&lt;/colgroup&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;P data-line="305"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P data-line="305"&gt;Then, on the matching enterprise application, under Users and groups, assign the users (or, better, a security group) to the Privileged Access role. The Value field is the exact string that lands in the token roles claim, so it cannot contain spaces.&lt;/P&gt;
&lt;P data-line="307"&gt;[!TIP] Keep User assignment required set to No on the enterprise application. Unassigned users still obtain a valid token with the&amp;nbsp;MCP.Access&amp;nbsp;scope and keep access to the non-privileged servers. They simply do not carry the&amp;nbsp;roles&amp;nbsp;claim, so the privileged servers reject them.&lt;/P&gt;
&lt;H3 data-line="310"&gt;Enforcing the claim in the per-server policy&lt;/H3&gt;
&lt;P data-line="312"&gt;The shared mcp-entra-auth fragment is used by every server, so the role requirement must not live there. Place the check in the privileged server's own policy, right after the fragment include. The token is already validated at that point, so this step is pure authorization. Because the caller is authenticated but not authorized, return 403, not 401, and do not emit a challenge: re-authenticating will not grant a role the user does not have.&lt;/P&gt;
&lt;P data-line="312"&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="xml"&gt;&amp;lt;policies&amp;gt; &amp;lt;inbound&amp;gt; &amp;lt;base /&amp;gt; &amp;lt;set-variable name="mcpResourceMetadataUrl" value="https://apim-contoso-mcp.azure-api.net/.well-known/oauth-protected-resource/star-wars-mcp/mcp" /&amp;gt; &amp;lt;include-fragment fragment-id="mcp-entra-auth" /&amp;gt; &amp;lt;!-- Privileged guardrail: require the Privileged.Access app role --&amp;gt; &amp;lt;choose&amp;gt; &amp;lt;when condition="@(!context.Request.Headers.GetValueOrDefault("Authorization","").Replace("Bearer ","").AsJwt().Claims.GetValueOrDefault("roles", new string[0]).Contains("Privileged.Access"))"&amp;gt; &amp;lt;return-response&amp;gt; &amp;lt;set-status code="403" reason="Forbidden" /&amp;gt; &amp;lt;set-header name="Content-Type" exists-action="override"&amp;gt; &amp;lt;value&amp;gt;application/json&amp;lt;/value&amp;gt; &amp;lt;/set-header&amp;gt; &amp;lt;set-body&amp;gt;{"error":"forbidden","message":"You lack the Privileged.Access role required for this MCP server."}&amp;lt;/set-body&amp;gt; &amp;lt;/return-response&amp;gt; &amp;lt;/when&amp;gt; &amp;lt;/choose&amp;gt; &amp;lt;/inbound&amp;gt; &amp;lt;backend&amp;gt; &amp;lt;base /&amp;gt; &amp;lt;/backend&amp;gt; &amp;lt;outbound&amp;gt; &amp;lt;base /&amp;gt; &amp;lt;/outbound&amp;gt; &amp;lt;on-error&amp;gt; &amp;lt;base /&amp;gt; &amp;lt;include-fragment fragment-id="mcp-auth-challenge-onerror" /&amp;gt; &amp;lt;/on-error&amp;gt; &amp;lt;/policies&amp;gt;&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;One operational detail worth calling out: app-role assignments only appear in newly issued tokens. A user who is granted the role after they signed in must obtain a fresh token. In VS Code, run MCP: Reset Cached Tokens (or sign out of the Microsoft account from the Accounts menu), then restart the server and sign in again. You can confirm the result by pasting the access token into &lt;EM&gt;https://jwt.ms&lt;/EM&gt; and checking for &lt;EM&gt;"roles": ["Privileged.Access"]&lt;/EM&gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2 data-line="349"&gt;Scenario 4: Fronting an existing external MCP server that drives its own sign-in&lt;/H2&gt;
&lt;P data-line="351"&gt;So far APIM has been the authorization resource. But many valuable MCP servers already exist and run their own identity. GitHub publishes a remote MCP server with dozens of tools, and it authenticates users against GitHub's own OAuth authorization server. You do not want to re-implement that. You want APIM to govern access (rate limits, IP rules, logging, a single managed endpoint) while letting the upstream own the login.&lt;/P&gt;
&lt;P data-line="353"&gt;This is the "expose an existing MCP server" passthrough mode. When you register GitHub's remote MCP server behind APIM, the gateway relays the upstream's own authorization challenge. The client never authenticates against Entra here. It authenticates directly against GitHub.&lt;/P&gt;
&lt;P data-line="355"&gt;The flow, confirmed by probing the gateway:&lt;/P&gt;
&lt;UL data-line="357"&gt;
&lt;LI data-line="357"&gt;A call to the APIM endpoint with no token returns GitHub's own&amp;nbsp;&lt;EM&gt;401&lt;/EM&gt;&amp;nbsp;with a&amp;nbsp;&lt;EM&gt;WWW-Authenticate&amp;nbsp;&lt;/EM&gt;header, relayed through APIM.&lt;/LI&gt;
&lt;LI data-line="358"&gt;The Protected Resource Metadata that GitHub serves advertises&amp;nbsp;au&lt;EM&gt;thorization_servers: ["https://github.com/login/oauth"]&lt;/EM&gt;, so the client knows to log in at GitHub.&lt;/LI&gt;
&lt;LI data-line="359"&gt;The &lt;EM&gt;PRM&amp;nbsp;resource&lt;/EM&gt;&amp;nbsp;reflects the APIM host, because GitHub builds it from the forwarded&amp;nbsp;Host&amp;nbsp;header. The client trusts the APIM endpoint while still logging in at GitHub.&lt;/LI&gt;
&lt;LI data-line="360"&gt;VS Code completes the GitHub sign-in and the full tool catalog loads. In the proof of concept this surfaced all 47 GitHub tools through the single APIM endpoint.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P data-line="362"&gt;The client configuration is again just a URL pointing at APIM:&lt;/P&gt;
&lt;P data-line="362"&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="json"&gt;{ "servers": { "github-via-apim": { "url": "https://apim-contoso-mcp.azure-api.net/github-mcp/mcp", "type": "http" } } }&lt;/LI-CODE&gt;
&lt;P data-line="362"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P data-line="375"&gt;The key insight is that APIM transparently relays the backend's authentication challenge. GitHub remains the authorization server, GitHub tolerates being fronted by APIM, and you get a governed, centrally managed entry point without owning the identity flow.&lt;/P&gt;
&lt;PRE data-line="377"&gt;[!NOTE] Passthrough only relays what the upstream advertises. If the backend's PRM &lt;EM&gt;resource &lt;/EM&gt;value and the actual MCP transport endpoint differ by a path segment, some clients fall back to deriving the metadata location from the server URL and can miss it. When you onboard a custom self-authenticating server, verify that the &lt;EM&gt;resource &lt;/EM&gt;it advertises matches the exact URL the client connects to.&lt;BR /&gt;&lt;BR /&gt;&lt;/PRE&gt;
&lt;H2 data-line="380"&gt;Scenario 5: Restricting which tools of an existing MCP server an agent may call&lt;/H2&gt;
&lt;P data-line="382"&gt;Passthrough raises a governance question that token validation alone cannot answer. A developer may legitimately have permission to merge a pull request through GitHub, but you may not want their AI agent to perform that action autonomously. You want to allow the read and discovery tools while blocking the destructive write tools, at the gateway, regardless of what the client tries.&lt;/P&gt;
&lt;H3 data-line="384"&gt;What is and is not possible for an external server&lt;/H3&gt;
&lt;P data-line="386"&gt;It is important to be precise here, because the capability differs from the REST-as-MCP mode:&lt;/P&gt;
&lt;UL data-line="388"&gt;
&lt;LI data-line="388"&gt;For a&amp;nbsp;&lt;STRONG&gt;REST-API-exposed-as-MCP&lt;/STRONG&gt;&amp;nbsp;server, you pick which operations become tools at creation time. That is native tool selection and the cleanest possible filter.&lt;/LI&gt;
&lt;LI data-line="389"&gt;For an&amp;nbsp;&lt;STRONG&gt;existing/external MCP server&lt;/STRONG&gt;, APIM does not enumerate the upstream's tools. The portal Tools blade explicitly states that tools are not visible for external MCP servers, and there is no allow-list property for them. APIM also cannot safely rewrite the&amp;nbsp;tools/list&amp;nbsp;response, because reading the response body breaks the streaming transport and the list may arrive as&amp;nbsp;text/event-stream.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P data-line="391"&gt;What APIM can do reliably, and server-agnostically, is block the invocation. Every tool call arrives as a JSON-RPC tools/call request in the request body, which APIM can inspect safely. The deny-listed tools remain visible in the catalog, but any attempt to invoke one is intercepted at the gateway and returned a JSON-RPC error before it ever reaches the upstream.&lt;/P&gt;
&lt;P data-line="391"&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P data-line="362"&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3 data-line="408"&gt;The reusable deny-list fragment&lt;/H3&gt;
&lt;P data-line="410"&gt;The block is driven by a per-server named value (a comma-separated list of tool names), so the same fragment governs every external server. Only the named value changes.&lt;/P&gt;
&lt;LI-CODE lang="xml"&gt;&amp;lt;!-- Fragment: mcp-tool-filter (include after the auth fragment) --&amp;gt; &amp;lt;fragment&amp;gt; &amp;lt;choose&amp;gt; &amp;lt;when condition="@(context.Request.Body != null)"&amp;gt; &amp;lt;set-variable name="mcpMethod" value="@{ try { var body = context.Request.Body.As&amp;lt;JObject&amp;gt;(preserveContent: true); return (string)body?["method"] ?? string.Empty; } catch { return string.Empty; } }" /&amp;gt; &amp;lt;choose&amp;gt; &amp;lt;when condition="@(((string)context.Variables["mcpMethod"]).Equals("tools/call", StringComparison.OrdinalIgnoreCase))"&amp;gt; &amp;lt;set-variable name="mcpToolName" value="@{ var body = context.Request.Body.As&amp;lt;JObject&amp;gt;(preserveContent: true); return (string)body?["params"]?["name"] ?? string.Empty; }" /&amp;gt; &amp;lt;!-- mcpBlockedTools is a comma-separated deny-list set by the per-server policy before this include --&amp;gt; &amp;lt;set-variable name="mcpBlocked" value="@{ var tool = ((string)context.Variables["mcpToolName"]).Trim().ToLowerInvariant(); var deny = ((string)context.Variables.GetValueOrDefault("mcpBlockedTools", "")).ToLowerInvariant().Split(',').Select(t =&amp;gt; t.Trim()); return deny.Contains(tool); }" /&amp;gt; &amp;lt;choose&amp;gt; &amp;lt;when condition="@((bool)context.Variables["mcpBlocked"])"&amp;gt; &amp;lt;return-response&amp;gt; &amp;lt;set-status code="200" reason="OK" /&amp;gt; &amp;lt;set-header name="Content-Type" exists-action="override"&amp;gt; &amp;lt;value&amp;gt;application/json&amp;lt;/value&amp;gt; &amp;lt;/set-header&amp;gt; &amp;lt;set-body&amp;gt;@{ var id = "null"; try { var body = context.Request.Body.As&amp;lt;JObject&amp;gt;(preserveContent: true); id = body?["id"]?.ToString(Newtonsoft.Json.Formatting.None) ?? "null"; } catch {} return "{\"jsonrpc\":\"2.0\",\"id\":" + id + ",\"error\":{\"code\":-32602,\"message\":\"Unknown tool: " + ((string)context.Variables["mcpToolName"]) + "\"}}"; }&amp;lt;/set-body&amp;gt; &amp;lt;/return-response&amp;gt; &amp;lt;/when&amp;gt; &amp;lt;/choose&amp;gt; &amp;lt;/when&amp;gt; &amp;lt;/choose&amp;gt; &amp;lt;/when&amp;gt; &amp;lt;/choose&amp;gt; &amp;lt;/fragment&amp;gt;&lt;/LI-CODE&gt;
&lt;P data-line="410"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P data-line="462"&gt;The deny-list itself lives in a named value, one per server:&lt;/P&gt;
&lt;P data-line="410"&gt;APIM named value. Comma-separated, case-insensitive.&lt;/P&gt;
&lt;P data-line="410"&gt;&lt;STRONG&gt;mcp-blocked-tools-github&lt;/STRONG&gt; = &lt;EM&gt;merge_pull_request,create_repository,delete_repository,push_files,create_or_update_file,issue_write,label_write&amp;nbsp;&lt;/EM&gt;#&lt;/P&gt;
&lt;LI-CODE lang="xml"&gt;&amp;lt;policies&amp;gt; &amp;lt;inbound&amp;gt; &amp;lt;base /&amp;gt; &amp;lt;set-variable name="mcpResourceMetadataUrl" value="https://apim-contoso-mcp.azure-api.net/.well-known/oauth-protected-resource/github-mcp/mcp" /&amp;gt; &amp;lt;include-fragment fragment-id="mcp-entra-auth" /&amp;gt; &amp;lt;set-variable name="mcpBlockedTools" value="{{mcp-blocked-tools-github}}" /&amp;gt; &amp;lt;include-fragment fragment-id="mcp-tool-filter" /&amp;gt; &amp;lt;/inbound&amp;gt; &amp;lt;backend&amp;gt; &amp;lt;base /&amp;gt; &amp;lt;/backend&amp;gt; &amp;lt;outbound&amp;gt; &amp;lt;base /&amp;gt; &amp;lt;/outbound&amp;gt; &amp;lt;on-error&amp;gt; &amp;lt;base /&amp;gt; &amp;lt;include-fragment fragment-id="mcp-auth-challenge-onerror" /&amp;gt; &amp;lt;/on-error&amp;gt; &amp;lt;/policies&amp;gt;&lt;/LI-CODE&gt;
&lt;P data-line="410"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P data-line="410"&gt;Generic per-server pattern: &lt;EM&gt;&lt;STRONG&gt;mcp-blocked-tools-&amp;lt;server&amp;gt; = &amp;lt;comma,separated,tool,names&amp;gt;&lt;/STRONG&gt;&lt;/EM&gt;&lt;/P&gt;
&lt;H3 data-line="472"&gt;Wiring it onto the GitHub passthrough server&lt;/H3&gt;
&lt;LI-CODE lang="xml"&gt;&amp;lt;policies&amp;gt; &amp;lt;inbound&amp;gt; &amp;lt;base /&amp;gt; &amp;lt;set-variable name="mcpResourceMetadataUrl" value="https://apim-contoso-mcp.azure-api.net/.well-known/oauth-protected-resource/github-mcp/mcp" /&amp;gt; &amp;lt;include-fragment fragment-id="mcp-entra-auth" /&amp;gt; &amp;lt;set-variable name="mcpBlockedTools" value="{{mcp-blocked-tools-github}}" /&amp;gt; &amp;lt;include-fragment fragment-id="mcp-tool-filter" /&amp;gt; &amp;lt;/inbound&amp;gt; &amp;lt;backend&amp;gt; &amp;lt;base /&amp;gt; &amp;lt;/backend&amp;gt; &amp;lt;outbound&amp;gt; &amp;lt;base /&amp;gt; &amp;lt;/outbound&amp;gt; &amp;lt;on-error&amp;gt; &amp;lt;base /&amp;gt; &amp;lt;include-fragment fragment-id="mcp-auth-challenge-onerror" /&amp;gt; &amp;lt;/on-error&amp;gt; &amp;lt;/policies&amp;gt;&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P data-line="497"&gt;Now when the agent tries to merge a pull request, the gateway returns a clean&amp;nbsp;-32602 Unknown tool&amp;nbsp;error and the upstream is never touched. Read and discovery tools continue to work. The tool still appears in the client's catalog.&lt;/P&gt;
&lt;P data-line="499"&gt;Adding governance for another external server is just one more named value plus the same fragment include. No new policy logic.&lt;/P&gt;
&lt;H2 data-line="501"&gt;Key takeaways&lt;/H2&gt;
&lt;UL data-line="503"&gt;
&lt;LI data-line="503"&gt;API Management turns MCP servers into governed resources, applying the same identity, traffic, and observability controls you already use for APIs.&lt;/LI&gt;
&lt;LI data-line="504"&gt;Start simple with&amp;nbsp;validate-azure-ad-token&amp;nbsp;to gate access, then graduate to a full interactive sign-in by serving Protected Resource Metadata from a single APIM policy.&lt;/LI&gt;
&lt;LI data-line="505"&gt;You can publish multiple MCP servers from one underlying API, for example a read-only server and a read-write server, by selecting different operations.&lt;/LI&gt;
&lt;LI data-line="506"&gt;App roles let you authorize on a user attribute, not just tenant membership, and the check belongs in the per-server policy so shared logic stays clean.&lt;/LI&gt;
&lt;LI data-line="507"&gt;For existing external servers, APIM relays the upstream's own OAuth flow, so a server like GitHub keeps owning its identity while you keep central governance.&lt;/LI&gt;
&lt;LI data-line="508"&gt;When an external server's full tool surface is too broad, APIM can block specific tool invocations at the gateway with a reusable, named-value-driven policy, so a user's agent cannot perform actions the user could perform manually.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2 data-line="510"&gt;References&lt;/H2&gt;
&lt;UL data-line="512"&gt;
&lt;LI data-line="512"&gt;&lt;A href="https://learn.microsoft.com/en-us/azure/api-management/mcp-server-overview" target="_blank" rel="noopener" data-href="https://learn.microsoft.com/en-us/azure/api-management/mcp-server-overview"&gt;About MCP servers in Azure API Management&lt;/A&gt;&lt;/LI&gt;
&lt;LI data-line="513"&gt;&lt;A href="https://learn.microsoft.com/en-us/azure/api-management/secure-mcp-servers" target="_blank" rel="noopener" data-href="https://learn.microsoft.com/en-us/azure/api-management/secure-mcp-servers"&gt;Secure access to MCP servers in API Management&lt;/A&gt;&lt;/LI&gt;
&lt;LI data-line="514"&gt;&lt;A href="https://learn.microsoft.com/en-us/azure/api-management/export-rest-mcp-server" target="_blank" rel="noopener" data-href="https://learn.microsoft.com/en-us/azure/api-management/export-rest-mcp-server"&gt;Expose REST API in API Management as an MCP server&lt;/A&gt;&lt;/LI&gt;
&lt;LI data-line="515"&gt;&lt;A href="https://learn.microsoft.com/en-us/azure/api-management/expose-existing-mcp-server" target="_blank" rel="noopener" data-href="https://learn.microsoft.com/en-us/azure/api-management/expose-existing-mcp-server"&gt;Expose and govern an existing MCP server&lt;/A&gt;&lt;/LI&gt;
&lt;LI data-line="516"&gt;&lt;A href="https://learn.microsoft.com/en-us/azure/api-management/validate-azure-ad-token-policy" target="_blank" rel="noopener" data-href="https://learn.microsoft.com/en-us/azure/api-management/validate-azure-ad-token-policy"&gt;validate-azure-ad-token policy reference&lt;/A&gt;&lt;/LI&gt;
&lt;LI data-line="517"&gt;&lt;A href="https://learn.microsoft.com/en-us/azure/api-management/policy-fragments" target="_blank" rel="noopener" data-href="https://learn.microsoft.com/en-us/azure/api-management/policy-fragments"&gt;Policy fragments in API Management&lt;/A&gt;&lt;/LI&gt;
&lt;LI data-line="518"&gt;&lt;A href="https://www.rfc-editor.org/rfc/rfc9728" target="_blank" rel="noopener" data-href="https://www.rfc-editor.org/rfc/rfc9728"&gt;RFC 9728: OAuth 2.0 Protected Resource Metadata&lt;/A&gt;&lt;/LI&gt;
&lt;LI data-line="519"&gt;&lt;A href="https://modelcontextprotocol.io/specification/2025-06-18/basic/authorization" target="_blank" rel="noopener" data-href="https://modelcontextprotocol.io/specification/2025-06-18/basic/authorization"&gt;MCP authorization specification&lt;/A&gt;&lt;/LI&gt;
&lt;LI data-line="520"&gt;&lt;A href="https://swapi.online/" target="_blank" rel="noopener" data-href="https://swapi.online/"&gt;Star Wars API (example backend)&lt;/A&gt;&lt;/LI&gt;
&lt;LI data-line="520"&gt;&lt;A class="lia-external-url" href="https://aka.ms/mcp-for-beginners" target="_blank"&gt;MCP for Beginners&amp;nbsp;&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;</description>
      <pubDate>Wed, 24 Jun 2026 12:50:23 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-developer-community/mcp-server-authorization-with-azure-api-management-from-simple/ba-p/4528869</guid>
      <dc:creator>vzisiadis</dc:creator>
      <dc:date>2026-06-24T12:50:23Z</dc:date>
    </item>
    <item>
      <title>The Token Economics of the Edge: Running Qwen3 on a Windows NPU with WinML CLI</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-developer-community/the-token-economics-of-the-edge-running-qwen3-on-a-windows-npu/ba-p/4530054</link>
      <description>&lt;H2&gt;The number that changes the conversation&lt;/H2&gt;
&lt;P&gt;Most "run an LLM locally" tutorials start with the model. This one starts with a bill.&lt;/P&gt;
&lt;P&gt;Every token a cloud LLM generates is metered. One request is rounding-error cheap. But agents don't make one request — they make thousands, in loops, with retries, across every user, every day, forever. The cost curve of a successful AI feature is not flat; it bends upward with adoption. The thing that makes your product popular is the same thing that makes it expensive to run.&lt;/P&gt;
&lt;P&gt;That's the uncomfortable truth behind&amp;nbsp;&lt;STRONG&gt;token economics&lt;/STRONG&gt;: in the cloud, the marginal cost of intelligence never reaches zero. You rent it, per token, for as long as the feature lives.&lt;/P&gt;
&lt;P&gt;Edge inference flips the equation. Once the model runs on hardware the user already owns, the marginal cost of the next token trends toward zero. You pay a fixed cost once — the silicon — and then you generate as many tokens as you like. For a whole class of workloads — chat assistants, summarizers, classifiers, on-device copilots — that is a structurally different cost model, and it's the reason "where does inference run" has quietly become one of the most important architecture decisions you'll make this year.&lt;/P&gt;
&lt;P&gt;To keep this concrete, we'll ground every idea in a real, working repository:&amp;nbsp;&lt;A href="https://github.com/kinfey/winml-qwen3-chat" target="_blank" rel="noopener"&gt;&lt;STRONG&gt;kinfey/winml-qwen3-chat&lt;/STRONG&gt;&lt;/A&gt;&amp;nbsp;— an end-to-end project that builds&amp;nbsp;&lt;STRONG&gt;Qwen3-0.6B&lt;/STRONG&gt;&amp;nbsp;for a Windows NPU using&amp;nbsp;&lt;A href="https://github.com/microsoft/winml-cli" target="_blank" rel="noopener"&gt;&lt;STRONG&gt;Windows ML CLI&lt;/STRONG&gt;&lt;/A&gt;, benchmarks it against the CPU, and ships a desktop chat app that streams from it token by token.&lt;/P&gt;
&lt;H2&gt;Why the edge — beyond just the bill&lt;/H2&gt;
&lt;P&gt;Cost is the headline, but it's not the whole story. Moving inference onto the device buys you four things at once:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Cost.&lt;/STRONG&gt;&amp;nbsp;The marginal token approaches free. No per-request metering, no surprise invoice when a feature goes viral.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Latency.&lt;/STRONG&gt;&amp;nbsp;No network round-trip. The model is a function call away, not an HTTPS request away — and for interactive chat, that's the difference between "snappy" and "spinner."&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Privacy.&lt;/STRONG&gt;&amp;nbsp;The prompt never leaves the machine. For regulated data, personal documents, or anything a user wouldn't paste into a public box, "it never left the laptop" is the strongest guarantee you can offer.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Availability.&lt;/STRONG&gt;&amp;nbsp;It works on a plane, in a tunnel, behind a corporate firewall, during an outage. Offline isn't a degraded mode — it's the default.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;The catch has always been:&amp;nbsp;&lt;STRONG&gt;CPUs are bad at this.&lt;/STRONG&gt;&amp;nbsp;A general-purpose CPU runs a transformer forward pass slowly and, worse,&amp;nbsp;&lt;EM&gt;inconsistently&lt;/EM&gt;&amp;nbsp;— latency jitters as the OS juggles cores. That's where the silicon story begins.&lt;/P&gt;
&lt;H2&gt;The NPU: purpose-built for the forward pass&lt;/H2&gt;
&lt;P&gt;A modern AI PC has three compute units, and Windows ML exposes each through its own execution provider:&lt;/P&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table border="1" style="border-width: 1px;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Unit&lt;/th&gt;&lt;th&gt;Reference silicon (Snapdragon X Elite)&lt;/th&gt;&lt;th&gt;Execution Provider&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;STRONG&gt;NPU&lt;/STRONG&gt;&lt;/td&gt;&lt;td&gt;Qualcomm Hexagon NPU (X1E80100)&lt;/td&gt;&lt;td&gt;QNNExecutionProvider&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;STRONG&gt;GPU&lt;/STRONG&gt;&lt;/td&gt;&lt;td&gt;Qualcomm Adreno X1-85&lt;/td&gt;&lt;td&gt;DmlExecutionProvider&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;STRONG&gt;CPU&lt;/STRONG&gt;&lt;/td&gt;&lt;td&gt;Snapdragon X 12-core @ 3.40 GHz&lt;/td&gt;&lt;td&gt;CPUExecutionProvider&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;colgroup&gt;&lt;col style="width: 33.33%" /&gt;&lt;col style="width: 33.33%" /&gt;&lt;col style="width: 33.33%" /&gt;&lt;/colgroup&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;P&gt;The&amp;nbsp;&lt;STRONG&gt;NPU (Neural Processing Unit)&lt;/STRONG&gt;&amp;nbsp;is not a faster CPU — it's a different kind of processor, designed for exactly one job: the dense, repetitive matrix multiplication that&amp;nbsp;&lt;EM&gt;is&lt;/EM&gt;&amp;nbsp;model inference. Where a CPU is a brilliant generalist, an NPU is a specialist that does the transformer math at high throughput, low power, and — critically —&amp;nbsp;&lt;STRONG&gt;low variance&lt;/STRONG&gt;.&lt;/P&gt;
&lt;P&gt;That last property matters more than people expect. For an interactive assistant,&amp;nbsp;&lt;EM&gt;predictable&lt;/EM&gt;&amp;nbsp;latency is often worth more than&amp;nbsp;&lt;EM&gt;peak&lt;/EM&gt;&amp;nbsp;latency. A response that always lands in ~1 second feels better than one that averages 0.8s but occasionally stalls for 5. We'll see this show up hard in the benchmark below: the NPU isn't just faster than the CPU here, it's an order of magnitude more&amp;nbsp;&lt;EM&gt;consistent&lt;/EM&gt;.&lt;/P&gt;
&lt;P&gt;NPUs also sip power. Running inference on the Hexagon NPU instead of pinning twelve CPU cores at 100% means the fan stays quiet and the battery survives the afternoon — which, for an always-available on-device copilot, is the whole point.&lt;/P&gt;
&lt;H2&gt;WinML CLI: from source model to hardware-optimized artifact&lt;/H2&gt;
&lt;P&gt;Here's the gap the NPU story usually hides: a Hugging Face checkpoint does&amp;nbsp;&lt;STRONG&gt;not&lt;/STRONG&gt;&amp;nbsp;run on an NPU as-is. You can't hand&amp;nbsp;model.safetensors&amp;nbsp;to the Hexagon and expect tokens. Between "PyTorch weights" and "running on the NPU" sits a real pipeline — export to ONNX, optimize the graph, quantize to integer precision, and compile to a vendor-specific context binary.&lt;/P&gt;
&lt;P&gt;That pipeline is exactly what&amp;nbsp;&lt;A href="https://github.com/microsoft/winml-cli" target="_blank" rel="noopener"&gt;&lt;STRONG&gt;Windows ML CLI&lt;/STRONG&gt;&lt;/A&gt;&amp;nbsp;automates. In its own words, it takes you&amp;nbsp;&lt;EM&gt;"from a source model — whether from Hugging Face or your own pipeline — to a hardware-optimized artifact in a reproducible workflow,"&lt;/EM&gt;&amp;nbsp;handling conversion, graph optimization, and compilation across AMD, Intel, NVIDIA, and Qualcomm targets. You can drive each stage by hand (export → analyze → optimize → quantize → compile) or let&amp;nbsp;winml build&amp;nbsp;generate the whole config for you. The same commands target every Windows ML execution provider, so you&amp;nbsp;&lt;STRONG&gt;build once and run across hardware&lt;/STRONG&gt;.&lt;/P&gt;
&lt;P&gt;It's a single CLI, installed as a Python wheel, and it slots cleanly into CI/CD — which is what makes the whole edge-deployment workflow reproducible instead of a one-off science experiment.&lt;/P&gt;
&lt;H2&gt;Walkthrough: building Qwen3-0.6B for the NPU&lt;/H2&gt;
&lt;P&gt;This is the heart of the&amp;nbsp;&lt;A class="lia-external-url" href="https://github.com/kinfey/winml-qwen3-chat" target="_blank" rel="noopener"&gt;winml-qwen3-chat&lt;/A&gt;t&amp;nbsp;repo. Five steps: install, inspect, build, benchmark, run.&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;img /&gt;
&lt;H3&gt;0. Prerequisites&lt;/H3&gt;
&lt;P&gt;The build was validated on a&amp;nbsp;&lt;STRONG&gt;Snapdragon X Elite (ARM64)&lt;/STRONG&gt;&amp;nbsp;machine running&amp;nbsp;&lt;STRONG&gt;Windows 11 24H2&lt;/STRONG&gt;&amp;nbsp;(24H2 is required for NPU support), with&amp;nbsp;&lt;STRONG&gt;Python 3.11&lt;/STRONG&gt;, the&amp;nbsp;&lt;STRONG&gt;uv&lt;/STRONG&gt;&amp;nbsp;package manager, and — for the demo app — the&amp;nbsp;&lt;STRONG&gt;.NET 10 SDK&lt;/STRONG&gt;&amp;nbsp;with the WinUI workload.&lt;/P&gt;
&lt;H3&gt;1. Install the CLI&lt;/H3&gt;
&lt;P&gt;WinML CLI ships on PyPI. Set up an isolated environment with uv and install:&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;LI-CODE lang="bash"&gt;# Pin the exact Python the project needs
uv python install 3.11

# Create and activate a 3.11 virtual environment
uv venv --python 3.11 winml-env
.\winml-env\Scripts\activate

# Install the CLI from PyPI
uv pip install winml-cli

# Verify
winml --version        # -&amp;gt; winml, version 0.1.0&lt;/LI-CODE&gt;
&lt;P&gt;Then let the CLI introspect your machine — this is your first sanity check that the NPU is even visible:&lt;/P&gt;
&lt;LI-CODE lang="bash"&gt;winml sys&lt;/LI-CODE&gt;
&lt;P&gt;On the reference device this enumerates all three compute units in priority order (&lt;STRONG&gt;NPU → GPU → CPU&lt;/STRONG&gt;) and the execution providers behind them (QNNExecutionProvider,&amp;nbsp;DmlExecutionProvider,&amp;nbsp;CPUExecutionProvider). If your NPU doesn't appear here, nothing downstream will use it —&amp;nbsp;winml sys&amp;nbsp;is where you diagnose that.&lt;/P&gt;
&lt;H3&gt;2. Inspect before you build&lt;/H3&gt;
&lt;P&gt;💡 Always inspect before build. It catches unsupported architectures in seconds instead of twenty minutes into a failed export.&lt;/P&gt;
&lt;LI-CODE lang="bash"&gt;winml inspect -m Qwen/Qwen3-0.6B&lt;/LI-CODE&gt;
&lt;P&gt;For Qwen3-0.6B this reports the shape of what you're about to build: a&amp;nbsp;&lt;STRONG&gt;text-generation&lt;/STRONG&gt;&amp;nbsp;model mapped to the WinML class&amp;nbsp;WinMLModelForCausalLM&amp;nbsp;(composite), architecture&amp;nbsp;Qwen3ForCausalLM&amp;nbsp;with&amp;nbsp;&lt;STRONG&gt;28 layers, hidden size 1024, vocabulary 151,936&lt;/STRONG&gt;, opset 17. Its inputs are&amp;nbsp;input_ids,&amp;nbsp;attention_mask, and&amp;nbsp;position_ids; its output is&amp;nbsp;logits.&lt;/P&gt;
&lt;P&gt;One subtlety worth internalizing early: Qwen3 is a&amp;nbsp;&lt;STRONG&gt;composite&lt;/STRONG&gt;&amp;nbsp;model — it exports as&amp;nbsp;&lt;EM&gt;multiple&lt;/EM&gt;&amp;nbsp;ONNX components rather than a single graph. That detail comes back to bite you (productively) at quantization time.&lt;/P&gt;
&lt;H3&gt;3. Build for the NPU&lt;/H3&gt;
&lt;P&gt;This is the one command that does the heavy lifting — export, optimize, quantize, and compile, all targeting the NPU via the QNN execution provider:&lt;/P&gt;
&lt;LI-CODE lang=""&gt;winml build -m Qwen/Qwen3-0.6B -o output\qwen3-0.6b --ep qnn --device npu --compile -v
&lt;/LI-CODE&gt;
&lt;P&gt;Under the hood it runs four stages. On the reference device:&lt;/P&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table border="1" style="border-width: 1px;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Stage&lt;/th&gt;&lt;th&gt;Time&lt;/th&gt;&lt;th&gt;Output&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;STRONG&gt;Export&lt;/STRONG&gt;&lt;/td&gt;&lt;td&gt;133.2 s&lt;/td&gt;&lt;td&gt;export.onnx&amp;nbsp;(2.9 GB)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;STRONG&gt;Optimize&lt;/STRONG&gt;&lt;/td&gt;&lt;td&gt;157.6 s&lt;/td&gt;&lt;td&gt;optimized.onnx&amp;nbsp;(2.9 GB)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;STRONG&gt;Quantize&lt;/STRONG&gt;&lt;/td&gt;&lt;td&gt;227.6 s&lt;/td&gt;&lt;td&gt;quantized.onnx&amp;nbsp;(868 MB) — uint8 weight / uint16 activation&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;STRONG&gt;Compile&lt;/STRONG&gt;&lt;/td&gt;&lt;td&gt;437.8 s&lt;/td&gt;&lt;td&gt;QNN HTP context (compiled_qnn.bin, 913 MB)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;STRONG&gt;Total&lt;/STRONG&gt;&lt;/td&gt;&lt;td&gt;&lt;STRONG&gt;~1191.5 s (~20 min)&lt;/STRONG&gt;&lt;/td&gt;&lt;td&gt;model.onnx&amp;nbsp;+&amp;nbsp;winml_build_config.json&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;colgroup&gt;&lt;col style="width: 33.33%" /&gt;&lt;col style="width: 33.33%" /&gt;&lt;col style="width: 33.33%" /&gt;&lt;/colgroup&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;P&gt;The arc of those four rows&amp;nbsp;&lt;EM&gt;is&lt;/EM&gt;&amp;nbsp;the edge-deployment story in miniature: a 2.9 GB float export is&amp;nbsp;&lt;STRONG&gt;quantized down to 868 MB&lt;/STRONG&gt;&amp;nbsp;(the integer precision the NPU wants), then&amp;nbsp;&lt;STRONG&gt;compiled&lt;/STRONG&gt;&amp;nbsp;into a Qualcomm HTP context binary — a graph the Hexagon NPU can execute directly. The final deployable is&amp;nbsp;output\qwen3-0.6b\model.onnx, a composite entry graph that points at the compiled context. (The ~9 GB of intermediate&amp;nbsp;.onnx.data&amp;nbsp;shards are safe to delete afterward to reclaim disk.)&lt;/P&gt;
&lt;P&gt;One honest caveat the repo documents: because&amp;nbsp;text-generation&amp;nbsp;isn't in the CLI's built-in calibration task list, quantization falls back to a&amp;nbsp;RandomDataset&amp;nbsp;for calibration. For a latency benchmark that's expected and harmless — but hold that thought, because it's exactly the seam the demo app has to patch for production quality.&lt;/P&gt;
&lt;H3&gt;4. Benchmark: NPU vs CPU&lt;/H3&gt;
&lt;P&gt;Point&amp;nbsp;winml perf&amp;nbsp;at the compiled model and tell it the task:&lt;/P&gt;
&lt;LI-CODE lang=""&gt;# NPU (QNN) — runs the compiled context
winml perf -m output\qwen3-0.6b\model.onnx --task text-generation --ep qnn --device npu --iterations 100 --warmup 10

# CPU — the compiled NPU graph can't run on CPU, so benchmark the
# pre-compile quantized.onnx (QDQ) instead
winml perf -m output\qwen3-0.6b\quantized.onnx --task text-generation --ep cpu --device cpu --iterations 50 --warmup 5&lt;/LI-CODE&gt;
&lt;P&gt;&lt;BR /&gt;The results, for a full prefill forward pass at sequence length 1024:&lt;/P&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table border="1" style="border-width: 1px;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Device&lt;/th&gt;&lt;th&gt;EP&lt;/th&gt;&lt;th&gt;Precision&lt;/th&gt;&lt;th&gt;Avg latency&lt;/th&gt;&lt;th&gt;Throughput&lt;/th&gt;&lt;th&gt;Std dev&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;STRONG&gt;NPU&lt;/STRONG&gt;&lt;/td&gt;&lt;td&gt;QNN&lt;/td&gt;&lt;td&gt;w16a16&lt;/td&gt;&lt;td&gt;&lt;STRONG&gt;960.8 ms&lt;/STRONG&gt;&lt;/td&gt;&lt;td&gt;1.04 samp/s&lt;/td&gt;&lt;td&gt;&lt;STRONG&gt;3.4 ms&lt;/STRONG&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;STRONG&gt;CPU&lt;/STRONG&gt;&lt;/td&gt;&lt;td&gt;CPU&lt;/td&gt;&lt;td&gt;w8a16&lt;/td&gt;&lt;td&gt;5793.3 ms&lt;/td&gt;&lt;td&gt;0.17 samp/s&lt;/td&gt;&lt;td&gt;828.3 ms&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;colgroup&gt;&lt;col style="width: 16.67%" /&gt;&lt;col style="width: 16.67%" /&gt;&lt;col style="width: 16.67%" /&gt;&lt;col style="width: 16.67%" /&gt;&lt;col style="width: 16.67%" /&gt;&lt;col style="width: 16.67%" /&gt;&lt;/colgroup&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;P&gt;Two takeaways, and the second is the one to remember:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;STRONG&gt;The NPU is ~6× faster&lt;/STRONG&gt;&amp;nbsp;than the CPU on this workload.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;The NPU is ~240× more consistent&lt;/STRONG&gt;&amp;nbsp;— a 3.4 ms standard deviation versus 828 ms on the CPU. The CPU's latency swings by nearly a full second run to run; the NPU lands in the same spot every time. For an interactive chat experience, that stability is the feature.&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;This is the token-economics argument made physical: the same model, on hardware the user already owns, delivering cloud-grade interactivity at a marginal token cost approaching zero — and doing it more predictably than the CPU fallback ever could.&lt;/P&gt;
&lt;H3&gt;5. From artifact to app&lt;/H3&gt;
&lt;P&gt;A compiled&amp;nbsp;.onnx&amp;nbsp;isn't a product. The repo closes that gap with a complete desktop example that consumes the NPU build above:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;app/WinMLChat/&lt;/STRONG&gt;&amp;nbsp;— a&amp;nbsp;&lt;STRONG&gt;WinUI 3&lt;/STRONG&gt;&amp;nbsp;chat UI (C# / .NET 10, MVVM) that streams replies&amp;nbsp;&lt;STRONG&gt;token by token&lt;/STRONG&gt;, so the NPU's low, steady latency translates directly into a responsive typing-style experience.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;backend/&lt;/STRONG&gt;&amp;nbsp;— a&amp;nbsp;&lt;STRONG&gt;FastAPI&lt;/STRONG&gt;&amp;nbsp;server exposing an&amp;nbsp;&lt;STRONG&gt;OpenAI-compatible streaming API&lt;/STRONG&gt;, backed by&amp;nbsp;winml.modelkit.WinMLAutoModel.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;The most interesting design decision lives in the backend:&amp;nbsp;&lt;STRONG&gt;hybrid NPU/CPU routing.&lt;/STRONG&gt; Short prompts go to the quantized NPU build for speed and efficiency; long prompts fall back to an unquantized CPU path. Conceptually, the routing looks like this:&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;LI-CODE lang="python"&gt;# Illustrative — the backend picks an execution path per request
def choose_backend(prompt_tokens: int):
    if prompt_tokens &amp;lt;= NPU_PREFILL_LIMIT:
        return npu_model   # quantized w16a16, QNN  -&amp;gt; fast, low-power
    return cpu_model       # unquantized fallback   -&amp;gt; handles long context
&lt;/LI-CODE&gt;
&lt;P&gt;Because the API speaks the OpenAI streaming dialect, the WinUI front end (and any other OpenAI-compatible client) connects without bespoke glue — the NPU is hidden behind a familiar&amp;nbsp;/chat/completions-style contract.&lt;/P&gt;
&lt;H3&gt;The production seam: patching quantization for a composite decoder&lt;/H3&gt;
&lt;P&gt;Remember the&amp;nbsp;RandomDataset&amp;nbsp;calibration warning? That's the honest boundary between a benchmark and a shipping app, and the repo confronts it head-on.&lt;/P&gt;
&lt;P&gt;WinML CLI 0.1.0 can't quantize the Qwen3&amp;nbsp;&lt;STRONG&gt;composite decoder&lt;/STRONG&gt;&amp;nbsp;for QNN out of the box — its calibration reader omits&amp;nbsp;position_ids&amp;nbsp;and the 28 layers' past-KV inputs, so the calibration data doesn't match what the model actually consumes at runtime. The example fixes this at the root in&amp;nbsp;&lt;STRONG&gt;backend/winml_npu_patch.py&lt;/STRONG&gt;, which:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;supplies&amp;nbsp;&lt;STRONG&gt;real KV-cache calibration feeds&lt;/STRONG&gt;&amp;nbsp;(the actual&amp;nbsp;position_ids&amp;nbsp;and per-layer past-key/value tensors the decoder expects), and&lt;/LI&gt;
&lt;LI&gt;switches to&amp;nbsp;&lt;STRONG&gt;per-channel&amp;nbsp;w16a16&lt;/STRONG&gt;&amp;nbsp;weights with the&amp;nbsp;&lt;STRONG&gt;lm_head&amp;nbsp;excluded&lt;/STRONG&gt;&amp;nbsp;from quantization.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;That's the difference between a model that benchmarks well and a model that&amp;nbsp;&lt;EM&gt;generates well&lt;/EM&gt;: calibrating against representative inputs — not random noise — and keeping the precision-sensitive output projection in higher precision so token quality holds up.&lt;/P&gt;
&lt;H2&gt;Where this is still rough&lt;/H2&gt;
&lt;P&gt;It would be dishonest to end on a victory lap. This is early, and it shows.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Qwen3-0.6B — and small LLMs in general — aren't enough on their own yet.&lt;/STRONG&gt;&amp;nbsp;A 0.6B model is a fine proof point for the&amp;nbsp;&lt;EM&gt;pipeline&lt;/EM&gt;, but it is a modest reasoner. For many real tasks you'll want a larger on-device model, retrieval, or a hybrid edge/cloud design — the silicon is ready before the small-model quality fully is.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Performance and optimization still have headroom.&lt;/STRONG&gt;&amp;nbsp;The build path works end to end, but there are sharp edges:&amp;nbsp;text-generation&amp;nbsp;falls back to a&amp;nbsp;RandomDataset&amp;nbsp;for calibration, the composite decoder needs a hand-written patch to quantize correctly, operator-level profiling (--op-tracing) isn't available in winml-cli 0.1.0, and the throughput numbers here are a starting line, not a ceiling. Expect to tune.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;None of this is a reason to wait — it's a reason to get involved. The tooling is open and moving fast, and the fastest way to make it better is to push on it and report what breaks.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Found a bug, hit a wall, or have an idea?&lt;/STRONG&gt;&amp;nbsp;File it at&amp;nbsp;&lt;STRONG&gt;&lt;A href="https://github.com/microsoft/winml-cli/issues" target="_blank"&gt;github.com/microsoft/winml-cli/issues&lt;/A&gt;&lt;/STRONG&gt; — feedback from real builds is exactly what sharpens these edges.&lt;/P&gt;
&lt;H2&gt;Wrap-up&lt;/H2&gt;
&lt;P&gt;The reason to care about edge AI isn't novelty — it's economics and physics, and they happen to point the same direction.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Token economics&lt;/STRONG&gt;&amp;nbsp;says the cloud's per-token meter never reaches zero, while the edge drives the marginal token toward free after a one-time hardware cost. For high-volume, interactive, privacy-sensitive workloads, that's a structural advantage, not a rounding error.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;The NPU&lt;/STRONG&gt;&amp;nbsp;is the silicon that makes it viable: purpose-built for the transformer forward pass, delivering — in this build — roughly&amp;nbsp;&lt;STRONG&gt;6× the CPU's speed and ~240× its consistency&lt;/STRONG&gt;, at a fraction of the power.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;WinML CLI&lt;/STRONG&gt;&amp;nbsp;is the bridge that turns a Hugging Face checkpoint into a deployable, hardware-optimized artifact through one reproducible pipeline —&amp;nbsp;inspect → build → perf&amp;nbsp;— that targets every Windows ML execution provider.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;winml-qwen3-chat&lt;/STRONG&gt;&amp;nbsp;ties it all together: a real Qwen3-0.6B NPU build, an honest benchmark, a streaming WinUI app, an OpenAI-compatible backend with hybrid routing, and — most instructively — a quantization patch that shows what it actually takes to move from "runs" to "ships."&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;The headline for builders:&amp;nbsp;&lt;STRONG&gt;inference location is now an architecture decision.&lt;/STRONG&gt;&amp;nbsp;When the workload is high-volume, latency-sensitive, or privacy-bound, the right answer increasingly isn't a bigger cloud bill — it's the NPU already sitting in your users' laptops. The tooling to reach it is here today.&lt;/P&gt;
&lt;P&gt;&lt;SPAN class="lia-text-color-21"&gt;&lt;STRONG&gt;Start here:&lt;/STRONG&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Sample Code&lt;A style="font-style: normal; font-weight: 400; background-color: rgb(255, 255, 255);" href="https://github.com/kinfey/winml-qwen3-chat" target="_blank" rel="noopener"&gt;&amp;nbsp; kinfey/winml-qwen3-chat&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;WinML CLI &lt;A href="https://github.com/microsoft/winml-cli" target="_blank" rel="noopener"&gt;microsoft/winml-cli&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;</description>
      <pubDate>Tue, 23 Jun 2026 09:35:31 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-developer-community/the-token-economics-of-the-edge-running-qwen3-on-a-windows-npu/ba-p/4530054</guid>
      <dc:creator>kinfey</dc:creator>
      <dc:date>2026-06-23T09:35:31Z</dc:date>
    </item>
    <item>
      <title>Microsoft Leads a New Era of Software Supply Chain Transparency</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-developer-community/microsoft-leads-a-new-era-of-software-supply-chain-transparency/ba-p/4528367</link>
      <description>&lt;P&gt;Microsoft announces the general availability of Microsoft’s Signing Transparency (MST) – a first-of-its-kind capability that brings unprecedented visibility and trust to our software supply chain. With this release, Microsoft is leading the industry by recording the build of critical cloud services into a publicly readable and verifiable &lt;A href="https://datatracker.ietf.org/group/scitt/documents/" target="_blank" rel="noopener"&gt;SCITT&lt;/A&gt; standard (Supply Chain Integrity, Transparency, and Trust) compliant ledger. This means every production software build for in scope services like Azure Attestation and Azure Managed HSM (Hardware Security Module), Azure confidential ledger, Microsoft Signing Transparency itself (and others over time) – is now logged in an immutable, tamper-evident record. Only builds that are in the MST ledger are deployed to production; this gives customers confidence that the supply chain for these critical services can be audited at anytime.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Notably, the MST ledger is fully &lt;A href="https://github.com/microsoft/scitt-ccf-ledger" target="_blank" rel="noopener"&gt;open source&lt;/A&gt; and built to align with the emerging IETF&amp;nbsp;&lt;A href="https://datatracker.ietf.org/group/scitt/documents/" target="_blank" rel="noopener"&gt;SCITT&lt;/A&gt;&amp;nbsp;standard. By embracing SCITT’s principles and open protocols, Microsoft ensures that MST not only secures our own ecosystem but also contributes to a broader industry movement toward standardized supply chain transparency. The open-source MST ledger serves as a&amp;nbsp;verifiable trust anchor&amp;nbsp;that any organization or researcher can inspect, audit, or even integrate with their own tooling. MST itself meets the highest levels of transparency, backed by a tamper-proof confidential ledger, open-source, and &lt;A href="https://www.ioactive.com/wp-content/uploads/2025/10/Microsoft-Signing-Transparency-Service-Security-Assessment-IOActive-Public-Facing-Report.pdf" target="_blank" rel="noopener"&gt;independently verified&lt;/A&gt;. Specifically,&amp;nbsp;we are&amp;nbsp;making the foundation of our trust model transparent and accessible to everyone – reinforcing that&amp;nbsp;trust must be earned through proof, not just promises.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This launch marks a major milestone in our commitment to &lt;A href="https://learn.microsoft.com/en-us/security/zero-trust/zero-trust-overview" target="_blank" rel="noopener"&gt;Zero Trust&lt;/A&gt; principles, extending “never trust, always verify” all the way into the build itself. Building on a public preview introduced late last&amp;nbsp;year,&amp;nbsp;MST’s general availability delivers verifiable transparency at the software level. It transforms traditional code signing with an additive trust layer that is accessible via an open verification model. Every new software update is accompanied by a publicly auditable proof of integrity, enabling security teams to proactively confirm that each update is authentic and unaltered.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;To help organizations get the most out of this capability,&amp;nbsp;we are&amp;nbsp;also introducing a free tool to explore the contents – &lt;A href="https://techcommunity.microsoft.com/t5/aka.ms/ledgerexplorer" target="_blank" rel="noopener"&gt;Ledger Explorer&amp;nbsp;&lt;/A&gt;– an offline tool that allows security teams to examine MST ledger entries, verify cryptographic proofs, and even&amp;nbsp;validate&amp;nbsp;the ledger’s integrity independently. This tool, combined with MST’s open design, ensures that&amp;nbsp;every Microsoft customer – and the broader community – can hold us accountable&amp;nbsp;in real time for the software we run on their behalf.&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Key Benefits of Microsoft’s Signing Transparency (MST)&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Verified Code Integrity&lt;/STRONG&gt;&amp;nbsp;– Every software release is cryptographically logged in MST’s ledgers. This makes each build&amp;nbsp;&lt;STRONG&gt;tamper-evident and traceable&lt;/STRONG&gt;. If an attacker&amp;nbsp;attempts&amp;nbsp;to inject malicious code or sign an unauthorized update, it will be evident through the well-defined validation step built into the SCITT standard. Organizations gain the&amp;nbsp;assurance that&amp;nbsp;code&amp;nbsp;integrity can be independently confirmed&amp;nbsp;at any time.&amp;nbsp;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Independent Verification &amp;amp; Zero Trust&lt;/STRONG&gt;&amp;nbsp;– MST enables customers and auditors to&amp;nbsp;verify software authenticity on their own, without having to solely rely on vendor attestations. For each update, Microsoft provides a transparency “receipt” (proof of logging) that you can use to prove the update was officially published and unaltered. This fosters a&amp;nbsp;&lt;EM&gt;“don’t just trust, verify”&lt;/EM&gt;&amp;nbsp;approach, empowering security teams to double-check everything running in their environment aligns with what Microsoft intended.&amp;nbsp;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Audit-Trail &amp;amp; Compliance&lt;/STRONG&gt;&amp;nbsp;– The transparency ledger creates a&amp;nbsp;permanent, auditable timeline&amp;nbsp;of code deployments. Every entry is a record of&amp;nbsp;&lt;EM&gt;what&lt;/EM&gt;&amp;nbsp;was released and&amp;nbsp;&lt;EM&gt;when&lt;/EM&gt;, backed by cryptographic&amp;nbsp;proofs. This simplifies compliance reporting and accelerates forensic analysis.&amp;nbsp;In the event of&amp;nbsp;an incident, you can quickly audit the ledger to see if any unexpected code was introduced. For highly regulated industries,&amp;nbsp;MST offers concrete evidence of software integrity&amp;nbsp;and policy compliance over time.&amp;nbsp;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Leadership &amp;amp; Open Standards&lt;/STRONG&gt;&amp;nbsp;– We are&amp;nbsp;delivering real transparency now, encouraging a future where all critical software is released with verifiable integrity. MST’s&amp;nbsp;open source&amp;nbsp;implementation and&amp;nbsp;SCITT-compliant&amp;nbsp;design exemplify our commitment to openness and collaboration. We believe widespread adoption of these standards will&amp;nbsp;strengthen supply chain security for everyone, making trust verification a universal practice.&amp;nbsp;&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2&gt;Next Steps &amp;nbsp;&lt;/H2&gt;
&lt;P&gt;Microsoft’s Signing Transparency is more than a new security feature and shapes the advances in trust technology. As threats grow more sophisticated, we must evolve the way we assure our customers about the software they depend on. With MST now generally available, we are&amp;nbsp;leading by example: proving that&amp;nbsp;it is&amp;nbsp;possible to&amp;nbsp;open up&amp;nbsp;the traditionally opaque process of software deployment and turn it into a source of strength and trust, i.e. empowering each person with verifiable transparency.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;We invite the industry to join us on this journey and get started by &lt;A href="https://aka.ms/mst-docs" target="_blank" rel="noopener"&gt;reading the documentation&lt;/A&gt; and &lt;A href="https://aka.ms/ledgerexplorer" target="_blank" rel="noopener"&gt;exploring Ledger Explorer today&lt;/A&gt;! Together, by embracing transparency and open standards, we can turn&amp;nbsp;“trust but verify” from a slogan into an everyday reality&amp;nbsp;for digital infrastructure.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 19 Jun 2026 07:00:00 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-developer-community/microsoft-leads-a-new-era-of-software-supply-chain-transparency/ba-p/4528367</guid>
      <dc:creator>ShubhraS</dc:creator>
      <dc:date>2026-06-19T07:00:00Z</dc:date>
    </item>
    <item>
      <title>Enterprise-ready Claude Desktop with Entra ID, APIM, and Microsoft Foundry (No Backend Required)</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-developer-community/enterprise-ready-claude-desktop-with-entra-id-apim-and-microsoft/ba-p/4528163</link>
      <description>&lt;ARTICLE class="container"&gt;&lt;EM class="lede"&gt;How I put corporate sign-in in front of Claude Desktop without writing a single line of backend code.&lt;/EM&gt;
&lt;P class="tldr"&gt;&lt;STRONG&gt;TL;DR —&lt;/STRONG&gt; In this post, I show how to securely enable Claude Desktop in enterprise environments using Microsoft Entra ID, Azure API Management, and Microsoft Foundry — without deploying a custom backend. This approach removes API keys from endpoints, enforces per-user identity, and aligns fully with Zero Trust principles.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Who this is for:&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Enterprise architects evaluating secure AI client patterns&lt;/LI&gt;
&lt;LI&gt;Developers enabling Claude Desktop in regulated environments&lt;/LI&gt;
&lt;LI&gt;Platform teams standardizing identity and governance for LLM access&lt;/LI&gt;
&lt;/UL&gt;
&lt;IMG class="hero" src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAIlA+gDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3S/vU0+0a4kUsqkDAZV6+7ED9aj03U4tTieSJCgRtpBdG7f7JNWLi3iuoTFKGKHBO1yp/MEGm2tpBZoyQBwGOTukZ/wD0ImkA65nFtbPMylgo+6uMmoLa+ad4le2eISxmRCzKcgY9D7irM0Uc8TRSruRhgioYLG3tmVolcFV2LukZto44GTx0FAE8kixRPI33VUscDsKrWt680qxywCIvH5qYcNleOvoeR6/WreaqxafaQTCWGERuARlOMg9j7e3agC1VWHUrSdmVJo+G2DLD5j04/HirWaYkUcZYouNx3Eds0APqJ7mJCAXXrg8jipc01lViMjODkUAOoozRmgAoozRmgAoozRmgAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAhuJmiEYSPe7ttAzjsT1/CooLx5LtreSDy2APIcMDwD/UVPNCswXLMpVtylTgg4x/Wo4rOOKdpt8juRjLtn0/wFAFignAycYoooAr29/aXbMtvcRylRkhDnFWKKKAK95eJZQeY6PISdqRxrlnb0H5UzTtQj1K0+0RxyRjcUKSAAgjqKlubWK7jVJQ2FYMpRypBHcEc0ttbRWkCwwLtQZPJJJJ5JJPJNAEtVbq/hsnjWYMDL8seBne/9wf7X/wBf0NWqhmtILht0sYc7dvJ6D29D79eKAJhyOmKKAMDHtRQA07j0U0Yf+7+tOLHdtUDgc5o/ef7NMBuH/u/rRh/7v60795/s0fvP9mgBuH/u/rRh/wC7+tO/ef7NH7z/AGaAG4f+7+tGH/u/rTv3n+zR+8/2aAG4f+7+tGH/ALv60jyOmMgHPpTfPP8AdFAD8P8A3f1ow/8Ad/Wmeef7oo88/wB0UAPw/wDd/WjD/wB39aZ5zf3RR55/uigB+H/u/rRhv7v60zzz/dFAnOeV4oAfnnBGDTqa5+ZfpSikAtFctrdj4ifVZrnS7hvIZbePyGm2qQJCXdfRgMZ/vAkdQKpK3j9LZW2W0kwLMyMI1HyhTtBz0Y7gD1AAzQB21FcrrEXimGSdtLkeeR7WFIyTGI1kBbe21ucnK+2M+gqrInjKa9jmMYWOOcNgPGCIypDKozhiOMFjjPpQB2lFQXaXDwH7LKscwOVLrlW9j7H25pbZJkgUXEolm5LMq4GfQD0HT1oAmooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKK5C902aS8fGlzPObqRxcBVxtP3Tuznj9K640AJyTgUbG9R+VCf6w/SuY1Pxdcabr11aHTHnsbSFZZ54idyhlY9xt6gDG7J3Z7UwOn2N/eH5UbG/vD8q5m78d2Nl5yy2d35kbFAg2EswOGX73GDxzjPbNOl8c2ME8EU1jfI00zwr+7BwUZVYnBOAGYDn3oA6TY394flRsb+8PyrntO8badqV9aWkcNxHJcl1HmBQFZRnaeepAziuloAj2N/eH5UbG/vD8qkooAj2N/eH5UbG/vD8qkooAj2N/eH5UbG/vD8qkooAj2N/eH5UbG/vD8qkooAj2N/eH5UbG/vD8qkooAj2N/eH5UbG/vD8qkqvBdpcSMiLIGX7+5cbT6H3oAk5U4Peilfqv4/wAqKQAv+sb6Cn01kDHOSD6g0nl/7b/nTAydXsL681GyaBYTbRrJ5hklkUqxGFICkZPXnqMnFLfaddy6FHaoyySoyNInmuBMobLJuJLDI45Pt0rV8v8A23/Ojy/9t/zoA5dtP8QR7Rp/l2cSxkxwefvRD8x2NkZOTs5HCjIHuJYeK1aPffo+18BgwAxlTuYbecjeMD2P06jy/wDbf86PL/23/OgDB0jTdXstVaa7ufOt5IUD5f5vNCgMx45GeABjHvnjoaZ5f+2/50eX/tv+dADLj+H61DVjyVJySxPuaPJT0P50AVJkd4iqOUbIOfx6fjUVtBLDCytMSzDjuFOOcfjzWh5Keh/OjyU9D+dAGEtpexwhYUET4AdlmyZDg/NyPXk9zTJLTVTIzpOFc4BYMOeWPA7Dkce1dB5Keh/OjyU9D+dAFcdBnrRVjyU9D+dKIkB6UANf7y/SnCmyffX6U4UgFooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKQ0tIaAGx/6w/SlaCF/M3RRt5gAfKg7sdM+tJH/rD9KlpgZep+HtM1eNlurZcu4dnj+VmIBAyR14JH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oAKKKKACiiigApk0ghgklIJCKWIHsM0+muiyIyOMqwII9QaAKiX7CeGK4g8rzgfLIfcCeODgcdau1mxaT5dxHI11NIsbZVXO4gemSf8AOK0qACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigApDS0hoAbH/rD9KkJAGSQB71HH/rD9KZOR5q5AYBS2D0zkUwJfNj/vr+dOyMZyMetVw6t/yyUD1I70w4WQptGxWJC9vug/1oAmmmRYXKyLkKcc1VdSjsojATPBKZx+nNOmkVoH/dKBjGcd6s7n87GBsx1zznPpQBDDBuyZIkUHkYGCPyqeBi8EbE5JUc09jhSfQVT07iMjthTigC7RRRQAUUUUAFFFFABRRRQAUUUUAMk6r+P8qKJOq/j/ACopAPooopgFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAEUn31+lOFNk++v0pwpALRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFUZdXtIZbyORnVrRFeQbeqnoV9fSraTRSO6JIrPGQHUHJU9efSkmmU4SWrQ+iiimSFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFIaWkNADY/8AWH6UkoIkV9hdcEED8P8AClj/ANYfpUtMCuJVByIHB9lFN2tu80xkgsSU74wB/SrVFAFfzE/593/75FQNasys6B0+YYUMRxj61fooAzfs8xGD5xU9QX4P61atYmQMWGM4wKsUUrAFFFFMAooooAKKKKACiiigAooooAZJ1X8f5UUSdV/H+VFIB9FFFMAooooAKKKKACiiigAooooAKKKKACiiigAooooAik++v0pwpsn31+lOFIBaKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACmS7vKfYgdscKWwD7Zp9FAHnGtvLYTKLNiEQNGY9/miMZB27sdAQDg5x+NdD4WlmESRmHCSgyvNsZjK56kv0H0rTk0aAzI8e1QJFJTaNoQZ+QDtknJ9asWGnQadEY4N2Ce57dh+A4z1wBXNClKM+Y76uJhKlyW1LdFFFdJwBRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABSGlpDQA2P/WH6VVuLO4e+8+GUoNoBG484z25H92rWSrZAzS+b/smmBki01loQHuU8wEEMG4wD0Ix1x36e1WJ7fUTO7QThVYqQGbIXjHTHTr9c9qved/smjzv9k0AZsdtqizRyNcKRuXepbOVGc9vf+XpS/Z9XLyH7TGvzkxjqMEjg8emfzrR87/ZNHnf7JoAzvsmpC12pc7Zcu3Lbs5IwM49N344qMWOqpIXS8GXyXLc87QBjjgda1fO/wBk0ed/smgDO+y6r5kmLxdm7KZA6ds8fnSG31fcpFyoAUhhkHJ+u3j29PetLzv9k0ed/smgDLbTb14oybg+YsZXmQ4yWyT064wM1JBBqqTo01yjp5jFgAB8uOMcVoed/smjzv8AZNAGY8Gsso23Manbg/XA56dTg/TNKtnqTFzJcKzbAqndgZyD0A46GtLzv9k0ed/smgDOks9Qe3VDdEuC2SG25BXHOB2bJp8NtqMd0jPOrRbm388kYwO3Wr3nf7Jo87/ZNAGUttrKBVW4QqqKPmbJJB5JO3vzV7T4rqCDy7l1kYE4cHt2GMVP53+yaPN/2TQAsnVfx/lRTdxcjjAGaKQEtFFFMAooooAKKKKACiiigAooooAKKKKACiiigAooooAik++v0pwpsn31+lOFIBaKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC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KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAHUUUUwCiiigAooooAKKKKACiiigAooooAKKKKACiiigCKT76/SnCmyffX6U4UgFooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoopDQAxmJIVeSad5Wertn24psXMr+wH9akeRIwC7BQWCjJ6k8AUwG+SP77/AJ0eSP7z/nSR3MEpAjmR87sbWz904P5HilinimGY5FbjJweQKADyR/ef86PJH95/zqSigCPyR/ef86PJH95/zqTNGaAI/JH95/zo8kf3n/OpM0UAR+SP7z/nR5I/vP8AnUlFAEfkj+8/50eSP7z/AJ1JRQBH5I/vP+dHkj+8/wCdSUUAR+SP7z/nR5I/vP8AnUlFAEfkj+8/50eSP7z/AJ1JRQBH5I/vP+dHkj+8/wCdSUUAR+SP7z/nR5I/vP8AnUlFAEfkj+8/50eSP7z/AJ1JRQBH5I/vP+dHkj+8/wCdSUUAR+SP7z/nR5I/vP8AnUlFAEfkj+8/50eSP7z/AJ1JRQBH5I/vP+dHkj+8/wCdSUUAR+SP7z/nR5I/vP8AnUlFAEfkj+8/50eSP7z/AJ1JRQBH5I/vP+dHkj+8/wCdSUUAR+SP7z/nR5I/vP8AnUlFAEfkj+8/50eSP7z/AJ1JRQBH5I/vv+dNZWjG4Eso6g9amooAjByKdUUR+QflUtIAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAHUUUUwCiiigAooooAKKKKACiiigAooooAKKKKACiiigCKT76/SnCmyffX6U4UgFooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigApG6UtI3SgBkP+sk+g/rTNQtmvLGWCOTy5GGUfGdrA5B/AgU+H/WSfQf1qamBixeH1iuA3mK0CujLGV6YB3fm2D+FRP4ekZSBNGSyx7yVOXKk8E+hz+YFb9FAGRJpExuLCRbhQtqqg5BJOOvOc8j+XemvoQa4efzFEjOXDhfmH7wN19cZH41s0UAc/F4emijiUXCbkkD7iCegAzgnGTj/wCvSf2BcqUKXEQCS+aq7TkHKnr15wR+PU10NFAHJ2mh3dzE4nTyW35JY435BHbuv97vmul23QGA8XGcZU+ox39M/jU9FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUVR1HVYdO2B1Z3bkKvp60m0ldjjFydkXqKwv+Eng/59pfzFbFvcR3Vuk0RyjjIzSU1LYqVOUd0Mh+7+J/nU1Qw/d/E/zqamQFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA6iiimAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUARSffX6U4U2T76/SnCkAtFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFI3SlpDQAyH/WSfQf1qj4jBOhTj59paPfsznZvXd05xjP4VdjO2Yg/xDj8KnpgcTos8ltepa2t5O0P2wrFCZPNDwlSSxygK89s8fz7aiigDEl/tz/hI4vLNt9g8p85D/3k69t2M4/GtuiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAI7hpVtpWgQPMEJRWOAWxwD+Nc3Lea/Gomgt5pmZUGHiCDhnLfLuOMjaM/SuoooA5m5vNfmgdEtpIvlKb0jBYvz0+bhTx81OE3iK40/UFkhjimG4RbMhhwcbT0Pbn3rpKKAOZmuvEH2sW/wBmZ4hkNMq7d2H4YYPGVHI96dZXevRw28VxaEyMQhYjIGGXktnum49OvH16SigDE3a//ba5hg+x/ZyAVl+TflTkjbuz94DtUukfb/8ATRceYT5hMcky7eueAuTwOOR1rWooAZF5uzM2wOeydB/jXNeJv+P6H/rl/U11FZ+paTHqJRjIY5E4DAZyPpUVIuUbI1ozUZ3ZykxgMEQjTa+DuO7Oee9dToP/ACB4fq38zVH/AIRdf+ftv+/f/wBetm3gjsbRYkzsQdT1NZ04STuzWtUjKNosSH7v4n+dTVFECFGetS1scoUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAGbrl7cWNkJbcbnDA7cct7fjVe01a8m8OyXv2ctcKMqpUnP4Dk47gcnBrXcxuu2Rcg9QRmhXjQYUYHXAWp5XzXvoac8fZ8tte5zR8UXqiOGOyNw7ZzcGJ448B8Zx8xxtyevUVIniq7ZlB0K7w0pTIOcYIGTxxyy/mT2NdH5q+/wCVHmr7/lVmZi6V4ik1K9+zNp0sBJchnJxsXjdyB3KjHufSt2ot8e7dj5sYzt5xTvNX3/KgB9FM81ff8qPNX3/KgB9FM81ff8qPNX3/ACoAfRTPNX3/ACo81ff8qAH0UzzV9/yo81ff8qAHHODgZPYUyGR5FLPEY+cAMQT+lL5q+/5Ueavv+VADZPvr9KcKaTubIHApwpALRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQBG6BhTMyrwHz9Rmp8UmKAId8395f++aN8399f++f/r1Lto20ARb5v76/98//AF6N8399f++f/r1Lto20ARb5v76/98//AF6N8399f++f/r1Lto20ARb5v76/98//AF6N8399f++f/r1Lto20ARb5v76/98//AF6N8399f++f/r1LtqO5txcW0kO4rvUjI7UANWWVhlZEYdeBn+tLvm/vr/3z/wDXqg+kSs6ulwkByCwhj2g4J9/emyaNPKQWvmDDoQD8vBHHPfPNAGjvmzjeuR22/wD16PMm/vr/AN8//Xqp/Zkm+3YXTZiChs5O7Gff370RaW8V08/2lizsXYFR94gjI/Aj8hQBc3T/AN4f980geYjIdSPZf/r1nx6NOkYDXzsw9c4Iznb16U59IlMCxJdlcQrEDg5GO4570AXt0/8AeH/fNBeYdXUdvu//AF6qDS38mRGu5CXwWbJ6gk+vHUD8Kgk0SZ2XF/IqL0GCe+fWgDS3T/3h/wB80b5skb146/L0/WqX9kyGKZGvJD5j7wcnjrx19x+QqOTRHkUr9sfY24EHPQjAHWgDR3zZxvXP+7/9ejdN/eX/AL5rOOjTtM0hv3BJYgKD8uRjjntgH6ip7TTprWUOboyLs2FWye/bmgCyJZW+7Ih+gz/Wl3T/AN4f981mjQRGIvIupIyoUOR/Hjv/APWo/sW5KkHUZOd3QHuQcdf85oA0t8399ef9n/69G+b++v8A3z/9eqU2kySvE32psxoFG7JzgYPfoe/f3praPO+zdes3lnKkg5zgjPXrzxQBf3zEZDqR67f/AK9G+bONy5/3f/r1St9IkgMn+nTYZdq442/h0pj6K7KxW7aN2ADbN2CB25OaANDfN03rz/s//Xo3T/3h/wB81TTSpFuIpTdMxjctznLg9jz/AC9BnNMl0eV2JW9lGVYEZPUknPX3A/AUAX90/wDeH/fNG6f+8P8Avms5NJuiSXvGB3Hpu5HY9eo7dvXNK+jTEAJfyrwQeSeoGe/cj9aANDfN/eX/AL5/+vRvm/vr/wB8/wD16gs7GW1lZmuTKrKoIbJPA9SaubaAIt8399f++f8A69G+b++v/fP/ANepdtG2gCLfN/fX/vn/AOvRvm/vr/3z/wDXqXbRtoAi3zf31/75/wDr0b5v76/98/8A16l20baAIt8399f++f8A69G+b++v/fP/ANepdtG2gCLfN/eX/vml2sxBdicdPSpNtLigBAKdRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAGQZHz/AK2Xp/fo3v8A89Jf++6KKyuzayF3v/z0k/77pQzf89JP++6KKV2OyHBj/fk/77NLk/35P++zRRRdhZC5P9+T/vs0v/A5P++zRRSuwshf+BSf99mj/gcn/fZooouwsg/4HJ/32aP+Byf99miii7CyE/4HJ/32aP8Agcn/AH2aKKd2FkJz/fk/77NGT/fk/wC+zRRRdhZBub+/J/32aN7f89Jf++6KKd2FkG9v+ekv/fdG9v8AnpJ/33RRRdhZBvb/AJ6S/wDfdG9v+ekv/fdFFF2FkG9v+ekv/fdG9v8AnpL/AN90UU7sLIN7f89Jf++6N7f89Jf++6KKV2FkG9v+ekn/AH3Sb3/56Sf990UU7hZBvf8A56S/990b3/56S/8AfdFFFwsg3v8A89Jf++6N7/8APSX/AL7ooouwshd7/wDPSX/vuje3/PSX/vuiii7CyDe3/PSX/vuje3/PSX/vuiildhZDfNb+/L/33R5rf35f++6KKLsLIPNb+/L/AN90ea39+X/vuiii7CyDzm/vy/8AfdHnN/fl/wC+6KKLsLIPOb+/L/33Sec39+X/AL7oop3YWQnnv/fl/wC+6cJXP/LSX/vuiincLIN7/wDPSX/vujzH/wCesv8A33RRQmKyDzHz/rJf++6PMf8A56y/990UVRLQeY//AD1l/wC+6PMf/nrL/wB90UUxCeY//PWX/vujzH/56S/990UUwDzH/wCesv8A33R5j/8APWX/AL7oooEHmP8A89Zf++6TzJP+esv/AH3RRTAPMf8A56y/990eZJ/z1l/77ooqWMPMk/56y/8AfdHmSf8APWX/AL7oopDsL5j/APPWX/vuk8x/+esv/fdFFMQvmP8A89Zf++6TzJP+esv/AH3RRTEHmyf89Zf++6PMk/56y/8AfdFFMA8x/wDnrL/33R5kn/PWX/vuiigQebJ/z1l/77o8yT/nrL/33RRQMPMk/wCesv8A33R5sn/PWX/vuiikIPMk/wCesv8A33R5kn/PWX/vuiigYeY//PWX/vujzJP+esv/AH3RRSGHmSf89Zf++6PMf/nrL/33RRSAXzH/AOesv/fdHmP/AM9Zf++6KKYCeZJ/z1l/77rO0bWX1e0efbLDtkMe3zd2cd+gooqW3zJG0IRdKUnurfqaPmSf89Zf++6PMk/56y/990UVRgUpdRnSVlDvgHHLmkTUp2bBd+h/iNFFZ8zudfs48uxdWWQqD5svIz9+l8yT/nrL/wB90UVqjjYeZJ/z1l/77o82T/nrL/33RRTEHmSf89Zf++6PNk/56y/990UUwDzZP+esv/fdJ5sn/PWX/vuiigQebJ/z1l/77o82T/nrL/33RRQAebJ/z1l/77pfMk/56y/990UUDDzJP+esv/fdHmyf89Zf++6KKQB5sn/PWX/vuk82T/nrL/33RRQAeZJ/z1l/77pfNk/56y/990UUDE82T/nrL/33S+bJ/wA9Zf8AvuiikAebJ/z1l/77o82T/nrL/wB90UUDDzJP+esv/fdHmSf89Zf++6KKQB5kn/PWX/vujzJP+esv/fdFFAC+Y/8Az1l/77o8x/8AnrL/AN90UUAHmP8A89Zf++6XzH/56y/990UUAJ5j/wDPWX/vuk82T/nrL/33RRTJE82T/nrL/wB90hmk/wCesv8A33RRTEIZpf8AntL/AN90hml/57S/990UUxAJpf8AntL0/v0UUUgP/9k=" alt="Claude Desktop chatting against the enterprise gateway, with the model picker showing the Foundry deployment" /&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;Why this post exists:&lt;/STRONG&gt; Microsoft Learn's &lt;A href="https://learn.microsoft.com/en-us/azure/foundry/foundry-models/how-to/configure-claude-desktop" target="_blank" rel="noopener"&gt;Configure Claude Desktop with Foundry Models&lt;/A&gt; only shows the &lt;STRONG&gt;API-key&lt;/STRONG&gt; path — a shared key pasted into every user's Claude Desktop config. That's fine for a quick demo, but it's a non-starter for most enterprises (no per-user identity, no MFA / Conditional Access, hard to revoke, hard to audit). This post fills that gap: same Foundry backend, but with &lt;STRONG&gt;Microsoft Entra ID SSO&lt;/STRONG&gt; in front via Azure API Management, so each user signs in with their corporate identity and zero secrets land on the laptop.&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;HR /&gt;
&lt;H2&gt;The problem&lt;/H2&gt;
&lt;P&gt;For many teams experimenting with Claude Desktop, the blocker isn't capability — it's &lt;STRONG&gt;enterprise readiness&lt;/STRONG&gt;. How do you enforce identity, eliminate shared secrets, and apply governance without standing up a custom backend service to sit in front of the model?&lt;/P&gt;
&lt;P&gt;If your team wants to use &lt;STRONG&gt;Claude Desktop&lt;/STRONG&gt; with your own Anthropic deployment running on &lt;STRONG&gt;Microsoft Foundry&lt;/STRONG&gt;, but with a few non-negotiable requirements:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;STRONG&gt;No shared API keys&lt;/STRONG&gt; floating around on developer laptops.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Per-user identity&lt;/STRONG&gt; — every request must be attributable to a real person.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;MFA and Conditional Access&lt;/STRONG&gt; must apply, the same way they do for every other internal app.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Central rate-limiting and logging&lt;/STRONG&gt; — a centralized control plane for governance.&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;Claude Desktop 1.5+ supports a "Gateway SSO" mode where it can sign each user in with OpenID Connect and forward their token to a custom LLM gateway. Azure API Management (APIM) is a perfect fit for that gateway role: it validates the user's Entra ID token, then re-authenticates itself to Foundry behind the scenes. &lt;STRONG&gt;APIM acts as a centralized policy enforcement layer, enabling identity validation, traffic governance, and secure re-authentication to backend AI services without custom code.&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;The end-to-end flow looks like this:&lt;/P&gt;
&lt;DIV class="mermaid"&gt;%%{init: {'flowchart': {'nodeSpacing': 60, 'rankSpacing': 80, 'useMaxWidth': true}, 'themeVariables': {'fontSize':'16px'}} }%% flowchart TB User([Corporate user]) Claude["Claude Desktop"] Entra["Microsoft Entra ID&amp;lt;br/&amp;gt;(OIDC + MFA + Conditional Access)"] APIM["Azure API Management&amp;lt;br/&amp;gt;validate-jwt → rewrite headers&amp;lt;br/&amp;gt;(policy gateway)"] Foundry["Microsoft Foundry&amp;lt;br/&amp;gt;Claude deployment"] User -- "1. Sign in (browser PKCE)" --&amp;gt; Entra Entra -- "2. ID token" --&amp;gt; Claude Claude -- "3. POST /v1/messages&amp;lt;br/&amp;gt;Authorization: Bearer ID token" --&amp;gt; APIM APIM -- "4. OIDC discovery / JWKS" --&amp;gt; Entra APIM -- "5. x-api-key (or Managed Identity)" --&amp;gt; Foundry Foundry -- "6. Response" --&amp;gt; APIM APIM -- "7. Response" --&amp;gt; Claude classDef azure fill:#0a4d8c,stroke:#0a3a6b,color:#ffffff; classDef client fill:#f3f3f3,stroke:#888,color:#222; class Entra,APIM,Foundry azure; class Claude,User client;&lt;/DIV&gt;
&lt;P&gt;Or in plain text:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE&gt;Claude Desktop
   │  Authorization: Bearer &amp;lt;Entra ID token from the user's browser sign-in&amp;gt;
   ▼
Azure API Management  (&amp;lt;your-apim&amp;gt;)
   │  ① validate-jwt   → verifies user's Entra ID token
   │  ② re-auths to Foundry with an API key from a Named value
   │  Authorization stripped, x-api-key injected
   ▼
Microsoft Foundry  /anthropic/v1/messages
   │  runs Claude (&amp;lt;your-deployment&amp;gt;)
   ▼
Response back to the user&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;There are no API keys on user devices. Foundry's key lives only inside APIM. And every request carries the user's &lt;CODE&gt;oid&lt;/CODE&gt; claim, so I can build dashboards and per-user quotas later.&lt;/P&gt;
&lt;HR /&gt;
&lt;H2&gt;What you need before starting&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;An &lt;STRONG&gt;Azure subscription&lt;/STRONG&gt; with a &lt;STRONG&gt;Microsoft Foundry&lt;/STRONG&gt; (AI Services) account and a Claude deployment. &lt;EM&gt;(Throughout this post I'll just call it &lt;STRONG&gt;Foundry&lt;/STRONG&gt;.)&lt;/EM&gt;&lt;/LI&gt;
&lt;LI&gt;An &lt;STRONG&gt;API Management&lt;/STRONG&gt; instance, any tier.&lt;/LI&gt;
&lt;LI&gt;Permission to &lt;STRONG&gt;register applications in Entra ID&lt;/STRONG&gt; for your tenant.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Claude Desktop 1.5.0 or later&lt;/STRONG&gt;.&lt;/LI&gt;
&lt;LI&gt;Azure CLI installed locally.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Throughout this post I'll use placeholders for resource names:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;CODE&gt;&amp;lt;apim-name&amp;gt;&lt;/CODE&gt; — your API Management service name&lt;/LI&gt;
&lt;LI&gt;&lt;CODE&gt;&amp;lt;resource-group&amp;gt;&lt;/CODE&gt; — the resource group that holds it&lt;/LI&gt;
&lt;LI&gt;&lt;CODE&gt;&amp;lt;foundry-account&amp;gt;&lt;/CODE&gt; — your Foundry account name&lt;/LI&gt;
&lt;LI&gt;&lt;CODE&gt;&amp;lt;deployment-name&amp;gt;&lt;/CODE&gt; — the name of the Claude model deployment on Foundry&lt;/LI&gt;
&lt;/UL&gt;
&lt;HR /&gt;
&lt;H2&gt;Step 1 — Register an Entra ID app for Claude Desktop&lt;/H2&gt;
&lt;P&gt;This is the OIDC client Claude Desktop signs users into. Claude Desktop requires a single-tenant, &lt;STRONG&gt;public PKCE client&lt;/STRONG&gt; (no client secret) with a loopback redirect URI, configured under the &lt;STRONG&gt;Mobile and desktop applications&lt;/STRONG&gt; platform in Entra ID — the only platform that allows any loopback port.&lt;/P&gt;
&lt;P&gt;I scripted it so the setup is one command and idempotent:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE&gt;# scripts/register-claude-entra-app.ps1
[CmdletBinding()]
param(
  [string] $TenantId       = '&amp;lt;your-tenant-id&amp;gt;',
  [string] $SubscriptionId = '&amp;lt;your-subscription-id&amp;gt;',
  [string] $ResourceGroup  = '&amp;lt;resource-group&amp;gt;',
  [string] $ApimName       = '&amp;lt;apim-name&amp;gt;',
  [string] $AppDisplayName = 'Claude Cowork gateway',
  [string] $RedirectUri    = 'http://127.0.0.1/callback'
)

az account set --subscription $SubscriptionId | Out-Null

# 1. Create (or reuse) the app registration
$appId = az ad app list --display-name $AppDisplayName --query "[0].appId" -o tsv
if (-not $appId) {
  $appId = az ad app create --display-name $AppDisplayName `
            --sign-in-audience AzureADMyOrg --query appId -o tsv
}

# 2. Configure as public PKCE client with the Mobile/Desktop redirect URI
$objectId = az ad app show --id $appId --query id -o tsv
$patch = @{
  publicClient = @{ redirectUris = @($RedirectUri) }
  isFallbackPublicClient = $true
} | ConvertTo-Json -Depth 5 -Compress
az rest --method PATCH `
        --uri "https://graph.microsoft.com/v1.0/applications/$objectId" `
        --headers "Content-Type=application/json" --body $patch | Out-Null

# 3. Ensure a service principal exists
$sp = az ad sp list --filter "appId eq '$appId'" --query "[0].id" -o tsv
if (-not $sp) { az ad sp create --id $appId | Out-Null }

# 4. Push two Named values into APIM for the validate-jwt policy
az apim nv create -g $ResourceGroup --service-name $ApimName `
  --named-value-id entra-tenant-id --display-name entra-tenant-id `
  --value $TenantId --secret false
az apim nv create -g $ResourceGroup --service-name $ApimName `
  --named-value-id entra-client-id --display-name entra-client-id `
  --value $appId --secret false

"Client ID: $appId"&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Run it once. The output prints the &lt;STRONG&gt;client ID&lt;/STRONG&gt; you'll need in Claude Desktop later, and it leaves two &lt;STRONG&gt;Named values&lt;/STRONG&gt; in APIM (&lt;CODE&gt;entra-tenant-id&lt;/CODE&gt;, &lt;CODE&gt;entra-client-id&lt;/CODE&gt;) that the gateway policy will reference.&lt;/P&gt;
&lt;IMG src="data:image/jpeg;base64,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oAkoqPfJ/wA8j/30KN8n/PI/99CgCSio98n/ADyP/fQo3yf88j/30KAJKKj3yf8API/99CjfJ/zyP/fQoAkoqPfJ/wA8j/30KN8n/PI/99CgCSio98n/ADyP/fQo3yf88j/30KAJKKj3yf8API/99CjfJ/zyP/fQoAkoqPfJ/wA8j/30KN8n/PI/99CgCSio98n/ADyP/fQo3yf88j/30KAJKKj3yf8API/99CjfJ/zyP/fQoAkoqPfJ/wA8j/30KN8n/PI/99CgCSio98n/ADyP/fQooAJpkt7eSeU4jjUux9ABk1zZ+IfhoJv+3tt8sS/6l/uk4z09a3tSVm0q7VAxcwOFCfeJ2np715FBpOpTrFBK1/ZySwLGn2pcKxySRkDgjA/Ou3C0KdSLc3t/XY4sXXqUmlBHssUizRJKhyjqGU+oNDSIrKrOoZvugnk/Sq2luz6ZblyC4QKSOhI4zXP6lZ7rjVUn0ya6urnH2OdY9wUbAFAf/lntbJ7dc81xyVnY7Iu6TOrorkLj/hI4oJoVkmb7MVUzBMmdXYEsoHJKrkcc89zT4otdKNKbu6kMFskkSiIIJmEjllKnnJQKvOOueDSGdSJYzKYhIpkVQxTPIB6HHpwfyp9cdcnxAEeUCZfOWJ5CsWWiVmkJRdvzEqPLBxnuabNL4otlXy2muhGiTFhCF83cvl+Xg8gqf3h+n4UAdnRUcCPHbxxySGR1QBnPViByakoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACmuiSDDqrAHOCM06ojcQrIIzKm8naF3c5xnp9Ka8hO3UlAAGAMAUUiOroHRgynkEHINQTX1pbzxwTXUEc0n3I3kAZvoD1pDLFFRzzxW0DzzOEijUszHoBSS3EMAjMsioJHCJk9WPQUAS0UEgDJOBRQAUUZBJGenWigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK57xnevYaLDKt7JZI15BHLPHjcsbOA2Mg9vagDoaK4ew1C+e6skW+urmwOqCO3uZl2PPH5DlgcAblD9DjnHfGa0J/GIWW/tI9Pk+2wW0lxDE00R8wJgHO1jsPIOGxxQB1FFcIde1G/vPDsl5Y3dpayWr3lwYrlFX5Qh3NhslAGJ298jg4rag8VJI8Jn027tobqNpLWWXZiYKu7GASVJUZAbFD0BanQ0VzMPjA3EFjJFo1+WvwzWqMY1MihA245b5RzjnHT3FSab4uh1GeyX+z7yCC9Z44Z5QoBlQHchAOR91ucYODQB0VFZWo60bS+jsLWxnvrxo/OaKJlUImcbmZiAMngDqcH0qnc+K4rd7iQafdyWNpJ5d1drt2xNxu4zuYLkZIHHPXFAHQ0Vzr+LYo7qVDp939mhvBZzXXy7Ec7QpxnJGWAyBxmsnStUuptaup79NRgL6r9jhUXCNFhUJClMnA4JJHJJHPFC1A7iiudh8WRzz2hXTbz7HeXHkW92dmxzz82M7gvynBI5qzbeI7e6s9LuVglC6izLGDjK7VZuef9g/nR0uBs0VzUXi7z9FTVY9Jult5SvlGaWKIOpGd2WcADPHPJ7cc1DH4tmvtV0yKy0+WTT76xe6M+9VZMFR0J7Z565yMd6GB1dFc1a+Jc2VnHY2F/qUxtI7mTmMOiMPlLEkAscHgelEvjK3KGSy0+8vYxZpfM0QVQsTFv7xHzDafl60AdLRWHb+JYb3V1sLK1lnXy45ZJt6KEV13KdpIZhjuBxW5QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFADZN/lN5eN+07c9M9q4Gzstds9SmvW095JnDg5AIJP49K9AorWnVcE1a9zCtQVVp3asZHhuK+h0kRX0YjdXOxcAHb74981marbXVtFrijSpL77cMxyxFSQNgXawJB+UgsMZ68c11VFZzfNJs1px5IqPY45oPED2ot4Vu8pHcETtMF8zco8vjOQfqBgijUNL1m6jkWBJl1BbsSLcyzBodgfK7U3cELgfd6+tdjRSZRxN7pGp31vdQfZr7ypbPaEuLrlHAGFUq+GyQckgc98cU69s/EM99cNaRXNvCbeSNALj/YGw5LnD5z0Ax6nNdpRQBiaRpZ07W9UkEU3lz+W0crzFwwCgEcsTnI9OmOa26KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAqjqmmrqkNvG8rR+TcxXAKjOSjBgPxxV6igCjqGmpqEtlI8jJ9lmMoC/xfIy49vvZ/CsTTvBUVi8e+/kmiitpbVEESJ8j7clioyzfL949a6migDAtfDCxQ2UV3ePdLa2stoNyBd8bhRg47gKBnvmmW/hZ18lbvVbi6htY3jtEdFXywylMsQPnIU4yffvXRUUPUDKg0OOB9IYTuf7NhMKZA/eAqFyfTpUFt4aitoNLiFzIw0+5kuFJUfOX38H6bz+VblFAGRqGiy3OpJqNjqElldiLyXYRrIsiZyAVPcEnBHqetU7jwoZnuoV1OePTryTzbq0CKd7HG7DYyobHI+uMZro6KAMObw3FNY3lqbmQLc3q3hYKMqQyttHt8n605fDsSyrJ9okyNROoY2j7xUrt+nNbVFAHA2Wl3zarpthbrqa6fp94Zgt1CiRxIAwADg5k5YbfQdelbNp4SNrcWf8AxNLh7SylkktrcooCB1YYJHLY3HFdLRR0sBzk3hNGtNIiivnR9Mj8pHaFJA6kAElWGA3AwR059aW18KLZLpYt9QmU2ML27FkVvOjcgkH0OVHIroqKHqBzkfhaWzS3/s7Vp7SWO1jtZXESP5qJnacEcMMnn36VPb+GLW0hnht5ZEilsVsgpwSqrv8Amz3J3mtyigDnP+EUDXemSSXzNDpyxiFBCivlFx/rPvbT1K966OiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACo5p4reIyzOqIOpJp7MFUsxwAMk+lcDD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ABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAVHFPFOZBFIrmNijgH7rDsakrOvtGhvZ/N82aAuNk4hbb5yf3W/wARg4yM80AXYZ4riISwyLJGSQGU5BwcH9RVePVLOW+vLNZh59mqtOpBG0MMg57jAq1HGkUaxxoqIoAVVGAB6CsK58Pyz6pc3azoguZFWQYOWh2KGT6kqMH0JoA1LHVLPUbWC5tp1aO4j8yLPyll9cHmpjdW4jZzPFsU7WbeMA+hrlG8J37TWf8ApNv5VvjbjKlRhwVwByDuByTxyMU6Twlcx2i29q9qkRt4IZYwu0OUVwWzg4OWXnGSBjIoYzqzNEJRGZEEhGQpYZI+lEcscoJjdXAOCVOcH0rhDotxHe2emjy5p1lid7oQvviCw7ThyNu3jI+bPOMd66Pw5ojaNbyLIE81wisySs4baMA4IGPpz9TQI26KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAgmsrW4cPPbQysBgF4wxx+NU9J0qCzsLUPaQJcxxgMyouQcc8itOiq55W5bk8kb81jP1TTP7Ta1VriSKKGXzWERKszAELz2wTn8BWO3hSdbSS1h1BPJeIQEzQ72WNXLqAcjkbiOfQGuooqSjEstCmtdRt52uo3ht/O8tRFhz5jBjubPOMenPelsdDmttck1Ka884lJEUFTnDMGGfmwMYxwBnvW1RQByVr4buru0AupY4FjknMSLDhvnm3Esc88AenXJ6VN/wi1ybu4uX1ESSvt2M8bH7sokG75sdsYXFdPRQBgSeH5xI8sF1CJJGn3ebBvXbKQSAM9Rj6HuKda+G0tRCqz7liuvtA3Jyf3XlgH375rdooAydI0QaU0ZWUMEs4rbATbnYWO78d3StaiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo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SPxqaigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAa/3fxH86dTX+7+I/nTqACiiigAooooAKKKKACiiigAooooAKKKKACsrXYEeyEnlb3VgBgZOCa1aK58Vh44mjKjLZounNwmpLoRW8KQW6RxoEUDpWff214mqQ6jZxR3BSFoWhd9nBIO5Tg+nI/wrVoraEVCKjHZEttu7OOuvDeo3d5qNxI5EtxFIInW4AVN0e0RkbNxAOT1x3xmpz4YaHVmmtba1jgd7dmZThsJncpGOc5B6811VFUI4238LXdnaW0SwWs0MMUKyWm8qkxUybs8Y6up5HOOajvPC+o311dl4rRIJbaWBUDDaQVXywRtydpHUn6Cu2ooA4+Tw1dzX088kbBHiIiWG6EflgxhfK+5nAOSOcdDirx0i+PhZdPKW4k35eKM+Wrx7slcgfKxHcAc9MV0VFAHPaDpV9p81z9pVTC6BbcCYsYlyTsY4yxyzHf16emTjnwrqL2sULoot1d/3Mcyq/wAwUB2fYQzDDc4DYI5zXc0UAcrJ4cnmkkjmtoJN10krXbykvLEHDbGGOwGMZwce5qpP4RubhdTWVVlaXd5ZeUeXIPMDKrLsyMABQSTjt1rtaKAMLRtMuLLVL24eCKKGblRuDvnPTcAPlxjAOcdjit2iigAooooAKKKKACiiigApp/1i/jTqaf8AWL+NADqKKKACiszV9TuNNNt5NkLgTyrFnzQm1j06jpUFl4lsrj7Qlw6280Dyq6EkjCNtJDYwe3A55FAG1RWbLrdoulyX8JM0aOI2UDawYsFwQcEEZ6GqupeI1sLxrVbcPIJEjDSTLGnzI7dT0+4R+IoA3KKxYPEtnIgeZJYAYopAGUsxL7sKFGSSNh/Crt1q1hYoWurpIVEfmkvkfLkDP5kD8aALtFZ7a3pq3ItzdJ5hfy8YJAbOME4wOeBnqelSSarYQ3Agkuo0lMohCMcEuVL4/wC+QTQBcornbnxUkJzDFFcRNuKOkp6AxYzleD+9z+A9eNm51C1s5Yo7iTY0rBUJUkZJwMnG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KACkZlQAswGTgZPesfXre6v1hsoIdyMTJIxcoBt+6MgHncQcf7NZs0mp3n2czwXSSrNAywiL92cEbizY/vA9xxitoUuZJ3MZ1eVtWOq3Lv2bhuxnGecUua5/R1upNXNxcC6LG0VZGni2hZNxJVeBx+f1qm1tdSaXBai2nE1tBcLJlCASUZVAPRskjGKfsVe1xe2dr2/rQ6sEEZBBHtS1zNjY3FtfW6NblcTrIWij2xbfJZc47HPB/CumrOpBRdk7l05uSu1YKKKKg0CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAGv938R/OnU1/u/iP506gAooooAKKKKACiiigAooooAKKKKACiiigArkL7xlJaahc2ywRsIXKknPY966+uA1Pwrq9xqOpSwxQmO5kLITLggbsitqMISb53Y58ROpBJ01c2tB8UNrGpyWbQohSMucZyDkDHP1rWu9Xt7LVLHT5Vk8y93+W4HygqAcE9s54rnPDHh7U9N1+5vr2OJI5YyoCSbjnI/wrf1PR11KeOYztE8cTpGyqCVYlWDj3BQUq0YxlaDuisPOc4XqKzGReItPdrzzJDClrcfZ2kk4Vm2gkj25xn2NST65YRm4iiu7eS5hRmMRlC/dGSCe3BB9gc1mXnhFbm2kt4r544pBh0KZB/dhMkAjJ43c8ZJ4NST+FI5rN7f7Wyh5JJCwQfxxeX+g5rI2J7bxNYTyXfmSxQx28/2fcz8swGTxjgDPX+VTXfiPSbJis14mRKkRC5bDMcDOKo3fhSK6l81p0c+bK5WaLehWQKCuAw/uDnPrwacfDTiWZ4r0Qq0scscUcWI1ZG3ZK7uScYJG3P1oA6CiiigAooooAKKKKACiiigAooooAKKKKACiiigApp/1i/jTqaf9Yv40AOooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAGv938R/OnU1/u/iP506gAooooAKKKKACiiigAooooAKKKKACiis7UrufTit4dr2SjbOmPmXJ4ZfX0K/lzwQDRoo6isO4117bVriCdYoYLeMyEPu8yVQuS0fGCB0xnPB9qANyisq48QWlvcm2EdxLPvEYjijLEkpv+n3aiTxTpsjrt88xER7pvKISPePl3Htnp7HrigDaorF/wCEosRHvMV0N2zygYTmYO21WX1BJHXHWrGl6uupRXUjW01qtvM8TedgZ29TwelAGlRVOy1Oz1OOVrG5im8tih2OGwQSOcduKyLTxFcJcvDqMcQJuHgj+zBmyUAZmYngAA0AdHRWTb+IbK4ljj2XEbSlfKEkRXzFbOGHtwff2qovimD+0JUaKU2axo3mrEfkJd0Jf0GV/r0oA6GiuctfF1kEt4751juZSdwQcLl2VcjOedvbP4USeLIg9pNHbXD2c0U0hIiy+E2HcMHG3DH34x1oA6Oish/EunRyNvaUQDI+0+WfLLBdxUH1x7e3Xiom8Sxfaba3WxvfNmnETI0YUxgozBiCeh2np6H0oA3KKwbXxRaOIElaR2ZYy8yQlYlMmdmcnjOMd/erlhrdtqNyYIo7hG8oTIZYyodCcBgfQ/nQBpUUUUAFFFFABRRRQAUxiA6kkDr1p9FADd6f3l/Ojen95fzp2B6UYHpQA3en95fzo3p/eX86dgelGB6UAN3p/eX86N6f3l/OnYHpRgelADd6f3l/Ojen95fzp2B6UYHpQA3en95fzo3p/eX86dgelGB6UAN3p/eX86N6f3l/OnYHpRgelADd6f3l/Ojen95fzp2B6UYHpQA3en95fzo3p/eX86dgelGB6UAN3p/eX86N6f3l/OnYHpRgelADd6f3l/Ojen95fzp2B6UYHpQA3en95fzo3p/eX86dgelGB6UAN3p/eX86N6f3l/OnYHpRgelADd6f3l/Ojen95fzp2B6UYHpQA3en95fzo3p/eX86dgelGB6UAN3p/eX86N6f3l/OnYHpRgelADd6f3l/Ojen95fzp2B6UYHpQA3en95fzo3p/eX86dgelGB6UAN3p/eX86N6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F/34/wDsqALVFVfJvv8An7i/78f/AGVHk33/AD9xf9+P/sqALVFVfJvv+fuL/vx/9lR5N9/z9xf9+P8A7KgC1RVXyb7/AJ+4v+/H/wBlR5N9/wA/cX/fj/7KgC1RVXyb7/n7i/78f/ZUeTff8/cX/fj/AOyoAtUVV8m+/wCfuL/vx/8AZUeTff8AP3F/34/+yoAtUVV8m+/5+4v+/H/2VHk33/P3F/34/wDsqALVFVfJvv8An7i/78f/AGVLZyySLKspVnjkKblGAeAen40AWaKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACqk/8AyErT/dk/pVuq1zFK08M0IRmj3Aq7FQQcdwD6UAYfiUIt9ZzEG5dRhbJkch8sPmRl4Vx78Y9OtU/teswpK1uphjhV5fKS1GJW+0MMHjuozxzzmuo333/Pvb/9/j/8TSeZe/8APC34/wCm5/8AiaEBx15qOoXpazllmdpI2eW2Ntt8plmjACnGSNpPrnrWzoV9qt5qd2t48axJvHkbGDRkPhcHYBgrz1bPBHFXbbT3tLl7iKzh85xtLvdSOQM5wNynaM9hgVc333/Pvb/9/j/8TQBx1vqGvQC2tRduW82UPLdRH5nEuBGdqHjbgjp14PFXG1PWbaMzTNPIkonG1bcDyNsoVDnB42nJyDwMgdq6Xfff8+9v/wB/j/8AE0nmXuceRb5/67n/AOJoA5WDVPEE1qJ2dx5MW4qLbPnHz2XklQeUAPAHXPHSr9ncajbeGLx/PuLm9hnlXM0WWQeYegAG7C8j16Vub77/AJ97f/v8f/iaN99/z72//f4//E0Acyb/AFmclLW8ma3VZnjuTaDdLtRCoIIwPmLDoM449ais7zU7eSXapifUboogeL7kpRG3c9RtD/itdXvvv+fe3/7/AB/+JqB4J5LuO6e0t2miUqjG4b5QeuBtxn360B0LTNcC5RVjiMBB3uZCGB9lxg/mKwrOG6g8SatePPILSSVE8p84yI0wy+3JBra333/Pvb/9/j/8TSb77/n3t/8Av8f/AImgCd9235SA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ZBuKDHUAdz+NSDxXYva20sMF5PNcM6rbRwkyqUOH3L22ng5PcYzQBu0Vz8Xi+wuEtja297cSXAdlijg+dVR9jMwJGAG49faugoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACsrXdFTXYba1nkAtEnWWeLB/fBckLnPA3bT+FatFAHKTeCLaOa4bTJ/sUcyRNsCl8TxPvjk5PPcEdx6VOfDV1eHU5NTv45pL62jgAih2LCULEMuWJPLA8nqK6SigDlJfCEz2OmxG8gmlt2kkuftNvvjuJJOWcpuHzA5IzkDOKn0XwsdIWFftYl8qw+x58vbn52bd1464xXSUUAtDmdN8NX+itAbDUYcG3hguVmtywcxjaGXDDaSOMHI6VFp/gyGwvJMLp72jPKysbIC5G/OV83PQbjzjOOK6uigDmrDw5qFvc6SbnVY5rbS9ywxrb7GdShQbzuPIB7AD2qfXtAn1m6tnSe3gWEqwmEJM8ZDZOxwwwDjBBBFb1FAHMaf4RTTtYa5jGnvAbh7hWexU3CliSVEuemScHGccU1PC97DYQW0Wow5s79ru0Z7cnAYuSrjdz/rG5GOgrqaKAMC28ONBqkN4boN5d5PdbdmM+au3Gc9vWsm905/D11DfRX0iTvNcncLCS4QpK4fYQhyGBAwehwa7WigDhrPwvqGo+G7GK4ljtpvMmmMs0B+0xF5S4ZGVhsbBGRyPriu5AwAM5oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACkJABJOAOpNLXO+Mhd3OjppllbNPLfyrA4yVURdZNzAHaCoK59WFAG3NeWtuAZrmGMFWcF3C5UDJPPYDkmpgQyhlIIIyCO9eU3Vlqh0VNNn06cS6fZ6jaqEVpFKGIGIK2Bu+Uhfcqa14Z9dbV47YTajFN9oEXkCD/R1tPL/wBZv2/fB5+9nPGMUAegUV57pF94qutS0+K7F3HDcMschaLAj+z58wk44Ep6eoHFP1/U9WXxTqFrY3l+JYY7RrS3ghDxs7M+4SHacKQOckdM0Ad5LLHBC8s0iRxoCzO5wFA6kk9BSSXEEQjMk0aCQ7ULMBuOM4HrwDXnGrXutX2mXumPDqEki22ppcKbZtj9fIAbGG+UjGDSx/2pdXNmq/2jc2UF9buj3dsUeOTypfMAG0fIPk56ZOMmkP8A4J6PDNFcQpNBIksTjcjowZWHqCOtLJIkUbSSOqIgLMzHAAHUk1xHh+61SS+0yPVptRtx9jgaCOO3xHM5U+Z5pC/KQccErj8ad4gkv7jUNatLiTUFj+xMthBbwFoZ8xNu3sFPzbuMEjoMZzTloJanZQ3MFwXEM8cpTAcI4bbkAjOOmQQfoalrzWa58Q21u0MJuba0+0QxvMtszNHH9lQjAVSxHmZBODg8VbRvEn2xpZdQvnEM9jGFS3CRyq4AlYqVyOpPX5SKb3EtjvtwwTkYHeoLW/s74MbS7guAuN3kyB8ZzjOD7H8q43RLC4T4e6xYNLqJulN2pEqkOCWcjZ8vIIIORnJY1j2FpqekRuIV1CC3eHT0uriKDdMkYjk3bRt5IbaDgEgGl/wCrHqVFecPdeLTbQx28t6ftSSiCaSABkWKQurOMcNIny8gduAatWOo65Jq2kXFwdQaK9JkayERQ26uzFS5KYKhQoKkgg885oQjsp9QjhmMSxzTSKAWWJM7c9M9vw61Nb3Ed1CJYmypJHIwQR1BHY1mzJNbTTAxTPHJOs6vCu45GMqR2+716c1csIpUSaWZBG80pk8vOdowAAffjJ+tAFuiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKgjsraK9nvEiVbidVSWQdWC52g/TcfzqeigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKimuIbcAyyKuegPU/Qd6AJaKq/2jbesv/fl/8KP7RtvWX/vy/wDhQBaoqr/aNt6y/wDfl/8ACj+0bb1l/wC/L/4UAWqKqHUrUdWkH/bJ/wDCk/tS0/vv/wB+n/woAuUVT/tS0/vv/wB+n/wo/tS0/vv/AN+n/wAKALlFU/7UtP77/wDfp/8ACj+1LT++/wD36f8AwoAuUVXhvrad9iSjf2VgVJ/A1YoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACsfxFd3Vrb2YtGmV5rpYm8lULlSrEgb/l7DrWxUF1Z219CIru3injBDBZFDAEd+e9AGK/iKS1u2hntgLaGVIJLiSUB9xi35KgYwOh5+lUU8SX19qNpHbW6RyLNJG8ckhRJB5QdWyU3d/T9K6ZdPs1QILWEKCDjYMZAwD+XH0qA6FpJh8k6ZaeXu3bfJXGcYz09OPpQBzsPiy4LyyQWc101yytBBz8iiFGYZUHqW47c5yBWhrmrahbC1W2ijiS4tZ5JPMJEkZWPcMYBGQTWvNpen3CbJrK3ddwbDRg8gYB/Lj6VJPZ210EE9vFKIzlA6A7eMcfgSKARzSeKbuC3ht5dPMt8yx7VjkLhg0ZfJIXIPyngA/XFWtY1K7SLR5kjeCKZzJcxF9sgVYmfbwDk/L04zjHetebTLC4QpNZwSKduQ0YP3en5ZOKnMEJ8vMSHyv9X8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9jQBNRSEhRkkAeppaACikyM4yM9cUtABRRRQAUUUyaaO3gknmcJFGpd2PQADJNAD6Khlu7eGNZJZ440YZVnYAHjPf2BP4Ulre2t9EZbS5injBwWicMAfTigCeiiigAooooAKKrR6hZTXb2sd3A9wn3olkBYfh1qzQAUUU2SRIYnkkdUjQFmZjgKB1JNADqKgtby1vovNtLiKePON0Thhn04qegAooooAKKikuIYpoonkCyTEiNT1YgZOPwqOTULOG6S1kuoEuJPuRNIAzfQdaALNFFRfaIftX2bzB52zzNnfbnGfzoAlooqIXMLXAtxIDKU8zaP7ucZ/OgCWioluYWnlgEimWIBnXuoOcE/kfyqC31bTruRI7a9gmZ8hRG4bOBk9PYigC5RRTBLGZWiDqZFAZkzyAehx+B/KgB9FNSRJASjqwBIJU55HUU6gAooooAKKKKACiiq1rqFpetKttOkrRECQKeVJ6ZFNJtXFdbFmiiikMKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKr38E1zp1zBbXBtp5YmSOZRkxsRgNj2PNWKiurmGytJrq5kWOCFDJI7dFUDJJ/CgDH8IaRqmh+HobHWNVfU7xWZmuGz0J4XJ5OPeq2u6Vq2o6ibm1+zotnGrWolGS8u7cSCCNvChefU1qaHr2m+JNMTUdKuRcWrMVDhSuCOoIPINQXeviz10afJbHymgEi3G7jzCWwhHbIU4PrxQBy1y+pvp2p30JvYTG92JJmu8gjLBEQZ+Ug98DGOpzXR2dnqS2GqLD51sZs/ZI7ibzGjOzBOctgFucZPr3xUtp4gsLmO2R0ZGuFTcPLLRo7qGCFsY3c/qPWlbxBbwaveWV0yoIArKQCTs2bmZvRR0z0oAyZtN1BolFvZ6hGphYRo1980U/GJGO85X8+h+Xmop9E1lZbmWAFWdpMtG67nVpUYgcjBKg9x6ZFbkHifSrhJmS4YeSjSSKyEFQoBP44YHHvUFp4ptHWf7Zut2jlmQMY22sEYjAOOWwAcCgClDpF8dsF4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FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFUr0sZoIg7orbidhwTgcc0AXaKzfJP/Pe4/7+mjyD/wA97j/v6aANKiseKSCaVooryd3T7wEjcfj0qbyD/wA97j/v6aANKis3yD/z3uP+/po8k/8APe4/7+mgDSorKljaOCR1nn3KhYfvCeQKcS89xJullUKEwEbaORk0AadFZvkn/nvcf9/TVea4treXypr6ZHxnBkbp6+1AG1RWWke8tia6+U4yZGGfp6ineQf+e9x/39NAGlRWd5B/573H/f01HDsnj8yO4uCuSM+YRyDg0AatFZvkn/nvcf8Af01asWZrUbmLEMy5PXAYgUAWKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKpXfN3bc9n/kKKKAFx7ijHuKKKQzJewvcTJEIY4n/wCWRcsrHdkkAj5eM+ozTIdIuUESNMoT/lrhiehJTHHuPyoooEWdLsZLNX85vnYAEh9wYjvjAwa0Me4oooGRXA/0Wbkf6tv5GkiH+kTcjon/AKDRRQBNj3FZ9za3TXU7wiExzQiIl2I29ecY560UUAVv7JuEdNjIwSQFS7HAXCjlcdeDQ+l3RtfJCQFi2XlLktJ1weRweaKKBAmk3AizIY5ZN8ZZWc4dQoBBOPXmr+nWr2lksMhQMGY4UkgZJP8AWiigLFrHuKfYf8ex/wCuj/8AoRoooGWaKKKYgooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP/9k=" alt="Entra ID app registration with the Mobile and desktop applications platform configured and the http://127.0.0.1/callback redirect URI" /&gt;
&lt;BLOCKQUOTE&gt;⚠️ Common pitfall: if the redirect URI ends up under the &lt;STRONG&gt;Web&lt;/STRONG&gt; platform instead of &lt;STRONG&gt;Mobile and desktop applications&lt;/STRONG&gt;, Entra will demand a client secret on token exchange — Claude won't send one and you'll get &lt;CODE&gt;Token exchange failed (HTTP 401)&lt;/CODE&gt;. The app type can't be changed after creation, so create a new app if that happens.&lt;/BLOCKQUOTE&gt;
&lt;HR /&gt;
&lt;H2&gt;Step 2 — Create the API in APIM&lt;/H2&gt;
&lt;P&gt;In the portal under &lt;STRONG&gt;APIM → APIs → + Add API → HTTP&lt;/STRONG&gt;:&lt;/P&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table border="1" style="border-width: 1px;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Field&lt;/th&gt;&lt;th&gt;Value&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Display name&lt;/td&gt;&lt;td&gt;Anthropic API&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Name&lt;/td&gt;&lt;td&gt;&lt;CODE&gt;anthropicapi&lt;/CODE&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Web service URL&lt;/td&gt;&lt;td&gt;&lt;CODE&gt;https://&amp;lt;foundry-account&amp;gt;.services.ai.azure.com/anthropic&lt;/CODE&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;API URL suffix&lt;/td&gt;&lt;td&gt;&lt;CODE&gt;claude&lt;/CODE&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Subscription required&lt;/td&gt;&lt;td&gt;&lt;STRONG&gt;Off&lt;/STRONG&gt; (Entra ID is our only credential)&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;colgroup&gt;&lt;col style="width: 50.00%" /&gt;&lt;col style="width: 50.00%" /&gt;&lt;/colgroup&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;P&gt;Add two operations under it:&lt;/P&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table border="1" style="border-width: 1px;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Method&lt;/th&gt;&lt;th&gt;URL&lt;/th&gt;&lt;th&gt;Display name&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;POST&lt;/td&gt;&lt;td&gt;&lt;CODE&gt;/v1/messages&lt;/CODE&gt;&lt;/td&gt;&lt;td&gt;Create message&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;GET&lt;/td&gt;&lt;td&gt;&lt;CODE&gt;/v1/models&lt;/CODE&gt;&lt;/td&gt;&lt;td&gt;List models&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;colgroup&gt;&lt;col style="width: 33.33%" /&gt;&lt;col style="width: 33.33%" /&gt;&lt;col style="width: 33.33%" /&gt;&lt;/colgroup&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;P&gt;The &lt;CODE&gt;/v1/models&lt;/CODE&gt; operation isn't strictly needed (Foundry's Anthropic surface doesn't implement it), but having it registered means you can decide later whether to stub it out or proxy it.&lt;/P&gt;
&lt;IMG src="data:image/jpeg;base64,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/wCFHlfEr/n40L/vl/8ACgDuKK4fyviV/wA/Ghf98v8A4UeV8Sv+fjQv++X/AMKAO4orh/K+JX/PxoX/AHy/+FHlfEr/AJ+NC/75f/CgDuKK4fyviV/z8aF/3y/+FHlfEr/n40L/AL5f/CgDuKK4fyviV/z8aF/3y/8AhXWacl8NOt/7RkjN7sHnGEfJu74yOlAFyim7T/fb9P8ACjaf77fp/hQA6im7T/fb9P8ACjaf77fp/hQA6im7T/fb9P8ACjaf77fp/hQA6im7T/fb9P8ACjaf77fp/hQA6im7T/fb9P8ACjaf77fp/hQA6im7T/fb9P8ACjaf77fp/hQA6im7T/fb9P8ACjaf77fp/hQBVl/4+fxH8jT4/wDXr/un+lMkGLjqTyOv0NPj/wBev+6f6UAWaKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACorj/Vf8CH86lqK4/1X/Ah/OgCKpLfpJ/vf0FR1Jb9JP97+goAmooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigApsn+rb6GnU2T/Vt9DQBXj+6v+7/SiiP7q/7v9KKALNQ28jSLIWOcSMo+gNFFAE1FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABQTxRRQBFHBDFI8kcUaPKcyMqgFj7nvUtFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAVHMfkH+8v8AOiigBYD+4T/dFPoooAKKKKACiiigAooooAit5GdZCxziRlH0BqWiigAooooAKKKKACiiigAooooAKKKKACq9/K8FhPLG211UkHGcUUU47oT2I/Pl/stZt37wqDnA9anWRjdyIT8oRSB7kn/Ciiqa3JT2JaKKKgsKKKKACiiigCpIT9p7dR2/2TUiH9+vT7p7fSiigCeiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAqOc/u/8AgQ/nRRQBHk+35U+A/wCs/wB7+goooAlooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigApsh/dt9DRRQBAh+Ren3fT2ooooA//2Q==" alt="APIM API with POST /v1/messages and GET /v1/models operations" /&gt;&lt;HR /&gt;
&lt;H2&gt;Step 3 — Add an API key for Foundry as a Named value&lt;/H2&gt;
&lt;P&gt;APIM → &lt;STRONG&gt;Named values → + Add&lt;/STRONG&gt;:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Name: &lt;CODE&gt;foundry-key&lt;/CODE&gt;&lt;/LI&gt;
&lt;LI&gt;Type: &lt;STRONG&gt;Secret&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;Value: paste a key from the Foundry account's &lt;EM&gt;Keys and Endpoint&lt;/EM&gt; blade.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;This is the only place the key ever lives. Clients never see it.&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;Alternative — keyless with Entra ID (managed identity):&lt;/STRONG&gt; If you prefer not to manage a Foundry key at all, enable the APIM instance's &lt;STRONG&gt;system-assigned managed identity&lt;/STRONG&gt; (APIM → &lt;EM&gt;Identity → System assigned → On&lt;/EM&gt;), then grant that identity the &lt;STRONG&gt;Foundry User&lt;/STRONG&gt; role on the Foundry account (role ID &lt;CODE&gt;53ca6127-db72-4b80-b1b0-d745d6d5456d&lt;/CODE&gt; — previously named &lt;EM&gt;Azure AI User&lt;/EM&gt;; Microsoft renamed it but the ID and permissions are unchanged). In Step 4, replace the &lt;CODE&gt;set-header&lt;/CODE&gt; that injects &lt;CODE&gt;x-api-key&lt;/CODE&gt; with:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE&gt;&amp;lt;authentication-managed-identity resource="https://cognitiveservices.azure.com" output-token-variable-name="foundry-token" /&amp;gt;
&amp;lt;set-header name="Authorization" exists-action="override"&amp;gt;
  &amp;lt;value&amp;gt;@("Bearer " + (string)context.Variables["foundry-token"])&amp;lt;/value&amp;gt;
&amp;lt;/set-header&amp;gt;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Then you can skip the &lt;CODE&gt;foundry-key&lt;/CODE&gt; Named value entirely. Don't use the legacy &lt;CODE&gt;Cognitive Services User&lt;/CODE&gt; role — per the Foundry RBAC doc, roles starting with &lt;EM&gt;Cognitive Services&lt;/EM&gt; don't apply to Foundry scenarios.&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;HR /&gt;
&lt;H2&gt;Step 4 — Write the gateway policy&lt;/H2&gt;
&lt;P&gt;This is the core enforcement layer in the architecture. Open APIs → &lt;STRONG&gt;anthropicapi → All operations → Inbound processing → &amp;lt;/&amp;gt;&lt;/STRONG&gt; and paste:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE&gt;&amp;lt;policies&amp;gt;
  &amp;lt;inbound&amp;gt;
    &amp;lt;base /&amp;gt;

    &amp;lt;!-- USER → APIM: verify Entra ID token from Claude Desktop --&amp;gt;
    &amp;lt;validate-jwt header-name="Authorization"
                  failed-validation-httpcode="401"
                  failed-validation-error-message="Unauthorized"
                  require-scheme="Bearer"&amp;gt;
      &amp;lt;openid-config url="https://login.microsoftonline.com/{{entra-tenant-id}}/v2.0/.well-known/openid-configuration" /&amp;gt;
      &amp;lt;audiences&amp;gt;
        &amp;lt;audience&amp;gt;{{entra-client-id}}&amp;lt;/audience&amp;gt;
      &amp;lt;/audiences&amp;gt;
      &amp;lt;issuers&amp;gt;
        &amp;lt;issuer&amp;gt;https://login.microsoftonline.com/{{entra-tenant-id}}/v2.0&amp;lt;/issuer&amp;gt;
      &amp;lt;/issuers&amp;gt;
    &amp;lt;/validate-jwt&amp;gt;

    &amp;lt;!-- APIM → Foundry --&amp;gt;
    &amp;lt;set-backend-service base-url="https://&amp;lt;foundry-account&amp;gt;.services.ai.azure.com/anthropic" /&amp;gt;
    &amp;lt;set-header name="x-api-key" exists-action="override"&amp;gt;
      &amp;lt;value&amp;gt;{{foundry-key}}&amp;lt;/value&amp;gt;
    &amp;lt;/set-header&amp;gt;
    &amp;lt;set-query-parameter name="api-version" exists-action="skip"&amp;gt;
      &amp;lt;value&amp;gt;2024-05-01-preview&amp;lt;/value&amp;gt;
    &amp;lt;/set-query-parameter&amp;gt;
  &amp;lt;/inbound&amp;gt;
  &amp;lt;backend&amp;gt;&amp;lt;base /&amp;gt;&amp;lt;/backend&amp;gt;
  &amp;lt;outbound&amp;gt;&amp;lt;base /&amp;gt;&amp;lt;/outbound&amp;gt;
  &amp;lt;on-error&amp;gt;&amp;lt;base /&amp;gt;&amp;lt;/on-error&amp;gt;
&amp;lt;/policies&amp;gt;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Two things to notice:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;CODE&gt;validate-jwt&lt;/CODE&gt; uses the &lt;STRONG&gt;OIDC discovery URL&lt;/STRONG&gt; — JWKS keys are fetched and cached automatically. It rejects any token whose &lt;CODE&gt;aud&lt;/CODE&gt; claim is not the client ID of our Entra app, which is exactly what we want.&lt;/LI&gt;
&lt;LI&gt;The &lt;CODE&gt;Authorization&lt;/CODE&gt; header from the user is &lt;STRONG&gt;not forwarded&lt;/STRONG&gt; — once &lt;CODE&gt;validate-jwt&lt;/CODE&gt; succeeds, the request is re-authenticated to Foundry with &lt;CODE&gt;x-api-key&lt;/CODE&gt;. No user token ever leaves APIM.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;APIM becomes the security boundary&lt;/STRONG&gt; — user identity is validated at the edge, and downstream services never see or rely on user tokens.&lt;/P&gt;
&lt;IMG src="data:image/jpeg;base64,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WgBgYoAzb3UJYrxYIWgUbfnaUNgMegJHAzz1NTWV080UzTtDmJypaI5XgA/1qrc6M11LPcPMfPZgY1BPl4HQMvRupyTzzx0FaMNvFbW6wW8axRqMKqDAFay5OWy3Mo8/Nd7EUGo2txEkqybUkOIzICm/jOVz1GKbPqtjb232h7qIx7toKODuPoPU81mHwrbO6PLKXILErsAQZwflUcKcqD9c0r+FrYjEc8kYKqjAKpBVQg444PyDn/62MjU2nnhjBLyooXruYDHGf5c0CeEqGEqYIDA7hyD0P41mX2gx31zJK1w4RzuMZRSu7Zsz69McZ60260T7U9pDI7NBFC0csjN88nAAzx2PzZ9RQBqJdW8iB454nU/xK4I64/nxUMup2kTWwMyN9pcxxbWBBIBJ59gDWcfDaM+9ruTcxUylUUB9pUqMY4+4OnvU8+g2s+m21izOsUEZjUrgEgoU9PQ5oAvi8tSFIuYSGUuDvHKjqfpVa21mwu52hiuELjOMkANgsPl9funpWb/wiNmW3b8MV5KoOGBJDAdupz608eF497N9smBc7nKogO7ezgg4+XBY/lQBpz6nZW9v57XEbIVLLsYEsB1wO9WUdZF3IwZc4yDkVgx+FLdLae3+0y+XcIyTfKMnJJ4PVep6Vs2VqLKzjtlcusY2qSADjt09qAJ6KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKbIxSJmVSxVSQo7+1ZB1GONw321JJyNxiBwpH90Dru9M9auMHLYyqVVDc2aKoardyWltE0bJF5kqxtLIMrEDn5j/AC+pFZP/AAlD28MgmtjcNHuKSxHCyxqSC49ADtB5756VBqdLRXPr4mfaXk09kQbFOJQx3sDtAwOhIAzn+IcVCnioxblltJXSJS88pdRsXccnHcADqPSgDpqKztI1Q6rbySm2eAxv5bI7AkOB8w/DpWjQAUUUUAFFFFABRRRQAUUUUAFNZgoJJAA5JJp1ZfiCOxl0mSPUbp7e1YgO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IRlkPcYP5+lWoSa5ktDNuHNZ7l9o0fO5FbcMHIzkelMFtApYrBGCxJbCDknrmq8+q21tqEVlJv8ANkAIIXKjOQMn3wabcazp9vb+cbmNwQSqxsCzYODgZ5qDQtG3gZw7QxlwCAxUZwev50qQQxxCJIkWMHIUKAPyqE6nYKCWvbcALuyZB0zjP58VFLrWnxSW6G7iJn5Ta4Py7S2489MKeaALX2W3+f8AcRfPnf8AIPmz1z6002VqwANtCQF2gGMcD0+lSxypNGskTq6MMqynIIp1ACABQAAABwAKWiigAooooAKKKKACuU+IH/IAi/6+F/k1dXXKfED/AJAEX/Xwv8moA0PCH/Iq2P8Aut/6Ea26xPCH/Iq2P+63/oRrboAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAI5/9Q/0og/1X/Aj/ADNE/wDqH+lEH+q/4Ef5mgCSiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooArXX8P0P9Ks1Wuv4fof6VZoAKKKKQBRRRQAm1d27A3YxnHOKWiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooopgUNV0qPVYI0aaWGSKQSRSxEblYAjvkHgmsfSPBVrpWrrqRvry5nQMF81hgZ69B710U9zBaqrTzJEHYIpdgMseg+tCXMErbY5o3b0VwTW0a1SMOVPRmUqNOU+ZrVFG+0O31C+S7kklSRUCDy8AgAkghsbh1PQjPeqieFLJLWe28+4MNyrLcLlR5gJJ7DjqemOtb2aaXVWClgCegJ61iamMnhexWbzGaR2wmCwUkbMbcHGRwoHuPelbwzasWAnnCM7SGM7GUuQwyQVPZjx06VtUisrglWDAHHBzzQBFaW4tLWK3V5HEa7Q0jbmP1NTUUUAFFFFABRRRQAUUUUAFcp8QP+QBF/wBfC/yaurrlPiB/yAIv+vhf5NQBoeEP+RVsf91v/QjW3WJ4Q/5FWx/3W/8AQjW3QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUARz/6h/pRB/qv+BH+Z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RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAFa6/h+h/pVmq11/D9D/SrNABRRRSAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooopgMllSFN7nAzjpnmmRXUcr7MMr4JCsuMiku4mmt2VMbwQy5JAyDnqOapaVZzQu8kiyxryAkkm9iSeST+g7nvVpR5W3uYylNTSS0L011b27xpNPHG0hwgdgCx9qmrOubK5OoNc27w4liELiQHKgEnKkf73T2FZS+GLiNgUvWIWBI1BdsEgDcpHdWwSTnPzGoNjo4pY5kLxuGUMVyPUHBH5g0PNHGyq7gFiFA9z0/ka5dPCdyA4N7sVkdVWNmVY9zMSAM8j5vXqPymHhm4huZprW6jjZ/usVJKqDIVQ88qA4/75oA6ISxtM8IcGRAGZc8gHOD+h/Kn1ztp4duYNOvLd7zL3EQjVhn5Buc4z16Pjt0qK68L3DW80NpeCJZd2Qdxx8zlSDnjaGUcf3ccUAdPRXL3Xhi8khkSG/CtNu81m3ZYlmZWzngjI/LtVb+wNQu7y4QyyJEOGkYshuDuY88noCMEDsPwAOxoqjpmn/2fFKrSGR5JWcuxJJBPAJPoOKvUAFFFFABXKfED/kARf8AXwv8mrq65T4gf8gCL/r4X+TUAaHhD/kVbH/db/0I1t1ieEP+RVsf91v/AEI1t0AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAEc/+of6UQf6r/gR/maJ/9Q/0og/1X/Aj/M0ASUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAFa6/h+h/pVmq11/D9D/SrNABRRRSAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooopgBIHU4orP1qdINNkG5Fmf5YNwyPM/h/Wq2jSapIkaXtxA00OVuURDnPbB6HjHYVahePMS5JOxs0Vi6pc6nHqtqbS3me1hw05TGHDHbjB5O0Zbj2qtoyazHLZm9eUpLEzOjtu2thfvHAxk5wO3NQUdHRXMfbdUgtoWgiuJLyRgtyLmN/LibB4UKOhPGRkYwTTnv9fE0bG3ATezFEgPI/eBUJJ4yVQ7v9r0oA6WisXSbzVrqdPtkMccPlFyVicEtnAHzYwR9K2qACiiigAooooAKKKKACuU+IH/ACAIv+vhf5NXV1ynxA/5AEX/AF8L/JqANDwh/wAirY/7rf8AoRrbrE8If8irY/7rf+hGtugAooooAKKKKACiiigAooooAKKKKACiiigAooooAjn/ANQ/0og/1X/Aj/M0T/6h/pRB/qv+BH+ZoAkooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAK11/D9D/SrNVrr+H6H+lWaACiiikAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRTAZJFHLt8yNX2ncNwzg+tPrP1vUTpmlTTxmM3BBS3SRtqvKR8oJ7DPX2zXCeCdY+IF34nW28QSaNPpxgd3eyZWZGBAXlT3z39D6UAel0Vjanry6bqKWzxBk8sSOQx3BSSCQoBzjGTyKV/Eunwv5c/nQy7tpjePlTgnnH0HP+0PWgDYorHtfEtjeTpDAs7vJJsX90QDwSTn0G0+/5iq58SML6SD7Onlx3HktIJD8mDj5uAAT1HJ6HpQB0FFc6/iuKVP8AQ7SeTlAXYAKpaTYc854wTxVlvEtkq5MVyPkMmPK58sLu3/Qj8fagDZorPsdYgv7h4EinjkQEkSptztO1sfQ/zrQoAKKKKACiiigArlPiB/yAIv8Ar4X+TV1dcp8QP+QBF/18L/JqANDwh/yKtj/ut/6Ea26xPCH/ACKtj/ut/wChGtugAooooAKKKKACiiigAooooAKKKKACiiigAooooAjn/wBQ/wBKIP8AVf8AAj/M0T/6h/pRB/qv+BH+ZoAkooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAK11/D9D/SrNVrr+H6H+lWaACiiikAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRVcXai9NrIrRuRujLdJB3wfUdx+NMCLU9OXUrYRGaSF1bcskeNy8EHGfUEj8aswQRW0KQwxrHGihVVRgADoKivb2OxhWSRJH3uI1WNclmPQVHDq1jMI8XCI75AjkO1gQdpBB5znigCw9tBKztJEjGRPLfIzuXng+3J/Oq39jab5SxmyhZVBUblzwSCeT7qv5Clm1ayh4+0I77lXYjAn5mC5x6ZPNL/a+m7Vb7fbYZigPmjk+nX3H50APi0+0hl8yOBFfeXB9GOQSPTOT09aWSwtJYmikt42jZy5VlyCx6mkGo2TSCMXcJcv5YUOMlvTHrTW1TT0Moa9twYTiT94PlOcc/jxQA2PSNPiKFLWMFTkHHfcGz78jNEekafEjIlnEFYMCNvYjBH0xxikbWNNW5jtzewmWTO1Q2c4Xd26cc1Jbahb3k0kcD7wiq29eVIbOMH/gJoAkjtLeKUyxwosh3ZYDnk5P5nmpqKKACiiigAooooAK5T4gf8gCL/r4X+TV1dcp8QP8AkARf9fC/yagDQ8If8irY/wC63/oRrbrE8If8irY/7rf+hGtugAooooAKKKKACiiigAooooAKKKKACiiigAooooAjn/1D/SiD/Vf8CP8AM0T/AOof6UQf6r/gR/maAJKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigCtdfw/Q/0qzVa6/h+h/pVmgAooopAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAVXFohvDcuxdwNsYPSMd8e59asU1ZEZmVXUshwwB5H1pgV76yW+iRDLJE0ciyI8eMhh06gis8+F7AzSSnzC8iFXY7Sxbn5wSMhuT0wPatlmVcbmAycDJ6mgMpJAYErwQD0oAxR4W04O52vhwuR8ucrt53YzztGefWo38MI08RF3N5XlPFKTt3OhCqF+7gDCkZ689a3WkRWVWdQznCgnlu/FOoAyrHw9ZafOksAYNGzFOFGAR0JAycZOM81DF4eUSNNLdSiZZpJIWTbiLe5bgEc5yM5z7Vso6SIrxsrowyrKcgj2p1AGOPDdmluIYpbiJQzHcjjPKBDzj0A/GrGl6PbaSsgt2kPmfe3EerNwABjljWhRQAUUUUAFFFFABRRRQAVynxA/5AEX/Xwv8AJq6uuU+IH/IAi/6+F/k1AGh4Q/5FWx/3W/8AQjW3WJ4Q/wCRVsf91v8A0I1t0AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAEc/8AqH+lEH+q/wCBH+Zon/1D/SiD/Vf8CP8AM0ASUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAFa6/h+h/pVmq11/D9D/SrNABRRRSAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigBKzJfl8S223jfbSb8fxYZcZ9cZP5miimBR8ZHGj25HUXtuQfQ+YK567ubiDVrgwzyRmTWdr7HI3DYgwcdeKKKF/X4A/6/EzLzUL2Tw5rJe8uGKyuFLSscDDdOavy6jfC4vwLy4AW8gUDzW4BY5HXpRRQMjTUr7ztTX7bc4S0QqPNb5T+66c8dT+Zrs/C80tx4ZsJZpHkkaPLO7Ek8nqTRRQI16KKKACiiigAooooAKKKKACuV8fk/2BFz/y8L/JqKKAL/hH/kVrH/db/wBCNbdFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQBHOf3D/SlhP7v/gR/maKKAH0UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAFe6JG3nsasUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUgP/2Q==" alt="APIM inbound policy editor showing the validate-jwt block followed by set-backend-service and x-api-key injection" /&gt;&lt;HR /&gt;
&lt;H2&gt;Step 5 — Configure Claude Desktop&lt;/H2&gt;
&lt;P&gt;Open Claude Desktop → &lt;STRONG&gt;Configure third-party inference&lt;/STRONG&gt; and fill it in like this:&lt;/P&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table border="1" style="border-width: 1px;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Field&lt;/th&gt;&lt;th&gt;Value&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Connection&lt;/td&gt;&lt;td&gt;Gateway&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Credential kind&lt;/td&gt;&lt;td&gt;Interactive sign-in&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Gateway base URL&lt;/td&gt;&lt;td&gt;&lt;CODE&gt;https://&amp;lt;apim-name&amp;gt;.azure-api.net/claude&lt;/CODE&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Client ID&lt;/td&gt;&lt;td&gt;(the appId your script printed)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Issuer URL&lt;/td&gt;&lt;td&gt;&lt;CODE&gt;https://login.microsoftonline.com/&amp;lt;tenant-id&amp;gt;/v2.0&lt;/CODE&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Authorization URL / Token URL&lt;/td&gt;&lt;td&gt;leave empty&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Bearer token&lt;/td&gt;&lt;td&gt;ID token (default)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Scopes&lt;/td&gt;&lt;td&gt;leave default (&lt;CODE&gt;openid profile email offline_access&lt;/CODE&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Redirect port&lt;/td&gt;&lt;td&gt;leave empty (ephemeral)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Model discovery&lt;/td&gt;&lt;td&gt;&lt;STRONG&gt;Off&lt;/STRONG&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Model list → Model ID&lt;/td&gt;&lt;td&gt;&lt;CODE&gt;&amp;lt;deployment-name&amp;gt;&lt;/CODE&gt; (your Foundry deployment name)&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;colgroup&gt;&lt;col style="width: 50.00%" /&gt;&lt;col style="width: 50.00%" /&gt;&lt;/colgroup&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;ℹ️ &lt;STRONG&gt;Why Model discovery is Off&lt;/STRONG&gt; — Claude Desktop's discovery uses &lt;CODE&gt;GET /v1/models&lt;/CODE&gt;, and the Foundry &lt;CODE&gt;/anthropic&lt;/CODE&gt; surface doesn't implement that endpoint, so it 404s. Listing the model manually skips the call entirely.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;If you want to leave Model discovery On&lt;/STRONG&gt;, stub &lt;CODE&gt;/v1/models&lt;/CODE&gt; in APIM. Add a &lt;CODE&gt;GET /v1/models&lt;/CODE&gt; operation to your API and give it this inbound policy that returns an Anthropic-shaped response without ever hitting the backend:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE&gt;&amp;lt;policies&amp;gt;
  &amp;lt;inbound&amp;gt;
    &amp;lt;base /&amp;gt;
    &amp;lt;return-response&amp;gt;
      &amp;lt;set-status code="200" reason="OK" /&amp;gt;
      &amp;lt;set-header name="Content-Type" exists-action="override"&amp;gt;
        &amp;lt;value&amp;gt;application/json&amp;lt;/value&amp;gt;
      &amp;lt;/set-header&amp;gt;
      &amp;lt;set-body&amp;gt;@{
        return new JObject(
          new JProperty("data", new JArray(
            new JObject(
              new JProperty("id", "&amp;lt;deployment-name&amp;gt;"),
              new JProperty("type", "model"),
              new JProperty("display_name", "Claude on Foundry"),
              new JProperty("created_at", "2026-01-01T00:00:00Z")
            )
          )),
          new JProperty("has_more", false),
          new JProperty("first_id", "&amp;lt;deployment-name&amp;gt;"),
          new JProperty("last_id",  "&amp;lt;deployment-name&amp;gt;")
        ).ToString();
      }&amp;lt;/set-body&amp;gt;
    &amp;lt;/return-response&amp;gt;
  &amp;lt;/inbound&amp;gt;
  &amp;lt;backend&amp;gt;&amp;lt;base /&amp;gt;&amp;lt;/backend&amp;gt;
  &amp;lt;outbound&amp;gt;&amp;lt;base /&amp;gt;&amp;lt;/outbound&amp;gt;
  &amp;lt;on-error&amp;gt;&amp;lt;base /&amp;gt;&amp;lt;/on-error&amp;gt;
&amp;lt;/policies&amp;gt;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Add one entry per deployment you want to expose. The benefit of stubbing rather than turning discovery off is that adding new models becomes a policy edit — no need to re-export and redeploy Claude Desktop config to every user.&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;IMG src="data:image/jpeg;base64,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rM5gcMMh0UfMzY/hHOaX9fjYP6/U9Eory6H4m6pL4UmvobO1nv4NWj0/DI8KTK54ba3zIee/SpdfuPGkHi3whbveaWk9xJOGSISiJiEyQwzkgDp707f18rh0PTKRnVBl2VRnGWOK4jVPHF1otx4ktb22hNxYxxS6cq5H2kSfKoPPXfwcetL48mli8E2Emp2sM9w17Z+bGrMqCQyLkjBzwfekv8gO3prOkeN7quTgbmAya861Pxn4nR/E1zYW2lfYtBuNribf5k67QSBg4BwTzWZqkd1rXxTtrnUIbC40210tb+KCYOTHHkEkAHHm56HpihdP66X/AEDv/XWx61RXlPh74q6jq+r6aJLFXs9Qm8sww2c4e2U/ddpCNjDpnHrxWjp/jnXH8Pat4l1C0sE0rTzPGIoSxmmdH2qeeFXoPXqaNldgtdEei0V5f4e+JWqahffZ7u0jlWWzknWSGyniW3kVd2xy4wwPqKs6R428Ryr4c1HU7bTBpmtZQR2+/wA2EhSwYk8HODx2p2/r+vQVz0eiuH8P+IPFuvrZ6zBp+mtol3Oy+QHYXEcIJAkLE7SePu4rm1+Ll9NqbS29istgt6bcWqWc7TNGG2mTzANmc87fShK7sN7XPXKKOozRSAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAFHX8KKB1/CigAPX8KSlPX8KSgDmNa8EWWrasdWt9Q1LSdQZBHLcadP5ZmUdA4IIOPWok+Hehx+HxpMRu0IuPtYvVm/wBI8/8A56b/AO9+GK6yigDkf+Fd6U+l3lncXeoXM17cR3FzeTShppGjIKjOMBRjoBWtc+G7O61i71R5JxPdWJsHUMNojyTkcfe5rYooev8AXy/IDnx4P04aJo2k+bc/Z9Ikilt23Dcxj+7uOOR64xXm8ej+MLS7urmxtdRttZkvZHRRawvagM+SfOYl9u3/APVXtFFO+t/66f5B0t/XX/M5HU/h9p+rX11dS32oWyX+w39pazBYbllH8QIzzjBwRkVsWPh2y07Xb7VrcyCa8hiheMkbFWMYXaMZ6H1rWopAclb/AA/sLS7jaDU9WSwiuPtKaatzi3V856AZ255xnGa1PEfhq08TWsENzcXVtLbTCeC5tJNkkTjuDgj9K2aKPIPMw7TwtaWupXmofabua5vLOOzmeVwdyoCA3T7xycmqVv4C0q2TT1Se7IsLCTT4suvMbjBJ4+9XU0Uf1/X3sP6/r7jnZvBelz+ELTw273P2W0VBbzq4E0bJ91wwGNw+lLovg+00XVpNVF9f3t/LB5Es93KHLqDkZ4GMdOOK6Gii+tw6WOI8XeHLzXfG3huaI3kFrbRXPm3lpIEaBio28+59iKnPw40r+yktBe6iLpb37f8A2j5wNwZ8Y3FiMHjjGK7CihaK39b3B6u5xsfw10lEnQ32pyCe7hvZPMnDFpozndyP4j1/TFa3iLwvaeJGspZru9s7qykMlvc2UuyRCwwwyQRgityigDidZ8MNrHxC8P3UtrK1ppds0kt25GJnyPLQ+pByx4rotf0K18RaellePKkSTxzgxEA7kbcOoPGRWpRR0sHU56Twdp0lrr9uZbnZrj77khhlTtC/JxxwO+ang8MWEGtJqgaZ5ksBYbHIKGMHPIx14raoo/r9PyD+v1OU07wFZaZeWrw6pqzWVpKZbbT3uf3ETc4wAMkDJwCSKv6f4T0yw8P3eibZLixu3leVZmBJ8w5YZAHrxW5RR5B5nLaf4GtrGTdLrOsXyJbtbQR3VzuSFGGDgADJxxk5qxB4N02Cw0KzWW5MWivvttzDLnBHz8cjBPTFdDRQByVn8PtOsdRhuINR1QWcFwbmHTvtP+jpIechcZxkk4zig/D+wW9eSHU9Wt7GS4+0vp0NztgaTOTwBkAnkgHFdbRQD1CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAUdfwooHX8KKAGl1z95fzo3r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o8uP+4n/AHyKAFDrn7y9PWigRx5+4vT+6KKAHHr+FJSnr+FJQA0uqnBPPp1o8xff/vk1JbgeUG7tyTUtMCt5i+//AHyaPMX3/wC+TVmigCt5i+//AHyaPMX3/wC+TVmigCt5i+//AHyaPMX3/wC+TVmigCt5i+//AHyaPMX3/wC+TVmigCt5i+//AHyaPMX3/wC+TVmigCt5i+//AHyaPMX3/wC+TVmigCt5i+//AHyaPMX3/wC+TVmigCt5i+//AHyaPMX3/wC+TVmigCt5i+//AHyaPMX3/wC+TVmigCt5i+//AHyaA6scA8+h4qzUVwB5LN3XkGgBtFFFIBkP+oj/AN0U+mQ/6iP/AHRT6ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAFHX8KKB1/CigAPX8KTvSnr+FJ3oAfb/wCoT6VleI7u4gtLW2tZTBLfXSWonABMQYElhnvhSB7kVq2/+oT6VBqWnQarYSWlwG2NghkOGRgcqynsQQCKYHParoaaFpc+rabe3kd3aRmVmnuXkScDkq4YkcjPIxiuphk86COXaV3qGweoyK5698MX2pWLWd9r9zLFwUAhjTLDkF8D5hkcjgHvWvpct9JZAalAkV0jFH8tso+P417gHrg8igClrmp3FjNbxRyRW0UgYtczIWRSMYXjpn1PpTn12O2ht1nQTXMkXmstswZdo/iBYjj071avrS7nlSS1vBDhSrxyR70cHuRkcisz/hFkjjt/JlhaSKNo2NxAJFbJ3ZAyMEEnFLUZbk8QWkYhcJK9vKFYTgDYNxwOpyfwBxTm122WS7DRTiO1JEsuz5QRjgc8k57VQuvCxuGOLqMAqgBaAEoV/u8gKCeoA/Gr7aMslnfW8kxP2qQyblXGw8Yx+IpiK97rksdosqWlzC4niUpLGMsrH+HBIz/Kr9nqUV4k58uSF4G2yxyAblOM9iR0qu+mXlzGq3l8khSWORdkO0Dac+p5NWLbT/s9zfTCYk3ThuFxswoH49KAKsXiK0ks5bto544EUOrsow4JwMYJ5z2ODVe58TKluWgtJXnSaOOSE7SVDHg8HHPbnrTP+EWEiXAnuI/3qBf3MOxSwbcHZckE5HtUw0BzaTRma3ilZ0dGgtgiqVORkZycn3oAkXWZpNRvLU2csSwwCQSsAcEgnnn2/nTF8Qxw2yeZFcTuluk80kUYAVWH3sZ+vHNTnTLg3ck/2pP38AimXyupAOCvPHXpzUaaDttriH7TnzrRLXOzptBG7r79KWv9fMP6/IW58Q29u5CW9zOisitJEo2qz42jkj1H51Nb6xDc3z20cMx2OYzLtG0MOoPOR9SMVzMttcW+qSutu8s8bosULwuVkCgANkHaO5GQcVvLokh1dL554xscuNkW12BH3WYHBA+lNAbNFFFABRRRQAVHcf8AHvJ/u1JUdx/x7yf7tADKKKKQDIf9RH/uin0yH/UR/wC6KfQAUUVBe3UdhYXN5KCY7eJpWx6KCT/KhuyuCV9CwAT0FJXkPh7wzqHxM0v/AISbxBr+p20d07mys7CbykhjBwM+p4rptKk1T4f+GtUuPFerrqOnWbbrScZM5Q8BGyOTnAHND03DfY7iiuB0/wCI15/aWnQa/wCGbnR7TVGCWV08wkDMeQrgAbCR9ail+JOpzXus2mkeE7jUJNJuXiuGFwETYvcEjljg/KPTrQ9A3PQ6K4S9+J9lb+FdE8QW+nXFxBqdwLfyVOJI25BAH8RyMYqfRfHd3deKV8P674fm0e7mga4tWacSrIg65IHBA+vSnbW39dw6XO0orzmb4pzNHd6np/hue88P2cpjmvxcKrnacMyRnllHrkVqaz8QIrefTLLQNOk1rUtSgFzBBHII1WH++7HoKQHZUZA6nH1rzzUfHOr3XgnWri28PX1nrFluingd9vkgqT5qPjDgYzxWHH4i1XVvgpqFz4g068jijs4yt4l0BJeAnlgdp29uoND2b7DS28z1+iuHvfGX9iW2h6JpGl3Gravd2aSxWvmhdkYUfNI5HH5Ulv8AEiOTw5rl7caVNaapoq5u9OmkGR6EMByD64oel/IS1t5nc0V50nxQuo5dLur/AML3dpoepSJFDfvMCQzDjKYyFPY55HavRTwadmhXCiiikMKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAUdfwooHX8KKAA9fwpKU9fwpKACGRUTY5CleOe9SedF/wA9E/76FR4owPQflQBJ50X/AD0T/voUedF/z0T/AL6FR4HoPyowPQflQBJ50X/PRP8AvoUedF/z0T/voVHgeg/KjA9B+VAEnnRf89E/76FHnRf89E/76FR4HoPyowPQflQBJ50X/PRP++hR50X/AD0T/voVHgeg/KjA9B+VAEnnRf8APRP++hR50X/PRP8AvoVHgeg/KjA9B+VAEnnRf89E/wC+hR50X/PRP++hUeB6D8qMD0H5UASedF/z0T/voUedF/z0T/voVHgeg/KjA9B+VAEnnRf89E/76FHnRf8APRP++hUeB6D8qMD0H5UASedF/wA9E/76FHnRf89E/wC+hUeB6D8qMD0H5UASedF/z0T/AL6FRzSK8ZRCGLccdqMD0H5UYoAKKKKAGQ/6iP8A3RT6ZD/qI/8AdFPoAKjuII7q1mtpl3RTI0bj1UjB/nUlFDV9A2PKtDHjT4eW0ugQ+HH1/S4nd7G5tplRlUnOxwfep7vw14z8X+BNYh8QXEEF/dypPYWIC7bYI24IzAc56c5xXp1FG+4eh5Zd2vinxtc+HtOv/Dkuj2um3CXV5czSowdkGAsYBJOfetrwfoupaff+NZLuzkhW/wBQkltSxH71CpwRg/zruaKHqmu9/wAbf5AtLeX/AAf8zxyz8Ja/H4D8G2L6XMLqx1hbi5iyuYo95O489Meldbrmh3998VND1FLWRtOisLiCe4BGEZgQB1z3rtqKd/6+VgWn9edzwWD4f3OjWl3pVz4Em1m8Er/ZdQjvikEiMcqXXeCMZ5wK6qXw3rXhPxFo3iDStGXUIo9NGn3ljaS4aLHIMZc8jPHJr1CihO39fIHqcfaHxT4l8Na7FrGnwaZ9rjkhsLYtmRFKkZkIJGSfSuUWw8S3vwfvvCk/hm7tr61s1gicyoy3JDfw4PHHPNet0UmrpruNO1jzS+0bXdC8UaL4p07SZNTVdMSwvbKN1WVCBwy5ODz1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8mrNFAFbePRv++TRvHo3/fJqzRQBW3j0b/vk0bx6N/3yas0UAVt49G/75NG8ejf98mrNFAFbePRv++TRvHo3/fJqzRQBW3j0b/vk0bx6N/3yas0UAVt49G/75NG8ejf98mrNFAFbePRv++TRvHo3/fJqzRQBW3j0b/vk0bx6N/3yas0UAVt49G/75NG8ejf98mrNFAFbePRv++TRvHo3/fJqzRQBW8xe+R9QRTqnIBGDyKrsvlOAPuN0HoaQDh1/CigdfwooAD1/CkpT1/CkoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAZD/qI/90U+mQ/6iP8A3RT6ACmyfc/Efzp1Nk+5+I/mKALNFFFMAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAqNp4Uba0qKfQsBTLtmESqpKmRwmR1GacttAihREmB6jNAB9pt/+e8X/AH2KPtNv/wA94v8AvsUvkRf88k/75FHkRf8APJP++RQAn2m3/wCe8X/fYo+02/8Az3i/77FL5EX/ADyT/vkUeRF/zyT/AL5FACfabf8A57xf99ij7Tb/APPeL/vsUvkRf88k/wC+RR5EX/PJP++RQAn2m3/57xf99ij7Tb/894v++xS+RF/zyT/vkUeRF/zyT/vkUAJ9pt/+e8X/AH2KPtNv/wA94v8AvsUvkRf88k/75FHkRf8APJP++RQAn2m3/wCe8X/fYo+02/8Az3i/77FL5EX/ADyT/vkUeRF/zyT/AL5FACfabf8A57xf99ij7Tb/APPeL/vsUvkRf88k/wC+RR5EX/PJP++RQAn2m3/57xf99ipAQwBBBB7imeRF/wA8k/75FQqgt7xUjGElUkqOgIxyPzoAtVFP91P98VLUU/3V/wB8UAIOv4UUDr+FFIAPX8KSlPX8KSgDM1PxDo+iyJHqWowWruMqJWxkdKu2d3b6haR3VpKs0EnKSL0PasDx0jP4djCoWP261OFGTjzVrlbibVW8a3Am1JbW9XUlW2iI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v7O2svts93BFa7Q3nvIAmD0O7pUWnavpurxNLpt/bXaKcM0EofaffHSvJLK70fWrjwNBdWC2Ph0i5RLKWTzIftSHCqSeGHUrmuiurbTtO+LWhJ4fjghnntp/7SitQFQwgDYzheM7uh61Vtf6/r+rk9P6/r/g6HoH2u2+1/ZPtEX2nZ5nk7xv25xux1xnvUV1qdlZXdpa3Nwkc945S3RusjAbiB+AzXnXizUp9F+IWpapaxh7i18NPJGCMjIlPX2HX8Kptb3sPijwFNd+I5NWN1JLMRIqfKxgY7k2gYXnGDSjr/Xm/wDIpq1/66J/qekQ+JNCuLpbWHWtOkuGbasSXSFifQDOc1Pq+rWeh6ZNqF/L5dvEBkgZJJOAAO5JIAFeJeFvB+q+JfDFvDBpOh21o160h1bk3gCTFjgBepxj73SvRfHfz6l4StZTm1l1hPNB6MVRmQH/AIEAfwoWqXn/AMAXV+VzprzW9N020iudRvYLGOUAr9pkEZJ9ME9fapF1TT30/wDtBb62ayxn7QJVMePXdnFcJbW2naj8W9dTxBHBNPBbQf2ZFdAMohK/OyA8Z3cE9a5fWY7S2s/iNZaKEGix20DGOL/VR3JPzquOBxtJA70m9L+V/wCv630Glrb0PXLvxDothKIrzV7C3kKhgk1yiEg9DgnpV1biB7YXKTRtAV3iUMCpX1z0x715lpem6TqPxLvl1WysrmNNEsyouolcKec43VzN01vFo2sWVnMw8HDxFDFI8bny0hIzKqn/AJ578A445NU1rb+t7E30v/W1z2aw8QaNqs7wafqtldSpyyQTq7AeuAenvTtI1mz1q3lltGfMMzQSxyLteN1OCCD0/wDr1zt5pXgiy1fQpVjs7O/Eu3TzZqEaQ7fu/IOVx68U3QP3XxP8VwwjEDw2szgdPNKsD+OAtJAdpRRRQMKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKin+6v++KlqKf7q/74oAQdfwooHX8KKQAev4UlKev4UlAEU9tBcqFuIIpVByBIgYD86SS0tpgglt4XEf3AyA7f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/nkn5VLRQBF9mg/55J+VH2aD/nkn5VLRQBF9mg/55J+VH2aD/nkn5VLRQBF9mg/55J+VH2aD/nkn5VLRQBF9mg/55J+VH2aD/nkn5VLRQBF9mg/55J+VH2aD/nkn5VLRQBF9mg/55J+VH2aD/nkn5VIzBRnk9gB3pP3v/PMfi3/1qAGfZoP+eSflR9mg/wCeSflT/wB7/wA81/76/wDrUfvf+ea/99f/AFqAGfZoP+eSflR9mg/55J+VP/e/881/76/+tR+9/wCea/8AfX/1qAGfZoP+eSflR9mg/wCeSflT/wB7/wA81/76/wDrUfvf+ea/99f/AFqAGfZoP+eSflR9mg/55J+VP/e/881/76/+tR+9/wCea/8AfX/1qAGfZoP+eSflR9mg/wCeSflT/wB7/wA81/76/wDrUfvf+ea/99f/AFqAGfZoP+eSflR9mg/55J+VP/e/881/76/+tR+9/wCea/8AfX/1qAGfZoP+eSflR9mg/wCeSflT/wB7/wA81/76/wDrUfvf+ea/99f/AFqAGfZoP+eSflR9mg/55J+VP/e/881/76/+tR+9/wCea/8AfX/1qAGfZoP+eSflR9mg/wCeSflT/wB7/wA81/76/wDrUfvf+ea/99f/AFqAGfZoP+eSflR9mg/55J+VP/e/881/76/+tR+9/wCea/8AfX/1qAGfZoP+eSflR9mg/wCeSflT/wB7/wA81/76/wDrUfvf+ea/99f/AFqAGfZoP+eSflR9mg/55J+VP/e/881/76/+tR+9/wCea/8AfX/1qAGfZoP+eSflR9mg/wCeSflT/wB7/wA81/76/wDrUfvf+ea/99f/AFqAGfZoP+eSflR9mg/55J+VP/e/881/76/+tR+9/wCea/8AfX/1qAGfZoP+eSflR9mg/wCeSflT/wB7/wA81/76/wDrUfvf+ea/99f/AFqAGfZoP+eSflR9mg/55J+VP/e/881/76/+tR+9/wCea/8AfX/1qAGfZoP+eSflR9mg/wCeSflT/wB7/wA81/76/wDrUfvf+ea/99f/AFqAGfZoP+eSflR9mg/55J+VP/e/881/76/+tR+9/wCea/8AfX/1qAGfZoP+eSflR9mg/wCeSflT/wB7/wA81/76/wDrUfvf+ea/99f/AFqAGfZoP+eSflR9mg/55J+VP/e/881/76/+tR+9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io/Mk/55r/33/wDWo8yT/nmv/ff/ANagCTaKNoqPzJP+ea/99/8A1qPMk/55r/33/wDWoAk2ijaKj8yT/nmv/ff/ANajzJP+ea/99/8A1qAJNoo2io/Mk/55r/33/wDWo8yT/nmv/ff/ANagCTaKNoqPzJP+ea/99/8A1qPMk/55r/33/wDWoAk2ijaKj8yT/nmv/ff/ANajzJP+ea/99/8A1qAJNoo2io/Mk/55r/33/wDWo8yT/nmv/ff/ANagCTaKNoqPzJP+ea/99/8A1qPMk/55r/33/wDWoAk2ikKKwIPemeZJ/wA81/77/wDrUeZJ/wA81/77/wDrUANazgdCjIWUjBDMTVSPQtOgk8yCDyW7mNiM/WrvmSf881/77/8ArUeZJ/zzX/vv/wCtQBWGkWgl83a+/wBd5qWSxglaNnQlozlDuORUnmSf881/77/+tR5kn/PNf++//rUAP2jbtPI96FjVFCqoVR0ApnmSf881/wC+/wD61HmSf881/wC+/wD61AElLUXmSf8APNf++/8A61HmSf8APNf++/8A61AEtFReZJ/zzX/vv/61HmSf881/77/+tQBLRUXmSf8APNf++/8A61HmSf8APNf++/8A61AEtFReZJ/zzX/vv/61HmSf881/77/+tQBLRUXmSf8APNf++/8A61HmSf8APNf++/8A61AEtFReZJ/zzX/vv/61HmSf881/77/+tQBLRUXmSf8APNf++/8A61HmSf8APNf++/8A61AEtFReZJ/zzX/vv/61HmSf881/77/+tQBLRUXmSf8APNf++/8A61HmSf8APNf++/8A61AEtFReZJ/zzX/vv/61HmSf881/77/+tQBLRUXmSf8APNf++/8A61HmSf8APNf++/8A61AEtR3H+oak8yT/AJ5r/wB9/wD1qQ75MBwFUHOAc5oAd3qM/wDH1D9G/pUlRn/j6h+jf0oAsVFP91f98VLUU/3V/wB8UAIOv4UUDr+FFIAPX8KSlPX8KSgAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigBkP8AqI/90U+mQ/6iP/dFPoAKbJ9z8R/MU6myfc/EfzFAFmmS/wCpf/dNPpkv+pf/AHTTAZF/qY/90fyp1Ni/1Mf+6P5VHdXVvZWz3N1NHDAgy8kjYVe3JoAm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SnynPttLflRY6JHpHhq6sngludG03xLnUY1UsZIVRQWYD7yhsEj0pRd0n6fp/ncbVm15v9f8rHs2ma7pOswyS6bqNrdpHw5hlDbfrjpTLLxFoupXH2ex1ayuJv8AnnFOrN+QNcJFeaTrnj21v/CypJb2+nzpqVzBEUiZSv7uMnABYHn2Fcvpl/our+BvDOkaNGs/im2lgKNBAwe2w+XZnxwu3IPPOapK/wDXm/8AIXRnsE/ifQbW8a0n1ixiuVbYYnnUMG9MZ61oxXVvNNNDFNG8sJAlRWBKEjIyO3HNeQWOv6bo/jfxDHqGtadZo2rs7W1xYNLJINqjKuOgP49K2bDxboPhzx94si1bUY7SS5uLZog6Md48lRngUlql/Xb/ADG9G12O6bXtIXVhpTanaDUCMi2Mq7/y9fatGvE7m8stL8VTx6c8OoTTayssmj6hYEXKyEj95DKP4QPmBPGBXtlC1imJ/FYKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAqKf7q/74qWop/ur/vigBB1/CigdfwopAB6/hSUp6/hSUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAMh/1Ef+6KfTIf9RH/ALop9ABTZPufiP5inU2T7n4j+YoAs0UUUwEwPQUuB6daKKAEVVUYVQB6AUBVHQAfQUtFACFFJyVH5UFVJyVB/ClooATau7dtG71xzS0UUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAVFP91f98VLUU/3V/wB8UAIOv4UUDr+FFIAPX8KSlPX8KSgAoooo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" alt="Claude Desktop Configure third-party inference panel with Gateway, Interactive sign-in, gateway base URL, client ID and issuer URL filled in" /&gt;
&lt;P&gt;Click &lt;STRONG&gt;Apply Changes&lt;/STRONG&gt; then &lt;STRONG&gt;Sign in to your organization&lt;/STRONG&gt;. Your browser opens to the normal Entra sign-in page; once approved you're returned to the app, and a quick connection test runs.&lt;/P&gt;
&lt;P&gt;The success indicator is a small green banner:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;✅ Inference — 1-token completion in 1449 ms · &lt;STRONG&gt;via identity provider&lt;/STRONG&gt;&lt;/BLOCKQUOTE&gt;
&lt;IMG src="data:image/jpeg;base64,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jen99fzoAWik3p/fX86N6f31/OgBaKTen99fzo3p/fX86AFopN6f31/Ojen99fzoAWik3p/fX86N6f31/OgBaKTen99fzo3p/fX86AFopN6f31/Ojen99fzoAWik3p/fX86N6f31/OgBaKbvT++v5ijen99fzFADqKbvT++v5ijen99fzFADqKbvT++v5ijen99fzFADqKbvT++v5ijen99fzFADqKbvT++v5ijen99fzFADqKbvT++v5ijen99fzFADqKbvT++v5ijen99fzFADqKbvT++v5ijen99fzFADqKbvT++v5ijen99fzFADqKbvT++v5ijen99fzFADqKbvT++v5ijen99fzFADqKbvT++v5ijen99fzFADqKbvT++v5ijen99fzFADqKbvT++v5ijen99fzFADqKbvT++v5ijen99fzFADqKbvT++v5ijen99fzFADqKbvT++v5ijen99fzFADqKbvT++v5ijen99fzFADqKbvT++v5ijen99fzFADqKbvT++v5ijen99fzFADqKbvT++v5ijen99fzFADqKbvT++v5ijen99fzFADqKbvT++v5ijen99fzFADqKbvT++v5ijen99fzFADqKbvT++v5ijen99fzFADqKbvT++v5ijen99fzFADqKbvT++v5ijen99fzFADqKbvT++v5ijen99fzFADqKbvT++v5ijen99fzFADqKbvT++v5ijen99fzFADqKbvT++v5ijen99fzFADqKbvT++v5ijen99fzFADqKbvT++v5ijen99fzFADqKbvT++v5ijen99fzFADqKbvT++v5ijen99fzFADqKbvT++v5ijen99fzFADqKbvT++v5ijen99fzFADqKbvT++v5ijen99fzFADqKbvT++v5ijen99fzFADqKbvT++v5ijen99fzFADqKbvT++v5ijen99fzFADqKbvT++v5ijen99fzFADqKbvT++v5ijen99fzFADqKbvT++v5ijen99fzFADqKbvT++v5ijen99fzFADqKbvT++v5ijen99fzFADqKbvT++v5ijen99fzoAeOv4UU0Omfvr+dFAAY0z9xfyFJ5af3F/75FPPX8KSgBvlp/cX/vkUeWn9xf8AvkUeYucZz9ATR5i/7X/fJoAPLT+4v/fIo8tP7i/98ijzF/2v++TR5i/7X/fJ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VrrUhuae5jjjcNyoCZxgevJq4VBIJUEjoSOlD1v/AF3EtP69DyrWteubO/tmtruWB7IWSskl0ygxsFLssIGGTBO5m6Y4xinyySaPYeK10q/nGonUN0iS3DsY7ZimZQOSBgn5wDx9K9S2rnO1c4xnHajAznAz0zim3/X3f5AtDzGO8vf7Dv1XxFafZBeQrG6Xk0iKCCWja5I3KG4+YH5emRmuw8G3xv8Aw3FKTOdskkYaaXzdwVsZV8Devo3et4IgXYEXb/dxx+VKAAAAAAOwouAUUUUgCiiigAooooAKjn/1En+6akqOf/USf7poAkooooAKQ/6yP/e/oaWkP+sj/wB7+hoAsVDd/wDHq/4fzqaobv8A49X/AA/nTAeeppKU9TSUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFACMobHUEcgjtSfvf+eg/wC+f/r06igBv73/AJ6D/vn/AOvR+9/56D/vn/69OooAb+9/56D/AL5/+vR+9/56D/vn/wCvTqKAG/vf+eg/75/+vR+9/wCeg/75/wDr06igBv73/noP++f/AK9H73/noP8Avn/69OooAb+9/wCeg/75/wDr0fvf+eg/75/+vTqKAG/vf+eg/wC+f/r0fvf+eg/75/8Ar06igBv73/noP++f/r0fvf8AnoP++f8A69OooAb+9/56D/vn/wCvR+9/56D/AL5/+vTqKAG/vf8AnoP++f8A69H73/noP++f/r06igBv73/noP8Avn/69H73/noP++f/AK9OooAb+9/56D/vn/69H73/AJ6D/vn/AOvTqKAG/vf+eg/75/8Ar0fvf+eg/wC+f/r06igBv73/AJ6D/vn/AOvR+9/56D/vn/69OooAb+9/56D/AL5/+vR+9/56D/vn/wCvTqKAG/vf+eg/75/+vR+9/wCeg/75/wDr06igBv73/noP++f/AK9H73/noP8Avn/69OooAb+9/wCeg/75/wDr0fvf+eg/75/+vTqKAG/vf+eg/wC+f/r0fvf+eg/75/8Ar06igBv73/noP++f/r0fvf8AnoP++f8A69OooAb+9/56D/vn/wCvR+9/56D/AL5/+vTqKAG/vf8AnoP++f8A69H73/noP++f/r06igBv73/noP8Avn/69H73/noP++f/AK9OooAb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ozWpiuLp4RFdwbW8yNnAY87toxjuKQHY0VgG4uJb66VtUFstoY1UMq4kyAdzZ9enGK3I5Y5QxjkVwpKnac4I6j60wFREjQIihVHQAYFOoooAKKKKACiiigAooooAKKKKAGuiSAB1DAHIyM4PrTqKKACiiigAooooAKKKKACiiigAooooAKrHT7M3P2k2sJn6+ZsGfzqzRQAUUUUAFIyq6FHUMpGCCMgilooAAAAABgCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACq39n2ZuvtP2WHz+vmbBnP1qzRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAVFcf6hvw/nUtRXH+ob8P50AIOp/GigdT+NFIAPX8KSlPX8KSgAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACo5/8AUSf7pqSo5/8AUSf7poAkooooAKQ/6yP/AHv6GlpD/rI/97+hoAsUUUUwK8djaRGQx2sCGXiQrGBv+vrWfqWim9uY5o3gwkfliKeESIB6gdjWwCCMg5FFFgKdjp8Vnp8Nmx85YuhcZ5znp2x29KeNPshcfaBZ24mzu8zyhuz65xmrNFAED2drJcLcSW0LTJ92RkBYfQ0kVlbxW724jVonZmZWAIYscnP51YooArwWFnbbvItIItww3lxhcj3xRFYWcEbxxWkEaSffVYwA31HerFFAFeOws4k2R2sCJx8qxgDg5H606aztrl0ee3ilZOVZ0BK/TNTUUAQSWdrNOk0ttC8qfddkBZfoad9ltyV/cRfK/mD5Bw3r9fepaKAIri1t7tAlzBHMgOQJEDAH8aabK0Nt9mNtD5H/ADy8sbfy6VPRQBXaws3ijia1gaOM5RDGML9B2p8dtBCcxQxocYyqgcZz/OpaKAK62NokzTLawCVjuLiMbifXNLJZWssCwyW0LxKcqjICoPsKnooAgFnagEC2hAIII2DkHr+dBsrQ3C3BtoTMowJNg3D8anooAggs4Le1+zJGDFzlWGQc8nP50iWFnHbtbpaQLC/3oxGArfUd6sUUAV2sLN3idrSAtEAIyYxlAOmPSpY4o4gwjRUDEsdoxknqfrT6KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACorj/UN+H86lqK4/1Dfh/OgBB1P40UDqfxopAB6/hSUp6/hSUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAVHP8A6iT/AHTUlRz/AOok/wB00ASUUUUAFIf9ZH/vf0NLSH/WR/739DQBYqOf/j3k/wBw/wAqkpCAQQRkHqKY1uchpOsDT/h5HcwvHNdQ2zOIy+SSCeo61Rg8S6zb2l2bxyoNukkMskcZYOzAYCocEHPGfxrrrfQdItZ/Ot9MtIpcEb0hUHnr2pY9D0qGGaGPTrVYphiRBEMOPeup1ad27Xu7nOqc7JX2OTg8Q6zNbm2FwqXS6oloZJY0LBGTPzKpxkH09Kn1HUdctn1gRammNLgik+a3X98xUk59Acdq6eLR9NhZWisLZCpUqVjAIK5wfwyfzqV7G1kM++2ib7QAs2UB8wDgBvWk60L3UfwXl/wfvBU5dX/Wpj6zf34OjRWVwts19Nskcxh8DYW4B+lZFlrespLZTXF2lxHLPPbPCsAXd5YYhgRzk7enTmuye1gkaEvDGxhOYiVHyHGOPTimLYWaGMrawqY3MiYQfKx6ke5yamNSKja39alOEm73OOt/EOqJFaTvfwXQv7Sabyo4wPsxVdw56kdjnvS3Osa9babpBM5nuNSIcmGFAYhsB2ruOCT6n3xXVw6RpsEk0kNjbxvOCJSsYBcHqDUk+n2dzaLaz2sMluuNsbICox0wO1U61O/w/wBa/wDA9bEqnO2sv60/4P3mf4evb3UtE33uI7kO8Zddp6HAbAyM+o6Zo/tv7Er21+p+3JgRpGP+PnPQoP5jt9K1Le2gtIFgt4kiiQYVEUAD8Ke0aM6uyKXTO1iORnrisnOLk3bQ0UZJLXUhsluhb7rx1MzncVQfKn+yPXHrViiiobu7lJWCiiikMKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAqK4/1Dfh/OpaiuP9Q34fzoAQdT+NFA6n8aKQAev4UlKev4UlABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFRz/AOok/wB01JUc/wDqJP8AdNAElFFFABSH/WR/739DS0h/1kf+9/Q0AWKKKKYBRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABUVx/qG/D+dS1Fcf6hvw/nQAg6n8aKB1P40UgA9fwpKU9fwpKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKjn/ANRJ/umpKjn/ANRJ/umgCSiiigApD/rI/wDe/oaWkP8ArI/97+hoAsUhIUEk4A5Jpar3pIs5celDdlcCBppZ+QxjjPQDqR6k03Y3/Pab/v4adjHFFZeohuxv+e03/fw0bG/57Tf9/DTqKAG7G/57Tf8Afw0bG/57Tf8Afw06igBuxv8AntN/38NGxv8AntN/38NOooAbsb/ntN/38NGxv+e03/fw06igBuxv+e03/fw0bG/57Tf9/DTqKAG7G/57Tf8Afw0bG/57Tf8Afw06igBuxv8AntN/38NGxv8AntN/38NOooAbsb/ntN/38NGxv+e03/fw06igBuxv+e03/fw0bG/57Tf9/DTqKAG7G/57Tf8Afw0bG/57Tf8Afw06igBuxv8AntN/38NGxv8AntN/38NOooAbsb/ntN/38NGxv+e03/fw06igBuxv+e03/fw0bG/57Tf9/DTqKAG7G/57Tf8Afw0bG/57Tf8Afw06igBuxv8AntN/38NGxv8AntN/38NOooAbsb/ntN/38NGxv+e03/fw06igBuxv+e03/fw0bG/57Tf9/DTqKAG7G/57Tf8Afw0bG/57Tf8Afw06igBuxv8AntN/38NGxv8AntN/38NOooAbsb/ntN/38NGxv+e03/fw06igBuxv+e03/fw0bG/57Tf9/DTqKAG7G/57Tf8Afw0bG/57Tf8Afw06igBuxv8AntN/38NGxv8AntN/38NOooAbsb/ntN/38NGxv+e03/fw06igBuxv+e03/fw0bG/57Tf9/DTqKAG7G/57Tf8Afw0bG/57Tf8Afw06igBuxv8AntN/38NGxv8AntN/38NOooAbsb/ntN/38NGxv+e03/fw06igBuxv+e03/fw0bG/57Tf9/DTqKAG7G/57Tf8Afw0bG/57Tf8Afw06igBuxv8AntN/38NGxv8AntN/38NOooAbsb/ntN/38NGxv+e03/fw06igBuxv+e03/fw0bG/57Tf9/DTqKAG7G/57Tf8Afw0bG/57Tf8Afw06igBuxv8AntN/38NGxv8AntN/38NOooAbsb/ntN/38NGxv+e03/fw06igBuxv+e03/fw0bG/57Tf9/DTqKAG7G/57Tf8Afw0bG/57Tf8Afw06igBuxv8AntN/38NGxv8AntN/38NOooAbsb/ntN/38NGxv+e03/fw06igBuxv+e03/fw0bG/57Tf9/DTqKAG7G/57Tf8Afw0bG/57Tf8Afw06igBuxv8AntN/38NGxv8AntN/38NOooAaFcHImlB92z/OrFvcM7mKXG8DII6MKhpF4uYD/tEfoaadmBoVFcf6hvw/nUtRXH+ob8P51qMQdT+NFA6n8aKQAev4UlKev4UlABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFRz/AOok/wB01JUc/wDqJP8AdNAElFFFABSH/WR/739DS0h/1kf+9/Q0AWKr33/HlJ9B/OrFV77/AI8pPoP50S2YEJ6mql/cvbWu6JQ0zuscYPTcxwCfYdfwq2epqte2xu7Yxq5jcMHRwM7WByDWMr2dhMoS25iaFRql213K2FKlSuR1JTGNo71esLl7u0EkiBJVZo5FHQMpwce1VIYJILqaaHTUS6lHzzeYPLz9Ovv05q5ZW32O1WHeZGyWdz/ExOSazgncSMrW9em0rXfD+nxwRyJqly8MjsSCgCFsj8qrr4+8NPeRWq6iS8k32cP5L7FkzjYzYwDkdCaPEWkXuoeJvC15bRB4LC7kluGLAbFMZAOD15PauePh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UAFFFFABRRRQAUUUUAFFFFABRRRQAVHP/qJP901JUc/+ok/3TQBJRRRQAU08PGf9r+hp1Iy7lIoAsUVEkw+7J8rfoafvT+8v50wHUU3en95fzo3p/eX86AHUU3en95fzo3p/eX86AHUU3en95fzo3p/eX86AHUU3en95fzo3p/eX86AHUU3en95fzo3p/eX86AHUU3en95fzo3p/eX86AHUU3en95fzo3p/eX86AHUU3en95fzo3p/eX86AHUU3en95fzo3p/eX86AHUU3en95fzo3p/eX86AHUU3en95fzo3p/eX86AHUU3en95fzo3p/eX86AHUU3en95fzo3p/eX86AHUU3en95fzo3p/eX86AHUU3en95fzo3p/eX86AHUU3en95fzo3p/eX86AHUU3en95fzo3p/eX86AHUU3en95fzo3p/eX86AHUU3en95fzo3p/eX86AHUU3en95fzo3p/eX86AHUU3en95fzo3p/eX86AHUU3en95fzo3p/eX86AHUU3en95fzo3p/eX86AHUU3en95fzo3p/eX86AHUU3en95fzo3p/eX86AHUU3en95fzo3p/eX86AHUU3en95fzo3p/eX86AHUU3en95fzo3p/eX86AHUU3en95fzo3p/eX86AHUU3en95fzo3p/eX86AHUU3en95fzo3p/eX86AHUU3en95fzo3p/eX86AHUU3en95fzo3p/eX86AHUU3en95fzo3p/eX86AHUU3en95fzo3p/eX86AHUU3en95fzo3p/eX86AHUU3en95fzo3p/eX86AHUU3en95fzo3p/eX86AHUU3en95fzo3p/eX86AHUU3en95fzo3p/eX86AHUU3en95fzo3p/eX86AHUU3en95fzo3p/eX86AHUU3en95fzo3p/eX86AHUU3en95fzo3p/eX86AHUU3en95fzo3p/eX86AHVFcf6kj1IH604yoBkuv51EzGVgcEIvIz3NADh1ooHX8KKQAev4UlKev4UlABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFRz/wCok/3TUlRz/wCok/3TQBJRRRQAUUUUAHXrTdif3F/KnUUAN2J/cX8qNif3F/KnUUAN2J/cX8qNif3F/KnUUAN2J/cX8qNif3F/KnUUAN2J/cX8qNif3F/KnUUA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XJGRjI6imBh6RqH2uUXs/mr9qIhhj2nA2A7iewy2eT6Ct2ora3jtLaOCEYjjG1RUtABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFRTW0U/315HRhwalooAojTIweHYfgP8Kd/Z6/8APV/yH+FXKKAKY09M8yOR6cCrMcSRJtRQop9FABUVx/qG/D+dS1Fcf6hvw/nQAg6n8aKB1P40UgA9fwpKU9fwpKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKjn/1En+6akqOf/USf7poAkooooAKQ/wCsj/3v6GlpD/rI/wDe/oaALFISACScAdaWo5/+PeT/AHD/ACpjW4QXEN1Ak0EiyROMq6nINSVwWka7GnghdP06YnV47Z9kIjbcGBJ44xnFZ9pqF9BpuoyLeSTwfZo9wgmkcxuWA3F3HynGcgdK6vqsrtdmcyrqyfc9Norzazur24gGn/brhQdViVXhkcnyWQ52u3JXIPJq5qlrPHJr3lXuoKNOtoWtQs7fe2k5P948c5pPD2dm/wCtP8xqtfZf1r/kd7RXM65590+gQefcRJcT4nMLlCw8snBI6c1i2H2+3m06eK7vZZmurm22zSsysihtgIPHUDnrUxo3je/9a/5FOrrax6BRXnNjeXBETWt7fTXT2c7amkzNiJwvy4B4U7uAB2qW/j1Cz0LR3W8neO7KveTXE7qA2wbQWXlFz6d+tU8NZ2v/AFr/AJad9CVXur2/rT/M9BorB8LG4ufDqreTmfczqkgLAlM4HJwT6Zp7Xt/px+wG3ku5m4tZsfKw/wCmh7Fe57/WsnTfM4p7GinombdFVrK2e2t9sszTSsd0jt3Y+g7D0FWah7lIKKKKQwooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACorj/UN+H86lqK4/1Dfh/OgBB1P40UDqfxopAB6/hSUp6/hSUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAVHP/qJP901JUc/+ok/3TQBJRRRQAUh/1kf+9/Q0tIf9ZH/vf0NAFiiiimAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAVFcf6hvw/nUtRXH+ob8P50AIOp/GigdT+NFIAPX8KSlPX8KSgAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACo5/9RJ/umpKjn/1En+6aAJKKKKACkP8ArI/97+hpaQ/6yP8A3v6GgCxRRTZG2Ruw/hBNDdlcB1FcH4A+Ib+K7LU31O1isJ7I+YQrEq0POH591Oah8HfEsa7Za7qOsQQ6ZY6dIpSQsSWjYZUsPUjHA9aYHoVFYGn+NdA1K1vbiK+8tLFPMuVuI2iaJMZDFWAOCO9YcXxCtdU8X6Fp+kzhrO7iuJLkTwPG4VVBRl3AfKeeaOtgO7orntO8b6BquopY2l4zSy7vJZ4XRJ9v3tjkANj2NZ2ieJtQv/htda9P5P22KK5ddqYXMZcLxn/ZFJuyuNK7sdlRXE6P4rup76wfUL2xitH0JdQuU2srq2Rl89AmM8ZzUl78StDi0LUdQtJJZZbSATLBJbyRtIrcKwBXO0n+LoO9N6f1/XYUfe2OyorH8Pa7B4m0CLULQunmJht0bKUfAyBuAyBnr0NQ6FBrEd3cNqMjeWx3IODknj8OnQcc0pNqXLYqEVKLlfY3qKKKZIUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAVFcf6hvw/nUtRXH+ob8P50AIOp/GigdT+NFIAPX8KSlPX8KSgAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACo5/8AUSf7pqSo5/8AUSf7poAkooooAKQ/6yP/AHv6GlpD/rI/97+hoAsUyVS0LqOpUgU+ihq6sCdjxiX4eeJo9C0WKwjjt7yaCXTtWHmr8ts8pcMDnkgE9M/erWvPAWqO3iVbO2hjie8srnT43cbJlgRRsbH3QcY5r1Gin/X6/mB5fqvhTxB4wl1nUbzT4tIml05bO2tnuFlMrCQSZdl425G36E1NPoviXxLrukXd/osWkwW1ldWkhFykrAyR7Qw2/wAOeg6/SvSqKLK1v66/5hfr/X9aHkHhfwBqOn6nocd3o90p0x9z3k2sNJD8oIDRQg8FvQgADIrqdC8PanZfC+70W4gVdQkhulWMSKQS5crznHORXbUUPVNMadndHm1t4S1lJoS9hbSqvhgac0dxKDG82RlG2nO3HcVT0jwl4ie01axNvcafps+lNaxW17erdFZz3RxllQDjBPpxXqtFD1un5/jf/MUfdtb+rW/yMHwg2rL4ft7bWNKGn3FqiwBBcLMJAqgbsr0z6VvUUU27u4krKyCiiikMKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKiuP9Q34fzqWorj/AFDfh/OgBB1P40UDqfxopAB6/hSUp6/hSUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAVHP/qJP901JUc/+ok/3TQBJRRRQAUh/wBZH/vf0NLSH/WR/wC9/Q0AWKbIcROR/dNOpCAQQehoewI4/TdQurfRm095ne8mCG2dzlisnf8A4Cd35CrGk3l+9ja2VtPH5kdu0rzXALl/nIA6j05Nby6XZJNbyrboJLZCkLc5RT1AqOTRdPlijia3wkYKrtdlIBOSMg5IPpTYGQ2rXup2c7W3kwJHaCWQSAksWB4BzwBjrUCa3fxwxQWlu8n2e1iZgIS/mFlzgnI28d+a359H0+5KmS2X5U8vCkqCv90gHkexpJdG0+bZvt+EQRgK7LlR0BweR9aAMlry8guNSe2jYu1xEGG3eY1MYJIXIz9BVi7vrm48J3F3BcxrcLG2ZEUgAjOeDyD/ACNaMulWU2/fDy7hyysVO4DAIIORxxxUkdjbR2ZtFhXyCCpQ85B65z1pdLAuhlG81MyC1jmtvOhthPLI8Zw5OcADPA45NTTancy6HbXtpCfMm2krt3lAepC5G7HpU76Jp8kUcbwMVjUqv7xs7T1BOckex4qxPY21zbrBLEPLQgoFJXaR0wRyKbBHPpdXl9qNi9vcwCb7PMHYxttyGUcoSCD6+lTQavf6hHH9m+zwutqLiQyKWDEkjA5GBwea2INNs7Zo2hhCtGrKrZJOGOTyeuT3NQyaJp0kUUbWwCRKUUK7L8p6g4PI9jS6f15gZE3iO7MBMEEZmljjmhjYHlCpL59cbT+YrRi1A32n6hcKFNuoYRYz8wC85/HNXTp9obmO48hPNjjMSNj7qHqKWCwtbWy+xwwqlvgr5Y6YPX+dDW4Loc+uqX6WTtbfZ0jtbKKcq6sxbIJK5zx0681d1ia9KaY9ncLB5twoYMpOcqTjqOK0BplmIpIxAuySIQuMnlACAP1NPuLG2urdYJo90akFQCQVI6EEcim9wMCa6vrO91e6hkiMUMkReN1JLZUA4Ofl/WpBrl/LqLiG1d7eO58gqITyAcFt+cA+2K2W020dJkaEFZ8eZkn5scDP5UxtJsXu/tJg/e7g5+YhSw6ErnBPvihA9iveXV82rrYWjwR5tzKXkUsQQ2MYyKyhrchb7YsEYma0Qcsdu4y7P++c8+ta93o8V9qq3M/zRrAYgFZlYEtnqCOMVOdLsShT7Mm0xCHbjjZ1xS/r8xmPrFxeWFrBNfOkwiu42Bt0Kswwcgrk0s+s36LZxIqNNco0xaCIyhFGMADIz15NasWkWMIGyDJEgkyzsx3DgHJOeKRtGsGiEYg2qrl12OylSeuCDkA+g4oEUbfUtTu7q0g8qK2LwGWYSKSRhsYHPf36U7xIXMNkiJJJvuVUxxybC4weM1oLpdkqbFt1C+UYcAn7h6ipDZ27JAhiBW3IaIZPykDA/SmBhMfsDWJW1eFiZn2SzNIVIT1zTm1HVl0u0uSIi1wA7GGEv5S7cj5c5bnqR0rcntILl0aaMOyBgpJ6ZGD+lQzaXZzwQwvEQkIxHtdlKjGMAg56UgMqwu7681yJxdwtavZrIURTgncQcZPXPt7Umo61fR6jcwWds8gtlUkCEv5hIzjdkbeO/Nay6XZJJBIkARoF2RlWIwvpweR9aLrSrK8m82eHc+ApIdl3AdmAPI+tMDKuNW1CN7yZPIEFrLGhjZDucMFzzngjNRLf6laQ63cvPHMIJtsSMpABwuO/Tmtx9OtJEmVoVKzsGkGT8xGMfyFNk0qylknd4MmcASjcQG+ozjPA5oAoz6nd6Y4F8YXV4HdTGpGZAfu8nuCPyNOvJZlh0k3CIZnuED4yApKnOOf51Z1DTxfzWe8J5UE3mkEckgHAH4mrU1vDcGMyoGMTh0z2Yd/1oAyNN1S7n1I293siLhikRjIPB4Ktkhxj6VRvZb8p4iEl0rQxR4jQKQVJXIwc8VvW+lWVrP50MO18EDLEhcnJ2gnA/CibS7KeaWWSHLzJ5cnzEB19wDg/WlbQfUx59ZvtMinScRXDrBHJF5aEYLNtwRnnBq9pV/eT/aVvIJAIgCkjQmMvkHI2knpj1q7Lp9pMXMkCsXjETZ7oDkCi0sLayD+QhBfG5mcsTjpySTTEjn2vb24k0i9neHyJpWkWOMEMo2MQCc/N79OafZazqd8isIGSOeF3RzAQsRxlec/P+la8Wi6fDOs0duA6MXT5mIQnrgZwOp6U6HSLG3lMkUG1sEAb2IUHrgE4GfalYZzdnd3WmaFaGKSJriaNrh9sDOzgDqefzYn8K1F1uaSwvLlUjUxWcdwinnllY4PtxV+TR7CSOGNrcbYV2IAxGF/unB5HsaY2haa6xq1sNsahAA7AFQcgHnkexpsSMO9uL0SX0lrcCGQy2mSQSMNjgc+9dXGHEaiRgzgDcQMAn6VXl02znWcSQKwn2+ZyedvT6Y9qdBZW9tI0kSEOyqjMWJJC9Op96ALFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABUVx/qG/D+dS1Fcf6hvw/nQAg6n8aKB1P40UgA9fwpKU9fwpKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKjn/wBRJ/umpKjn/wBRJ/umgCSiiigApD/rI/8Ae/oaWkP+sj/3v6GgCxRRSMwVSxOABk0wFoqBfOlG7f5anoAMn8c07ypP+fh/++V/woAloqLypP8An4f/AL5X/CjypP8An4f/AL5X/CgCWiovKk/5+H/75X/CjypP+fh/++V/woAloqLypP8An4f/AL5X/CjypP8An4f/AL5X/CgCWiovKk/5+H/75X/CjypP+fh/++V/woAloqLypP8An4f/AL5X/CjypP8An4f/AL5X/CgCWiovKk/5+H/75X/CjypP+fh/++V/woAloqLypP8An4f/AL5X/CjypP8An4f/AL5X/CgCWiovKk/5+H/75X/CjypP+fh/++V/woAloqLypP8An4f/AL5X/CjypP8An4f/AL5X/CgCWiovKk/5+H/75X/CjypP+fh/++V/woAloqLypP8An4f/AL5X/CjypP8An4f/AL5X/CgCWiovKk/5+H/75X/CjypP+fh/++V/woAloqLypP8An4f/AL5X/CjypP8An4f/AL5X/CgCWiovKk/5+H/75X/CjypP+fh/++V/woAloqLypP8An4f/AL5X/CjypP8An4f/AL5X/CgCWiovKk/5+H/75X/CjypP+fh/++V/woAloqLypP8An4f/AL5X/CjypP8An4f/AL5X/CgCWiovKk/5+H/75X/CjypP+fh/++V/woAloqLypP8An4f/AL5X/CjypP8An4f/AL5X/CgCWiovKk/5+H/75X/CjypP+fh/++V/woAloqLypP8An4f/AL5X/CjypP8An4f/AL5X/CgCWiovKk/5+H/75X/CjypP+fh/++V/woAloqLypP8An4f/AL5X/CjypP8An4f/AL5X/CgCWiovKk/5+H/75X/CjypP+fh/++V/woAloqLypP8An4f/AL5X/CjypP8An4f/AL5X/CgCWiovKk/5+H/75X/CjypP+fh/++V/woAloqLypP8An4f/AL5X/CjypP8An4f/AL5X/CgCWiovKk/5+H/75X/CjypP+fh/++V/woAloqLypP8An4f/AL5X/CjypP8An4f/AL5X/CgCWiovKk/5+H/75X/CjypP+fh/++V/woAloqLypP8An4f/AL5X/CjypP8An4f/AL5X/CgCWiovKk/5+H/75X/CjypP+fh/++V/woAloqLypP8An4f/AL5X/CjypP8An4f/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FM2T/wB+P/vk/wCNGyf+/H/3yf8AGgB9FM2T/wB+P/vk/wCNGyf+/H/3yf8AGgB9FM2T/wB+P/vk/wCNGyf+/H/3yf8AGgB9FM2T/wB+P/vk/wCNGyf+/H/3yf8AGgB9FM2T/wB+P/vk/wCNGyf+/H/3yf8AGgB9FM2T/wB+P/vk/wCNGyf+/H/3yf8AGgB9FM2T/wB+P/vk/wCNGyf+/H/3yf8AGgB9FM2T/wB+P/vk/wCNGyf+/H/3yf8AGgB9FM2T/wB+P/vk/wCNGyf+/H/3yf8AGgB9FM2T/wB+P/vk/wCNGyf+/H/3yf8AGgB9FM2T/wB+P/vk/wCNGyf+/H/3yf8AGgB9FM2T/wB+P/vk/wCNGyf+/H/3yf8AGgB9FM2T/wB+P/vk/wCNGyf+/H/3yf8AGgB9FM2T/wB+P/vk/wCNGyf+/H/3yf8AGgB9FM2T/wB+P/vk/wCNGyf+/H/3yf8AGgB9FM2T/wB+P/vk/wCNGyf+/H/3yf8AGgB9FM2T/wB+P/vk/wCNGyf+/H/3yf8AGgB9FM2T/wB+P/vk/wCNGyf+/H/3yf8AGgB9FM2T/wB+P/vk/wCNGyf+/H/3yf8AGgB9FM2T/wB+P/vk/wCNGyf+/H/3yf8AGgB9FM2T/wB+P/vk/wCNGyf+/H/3yf8AGgB9FM2T/wB+P/vk/wCNGyf+/H/3yf8AGgB9FM2T/wB+P/vk/wCNGyf+/H/3yf8AGgB9FM2T/wB+P/vk/wCNGyf+/H/3yf8AGgB9FM2T/wB+P/vk/wCNGyf+/H/3yf8AGgB9FM2T/wB+P/vk/wCNGyf+/H/3yf8AGgB9FM2T/wB+P/vk/wCNGyf+/H/3yf8AGgB9FM2T/wB+P/vk/wCNGyf+/H/3yf8AGgB9FM2T/wB+P/vk/wCNGyf+/H/3yf8AGgB9FM2T/wB+P/vk/wCNGyf+/H/3yf8AGgB9FM2T/wB+P/vk/wCNGyf+/H/3yf8AGgB9FM2T/wB+P/vk/wCNGyf+/H/3yf8AGgB9FM2T/wB+P/vk/wCNGyf+/H/3yf8AGgB9FM2T/wB+P/vk/wCNGyf+/H/3yf8AGgB9FM2T/wB+P/vk/wCNGyf+/H/3yf8AGgB9FM2T/wB+P/vk/wCNGyf+/H/3yf8AGgB9FM2T/wB+P/vk/wCNGyf+/H/3yf8AGgB9FM2T/wB+P/vk/wCNGyf+/H/3yf8AGgB9FM2T/wB+P/vk/wCNGyf+/H/3yf8AGgB9FM2T/wB+P/vk/wCNGyf+/H/3yf8AGgB9FM2T/wB+P/vk/wCNGyf+/H/3yf8AGgB9RvzNCo67ifwwf8aXZP8A34/++T/jT44ghLElnPUmgCSorj/UN+H86lqK4/1Dfh/OgBB1P40UDqfxopAB6/hSUp6/hSUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAVHP8A6iT/AHTUlRz/AOok/wB00ASUUUUAFIf9ZH/vf0NLSH/WR/739DQBYooopgFFFFABRUFpdxXtuJ4SShZl5GOVJB/UGp6ACiqNpq9lfaheWNvMHuLMqJlx90kZH1qS41C3tbq1t5GPmXLlIwBnkAtz6cCgC1RVWe/gt7y1tXY+bclljAGRlRk59OKtUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAVFcf6hvw/nUtRXH+ob8P50AIOp/GigdT+NFIAPX8KSlOPQ/nRx6H86AEopePQ/nRx6H86AEopePQ/nRx6H86AEopePQ/nRx6H86AEopePQ/nRx6H86AEopePQ/nRx6H86AEopePQ/nRx6H86AEopePQ/nRx6H86AEopePQ/nRx6H86AEopePQ/nRx6H86AEopePQ/nRx6H86AEopePQ/nRx6H86AEqOf/USf7pqXj0P51HPjyJOD9096AH0UvHofzo49D+dACUh/wBZH/vf0NO49D+dNON8fB+96+xoAsUUZozTAKpX1vfzOhs75LdQPmDQh8/qMVdzRmgDl/DVrqv9mwudUiMInl3Ri2GT+8bPOe9b+oXL2en3FxHDJPJHGWWKNcs5xwAKmjjjhTZGiouScKMDk5NPzSBHAWOj+ItGu9Pv5TbzGQPDci3hbzMyndvfk5Cvj8DVew05/P0X7Lpl5BqcHm/briWNgplMbDczHh8t0Izx+Vej5ozT8gPP9DsEXVdAeDSr2C5gWUahLLEygyFCCWY8OSc4YZ69a9AozRmgAoozRmgAoozRmgAoozRmgAoozRmgAoozRmgAoozRmgAoozRmgAoozRmgAoozRmgAoozRmgAoozRmgAoozRmgAoozRmgAoozRmgAoozRmgAoozRmgAoozRmgAoozRmgAoozRmgAoozRmgAoozRmgAoozRmgAoozRmgAoozRmgAoozRmgAoozRmgAoozRmgAoozRmgAoozRmgAoozRmgAoozRmgAoozRmgAoozRmgAoozRmgAoozRmgAoozRmgAoozRmgAoozRmgAoozRmgAoozRmgAoozRmgAqK4/1Dfh/Opc1FcH9w34fzoAQdT+NFKMZ6H86KQH/9k=" alt="Green success banner in Claude Desktop reading 'Inference — 1-token completion … via identity provider'" /&gt;
&lt;P&gt;For broader rollout, hit the &lt;STRONG&gt;Export&lt;/STRONG&gt; button at the top of the configuration window — it produces a &lt;CODE&gt;.mobileconfig&lt;/CODE&gt; (macOS) or &lt;CODE&gt;.reg&lt;/CODE&gt; (Windows) you can push via Intune / Jamf to every user's machine.&lt;/P&gt;
&lt;HR /&gt;
&lt;H2&gt;Step 6 — Verify both hops&lt;/H2&gt;
&lt;P&gt;In APIM → &lt;STRONG&gt;APIs → anthropicapi → Test → POST /v1/messages&lt;/STRONG&gt; I sent:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE&gt;Headers:
  anthropic-version: 2023-06-01
Body:
  { "model": "&amp;lt;deployment-name&amp;gt;", "max_tokens": 64,
    "messages": [{"role":"user","content":"hi"}] }&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Click &lt;STRONG&gt;Send → Trace&lt;/STRONG&gt;, and look at two places:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Inbound → validate-jwt&lt;/STRONG&gt;: should say &lt;CODE&gt;succeeded&lt;/CODE&gt; and show the decoded claims (your &lt;CODE&gt;oid&lt;/CODE&gt;, &lt;CODE&gt;email&lt;/CODE&gt;, etc.).&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Backend → Request&lt;/STRONG&gt;: outbound URL is &lt;CODE&gt;https://&amp;lt;foundry-account&amp;gt;.services.ai.azure.com/anthropic/v1/messages?api-version=2024-05-01-preview&lt;/CODE&gt;, with &lt;CODE&gt;x-api-key: ****&lt;/CODE&gt; present and &lt;CODE&gt;Authorization&lt;/CODE&gt; absent.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Backend → Response&lt;/STRONG&gt;: 200, with a Claude message JSON body.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;That confirms both halves of the chain.&lt;/P&gt;
&lt;IMG src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCALYA+gDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD2XxRq1zpOkBtPiil1G4lS3tI5c7GkY8bsc4ABJ+lVJPE7yfD2bxHbRp58dm83lODtWRQdynvwwI/Cs7WY9V1vx1bwaVPb266LB5zyXNu0iNNKCoAAZeQgJznjdWJPFqGk6H400HUGjmkltJdRt3t4WRGEgIdVUk4w4zjP8VJ7Ma3R0Nvrmv6dqWkRayNOuLTVW8qOWzR43ik2FwCrM25SARkEYq7o3iiGbw02r6xPbWaLczwly21cJKyL1PUhRTNE8LQwSWOpXmoahqNzBCPI+2SKVgLLglVVQM44ycnFctaxWMfgyxuL/Un0q4ttWuprW5MJdVk86UfMpGCCpPXHsap6Mlao9GsNQs9Us0vLG4juLeTO2SM5BwcGrNYnhPUrzVdCS6vrdIpjI6ho0ZFmUMQJArcgMOcGtukxoKgt7y3upLiOGVXe3k8qUD+FsA4/IiotVgW40y4R5riABC3mW7lXXHPBH8q5PRLSWTVNPM1lqOn+ZAZ5G81gLiQYP7z5jg/Mxw3PA7DFAHcUUUyVDIm1ZGjOQdy4zwc459elAD6KhWBxIGNxKQHZtp24IPQdOg7VNQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUVDbz+ejEoUZW2spOcH8KmoAKKKKACiiigAooooAKKKY80cZAkkRSem5gM0APooooAKKKKACiiigAooooAKKKKACiiq02oWVtJ5c95bxSAZ2vKqnH0JppN7CbS3LNFRQXVvdKWt54plU4JjcMAfwqWhq24J32CiiikMKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC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urmO4nhDyR42kk44ORx0OD61aoooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAGTf6iT/dP8qjt+sn1H8hUk3+ok/wB0/wAqjt+sn1H8hQBPRRRQAUUUUAFFFFABRRRQAUUU0uinDMoPoTQA6iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAKupf8gu7/wCuL/8AoJrzjwJ/yMaf9cH/AKV6PqX/ACC7v/ri/wD6Ca848Cf8jGn/AFwf+lAHqNFFFAHDeMdb1C31eKPTvtpXT4hdXAtoyyuSwwkh7LtDn8qh0q7muPGELpPM9vJf3RXLNtK+TGV49Oa7+ihAzgrjxDer41E6m9/suG5WwcCM+QSRy5b+8HKj6ZrLSTxGNEvtV+3XaQAyR5a5Ls7eeApRcfJgAjrzmvUaKAOb8P6/dapreq2VwINlq2IzApIxkj5nzjdx0wMe9dJRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAyb/USf7p/lVHeyyPtYjhen0q9N/qJP90/yrPb/Wt9F/lVw3InsP8ANk/vt+dHmyf32/OmUoBIyAcVrZGV2O82T++350ebJ/fb86btbj5Tz7UFWAyVOPpRoF2O82T++350ebJ/fb86ZTd6eZ5e9d+M7dwzj6UWQXZL5sn99vzo82T++350yiiyC7H+bJ/fb86PNk/vt+dMoosgux/myf32/OjzZP77fnTKKLILsf5sn99vzo82T++350yiiyC7H+bJ/fb86PNk/vt+dMoosgux/myf32/OjzZP77fnTKKLILsf5sn99vzo82T++350yiiyC7H+bJ/fb86PNk/vt+dMoosgux/myf32/OjzZP77fnTKKLILsf5sn99vzo82T++350yiiyC7H+bJ/fb86PNk/vt+dMoosgux/myf32/OjzZP77fnTKKLILsf5sn99vzo82T++350yiiyC7H+bJ/fb86PNk/vt+dMoosgux/myf32/OjzZP77fnTKKLILsWSWQxP87fdPerdv1k+o/kKoyf6t/wDdNXrfrJ9R/IVnUNKZPVPV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Gpp9ulHlCMZAUGNjsHUgght+cnHIqzNrM8On39ybSMtZXHlOglOGX5eQdvXDDjH41PPr2mW15Lay3QWWMEt8pxkDcRnucc4oAqaguumeAQHnZ1t8CPzN38e7nbt9O+fasqJNa1XSZJvPv9uUcAOiO7LKchMfw7B3xkge9dFp2qxX8cjlTblbh4FSY7WYrjnBwe/Smxa7p00qRrM4LsAhaNlD5zggkcrkEZ/xoAz7mPUhqck1lb3RdtPMccs+whZMggdc5657ZxUPleImkd4pbtYEAaBJmj3udy5EmPbf07Y71o/8JLpO7aboj92ZMlCONu/HTrtGcelWbbVbW7WNofPIeTyxugcYO3dk5HAI5BPHIoQFCEaqItTWYXjfNm3kQorkZPCKcqMDHJ6+ma09R+0nTboWRIuvKbySMffxx14/OotY1SLR9MlvJVLhcBVAPzMTgDgHA96amqwma3tHKreTpujXDbGOCcbiAeg9KOgGTNF4hjleOOW5kjDN5EgaPJb5cGT/AGPv9Bn9Kl8vXJLieLzblImuUInyikRZO4KvOABjnqfTNXLTXIJrSwedGjnvNwSFAX5U4POBx7+9T2er2OoXMtvbTh5IhkjBGQDtJHqMjFAGZZQ6n/alnJdxXIk+xNDLcYjKo+4EEd84BzxjOKqQeHbwaTpVvLK25bnzbtTFEd3Dctx83OPXr7V1lFAB0ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAUdfwooHX8KKALNFFFABRRRQBV1L/kF3f8A1xf/ANBNeceBP+RjT/rg/wDSvR9S/wCQXd/9cX/9BNeceBP+RjT/AK4P/SgD1GiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigBk3+ok/wB0/wAqitusn/Af5CpZv9RJ/un+VRW3WT/gP8hQBYooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigBk3+ok/3T/Ko7frJ9R/IVJN/qJP90/yqO36yfUfyFABN/rR/u1Rn021ubuO6lVzPFjy2EhGzBzx6Z7+o4NXpv8AWj/drGvrvUIt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RxkdTzjHNF0X7Kdr2NiisaDV73ULF5rHTWWRJnjKXThAQpYZBGe6j862ELFFLgBscgdjQncmUXHRi0UUUyQooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAIbyIz2c8KkBpI2UZ9SCK4fwfoGpWGtNcXduYY442TLEfMTjp+Vd63Sm0APooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAZN/qJP8AdP8AKorbrJ/wH+QqWb/USf7p/lUVt1k/4D/IUAWKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAZN/qJP90/yqO36yfUfyFSTf6iT/dP8qjt+sn1H8hQATf60f7tSRf6sVHN/rR/u1JF/qxQA+iiigAooooAKrz2cU06XGNtxGpVJASMZ7EAjIyBwafc20d3btBKCUbGdrEHg56j6VjSWl3Y6rbi0kujaC2ZEiGGTzMgjcSCRn1zUSduhvRjzbSs9SVfDdr5VrG7uywtI7gEqJWf72cHpz06Y4rQgsLa2neaCPy2f7wVjt/75zjt6VzyXPiP7CG2u1xu5TyR8q7fm5IAJz93HU8Ekc1dt7Wee/1CC9lvZLacK0YcBUC7VyAVAIOQeKmLXRHVVhVs/aVFbyfnrpp3ua8lpDNcwXDqTLBu8shiANwweM4P41NWb5L2d3p9tbG5Ft+83hVDqeMjexORyeMdasX+n2+pQCG5DlAdw2OVOcEdQfQmtNbHn+7fyGTaVZXEs0ssO5pkCSfOwDgdMgHGR2PUU06NYExs0LO0YARnlZmXDbuCTkc/n06Vj2NjqyeMbm5mZxp4VhGN4IPCAcbfY9+35u1yy1Oe+uXtGcRGK3GwLnzCJSSAc8YGM+1K63sb8ruo8xu21lBaNKYEKea5dhvJG4nJIBOBknPFV4tMMeu3GqNcysZYUgWEHCIqknOO7Ek8+nFc9cNrF1o9yL+3llmWWIxRxQncjhssQQACuBx1+pzVu7e8j1e/n0+zuBJJaRgOYvlZgxJxngsFPHuMUKQnSb3f9aHTUVg2qX9x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" alt="APIM Test console showing a 200 response from Foundry with the Claude message JSON body" /&gt;&lt;HR /&gt;
&lt;H2&gt;Bumps I hit along the way&lt;/H2&gt;
&lt;P&gt;A few common issues encountered during setup — sharing so you can skip them:&lt;/P&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table border="1" style="border-width: 1px;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Symptom&lt;/th&gt;&lt;th&gt;Cause&lt;/th&gt;&lt;th&gt;Fix&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Claude shows &lt;EM&gt;"Your provider's model list hasn't loaded yet"&lt;/EM&gt; and &lt;CODE&gt;/v1/models&lt;/CODE&gt; returns 404&lt;/td&gt;&lt;td&gt;Foundry's Anthropic surface doesn't implement that endpoint&lt;/td&gt;&lt;td&gt;Turn &lt;STRONG&gt;Model discovery OFF&lt;/STRONG&gt; in Claude Desktop and add the deployment name manually&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Claude shows &lt;EM&gt;"Authentication failed"&lt;/EM&gt; even though sign-in worked&lt;/td&gt;&lt;td&gt;The APIM API still had &lt;STRONG&gt;Subscription required = ON&lt;/STRONG&gt;, blocking the call before &lt;CODE&gt;validate-jwt&lt;/CODE&gt; ran with &lt;CODE&gt;401: Access denied due to missing subscription key&lt;/CODE&gt;&lt;/td&gt;&lt;td&gt;Uncheck &lt;STRONG&gt;Subscription required&lt;/STRONG&gt; on the API&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Portal Test panel shows &lt;EM&gt;"Cannot read properties of undefined (reading 'statusCode')"&lt;/EM&gt;&lt;/td&gt;&lt;td&gt;The test console doesn't attach an Entra token, so &lt;CODE&gt;validate-jwt&lt;/CODE&gt; 401s and the panel's JavaScript crashes&lt;/td&gt;&lt;td&gt;Comment out &lt;CODE&gt;&amp;lt;validate-jwt&amp;gt;&lt;/CODE&gt; temporarily for portal testing, or test via &lt;CODE&gt;curl&lt;/CODE&gt; with a real token&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;CODE&gt;OIDC discovery failed (HTTP 404)&lt;/CODE&gt; in Claude Desktop&lt;/td&gt;&lt;td&gt;Pasted the metadata URL into &lt;STRONG&gt;Issuer URL&lt;/STRONG&gt;&lt;/td&gt;&lt;td&gt;Issuer must end at &lt;CODE&gt;/v2.0&lt;/CODE&gt;, not at &lt;CODE&gt;/.well-known/openid-configuration&lt;/CODE&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;CODE&gt;Token exchange failed (HTTP 401)&lt;/CODE&gt;&lt;/td&gt;&lt;td&gt;App registered under &lt;STRONG&gt;Web&lt;/STRONG&gt; platform instead of &lt;STRONG&gt;Mobile and desktop applications&lt;/STRONG&gt;&lt;/td&gt;&lt;td&gt;Create a new app with the right platform — it can't be changed&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;colgroup&gt;&lt;col style="width: 33.33%" /&gt;&lt;col style="width: 33.33%" /&gt;&lt;col style="width: 33.33%" /&gt;&lt;/colgroup&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;HR /&gt;
&lt;H2&gt;Where this leaves us&lt;/H2&gt;
&lt;P&gt;This pattern is small in moving parts but has outsized architectural impact:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Zero secrets on endpoints.&lt;/STRONG&gt; Eliminates API-key sprawl across laptops, MDM profiles, and shared vaults. The Foundry key lives only inside APIM — or disappears entirely when you switch APIM to managed identity.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Identity, not credentials.&lt;/STRONG&gt; Every Claude Desktop user authenticates against &lt;STRONG&gt;Entra ID&lt;/STRONG&gt; in their browser, the same as Office or Teams. MFA, Conditional Access, and Entra ID Protection apply automatically — no parallel auth story to maintain.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Per-user observability built in.&lt;/STRONG&gt; APIM logs carry the user's Entra &lt;CODE&gt;oid&lt;/CODE&gt;, &lt;CODE&gt;email&lt;/CODE&gt;, and group claims. That unlocks per-user dashboards, cost allocation, and abuse detection without any client-side instrumentation.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Aligned with Zero Trust.&lt;/STRONG&gt; Strong identity at the edge, no implicit trust between hops, single policy chokepoint for inspection and rate-limiting, and full revocability through a single Enterprise Application.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Optional but trivial keyless path.&lt;/STRONG&gt; Flip APIM to &lt;STRONG&gt;system-assigned managed identity&lt;/STRONG&gt; + &lt;CODE&gt;&amp;lt;authentication-managed-identity resource="https://cognitiveservices.azure.com" /&amp;gt;&lt;/CODE&gt; and one &lt;STRONG&gt;Foundry User&lt;/STRONG&gt; role assignment (role ID &lt;CODE&gt;53ca6127-db72-4b80-b1b0-d745d6d5456d&lt;/CODE&gt;, formerly &lt;EM&gt;Azure AI User&lt;/EM&gt;) on the Foundry account. See the &lt;A href="https://learn.microsoft.com/en-us/azure/foundry/concepts/rbac-foundry?tabs=owner" target="_blank" rel="noopener"&gt;Foundry RBAC doc&lt;/A&gt; — don't use any &lt;CODE&gt;Cognitive Services *&lt;/CODE&gt; roles for Foundry.&lt;/LI&gt;
&lt;/UL&gt;
&lt;HR /&gt;
&lt;H2&gt;What I'd add next&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;&lt;CODE&gt;llm-token-limit&lt;/CODE&gt;&lt;/STRONG&gt; and &lt;STRONG&gt;&lt;CODE&gt;llm-emit-token-metric&lt;/CODE&gt;&lt;/STRONG&gt; policies for per-user quotas and cost visibility.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;App Insights&lt;/STRONG&gt; wiring on the API, with a workbook that pivots on the &lt;CODE&gt;oid&lt;/CODE&gt; claim.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Assignment required = Yes&lt;/STRONG&gt; on the Entra Enterprise Application + a security group, so only approved users can sign in.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Intune deployment&lt;/STRONG&gt; of the exported &lt;CODE&gt;.reg&lt;/CODE&gt; / &lt;CODE&gt;.mobileconfig&lt;/CODE&gt; so the gateway URL and client ID land on devices automatically.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;But that's all incremental. The hard part — getting Claude Desktop, Entra ID, APIM, and Foundry to agree on who's allowed to talk to whom — is done. Total elapsed: about an afternoon, most of it spent learning where each portal hides its switches.&lt;/P&gt;
&lt;HR /&gt;
&lt;H2&gt;Useful links&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://claude.com/docs/cowork/3p/gateway-sso" target="_blank" rel="noopener"&gt;Gateway single sign-on with your identity provider — Claude.ai Documentation&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/azure/foundry/foundry-models/how-to/configure-claude-desktop" target="_blank" rel="noopener"&gt;Configure Claude Desktop with Foundry Models — Microsoft Learn&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/azure/foundry/concepts/rbac-foundry?tabs=owner" target="_blank" rel="noopener"&gt;Role-based access control for Microsoft Foundry — Microsoft Learn&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/ARTICLE&gt;</description>
      <pubDate>Thu, 18 Jun 2026 03:47:52 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-developer-community/enterprise-ready-claude-desktop-with-entra-id-apim-and-microsoft/ba-p/4528163</guid>
      <dc:creator>LZhang</dc:creator>
      <dc:date>2026-06-18T03:47:52Z</dc:date>
    </item>
    <item>
      <title>Azure Function App — Queue-Based Architecture for Long-Running Sync Jobs</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-developer-community/azure-function-app-queue-based-architecture-for-long-running/ba-p/4524474</link>
      <description>&lt;H2&gt;The Problem: HTTP Triggers and Long-Running Jobs Don't Mix&lt;/H2&gt;
&lt;P&gt;Here's a situation you've probably run into: you have a job that needs to loop over dozens of Azure resources, call APIs, and do real work. You wrap it in an HTTP-triggered Azure Function so it can be called on demand. It works great and after a few minutes, the caller gets a 504 Gateway Timeout.&lt;/P&gt;
&lt;LI-SPOILER&gt;
&lt;P&gt;⭐ This isn't a bug. Azure (like most cloud platforms) enforces a hard&amp;nbsp;&lt;STRONG&gt;230-second HTTP response timeout&lt;/STRONG&gt; at the load balancer level — no matter what you configure in your function. If your job takes longer than that, the connection is cut.&lt;/P&gt;
&lt;/LI-SPOILER&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The&amp;nbsp;&lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/troubleshoot/azure/app-service/web-request-times-out-app-service?WT.mc_id=AZ-MVP-5003548" target="_blank" rel="noopener"&gt;230-second limit is enforced by Azure Front Door / the platform load balancer&lt;/A&gt;. It cannot be overridden by app settings or host configuration. Any HTTP trigger that runs longer than ~3.5 minutes&amp;nbsp;&lt;EM&gt;will&lt;/EM&gt;&amp;nbsp;timeout for the caller.&lt;/P&gt;
&lt;P&gt;In our case, the job iterates over 30+ Azure subscriptions — for each one it switches context, lists resources, and triggers image imports. Total runtime: anywhere from 2 to 10 minutes depending on how many ACRs need updating. Way over the limit.&lt;/P&gt;
&lt;H2&gt;The Solution: Decouple Request from Execution via a Queue&lt;/H2&gt;
&lt;P&gt;The fix is clean once you see it: the HTTP trigger shouldn't&amp;nbsp;&lt;EM&gt;do&lt;/EM&gt;&amp;nbsp;the work — it should just&amp;nbsp;&lt;EM&gt;accept&lt;/EM&gt; the work and hand it off. That's what a &lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/azure/azure-functions/functions-bindings-storage-queue?WT.mc_id=AZ-MVP-5003548&amp;amp;tabs=isolated-process%2Cextensionv5&amp;amp;pivots=programming-language-powershell" target="_blank" rel="noopener"&gt;queue is for&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The flow splits into two independent phases:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;STRONG&gt;Request phase&lt;/STRONG&gt;&amp;nbsp;— The HTTP trigger validates the caller (&lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/entra/identity-platform/howto-add-app-roles-in-apps?WT.mc_id=AZ-MVP-5003548" target="_blank" rel="noopener"&gt;JWT + app role check&lt;/A&gt;), packages the job parameters into a queue message, and returns&amp;nbsp;202 Accepted. This takes under 3 seconds.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Execution phase&lt;/STRONG&gt;&amp;nbsp;— A Queue Trigger picks up the message and runs the actual sync. No HTTP connection involved, so there's no timeout. On a Dedicated (P-series) plan, execution time is unlimited.&lt;/LI&gt;
&lt;/OL&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table border="1" style="width: 77.5926%; height: 105.2px; border-width: 1px;"&gt;&lt;thead&gt;&lt;tr style="height: 35.0667px;"&gt;&lt;th class="lia-align-center" style="height: 35.0667px;"&gt;&lt;STRONG&gt;Approach&lt;/STRONG&gt;&lt;/th&gt;&lt;th class="lia-align-center" style="height: 35.0667px;"&gt;&lt;STRONG&gt;What the caller gets&lt;/STRONG&gt;&lt;/th&gt;&lt;th class="lia-align-center" style="height: 35.0667px;"&gt;&lt;STRONG&gt;Result&lt;/STRONG&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr style="height: 35.0667px;"&gt;&lt;td style="height: 35.0667px;"&gt;HTTP trigger → run sync inline&lt;/td&gt;&lt;td style="height: 35.0667px;"&gt;Waits for the full job to complete&lt;/td&gt;&lt;td style="height: 35.0667px;"&gt;&lt;STRONG&gt;&lt;SPAN class="lia-text-color-8"&gt;504 TIMEOUT&lt;/SPAN&gt;&lt;/STRONG&gt;&amp;nbsp;after 230 seconds&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 35.0667px;"&gt;&lt;td style="height: 35.0667px;"&gt;HTTP trigger → Queue → Queue Trigger&lt;/td&gt;&lt;td style="height: 35.0667px;"&gt;202 Accepted&amp;nbsp;immediately&lt;/td&gt;&lt;td style="height: 35.0667px;"&gt;&lt;STRONG&gt;&lt;SPAN class="lia-text-color-6"&gt;NO TIMEOUT&lt;/SPAN&gt;&lt;/STRONG&gt;&amp;nbsp;job runs as long as needed&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;colgroup&gt;&lt;col style="width: 33.33%" /&gt;&lt;col style="width: 33.33%" /&gt;&lt;col style="width: 33.33%" /&gt;&lt;/colgroup&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;P&gt;🤸‍♀️There's an added bonus - &lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/azure/reliability/reliability-storage-queue?WT.mc_id=AZ-MVP-5003548" target="_blank" rel="noopener"&gt;Reliability in Azure Queue Storage&lt;/A&gt;: Azure Storage Queues give you &lt;STRONG&gt;automatic retry&lt;/STRONG&gt; out of the box. If the job crashes halfway through, the message becomes visible again after a visibility timeout and the Queue Trigger picks it up for a retry — up to 5 attempts before the message is moved to the poison queue. No retry logic to write 🤸‍♀️.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Locking Down the Endpoint&lt;/H2&gt;
&lt;P&gt;Since the HTTP trigger is the public entry point, it needs solid auth. We layer two things:&lt;/P&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table border="1" style="border-width: 1px;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;⭐Use &lt;STRONG&gt;EasyAuth&lt;/STRONG&gt; for the "&lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/azure/app-service/overview-authentication-authorization?WT.mc_id=AZ-MVP-5003548" target="_blank" rel="noopener"&gt;is this a real Entra ID token?&lt;/A&gt;" check, and a custom &lt;STRONG&gt;App Role&lt;/STRONG&gt; for the "is this person allowed to trigger syncs?" check. These are independent concerns and should stay that way.&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;colgroup&gt;&lt;col style="width: 100.00%" /&gt;&lt;/colgroup&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table border="1" style="border-width: 1px;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;Layer&lt;/th&gt;&lt;th&gt;What it does&lt;/th&gt;&lt;th&gt;How&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;STRONG&gt;EasyAuth (Entra ID)&lt;/STRONG&gt;&lt;/td&gt;&lt;td&gt;Rejects requests without a valid Entra ID Bearer token — before your code even runs&lt;/td&gt;&lt;td&gt;Configured at the Function App level via the Authentication blade&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;STRONG&gt;App Role check&lt;/STRONG&gt;&lt;/td&gt;&lt;td&gt;Validates that the token contains the SyncJob.Execute role — only assigned users/SPs can trigger the job&lt;/td&gt;&lt;td&gt;Decoded in the function code from the JWT roles claim&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;STRONG&gt;Managed Identity&lt;/STRONG&gt;&lt;/td&gt;&lt;td&gt;Authenticates the Function App to Azure APIs (no credentials in code)&lt;/td&gt;&lt;td&gt;Connect-AzAccount -Identity — identity assigned via RBAC&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;colgroup&gt;&lt;col style="width: 33.33%" /&gt;&lt;col style="width: 33.33%" /&gt;&lt;col style="width: 33.33%" /&gt;&lt;/colgroup&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;P&gt;One gotcha worth knowing: when using v2 tokens (which is the default with modern App Registrations), the aud claim in the token is the raw App ID GUID — not the api:// prefixed URI. You need to explicitly add both forms to your allowedAudiences in EasyAuth, otherwise valid tokens get rejected.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="bash"&gt;APP_ID="&amp;lt;your-app-id&amp;gt;"
TENANT_ID="&amp;lt;your-tenant-id&amp;gt;"
FUNCTION_APP_URL="https://&amp;lt;your-function-app&amp;gt;.azurewebsites.net"

# Interactive login (device code flow — works from any terminal)
az login --tenant "${TENANT_ID}" \
  --scope "api://${APP_ID}/.default" \
  --use-device-code

TOKEN=$(az account get-access-token \
  --scope "api://${APP_ID}/.default" \
  --query accessToken -o tsv)

# Trigger the sync — returns 202 immediately
curl -s -X POST "${FUNCTION_APP_URL}/api/SyncContainerRegistryHttpTrigger" \
  -H "Authorization: Bearer ${TOKEN}" \
  -H "Content-Type: application/json"&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Passing Parameters Through the Queue&lt;/H2&gt;
&lt;P&gt;One nice property of this pattern: the queue message is just JSON, so you can pass whatever parameters the job needs. In our case, we pass a subscriptionFilter wildcard so callers can target a subset of subscriptions without touching any code.&lt;/P&gt;
&lt;P&gt;The parameter travels the full chain: HTTP body → queue message → Queue Trigger → PowerShell script parameter. Here's how each step handles it.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Step 1 — HTTP Trigger reads the body and enqueues the message&lt;/STRONG&gt; using the &lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/azure/azure-functions/functions-bindings-storage-queue-output?WT.mc_id=AZ-MVP-5003548&amp;amp;tabs=python-v2%2Cisolated-process%2Cnodejs-v4%2Cextensionv5&amp;amp;pivots=programming-language-powershell" target="_blank" rel="noopener"&gt;Push-OutputBinding output binding&lt;/A&gt;. Azure Functions wires the binding to the queue automatically — no SDK call needed:&lt;/P&gt;
&lt;LI-CODE lang="bash"&gt;param($Request, $TriggerMetadata)

 # ... decode the JWT, check role assignment

$queuePayload = @{
    triggeredBy        = $decoded.Payload.upn ?? $decoded.Payload.oid
    triggeredAt        = (Get-Date -Format 'o')
    subscriptionFilter = if ($body.subscriptionFilter) { $body.subscriptionFilter } else { "*" }
} | ConvertTo-Json -Compress

Push-OutputBinding -Name QueueMessage -Value $queuePayload

Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{
    StatusCode = [System.Net.HttpStatusCode]::Accepted
    Body       = @{ message = "Sync job queued. Check Azure Monitor logs for execution status." }
})&lt;/LI-CODE&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table border="1" style="border-width: 1px;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;⭐Push-OutputBinding is how Azure Functions PowerShell workers write to output bindings (queues, blobs, HTTP responses…). The binding name QueueMessage maps to the queue defined in function.json — the runtime handles serialisation and delivery.&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;colgroup&gt;&lt;col style="width: 100.00%" /&gt;&lt;/colgroup&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Step 2 — Queue Trigger passes the filter to the script&lt;/STRONG&gt; as a named parameter:&lt;/P&gt;
&lt;LI-CODE lang="bash"&gt;param($QueueItem, $TriggerMetadata)

Write-Host "Triggered SyncContainerRegistry via Storage Queue. Payload: $QueueItem"

$subscriptionFilter = if ($QueueItem.subscriptionFilter) { $QueueItem.subscriptionFilter } else { "*" }

$SubscriptionFilter = $subscriptionFilter

. "$PSScriptRoot/../SyncContainerRegistry/run.ps1"&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Step 3 — Long running job&amp;nbsp;&lt;/STRONG&gt;with the filter as parameter:&lt;/P&gt;
&lt;LI-CODE lang="powershell"&gt;param($Timer)

if (-not $SubscriptionFilter) { $SubscriptionFilter = "*" }

$subscriptions = Get-AzSubscription | Where-Object { $_.Name -like $SubscriptionFilter }

foreach ($subscription in $subscriptions) {
    Set-AzContext -SubscriptionId $subscription.Id | Out-Null
    # ... do the work
}&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Targeting a subset of subscriptions&lt;/STRONG&gt;&lt;/P&gt;
&lt;LI-CODE lang="bash"&gt;# Sync all subscriptions (default — omit the body)
curl -s -X POST "${FUNCTION_APP_URL}/api/SyncContainerRegistryHttpTrigger" \
  -H "Authorization: Bearer ${TOKEN}" \
  -H "Content-Type: application/json"

# Sync only subscriptions matching a pattern
curl -s -X POST "${FUNCTION_APP_URL}/api/SyncContainerRegistryHttpTrigger" \
  -H "Authorization: Bearer ${TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{"subscriptionFilter": "*project-alpha*"}'&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table border="1" style="border-width: 1px;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;⭐PowerShell's -like operator uses * as a wildcard anywhere in the string. The pattern *project-alpha* matches sub-mycompany-project-alpha-prd, sub-mycompany-project-alpha-dev, etc. A pattern without a leading * only matches from the start of the string — keep this in mind when naming subscriptions.&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;colgroup&gt;&lt;col style="width: 100.00%" /&gt;&lt;/colgroup&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Pushing a Message Directly via PowerShell&lt;/H2&gt;
&lt;P&gt;You can also push a message straight to the queue without going through the HTTP trigger — useful for testing, scripting, or bypassing the auth layer in a controlled environment.&lt;/P&gt;
&lt;LI-CODE lang="powershell"&gt;Connect-AzAccount  # or -Identity for a Managed Identity context

$storageAccount = "&amp;lt;your-storage-account&amp;gt;"
$queueName      = "sync-job-queue"

# Build the payload — same shape the HTTP trigger produces
$payload = @{
    triggeredBy        = $env:USERNAME
    triggeredAt        = (Get-Date -Format 'o')
    subscriptionFilter = "*project-alpha*"   # or "*" for all
} | ConvertTo-Json -Compress

# Get a queue client via the connected account (no key needed)
$ctx = New-AzStorageContext -StorageAccountName $storageAccount -UseConnectedAccount
$queue = Get-AzStorageQueue -Name $queueName -Context $ctx
$queue.QueueClient.SendMessage($payload)&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table border="1" style="border-width: 1px;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;⭐ -UseConnectedAccount authenticates via the current Connect-AzAccount session — no storage key required, as long as your identity has the&amp;nbsp;&lt;STRONG&gt;Storage Queue Data Message Sender&lt;/STRONG&gt; role on the storage account.&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;colgroup&gt;&lt;col style="width: 100.00%" /&gt;&lt;/colgroup&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;H2&gt;The Queue Message&lt;/H2&gt;
&lt;P&gt;The HTTP trigger packages the caller identity and filter into a simple JSON payload before enqueuing. The Queue Trigger reads it back as a deserialised PowerShell object — no manual JSON parsing needed.&lt;/P&gt;
&lt;LI-CODE lang="json"&gt;{
  "triggeredBy": "user@company.com",
  "triggeredAt": "2026-06-01T11:03:55.570+02:00",
  "subscriptionFilter": "*project-alpha*"
}&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Design Decisions at a Glance&lt;/H2&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table border="1" style="border-width: 1px;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;Decision&lt;/th&gt;&lt;th&gt;Choice&lt;/th&gt;&lt;th&gt;Why&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;STRONG&gt;Async execution&lt;/STRONG&gt;&lt;/td&gt;&lt;td&gt;Azure Storage Queue&lt;/td&gt;&lt;td&gt;HTTP trigger has a hard 230s timeout. The sync job takes 2–10 minutes. The queue decouples acceptance from execution — and gives us retry for free.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;STRONG&gt;Authentication&lt;/STRONG&gt;&lt;/td&gt;&lt;td&gt;EasyAuth + App Role&lt;/td&gt;&lt;td&gt;No credentials in code. Access is controlled via Entra ID app roles — revocable per user without touching infrastructure.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;STRONG&gt;Azure identity&lt;/STRONG&gt;&lt;/td&gt;&lt;td&gt;Managed Identity&lt;/td&gt;&lt;td&gt;No secrets to rotate or store. The Function App authenticates to Azure APIs using its platform-assigned identity.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;STRONG&gt;Job parameter&lt;/STRONG&gt;&lt;/td&gt;&lt;td&gt;Wildcard filter via queue payload&lt;/td&gt;&lt;td&gt;Lets callers target any subscription subset without code changes. The filter travels through the queue — the Queue Trigger just passes it along.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;STRONG&gt;Hosting plan&lt;/STRONG&gt;&lt;/td&gt;&lt;td&gt;Dedicated (P-series)&lt;/td&gt;&lt;td&gt;Consumption plan caps function execution at 10 minutes. A Dedicated plan has no execution time limit — essential when the job can run longer.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;colgroup&gt;&lt;col style="width: 33.33%" /&gt;&lt;col style="width: 33.33%" /&gt;&lt;col style="width: 33.33%" /&gt;&lt;/colgroup&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;See you in the Cloud&lt;/P&gt;
&lt;P&gt;Jamesdld&lt;/P&gt;</description>
      <pubDate>Tue, 16 Jun 2026 07:00:00 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-developer-community/azure-function-app-queue-based-architecture-for-long-running/ba-p/4524474</guid>
      <dc:creator>Jamesdld23</dc:creator>
      <dc:date>2026-06-16T07:00:00Z</dc:date>
    </item>
    <item>
      <title>Agents That Test Agents: A Cloud-Native Skill-Eval Harness on Foundry Hosted Agents</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-developer-community/agents-that-test-agents-a-cloud-native-skill-eval-harness-on/ba-p/4528085</link>
      <description>&lt;H2 data-line="8"&gt;Skills are an agent's must-have. So test them.&lt;/H2&gt;
&lt;P data-line="10"&gt;A&amp;nbsp;&lt;STRONG&gt;skill&lt;/STRONG&gt;&amp;nbsp;is the lightest way to give an agent durable, reusable behavior: a&amp;nbsp;SKILL.md&amp;nbsp;file you author once, store centrally in Foundry's versioned Skills API, and inject into a Hosted Agent's context — no code change, no redeploy. That's why skills have quietly become standard equipment for production agents.&lt;/P&gt;
&lt;P data-line="12"&gt;But the moment a skill carries real behavior, a hard question follows:&amp;nbsp;&lt;STRONG&gt;how do you know it still works?&lt;/STRONG&gt;&amp;nbsp;When you edit a skill you can't feel whether you improved it or just changed it. It might stop triggering, skip a required section, or quietly produce a worse result on one model than another. The cure is the same discipline we use for any prompt —&amp;nbsp;&lt;STRONG&gt;evaluate it&lt;/STRONG&gt;: run the agent, capture what happened, and grade it against a small set of checks.&lt;/P&gt;
&lt;P data-line="14"&gt;This is exactly what&amp;nbsp;azure_skill_eval&amp;nbsp;does for one concrete skill:&amp;nbsp;&lt;STRONG&gt;edu-video-script&lt;/STRONG&gt;, which writes an education short-video script for a given knowledge point (the sample's smoke test asks it to script the&amp;nbsp;&lt;EM&gt;"P vs NP problem"&lt;/EM&gt;). And it does the whole thing cloud-native, on&amp;nbsp;&lt;STRONG&gt;Foundry Hosted Agents&lt;/STRONG&gt;.&lt;/P&gt;
&lt;H2 data-line="18"&gt;The scenario: one skill, two models, four hosted agents&lt;/H2&gt;
&lt;img /&gt;
&lt;P data-line="20"&gt;&lt;BR /&gt;The skill under test is edu-video-script. The clever part of the harness is that it doesn't just check one run — it puts the skill on a stand and stresses it from three sides, using four &lt;STRONG&gt;Foundry Hosted Agents&lt;/STRONG&gt;&amp;nbsp;wired together by the Agent Framework&amp;nbsp;FoundryAgent:&lt;/P&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table border="1" style="border-width: 1px;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Hosted agent&lt;/th&gt;&lt;th&gt;Role&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;skill-eval-business-agent-gpt&lt;/td&gt;&lt;td&gt;System under test (SUT), running&amp;nbsp;edu-video-script&amp;nbsp;on&amp;nbsp;&lt;STRONG&gt;gpt-5.5&lt;/STRONG&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;skill-eval-business-agent-deepseek&lt;/td&gt;&lt;td&gt;The same skill, running on&amp;nbsp;&lt;STRONG&gt;DeepSeek-V4-Pro&lt;/STRONG&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;skill-eval-attacker-agent&lt;/td&gt;&lt;td&gt;Multi-turn&amp;nbsp;&lt;STRONG&gt;adversarial&lt;/STRONG&gt;&amp;nbsp;prompt generator&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;skill-eval-judge-agent&lt;/td&gt;&lt;td&gt;&lt;STRONG&gt;LLM-as-judge&lt;/STRONG&gt;&amp;nbsp;that returns a rubric score as JSON&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;colgroup&gt;&lt;col style="width: 50.00%" /&gt;&lt;col style="width: 50.00%" /&gt;&lt;/colgroup&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;P data-line="29"&gt;Two business agents run the&amp;nbsp;&lt;EM&gt;same&lt;/EM&gt;&amp;nbsp;skill on&amp;nbsp;&lt;EM&gt;different&lt;/EM&gt;&amp;nbsp;models, so every case becomes an apples-to-apples comparison:&amp;nbsp;&lt;STRONG&gt;which model executes this skill better?&lt;/STRONG&gt;&amp;nbsp;The attacker and judge are the graders.&lt;/P&gt;
&lt;H2 data-line="33"&gt;What we measure (define "done" first)&lt;/H2&gt;
&lt;P data-line="35"&gt;Good evals start from a checkable definition of done — outcome, process, style, efficiency. For an education-video script that means:&amp;nbsp;&lt;EM&gt;Did it produce a valid script (outcome)? Did it actually follow the&amp;nbsp;edu-video-script&amp;nbsp;template (process/style)? Does it hold up when a user pushes on it across turns (robustness)?&lt;/EM&gt;&amp;nbsp;The harness answers these with three grading layers.&lt;/P&gt;
&lt;H3 data-line="37"&gt;1. Deterministic checks first (validator.py)&lt;/H3&gt;
&lt;P data-line="39"&gt;The cheapest, most explainable signal: does the output match the script template the skill is supposed to produce?&amp;nbsp;validator.py&amp;nbsp;runs fixed, deterministic template checks — no model needed. These catch the obvious regressions instantly and never cost a token.&lt;/P&gt;
&lt;H3 data-line="41"&gt;2. The LLM judge (skill-eval-judge-agent)&lt;/H3&gt;
&lt;P data-line="43"&gt;Template checks answer&amp;nbsp;&lt;EM&gt;"did it do the basics?"&lt;/EM&gt;&amp;nbsp;but not&amp;nbsp;&lt;EM&gt;"is the script any good?"&lt;/EM&gt;&amp;nbsp;— pacing, clarity, whether it teaches the concept. For that, a dedicated judge hosted agent grades the result and returns&amp;nbsp;&lt;STRONG&gt;structured JSON&lt;/STRONG&gt;&amp;nbsp;so scores compare cleanly across runs and models:&lt;/P&gt;
&lt;P&gt;{ "overall_pass": true, "score": 100, "checks": [] }&lt;/P&gt;
&lt;P data-line="49"&gt;Structured output is the point: stable fields (overall_pass,&amp;nbsp;score,&amp;nbsp;checks) diff cleanly between GPT and DeepSeek, and between today's skill version and last week's.&lt;/P&gt;
&lt;H3 data-line="51"&gt;3. The multi-turn attacker (test_agent.py&amp;nbsp;+&amp;nbsp;skill-eval-attacker-agent)&lt;/H3&gt;
&lt;P data-line="53"&gt;A skill that looks great on a clean prompt can still fall apart when a user pushes on it. The attacker agent generates adversarial prompts for a knowledge point using a chosen strategy — for example&amp;nbsp;&lt;EM&gt;extreme length&lt;/EM&gt; — and keeps the pressure on across multiple turns (max_turns, default 3). This is where you find out whether&amp;nbsp;edu-video-script&amp;nbsp;stays on-template under stress, not just on the happy path.&lt;/P&gt;
&lt;LI-CODE lang="bash"&gt;# the attacker takes a knowledge point + a strategy, emits one user prompt
azd ai agent invoke skill-eval-attacker-agent \
  "Topic: P vs. NP problem Recommended attack strategy: Extreme length Please output the unique user prompt text."&lt;/LI-CODE&gt;
&lt;H2 data-line="63"&gt;The eval loop, end to end&lt;/H2&gt;
&lt;P data-line="65"&gt;runner.py&amp;nbsp;is a ghcsdk-style pipeline that runs&amp;nbsp;&lt;STRONG&gt;cases × models&lt;/STRONG&gt;, with each side toggleable: pick all models / GPT only / DeepSeek only, run a single case (e.g.&amp;nbsp;edge-03), and switch adversarial mode, single-turn vs multi-turn, and judge grading on or off. The same switches are query parameters on&amp;nbsp;POST /api/run:&amp;nbsp;model,&amp;nbsp;only_case,&amp;nbsp;use_attack,&amp;nbsp;single_turn,&amp;nbsp;use_judge,&amp;nbsp;max_turns.&lt;/P&gt;
&lt;P data-line="67"&gt;The test set lives in&amp;nbsp;shared/test_cases.py&amp;nbsp;—&amp;nbsp;&lt;STRONG&gt;10 built-in edge cases&lt;/STRONG&gt; (edge-01&amp;nbsp;…&amp;nbsp;edge-10) exported to&amp;nbsp;evals/evals.json. You don't need a giant benchmark; a small, sharp set catches regressions, and you grow it whenever a real failure shows up:&lt;/P&gt;
&lt;LI-CODE lang="python"&gt;python -m evals.export_evals   # regenerate evals/evals.json from shared/test_cases.py&lt;/LI-CODE&gt;
&lt;P&gt;Every SUT call goes through&amp;nbsp;runtime.py, which follows the official Agent Framework hosted-agent sample: it opens a fresh&amp;nbsp;&lt;STRONG&gt;hosted session per turn&lt;/STRONG&gt;, invokes via&amp;nbsp;&lt;STRONG&gt;Responses&lt;/STRONG&gt;, and tears the session down afterward.&lt;/P&gt;
&lt;LI-CODE lang="python"&gt;# shared/runtime.py — the documented Foundry hosted-agent pattern
project = AIProjectClient(endpoint=FOUNDRY_PROJECT_ENDPOINT,
                          credential=cred, allow_preview=True)
agent = FoundryAgent(project_client=project,
                     name=agent_name,          # e.g. skill-eval-business-agent-gpt
                     allow_preview=True)
session = project.beta.agents.create_session(agent_name=agent_name)
# ... send the (possibly adversarial) prompt, collect the Responses output ...&lt;/LI-CODE&gt;
&lt;P&gt;So a single case flows:&amp;nbsp;&lt;STRONG&gt;runner → business agent (skill runs) → validator → judge&lt;/STRONG&gt;, optionally with the&amp;nbsp;&lt;STRONG&gt;attacker&lt;/STRONG&gt; driving multiple turns first.&lt;/P&gt;
&lt;img /&gt;
&lt;H2 data-line="100"&gt;Cloud-native by design — and why that matters for eval&lt;/H2&gt;
&lt;P data-line="102"&gt;This is the part that makes the harness production-grade rather than a laptop script. The hard parts of an eval harness — provisioning agents, recording every run, scaling trials, governing access — are handled by Azure, not by you.&lt;/P&gt;
&lt;UL data-line="104"&gt;
&lt;LI data-line="104"&gt;&lt;STRONG&gt;Foundry Hosted Agents are the runtime.&lt;/STRONG&gt;&amp;nbsp;The SUT, attacker, and judge all run as managed hosted agents in your Foundry project. You bring the skill and the cases; Foundry hosts the agents, models, and sessions. The business agents deploy with&amp;nbsp;host: azure.ai.agent&amp;nbsp;and&amp;nbsp;docker.remoteBuild: true, so&amp;nbsp;azd deploy&amp;nbsp;builds the containers in&amp;nbsp;&lt;STRONG&gt;Azure Container Registry&lt;/STRONG&gt;&amp;nbsp;— local Docker doesn't even need to be running.&lt;/LI&gt;
&lt;LI data-line="105"&gt;&lt;STRONG&gt;The UI is serverless.&lt;/STRONG&gt;&amp;nbsp;A&amp;nbsp;&lt;STRONG&gt;FastAPI&lt;/STRONG&gt;&amp;nbsp;app on&amp;nbsp;&lt;STRONG&gt;Azure Container Apps&lt;/STRONG&gt;&amp;nbsp;lets you upload&amp;nbsp;evals.json, watch progress live, and browse the dashboard — scale-to-zero when no one's running evals.&lt;/LI&gt;
&lt;LI data-line="106"&gt;&lt;STRONG&gt;Every run is durable.&lt;/STRONG&gt;&amp;nbsp;Results land in&amp;nbsp;&lt;STRONG&gt;Azure Blob Storage&lt;/STRONG&gt;&amp;nbsp;(skill-eval-runs), one&amp;nbsp;yymmdd-XXXXXX/&amp;nbsp;folder per run, with a newest-first&amp;nbsp;runs.json&amp;nbsp;index. Nothing lives only in a terminal scrollback.&lt;/LI&gt;
&lt;LI data-line="107"&gt;&lt;STRONG&gt;Access is identity-based.&lt;/STRONG&gt;&amp;nbsp;In the cloud, a user-assigned&amp;nbsp;&lt;STRONG&gt;Managed Identity&lt;/STRONG&gt;&amp;nbsp;carries exactly two roles —&amp;nbsp;&lt;EM&gt;Storage Blob Data Contributor&lt;/EM&gt;&amp;nbsp;+&amp;nbsp;&lt;EM&gt;Azure AI User&lt;/EM&gt;; locally it's&amp;nbsp;AzureCliCredential. No keys in env files.&lt;/LI&gt;
&lt;LI data-line="108"&gt;&lt;STRONG&gt;It's reproducible infra.&lt;/STRONG&gt;&amp;nbsp;azd up&amp;nbsp;runs&amp;nbsp;infra/main.bicep&amp;nbsp;to stand up Storage, the container, Log Analytics, the Container Apps environment, the identity, and the role assignments in one shot.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P data-line="110"&gt;The payoff: the scores you read came from the&amp;nbsp;&lt;STRONG&gt;same hosted runtime you actually ship to&lt;/STRONG&gt; — not a local approximation — and the run that produced them is sitting in Blob, comparable against every run before it.&lt;/P&gt;
&lt;H2 data-line="114"&gt;Run it&lt;/H2&gt;
&lt;P data-line="116"&gt;&lt;STRONG&gt;Local (no deploy):&lt;/STRONG&gt;&lt;/P&gt;
&lt;LI-CODE lang="bash"&gt;conda activate agentdev
cd Skill_eval/azure_skill_eval
pip install -r requirements.txt
cp .env.example .env          # FOUNDRY_PROJECT_ENDPOINT + AZURE_STORAGE_*
uvicorn webapp.app:app --reload --port 8000&lt;/LI-CODE&gt;
&lt;P data-line="126"&gt;Open&amp;nbsp;http://localhost:8000, upload&amp;nbsp;evals/evals.json, pick your models and modes, and click&amp;nbsp;&lt;STRONG&gt;Run&lt;/STRONG&gt;.&lt;/P&gt;
&lt;P data-line="128"&gt;&lt;STRONG&gt;Cloud (azd):&lt;/STRONG&gt;&lt;/P&gt;
&lt;LI-CODE lang="bash"&gt;azd auth login
azd env new skill-eval-dev
azd env set FOUNDRY_PROJECT_ENDPOINT https://&amp;lt;project&amp;gt;.services.ai.azure.com/api/projects/&amp;lt;project&amp;gt;
azd env set MODEL_GPT gpt-5.5
azd env set MODEL_DEEPSEEK DeepSeek-V4-Pro
azd up&lt;/LI-CODE&gt;
&lt;P&gt;Provision the skill once, deploy the four hosted agents, then smoke-test them:&lt;/P&gt;
&lt;LI-CODE lang=""&gt;python -m hosted_agent.provision_skills     # upload edu-video-script to Foundry Skills

azd deploy skill-eval-business-agent-gpt
azd deploy skill-eval-business-agent-deepseek
azd deploy skill-eval-attacker-agent
azd deploy skill-eval-judge-agent

azd ai agent invoke skill-eval-business-agent-gpt "Here is a script for an educational short video on the P vs. NP problem."&lt;/LI-CODE&gt;
&lt;H2 data-line="154"&gt;Read the results&lt;/H2&gt;
&lt;P data-line="156"&gt;Each run is self-contained on Blob:&lt;/P&gt;
&lt;img /&gt;
&lt;P data-line="169"&gt;summary.json&amp;nbsp;gives you the headline — pass rate and judge averages — and the per-{case}__{model}.json&amp;nbsp;files let you open any single result and see exactly what the skill produced and why it passed or failed. The dashboard streams these straight from Blob via&amp;nbsp;/api/runs/{run_id}/files/{filename}. Because GPT and DeepSeek ran the same cases, the comparison is right there in one folder.&lt;/P&gt;
&lt;H2 data-line="173"&gt;Takeaways&lt;/H2&gt;
&lt;UL data-line="175"&gt;
&lt;LI data-line="175"&gt;&lt;STRONG&gt;A skill you can't evaluate is a skill you can't trust.&lt;/STRONG&gt;&amp;nbsp;edu-video-script&amp;nbsp;is treated like code — versioned in Foundry, run, and graded.&lt;/LI&gt;
&lt;LI data-line="176"&gt;&lt;STRONG&gt;Stack your graders cheap-to-expensive.&lt;/STRONG&gt;&amp;nbsp;Deterministic template checks first (validator.py), then an LLM judge for quality, then a multi-turn attacker for robustness.&lt;/LI&gt;
&lt;LI data-line="177"&gt;&lt;STRONG&gt;Make the judge return structured JSON.&lt;/STRONG&gt;&amp;nbsp;overall_pass&amp;nbsp;/&amp;nbsp;score&amp;nbsp;/&amp;nbsp;checks&amp;nbsp;compare cleanly across models and skill versions.&lt;/LI&gt;
&lt;LI data-line="178"&gt;&lt;STRONG&gt;Compare models on the same skill.&lt;/STRONG&gt;&amp;nbsp;Running GPT-5.5 and DeepSeek-V4-Pro side by side turns "which model?" from a guess into a measured answer.&lt;/LI&gt;
&lt;LI data-line="179"&gt;&lt;STRONG&gt;Let the platform carry the harness.&lt;/STRONG&gt;&amp;nbsp;Foundry Hosted Agents are the runtime; Azure Container Apps, Blob Storage, Managed Identity, and&amp;nbsp;azd/Bicep make the whole loop reproducible and durable.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P data-line="181"&gt;Write the skill. Then build the harness that proves it. On Foundry, that second step is mostly configuration — and the result is a skill you can actually trust in production.&lt;/P&gt;
&lt;H2 data-line="185"&gt;Conclusion&lt;/H2&gt;
&lt;P data-line="187"&gt;Skills moved agent behavior out of code and into versioned Markdown — a huge win for reuse, but only if you can prove a skill still works after every edit.&amp;nbsp;azure_skill_eval&amp;nbsp;answers that for&amp;nbsp;edu-video-script&amp;nbsp;by treating evaluation as a first-class, repeatable step rather than a gut check.&lt;/P&gt;
&lt;P data-line="189"&gt;The shape is simple and worth copying for any skill of your own:&lt;/P&gt;
&lt;OL data-line="191"&gt;
&lt;LI data-line="191"&gt;&lt;STRONG&gt;Pin down "done"&lt;/STRONG&gt;&amp;nbsp;as checkable criteria, then encode a small set of sharp cases (here, 10 edge cases).&lt;/LI&gt;
&lt;LI data-line="192"&gt;&lt;STRONG&gt;Grade in layers, cheap to expensive&lt;/STRONG&gt;&amp;nbsp;— deterministic template checks, then a structured LLM-judge rubric, then a multi-turn adversarial pass.&lt;/LI&gt;
&lt;LI data-line="193"&gt;&lt;STRONG&gt;Run the same cases across models&lt;/STRONG&gt;&amp;nbsp;(GPT-5.5 vs DeepSeek-V4-Pro) so model choice becomes a measurement, not a guess.&lt;/LI&gt;
&lt;LI data-line="194"&gt;&lt;STRONG&gt;Let the cloud carry it&lt;/STRONG&gt;&amp;nbsp;— Foundry Hosted Agents as the runtime, FastAPI on Azure Container Apps for the UI, Blob Storage for durable runs, Managed Identity for access, and&amp;nbsp;azd/Bicep so the whole thing is reproducible.&lt;/LI&gt;
&lt;/OL&gt;
&lt;P data-line="196"&gt;The result is a feedback loop where every skill change is confirmed, every regression is visible, and every score traces back to the same hosted runtime you ship to. That's the difference between&amp;nbsp;&lt;EM&gt;building&lt;/EM&gt;&amp;nbsp;skills and being able to&amp;nbsp;&lt;EM&gt;trust&lt;/EM&gt; them — and on Foundry, the gap between the two is mostly configuration.&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&lt;EM&gt;&lt;SPAN class="lia-text-color-21"&gt;&lt;STRONG&gt;Sample Code :&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/EM&gt; &lt;A class="lia-external-url" href="https://github.com/kinfey/Multi-AI-Agents-Cloud-Native/tree/main/code/Skill_eval" target="_blank" rel="noopener"&gt;https://github.com/kinfey/Multi-AI-Agents-Cloud-Native/tree/main/code/Skill_eval&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 15 Jun 2026 07:00:00 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-developer-community/agents-that-test-agents-a-cloud-native-skill-eval-harness-on/ba-p/4528085</guid>
      <dc:creator>kinfey</dc:creator>
      <dc:date>2026-06-15T07:00:00Z</dc:date>
    </item>
    <item>
      <title>Troubleshooting ML Model Loading, GPU Issues, and Memory Pressure in Azure Container Apps</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-developer-community/troubleshooting-ml-model-loading-gpu-issues-and-memory-pressure/ba-p/4518542</link>
      <description>&lt;H1&gt;Introduction&lt;/H1&gt;
&lt;P&gt;Deploying an AI application to Azure Container Apps is fundamentally different from deploying a web API. When you containerize a Django REST API, the application starts in a few seconds, the memory footprint is predictable, and the CPU usage scales linearly with requests. When you containerize a PyTorch model server, a LangChain agent, or an ONNX inference service, you are dealing with a completely different category of problem.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Large language models, computer vision models, and embedding pipelines can take minutes to load, consume gigabytes of memory before serving a single request, and produce bizarre errors when they encounter resource limits that look nothing like a standard out-of-memory exception. Add to that the challenge of running GPU workloads (or simulating them on CPU) in a containerized environment, and you have a troubleshooting landscape that catches even experienced ML engineers off guard.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This part of the series covers the real-world scenarios you will encounter when running AI workloads on Azure Container Apps, with specific focus on what goes wrong during deployment and startup — and how to fix it methodically.&lt;/P&gt;
&lt;H3&gt;&amp;nbsp;&lt;/H3&gt;
&lt;H3&gt;Scenario 1: The Model Takes 3+ Minutes to Load and the Container Gets Killed Before It Starts&lt;/H3&gt;
&lt;H6&gt;&lt;STRONG&gt;&amp;nbsp;What You See&lt;/STRONG&gt;&lt;/H6&gt;
&lt;P&gt;You deploy your model inference service. In the logs you can see it is downloading or loading the model from disk:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;INFO: Loading model from /app/models/model.bin&lt;/P&gt;
&lt;P&gt;INFO: Loading tokenizer...&lt;/P&gt;
&lt;P&gt;INFO: Loading weights layer 0/48...&lt;/P&gt;
&lt;P&gt;INFO: Loading weights layer 12/48...&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;And then, abruptly, the container disappears and a new one starts. The liveness or startup probe has timed out and Container Apps has killed the container before the model finished loading. You end up in an endless restart loop where the model never fully loads.&lt;/P&gt;
&lt;H6&gt;&lt;STRONG&gt;Why This Happens&lt;/STRONG&gt;&lt;/H6&gt;
&lt;P&gt;The default probe configuration does not account for long model loading times. The liveness probe begins firing almost immediately after the container starts. If your model takes 3 minutes to load and your liveness probe allows only 30 seconds of failure before killing the container, the model never gets a chance to finish loading. Container Apps is doing exactly what it was configured to do — it just was not configured with your workload in mind.&lt;/P&gt;
&lt;P&gt;There is a second, related problem: if your model file is downloaded at container startup (from Azure Blob Storage, Hugging Face Hub, or a mounted file share), the download time is added on top of the load time, making the window even wider.&lt;/P&gt;
&lt;H6&gt;&lt;STRONG&gt;Step-by-Step Fix&lt;/STRONG&gt;&lt;/H6&gt;
&lt;P&gt;&lt;STRONG&gt;Step 1 — Separate your startup probe from your liveness probe.&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;A startup probe fires repeatedly until it succeeds, and while it is in progress, the liveness probe is suppressed. This gives your model the time it needs to load without the risk of being killed. Set a generous `failureThreshold` and `periodSeconds`:&lt;/P&gt;
&lt;LI-CODE lang="yaml"&gt;probes:
  - type: Startup
    httpGet:
      path: /health/startup
      port: 8080
    initialDelaySeconds: 10
    periodSeconds: 15
    failureThreshold: 40    # 40 * 15s = 600 seconds (10 minutes) for model to load
  - type: Liveness
    httpGet:
      path: /health/live
      port: 8080
    periodSeconds: 30
    failureThreshold: 3
  - type: Readiness
    httpGet:
      path: /health/ready
      port: 8080
    periodSeconds: 10
    failureThreshold: 3&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Step 2 — Implement a proper three-tier health endpoint in your model server.&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Each probe endpoint should return the appropriate status based on what it knows about the model:&lt;/P&gt;
&lt;LI-CODE lang="python"&gt;# FastAPI model server with staged health endpoints
from fastapi import FastAPI, HTTPException
from contextlib import asynccontextmanager
import asyncio

model = None
model_loaded = False

@asynccontextmanager
async def lifespan(app: FastAPI):
    global model, model_loaded
    # Model loads in the background so the HTTP server starts immediately
    asyncio.create_task(load_model_async())
    yield
    # Cleanup on shutdown
    model = None

app = FastAPI(lifespan=lifespan)

async def load_model_async():
    global model, model_loaded
    import logging
    logger = logging.getLogger(__name__)   

    logger.info("Starting model load...")
    try:
        # Import heavy libraries only when needed
        import torch
        from transformers import AutoModelForCausalLM, AutoTokenizer
     
        tokenizer = AutoTokenizer.from_pretrained("/app/models/my-model")
        model_obj = AutoModelForCausalLM.from_pretrained(
            "/app/models/my-model",
            torch_dtype=torch.float16,
            device_map="auto"
        )

        model = {"tokenizer": tokenizer, "model": model_obj}
        model_loaded = True
        logger.info("Model loaded successfully")
    except Exception as e:
        logger.error(f"Model loading failed: {e}", exc_info=True)
        raise

@app.get("/health/startup")
def startup_probe():
    # Returns 200 immediately — the container is alive but model may still be loading
    return {"status": "starting"}

@app.get("/health/live")
def liveness_probe():
    # Returns 200 as long as the process has not entered a broken state
    return {"status": "alive"}

@app.get("/health/ready")

def readiness_probe():
    # Returns 200 ONLY when the model is fully loaded
    if not model_loaded:
        raise HTTPException(status_code=503, detail="Model not yet loaded")
    return {"status": "ready"}&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Step 3 — Pre-download model weights into the container image at build time.&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Downloading models at container startup is a significant reliability and performance risk. If the Hugging Face Hub or your storage account is temporarily unreachable, the container cannot start. Instead, bake the model weights directly into the image or use a separate initialization Container App Job to pre-populate a persistent volume:&lt;/P&gt;
&lt;LI-CODE lang="docker"&gt;# Option A: Bake the model into the image (simple, but creates a large image)
FROM python:3.11-slim
WORKDIR /app
RUN pip install transformers torch --index-url https://download.pytorch.org/whl/cpu
# Download model at build time
RUN python -c "from transformers import AutoTokenizer, AutoModel; 
    AutoTokenizer.from_pretrained('sentence-transformers/all-MiniLM-L6-v2', cache_dir='/app/models'); 
    AutoModel.from_pretrained('sentence-transformers/all-MiniLM-L6-v2', cache_dir='/app/models')"
COPY . .
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8080"]&lt;/LI-CODE&gt;&lt;LI-CODE lang="bash"&gt;# Option B: Pre-populate an Azure Files volume using a Container App Job
az containerapp job create 
  --name model-downloader-job 
  --resource-group my-rg 
  --environment my-aca-env 
  --trigger-type Manual 
  --replica-timeout 600 
  --image python:3.11-slim 
  --command "bash" 
  --args "-c" "pip install huggingface_hub &amp;amp;&amp;amp; huggingface-cli download my-org/my-model --local-dir /mnt/models" 
  --volume-mounts "model-storage:/mnt/models" 
  --volumes "model-storage:azureFile:my-fileshare"&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H5&gt;&amp;nbsp;Scenario 2: The Model Server Runs Out of Memory and Gets OOM-Killed&lt;/H5&gt;
&lt;H6&gt;&lt;STRONG&gt;What You See&lt;/STRONG&gt;&lt;/H6&gt;
&lt;P&gt;Your model server starts successfully in development with 8 GB of RAM. In Azure Container Apps with a 4.0 vCPU / 8.0 Gi configuration (the maximum without GPU support), it crashes intermittently. The container restarts with no error in the application logs. When you check the system logs, you see the container exit code is `137`.&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;Exit code 137 indicates the process was killed by the kernel OOM killer.&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Or in Log Analytics:&lt;/P&gt;
&lt;LI-CODE lang="kusto"&gt;ContainerAppSystemLogs_CL
| where ContainerAppName_s == "my-model-server"
| where Log_s contains "OOMKilled" or Log_s contains "137"
| project TimeGenerated, Log_s&lt;/LI-CODE&gt;
&lt;H6&gt;&lt;STRONG&gt;Why This Happens&lt;/STRONG&gt;&lt;/H6&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Exit code 137 means the container was sent SIGKILL (`128 + 9 = 137`) because it exceeded its memory limit. Container Apps enforces memory limits strictly. When the process tries to allocate more memory than the container is allowed, the Linux kernel's OOM (Out Of Memory) killer terminates the process.&lt;/P&gt;
&lt;P&gt;With ML models, memory usage is not constant. A model might use 4 GB at rest but spike to 7 GB during inference when the input batch is large, when attention maps are being computed, or when the model is warming up its KV cache. If your container limit is 8 Gi and the model uses 7 Gi at rest plus 2 Gi during inference, you will hit OOM under load even if the container "usually" has enough memory.&lt;/P&gt;
&lt;H6&gt;&lt;STRONG&gt;Step-by-Step Fix&lt;/STRONG&gt;&lt;/H6&gt;
&lt;P&gt;&lt;STRONG&gt;Step 1 — Quantize your model to reduce its memory footprint.&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Full-precision (FP32) models use twice the memory of half-precision (FP16) models, and INT8 quantized models use half the memory of FP16. For inference workloads where a small accuracy trade-off is acceptable, quantization is the single most impactful optimization you can make:&lt;/P&gt;
&lt;LI-CODE lang="python"&gt;import torch
from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig

# 4-bit quantization — reduces a 7B parameter model from ~14GB to ~4GB
quantization_config = BitsAndBytesConfig(
    load_in_4bit=True,
    bnb_4bit_compute_dtype=torch.float16,
    bnb_4bit_quant_type="nf4",
    bnb_4bit_use_double_quant=True
)

model = AutoModelForCausalLM.from_pretrained(
    "my-model-path",
    quantization_config=quantization_config,
    device_map="auto"
)&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Step 2 — Implement request batching to flatten memory spikes.&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Processing one request at a time with a large model creates memory spikes every time a new request arrives. Batching requests together means the model stays in a steady memory state rather than spiking per request:&lt;/P&gt;
&lt;LI-CODE lang="python"&gt;from asyncio import Queue, wait_for
import asyncio

class BatchedInferenceService:
    def __init__(self, model, tokenizer, max_batch_size=4, timeout=0.05):
        self.model = model
        self.tokenizer = tokenizer
        self.max_batch_size = max_batch_size
        self.timeout = timeout
        self.queue = Queue()
     

    async def infer(self, text: str) -&amp;gt; str:
        future = asyncio.get_event_loop().create_future()
        await self.queue.put((text, future))
        return await future
  
    async def process_batches(self):
        while True:
            batch = []
            futures = []
          
            # Wait for the first item
            text, future = await self.queue.get()
            batch.append(text)
            futures.append(future)
          
            # Try to collect more items within the timeout window
            try:
                while len(batch) &amp;lt; self.max_batch_size:
                    text, future = await wait_for(self.queue.get(), timeout=self.timeout)
                    batch.append(text)
                    futures.append(future)
            except asyncio.TimeoutError:
                pass
          
            # Process the whole batch at once
            try:
                results = self._run_inference_batch(batch)
                for future, result in zip(futures, results):
                    future.set_result(result)
            except Exception as e:
                for future in futures:
                    future.set_exception(e)   

    def _run_inference_batch(self, texts):
        with torch.no_grad():
            inputs = self.tokenizer(texts, return_tensors="pt", padding=True, truncation=True)
            outputs = self.model(**inputs)
            return outputs.logits.tolist()&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Step 3 — Set memory limits explicitly in your Container App to match what you expect at peak.&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Do not let the container use all available node memory and get killed unexpectedly. Set explicit limits that match your model's peak usage:&lt;/P&gt;
&lt;LI-CODE lang="bash"&gt;# For a model that uses 5.5 GB at peak, allocate 6 GB
az containerapp update 
  --name my-model-server 
  --resource-group my-rg 
  --cpu 2.0 
  --memory 4.0Gi&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Step 4 — Add memory monitoring to your health endpoint.&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Your readiness probe should check available memory and return 503 if memory pressure is too high, which will cause the load balancer to route traffic to other healthy replicas:&lt;/P&gt;
&lt;LI-CODE lang="python"&gt;import psutil

@app.get("/health/ready")
def readiness_probe():
    if not model_loaded:
        raise HTTPException(status_code=503, detail="Model not yet loaded")
   
    memory = psutil.virtual_memory()
    if memory.percent &amp;gt; 90:
        raise HTTPException(
            status_code=503,
            detail=f"Memory pressure too high: {memory.percent:.1f}% used"
        )
  
    return {
        "status": "ready",
        "memory_percent": memory.percent,
        "available_gb": memory.available / (1024**3)
    }&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H5&gt;Scenario 3: GPU Workloads Fail to Initialize&lt;/H5&gt;
&lt;H6&gt;&lt;STRONG&gt;What You See&lt;/STRONG&gt;&lt;/H6&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You deploy a container that uses PyTorch with CUDA support. The container starts, but you see errors like:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;CUDA error: no kernel image is available for execution on the device&lt;/P&gt;
&lt;P&gt;torch.cuda.is_available() returned False&lt;/P&gt;
&lt;P&gt;RuntimeError: CUDA out of memory. Tried to allocate 2.00 GiB&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Or the model silently falls back to CPU without telling you, and your inference times are 50x slower than expected.&lt;/P&gt;
&lt;H6&gt;&lt;STRONG&gt;Why This Happens&lt;/STRONG&gt;&lt;/H6&gt;
&lt;P&gt;Azure Container Apps supports GPU workloads through a dedicated GPU consumption plan and specialized GPU-enabled environments. If you deploy a CUDA-enabled container to a standard Container Apps environment (which uses CPU-only nodes), `torch.cuda.is_available()` returns `False` and PyTorch either errors out or silently falls back to CPU depending on how your code handles it.&lt;/P&gt;
&lt;P&gt;Even when you are in a GPU-enabled environment, CUDA version mismatches between the CUDA toolkit installed in your container image and the CUDA drivers on the host node will produce the "no kernel image" error.&lt;/P&gt;
&lt;H6&gt;&lt;STRONG&gt;Step-by-Step Fix&lt;/STRONG&gt;&lt;/H6&gt;
&lt;P&gt;&lt;STRONG&gt;Step 1 — Detect whether GPU is available and log it explicitly at startup.&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Never assume — always log the device your model is using:&lt;/P&gt;
&lt;LI-CODE lang="python"&gt;import torch
import logging
logger = logging.getLogger(__name__)

def initialize_device():
    if torch.cuda.is_available():
        device = torch.device("cuda")
        logger.info(f"Using GPU: {torch.cuda.get_device_name(0)}")
        logger.info(f"CUDA version: {torch.version.cuda}")
        logger.info(f"Available GPU memory: {torch.cuda.get_device_properties(0).total_memory / 1e9:.1f} GB")
    else:
        device = torch.device("cpu")
        logger.warning("GPU not available, falling back to CPU. Inference will be slower.")
    return device
device = initialize_device()
model = model.to(device)&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Step 2 — Match your CUDA toolkit version to the host driver.&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;The CUDA toolkit version in your image must be less than or equal to the CUDA driver version on the host. Use the official PyTorch images which bundle compatible CUDA versions:&lt;/P&gt;
&lt;LI-CODE lang="docker"&gt;# Use PyTorch's official image with a specific CUDA version
# Check Azure Container Apps GPU documentation for supported CUDA versions
FROM pytorch/pytorch:2.1.0-cuda11.8-cudnn8-runtime

WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

COPY . .
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8080"]&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Step 3 — Create your Container Apps environment with GPU support enabled.&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;GPU support requires a dedicated GPU workload profile in your Container Apps environment:&lt;/P&gt;
&lt;LI-CODE lang="bash"&gt;# Create an environment with GPU workload profil

az containerapp env create 
  --name my-gpu-env 
  --resource-group my-rg 
  --location eastus 
  --workload-profile-type "NC24-A100" 
  --workload-profile-name "gpu-profile"

# Deploy your app to the GPU profile
az containerapp create 
  --name my-model-server 
  --resource-group my-rg 
  --environment my-gpu-env 
  --image myregistry.azurecr.io/my-model-server:cuda11.8 
  --cpu 4.0 
  --memory 16.0Gi 
  --workload-profile-name "gpu-profile" 
  --min-replicas 1&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Step 4 — Handle the CPU fallback gracefully so you know when it happens.&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If you want your application to work on both GPU and CPU environments, implement a clean fallback that makes the degraded state visible in monitoring:&lt;/P&gt;
&lt;LI-CODE lang="python"&gt;import os
import torch

class ModelConfig:
    def __init__(self):
        self.force_cpu = os.environ.get("FORCE_CPU", "false").lower() == "true"
        self.device = self._select_device()
       
    def _select_device(self):
        if self.force_cpu:
            return torch.device("cpu")
       
        if torch.cuda.is_available():
            return torch.device("cuda")
      
        # GPU was expected but not found — emit a warning metric
        import warnings
        warnings.warn(
            "CUDA requested but not available. Running on CPU. "
            "Inference latency will be significantly higher.",
            RuntimeWarning
        )
        # Optionally: push a custom metric to Azure Monitor here
        return torch.device("cpu")
   
    @property
    def is_gpu(self):
        return self.device.type == "cuda"&lt;/LI-CODE&gt;
&lt;H3&gt;&amp;nbsp;Scenario 4: LangChain / AI Agent Timeouts at Startup&lt;/H3&gt;
&lt;H6&gt;&lt;STRONG&gt;What You See&lt;/STRONG&gt;&lt;/H6&gt;
&lt;P&gt;You deploy a LangChain-based agent or a RAG (Retrieval-Augmented Generation) pipeline to Container Apps. During startup, the application connects to Azure OpenAI, loads an embedding model, and populates an in-memory vector store. But the readiness probe times out while the vector store is being populated from a large document set.&lt;/P&gt;
&lt;H6&gt;&lt;STRONG&gt;Why This Happens&lt;/STRONG&gt;&lt;/H6&gt;
&lt;P&gt;LangChain applications often do expensive work at startup — embedding thousands of documents, pre-populating vector indexes, or loading conversation history from a database. This work happens synchronously in many LangChain components, blocking the main thread and preventing the HTTP server from responding to health probes.&lt;/P&gt;
&lt;H6&gt;&lt;STRONG&gt;Step-by-Step Fix&lt;/STRONG&gt;&lt;/H6&gt;
&lt;P&gt;&lt;STRONG&gt;Step 1 — Move initialization work to a background task that runs after the HTTP server is up&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="python"&gt;from fastapi import FastAPI
from contextlib import asynccontextmanager
import asyncio
import logging

logger = logging.getLogger(__name__)
vector_store = None
initialization_complete = False
initialization_error = None

@asynccontextmanager
async def lifespan(app: FastAPI):
    global initialization_complete, initialization_error   

    # Start the heavy initialization in the background
    task = asyncio.create_task(initialize_vector_store())   

    yield  # Server starts and begins serving health probe requests  

    # Cleanup
    task.cancel()

app = FastAPI(lifespan=lifespan)

async def initialize_vector_store():
    global vector_store, initialization_complete, initialization_error
    try:
        logger.info("Starting vector store initialization...")      

        # Run CPU-bound work in a thread pool so we don't block the event loop
        loop = asyncio.get_event_loop()
        vector_store = await loop.run_in_executor(None, _build_vector_store)       

        initialization_complete = True
        logger.info("Vector store initialization complete")
    except Exception as e:
        initialization_error = str(e)
        logger.error(f"Vector store initialization failed: {e}", exc_info=True)

def _build_vector_store():
    from langchain_community.vectorstores import FAISS
    from langchain_openai import AzureOpenAIEmbeddings
    from langchain_community.document_loaders import DirectoryLoader  

    loader = DirectoryLoader("/app/documents")
    documents = loader.load()   

    embeddings = AzureOpenAIEmbeddings(
        azure_deployment=os.environ["AZURE_OPENAI_EMBEDDING_DEPLOYMENT"],
        azure_endpoint=os.environ["AZURE_OPENAI_ENDPOINT"],
        api_key=os.environ["AZURE_OPENAI_API_KEY"]
    )
   
    return FAISS.from_documents(documents, embeddings)

@app.get("/health/ready")
def readiness():
    if initialization_error:
        raise HTTPException(status_code=500, detail=f"Initialization failed: {initialization_error}")
    if not initialization_complete:
        raise HTTPException(status_code=503, detail="Initializing vector store, please wait...")
    return {"status": "ready"}&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Step 2 — Use Azure AI Search instead of an in-memory vector store for large document sets.&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In-memory vector stores like FAISS are fine for development but become a liability in production Container Apps because the index is lost every time the container restarts, and rebuilding it adds minutes to your startup time. Azure AI Search persists the index and provides near-instant load times:&lt;/P&gt;
&lt;LI-CODE lang="python"&gt;from langchain_community.vectorstores.azuresearch import AzureSearch
from langchain_openai import AzureOpenAIEmbeddings

embeddings = AzureOpenAIEmbeddings(
    azure_deployment=os.environ["AZURE_OPENAI_EMBEDDING_DEPLOYMENT"],
    azure_endpoint=os.environ["AZURE_OPENAI_ENDPOINT"],
    api_key=os.environ["AZURE_OPENAI_API_KEY"]
)

# The index already exists in Azure AI Search — no rebuild needed on startup
vector_store = AzureSearch(
    azure_search_endpoint=os.environ["AZURE_SEARCH_ENDPOINT"],
    azure_search_key=os.environ["AZURE_SEARCH_KEY"],
    index_name="my-document-index",
    embedding_function=embeddings.embed_query
)

# This is nearly instantaneous — just connects to the existing index
initialization_complete = True&lt;/LI-CODE&gt;
&lt;H3&gt;Debugging AI Workload Logs in Log Analytics&lt;/H3&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;When something goes wrong with your AI workload, these Log Analytics queries will help you quickly identify the pattern:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="kusto"&gt;// Find all OOM kills in the last 24 hours
ContainerAppSystemLogs_CL
| where TimeGenerated &amp;gt; ago(24h)
| where Log_s contains "OOMKilled" or ExitCode_d == 137
| project TimeGenerated, ContainerAppName_s, Log_s, ExitCode_d
| order by TimeGenerated desc&lt;/LI-CODE&gt;&lt;LI-CODE lang="kusto"&gt;// Track model loading time across restarts
ContainerAppConsoleLogs_CL
| where ContainerAppName_s == "my-model-server"
| where Log_s contains "Model loaded" or Log_s contains "Starting model load"
| project TimeGenerated, Log_s, ContainerName_s
| order by TimeGenerated asc&lt;/LI-CODE&gt;&lt;LI-CODE lang="kusto"&gt;// Find slow inference requests (if you are logging inference latency)
ContainerAppConsoleLogs_CL
| where ContainerAppName_s == "my-model-server"
| where Log_s contains "inference_latency_ms"
| extend latency = toint(extract("inference_latency_ms=([0-9]+)", 1, Log_s))
| where latency &amp;gt; 5000    // Requests taking more than 5 seconds
| project TimeGenerated, latency, Log_s
| order by latency desc&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;&amp;nbsp;Summary: AI Workload Startup Checklist&lt;/H3&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;When your AI workload fails to start or behaves unexpectedly, work through this checklist:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;- Is the model loading time covered by an appropriate startup probe `failureThreshold`?&lt;/P&gt;
&lt;P&gt;- Are model weights baked into the image or pre-loaded onto a mounted volume, rather than downloaded at runtime?&lt;/P&gt;
&lt;P&gt;- Is the container's memory limit large enough for peak inference load (model size + activation memory)?&lt;/P&gt;
&lt;P&gt;- Have you verified whether the workload is running on GPU or CPU and logged that explicitly at startup?&lt;/P&gt;
&lt;P&gt;- Does the CUDA version in your image match or precede the driver version on the host?&lt;/P&gt;
&lt;P&gt;- For LangChain or RAG workloads, does initialization happen in the background so health probes can respond?&lt;/P&gt;
&lt;P&gt;- Are you using a persistent vector store (Azure AI Search, Azure Cosmos DB) instead of rebuilding in-memory indexes on every restart?&lt;/P&gt;
&lt;H3&gt;References and Sample Resources&lt;/H3&gt;
&lt;P&gt;Use these links alongside the scenarios above to go deeper on configuration details and production patterns.&lt;/P&gt;
&lt;H6&gt;&lt;STRONG&gt;Azure Container Apps docs (core)&lt;/STRONG&gt;&lt;/H6&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A class="lia-external-url" href="https://learn.microsoft.com/azure/container-apps/health-probes" target="_blank"&gt;Health probes in Azure Container Apps&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A class="lia-external-url" href="https://learn.microsoft.com/azure/container-apps/workload-profiles-overview" target="_blank"&gt;Workload profiles overview (Consumption, Dedicated, Memory-optimized, GPU)&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A class="lia-external-url" href="https://learn.microsoft.com/azure/container-apps/gpu-serverless-overview" target="_blank"&gt;Serverless GPU overview and supported regions&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A class="lia-external-url" href="https://learn.microsoft.com/azure/container-apps/jobs" target="_blank"&gt;Azure Container Apps Jobs (for preloading models or maintenance tasks)&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A class="lia-external-url" href="https://learn.microsoft.com/azure/container-apps/log-options" target="_blank"&gt;Monitoring and logging options in Azure Container Apps&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;H6&gt;&lt;STRONG&gt;AI-specific docs&lt;/STRONG&gt;&lt;/H6&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A class="lia-external-url" href="https://learn.microsoft.com/azure/container-apps/ai-integration" target="_blank"&gt;AI integration with Azure Container Apps&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A class="lia-external-url" href="https://learn.microsoft.com/azure/container-apps/sessions-tutorial-langchain" target="_blank"&gt;LangChain tutorial with Container Apps dynamic sessions&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A class="lia-external-url" href="https://learn.microsoft.com/azure/search/vector-search-overview" target="_blank"&gt;Azure AI Search vector search overview&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A class="lia-external-url" href="https://learn.microsoft.com/azure/ai-services/openai/quickstart?pivots=programming-language-python" target="_blank"&gt;Azure OpenAI with Python quickstart&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;H6&gt;&lt;STRONG&gt;Official sample repositories&lt;/STRONG&gt;&lt;/H6&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A class="lia-external-url" href="https://github.com/Azure-Samples/container-apps-openai" target="_blank"&gt;Chat app with Azure OpenAI on Container Apps&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A class="lia-external-url" href="https://github.com/Azure-Samples/azure-container-apps-ai-mcp" target="_blank"&gt;AI MCP server sample on Container Apps&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A class="lia-external-url" href="https://github.com/Azure-Samples/openai-mcp-agent-dotnet" target="_blank"&gt;.NET MCP agent app (client/server pattern on Container Apps)&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A class="lia-external-url" href="https://github.com/Azure-Samples/mcp-container-ts" target="_blank"&gt;TypeScript MCP container sample&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A class="lia-external-url" href="https://github.com/Azure-Samples/aca-python-code-interpreter-session" target="_blank"&gt;Python code interpreter dynamic session sample&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;H6&gt;&lt;STRONG&gt;ML runtime and model-loading references&lt;/STRONG&gt;&lt;/H6&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A class="lia-external-url" href="https://pytorch.org/docs/stable/notes/cuda.html" target="_blank"&gt;PyTorch CUDA notes and best practices&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A class="lia-external-url" href="https://huggingface.co/docs/transformers/main_classes/model" target="_blank"&gt;Hugging Face Transformers loading models from local/Hub paths&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A class="lia-external-url" href="https://huggingface.co/docs/transformers/quantization/bitsandbytes" target="_blank"&gt;bitsandbytes quantization guide&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3&gt;What's Next&lt;/H3&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In the final part of this series, we step back from reactive troubleshooting and look at how to build a proactive observability and automation layer so that you catch these problems before your users do — or better yet, have them resolve themselves automatically.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Part of the series: Troubleshooting Azure Container Apps in Production&lt;/P&gt;
&lt;P&gt;Next: Part 4 — Eyes Open, Hands Free: Automating Observability, Alerts, and Self-Healing Diagnostics for Azure Container Apps&lt;/P&gt;</description>
      <pubDate>Fri, 12 Jun 2026 07:00:00 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-developer-community/troubleshooting-ml-model-loading-gpu-issues-and-memory-pressure/ba-p/4518542</guid>
      <dc:creator>BhaktiRath95</dc:creator>
      <dc:date>2026-06-12T07:00:00Z</dc:date>
    </item>
  </channel>
</rss>

