mirror of
https://github.com/microsoft/agent-framework.git
synced 2026-06-16 21:04:09 +08:00
fd253c0b0e
* Move workflow-samples and agent-samples under declarative-agents and update all references Agent-Logs-Url: https://github.com/microsoft/agent-framework/sessions/f70f7d19-9256-4eec-b7db-28007d74440c Co-authored-by: sphenry <6749825+sphenry@users.noreply.github.com> * Fix relative paths in README files inside moved directories Agent-Logs-Url: https://github.com/microsoft/agent-framework/sessions/f70f7d19-9256-4eec-b7db-28007d74440c Co-authored-by: sphenry <6749825+sphenry@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: sphenry <6749825+sphenry@users.noreply.github.com> Co-authored-by: Shawn Henry <shahen@microsoft.com>
fd253c0b0e
ยท
2026-04-02 09:34:33 +00:00
History
Declarative Workflows
Declarative workflows allow you to define multi-agent orchestration patterns in YAML, including:
- Variable manipulation and state management
- Control flow (loops, conditionals, branching)
- Agent invocations
- Human-in-the-loop patterns
See the main workflows README for the list of available samples.
Prerequisites
pip install agent-framework-declarative
Running Samples
Each sample directory contains:
workflow.yaml- The declarative workflow definitionmain.py- Python code to load and execute the workflowREADME.md- Sample-specific documentation
To run a sample:
cd <sample_directory>
python main.py
Workflow Structure
A basic workflow YAML file looks like:
name: my-workflow
description: A simple workflow example
actions:
- kind: SetValue
path: turn.greeting
value: Hello, World!
- kind: SendActivity
activity:
text: =turn.greeting
Action Types
Variable Actions
SetValue- Set a variable in stateSetVariable- Set a variable (.NET style naming)AppendValue- Append to a listResetVariable- Clear a variable
Control Flow
If- Conditional branchingSwitch- Multi-way branchingForeach- Iterate over collectionsRepeatUntil- Loop until conditionGotoAction- Jump to labeled action
Output
SendActivity- Send text/attachments to userEmitEvent- Emit custom events
Agent Invocation
InvokeAzureAgent- Call an Azure AI agentInvokePromptAgent- Call a local prompt agent
Tool Invocation
InvokeFunctionTool- Call a registered Python function
Human-in-Loop
Question- Request user inputWaitForInput- Pause for external input