Quickstart: Multi-Agent Workflow
This quickstart showcases how to build a durable, multi-agent workflow using Dapr Agents and Workflows. The workflow acts as a customer support system that triages support tickets and provides troubleshooting resolutions through two cooperating AI agents. Catalyst hosts the workflow execution engine, manages the agent state, performs LLM calls, with the application containing the workflow definition, agent logic, and tools.

Prerequisites
Before you proceed, ensure you have the following prereqs installed:
Log in to Catalyst
Authenticate to Diagrid Catalyst using the following command:
diagrid login
Confirm your organization and user details are correct:
diagrid whoami
Clone quickstart code
Clone the quickstart code from the Diagrid Labs GitHub repository and navigate to the appropriate directory:
diagrid dev quickstart --type multi-agent-workflow --language python
Configure OpenAI API Key
Navigate to the resources folder and update the openai.yaml file with your OpenAI API key:
metadata:
- name: key
value: "YOUR_OPENAI_API_KEY"
Install python dependencies in a virtual environment.
This quickstart uses the venv module to create the virtual environment. Please feel free to adapt if you prefer to use conda, pipenv, or another alternative.
python -m venv .venv
- MacOS
- Linux
- Windows
If you are using MacOS, start the virtual environment with the following command:
source .venv/bin/activate
Don't forget to close your virtual environment with deactivate when done with the quickstart
If you are using Linux, start the virtual environment with the following command:
source .venv/bin/activate
Don't forget to close your virtual environment with deactivate when done with the quickstart
If you are using PowerShell on Windows, start the virtual environment with the following command:
.venv/Scripts/Activate.ps1
If you are using the Command Prompt on Windows, start the virtual environment with the following command:
.venv/Scripts/activate.bat
If running in the Windows Command Prompt, don't forget to close your virtual environment with .venv/Scripts/deactivate.bat when done with the quickstart
Install the python app requirements:
pip install -r requirements.txt
Run quickstart application
To run the quickstart locally, use the diagrid dev run command. This command uses the dapr multi-app run file in the root of the code directory to:
- Create a Catalyst project: If the project does not exist, the command will create a new project
- Create resources: Creates the necessary resources on Catalyst such as App IDs, Components, and Diagrid managed services including multiple state stores (execution state, memory state, and registry state) and pubsub.
- Inject environment variables: Configures the Dapr client to talk to Catalyst
- Launch the quickstart application: Locates the code directory and launches the application using the app command input
For additional details on the Catalyst local development experience, read Develop Locally with Catalyst APIs.
Run the application using the following command:
diagrid dev run -f dev-python-multi-agent-workflow.yaml --project dev-python-multi-agent-workflow
Interact with Multi-Agent Workflow
With the quickstart application running, it's time to test the Multi-Agent Workflow. Use the curl command below or take advantage of the REST Client extension using Visual Studio Code with the test.rest file in the root folder of the repo.
Upon successful execution, the customer-support-workflow logs should show both agents working in sequence: the Triage Agent validating entitlement and urgency, followed by the Expert Agent analyzing the environment and generating a resolution.
You can also use the Workflow viewer in the Catalyst web console to see the details for your completed workflow instance and examine the state stored across the two state stores (execution and memory).
Start multi-agent workflow
Open a new terminal and execute the following curl command to start a new customer support workflow:
curl -i -X POST http://localhost:5001/workflow/start \
-H "Content-Type: application/json" \
-d '{"customer": "Alice", "issue": "My Dapr system fails to start in production."}'
This command will block until the agent completes the workflow that has been started. The workflow will:
- Run the Triage Agent to check customer entitlement using the
check_entitlementtool and assess urgency based on the issue description - If entitled, run the Expert Agent to retrieve environment details using the
get_customer_environmenttool and generate a detailed resolution - Return a customer-ready response with the proposed fix and urgency level
- Persist all execution state and agent conversation memory in Catalyst's managed key-value stores
Monitor in Catalyst Dashboard
Navigate to the Catalyst web console to explore and monitor your agent execution.
- View Workflow Execution
Use the Workflows section to observe the real-time progress of your workflow. You can examine each activity, along with its input and output, and the time it took to complete or fail.
The diagram below shows the workflow execution.

- Examine State Storage
Catalyst automatically maintains state stores that persist workflow execution and agent conversation memory data:
statestoreWorkflow execution state and retry informationmemory-stateConversation history and context
You can inspect the key/value data using the Diagrid KV Store data explorer.
- View Application Map
The Application Map visualizes how the customer support system app interacts with Catalyst-managed components and dependencies. It helps identify relationships between the app, its tools, and external resources.
You can try another query with a different customer name that does not have an entitlement. This will demonstrate how the workflow handles non-entitled users by skipping the Expert Agent step and returning a rejection response:
curl -i -X POST http://localhost:5001/workflow/start \
-H "Content-Type: application/json" \
-d '{"customer": "Bob", "issue": "The Kubernetes Jobs controller keeps crashing on startup, in production!"}'
You can observe the workflow status in the Catalyst Workflow viewer, where the execution will end after the Triage Agent reports the missing entitlement.
Clean up resources
If you are not going to continue to use this application, you can delete the resources using the following commands:
diagrid appid delete customer-support-system
If you want to delete the entire Catalyst project, including the managed infrastructure resources, run the diagrid project delete command.