Skip to content

Facilitates creating modular specialized agents that coordinate across diverse data types and tools like M365 and Teams to assist multi-disciplinary healthcare workflows—such as cancer care.

License

Notifications You must be signed in to change notification settings

Azure-Samples/healthcare-agent-orchestrator

Repository files navigation

Healthcare Agent Orchestrator

Healthcare Agent Orchestrator is a multi-agent accelerator that coordinates modular specialized agents across diverse data types and tools like M365 and Teams to assist multi-disciplinary healthcare workflows—such as cancer care.

This repository contains comprehensive information to help you get started.

Important

Healthcare Agent Orchestrator is a code sample to help you build an agent intended for research and development use only. Healthcare Agent Orchestrator is not designed or intended to be deployed in clinical settings as-is nor is it intended for use in the diagnosis or treatment of any health or medical condition, and its performance for such purposes has not been established. By using the Healthcare Agent Orchestrator sample, you are acknowledging that you bear sole responsibility and liability for any use of Healthcare Agent Orchestrator, including verification of outputs and incorporation into any product or service intended for a medical purpose or to inform clinical decision-making, compliance with applicable healthcare laws and regulations, and obtaining any necessary clearances or approvals.

Features

  • Demonstrates the use of the Healthcare Agent Orchestrator for solving complex tasks.
  • Facilitates modular and scalable agent-based solutions for diverse healthcare needs.
  • Provides tools for creating and managing specialized agents for specific tasks.
  • Showcases the application of multi-model AI in healthcare scenarios.
  • Supports adding your own data for agents to process and analyze.
  • Integrates with Copilot Studio through Microsoft Cloud for Healthcare.
  • Enables integration with Microsoft Teams for collaborative workflows.
  • Highlights interoperability with Azure services and AI models such as CxrReportGen.

Solution Architecture

Solution Architecture

For each agent defined in agents.yaml, an Azure bot and associated Teams app are created. These are integrated into Semantic Kernel's group chat feature, allowing a group of experts to collaboratively solve tasks. Each agent has access to a set of tools. New agents can be added by updating agents.yaml and redeploying the application.

Getting Started

To get started with using our code sample for multi-agent workflows, follow the instructions below to set up your environment and run the sample application.

Prerequisites

Important

Follow the steps in order. Each step builds on the previous ones, and jumping ahead may require restarting deployments that can take significant time to complete. Detailed documentation is linked for each step if you need additional context.

  • An Azure subscription with:
    • Azure OpenAI: 100k Tokens per Minute of Pay-as-you-go quota for GPT-4o or GPT-4.1
    • Optionally access to a reasoner model such as GPT-o3-mini
    • GPU resources for one of the following:
      • NCADSA100v4 Family: 24 cores (one instance of Standard_NC24ads_A100_v4), or
      • NCADSH100v5 Family: 40 cores (one instance of Standard_NC40ads_H100_v5)
    • Azure App Services: Available VM quota - P1mv3 recommended
    • A resource group where you have Owner permissions for deployment (subscription- level owner permissions is OK too)
  • Azure CLI
  • Azure Developer CLI
  • Python 3.12 or later (for running locally)

Step 1: Verify Prerequisites (Quota & Permissions)

Before deploying, verify your Azure subscription has sufficient quota and your account has the necessary permissions to avoid resource limitations during deployment.

Resource Requirements:

  • Azure OpenAI and GPU Quota

    • Ensure you have quota for either GPT-4o or GPT-4.1 models (GlobalStandard) in your AZURE_GPT_LOCATION region (recommended: 100K-200K TPM)
    • Confirm availability of at least 24 cores of NCADSA100v4 for Standard_NC24ads_A100_v4 VM or 40 cores of NCADSH100v5 for Standard_NC40ads_H100_v5 VM in your AZURE_HLS_LOCATION region
    • The Azure AI Management Center is a helpful tool for this.
  • App Service Capacity

    • Verify App Service quota in your AZURE_APPSERVICE_LOCATION region:
      az quota list --scope /subscriptions/<subscription-id>/providers/Microsoft.Web/locations/<region> --output table --query "[].{Name:properties.name.localizedValue, Quota:properties.limit.value, Unit:properties.unit}"
    • Ensure sufficient capacity for P1mv3 App Service Plan
    • Note: Quota displays show limits only, not current usage. Check existing deployments to confirm available capacity.

Required Permissions:

  • Azure Resource Access

    • You need Owner rights on at least one resource group
    • If you lack subscription-level owner permissions, ask your IT administrator to:
      • Create a resource group for you
      • Grant you the Owner role on that specific resource group
      • Use that resource group in Step 3.
  • Teams Integration

    • Ensure your IT admin allows custom Teams apps to be uploaded—see Teams app upload

Step 2: Create an azd Environment & Set Variables

Now use the region values you identified in Step 1 where you confirmed quota availability.

If you've identified single region for deployment, you can proceed to authentication. Otherwise, use the following table to set locations where you have quota/capacity available.

Variable Purpose Default Value
AZURE_LOCATION Primary location for all resources Defaults to resource group region
AZURE_HLS_LOCATION Region for GPU resources Defaults to AZURE_LOCATION
AZURE_GPT_LOCATION Region for GPT resources Defaults to AZURE_LOCATION
AZURE_APPSERVICE_LOCATION Region for App Service deployment Defaults to AZURE_LOCATION
GPU_INSTANCE_TYPE GPU SKU for model deployment Defaults to Standard_NC24ads_A100_v4

