Azure Functions Gets a Serverless Agents Runtime – Build AI Assistants in Plain Markdown
Microsoft has taken the next step toward production-grade AI workloads by making the Serverless agents runtime generally available for Azure Functions. The new model-first approach lets developers author event-driven AI agents in simple .agent.md files, using familiar Markdown syntax instead of code-heavy glue. The runtime automatically discovers triggers, tools, MCP servers and custom Python utilities, then runs the agent on the same flexible, scale-to-zero infrastructure that powers any Azure Function [source].
What the Runtime Brings
At its core, the runtime treats an .agent.md file as a single unit of work. The file’s YAML front-matter declares the trigger – HTTP, timer, queue, blob, or any Azure Functions binding – and optional overrides such as model, timeout or tool set. The markdown body becomes the instruction prompt that the Microsoft Agent Framework feeds to the selected model. Behind the scenes the runtime wires up model providers (Azure OpenAI, AI Foundry, OpenAI), resolves MCP servers, loads reusable skills, and can spin up sandboxed code-interpreter sessions via Azure Container Apps [source].
Why It Matters for Developers
Building AI agents has traditionally required stitching together separate services – a web hook, an authentication layer, a tool-calling SDK and custom state storage. With the serverless agents runtime all of that operational plumbing is baked into Azure Functions. This gives developers a single deployment model, built-in observability through Application Insights, and per-second billing that scales to zero when no events are occurring. In other words, you can now treat AI agents as first-class serverless workloads rather than an after-thought [source].
Actionable Guidance – Getting Your First Agent Up and Running
- Install the
azure-functions-agents-runtimepackage in a new Python Functions project.uv pip install azure-functions-agents-runtime - Create a minimal
function_app.pythat callscreate_function_app()– this bootstraps the runtime. - Add an
example.agent.mdfile with front-matter that defines a trigger. For instance, a timer-triggered daily summary:--- name: Daily Summary trigger: type: timer_trigger args: schedule: "0 0 9 * * *" --- You are a concise reporter. Summarize the top tech headlines from the past 24 hours and output an HTML email body. - Optionally add
agents.config.yamlto set a default model (e.g.,$FOUNDRY_MODEL) and a 900-second timeout. - Deploy the function app with
azd upor the Azure portal. The function will automatically appear under/agents/example/and can be invoked via the HTTP trigger or the timer. - To extend capabilities, drop a Python tool into
tools/or reference a remote MCP server inmcp.json. The runtime discovers these assets without code changes.
Once deployed, you can monitor executions, view logs, and adjust scaling policies just like any other Azure Function, giving you full operational control over your AI workloads.
What This Means
The introduction of a markdown-first, serverless agents runtime signals a shift from experimental notebooks to production-grade AI services. By marrying the event-driven model of Azure Functions with the tool-rich ecosystem of Microsoft Agent Framework, Microsoft reduces the friction of turning a prompt into a reliable, scalable microservice. Teams can now ship AI assistants that react to real-world events – such as a new support ticket, an Outlook message, or a database change – without managing separate compute, identity or storage layers. In practice, this should accelerate the adoption of AI-augmented workflows across enterprises that already rely on Azure Functions for their backend logic.