L3: Visual Workflow Builder — Multi-Agent Orchestration
📋 Agenda
Estimated reading time: ~35 minutes | Hands-on Portal Lab
Learning outcomes:
- ✅ Distinguish between a Prompt Agent and a Workflow Agent conceptually
- ✅ Design a sequential multi-agent workflow using the visual canvas
- ✅ Configure a Human-in-the-Loop approval gate within a workflow
- ✅ Switch between Visual and YAML views and understand the dual-view model
Prerequisites:
- Completed L1 — have at least one Prompt Agent created
- Ideally, two specialized agents created for the lab (Researcher + Writer pattern)
Visual Workflow Builder is the defining feature of Microsoft Foundry (New). It does not exist in Foundry Classic. This article covers it as a dedicated topic because multi-agent orchestration fundamentally changes what non-technical teams can build.
1. Problem Statement
1.1. What a Single Agent Cannot Do
A Prompt Agent (L1) excels at stateless Q&A: user asks, agent answers, end. Real business processes are not stateless transactions — they are multi-step pipelines:
- Loan approval: Collect application → Credit check → Risk analysis → Human review → Decision letter
- Content pipeline: Research brief → Draft article → Fact-check → Legal review → Publish
- IT incident: Alert detection → Root cause analysis → Remediation proposal → IT Manager approval → Execute fix
A single agent handling all of this runs into two hard limits:
- Context window overflow — complex pipelines exceed LLM context capacity
- Specialization loss — a generalist agent performs worse than specialized agents at each step
1.2. Workflow Agent as Orchestrator
A Workflow Agent (Agent Luồng công việc) is not itself an LLM — it is an orchestrator that coordinates multiple Prompt Agents (and other steps) in a defined sequence, passing outputs from one node as inputs to the next.
2. Core Concepts
2.1. Workflow Agent Architecture
2.2. Workflow Types
| Type | Definition | Use Case |
|---|---|---|
| Sequential (Tuần tự) | Agent A completes → passes output to Agent B → B completes → Agent C... | Report generation, content pipeline |
| Human-in-the-Loop (Con người trong vòng lặp) | Workflow pauses at a gate, waits for human approval/input | Approval flows, quality gates |
| Group Chat (Hội thoại nhóm) | Multiple agents collaborate dynamically; any agent can respond based on context | Brainstorming, multi-perspective analysis |
2.3. Glossary & Vocabulary
| Term | Vietnamese Meaning | Explanation |
|---|---|---|
| Node | Nút | A single step in the workflow canvas; can be an agent, a condition, or a human gate |
| Edge | Cạnh nối | The arrow connecting two nodes — defines data flow direction |
| Variable | Biến | A named container passing data between nodes (e.g., {research_output}) |
| YAML | Định dạng cấu hình văn bản | Human-readable serialization format; the underlying definition of a workflow |
| Human-in-the-Loop | Con người trong vòng lặp | A design pattern where a workflow pauses for human review before continuing |
| Orchestrator | Điều phối viên | The workflow agent itself — it does not answer questions; it manages which agent runs when |
3. Lab: Building a Content Generation Workflow
3.1. Prerequisite: Create Two Specialized Prompt Agents
Before building the workflow, create two agents in the Build → Agents section:
Agent 1 — Research Agent:
Name: Research Agent
Instructions:
You are a research specialist. Given a topic, search available knowledge
sources and produce a structured research brief with:
- 3-5 key facts
- Main perspectives (supporting and opposing)
- Recommended angle for a 500-word article
Tools: Bing Search (enabled), File Search (if available)
Agent 2 — Writer Agent:
Name: Writer Agent
Instructions:
You are a professional content writer. Given a research brief, produce
a complete 500-word article with:
- A compelling title
- Introduction, 2-3 body sections, conclusion
- Clear, jargon-free language suitable for a general audience
Tools: None required
3.2. Open the Workflow Builder
ai.azure.com → Build → Workflows
→ Click "Create workflow"
→ Choose template: "Sequential" (for this lab)
→ Name: "Content Generation Pipeline"
→ Save