First, authenticate with Azure services:

# Log in to Azure CLI and Azure Developer CLI
az login                 # add -t <TENANT_ID> if needed
azd auth login           # add --tenant <TENANT_ID> if needed

Create a new environment with a short name:

# Create environment (keep name ≤ 8 characters for best results)
azd env new <envName>

Configure region settings (only set values that differ from your main AZURE_LOCATION):

# Configure specific regions where you have quota (only needed if different from AZURE_LOCATION)
azd env set AZURE_HLS_LOCATION <hls-region>
azd env set AZURE_GPT_LOCATION <gpt-region>
azd env set AZURE_APPSERVICE_LOCATION <region>

# Override GPU instance type (only needed if not using the default Standard_NC24ads_A100_v4)
azd env set GPU_INSTANCE_TYPE Standard_NC40ads_H100_v5

Note

If you want to setup the research agent with Graph Rag, see more information in the User Guide

Step 3: Deploy the Infrastructure

Now that your environment is set up, you can deploy all the necessary resources and infrastructure for the Healthcare Agent Orchestrator.

Important

Deploying the infrastructure will create Azure resources in your subscription and may incur costs.

Caution

Ensure you have completed Step 1 and Step 2 before you proceed. Deploying the infrastructure can take a long time, and fixing errors after an incomplete or failed deployment is often even more time-consuming. Double-check your quotas, permissions, and environment variables now to avoid lengthy troubleshooting later.

To start the deployment process, run:

azd up

During deployment you will be prompted for the following information if not provided in the environment:

  • You’ll be prompted for subscription, region, and resource group.
  • Pick User as the principal type.
  • Quota tip: 100 tokens/min is enough; 200 gives faster responses.

This command will provision all required Azure resources according to your environment settings, deploy the application code, and configure the necessary connections between components.

Tip

For persistent deployment issues, use azd down --purge to completely reset your environment and avoid complications from Azure's soft-delete behavior by manually deleting the resource group.

Important

The full deployment can take 20-30 minutes to complete. If you encounter any issues during the deployment process, see the Troubleshooting guide for common deployment problems and solutions.

Step 4: Install the Agents in Microsoft Teams

Now that your infrastructure is deployed, you need to install the agents in Microsoft Teams to interact with them:

For bash users:

# From repo root
./scripts/uploadPackage.sh ./output <teamsChatId|meetingLink> [tenantId]

For PowerShell users:

# From repo root
.\scripts\uploadPackage.ps1 -directory ./output -chatOrMeeting <teamsChatId|meetingLink> [-tenantId <tenant-id>] 

During this process:

  • You'll need a Teams chat ID or meeting link where the agents will be installed
  • To get a chat ID, follow the instructions in docs/teams.md#get-chat-id

Tip

See the Teams documentation for detailed instructions on finding chat IDs, creating Teams meetings for agents, and managing agent permissions within your Microsoft Teams environment.

Tip

If you encounter errors during agent installation or Teams integration, check the Troubleshooting guide for common issues and solutions related to package uploads, permissions, and Teams app installation.

Step 5: Test the Agents inside Teams

See the User Guide for a more complete guide, the most important commands are:

@Orchestrator clear                  # Reset conversation state

To start a tumor board review, try:

@Orchestrator Can you start a tumor board review for Patient ID: patient_4?

You can interact with any of the agents:

@PatientHistory create patient timeline for patient id patient_4
@PatientHistory can you tell me more about when chemotherapy happened relative to the KRAS mutation?

Tip

For detailed instructions on testing agents with sample scenarios and troubleshooting tips, see the User Guide.

[Optional] Uninstall / Clean-up

To completely remove all deployed resources and clean up your environment, run:

azd down --purge

This command will permanently delete all Azure resources created during deployment, including resource groups, managed identities, storage accounts, endpoints, and other associated services.

See Also

Resources

Features Documentation

External Documentation

Guidance

Running through the installation will deploy:

Security

All resources within this template use Entra Id authentication. No passwords are stored anywhere. Be advised that the web app does expose a public unauthenticated endpoint and that the files you put under infra/patient_data will be publicly available.

Additional Guidance

For detailed guidance, refer to the User Guide:

These sections help set appropriate expectations for real-world healthcare implementations.

Ethical Considerations

Microsoft believes Responsible AI is a shared responsibility and we have identified six principles and practices that help organizations address risks, innovate, and create value: fairness, reliability and safety, privacy and security, inclusiveness, transparency, and accountability. When downloaded or used in accordance with our terms of service, developers should work with their supporting model team to ensure this model meets requirements for the relevant use case and addresses unforeseen product misuse.  While testing the agents and models with images and/or text, ensure the data is has no PHI/PII and that there is no patient information or information that can be traced to a patient identity. Please see Microsoft's Responsible AI Principles and approach available at https://www.microsoft.com/en-us/ai/principles-and-approach/

Authorized Use

This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow Microsoft's Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party's policies.

Contact Us

For questions or inquiries into our products, please contact us at [email protected]

Issues and Support

If you encounter any issues or bugs, please create a GitHub issue with details about the problem and steps to reproduce it. For security issues, see Reporting Security Issues

How to Contribute

We welcome contributions to improve this project! Please see our Contribution Guide for information on how to get started with contributing code, documentation, or other improvements. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com

When you submit a pull request, a CLA bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.

About

Facilitates creating modular specialized agents that coordinate across diverse data types and tools like M365 and Teams to assist multi-disciplinary healthcare workflows—such as cancer care.

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •