Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 11 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,22 +15,22 @@ The Multi-Agent Custom Automation Engine solution accelerator allows users to sp
</div>
<br/>

<h2><img src="./documentation/images/readme/solution-overview.png" width="48" />
<h2><img src="./docs/images/readme/solution-overview.png" width="48" />
Solution overview
</h2>

The solution leverages Azure OpenAI Service, Azure Container Apps, Azure Cosmos DB, and Azure Container Registry to create an intelligent automation pipeline. It uses a multi-agent approach where specialized AI agents work together to plan, execute, and validate tasks based on user input.

### Solution architecture
|![image](./documentation/images/readme/macae-architecture.png)|
|![image](./docs/images/readme/macae-architecture.png)|
|---|



### How to customize
If you'd like to customize the solution accelerator, here are some common areas to start:

[Custom scenario](./documentation/CustomizeSolution.md)
[Custom scenario](./docs/CustomizeSolution.md)

<br/>

Expand Down Expand Up @@ -63,14 +63,14 @@ If you'd like to customize the solution accelerator, here are some common areas
</details>

<br /><br />
<h2><img src="./documentation/images/readme/quick-deploy.png" width="48" />
<h2><img src="./docs/images/readme/quick-deploy.png" width="48" />
Quick deploy
</h2>

### How to install or deploy
Follow the quick deploy steps on the deployment guide to deploy this solution to your own Azure subscription.

[Click here to launch the deployment guide](./documentation/DeploymentGuide.md)
[Click here to launch the deployment guide](./docs/DeploymentGuide.md)
<br/><br/>

