* feat: Make Executor id field mandatory When checkpointing is involved, it is critical to keep executor ids consistent between runs, even when recreating a new object tree for the workflow. The default id-setting mechanism generated a guid for part of the id, making it not work when restoring from a checkpoint. This change prevents this situation from arising. * feat: Enable running untyped Workflows With the change to enable delay-instantiation of executors and support for async Executor factory methods, we must instantiate the starting executor to know what are the valid input types for the workflow. To avoid forcing instantiation every time, and to better support workflows with multiple input types, we enable support for build and interacting with the base Workflow type without type annotations, and remove the requirement to know a valid input type when initiating a run. * feat: Support Output from any executor and multiple outputs.
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:
-
From the root of the repository, navigate the console to the project folder:
cd dotnet/samples/GettingStarted/Workflows/Declarative/DeclarativeWorkflow -
Examine existing secret definitions:
dotnet user-secrets list -
If needed, perform first time initialization:
dotnet user-secrets init -
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.ps1relies upon theFOUNDRY_PROJECT_ENDPOINTsetting.
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.
-
From the root of the repository, navigate the console to the project folder:
cd dotnet/samples/GettingStarted/Workflows/Declarative/DeclarativeWorkflow -
Run the demo referencing a sample workflow by name:
dotnet run HelloWorld -
Run the demo with a path to any workflow file:
dotnet run c:/myworkflows/HelloWorld.yaml