/gpt-rag-orchestrator

The GPT-RAG Orchestrator service is an agentic orchestration layer built on Azure AI Foundry Agent Service and the Semantic Kernel framework. It enables agent-based RAG workflows by coordinating multiple specialized agents to collaboratively generate accurate, context-aware responses for complex user queries.

Primary LanguagePythonMIT LicenseMIT

Part of GPT‑RAG

GPT-RAG Orchestrator

Part of the GPT-RAG solution.

The GPT-RAG Orchestrator service is an agentic orchestration layer built on Azure AI Foundry Agent Service and the Semantic Kernel framework. It enables agent-based RAG workflows by coordinating multiple specialized agents—each with a defined role—to collaboratively generate accurate, context-aware responses for complex user queries.

How the Orchestrator Works

The orchestrator uses Azure AI Foundry Agent Service for single-agent and connected-agent flows, leveraging its managed runtime for agent lifecycle, state management, and tool orchestration. For multi-agent scenarios, it integrates the Semantic Kernel Agent Framework to compose and coordinate specialized agents working together on tasks. Custom agent strategies enable developers to add domain-specific logic without modifying the core orchestration code.

Developers can extend the orchestrator by creating a new subclass of BaseAgentStrategy, implementing the required initiate_agent_flow method (along with any additional helpers), and registering it in AgentStrategyFactory.get_strategy under a unique key.

Examples of available strategies include the Single Agent RAG Strategy and the NL2SQL Strategy.

Prerequisites

Provision the infrastructure first by following the GPT-RAG repository instructions GPT-RAG. This ensures all required Azure resources (e.g., Container App, Storage, AI Search) are in place before deploying the web application.

Click to view software prerequisites
The machine used to customize and or deploy the service should have:
Click to view permissions requirements
To customize the service, your user should have the following roles:
Resource Role Description
App Configuration Store App Configuration Data Owner Full control over configuration settings
Container Registry AcrPush Push and pull container images
Key Vault Key Vault Contributor Manage Key Vault Secrets
AI Search Service Search Service Contributor Create or update search service components
AI Search Service Search Index Data Contributor Read and write index data
Storage Account Storage Blob Data Contributor Read and write blob data
AI Foundry Project Azure AI Project User Access and work with the AI Foundry project
Cosmos DB Cosmos DB Built-in Data Contributor Read and write documents in Cosmos DB

To deploy the service, assign these roles to your user or service principal:

Resource Role Description
App Configuration Store App Configuration Data Reader Read config
Container Registry AcrPush Push images
Azure Container App Azure Container Apps Contributor Manage Container Apps

Ensure the deployment identity has these roles at the correct scope (subscription or resource group).

How to deploy the orchestrator service

Make sure you're logged in to Azure before anything else:

az login

Clone this repository.

If you used azd provision

Just run:

azd env refresh
azd deploy 

Important

Make sure you use the same subscription, resource group, environment name, and location from azd provision.

If you did not use azd provision

You need to set the App Configuration endpoint and run the deploy script.

Bash (Linux/macOS):

export APP_CONFIG_ENDPOINT="https://<your-app-config-name>.azconfig.io"
./scripts/deploy.sh

PowerShell (Windows):

$env:APP_CONFIG_ENDPOINT = "https://<your-app-config-name>.azconfig.io"
.\scripts\deploy.ps1

Previous Releases

Note

For earlier versions, use the corresponding release in the GitHub repository (e.g., v1.0.0 for the initial version).

🤝 Contributing

We appreciate contributions! See CONTRIBUTING.md for guidelines on the Contributor License Agreement (CLA), code of conduct, and submitting pull requests.

Trademarks

This project may contain trademarks or logos. Authorized use of Microsoft trademarks or logos must follow Microsoft’s Trademark & Brand Guidelines. Modified versions must not imply sponsorship or cause confusion. Third-party trademarks are subject to their own policies.