| [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/microsoft/Multi-Agent-Custom-Automation-Engine-Solution-Accelerator) | [![Open in Dev Containers](https://img.shields.io/static/v1?style=for-the-badge&label=Dev%20Containers&message=Open&color=blue&logo=visualstudiocode)](https://vscode.dev/redirect?url=vscode://ms-vscode-remote.remote-containers/cloneInVolume?url=https://github.com/microsoft/Multi-Agent-Custom-Automation-Engine-Solution-Accelerator) |
Expand All @@ -79,13 +79,13 @@ Follow the quick deploy steps on the deployment guide to deploy this solution to
<br/>

> ⚠️ **Important: Check Azure OpenAI Quota Availability**
<br/>To ensure sufficient quota is available in your subscription, please follow [quota check instructions guide](./documentation/quota_check.md) before you deploy the solution.
<br/>To ensure sufficient quota is available in your subscription, please follow [quota check instructions guide](./docs/quota_check.md) before you deploy the solution.

<br/>

### Prerequisites and Costs

To deploy this solution accelerator, ensure you have access to an [Azure subscription](https://azure.microsoft.com/free/) with the necessary permissions to create **resource groups and resources**. Follow the steps in [Azure Account Set Up](./documentation/AzureAccountSetUp.md).
To deploy this solution accelerator, ensure you have access to an [Azure subscription](https://azure.microsoft.com/free/) with the necessary permissions to create **resource groups and resources**. Follow the steps in [Azure Account Set Up](./docs/AzureAccountSetUp.md).

Check the [Azure Products by Region](https://azure.microsoft.com/en-us/explore/global-infrastructure/products-by-region/table) page and select a **region** where the following services are available: Azure OpenAI Service, Azure AI Search, and Azure Semantic Search.

Expand All @@ -107,11 +107,11 @@ Use the [Azure pricing calculator](https://azure.microsoft.com/en-us/pricing/cal
either by deleting the resource group in the Portal or running `azd down`.

<br /><br />
<h2><img src="./documentation/images/readme/business-scenario.png" width="48" />
<h2><img src="./docs/images/readme/business-scenario.png" width="48" />
Business Scenario
</h2>

|![image](./documentation/images/readme/macae-application.png)|
|![image](./docs/images/readme/macae-application.png)|
|---|

<br/>
Expand Down Expand Up @@ -148,7 +148,7 @@ By using the *Multi-Agent Custom Automation Engine* solution accelerator, users

<br /><br />

<h2><img src="./documentation/images/readme/supporting-documentation.png" width="48" />
<h2><img src="./docs/images/readme/supporting-documentation.png" width="48" />
Supporting documentation
</h2>

Expand Down Expand Up @@ -185,7 +185,7 @@ Have questions, find a bug, or want to request a feature? [Submit a new issue](h
<br/>

## Responsible AI Transparency FAQ
Please refer to [Transparency FAQ](./documentation/TRANSPARENCY_FAQ.md) for responsible AI transparency details of this solution accelerator.
Please refer to [Transparency FAQ](./docs/TRANSPARENCY_FAQ.md) for responsible AI transparency details of this solution accelerator.

<br/>

Expand Down
File renamed without changes.
33 changes: 16 additions & 17 deletions docs/CustomizeSolution.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,18 @@
# Table of Contents

- [Table of Contents](#table-of-contents)
- [Accelerating your own Multi-Agent - Custom Automation Engine MVP](#accelerating-your-own-multi-agent---custom-automation-engine-mvp)
- [Technical Overview](#technical-overview)
- [Adding a New Agent to the Multi-Agent System](#adding-a-new-agent-to-the-multi-agent-system)
- [API Reference](#api-reference)
- [Models and Datatypes](#models-and-datatypes)
- [Application Flow](#application-flow)
- [Agents Overview](#agents-overview)
- [Persistent Storage with Cosmos DB](#persistent-storage-with-cosmos-db)
- [Utilities](#utilities)
- [Summary](#summary)


# Accelerating your own Multi-Agent - Custom Automation Engine MVP

As the name suggests, this project is designed to accelerate development of Multi-Agent solutions in your environment. The example solution presented shows how such a solution would be implemented and provides example agent definitions along with stubs for possible tools those agents could use to accomplish tasks. You will want to implement real functions in your own environment, to be used by agents customized around your own use cases. Users can choose the LLM that is optimized for responsible use. The default LLM is GPT-4o which inherits the existing responsible AI mechanisms and filters from the LLM provider. We encourage developers to review [OpenAI’s Usage policies](https://openai.com/policies/usage-policies/) and [Azure OpenAI’s Code of Conduct](https://learn.microsoft.com/en-us/legal/cognitive-services/openai/code-of-conduct) when using GPT-4o. This document is designed to provide the in-depth technical information to allow you to add these customizations. Once the agents and tools have been developed, you will likely want to implement your own real world front end solution to replace the example in this accelerator.
Expand All @@ -15,21 +30,6 @@ This application is an AI-driven orchestration system that manages a group of AI
This code has not been tested as an end-to-end, reliable production application- it is a foundation to help accelerate building out multi-agent systems. You are encouraged to add your own data and functions to the agents, and then you must apply your own performance and safety evaluation testing frameworks to this system before deploying it.

Below, we'll dive into the details of each component, focusing on the endpoints, data types, and the flow of information through the system.
# Table of Contents

- [Table of Contents](#table-of-contents)
- [Accelerating your own Multi-Agent - Custom Automation Engine MVP](#accelerating-your-own-multi-agent---custom-automation-engine-mvp)
- [Technical Overview](#technical-overview)
- [Adding a New Agent to the Multi-Agent System](#adding-a-new-agent-to-the-multi-agent-system)
- [API Reference](#api-reference)
- [Models and Datatypes](#models-and-datatypes)
- [Application Flow](#application-flow)
- [Agents Overview](#agents-overview)
- [Persistent Storage with Cosmos DB](#persistent-storage-with-cosmos-db)
- [Utilities](#utilities)
- [Summary](#summary)


## Adding a New Agent to the Multi-Agent System

This guide details the steps required to add a new agent to the Multi-Agent Custom Automation Engine. The process includes registering the agent, defining its capabilities through tools, and ensuring the PlannerAgent includes the new agent when generating activity plans.
Expand All @@ -41,7 +41,6 @@ Every agent is equipped with a set of tools (functions) that it can call to perf

Example (for a `BakerAgent`):
```python
from autogen_core.components.tools import FunctionTool, Tool
from typing import List

async def bake_cookies(cookie_type: str, quantity: int) -> str:
Expand Down Expand Up @@ -615,4 +614,4 @@ This application orchestrates a group of AI agents to accomplish user-defined ta

Understanding the flow of data through the endpoints, agents, and persistent storage is key to grasping the logic of the application. Each component plays a specific role in ensuring tasks are planned, executed, and adjusted based on feedback, providing a robust and interactive system.

For instructions to setup a local development environment for the solution, please see [local deployment guide](./LocalDeployment.md).
For instructions to setup a local development environment for the solution, please see [deployment guide](./DeploymentGuide.md).
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

## **Pre-requisites**

To deploy this solution accelerator, ensure you have access to an [Azure subscription](https://azure.microsoft.com/free/) with the necessary permissions to create **resource groups, resources, app registrations, and assign roles at the resource group level**. This should include Contributor role at the subscription level and Role Based Access Control role on the subscription and/or resource group level. Follow the steps in [Azure Account Set Up](../documentation/AzureAccountSetUp.md).
To deploy this solution accelerator, ensure you have access to an [Azure subscription](https://azure.microsoft.com/free/) with the necessary permissions to create **resource groups, resources, app registrations, and assign roles at the resource group level**. This should include Contributor role at the subscription level and Role Based Access Control role on the subscription and/or resource group level. Follow the steps in [Azure Account Set Up](../docs/AzureAccountSetUp.md).

Check the [Azure Products by Region](https://azure.microsoft.com/en-us/explore/global-infrastructure/products-by-region/?products=all&regions=all) page and select a **region** where the following services are available:

Expand Down Expand Up @@ -223,7 +223,7 @@ This guide provides step-by-step instructions for deploying your application usi

There are several ways to deploy the solution. You can deploy to run in Azure in one click, or manually, or you can deploy locally.

When Deployment is complete, follow steps in [Set Up Authentication in Azure App Service](../documentation/azure_app_service_auth_setup.md) to add app authentication to your web app running on Azure App Service
When Deployment is complete, follow steps in [Set Up Authentication in Azure App Service](../docs/azure_app_service_auth_setup.md) to add app authentication to your web app running on Azure App Service

# Local setup

Expand Down
File renamed without changes.
File renamed without changes.
49 changes: 12 additions & 37 deletions docs/azure_app_service_auth_setup.md
Original file line number Diff line number Diff line change
@@ -1,58 +1,33 @@
# Set Up Authentication in Azure App Service

This document provides step-by-step instructions to configure Azure App Registrations for a front-end application.

## Prerequisites

- Access to **Microsoft Entra ID**
- Necessary permissions to create and manage **App Registrations**

## Step 1: Add Authentication in Azure App Service configuration

1. Click on `Authentication` from left menu.

![Authentication](./images/azure-app-service-auth-setup/AppAuthentication.png)

2. Click on `+ Add Provider` to see a list of identity providers.
2. Click on `+ Add identity provider` to see a list of identity providers.

![Authentication Identity](./images/azure-app-service-auth-setup/AppAuthenticationIdentity.png)

3. Click on `+ Add Provider` to see a list of identity providers.
3. Click on `Identity Provider` dropdown to see a list of identity providers.

![Add Provider](./images/azure-app-service-auth-setup/AppAuthIdentityProvider.png)

4. Select the first option `Microsoft Entra Id` from the drop-down list. If `Create new app registration` is disabled, go to [Step 1a](#step-1a-creating-a-new-app-registration).
4. Select the first option `Microsoft Entra Id` from the drop-down list and select `client secret expiration` under App registration.
> NOTE: If `Create new app registration` is disabled, then go to [Create new app registration](/docs/create_new_app_registration.md) and come back to this step to complete the app authentication.

![Add Provider](./images/azure-app-service-auth-setup/AppAuthIdentityProviderAdd.png)

5. Accept the default values and click on `Add` button to go back to the previous page with the idenity provider added.

![Add Provider](./images/azure-app-service-auth-setup/AppAuthIdentityProviderAdded.png)

### Step 1a: Creating a new App Registration

1. Click on `Home` and select `Microsoft Entra ID`.

![Microsoft Entra ID](./images/azure-app-service-auth-setup/MicrosoftEntraID.png)

2. Click on `App registrations`.

![App registrations](./images/azure-app-service-auth-setup/Appregistrations.png)

3. Click on `+ New registration`.

![New Registrations](./images/azure-app-service-auth-setup/NewRegistration.png)

4. Provide the `Name`, select supported account types as `Accounts in this organizational directory only(Contoso only - Single tenant)`, select platform as `Web`, enter/select the `URL` and register.

![Add Details](./images/azure-app-service-auth-setup/AddDetails.png)

5. After application is created sucessfully, then click on `Add a Redirect URL`.

![Redirect URL](./images/azure-app-service-auth-setup/AddRedirectURL.png)

6. Click on `+ Add a platform`.

![+ Add platform](./images/azure-app-service-auth-setup/AddPlatform.png)

7. Click on `Web`.

![Web](./images/azure-app-service-auth-setup/Web.png)

8. Enter the `web app URL` (Provide the app service name in place of XXXX) and Save. Then go back to [Step 1](#step-1-add-authentication-in-azure-app-service-configuration) and follow from _Point 4_ choose `Pick an existing app registration in this directory` from the Add an Identity Provider page and provide the newly registered App Name.
E.g. <<https://<< appservicename >>.azurewebsites.net/.auth/login/aad/callback>>

![Add Details](./images/azure-app-service-auth-setup/WebAppURL.png)
6. You have successfully added app authentication, and now required to log in to access the application.
35 changes: 35 additions & 0 deletions docs/create_new_app_registration.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# Creating a new App Registration

1. Click on `Home` and select `Microsoft Entra ID`.

![Microsoft Entra ID](images/azure-app-service-auth-setup/MicrosoftEntraID.png)

2. Click on `App registrations`.

![App registrations](images/azure-app-service-auth-setup/Appregistrations.png)

3. Click on `+ New registration`.

![New Registrations](images/azure-app-service-auth-setup/NewRegistration.png)

4. Provide the `Name`, select supported account types as `Accounts in this organizational directory only(Contoso only - Single tenant)`, select platform as `Web`, enter/select the `URL` and register.

![Add Details](images/azure-app-service-auth-setup/AddDetails.png)

5. After application is created successfully, then click on `Add a Redirect URL`.

![Redirect URL](images/azure-app-service-auth-setup/AddRedirectURL.png)

6. Click on `+ Add a platform`.

![+ Add platform](images/azure-app-service-auth-setup/AddPlatform.png)

7. Click on `Web`.

![Web](images/azure-app-service-auth-setup/Web.png)

8. Enter the `web app URL` (Provide the app service name in place of XXXX) and Save. Then go back to [Set Up Authentication in Azure App Service](azure_app_service_auth_setup.md) Step 1 page and follow from _Point 4_ choose `Pick an existing app registration in this directory` from the Add an Identity Provider page and provide the newly registered App Name.

E.g. <<https://<< appservicename >>.azurewebsites.net/.auth/login/aad/callback>>

![Add Details](images/azure-app-service-auth-setup/WebAppURL.png)
File renamed without changes
File renamed without changes
File renamed without changes
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
File renamed without changes
Binary file modified docs/images/readme/macae-architecture.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
File renamed without changes.
Loading
Loading