{"id":2460,"date":"2026-06-03T09:00:30","date_gmt":"2026-06-03T16:00:30","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/foundry\/?p=2460"},"modified":"2026-06-03T08:48:09","modified_gmt":"2026-06-03T15:48:09","slug":"memory-build2026","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/foundry\/memory-build2026\/","title":{"rendered":"Making agent memory more reliable, transparent, and production-ready"},"content":{"rendered":"<p><span data-contrast=\"auto\">Memory has always mattered for personalization and continuity. But as customers move agents from demos into production, another requirement becomes just as important: reliability.\u00a0<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">Enterprise teams need agents that not only remember\u00a0facts, but\u00a0also apply what they have learned to follow procedures consistently, recover from repeated failure modes, and complete tasks with greater confidence over time.\u00a0Memory in Foundry Agent Service\u00a0is built for this shift, with new procedural memory capability,\u00a0management experiences,\u00a0and a set of new features\u00a0such as time-to-live\u00a0that give developers more visibility and control over what memory stores.<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<h2 aria-level=\"2\"><span data-contrast=\"none\">New\u00a0procedural memory\u00a0improves agent\u00a0reliability<\/span><span data-ccp-props=\"{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335559738&quot;:160,&quot;335559739&quot;:80}\">\u00a0<\/span><\/h2>\n<p><span data-contrast=\"auto\">In enterprise deployments, a common failure appears quickly: agents often know the right facts and still fail the task because they do not execute the right procedure. They may skip a validation step, misuse a tool, miss a required policy check, or repeat the same flawed pattern on a similar task. Procedural memory is designed to close that gap by helping agents\u00a0retain\u00a0and reuse successful execution patterns, so they can complete complex workflows more reliably instead of\u00a0starting from scratch\u00a0every time.\u00a0When used together with\u00a0<\/span><a href=\"https:\/\/aka.ms\/Build2026AgentOptimizer\"><span data-contrast=\"none\">agent optimizer<\/span><\/a><span data-contrast=\"auto\">\u00a0in Foundry Agent Service, developers can\u00a0create self-improving agents by combining design-time optimization of prompts and tools with runtime learning from real task execution.<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">Procedural memory works in two steps:<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<ol>\n<li aria-setsize=\"-1\" data-leveltext=\"%1.\" data-font=\"\" data-listid=\"4\" data-list-defn-props=\"{&quot;335552541&quot;:0,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769242&quot;:[65533,0],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;%1.&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"1\" data-aria-level=\"1\"><span data-contrast=\"auto\">Agent trajectories are ingested\u00a0and\u00a0audited to\u00a0identify\u00a0successful patterns, inefficient routes, and missing steps. From this, structured procedural memory items are extracted, capturing both\u00a0<\/span><i><span data-contrast=\"auto\">\u201cwhen to use\u201d<\/span><\/i><span data-contrast=\"auto\">\u00a0(task context, preconditions, signals) and\u00a0<\/span><i><span data-contrast=\"auto\">\u201cwhat to do\u201d<\/span><\/i><span data-contrast=\"auto\">\u00a0(ordered actions,\u00a0required\u00a0checks, tool usage).<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:300}\">\u00a0<\/span><\/li>\n<li aria-setsize=\"-1\" data-leveltext=\"%1.\" data-font=\"\" data-listid=\"4\" data-list-defn-props=\"{&quot;335552541&quot;:0,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769242&quot;:[65533,0],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;%1.&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"1\" data-aria-level=\"1\"><span data-contrast=\"auto\">When the agent encounters similar tasks, relevant procedures are retrieved and injected into the agent\u2019s context, guiding execution with explicit step-level constraints such as required validations, correct tool parameters, and policy enforcement\u2014so the agent follows a proven path rather than reconstructing it on the fly.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:300}\">\u00a0<\/span><\/li>\n<\/ol>\n<p><span data-ccp-props=\"{&quot;335559685&quot;:720}\"> <a href=\"https:\/\/devblogs.microsoft.com\/foundry\/wp-content\/uploads\/sites\/89\/2026\/06\/4d771d1b-58a4-43db-bd3f-6619f1c3546c.webp\"><img decoding=\"async\" class=\"alignnone wp-image-2461 size-large\" src=\"https:\/\/devblogs.microsoft.com\/foundry\/wp-content\/uploads\/sites\/89\/2026\/06\/4d771d1b-58a4-43db-bd3f-6619f1c3546c-1024x572.webp\" alt=\"procedural memory - how it works\" width=\"1024\" height=\"572\" srcset=\"https:\/\/devblogs.microsoft.com\/foundry\/wp-content\/uploads\/sites\/89\/2026\/06\/4d771d1b-58a4-43db-bd3f-6619f1c3546c-1024x572.webp 1024w, https:\/\/devblogs.microsoft.com\/foundry\/wp-content\/uploads\/sites\/89\/2026\/06\/4d771d1b-58a4-43db-bd3f-6619f1c3546c-300x167.webp 300w, https:\/\/devblogs.microsoft.com\/foundry\/wp-content\/uploads\/sites\/89\/2026\/06\/4d771d1b-58a4-43db-bd3f-6619f1c3546c-768x429.webp 768w, https:\/\/devblogs.microsoft.com\/foundry\/wp-content\/uploads\/sites\/89\/2026\/06\/4d771d1b-58a4-43db-bd3f-6619f1c3546c.webp 1376w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/span><\/p>\n<p><span data-ccp-props=\"{}\">\u00a0<\/span><span data-contrast=\"none\">A few weeks ago, we also released\u00a0<\/span><a href=\"https:\/\/opensource.microsoft.com\/blog\/2026\/05\/19\/introducing-state-bench-a-benchmark-for-ai-agent-memory\/\"><span data-contrast=\"none\">STATE-Bench<\/span><\/a><span data-contrast=\"none\">\u00a0(Stateful Task Agent Evaluation Benchmark), an open-source, memory-agnostic benchmark that measures whether agents improve with experience on realistic enterprise tasks.\u00a0In this benchmark, we started tracking \u201cpass^5\u201d, measuring how well an agent can consistently fulfill the task. In our evaluations, we are seeing about a\u00a05%\u00a0improvement on STATE-Bench\u00a0and Tau-Bench\u00a0with procedural memory enabled.<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p><span data-ccp-props=\"{}\"> <a href=\"https:\/\/devblogs.microsoft.com\/foundry\/wp-content\/uploads\/sites\/89\/2026\/06\/benchmark-comparison-table.svg\"><img decoding=\"async\" class=\"alignnone size-large wp-image-2462\" role=\"img\" src=\"https:\/\/devblogs.microsoft.com\/foundry\/wp-content\/uploads\/sites\/89\/2026\/06\/benchmark-comparison-table.svg\" alt=\"foundry memory benchmark\" width=\"1024\" height=\"1024\" \/><\/a><\/span><\/p>\n<h2 aria-level=\"2\"><span data-contrast=\"none\">New management experience in the UI<\/span><span data-ccp-props=\"{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335559738&quot;:160,&quot;335559739&quot;:80}\">\u00a0<\/span><\/h2>\n<p><span data-contrast=\"auto\">We are\u00a0also introducing\u00a0a new memory management experience in\u00a0the Microsoft Foundry\u00a0portal. Developers increasingly want to inspect, understand, and\u00a0tune\u00a0what an agent is storing instead of treating memory as a black box. With this update, they can view stored memories directly and manage individual memory items through CRUD operations.<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p><span data-ccp-props=\"{}\"> <a href=\"https:\/\/devblogs.microsoft.com\/foundry\/wp-content\/uploads\/sites\/89\/2026\/06\/memory_ui.gif\"><img decoding=\"async\" class=\"alignnone wp-image-2463 size-full\" src=\"https:\/\/devblogs.microsoft.com\/foundry\/wp-content\/uploads\/sites\/89\/2026\/06\/memory_ui.gif\" alt=\"Memory in Foundry UI\" width=\"2854\" height=\"1822\" \/><\/a><\/span><\/p>\n<h2 aria-level=\"2\"><span data-contrast=\"none\">Memory TTL, Multimodal support, and\u00a0direct memory command<\/span><span data-ccp-props=\"{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335559738&quot;:160,&quot;335559739&quot;:80}\">\u00a0<\/span><\/h2>\n<p><span data-contrast=\"auto\">This\u00a0June\u2019s\u00a0update also adds three\u00a0capabilities developers have been asking for. Multimodal support helps agents understand and remember information from images, which is especially useful in e-commerce and customer support scenarios. Memory TTL (Time-to-Live) can be configured when a memory store is created, automatically retiring older, lower-value memories to improve retrieval quality and help control storage costs. Direct memory commands let users explicitly tell an agent to remember or forget something, enabling more transparent and user-controlled experiences.<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<pre class=\"prettyprint language-py\"><code class=\"language-py\"># Specify memory store options \r\n\r\noptions = MemoryStoreDefaultOptions( \r\n\r\n   chat_summary_enabled=True, \r\n\r\n   user_profile_enabled=True, \r\n\r\n   procedural_memory_enabled=True, \r\n\r\n   default_ttl_seconds=30 * 24 * 60 * 60, \r\n\r\n   user_profile_details=( \r\n\r\n      \"Avoid irrelevant or sensitive data, such as age, financial details, \" \r\n\r\n      \"or anything not useful for personalizing future conversations.\" \r\n\r\n   ), \r\n\r\n) <\/code><\/pre>\n<p><span data-ccp-props=\"{&quot;134245418&quot;:true,&quot;134245529&quot;:true}\">\u00a0<\/span><\/p>\n<h2 aria-level=\"2\"><span data-contrast=\"none\">File-based memory in Microsoft Agent\u00a0Framework<\/span><span data-ccp-props=\"{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335559738&quot;:160,&quot;335559739&quot;:80}\">\u00a0<\/span><\/h2>\n<p><span data-contrast=\"auto\">Memory is also coming to Microsoft Agent Framework through file-based memory support. The goal is to reduce friction for developers who want to start simple and scale without changing their development model. With file-based memory, developers can begin locally with an experience that is easy to inspect, version, and understand\u00a0with markdown (.MD) files, then carry the same pattern forward as their application matures. This creates a more natural path from prototyping to production without forcing a managed setup on day one.<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<pre class=\"prettyprint language-py\"><code class=\"language-py\">from\u00a0agent_framework\u00a0import\u00a0Agent,\u00a0MemoryContextProvider,\u00a0MemoryFileStore\u00a0\u00a0\r\n\r\n\u00a0\r\n\r\nstore\u00a0=\u00a0MemoryFileStore(\u00a0\u00a0\r\n\r\n\u00a0\u00a0\u00a0base_path=Path(\".\/memory),\u00a0\u00a0\r\n\r\n\u00a0\u00a0\u00a0owner_state_key=MEMORY_OWNER_STATE_KEY,\u00a0\u00a0\r\n\r\n)\u00a0\u00a0\r\n\r\n\u00a0\r\n\r\nmemory_provider\u00a0=\u00a0MemoryContextProvider(store=store)\u00a0\u00a0\r\n\r\n\u00a0\r\n\r\nagent\u00a0=\u00a0Agent(\u00a0\u00a0\r\n\r\n\u00a0\u00a0 client=client,\u00a0\u00a0\r\n\r\n\u00a0\u00a0 name=\"MemoryDemoAgent\",\u00a0\u00a0\r\n\r\n\u00a0\u00a0 instructions=\"You are a helpful assistant.\",\u00a0\u00a0\r\n\r\n\u00a0\u00a0\u00a0context_providers=[memory_provider],\u00a0\u00a0\r\n\r\n)\u00a0<\/code><\/pre>\n<p><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<h2><span data-contrast=\"none\">Get started<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/h2>\n<p><span data-contrast=\"auto\">Together, these updates reflect a broader shift in agent memory: from a personalization feature to a core part of reliable agent execution. Procedural memory helps agents follow proven workflows more consistently, while benchmarks such as STATE-Bench help\u00a0validate\u00a0whether that improvement holds up on realistic enterprise tasks. We will keep investing to make memory practical, observable, and trustworthy for enterprise use.<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">To get started, create a memory store with procedural memory and TTL configuration in the Foundry portal at\u00a0<\/span><a href=\"https:\/\/ai.azure.com\/\"><span data-contrast=\"none\">https:\/\/ai.azure.com\/<\/span><\/a><span data-contrast=\"auto\">, or explore the developer\u00a0<\/span><a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/foundry\/agents\/how-to\/memory-usage?pivots=python\"><span data-contrast=\"none\">documentation<\/span><\/a><span data-contrast=\"auto\">\u00a0for implementation guidance.<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">To measure reliability gains, explore\u00a0<\/span><a href=\"https:\/\/github.com\/microsoft\/STATE-Bench\"><span data-contrast=\"none\">STATE-Bench<\/span><\/a><span data-contrast=\"auto\">\u00a0and evaluate whether your agent\u00a0improves with\u00a0experience on realistic enterprise tasks.<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">If\u00a0you&#8217;re\u00a0attending Microsoft Build 2026, or watching on-demand content later, be sure to check out these sessions:<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<ul>\n<li aria-setsize=\"-1\" data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559683&quot;:0,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"1\" data-aria-level=\"1\"><a href=\"https:\/\/build.microsoft.com\/en-US\/sessions\/BRK241?source=sessions\"><b><span data-contrast=\"none\">BRK241 \u2014 From prototype to production: build and run agents at scale<\/span><\/b><\/a><span data-contrast=\"auto\">\u00a0|\u00a0<\/span><a href=\"https:\/\/github.com\/microsoft\/build26-brk241\"><span data-contrast=\"none\">Session repo<\/span><\/a><span data-ccp-props=\"{}\">\u00a0<\/span><\/li>\n<\/ul>\n<ul>\n<li aria-setsize=\"-1\" data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559683&quot;:0,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"2\" data-aria-level=\"1\"><a href=\"https:\/\/build.microsoft.com\/en-US\/sessions\/BRK242\"><b><span data-contrast=\"none\">BRK242 &#8212; Turn your agents into action: Connect tools, APIs, and documents<\/span><\/b><\/a><span data-contrast=\"auto\">\u00a0|\u00a0<\/span><a href=\"https:\/\/github.com\/microsoft\/build26-brk240\"><span data-contrast=\"none\">session repo<\/span><\/a><span data-ccp-props=\"{}\">\u00a0<\/span><\/li>\n<\/ul>\n<ul>\n<li aria-setsize=\"-1\" data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559683&quot;:0,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"3\" data-aria-level=\"1\"><a href=\"https:\/\/build.microsoft.com\/en-US\/sessions\/BRK243?source=sessions\"><b><span data-contrast=\"none\">BRK243 \u2014 Claw and agent harness in Microsoft Foundry<\/span><\/b><\/a><span data-contrast=\"auto\">\u00a0|\u00a0<\/span><a href=\"https:\/\/github.com\/microsoft\/build26-brk243\"><span data-contrast=\"none\">session repo<\/span><\/a><span data-ccp-props=\"{}\">\u00a0<\/span><\/li>\n<\/ul>\n<ul>\n<li aria-setsize=\"-1\" data-leveltext=\"\u00b7\" data-font=\"Symbol\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559683&quot;:0,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\u00b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"1\" data-aria-level=\"1\"><a href=\"https:\/\/build.microsoft.com\/en-US\/sessions\/DEM333?source=sessions\"><b><span data-contrast=\"none\">DEM333 \u2014 How Foundry integrates with open-source frameworks and tools<\/span><\/b><\/a><span data-contrast=\"auto\">\u00a0|\u00a0<\/span><a href=\"https:\/\/github.com\/microsoft\/Build26-DEM333-how-foundry-integrates-with-open-source-frameworks-and-tools\"><span data-contrast=\"none\">session repo<\/span><\/a><span data-ccp-props=\"{}\">\u00a0<\/span><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Memory has always mattered for personalization and continuity. But as customers move agents from demos into production, another requirement becomes just as important: reliability.\u00a0\u00a0 Enterprise teams need agents that not only remember\u00a0facts, but\u00a0also apply what they have learned to follow procedures consistently, recover from repeated failure modes, and complete tasks with greater confidence over time.\u00a0Memory [&hellip;]<\/p>\n","protected":false},"author":203072,"featured_media":1563,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[112,163],"tags":[82,151,33,81,150],"class_list":["post-2460","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-foundry-agent-service","category-microsoft-build","tag-agent-memory","tag-benchmark","tag-foundry","tag-memory","tag-state-bench"],"acf":[],"blog_post_summary":"<p>Memory has always mattered for personalization and continuity. But as customers move agents from demos into production, another requirement becomes just as important: reliability.\u00a0\u00a0 Enterprise teams need agents that not only remember\u00a0facts, but\u00a0also apply what they have learned to follow procedures consistently, recover from repeated failure modes, and complete tasks with greater confidence over time.\u00a0Memory [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/foundry\/wp-json\/wp\/v2\/posts\/2460","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\/203072"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/foundry\/wp-json\/wp\/v2\/comments?post=2460"}],"version-history":[{"count":1,"href":"https:\/\/devblogs.microsoft.com\/foundry\/wp-json\/wp\/v2\/posts\/2460\/revisions"}],"predecessor-version":[{"id":2467,"href":"https:\/\/devblogs.microsoft.com\/foundry\/wp-json\/wp\/v2\/posts\/2460\/revisions\/2467"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/foundry\/wp-json\/wp\/v2\/media\/1563"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/foundry\/wp-json\/wp\/v2\/media?parent=2460"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/foundry\/wp-json\/wp\/v2\/categories?post=2460"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/foundry\/wp-json\/wp\/v2\/tags?post=2460"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}