{"id":5473,"date":"2026-06-03T09:07:28","date_gmt":"2026-06-03T16:07:28","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/agent-framework\/?p=5473"},"modified":"2026-06-03T09:07:28","modified_gmt":"2026-06-03T16:07:28","slug":"microsoft-agent-framework-at-build-2026-announce","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/agent-framework\/microsoft-agent-framework-at-build-2026-announce\/","title":{"rendered":"Microsoft Agent Framework at BUILD 2026: Agent Harness, Hosted Agents, CodeAct, and more"},"content":{"rendered":"<h1>Microsoft Agent Framework at BUILD 2026: Agent Harness, Hosted Agents, CodeAct, and more<\/h1>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/agent-framework\/wp-content\/uploads\/sites\/78\/2026\/05\/Screenshot-2026-05-30-222939.webp\"><img decoding=\"async\" class=\"alignnone wp-image-5477\" src=\"https:\/\/devblogs.microsoft.com\/agent-framework\/wp-content\/uploads\/sites\/78\/2026\/05\/Screenshot-2026-05-30-222939-300x125.webp\" alt=\"Screenshot 2026 05 30 222939 image\" width=\"629\" height=\"262\" srcset=\"https:\/\/devblogs.microsoft.com\/agent-framework\/wp-content\/uploads\/sites\/78\/2026\/05\/Screenshot-2026-05-30-222939-300x125.webp 300w, https:\/\/devblogs.microsoft.com\/agent-framework\/wp-content\/uploads\/sites\/78\/2026\/05\/Screenshot-2026-05-30-222939-1024x426.webp 1024w, https:\/\/devblogs.microsoft.com\/agent-framework\/wp-content\/uploads\/sites\/78\/2026\/05\/Screenshot-2026-05-30-222939-768x319.webp 768w, https:\/\/devblogs.microsoft.com\/agent-framework\/wp-content\/uploads\/sites\/78\/2026\/05\/Screenshot-2026-05-30-222939-1536x639.webp 1536w, https:\/\/devblogs.microsoft.com\/agent-framework\/wp-content\/uploads\/sites\/78\/2026\/05\/Screenshot-2026-05-30-222939.webp 1756w\" sizes=\"(max-width: 629px) 100vw, 629px\" \/><\/a><\/p>\n<p><a href=\"https:\/\/build.microsoft.com\/\">BUILD 2026<\/a> is underway, and the Microsoft Agent Framework team have a round-up of exciting announcements! Microsoft Agent Framework (MAF) is our open-source SDK and runtime for building AI agents and multi-agent workflows, with the same concepts and APIs across .NET and Python. It gives you a clean programming model &#8211; chat clients, tools, MCP integrations, context providers, middleware, and multi-step workflows &#8211; so you can focus on agent logic instead of plumbing. MAF reached <strong>1.0 GA on April 2, 2026<\/strong>, bringing the convergence of AutoGen and Semantic Kernel into a single, supported platform. Everything below builds on that 1.0 foundation.<\/p>\n<h2>What&#8217;s new<\/h2>\n<h3>Agent Harness: production patterns, built in<\/h3>\n<p>The <em>agent harness<\/em> is the layer where model reasoning meets real execution: shell and filesystem access, human-in-the-loop approval flows, and context management across long-running sessions. With MAF, these patterns are now first-class and consistently built in from the get-go. Agent harness extensions turn any chat client into a fully-featured Agent Harness using a single method.<\/p>\n<p>These building blocks ship in the harness:<\/p>\n<ul>\n<li><strong>Automatic context compaction:<\/strong> monitors token usage and compacts chat history mid-loop to prevent context window overflow during long tool-calling chains<\/li>\n<li><strong>Built-in default instructions and instruction merging:<\/strong> ships with opinionated system instructions for task breakdown, tool usage, and reasoning patterns<\/li>\n<li><strong>Instruction merging:<\/strong> harness instructions appear first, then your custom agent instructions<\/li>\n<\/ul>\n<p>Built-in Providers and tools:<\/p>\n<ul>\n<li><strong>FileMemoryProvider<\/strong>: session-scoped file-based memory so the agent can persist notes\/learnings across turns; stored in <code>agent-file-memory\/{session}\/<\/code><\/li>\n<li><strong>FileAccessProvider:\u00a0<\/strong>general file access so that the agent can access and change any files it needs to operate on<\/li>\n<li><strong>TodoProvider: <\/strong>lets the agent track work items (add, complete, remove, list) in session state for multi-step task management<\/li>\n<li><strong>AgentModeProvider:<\/strong>\u00a0supports &#8220;plan&#8221; vs &#8220;execute&#8221; operating modes so the agent can separate planning from action<\/li>\n<li><strong>AgentSkillsProvider:<\/strong>\u00a0skill discovery and execution from the file system, enabling modular capability injection<\/li>\n<li><strong>BackgroundAgentsProvider:<\/strong> delegate subtasks to child agents running in parallel for fan-out orchestration<\/li>\n<li><strong>Web search:<\/strong>\u00a0hosted web search tool out of the box (disable with <code>DisableWebSearch<\/code>)<\/li>\n<li><strong>Shell execution<\/strong> (.NET only): run shell commands via a sandboxed <code>ShellExecutor<\/code><\/li>\n<\/ul>\n<p>Middleware and customization:<\/p>\n<ul>\n<li><strong>ToolApprovalAgent:<\/strong> &#8220;don&#8217;t ask again&#8221; approval rules for sensitive tool calls<\/li>\n<li><strong>OpenTelemetryAgent:<\/strong> automatic opent telemetry Semantic Conventions tracing<\/li>\n<li><strong>Pluggable storage backends:<\/strong>\u00a0swap <code>FileMemoryStore<\/code>\u00a0and\u00a0<code>FileAccessStore<\/code>\u00a0with any\u00a0<code>AgentFileStore<\/code>\u00a0implementation (file system, blob storage, etc.)<code><\/code><\/li>\n<\/ul>\n<div class=\"value\">\n<div class=\"chat-markdown-part rendered-markdown\"><\/div>\n<\/div>\n<div class=\"chat-footer-toolbar\">\n<div class=\"monaco-toolbar\">\n<div class=\"monaco-action-bar\">Example in .NET:<\/div>\n<\/div>\n<\/div>\n<pre class=\"prettyprint language-cs language-csharp\"><code class=\"language-cs language-csharp\">AIAgent agent =\r\n    chatClient.AsHarnessAgent(MaxContextWindowTokens, MaxOutputTokens, new HarnessAgentOptions\r\n    {\r\n        Name = \"BlogWriterAgent\",\r\n        Description = \"A blog writing assistant that researches a topic, plans an outline, and drafts a blog post.\",\r\n        FileMemoryStore = new FileSystemAgentFileStore(Path.Combine(AppContext.BaseDirectory, \"artifacts\")),\r\n        ChatOptions = new ChatOptions\r\n        {\r\n            Instructions = instructions,\r\n            Tools =\r\n            [\r\n                new WebBrowsingTool(),\r\n            ],\r\n        },\r\n    });\r\n\r\n\/\/ Run the interactive console session using the shared HarnessConsole helper.\r\nawait HarnessConsole.RunAgentAsync(\r\n    agent,\r\n    userPrompt: \"Enter a blog topic to get started.\",\r\n    new HarnessConsoleOptions\r\n    {\r\n        Observers = [\r\n            new OpenAIResponsesWebSearchDisplayObserver(),\r\n            new OpenAIResponsesErrorObserver()\r\n        ]\r\n        CommandHandlers = HarnessConsoleOptions.BuildDefaultCommandHandlers(agent),\r\n    });\r\n<\/code><\/pre>\n<p>Example in python:<\/p>\n<pre class=\"prettyprint language-py\"><code class=\"language-py\"># Create a harness agent with research-specific instructions.\r\n# All other features (todo, mode, compaction, skills, telemetry, web search) are\r\n# automatically configured with sensible defaults.\r\nagent = create_harness_agent(\r\n    client=client,\r\n    max_context_window_tokens=128_000,\r\n    max_output_tokens=16_384,\r\n    name=\"ResearchAgent\",\r\n    description=\"A research assistant that plans and executes research tasks.\",\r\n    agent_instructions=RESEARCH_INSTRUCTIONS,\r\n)<\/code><\/pre>\n<p><strong>Learn more:<\/strong> <a href=\"https:\/\/devblogs.microsoft.com\/agent-framework\/agent-harness-in-agent-framework\/\">Agent Harness in Agent Framework<\/a> \u00b7 <a href=\"https:\/\/github.com\/microsoft\/agent-framework\/tree\/main\/dotnet\/samples\/02-agents\/Harness\">Harness samples on GitHub<\/a><\/p>\n<h3>Foundry Hosted Agents: from local to production<\/h3>\n<p>Once your MAF agent runs locally, the next question is how to deploy, monitor, evaluate, and version it. <strong>Hosted Agents in Foundry Agent Service<\/strong> is the easiest way to give that agent a production home with your own code, packaged as a container and deployed onto Foundry-managed infrastructure, with built-in identity, automatic scaling, managed session state, observability, and versioning.<\/p>\n<p>What you get out of the box:<\/p>\n<ul>\n<li><strong>Scale to zero<\/strong>, pay nothing while the agent is idle; it scales back up on the next request.<\/li>\n<li><strong>Resume with filesystem intact<\/strong>, files, disk state, and session identity persist across scale-to-zero, so the agent restarts exactly where it left off.<\/li>\n<li><strong>Per-session isolation<\/strong>, every session gets its own VM-isolated sandbox with persistent state.<\/li>\n<li><strong>Built-in observability<\/strong>, MAF&#8217;s OpenTelemetry traces flow into Application Insights with zero extra wiring.<\/li>\n<\/ul>\n<p>Turning a local agent into a hosted agent takes only a few lines. In .NET:<\/p>\n<pre class=\"prettyprint language-cs language-csharp\"><code class=\"language-cs language-csharp\">using Microsoft.Agents.AI.Foundry.Hosting;\r\n\r\nvar builder = WebApplication.CreateBuilder(args);\r\nbuilder.Services.AddFoundryResponses(agent);\r\n\r\nvar app = builder.Build();\r\napp.MapFoundryResponses();\r\n\r\napp.Run();<\/code><\/pre>\n<p>And in Python:<\/p>\n<pre class=\"prettyprint language-py\"><code class=\"language-py\">server = ResponsesHostServer(agent)\r\n\r\nserver.run()<\/code><\/pre>\n<p><strong>Learn more:<\/strong> <a href=\"https:\/\/devblogs.microsoft.com\/agent-framework\/from-local-to-production-deploy-your-microsoft-agent-framework-agent-with-foundry-hosted-agents\/\">From Local to Production with Foundry Hosted Agents<\/a> \u00b7 <a href=\"https:\/\/github.com\/microsoft\/agent-framework\/tree\/main\/dotnet\/samples\/04-hosting\/FoundryHostedAgents\">.NET samples<\/a> \u00b7 <a href=\"https:\/\/github.com\/microsoft\/agent-framework\/tree\/main\/python\/samples\/04-hosting\/foundry-hosted-agents\">Python samples<\/a><\/p>\n<h3>CodeAct: faster agents with fewer model turns<\/h3>\n<p>Many agents aren&#8217;t bottlenecked by model quality, they&#8217;re bottlenecked by orchestration overhead. When an agent chains together many small tool calls, each step is a separate model turn, driving up latency and token usage.<\/p>\n<p><strong>CodeAct<\/strong> collapses that loop. Instead of choosing a tool, waiting, and choosing the next one, the model writes a single short Python program that calls your tools via call_tool(&#8230;), runs it once in a sandbox, and returns a consolidated result. CodeAct ships in the new agent-framework-hyperlight (alpha) package, which runs the model-generated code in a fresh, locally isolated <a href=\"https:\/\/github.com\/hyperlight-dev\/hyperlight\">Hyperlight<\/a> micro-VM per call, so strong isolation is essentially free at the granularity of a single tool call.<\/p>\n<p>Wiring it in is a one-line change to how your tools are registered:<\/p>\n<pre class=\"prettyprint language-py\"><code class=\"language-py\">from agent_framework import Agent, tool\r\nfrom agent_framework_hyperlight import HyperlightCodeActProvider\r\n\r\n@tool\r\ndef get_weather(city: str) -&gt; dict[str, float | str]:\r\n\u00a0\u00a0\u00a0 \"\"\"Return the current weather for a city.\"\"\"\r\n\u00a0\u00a0\u00a0 return {\"city\": city, \"temperature_c\": 21.5, \"conditions\": \"partly cloudy\"}\r\n\r\ncodeact = HyperlightCodeActProvider(\r\n\u00a0\u00a0\u00a0 tools=[get_weather],\r\n\u00a0\u00a0\u00a0 approval_mode=\"never_require\",\r\n)\r\n\r\nagent = Agent(\r\n\u00a0\u00a0\u00a0 client=client,\r\n\u00a0\u00a0\u00a0 name=\"CodeActAgent\",\r\n\u00a0\u00a0\u00a0 instructions=\"You are a helpful assistant.\",\r\n\u00a0\u00a0\u00a0 context_providers=[codeact],\r\n)\r\n\r\nresult = await agent.run(\r\n\u00a0\u00a0\u00a0 \"Get the weather for Seattle and Amsterdam and compare them.\"\r\n)<\/code><\/pre>\n<p>On a representative multi-step workload (computing order totals across many users, dozens of tool calls), the difference is significant:<\/p>\n<table width=\"0\">\n<tbody>\n<tr>\n<td>Wiring<\/td>\n<td>Time<\/td>\n<td>Tokens<\/td>\n<\/tr>\n<tr>\n<td>Traditional<\/td>\n<td>27.81s<\/td>\n<td>6,890<\/td>\n<\/tr>\n<tr>\n<td>CodeAct<\/td>\n<td>13.23s<\/td>\n<td>2,489<\/td>\n<\/tr>\n<tr>\n<td><strong>Improvement<\/strong><\/td>\n<td><strong>52.4%<\/strong><\/td>\n<td><strong>63.9%<\/strong><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong>Learn more:<\/strong> <a href=\"https:\/\/devblogs.microsoft.com\/agent-framework\/codeact-with-hyperlight\/\">CodeAct in Agent Framework<\/a> \u00b7 <a href=\"https:\/\/github.com\/microsoft\/agent-framework\/tree\/main\/python\/packages\/hyperlight\">Hyperlight package<\/a> \u00b7 <a href=\"https:\/\/github.com\/microsoft\/agent-framework\/blob\/main\/python\/packages\/hyperlight\/samples\/codeact_benchmark.py\">Benchmark sample<\/a><\/p>\n<h2>Also reaching 1.0<\/h2>\n<p>The features in Microsoft Agent Framework are graduating from preview to release:<\/p>\n<h3>GitHub Copilot SDK integration<\/h3>\n<p>MAF now supports building agents on the <a href=\"https:\/\/github.com\/github\/copilot-sdk\">GitHub Copilot SDK<\/a> as a backend, bringing Copilot&#8217;s coding-oriented capabilities \u00a0(shell execution, file operations, URL fetching, and MCP server integration) into the standard MAF programming model.<\/p>\n<p>Python:<\/p>\n<pre class=\"prettyprint language-py\"><code class=\"language-py\">\r\nimport asyncio\r\nfrom agent_framework.github import GitHubCopilotAgent\r\n\r\nasync def basic_example():\r\n\u00a0\u00a0\u00a0 agent = GitHubCopilotAgent(\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 default_options={\"instructions\": \"You are a helpful assistant.\"},\r\n\u00a0\u00a0\u00a0 )\r\n\r\n\u00a0\u00a0\u00a0 async with agent:\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 result = await agent.run(\"What is Microsoft Agent Framework?\")\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 print(result)<\/code><\/pre>\n<p>.NET:<\/p>\n<pre class=\"prettyprint language-cs language-csharp\"><code class=\"language-cs language-csharp\">using GitHub.Copilot.SDK;\r\nusing Microsoft.Agents.AI;\r\n\r\nawait using CopilotClient copilotClient = new();\r\nawait copilotClient.StartAsync();\r\n\r\nAIAgent agent = copilotClient.AsAIAgent();\r\n\r\nConsole.WriteLine(await agent.RunAsync(\"What is Microsoft Agent Framework?\"));<\/code><\/pre>\n<p>The Copilot agent is a standard MAF agent, so it supports tools, instructions, streaming, sessions, MCP servers, and built-in OpenTelemetry observability.<\/p>\n<p><strong>Learn more:<\/strong> <a href=\"https:\/\/learn.microsoft.com\/en-us\/agent-framework\/agents\/providers\/github-copilot\">GitHub Copilot provider docs<\/a><\/p>\n<h3>Multi-agent orchestration: the Handoff pattern<\/h3>\n<p>Multi-agent systems often start as a router that forwards to a specialist, and sometimes break the first time an agent needs a follow-up question, more context from a peer, or realizes mid-turn that the request belongs elsewhere. <strong>Handoff orchestration<\/strong> is built for exactly that: you declare the agents and the directed edges between them, and the framework injects the handoff tools each agent uses to transfer control. Topology and guardrails stay with the developer; routing decisions stay with the agents.<\/p>\n<p>csharp<\/p>\n<pre class=\"prettyprint language-cs language-csharp\"><code class=\"language-cs language-csharp\">using Microsoft.Agents.AI;\r\nusing Microsoft.Agents.AI.Workflows;\r\n\r\nAIAgent triage = chatClient.AsAIAgent(\r\n\u00a0\u00a0\u00a0 instructions: \"You receive a user request and route it to the right specialist.\",\r\n\u00a0\u00a0\u00a0 name: \"Triage\");\r\n\r\nAIAgent billing = chatClient.AsAIAgent(\r\n\u00a0\u00a0\u00a0 instructions: \"You handle billing questions.\", name: \"Billing\");\r\n\r\nAIAgent tech = chatClient.AsAIAgent(\r\n\u00a0\u00a0\u00a0 instructions: \"You handle technical support questions.\", name: \"Tech\");\r\n\r\nWorkflow workflow = AgentWorkflowBuilder\r\n\u00a0\u00a0\u00a0 .CreateHandoffBuilderWith(triage)\r\n\u00a0\u00a0\u00a0 .WithHandoff(triage, billing)\r\n\u00a0\u00a0\u00a0 .WithHandoff(triage, tech)\r\n\u00a0\u00a0\u00a0 .Build();<\/code><\/pre>\n<p>The same graph in Python:<\/p>\n<pre class=\"prettyprint language-py\"><code class=\"language-py\">from agent_framework_orchestrations import HandoffBuilder\r\n\r\nworkflow = (\r\n\u00a0\u00a0\u00a0 HandoffBuilder(participants=[triage, billing, tech])\r\n\u00a0\u00a0\u00a0 .with_start_agent(triage)\r\n\u00a0\u00a0\u00a0 .add_handoff(triage, [billing, tech])\r\n\u00a0\u00a0\u00a0 .build()\r\n)<\/code><\/pre>\n<p><strong>Learn more:<\/strong> <a href=\"https:\/\/devblogs.microsoft.com\/agent-framework\/a-tour-of-handoff-orchestration-pattern\/\">A Tour of the Handoff Orchestration Pattern<\/a><\/p>\n<h2>See us at BUILD<\/h2>\n<p>Come find the team at the <strong>Foundry booths and sessions<\/strong> at BUILD. Bring your agents and your questions!<\/p>\n<p>Can&#8217;t make it in person? Watch online. Sessions featuring Microsoft Agent Framework:<\/p>\n<ul>\n<li><strong>BRK243: <\/strong><a href=\"https:\/\/build.microsoft.com\/en-US\/sessions\/BRK243?source=sessions\"><strong>Claw and agent harness in Microsoft Foundry<\/strong><\/a><\/li>\n<li><strong>BRK 241: <\/strong><a href=\"https:\/\/build.microsoft.com\/en-US\/sessions\/BRK241?source=sessions\"><strong>From prototype to production: build and run agents at scale<\/strong><\/a><\/li>\n<li><strong>DEM361: <\/strong><a href=\"https:\/\/build.microsoft.com\/en-US\/sessions\/DEM361?source=sessions\"><strong>Understand and fix Agent Framework apps with observability and evals<\/strong><\/a><\/li>\n<li><strong>DEM333: <\/strong><a href=\"https:\/\/build.microsoft.com\/en-US\/sessions\/DEM333?source=sessions\"><strong>How Foundry integrates with open-source frameworks and tools<\/strong><\/a><\/li>\n<li><strong>DEM312: <\/strong><a href=\"https:\/\/build.microsoft.com\/en-US\/sessions\/DEM312?source=sessions\"><strong>Multi-agents in action with 3 AI agents, 3 frameworks, tools &amp; models<\/strong><\/a><\/li>\n<li><strong>BRK250: <\/strong><a href=\"https:\/\/build.microsoft.com\/en-US\/sessions\/BRK250?source=sessions\"><strong>Observe and control agents across any framework with open source tools<\/strong><\/a><\/li>\n<\/ul>\n<p>If you&#8217;ve enjoyed building with Agent Framework, give us a star on <a href=\"https:\/\/github.com\/microsoft\/agent-framework\">GitHub<\/a> and share feedback in our <a href=\"https:\/\/github.com\/microsoft\/agent-framework\/discussions\">Discussions<\/a>. We can&#8217;t wait to see what you build. <a href=\"https:\/\/github.com\/microsoft\/agent-framework\">Download the SDK on GitHub<\/a>, <a href=\"https:\/\/learn.microsoft.com\/en-us\/agent-framework\/\">read the documentation<\/a>, <a href=\"https:\/\/devblogs.microsoft.com\/agent-framework\/\">visit the developer blog<\/a>, or <a href=\"https:\/\/discordapp.com\/channels\/1113626258182504448\/1422947050441543861\">join the Discord<\/a>.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Microsoft Agent Framework at BUILD 2026: Agent Harness, Hosted Agents, CodeAct, and more BUILD 2026 is underway, and the Microsoft Agent Framework team have a round-up of exciting announcements! Microsoft Agent Framework (MAF) is our open-source SDK and runtime for building AI agents and multi-agent workflows, with the same concepts and APIs across .NET and [&hellip;]<\/p>\n","protected":false},"author":173663,"featured_media":5048,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[143],"tags":[],"class_list":["post-5473","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-agent-framework"],"acf":[],"blog_post_summary":"<p>Microsoft Agent Framework at BUILD 2026: Agent Harness, Hosted Agents, CodeAct, and more BUILD 2026 is underway, and the Microsoft Agent Framework team have a round-up of exciting announcements! Microsoft Agent Framework (MAF) is our open-source SDK and runtime for building AI agents and multi-agent workflows, with the same concepts and APIs across .NET and [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/agent-framework\/wp-json\/wp\/v2\/posts\/5473","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/agent-framework\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/agent-framework\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/agent-framework\/wp-json\/wp\/v2\/users\/173663"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/agent-framework\/wp-json\/wp\/v2\/comments?post=5473"}],"version-history":[{"count":1,"href":"https:\/\/devblogs.microsoft.com\/agent-framework\/wp-json\/wp\/v2\/posts\/5473\/revisions"}],"predecessor-version":[{"id":5489,"href":"https:\/\/devblogs.microsoft.com\/agent-framework\/wp-json\/wp\/v2\/posts\/5473\/revisions\/5489"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/agent-framework\/wp-json\/wp\/v2\/media\/5048"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/agent-framework\/wp-json\/wp\/v2\/media?parent=5473"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/agent-framework\/wp-json\/wp\/v2\/categories?post=5473"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/agent-framework\/wp-json\/wp\/v2\/tags?post=5473"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}