API discovery: Microsoft’s Foundry Responses options now expose SteerableConversations. The public source says it is off by default and forwards to the Foundry AgentServer option for mid-turn additional input. That is a small switch with a useful product consequence: “make it rail-only” can belong to the itinerary answer currently being assembled, rather than becoming a fresh chat or a rejected request.
Try it
Microsoft’s Hosted-Steering sample shows the minimal shape: host an agent through AddFoundryResponses with SteerableConversations = true, start a stored background response, retain its response or conversation identity, and send a second input while the first is still running. The sample expects that second input to queue rather than return conversation_locked.
A practical creative test is a research agent that has started a broad local-weekend plan. Send a harmless constraint—“keep the museums, but make every transfer rail or walking”—before it finishes. If the response keeps the same conversation context, the correction tests whether a live agent can change course without discarding the work already underway.
Copy-paste agent instruction
Build a disposable .NET 10 Foundry Hosted Agent from Microsoft Agent Framework’s Hosted-Steering sample. Enable SteerableConversations, use only harmless synthetic itinerary data, start one stored background conversation, retain its response or conversation identity, then send a second instruction: “keep the museums, but make every transfer rail or walking.” Record whether the second input queues on the same conversation instead of returning conversation_locked. Do not use customer data, do not deploy a production service, and report the Azure access, package version, and client prerequisites before running anything.
Test caveat
This is a public main-branch preview source, not a release or a live-service receipt. The sample requires authorized Azure access to a Foundry project endpoint, a model deployment, and a client that can work with background and conversation fields; this report did not execute it. Steering is also separate from ResilientBackground, so a queued correction should not be read as a promise that an interrupted process will recover it.