Expose durable orchestrations as native agent tools with durable result continuation
Maintainers usually reply within 3 days
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 25/100
- Issue type
- Feature
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- azure, csharp
- Domain
- ai-infra-agents, backend
Research direction
Start with dotnet/src/Microsoft.Agents.AI.DurableTask/DurableAgentContext.cs and dotnet/samples/DurableAgents/AzureFunctions/06_LongRunningTools/Tools.cs to understand current orchestration scheduling. Then trace the agent tool and continuation entry points and identify tests for host recovery, duplicate delivery, result correlation, and terminal failures. Done means a supported typed orchestration tool, a sample that resumes with its result, and documentation of hosting and delivery guarantees.
Written by the indexing model from the issue text.
Description
Problem
An agent can already start an orchestration through DurableAgentContext.Current.ScheduleNewOrchestration(...). The long-running-tools sample demonstrates this with custom start, status, and event tools.
That supports starting work and returning an instance ID, but it does not provide a first-class orchestration-backed tool whose result is delivered back to the agent through a durable continuation. Applications must implement scheduling, correlation, pending-operation tracking, and agent resumption themselves.
We encountered this while building Durable Squad: a specialist needs to invoke a long-running business workflow and consume its eventual result before finishing its assignment. Returning an instance ID is useful, but is not equivalent to awaiting the business outcome.
Requested capability
Provide a supported way to register a durable orchestration as a typed agent tool, including its input/output schema and description.
Support two explicit invocation modes:
- Start the orchestration and return a handle, preserving the existing fire-and-return use case.
- Durably suspend the calling agent's continuation and resume it with the orchestration's result when execution completes.
The awaited mode should not hold a model request or an entity operation open while the orchestration runs. Scheduling and continuation recording should respect the existing entity transaction boundary rather than polling for work whose scheduling has not committed.
Expected behavior
- Tool invocation, orchestration instance, and agent continuation have a stable correlation.
- Host restarts do not lose pending invocations or their eventual results.
- Redelivery or recovery does not unnecessarily start another orchestration for the same accepted tool invocation.
- A successful result reaches the correct agent session and tool call before the agent continues.
- Failure, termination, and any supported cancellation or configured timeout produce explicit outcomes rather than successful-looking results.
- Execution is visible in DTS, with correlation back to the originating agent/tool invocation.
- Standalone and Azure Functions hosting have documented support boundaries.
Scope
This is agent-to-orchestration tool composition, not exposing a workflow as an MCP endpoint or adding another start/status wrapper sample.
It does not request a general per-tool checkpointing redesign, a new human-approval framework, or exactly-once guarantees for external business side effects. Those effects still require application-level idempotency and reconciliation.
Acceptance criteria
- A public API makes an orchestration available as an agent tool without application-authored continuation plumbing.
- A sample shows an agent invoking a long-running orchestration and continuing with its typed result.
- Tests cover pending execution across a host restart, duplicate delivery, result correlation, and terminal failure outcomes.
- Documentation distinguishes start-and-return-handle from durably awaited execution and states delivery/idempotency guarantees precisely.
Current reference points
dotnet/src/Microsoft.Agents.AI.DurableTask/DurableAgentContext.csdotnet/samples/DurableAgents/AzureFunctions/06_LongRunningTools/Tools.cs
These illustrate existing scheduling support. The request is to build a first-class durable tool continuation on top of it.
- Dominant language
- Python
- Stars
- 19
- Forks
- 11
- Avg merge
- 5d 18h
- Merged PRs (30d)
- 11
Getting set up
- No Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from microsoft/agent-framework-durable-extension
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
microsoft/agent-framework-durable-extension#87 · 1 comment ·
Maintainers usually reply within 3 days
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
microsoft/agent-framework-durable-extension#75 · 1 comment ·
Maintainers usually reply within 3 days
-
Difficulty 5/5 Over a week Newbie friendliness 35/100
microsoft/agent-framework-durable-extension#162 ·
Maintainers usually reply within 3 days
-
.NET: [Guide] Running Durable Agents & Workflows inside Foundry Hosted Agents across scale-to-zeroOpen
Difficulty 5/5 Over a week Newbie friendliness 22/100
microsoft/agent-framework-durable-extension#149 ·
Maintainers usually reply within 3 days
-
Difficulty 3/5 1-2 days Newbie friendliness 62/100
microsoft/agent-framework-durable-extension#143 ·
Maintainers usually reply within 3 days
All issues in microsoft/agent-framework-durable-extension
Similar issues
-
[Bug]: AdaLAM's draw_first_k_couples repeats couples already drawn instead of the next ones (8 of the default 128 RANSAC hypotheses)Possibly taken @1sakshm claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 85/100
TheAlgorithms/Python#15656 ·
Maintainers usually reply within 2 days
-
external integration integration-submission
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
langchain-ai/docs#7128 ·
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 72/100
kaifcodec/user-scanner#755 ·
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 82/100
eclipse-score/mcp-servers#61 ·
Maintainers usually reply within 4 days