Microsoft Foundry hosted agents: lessons learned building a production multi-agent service
Agent workloads can sometimes be an awkward fit for the compute we would usually reach for. They can be bursty (a synthesis run spikes, then nothing for an hour), some of them are cadence-driven (a follow-up agent that wakes every 30 days), and a few run long enough that a request-response timeout is meaningless. Put that on always-on container replicas and you pay for a lot of idle.
Microsoft Foundry Hosted Agents went generally available in July 2026, and it is built for that shape.
I built a service (product) that takes standard methodologies and frameworks, then supports them with agents (without giving away too much, I will keep this general). Six agents ran on Microsoft Foundry Hosted Agents, and one ran in a sidecar container.
This post is about the hosting decisions, protocol choices, and what I learnt while building that service, where the agents were built with Microsoft Agent Framework in Python.
It also builds on a few related posts: Get Ahead with Self-Hosted Agents and Container Apps Jobs, Getting Started with Azure Developer CLI (azd), and Running Azure SRE Agent for AKS and Drasi Operations.
In short: this is a production story about choosing the right compute and protocol for each agent shape, not a generic tour of features.
TL;DR
- Hosted Agents are excellent for bursty or scheduled workloads.
- Use Responses only when you genuinely need conversation history.
- Most task-oriented agents are better suited to Invocations.
- Size compute per agent rather than per application.
- Agents designed around in-process callbacks will not migrate cleanly.
