Bug Report
Summary
The workflow_declarative DevUI sample under python/samples/02-agents/devui/workflow_declarative/ always returns "child" regardless of the age entered via the DevUI chat interface.
Root Causes
workflow.yaml uses =inputs.age — this only works with structured dict input (e.g. {"age": 25}). The DevUI sends chat text, which populates System.LastMessage.Text, not Inputs.age. So =inputs.age is always Blank (treated as 0), causing 0 < 13 → True → "child" for all input.workflow.yaml uses the turn.* namespace — a .NET/Bot Framework convention. The Python runtime uses Local.* for per-turn variables.workflow.yaml references workflow.outputs.category (lowercase w) — the Python state engine is case-sensitive; the correct namespace is Workflow.Outputs.*.JoinExecutor does not handle a single Message trigger — when a Message (not list[Message]) is passed as the trigger, _ensure_state_initialized cannot extract user text into System.LastMessage.Text, compounding issue 1.
Steps to Reproduce
- Start the DevUI sample:
python workflow.py - Open the DevUI chat
- Enter any age (e.g.
25) - Observe the agent always responds with "child"
Expected Behavior
The agent correctly categorizes the user based on age (child / teen / adult).
Environment
- Python Agent Framework
python/samples/02-agents/devui/workflow_declarative/
Bug Report
Summary
The
workflow_declarativeDevUI sample underpython/samples/02-agents/devui/workflow_declarative/always returns "child" regardless of the age entered via the DevUI chat interface.Root Causes
workflow.yamluses=inputs.age— this only works with structured dict input (e.g.{"age": 25}). The DevUI sends chat text, which populatesSystem.LastMessage.Text, notInputs.age. So=inputs.ageis alwaysBlank(treated as0), causing0 < 13→True→ "child" for all input.workflow.yamluses theturn.*namespace — a .NET/Bot Framework convention. The Python runtime usesLocal.*for per-turn variables.workflow.yamlreferencesworkflow.outputs.category(lowercasew) — the Python state engine is case-sensitive; the correct namespace isWorkflow.Outputs.*.JoinExecutordoes not handle a singleMessagetrigger — when aMessage(notlist[Message]) is passed as the trigger,_ensure_state_initializedcannot extract user text intoSystem.LastMessage.Text, compounding issue 1.Steps to Reproduce
python workflow.py25)Expected Behavior
The agent correctly categorizes the user based on age (child / teen / adult).
Environment
python/samples/02-agents/devui/workflow_declarative/