Skip to content

Commit 723b5b8

Browse files
resolved conflict
2 parents 15f1459 + 565bb9e commit 723b5b8

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

66 files changed

+2745
-850
lines changed

.github/CODEOWNERS

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22
# Each line is a file pattern followed by one or more owners.
33

44
# These owners will be the default owners for everything in the repo.
5-
* @Avijit-Microsoft @Roopan-Microsoft @Prajwal-Microsoft @marktayl1 @Fr4nc3 @Vinay-Microsoft @aniaroramsft
5+
* @Avijit-Microsoft @Roopan-Microsoft @Prajwal-Microsoft @marktayl1 @Fr4nc3 @Vinay-Microsoft @aniaroramsft @toherman-msft @nchandhi

.github/workflows/azure-dev.yml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
11
name: Azure Template Validation
22
on:
3-
push:
4-
branches:
5-
- main
63
workflow_dispatch:
74

85
permissions:
@@ -37,6 +34,8 @@ jobs:
3734
AZURE_ENV_MODEL_CAPACITY: 1
3835
AZURE_ENV_MODEL_4_1_CAPACITY: 1
3936
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
37+
AZURE_DEV_COLLECT_TELEMETRY: ${{ vars.AZURE_DEV_COLLECT_TELEMETRY }}
38+
4039
# Step 3: Print the result of the validation
4140
- name: print result
4241
run: cat ${{ steps.validation.outputs.resultFile }}

.github/workflows/deploy-waf.yml

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,10 @@ on:
1010
jobs:
1111
deploy:
1212
runs-on: ubuntu-latest
13+
env:
14+
GPT_MIN_CAPACITY: 1
15+
O4_MINI_MIN_CAPACITY: 1
16+
GPT41_MINI_MIN_CAPACITY: 1
1317
steps:
1418
- name: Checkout Code
1519
uses: actions/checkout@v3
@@ -21,7 +25,9 @@ jobs:
2125
export AZURE_TENANT_ID=${{ secrets.AZURE_TENANT_ID }}
2226
export AZURE_CLIENT_SECRET=${{ secrets.AZURE_CLIENT_SECRET }}
2327
export AZURE_SUBSCRIPTION_ID="${{ secrets.AZURE_SUBSCRIPTION_ID }}"
24-
export GPT_MIN_CAPACITY="150"
28+
export GPT_MIN_CAPACITY="1"
29+
export O4_MINI_MIN_CAPACITY="1"
30+
export GPT41_MINI_MIN_CAPACITY="1"
2531
export AZURE_REGIONS="${{ vars.AZURE_REGIONS }}"
2632
2733
chmod +x infra/scripts/checkquota.sh
@@ -116,7 +122,9 @@ jobs:
116122
solutionName=${{ env.SOLUTION_PREFIX }} \
117123
location="${{ env.AZURE_LOCATION }}" \
118124
azureAiServiceLocation='${{ env.AZURE_LOCATION }}' \
119-
gptModelCapacity=5 \
125+
gptModelCapacity=${{ env.GPT_MIN_CAPACITY }} \
126+
gpt4_1ModelCapacity=${{ env.GPT41_MINI_MIN_CAPACITY }} \
127+
gptReasoningModelCapacity=${{ env.O4_MINI_MIN_CAPACITY }} \
120128
enableTelemetry=true \
121129
enableMonitoring=true \
122130
enablePrivateNetworking=true \

.github/workflows/deploy.yml

Lines changed: 57 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ name: Validate Deployment v3
22

33
on:
44
workflow_run:
5-
workflows: ["Build Docker and Optional Push"]
5+
workflows: ["Build Docker and Optional Push v3"]
66
types:
77
- completed
88
branches:
@@ -13,7 +13,9 @@ on:
1313
- cron: "0 11,23 * * *" # Runs at 11:00 AM and 11:00 PM GMT
1414
workflow_dispatch: #Allow manual triggering
1515
env:
16-
GPT_MIN_CAPACITY: 1
16+
GPT_MIN_CAPACITY: 150
17+
O4_MINI_MIN_CAPACITY: 50
18+
GPT41_MINI_MIN_CAPACITY: 50
1719
BRANCH_NAME: ${{ github.head_ref || github.ref_name }}
1820

