Foundry Workflows retire on December 1. We'd start moving yours to Agent Framework now
Microsoft drops the Foundry workflow designer on December 1, 2026. Your exported YAML can keep running, but porting it to Agent Framework has a few traps the notice doesn't mention.
part 11 of 25 · Platform releases, explained from scratchthe ideaExport the YAML this week, then run it as a hosted agent.
after reading, you can- Plan around December 1. Know what stops and what still runs
- Pick each workflow's next home by asking who will be fixing it next year
- Spot the Power Fx and variable gaps before one of them quietly breaks a branch
Microsoft is pulling the visual Workflows designer out of Microsoft Foundry on December 1, 2026. If a Foundry workflow runs part of your business today, export its YAMLdefinitionIt's the text file behind every Foundry workflow. You can read it, diff it and keep it in Git, which is why the export matters. this week and pick where it will live next: Microsoft Agent FrameworkdefinitionMicrosoft's open-source SDK for agents and workflows, in .NET and Python. If you used Semantic Kernel or AutoGen, this is where they went., Azure Logic Apps or a direct agent-to-agent call. This guide explains what retires, what keeps running, and the order we'd move things in.
You can't edit or run workflows in the portal after December 1, but you don't have to lose them
A Foundry workflow is a chain of steps you drew in Microsoft's portal: ask a question, hand the answer to an AI agent, check the result, maybe wait for a person to approve, then pass it to the next agent. After December 1 you can't edit those drawings in the portal or run them from it any more. Microsoft hasn't said the logic is lost. Each workflow is saved as a YAML file you can export, and Foundry will still run that file once it's packaged and deployed as a hosted agent. Somebody has to do that move, and test it, before the date.
It's a bit like a meal-kit app closing its recipe editor. You can still download every recipe as a card and cook from it at home, or hand it to a caterer. You'd still want to cook it once before the dinner party.
- Teams running Foundry workflows, even pilots
- Owners of approval flows drawn in the portal
- Developers who will have to port the YAML
- Cloud teams who look after the Foundry projects
- Risk owners who signed off on an AI process
Why it matters to you
Nothing here breaks loudly on day one, and that's the risk. A workflow that triages support tickets or drafts approval packs keeps doing its job right up until the portal can't run it. Then the queue it feeds goes quiet, and the first person to notice is usually whoever was waiting on the output.
Microsoft's own general availability page already lists "building new production dependencies on Workflows" as a rollout pitfall. If an auditor or risk committee approved a process that runs on a preview feature, the retirement is a good reason to put it on supported ground and update the record.
-
01 Built in the designer
Someone on your team drew the steps and hit Save. Foundry kept every save as a new version of a YAML file, and that's the part you can take with you.
-
02 Export the YAML
Open the YAML view and you'll see the whole workflow as text. Copy or export it now, because that file is what you carry forward.
-
03 Designer retires
After December 1 Microsoft no longer supports editing the workflow visually or running it from the portal.
-
04 Pick a new home
Most teams pick Agent Framework. Logic Apps suits people who want to keep drawing, and a direct A2A call is enough when one agent just hands work to another.
-
05 Runs as a hosted agent
Once you deploy it as a hosted agent, Foundry runs it again. It gets its own endpoint and its own identity, and you'll have to grant that identity access.
For engineers: workflows stop being their own agent type. Microsoft's migration guide says the patterns you drew (sequential, group chat, branching, human-in-the-loop) all map onto Agent Framework, through declarative YAML or code, and that in many cases the exported YAML runs with minimal changes. Notice the word many. The rest of this guide is about the cases where it doesn't.
What retires, what stays, and the three ways out
| Piece | Before Dec 1 | After Dec 1 |
|---|---|---|
| Visual designer in the Foundry portal | Preview, editable | Not supported |
| Running a workflow from the portal | Preview | Not supported |
| Exported workflow YAML | Portable file | Still runs when deployed as a hosted agent |
| Workflows in Foundry Toolkit for VS Code | View, test, redeploy, generate code | Testing and redeploying saved workflows ends. Exported YAML and generated code stay yours |
| Code-based orchestration in hosted agents | Supported | Unaffected |
| Hosted agents service | Generally available | Generally available |
The migration options Microsoft documents
We'd start here for most teams. Load the exported YAML into an Agent Framework project, or rewrite it in Python or C#, then deploy it as a hosted agent and keep editing in VS Code.
If people picked workflows because they could drag boxes around, Logic Apps Standard gives them that back, with 1,400+ connectors, and can call Foundry agents as steps. Its Foundry integration is still preview, though.
When one agent only needs to hand a task to another, expose the second agent as an A2A endpoint and call it directly. No workflow at all.
Retires December 1. It never left preview, and Microsoft already advises against building new production work on it.
You get a sandbox per session, plus an Entra identity and an endpoint for the agent. The designer never left preview, but hosted agents already have.
Most teams will land on Agent Framework, and that's what Microsoft recommends. Logic Apps makes sense when business analysts own the process and won't touch YAML, or when the workflow mostly calls other systems and only asks an agent to reason in one or two steps. A2AdefinitionAgent-to-agent protocol. If one agent just needs to ask another for help, it calls it directly and you skip the workflow. fits the smallest cases, where the "workflow" was really one agent forwarding questions to a specialist.
- Lives in a Git repo and goes through code review like any other app
- It runs on hosted agents, which are already out of preview
- Someone on the team has to be comfortable with code or YAML
- Declarative YAML packages for .NET are still marked prerelease
- People who don't write code can keep dragging boxes around
- A run can wait days for a manager's approval without anyone babysitting it
- The Foundry piece is still preview, so you'd be trading one preview for another
- Means rebuilding the flow on a new canvas, not importing the YAML
Where "minimal changes" stops being minimal
We read the workflow docs, the Agent Framework declarative reference and the hosted agentdefinitionYour own agent code in a container, run by Foundry. You don't manage servers, but you do manage the identity it gets. docs side by side. These are the gaps that turn a quick port into a real project. None of them are in Microsoft's retirement notice.
| Check | Why it bites | What to do |
|---|---|---|
| Python version | Agent Framework skips the Power Fx engine on Python 3.14 and 3.15. Formulas that start with = log a warning and stay as plain text. | Pin Python 3.13 or earlier in the image if the YAML uses formulas |
| System variables | The portal lists System.User.Language, Conversation.LocalTimeZone, Bot and Recognizer. Agent Framework's docs list only ConversationId, LastMessage (with .Text) and Timestamp. | Search the YAML for System. and Conversation. and test each one |
| Language choice | Conversation actions such as AddConversationMessage are documented as C# only. | Pick .NET, or rewrite those steps, before you scaffold |
| Package maturity | The .NET declarative packages install with --prerelease, and the Python Foundry hosting package is prerelease too. | Pin exact versions and retest on every bump |
| Rollout | A hosted agent endpoint sends 100% of traffic to one version. There's no traffic splitting. | Canary with a second agent and route at your caller |
| Private networking | Projects created before June 25, 2026 need a container registry reachable over its public endpoint. | Check the project's creation date before promising a private build |
The Python one is the nastiest, because nothing fails. A branch condition such as =Local.category = "billing" just stops being evaluated, so every request takes the same path and the logs carry one warning. Your test set has to include a request for every branch, and someone has to read the warnings.
The Copilot conversion is useful for getting started. Microsoft's own page says it doesn't deploy anything and doesn't guarantee the same behavior, and it tells you to keep the original definition until the replacement is proven. We'd treat its output like a pull request from a new hire: read every branch, every variable and every approval step against the YAML.
The dates to put in the plan
- Apr 3, 2026Agent Framework 1.0
Microsoft froze the .NET and Python APIs and promised long-term support. That's what you want under something you'll run for years.
- Jun 25, 2026Private registry cut-off
Older projects can't use a private container registry for hosted agents. If yours predate this, security will want to know before you plan the build.
- This weekExport and inventory
Save every workflow's YAML and write down who calls it. Do it while the designer still opens.
- Dec 1, 2026Workflows retire
The designer and portal runs lose support. Anything still running there is on its own.
- Mar 31, 2027Agents (classic) retire
Agents (classic) are deprecated and go too. Move them in the same project if you have them.
Before and after: where the workflow runs
Before: a workflow drawn and run in the portal
Right now the workflow lives in the portal, on a preview feature. Someone starts it from the portal or an app, and it calls prompt agents one after another.
After: nobody edits it in the portal any more. It ships from Git
The YAML or code sits in a repo, ships as a container and runs as a hosted agent with its own Entra identity, endpoint and tracing.
The agents themselves don't have to move. A workflow node invokes a Foundry agent by name, and the declarative YAML in Agent Framework does the same with an InvokeAzureAgent action. What changes is the box around them: a container you build, a version you deploy and an identity you have to grant access to.
Hosted agents also change the bill. You pay for CPU and memory per active session, and every session gets its own sandbox. The smallest size is half a vCPU with 1 GiB, and an idle session shuts down after 15 minutes unless you change it. We'd start small and size up only when the tests say so, because oversizing gets multiplied by every concurrent user.
How we'd move a workflow, start to finish
- 01Inventory and export
List every workflow in every Foundry project with its owner, its callers and the agents it invokes. Export each saved version's YAML into a repo, named like support.workflow.yaml.
- 02Record what it does today
Run a set of real requests through the saved workflow in the Foundry Toolkit playground. Cover every branch, a missing input and each approval step, and keep the outputs as your baseline.
- 03Choose the target per workflow
Most go to Agent Framework. If non-developers own the process, we'd use Logic Apps, and if one agent only calls another, A2A is plenty.
- 04Port and fix the gaps
Load the YAML into Agent Framework, or start from whatever Generate Code produced. Pin Python 3.13 if there's Power Fx in it, and replace the system variables Agent Framework doesn't know about.
- 05Deploy as a hosted agent
Scaffold with azd ai agent init, then provision and deploy. Grant the new agent identity the access the old workflow had, and nothing more.
- 06Compare and cut over
Replay the baseline requests against the deployed version and compare. Move callers one at a time, and keep the original YAML until the last caller has moved.
What to do now, by role
What to do now, by who you are
- Ask one question: which of our processes run on a Foundry workflow, and who owns each one?
- Decide which ones matter enough to move, and retire the experiments nobody uses.
- Book engineering time for November, so the cut-over isn't squeezed into the last week.
- Export every workflow version's YAML into Git before you change anything.
- Port one workflow end to end on Agent Framework to learn the gaps on something small.
- If the YAML has Power Fx in it, pin Python 3.13 or earlier. If it uses conversation actions, you'll be writing .NET.
- Look up the region each project sits in. Hosted agents only run in some of them.
- Find out when each project was created. If it's older than the June 25 cut-off, a private container registry is off the table.
- Turn on Application Insights and put a budget alert on hosted agent CPU and memory before real traffic arrives.
- Look at what each new agent identity can reach, and cut anything the old workflow never used.
- Update the risk record for any approved process that moved off a preview feature.
- Check that nobody left secrets in the exported YAML, the container images or environment variables.
Set it up so the next retirement hurts less
This is the second Foundry retirement in a few months, with classic agents leaving next spring and model versions retiring on their own schedule. The teams that cope best treat the portal as a test bench and keep anything that matters in their own repo.
Durable fixes, tied to this move
- 01Keep definitions in Git
Workflow YAML, agent instructions and tool configs live in a repo with code review. The portal becomes a place to try things, and nothing lives only there.
- 02Keep a regression set
The baseline requests you recorded for the move become a test suite you run on every model or package upgrade.
- 03One identity per agent, least privilege
Each hosted agent has its own Entra identity. Grant it only the data and tools that workflow uses, and review it like any service account.
- 04Track preview dependencies
Keep a short register of every preview feature in production, with an owner and a planned exit, so a retirement notice is a ticket and not a fire drill.
- 05Watch the lifecycle pages
Give one person the job of reading Foundry's lifecycle pages each month. When a new retirement date shows up, they open a ticket that day.
If the cut-over goes wrong
If the new version gets it wrong, or you're still porting on December 1
Before December 1, the old workflow is your rollback. After it, your rollback is the last good hosted agent version, so keep both until you're sure.
- 01Stop the damagefirst hour
- Point callers back at the original workflow if it's still before December 1, or redeploy the last good hosted agent version.
- Pause anything downstream that acts on the output, such as ticket updates, emails or approvals.
- 02Find the step that changedfirst day
- Run the baseline requests again and compare them one branch at a time. That tells you which branch changed.
- Read the traces in Application Insights and the container logs for Power Fx warnings, missing variables and permission errors from the agent identity.
- 03Fix and redeployfirst days
- Fix the YAML or code, deploy a new version and rerun the full baseline before moving callers back.
- If the date has passed and the fix will take time, run the process by hand or through a short Logic Apps flow until it's ready.
- 04Tell peopleas soon as you know
- Tell whoever owns the process what broke and for how long.
- If it touched customer data or regulated decisions, your risk and compliance people need to hear it too.
- 05Learnnext sprint
- Add the failing request to the regression set.
- Write the gap into the migration checklist, so the next workflow you port doesn't hit it.
Three situations you might recognise
We made these up to show common setups. None of them is a Cohash client or a real incident.
Three Foundry estates, and what we'd do in each
- the setup
- A software company built a sequential workflow that reads each new ticket, classifies it with one agent and drafts a reply with another. Support leads use it every day.
- what happens
- Nobody owns the move. On December 1 the portal stops running it and drafts stop appearing, and the backlog grows before anyone links the two.
- what to do
- Export the YAML now, port it to Agent Framework declarative YAML and deploy it as a hosted agent. Replay a week of tickets and compare the classifications before switching.
- the setup
- An insurer's finance analysts drew a human-in-the-loop workflow that summarizes invoices over a limit and asks a manager to approve. Nobody on that team writes code.
- what happens
- Engineering ports it to Python, and the analysts can no longer change a threshold without filing a ticket. On Python 3.14 the limit check stops evaluating and every invoice takes the same branch.
- what to do
- Rebuild it in Logic Apps Standard, calling the existing Foundry agent for the summary, so analysts keep a visual designer. Or keep the YAML and pin Python 3.13.
- the setup
- A bank set up its Foundry projects early in 2026, all behind private endpoints. One group-chat workflow pulls data from an internal API, and nobody wants that traffic going public.
- what happens
- The team plans a fully private hosted agent build. The projects predate the June 25 cut-off, so the container registry has to stay reachable over its public endpoint, and the security review stalls a week before the date.
- what to do
- Check project creation dates now. Either approve a public registry endpoint with controls, or create a new project for the hosted agents and move the agents into it.
If you want a hand, we can sit with your team, port the first workflow together and build the regression set you'll reuse for the rest. The Microsoft Foundry page shows the wider platform work. You can also hire Foundry engineers for the busy weeks, or start with an assessment of what still runs on preview features.
What to take from this
- 01
Foundry stops supporting the workflow designer and in-portal runs on December 1, 2026. Export every workflow's YAML before then.
- 02
You don't lose the logic. Deploy the exported YAML as a hosted agent and Foundry runs it again, on a service that's out of preview.
- 03
Microsoft points most teams at Agent Framework. If your people need a visual designer, look at Logic Apps, and if one agent just hands off to another, A2A is enough.
- 04
Power Fx formulas don't run on Python 3.14 or 3.15, and some portal system variables aren't in Agent Framework's list. Test every branch.
- 05
Generated code is a starting point. Keep the original workflow until the last caller has moved to the tested replacement.
- 06
Classic agents go next spring, on March 31. If you have both, plan the two moves as one project.
01Will our Foundry workflows just stop on December 1? What actually happens?
The portal side does. After that date you can't edit them in the portal or run them from it. Microsoft says Foundry still runs YAML workflow definitions you deploy as a hosted agent, so export the YAML and move it before then.
02What replaces Foundry Workflows?
Microsoft's answer for most teams is Agent Framework, deployed as a hosted agent. If the people who own a workflow want to keep a visual designer, it points them to Azure Logic Apps. And if one agent only hands work to another, a direct agent-to-agent (A2A) call is enough.
03Can we just load our workflow YAML into Agent Framework? Or is it a rewrite?
Often you can. Microsoft says many exported workflows run with minimal changes. Before you trust it, check the Power Fx formulas, the system variables and any C#-only actions. Then run a request through every branch and compare it with the original.
04Do my Foundry agents have to be rebuilt?
No. The agents a workflow calls stay in your project. Agent Framework's declarative YAML invokes them by name, so what you rebuild is the orchestration around them.
05Is Microsoft Agent Framework production-ready?
The core is. Version 1.0 for .NET and Python came out in April with stable APIs and long-term support. A few pieces you'll touch here are still prerelease, like the .NET declarative workflow packages and the Python Foundry hosting package, so pin your versions.
06How are hosted agents billed?
You pay for the CPU and memory your active sessions use, and for model calls on top. Each session gets its own sandbox, so if you oversize it, you pay that extra for every person using it at once.
07We use Power Automate and Copilot Studio too. Are those affected?
This retirement is about workflows in Microsoft Foundry. Microsoft's notice doesn't mention Copilot Studio or Power Automate, even though the formulas use the same Power Fx language.
Three questions, about a minute
Pick an answer and we'll tell you if it's right, and why it is or isn't. The score stays in this browser.
-
Q1You export a workflow, run it on Agent Framework under Python 3.14, and now every request takes the same branch. What went wrong?
show the answer
B. Power Fx formulas aren't evaluated on Python 3.14 On Python 3.14 and 3.15 Agent Framework doesn't install the Power Fx dependency, so formulas starting with = stay as text and only log a warning. Pin 3.13 or earlier.
-
Q2The finance analysts who own an approval workflow don't write code. Where should it go?
show the answer
C. Azure Logic Apps calling the Foundry agent Logic Apps keeps a drag-and-drop designer and can call the Foundry agent as a step. That way the analysts can still change thresholds themselves instead of filing tickets.
-
Q3It's mid-November and your ported workflow is deployed. When should you delete the original?
show the answer
A. When the last caller has moved over and the replay matches. Not before Microsoft says generated code doesn't guarantee equivalent behavior and to keep the original until migration is complete and callers use the replacement.