Declarative CustomerSupport: how should a host uniformly render UserMessage from output?
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 35/100
Research direction
Start with declarative-agents/workflow-samples/CustomerSupport.yaml, especially the escalate_agent output block and its autoSend, responseObject, and messages properties. Compare the matching Python and .NET Customer Support samples, then trace how the host receives action output. Done means the intended uniform way to surface UserMessage is documented or the missing output capability is clearly specified.
Written by the indexing model from the issue text.
Description
Question
In the declarative Customer Support sample, escalate_agent uses structured output (IsComplete + UserMessage) together with externalLoop and autoSend: true. We want the end user to see UserMessage (natural language), not the raw JSON.
Our host must render user-facing text uniformly from the action output. It cannot special-case individual agents or field names (UserMessage vs Reply vs ClarificationQuestion, etc.).
What is the intended way to do that in this sample?
Sample
declarative-agents/workflow-samples/CustomerSupport.yaml (escalate_agent):
- kind: InvokeAzureAgent
id: escalate_agent
conversationId: =Local.EscalationConversationId
agent:
name: TicketEscalationAgent
input:
arguments:
TicketId: =Local.TicketParameters.TicketId
IssueDescription: =Local.ServiceParameters.IssueDescription
ResolutionSummary: =Local.ResolutionSteps
externalLoop:
when: =Not(Local.EscalationParameters.IsComplete)
output:
autoSend: true
responseObject: Local.EscalationParameters
The agent is constrained to a JSON schema like:
class EscalationResponse(BaseModel):
IsComplete: bool
UserMessage: str
(See the matching Python / .NET Customer Support samples.)
What we observe
responseObject: Local.EscalationParameterscorrectly parses the JSON for workflow state /when.autoSend: trueyields the agent's raw text, which is the whole JSON object whenresponse_formatis set.outputappears to only supportautoSend(bool),responseObject, andmessages. There is nooutputproperty that identifies which field is the user-visible message.
We would like to hear from maintainers how a host is supposed to surface UserMessage in this pattern, given the constraint above. Thanks.
- Dominant language
- Python
- Stars
- 13.6k
- Forks
- 2.3k
- Avg merge
- 1d 21h
- Merged PRs (30d)
- 362
Contributor 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
-
python triage
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
microsoft/agent-framework#8599 · 1 comment ·
-
python
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
microsoft/agent-framework#8590 ·
-
python triage
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
microsoft/agent-framework#8523 · 1 comment ·
-
.NET compaction documentation
Difficulty 1/5 Under an hour Newbie friendliness 82/100
microsoft/agent-framework#4629 · 1 comment ·
-
.NET harness python reproduced
microsoft/agent-framework#8620 · 1 comment · 1 assignee ·
All issues in microsoft/agent-framework
Similar issues
-
documentation help wanted
Difficulty 2/5 1-3 hours Newbie friendliness 90/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 90/100
simonw/sqlite-utils#872 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100