Files
agent-framework/python/samples/03-workflows/declarative
T
Copilot fd253c0b0e Python: Move workflow-samples and agent-samples under declarative-agents directory (#5011)
* 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
..
2026-03-31 15:20:35 +00:00

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 definition
  • main.py - Python code to load and execute the workflow
  • README.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 state
  • SetVariable - Set a variable (.NET style naming)
  • AppendValue - Append to a list
  • ResetVariable - Clear a variable

Control Flow

  • If - Conditional branching
  • Switch - Multi-way branching
  • Foreach - Iterate over collections
  • RepeatUntil - Loop until condition
  • GotoAction - Jump to labeled action

Output

  • SendActivity - Send text/attachments to user
  • EmitEvent - Emit custom events

Agent Invocation

  • InvokeAzureAgent - Call an Azure AI agent
  • InvokePromptAgent - Call a local prompt agent

Tool Invocation

  • InvokeFunctionTool - Call a registered Python function

Human-in-Loop

  • Question - Request user input
  • WaitForInput - Pause for external input