Files
agent-framework/dotnet/samples/GettingStarted/Workflows/Declarative
T
Chris 77404d165c .NET Workflows - Code Generation for Declarative Workflow (#655)
* Notes

* Readme typo

* Update readme

* Checkpoint

* Namespace fix

* Fix ID and namespace

* Checkpoint

* Verified

* Comments

* Isolate "Kit"

* Address note: static

* Checkpoint

* Checkpoint "Executor<>"

* Prefix and internal executors

* Test passing

* Cleanup

* Rename "session" concept

* Revert workflow debug

* Fix template base / pragma

* Tune system scope

* Update dotnet/src/Microsoft.Agents.Workflows.Declarative/CodeGen/ResetVariableTemplate.tt

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Fix empty template

* Add validation for codegen ut

* Fix test

* Codegen baselines

* Constant

* Prep

* Mark TODO

* Fix

* Namespace

* One more

* Update baselines

* Checkpoint

* Checkpoint

* Checkpoint

* fme

* Checkpoint

* Another step

* Fixed up

* Roslyn

* Fix

* More cleaning

* Async

* Fix

* Enum checkpoint

* Refine enum

* Checkpoint

* Sync templates

* Checkpoint

* Streamline

* Pre-merge analyzer updates

* Foreach

* Placeholders

* Checkpoint

* Clean-up

* Sample path resolution

* Checkpoint

* Checkpoint - Workflow Code Building

* Validation

* Test cleanup

* Update test basline

* Update test baseline

* Fix DefaultTemplate usage

* Validation checkpoint

* Fix break/continue edges

* Verify generated code builds

* Fix merge

* Fix build validation

* Update template handling of literal string values.

* Test for metadata case

* Update baselines

* Fix merge

* Checkpoint

* Checkpoint: Conditions

* Invoke Agent Checkpoint

* Namespace

* Address code-analysis issues

* Cross platform test support

* Invoke agent checkpoint

* Clean sample

* Checkpoint: Agent Invoke Input Messages

* Checkpoint - Passing

* Checkpoint

* Regenerate all template + port conversation fix

* Checkpoint: Tests good

* Fix test for unbuntu

* Fix build command

* Checkpoint - E2E

* Test fix

* Update integration tests

* Fix merge

* Update

* Checkpoint !!!

* Baby steps

* Checkpoint

* Checkpoint E2E !!!

* So close...

* Integrate test validation

* Fix merge

* Rebase tests

* Namespace

* Namespace

* Test cleanup

* Sample comment cleanup

* Checkpoint: List conversion

* Include these

* CheckPoint: ParseValue

* Namespace

* Fix sampel

* More namspace

* Comments

* Test updates

* Test fix

* Better build

* Shared code

* Sort solution

* Fix build

* Prune solution

* One more

* Conversion matrix

* Final table conversion

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
77404d165c ยท 2025-09-30 21:56:14 +00:00
History
..

Summary

This demo showcases the ability to parse a declarative Foundry Workflow file (YAML) to build a Workflow<> be executed using the same pattern as any code-based workflow.

Configuration

This demo requires configuration to access agents an Azure Foundry Project.

Settings

We suggest using .NET Secret Manager to avoid the risk of leaking secrets into the repository, branches and pull requests. You can also use environment variables if you prefer.

To set your secrets as an environment variable (PowerShell):

$env:FOUNDRY_PROJECT_ENDPOINT="https://..."

To set your secrets with .NET Secret Manager:

  1. From the root of the repository, navigate the console to the project folder:

    cd dotnet/samples/GettingStarted/Workflows/Declarative/DeclarativeWorkflow
    
  2. Examine existing secret definitions:

    dotnet user-secrets list
    
  3. If needed, perform first time initialization:

    dotnet user-secrets init
    
  4. Define setting that identifies your Azure Foundry Project (endpoint):

    dotnet user-secrets set "FOUNDRY_PROJECT_ENDPOINT" "https://..."
    

Authorization

Use Azure CLI to authorize access to your Azure Foundry Project:

az login
az account get-access-token

Agents

The sample workflows rely on agents defined in your Azure Foundry Project.

To create agents, run the Create.ps1 script. This will create the agents used in the sample workflows in your Azure Foundry Project and format a script you can copy and use to configure your environment.

Note: Create.ps1 relies upon the FOUNDRY_PROJECT_ENDPOINT setting.

Execution

Run the demo from the console by specifying a path to a declarative (YAML) workflow file.
The repository has example workflows available in the root /workflow-samples folder.

  1. From the root of the repository, navigate the console to the project folder:

    cd dotnet/samples/GettingStarted/Workflows/Declarative/DeclarativeWorkflow
    
  2. Run the demo referencing a sample workflow by name:

    dotnet run HelloWorld
    
  3. Run the demo with a path to any workflow file:

    dotnet run c:/myworkflows/HelloWorld.yaml