[dotnet-port-fixes] Suppress duplicate hosted workflow responses - #808
Conversation
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.
Note
This error may be related to your runner configuration. You can now configure runners for Copilot code review separately from Copilot cloud agent by creating a copilot-code-review.yml file with your setup steps. Read the docs for details.
Parity Review: ApprovedThis PR ports the hosted-workflow duplicate-suppression fix from upstream .NET PR microsoft/agent-framework#7217, aligning with WorkflowSession.cs and AIAgentHostExecutor.cs in dotnet/src/Microsoft.Agents.AI.Workflows/. Exported API changes: None. All new symbols (generatedHostedMessageState, stampHostedUpdateMessageID, responseUpdateHasContent, streamedMessageKey, recordStreamedMessageID, messageWasStreamed) are unexported. The signatures of NewAgent and AgentConfig are unchanged. Behavioral parity: The duplicate-suppression semantics match the upstream .NET fix — suppressing completed *agent.Response messages already surfaced as streamed updates when IncludeOutputsInResponse is enabled. Stable message-ID stamping for provider-ID-less updates mirrors the upstream behavior. No Python equivalent exists for this hosted-workflow pattern. No cross-repo parity issues found. The public-api-change label is not warranted.
|
Summary
Align
workflow/agentworkflowwith the .NET hosted-workflow fix from microsoft/agent-framework#7217 (upstream commitbfc73a5b14b40d40a90bf949d601324894d1bc34).This change:
*agent.Responsemessages that were already surfaced as streamed updates whenIncludeOutputsInResponseis enabledPorted .NET PRs
Breaking Changes
No.
Tests and Examples
go test ./workflow/agentworkflowgo test ./...Notes
dotnet/src/Microsoft.Agents.AI.Workflows/WorkflowSession.cs,dotnet/src/Microsoft.Agents.AI.Workflows/Specialized/AIAgentHostExecutor.cs*agent.Responseoutputs; existingIncludeOutputsInResponsebehavior for non-hosted generic workflow message outputs is unchangede90b6de5a72d922ea3b803cf4f194e2f1bae354binspected during selectionCloses #735