409 conversation_locked.
The sample is a Responses protocol agent that turns on resilience and steering with two options. It uses a simulated model stream, so you can run it without model credentials.
Long-running agents are in preview. APIs and package versions are subject to change.
Prerequisites
- An Azure subscription with Microsoft Foundry access.
- Python 3.13.
- The Azure Developer CLI (
azd) with the Foundry agents extension (azd extension install azure.ai.agents), versionazd-ext-azure-ai-agents_1.0.0-beta.16or later for the--long-runninginvoke flag and theinvocationslifecycle commands.azdhandles authentication when it calls the deployed agent.
Get the sample
In an empty directory, initialize the resilient steering agent from itsazure.yaml manifest:
azure.yaml, creates an azd environment, and connects it to the Foundry project you select.
The agent enables resilience and steering when it constructs the host:
steerable_conversations=True, a second turn on a busy conversation is queued and the running handler is cooperatively cancelled, rather than returning 409 conversation_locked.
Provision and deploy
Provision the project and deploy the agent. When prompted for a location, choose a region that supports hosted agents.azd up prints the Responses endpoint and a playground link.
Steer the deployed agent
Steering redirects an in-flight turn, so the first turn must keep running while you send the second. Start the first turn as a long-running background response in a fresh conversation, and return immediately with--no-wait:
--long-running sends store=true and background=true, and azd ai agent invoke reuses that conversation on your next invocation by default. While the first turn is still running, send a new instruction to steer the in-flight turn. Omit --no-wait this time so the CLI stays attached and streams the steered turn through completion:
azd ai agent invocations follow --id <response-id>.