1921
jobs:
@@ -36,7 +38,9 @@ jobs:
3638
export AZURE_TENANT_ID=${{ secrets.AZURE_TENANT_ID }}
3739
export AZURE_CLIENT_SECRET=${{ secrets.AZURE_CLIENT_SECRET }}
3840
export AZURE_SUBSCRIPTION_ID="${{ secrets.AZURE_SUBSCRIPTION_ID }}"
39-
export GPT_MIN_CAPACITY="1"
41+
export GPT_MIN_CAPACITY="150"
42+
export O4_MINI_MIN_CAPACITY="50"
43+
export GPT41_MINI_MIN_CAPACITY="50"
4044
export AZURE_REGIONS="${{ vars.AZURE_REGIONS }}"
4145
4246
chmod +x infra/scripts/checkquota.sh
@@ -122,7 +126,7 @@ jobs:
122126
elif [[ "${{ env.BRANCH_NAME }}" == "hotfix" ]]; then
123127
IMAGE_TAG="hotfix"
124128
else
125-
IMAGE_TAG="latest"
129+
IMAGE_TAG="latest_v3"
126130
fi
127131
128132
# Generate current timestamp in desired format: YYYY-MM-DDTHH:MM:SS.SSSSSSSZ
@@ -135,12 +139,12 @@ jobs:
135139
solutionName=${{ env.SOLUTION_PREFIX }} \
136140
location="${{ env.AZURE_LOCATION }}" \
137141
gptModelDeploymentType="GlobalStandard" \
138-
gptModelName="gpt-4o" \
139-
gptModelVersion="2024-08-06" \
142+
gptModelName="gpt-4.1-mini" \
143+
gptModelVersion="2025-04-14" \
140144
backendContainerImageTag="${IMAGE_TAG}" \
141145
frontendContainerImageTag="${IMAGE_TAG}" \
142146
azureAiServiceLocation='${{ env.AZURE_LOCATION }}' \
143-
gptModelCapacity=1 \
147+
gptModelCapacity=50 \
144148
createdBy="Pipeline" \
145149
tags="{'SecurityControl':'Ignore','Purpose':'Deploying and Cleaning Up Resources for Validation','CreatedDate':'$current_date'}" \
146150
--output json
@@ -159,9 +163,10 @@ jobs:
159163
- name: Get Container App Backend URL
160164
id: get_backend_url
161165
run: |
166+
# Get specifically the backend container app (not the MCP container app)
162167
CONTAINER_APP_NAME=$(az containerapp list \
163168
--resource-group ${{ env.RESOURCE_GROUP_NAME }} \
164-
--query "[0].name" -o tsv)
169+
--query "[?starts_with(name, 'ca-') && !contains(name, 'mcp')].name" -o tsv)
165170
166171
MACAE_URL_API=$(az containerapp show \
167172
--name "$CONTAINER_APP_NAME" \
@@ -171,6 +176,38 @@ jobs:
171176
echo "MACAE_URL_API=https://${MACAE_URL_API}" >> $GITHUB_OUTPUT
172177
echo "CONTAINER_APP=${CONTAINER_APP_NAME}" >> $GITHUB_OUTPUT
173178
179+
- name: Run Post deployment scripts
180+
run: |
181+
set -e
182+
az account set --subscription "${{ secrets.AZURE_SUBSCRIPTION_ID }}"
183+
184+
echo "Running post-deployment script..."
185+
186+
# Extract required resource names from the deployment
187+
STORAGE_ACCOUNT=$(az resource list --resource-group ${{ env.RESOURCE_GROUP_NAME }} --resource-type "Microsoft.Storage/storageAccounts" --query "[0].name" -o tsv)
188+
AI_SEARCH=$(az resource list --resource-group ${{ env.RESOURCE_GROUP_NAME }} --resource-type "Microsoft.Search/searchServices" --query "[0].name" -o tsv)
189+
190+
echo "Found Storage Account: $STORAGE_ACCOUNT"
191+
echo "Found AI Search Service: $AI_SEARCH"
192+
echo "Backend URL: ${{ steps.get_backend_url.outputs.MACAE_URL_API }}"
193+
194+
# Run upload team config script with parameters
195+
bash infra/scripts/upload_team_config.sh \
196+
"${{ steps.get_backend_url.outputs.MACAE_URL_API }}" \
197+
"data/agent_teams" \
198+
"${{ secrets.AZURE_SUBSCRIPTION_ID }}"
199+
200+
# Run process sample data script with parameters
201+
bash infra/scripts/process_sample_data.sh \
202+
"$STORAGE_ACCOUNT" \
203+
"sample-dataset" \
204+
"$AI_SEARCH" \
205+
"sample-dataset-index" \
206+
"${{ env.RESOURCE_GROUP_NAME }}" \
207+
"${{ secrets.AZURE_SUBSCRIPTION_ID }}"
208+
209+
echo "=== Post-Deployment Script Completed Successfully ==="
210+
174211
- name: Set Deployment Status
175212
id: deployment_status
176213
if: always()
@@ -181,9 +218,20 @@ jobs:
181218
echo "SUCCESS=false" >> $GITHUB_OUTPUT
182219
fi
183220
221+
e2e-test:
222+
needs: deploy
223+
if: needs.deploy.outputs.DEPLOYMENT_SUCCESS == 'true'
224+
uses: ./.github/workflows/test-automation.yml
225+
with:
226+
MACAE_WEB_URL: ${{ needs.deploy.outputs.WEBAPP_URL }}
227+
MACAE_URL_API: ${{ needs.deploy.outputs.MACAE_URL_API }}
228+
MACAE_RG: ${{ needs.deploy.outputs.RESOURCE_GROUP_NAME }}
229+
MACAE_CONTAINER_APP: ${{ needs.deploy.outputs.CONTAINER_APP }}
230+
secrets: inherit
231+
184232
cleanup-deployment:
185233
if: always() && needs.deploy.outputs.RESOURCE_GROUP_NAME != ''
186-
needs: [deploy]
234+
needs: [deploy, e2e-test]
187235
runs-on: ubuntu-latest
188236
env:
189237
RESOURCE_GROUP_NAME: ${{ needs.deploy.outputs.RESOURCE_GROUP_NAME }}

.github/workflows/test-automation.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ jobs:
3131
MACAE_URL_API: ${{ inputs.MACAE_URL_API }}
3232
MACAE_RG: ${{ inputs.MACAE_RG }}
3333
MACAE_CONTAINER_APP: ${{ inputs.MACAE_CONTAINER_APP }}
34-
accelerator_name: "MACAE"
34+
accelerator_name: "MACAE v3"
3535

3636
steps:
3737
- name: Checkout repository

README.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@ The Multi-Agent Custom Automation Engine solution accelerator allows users to sp
1515
</div>
1616
<br/>
1717

18+
**Note:** With any AI solutions you create using these templates, you are responsible for assessing all associated risks and for complying with all applicable laws and safety standards. Learn more in the transparency documents for [Agent Service](https://learn.microsoft.com/en-us/azure/ai-foundry/responsible-ai/agents/transparency-note) and [Agent Framework](https://github.com/microsoft/agent-framework/blob/main/TRANSPARENCY_FAQ.md).
19+
<br/>
20+
1821
<h2><img src="./docs/images/readme/solution-overview.png" width="48" />
1922
Solution overview
2023
</h2>
@@ -72,8 +75,8 @@ Follow the quick deploy steps on the deployment guide to deploy this solution to
7275
[Click here to launch the deployment guide](./docs/DeploymentGuide.md)
7376
<br/><br/>
7477

75-
| [![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) |
76-
|---|---|
78+
| [![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) | [![Open in Visual Studio Code Web](https://img.shields.io/static/v1?style=for-the-badge&label=Visual%20Studio%20Code%20(Web)&message=Open&color=blue&logo=visualstudiocode&logoColor=white)](https://insiders.vscode.dev/azure/?vscode-azure-exp=foundry&agentPayload=eyJiYXNlVXJsIjogImh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9taWNyb3NvZnQvTXVsdGktQWdlbnQtQ3VzdG9tLUF1dG9tYXRpb24tRW5naW5lLVNvbHV0aW9uLUFjY2VsZXJhdG9yL3JlZnMvaGVhZHMvbWFpbi9pbmZyYS92c2NvZGVfd2ViIiwgImluZGV4VXJsIjogIi9pbmRleC5qc29uIiwgInZhcmlhYmxlcyI6IHsiYWdlbnRJZCI6ICIiLCAiY29ubmVjdGlvblN0cmluZyI6ICIiLCAidGhyZWFkSWQiOiAiIiwgInVzZXJNZXNzYWdlIjogIiIsICJwbGF5Z3JvdW5kTmFtZSI6ICIiLCAibG9jYXRpb24iOiAiIiwgInN1YnNjcmlwdGlvbklkIjogIiIsICJyZXNvdXJjZUlkIjogIiIsICJwcm9qZWN0UmVzb3VyY2VJZCI6ICIiLCAiZW5kcG9pbnQiOiAiIn0sICJjb2RlUm91dGUiOiBbImFpLXByb2plY3RzLXNkayIsICJweXRob24iLCAiZGVmYXVsdC1henVyZS1hdXRoIiwgImVuZHBvaW50Il19) |
79+
|---|---|---|
7780

7881
<br/>
7982

azure.yaml

Lines changed: 43 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -8,33 +8,60 @@ hooks:
88
postdeploy:
99
windows:
1010
run: |
11-
Write-Host "To upload Team Configurations to Cosmos. Run the following command in PowerShell:"
12-
Write-Host "infra\scripts\Upload-Team-Config.ps1" -ForegroundColor Cyan
1311
Write-Host ""
14-
Write-Host "To index Sample Data into Azure Search. Run the following command in PowerShell:"
15-
Write-Host "infra\scripts\Process-Sample-Data.ps1" -ForegroundColor Cyan
12+
Write-Host "===============================================================" -ForegroundColor Yellow
13+
Write-Host " POST-DEPLOYMENT STEPS (PowerShell) " -ForegroundColor Green
14+
Write-Host "===============================================================" -ForegroundColor Yellow
1615
Write-Host ""
17-
Write-Host "To upload team configurations and index sample data both in one command, you can use the following command in PowerShell:"
18-
Write-Host "infra\scripts\Team-Config-And-Data.ps1" -ForegroundColor Cyan
16+
17+
Write-Host " STEP 1: Upload Team Configurations to Cosmos DB" -ForegroundColor White
18+
Write-Host " 👉 Run the following command in PowerShell:" -ForegroundColor White
19+
Write-Host " infra\scripts\Upload-Team-Config.ps1" -ForegroundColor Cyan
20+
Write-Host ""
21+
22+
Write-Host " STEP 2: Index Sample Data into Azure Search" -ForegroundColor White
23+
Write-Host " 👉 Run the following command in PowerShell:" -ForegroundColor White
24+
Write-Host " infra\scripts\Process-Sample-Data.ps1" -ForegroundColor Cyan
25+
Write-Host ""
26+
27+
Write-Host "💡 Alternatively, you can run above BOTH steps together using:" -ForegroundColor Yellow
28+
Write-Host " infra\scripts\Team-Config-And-Data.ps1" -ForegroundColor Cyan
29+
Write-Host ""
30+
31+
Write-Host "🌐 Access your deployed Frontend application at:" -ForegroundColor Green
32+
Write-Host " https://$env:webSiteDefaultHostname" -ForegroundColor Cyan
1933
Write-Host ""
20-
Write-Host "You can access the deployed Frontend application at the following URL:"
21-
Write-Host "https://$env:webSiteDefaultHostname" -ForegroundColor Cyan
2234
shell: pwsh
2335
interactive: true
2436
posix:
2537
run: |
2638
Blue='\033[0;34m'
39+
Green='\033[0;32m'
40+
Yellow='\033[1;33m'
2741
NC='\033[0m'
28-
echo "To upload Team Configurations to Cosmos. Run the following command in Bash:"
29-
echo "${Blue}bash infra/scripts/upload_team_config.sh"
42+
43+
echo ""
44+
echo "${Yellow}==============================================================="
45+
echo "${Green} POST-DEPLOYMENT STEPS (Bash) "
46+
echo "${Yellow}===============================================================${NC}"
47+
echo ""
48+
49+
echo " STEP 1: Upload Team Configurations to Cosmos DB"
50+
echo " 👉 Run the following command in Bash:"
51+
echo " ${Blue}bash infra/scripts/upload_team_config.sh${NC}"
52+
echo ""
53+
54+
echo " STEP 2: Index Sample Data into Azure Search"
55+
echo " 👉 Run the following command in Bash:"
56+
echo " ${Blue}bash infra/scripts/process_sample_data.sh${NC}"
3057
echo ""
31-
echo "${NC}To index Sample Data into Azure Search. Run the following command in Bash:"
32-
echo "${Blue}bash infra/scripts/process_sample_data.sh"
58+
59+
echo "💡 Alternatively, you can run above BOTH steps together using:"
60+
echo " ${Blue}bash infra/scripts/team_config_and_data.sh${NC}"
3361
echo ""
34-
echo "${NC}To upload team configurations and index sample data both in one command, you can use the following command in Bash:"
35-
echo "${Blue}bash infra/scripts/team_config_and_data.sh"
62+
63+
echo "🌐 Access your deployed Frontend application at:"
64+
echo " ${Blue}https://$webSiteDefaultHostname${NC}"
3665
echo ""
37-
echo "${NC}You can access the deployed Frontend application at the following URL:"
38-
echo "${Blue}https://$webSiteDefaultHostname"
3966
shell: sh
4067
interactive: true

azure_custom.yaml

Lines changed: 43 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -45,33 +45,60 @@ hooks:
4545
postdeploy:
4646
windows:
4747
run: |
48-
Write-Host "To upload Team Configurations to Cosmos. Run the following command in PowerShell:"
49-
Write-Host "infra\scripts\Upload-Team-Config.ps1" -ForegroundColor Cyan
5048
Write-Host ""
51-
Write-Host "To index Sample Data into Azure Search. Run the following command in PowerShell:"
52-
Write-Host "infra\scripts\Process-Sample-Data.ps1" -ForegroundColor Cyan
49+
Write-Host "===============================================================" -ForegroundColor Yellow
50+
Write-Host " POST-DEPLOYMENT STEPS (PowerShell) " -ForegroundColor Green
51+
Write-Host "===============================================================" -ForegroundColor Yellow
5352
Write-Host ""
54-
Write-Host "If you want to run both scripts as single command, you can use the following command in PowerShell:"
55-
Write-Host "infra\scripts\Team-Config-And-Data.ps1" -ForegroundColor Cyan
53+
54+
Write-Host " STEP 1: Upload Team Configurations to Cosmos DB" -ForegroundColor White
55+
Write-Host " 👉 Run the following command in PowerShell:" -ForegroundColor White
56+
Write-Host " infra\scripts\Upload-Team-Config.ps1" -ForegroundColor Cyan
57+
Write-Host ""
58+
59+
Write-Host " STEP 2: Index Sample Data into Azure Search" -ForegroundColor White
60+
Write-Host " 👉 Run the following command in PowerShell:" -ForegroundColor White
61+
Write-Host " infra\scripts\Process-Sample-Data.ps1" -ForegroundColor Cyan
62+
Write-Host ""
63+
64+
Write-Host "💡 Alternatively, you can run above BOTH steps together using:" -ForegroundColor Yellow
65+
Write-Host " infra\scripts\Team-Config-And-Data.ps1" -ForegroundColor Cyan
66+
Write-Host ""
67+
68+
Write-Host "🌐 Access your deployed Frontend application at:" -ForegroundColor Green
69+
Write-Host " https://$env:webSiteDefaultHostname" -ForegroundColor Cyan
5670
Write-Host ""
57-
Write-Host "You can access the deployed Frontend application at the following URL:"
58-
Write-Host "https://$env:webSiteDefaultHostname" -ForegroundColor Cyan
5971
shell: pwsh
6072
interactive: true
6173
posix:
6274
run: |
6375
Blue='\033[0;34m'
76+
Green='\033[0;32m'
77+
Yellow='\033[1;33m'
6478
NC='\033[0m'
65-
echo "To upload Team Configurations to Cosmos. Run the following command in Bash:"
66-
echo "${Blue}bash infra/scripts/upload_team_config.sh"
79+
6780
echo ""
68-
echo "${NC}To index Sample Data into Azure Search. Run the following command in Bash:"
69-
echo "${Blue}bash infra/scripts/process_sample_data.sh"
81+
echo "${Yellow}==============================================================="
82+
echo "${Green} POST-DEPLOYMENT STEPS (Bash) "
83+
echo "${Yellow}===============================================================${NC}"
7084
echo ""
71-
echo "${NC}If you want to run both scripts as single command, you can use the following command in Bash:"
72-
echo "${Blue}bash infra/scripts/team_config_and_data.sh"
85+
86+
echo " STEP 1: Upload Team Configurations to Cosmos DB"
87+
echo " 👉 Run the following command in Bash:"
88+
echo " ${Blue}bash infra/scripts/upload_team_config.sh${NC}"
89+
echo ""
90+
91+
echo " STEP 2: Index Sample Data into Azure Search"
92+
echo " 👉 Run the following command in Bash:"
93+
echo " ${Blue}bash infra/scripts/process_sample_data.sh${NC}"
94+
echo ""
95+
96+
echo "💡 Alternatively, you can run above BOTH steps together using:"
97+
echo " ${Blue}bash infra/scripts/team_config_and_data.sh${NC}"
98+
echo ""
99+
100+
echo "🌐 Access your deployed Frontend application at:"
101+
echo " ${Blue}https://$webSiteDefaultHostname${NC}"
73102
echo ""
74-
echo "${NC}You can access the deployed Frontend application at the following URL:"
75-
echo "${Blue}https://$webSiteDefaultHostname"
76103
shell: sh
77104
interactive: true

0 commit comments

Comments
 (0)