{"id":2390,"date":"2026-06-03T09:00:15","date_gmt":"2026-06-03T16:00:15","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/foundry\/?p=2390"},"modified":"2026-06-03T10:14:15","modified_gmt":"2026-06-03T17:14:15","slug":"toolbox-build-26","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/foundry\/toolbox-build-26\/","title":{"rendered":"Discovery to Execution: Scaling Agents with Toolboxes and Routines in Microsoft Foundry"},"content":{"rendered":"<p>Tooling doesn\u2019t break at a small scale\u2014it breaks when teams move to production. AI adoption accelerates, so does the number of tools available to them. Discovering, managing and securing the right tools has quickly become one of the biggest challenges in building production-grade agents. Today, we are announcing new capabilities in Toolboxes in Foundry:<\/p>\n<ul>\n<li><strong>Skills <\/strong>(preview): Create, version, and manage reusable capabilities in a project-scoped catalog and expose them through Toolbox. Agents can discover and use these, making shared capabilities as easy to use as any tool.<\/li>\n<li><strong>Work IQ<\/strong> (preview) and <strong>Fabric IQ<\/strong>\u00a0(preview): Connect your agents directly to enterprise data and reasoning systems, so they can operate with real business context\u2014without custom integrations.<\/li>\n<li><strong><a href=\"https:\/\/techcommunity.microsoft.com\/blog\/azure-ai-foundry-blog\/introducing-the-new-browser-automation-tool-with-toolboxes-in-foundry\/4522790\">Browser Automation<\/a><\/strong> (preview): Bring Model Context Protocol (MCP)-native web automation to hosted agents using Playwright workspaces. It gives teams a faster path from idea to execution, with live visibility and control when workflows hit edge cases\u2014so agents can reliably automate complex web tasks.<\/li>\n<li><strong>Tool Search <\/strong>(preview): As your toolbox grows, sending every tool definition on every turn gets expensive. Tool Search retrieves only the most relevant tools at runtime, keeping the model&#8217;s context focused and efficient.<\/li>\n<\/ul>\n<p>Most of the capabilities in this post are delivered through\u00a0<strong>Toolboxes<\/strong>\u00a0in Foundry\u2014the layer where agents discover, access, and use tools at runtime.\u00a0<strong>Routines<\/strong> (preview) is the exception: it\u2019s part of <strong>Foundry Agent Service<\/strong>\u00a0and handles\u00a0<strong>agent run control<\/strong>, so you can define when an agent should execute and let Foundry reliably queue, run, and track those executions at scale.<\/p>\n<p><iframe title=\"Demo video of Fibey agent using Toolboxes in Microsoft Foundry\" width=\"500\" height=\"375\" src=\"https:\/\/www.youtube.com\/embed\/Gd5QHgTtecQ?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/p>\n<h4>Discover &#8211; Intent Based Tool discovery with Tool Search (preview)<\/h4>\n<h3><iframe title=\"YouTube video player\" src=\"https:\/\/www.youtube.com\/embed\/7bBvmifVMew?si=H1-alyAjVRaVehPi\" width=\"560\" height=\"315\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\" data-mce-fragment=\"1\"><\/iframe><\/h3>\n<p>At the core of scaling agents is tool discovery at scale.\u00a0<a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/foundry\/agents\/how-to\/tools\/tool-search\">Tool search<\/a>\u00a0is designed to solve this challenge. In production, toolboxes grow fast. A toolbox with 5 tools can quickly become 50 or 200 as teams add edge cases, integrations, and partner APIs.\u00a0Without tool search, every tool definition is sent to the model on every turn, creating three problems:<\/p>\n<ul>\n<li><strong>Cost scales with tool count:<\/strong>\u00a0Every definition adds input tokens. At 200 tools, you pay for thousands of schema tokens on every turn, whether the model uses them or not.<b><\/b><\/li>\n<li><b><span data-contrast=\"auto\">Context gets crowded:<\/span><\/b><span data-contrast=\"auto\">\u00a0Tool definitions take up context window space, leaving less room for the conversation, domain context, and reasoning.<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/li>\n<li><b><span data-contrast=\"auto\">The model gets confused: <\/span><\/b><span data-contrast=\"auto\">With hundreds of tools in view, it may choose similar but wrong tools or miss the right one in the noise.<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/li>\n<\/ul>\n<p>When tool search is enabled on a toolbox, the toolbox no longer floods the model\u2019s context with every tool definition. Instead, it exposes just two meta-tools:<\/p>\n<ul>\n<li><code><strong>tool_search<\/strong><\/code>\u2014 describe what you need, get back the most relevant tools<\/li>\n<li><code><strong>call_tool<\/strong><\/code>\u00a0\u2014 invoke any discovered tool by name<\/li>\n<\/ul>\n<p>Everything else is hidden by default. Instead of browsing lists, the agent describes its intent, discovers the right tools, and executes.\u00a0Toolbox builders also need control over how tools are surfaced, and tool search provides this. Some tools are critical on every turn, some have names that don\u2019t match how people think about them, and some get called so often that a search round-trip is wasted overhead. Tool search gives you control to:<\/p>\n<ul>\n<li><strong>Pin<\/strong>\u00a0a specific tool to be always exposed and visible to models before\u00a0<code>tool_search<\/code>.<\/li>\n<li><strong>Provide additional context<\/strong>\u00a0about a tool that matches how your team thinks about using this tool in your use case<\/li>\n<li><strong>Auto-pin<\/strong>\u00a0tools that you use most frequently and surface before\u00a0<code>tool_search<\/code>\u00a0without you taking explicit actions<\/li>\n<\/ul>\n<h4><strong>Catalog &#8211; Provide Business Context with Work IQ, Fabric IQ and Browser Automation<\/strong><\/h4>\n<p>To make agents useful to your user, you need more than tool discovery\u2014you need access to real business data and ready-to-use integrations. Foundry brings these together in a single catalog with Work IQ, Fabric IQ and more.<\/p>\n<p><strong>Work IQ: bring Microsoft 365 into your agents (preview)<\/strong><\/p>\n<p><a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/foundry\/agents\/how-to\/tools\/work-iq?pivots=python\">Work IQ<\/a>\u00a0gives agents access to your organization\u2019s data and context\u2014without exposing raw data. It builds a continuously updated understanding across Microsoft 365 and external systems, grounded in your existing permissions and policies. With Work IQ, agents can reason over real workplace context and handle complex, multi-step tasks at scale.<\/p>\n<p><strong>Fabric IQ: connect agents to business data (preview)<\/strong><\/p>\n<p><a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/foundry\/agents\/how-to\/tools\/fabric-iq?pivots=python\">Fabric IQ<\/a>\u00a0connects agents to the operational and analytical state of your business. It provides a shared context layer grounded in real-time and historical data. Through\u00a0<a href=\"https:\/\/learn.microsoft.com\/en-us\/fabric\/iq\/ontology\/overview\">ontology<\/a>,\u00a0<a href=\"https:\/\/learn.microsoft.com\/en-us\/fabric\/data-science\/concept-data-agent\">Fabric data agents<\/a>, and\u00a0<a href=\"https:\/\/learn.microsoft.com\/en-us\/fabric\/data-warehouse\/semantic-models\">Power BI semantic models<\/a>, Fabric IQ lets agents query business data using natural language\u2014so they can answer questions like \u201cWhich customers placed orders above $10,000 last quarter?\u201d and return results grounded in governed data.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/foundry\/wp-content\/uploads\/sites\/89\/2026\/05\/FabricIQ-UX.gif\"><img decoding=\"async\" class=\"alignnone size-full wp-image-2402\" src=\"https:\/\/devblogs.microsoft.com\/foundry\/wp-content\/uploads\/sites\/89\/2026\/05\/FabricIQ-UX.gif\" alt=\"FabricIQ UX image\" width=\"2000\" height=\"1125\" \/><\/a><\/p>\n<p><strong>Browser automation (preview)\u00a0<\/strong><\/p>\n<p><a href=\"https:\/\/aka.ms\/BAT-TCblog\">Browser automation<\/a>\u00a0brings MCP-native web automation to hosted agents using Playwright workspaces. It gives teams a faster path from idea to execution, with live visibility and control when workflows hit edge cases\u2014so agents can reliably automate complex web tasks.<\/p>\n<p><strong>Managed MCP servers from Azure Connector Namespace (preview)\u00a0<\/strong><\/p>\n<p>The Foundry Tools Catalog includes pre-built integrations to SaaS and line-of-business systems. When you add a connector, Foundry provisions a <a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/foundry\/agents\/how-to\/tools\/connectors\">managed MCP server<\/a> that your agent can use to take action\u2014across systems like Jira, Confluence, LinkedIn, and Box\u2014without custom integration work.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/foundry\/wp-content\/uploads\/sites\/89\/2026\/05\/Connector-UX-1.gif\"><img decoding=\"async\" class=\"alignnone size-full wp-image-2401\" src=\"https:\/\/devblogs.microsoft.com\/foundry\/wp-content\/uploads\/sites\/89\/2026\/05\/Connector-UX-1.gif\" alt=\"Connector UX 1 image\" width=\"1500\" height=\"844\" \/><\/a><\/p>\n<p><strong>Skills (preview): build and manage reusable capabilities <\/strong><\/p>\n<p>Tools tell an agent\u00a0<em>what<\/em>\u00a0it can do. Skills tell it\u00a0<em>how<\/em>\u00a0to do it.<\/p>\n<p>Today, skills are fragmented across repos, scripts, and runtime setup\u2014making them hard to manage, version, and reuse. With Toolbox, skills become first-class experience. You can attach versioned, immutable skills directly to your toolbox, creating a managed, shareable catalog of reusable capabilities. Agents discover and load these skills through MCP resources at startup\u2014no custom wiring required.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/foundry\/wp-content\/uploads\/sites\/89\/2026\/05\/Skills-ux-1.gif\"><img decoding=\"async\" class=\"alignnone size-full wp-image-2399\" src=\"https:\/\/devblogs.microsoft.com\/foundry\/wp-content\/uploads\/sites\/89\/2026\/05\/Skills-ux-1.gif\" alt=\"Skills ux image\" width=\"2000\" height=\"1125\" \/><\/a><\/p>\n<h4>Govern \u2013 Control Tool Calls with Guardrail<\/h4>\n<p>As tool and toolbox usage scales, admins need clear governance over what agents can do. With Guardrails in Foundry Control Plane, you can enforce policies on both tool inputs and outputs\u2014helping block tool calls that violate compliance requirements, expose sensitive data, trigger unsafe content, or drift from the intended task. Guardrails integrate directly with Toolbox, so tool calls stay governed consistently across your agent experiences.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/foundry\/wp-content\/uploads\/sites\/89\/2026\/05\/Guardrail-UX-1.gif\"><img decoding=\"async\" class=\"alignnone size-full wp-image-2400\" src=\"https:\/\/devblogs.microsoft.com\/foundry\/wp-content\/uploads\/sites\/89\/2026\/05\/Guardrail-UX-1.gif\" alt=\"Guardrail UX image\" width=\"2000\" height=\"1125\" \/><\/a><\/p>\n<p>Everything above expands\u00a0<em>what<\/em>\u00a0your agents can access through\u00a0<strong>Toolbox<\/strong>.<\/p>\n<p>The next capability shifts gears to\u00a0<em>when<\/em>\u00a0and\u00a0<em>how<\/em> agents actually run. Once an agent works in development, most teams hit the same operational wall: turning it from something you invoke by hand into something that runs on a schedule, reacts to an event, or kicks off when a new record, message, or file arrives. Today, that means stitching together schedulers, webhooks, Logic Apps or Azure Functions, queues, storage, and auth code\u2014just to get the agent to start at the right time; this is where Routines simplify this process.<\/p>\n<h4>Routines in Foundry Agent Service (preview)<\/h4>\n<p><a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/foundry\/agents\/concepts\/routines\"><strong>Routines<\/strong><\/a><strong>\u00a0in Foundry Agent Service<\/strong> collapse that operational layer into your project. You declare a trigger\u2014a schedule or an event\u2014and the agent action it should invoke, and Foundry handles invocation, permissions, connections, and run history alongside the agent itself. The trigger, the action, and the audit trail all live with the agent in the same Foundry project. Use routines for lightweight agent automation, such as daily summaries, one-time reminders, or periodic checks. If your scenario needs branching, multiple agents, human approval steps, or complex state, use a workflow instead.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/foundry\/wp-content\/uploads\/sites\/89\/2026\/05\/Routine-UX-1.gif\"><img decoding=\"async\" class=\"alignnone wp-image-2398\" src=\"https:\/\/devblogs.microsoft.com\/foundry\/wp-content\/uploads\/sites\/89\/2026\/05\/Routine-UX-1.gif\" alt=\"Routine UX 1 image\" width=\"909\" height=\"512\" \/><\/a><\/p>\n<h3>Code Samples<\/h3>\n<pre class=\"prettyprint language-py\"><code class=\"language-py\">\r\nfrom azure.identity import DefaultAzureCredential\r\nfrom azure.ai.projects import AIProjectClient\r\nfrom azure.ai.projects.models import MCPTool, WebSearchTool, ToolboxSearchPreviewTool,\r\n\r\n# Create Foundry project client\r\nendpoint = \"https:\/\/&lt;your-foundry-account&gt;.services.ai.azure.com\/api\/projects\/&lt;your-project&gt;\"\r\nproject = AIProjectClient(\r\n    endpoint=endpoint,\r\n    credential=DefaultAzureCredential(),\r\n)\r\n\r\n# Create toolbox version with web search and MCP tools\r\ntoolbox_version = project.beta.toolboxes.create_toolbox_version(\r\n    toolbox_name=\"my-toolbox\",\r\n    description=\"Toolbox with web search and an MCP server\",\r\n    tools=[\r\n        WebSearchTool(),\r\n        ToolboxSearchPreviewTool()\r\n        MCPTool(\r\n            server_label=\"myserver\",\r\n            server_url=\"https:\/\/your-mcp-server.example.com\",\r\n            require_approval=\"never\",\r\n            project_connection_id=\"my-key-auth-connection\",\r\n        ),\r\n    ],\r\n)\r\nprint(f\"Created toolbox: {toolbox_version.name}, version: {toolbox_version.version}\")<\/code><\/pre>\n<h3>Get started today<\/h3>\n<p>The easiest way to explore is through the\u00a0<a href=\"https:\/\/ai.azure.com\/\">Microsoft Foundry portal<\/a>. From there you can create a project, deploy a model, and build your agent. Follow the\u00a0<a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/foundry\/\">documentation<\/a>\u00a0and Microsoft Learn courses. Developers can get started in minutes by following the\u00a0<a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/foundry\/agents\/quickstarts\/quickstart-hosted-agent?pivots=azd\">Quickstart<\/a>, which walks through setting up, testing, and deploying a production-ready hosted agent end to end. Check the following documentation to get started:<\/p>\n<ul>\n<li><a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/foundry\/agents\/how-to\/tools\/tool-search\">Tool Search in Toolbox<\/a><\/li>\n<li><a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/foundry\/agents\/how-to\/tools\/work-iq\">Work IQ<\/a><\/li>\n<li><a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/foundry\/agents\/how-to\/tools\/fabric-iq\">Fabric IQ<\/a><\/li>\n<li><a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/foundry\/agents\/how-to\/tools\/browser-automation?view=foundry&amp;pivots=python\">Browser Automation<\/a><\/li>\n<li><a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/foundry\/agents\/how-to\/tools\/skills?view=foundry&amp;pivots=python\">Skills in Toolbox<\/a><\/li>\n<li><a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/foundry\/agents\/how-to\/tools\/connectors\">Managed MCP servers from Azure Connector Namespace<\/a><\/li>\n<li><a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/foundry\/agents\/concepts\/routines\">Routines<\/a><\/li>\n<li><a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/foundry\/agents\/how-to\/tools\/toolbox?view=foundry&amp;pivots=azd\">Creating Toolbox with Azure Developer CLI<\/a><\/li>\n<\/ul>\n<p>If you&#8217;re attending Microsoft Build 2026, or watching on-demand content later, be sure to check out these sessions:<\/p>\n<ul>\n<li><a href=\"https:\/\/build.microsoft.com\/en-US\/sessions\/BRK241?source=sessions\"><strong>BRK241 \u2014 From prototype to production: build and run agents at scale<\/strong><\/a><\/li>\n<li><a href=\"https:\/\/build.microsoft.com\/en-US\/sessions\/BRK242\"><strong>BRK242 &#8212; Turn your agents into action: Connect tools, APIs, and documents<\/strong><\/a><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Tooling doesn\u2019t break at a small scale\u2014it breaks when teams move to production. AI adoption accelerates, so does the number of tools available to them. Discovering, managing and securing the right tools has quickly become one of the biggest challenges in building production-grade agents. Today, we are announcing new capabilities in Toolboxes in Foundry: Skills [&hellip;]<\/p>\n","protected":false},"author":166509,"featured_media":2505,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[112,1,27],"tags":[102,122,121,149],"class_list":["post-2390","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-foundry-agent-service","category-microsoft-foundry","category-whats-new","tag-azure-ai-foundry","tag-foundry-agent-service","tag-foundry-tools","tag-toolboxes-in-foundry"],"acf":[],"blog_post_summary":"<p>Tooling doesn\u2019t break at a small scale\u2014it breaks when teams move to production. AI adoption accelerates, so does the number of tools available to them. Discovering, managing and securing the right tools has quickly become one of the biggest challenges in building production-grade agents. Today, we are announcing new capabilities in Toolboxes in Foundry: Skills [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/foundry\/wp-json\/wp\/v2\/posts\/2390","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/foundry\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/foundry\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/foundry\/wp-json\/wp\/v2\/users\/166509"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/foundry\/wp-json\/wp\/v2\/comments?post=2390"}],"version-history":[{"count":2,"href":"https:\/\/devblogs.microsoft.com\/foundry\/wp-json\/wp\/v2\/posts\/2390\/revisions"}],"predecessor-version":[{"id":2649,"href":"https:\/\/devblogs.microsoft.com\/foundry\/wp-json\/wp\/v2\/posts\/2390\/revisions\/2649"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/foundry\/wp-json\/wp\/v2\/media\/2505"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/foundry\/wp-json\/wp\/v2\/media?parent=2390"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/foundry\/wp-json\/wp\/v2\/categories?post=2390"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/foundry\/wp-json\/wp\/v2\/tags?post=2390"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}