Skip to content

Commit cdbf4e1

Browse files
authored
Merge branch 'main' into feedback
2 parents a32406f + 5b925b9 commit cdbf4e1

File tree

1,723 files changed

+28686
-19241
lines changed

Some content is hidden

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

1,723 files changed

+28686
-19241
lines changed

.github/policies/disallow-edits.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -62,15 +62,15 @@ configuration:
6262
- isActivitySender:
6363
user: laujan
6464
- isActivitySender:
65-
user: patrickfarley
65+
user: PatrickFarley
6666
- isActivitySender:
67-
user: heidisteen
67+
user: HeidiSteen
6868
- isActivitySender:
6969
user: haileytap
7070
then:
7171
- addReply:
7272
reply: >-
73-
@${issueAuthor} - Please don't sign off on this PR. The area owners will sign off once they've reviewed your contribution.
73+
${issueAuthor} - Please don't sign off on this PR. The area owners will sign off once they've reviewed your contribution.
7474
- mentionUsers:
7575
mentionees:
7676
- eric-urban

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,5 @@ _repo.*/
2020
.github/prompts/*.md
2121
.github/prompts/*.zip
2222
.github/patterns/*.md
23+
24+
articles/ai-foundry/includes/get-started-fdp.md

.openpublishing.redirection.json

Lines changed: 32 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,17 @@
55
"redirect_url": "/azure/ai-foundry/how-to/connections-add",
66
"redirect_document_id": false
77
},
8+
{
9+
"source_path": "articles/ai-foundry/how-to/develop/connections-add-sdk.md",
10+
"redirect_url": "/azure/ai-foundry/how-to/connections-add?pivots=hub-project",
11+
"redirect_document_id": false
12+
},
813
{
914
"source_path": "articles/ai-foundry/how-to/develop/vscode.md",
1015
"redirect_url": "/azure/ai-foundry/how-to/develop/get-started-projects-vs-code",
1116
"redirect_document_id": false
1217
},
13-
{
18+
{
1419
"source_path": "articles/ai-foundry/azure-openai-in-azure-ai-foundry.md",
1520
"redirect_url": "/azure/ai-foundry/what-is-azure-ai-foundry",
1621
"redirect_document_id": false
@@ -295,6 +300,16 @@
295300
"redirect_url": "/azure/ai-foundry",
296301
"redirect_document_id": false
297302
},
303+
{
304+
"source_path": "articles/ai-foundry/openai/concepts/models.md",
305+
"redirect_url": "/azure/ai-foundry/foundry-models/concepts/models-sold-directly-by-azure?pivots=azure-openai",
306+
"redirect_document_id": false
307+
},
308+
{
309+
"source_path": "articles/ai-foundry/foundry-models/concepts/models.md",
310+
"redirect_url": "/azure/ai-foundry/foundry-models/concepts/models-sold-directly-by-azure?pivots=azure-direct-others",
311+
"redirect_document_id": false
312+
},
298313
{
299314
"source_path_from_root": "/articles/ai-services/speech-service/text-to-speech-avatar/custom-avatar-endpoint.md",
300315
"redirect_url": "/azure/ai-services/speech-service/custom-avatar-create",
@@ -514,6 +529,21 @@
514529
"source_path": "articles/machine-learning/how-to-package-models.md",
515530
"redirect_url": "/azure/machine-learning/concept-endpoints",
516531
"redirect_document_id": false
532+
},
533+
{
534+
"source_path": "articles/ai-services/create-account-terraform.md",
535+
"redirect_url": "/azure/ai-foundry/how-to/create-resource-terraform",
536+
"redirect_document_id": false
537+
},
538+
{
539+
"source_path": "articles/ai-services/create-account-bicep.md",
540+
"redirect_url": "/azure/ai-foundry/how-to/create-resource-template",
541+
"redirect_document_id": false
542+
},
543+
{
544+
"source_path": "articles/ai-foundry/foundry-models/how-to/inference.md",
545+
"redirect_url": "/azure/ai-foundry/foundry-models/concepts/endpoints",
546+
"redirect_document_id": true
517547
}
518548
]
519-
}
549+
}

articles/ai-foundry/.openpublishing.redirection.ai-studio.json

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -215,6 +215,11 @@
215215
"redirect_url": "/azure/ai-foundry/how-to/deploy-models-managed",
216216
"redirect_document_id": true
217217
},
218+
{
219+
"source_path_from_root": "/articles/ai-foundry/how-to/autoscale.md",
220+
"redirect_url": "/azure/ai-services/autoscale?context=%2Fazure%2Fai-foundry%2Fcontext%2Fcontext",
221+
"redirect_document_id": true
222+
},
218223
{
219224
"source_path_from_root": "/articles/ai-studio/how-to/deploy-models-mistral-codestral.md",
220225
"redirect_url": "/azure/ai-foundry/how-to/deploy-models-mistral-codestral",
@@ -1223,6 +1228,11 @@
12231228
"redirect_url": "/azure/ai-foundry/",
12241229
"redirect_document_id": false
12251230
},
1231+
{
1232+
"source_path_from_root": "/articles/ai-foundry/agents/concepts/tracing.md",
1233+
"redirect_url": "/azure/ai-foundry/how-to/develop/trace-agents-sdk",
1234+
"redirect_document_id": true
1235+
},
12261236
{
12271237
"source_path_from_root": "/articles/ai-foundry/how-to/online-evaluation.md",
12281238
"redirect_url": "/azure/ai-foundry/how-to/monitor-applications",
@@ -1252,6 +1262,26 @@
12521262
"source_path_from_root": "/articles/ai-foundry/how-to/evaluate-prompts-playground.md",
12531263
"redirect_url": "/azure/ai-foundry/concepts/observability",
12541264
"redirect_document_id": false
1265+
},
1266+
{
1267+
"source_path_from_root": "/articles/ai-foundry/openai/quickstart.md",
1268+
"redirect_url": "/azure/ai-foundry/openai/how-to/responses",
1269+
"redirect_document_id": false
1270+
},
1271+
{
1272+
"source_path_from_root": "/articles/ai-foundry/openai/how-to/work-with-code.md",
1273+
"redirect_url": "/azure/ai-foundry/openai/how-to/responses",
1274+
"redirect_document_id": false
1275+
},
1276+
{
1277+
"source_path_from_root": "/articles/ai-foundry/openai/how-to/completions.md",
1278+
"redirect_url": "/azure/ai-foundry/openai/how-to/responses",
1279+
"redirect_document_id": false
1280+
},
1281+
{
1282+
"source_path_from_root": "/articles/ai-foundry/openai/how-to/chat-markup-language.md",
1283+
"redirect_url": "/azure/ai-foundry/openai/how-to/responses",
1284+
"redirect_document_id": false
12551285
}
12561286
]
12571287
}

articles/ai-foundry/agents/concepts/capability-hosts.md

Lines changed: 123 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,14 @@ Capability hosts follow a hierarchy where more specific configurations override
5050
2. **Account-level capability host** - Provides shared defaults for all projects under the account.
5151
3. **Project-level capability host** - Overrides account-level and service defaults for that specific project.
5252

53+
## Understand capability host constraints
54+
55+
When creating capability hosts, be aware of these important constraints to avoid conflicts:
56+
57+
- **One capability host per scope**: Each account and each project can only have one active capability host. Attempting to create a second capability host with a different name at the same scope will result in a 409 conflict.
58+
59+
- **Configuration updates are not supported**: If you need to change configuration, you must delete the existing capability host and recreate it.
60+
5361

5462
## Recommended setup
5563

@@ -79,6 +87,7 @@ PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{
7987
}
8088
}
8189
```
90+
8291
**Project capability host**
8392

8493
This configuration overrides service defaults and any account-level settings. All agents in this project will use your specified resources:
@@ -134,6 +143,120 @@ DELETE https://management.azure.com/subscriptions/{subscriptionId}/resourceGroup
134143
DELETE https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CognitiveServices/accounts/{accountName}/projects/{projectName}/capabilityHosts/{name}?api-version=2025-06-01
135144
```
136145

146+
## Troubleshooting
147+
148+
If you're experiencing issues when creating capability hosts, this section provides solutions to the most common problems and errors.
149+
150+
### HTTP 409 Conflict errors
151+
152+
#### Problem: Multiple capability hosts per scope
153+
154+
**Symptoms:** You receive a 409 Conflict error when trying to create a capability host, even though you believe the scope is empty.
155+
156+
**Error message:**
157+
```json
158+
{
159+
"error": {
160+
"code": "Conflict",
161+
"message": "There is an existing Capability Host with name: existing-host, provisioning state: Succeeded for workspace: /subscriptions/.../workspaces/my-workspace, cannot create a new Capability Host with name: new-host for the same ClientId."
162+
}
163+
}
164+
```
165+
166+
**Root cause:** Each account and each project can only have one active capability host. You're trying to create a capability host with a different name when one already exists at the same scope.
167+
168+
**Solution:**
169+
1. **Check existing capability hosts** - Query the scope to see what already exists
170+
2. **Use consistent naming** - Ensure you're using the same name across all requests for the same scope
171+
3. **Review your requirements** - Determine if the existing capability host meets your needs
172+
173+
**Validation steps:**
174+
```http
175+
# For account-level capability hosts
176+
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CognitiveServices/accounts/{accountName}/capabilityHosts?api-version=2025-06-01
177+
178+
# For project-level capability hosts
179+
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CognitiveServices/accounts/{accountName}/projects/{projectName}/capabilityHosts?api-version=2025-06-01
180+
```
181+
182+
#### Problem: Concurrent operations in progress
183+
184+
**Symptoms:** You receive a 409 Conflict error indicating that another operation is currently running.
185+
186+
**Error message:**
187+
```json
188+
{
189+
"error": {
190+
"code": "Conflict",
191+
"message": "Create: Capability Host my-host is currently in non creating, retry after its complete: /subscriptions/.../workspaces/my-workspace"
192+
}
193+
}
194+
```
195+
196+
**Root cause:** You're trying to create a capability host while another operation (update, delete, modify) is in progress at the same scope.
197+
198+
**Solution:**
199+
1. **Wait for current operation to complete** - Check the status of ongoing operations
200+
2. **Monitor operation progress** - Use the operations API to track completion
201+
3. **Implement retry logic** - Add exponential backoff for temporary conflicts
202+
203+
**Operation monitoring:**
204+
```http
205+
GET https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.CognitiveServices/locations/{location}/operationResults/{operationId}?api-version=2025-06-01
206+
```
207+
208+
### Best practices for conflict prevention
209+
210+
#### 1. Pre-request validation
211+
Always verify the current state before making changes:
212+
- Query existing capability hosts in the target scope
213+
- Check for any ongoing operations
214+
- Understand the current configuration
215+
216+
#### 2. Implement retry logic with exponential backoff
217+
```csharp
218+
try
219+
{
220+
var response = await CreateCapabilityHostAsync(request);
221+
return response;
222+
}
223+
catch (HttpRequestException ex) when (ex.Message.Contains("409"))
224+
{
225+
if (ex.Message.Contains("existing Capability Host with name"))
226+
{
227+
// Handle name conflict - check if existing resource is acceptable
228+
var existing = await GetExistingCapabilityHostAsync();
229+
if (IsAcceptable(existing))
230+
{
231+
return existing; // Use existing resource
232+
}
233+
else
234+
{
235+
throw new InvalidOperationException("Scope already has a capability host with different name");
236+
}
237+
}
238+
else if (ex.Message.Contains("currently in non creating"))
239+
{
240+
// Handle concurrent operation - implement retry with backoff
241+
await Task.Delay(TimeSpan.FromSeconds(30));
242+
return await CreateCapabilityHostAsync(request); // Retry once
243+
}
244+
}
245+
```
246+
247+
#### 3. Understand idempotent behavior
248+
The system supports idempotent create requests:
249+
- **Same name + same configuration** → Returns existing resource (200 OK)
250+
- **Same name + different configuration** → Returns 400 Bad Request
251+
- **Different name** → Returns 409 Conflict
252+
253+
#### 4. Configuration change workflow
254+
Since updates aren't supported, follow this sequence for configuration changes:
255+
1. Delete the existing capability host
256+
2. Wait for deletion to complete
257+
3. Create a new capability host with the desired configuration
258+
259+
137260
## Next steps
138261
- Learn more about the [Standard Agent Setup](standard-agent-setup.md)
139262
- Get started with [Agent Service](../environment-setup.md)

articles/ai-foundry/agents/concepts/model-region-support.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,8 @@ All deployments can perform the exact same inference operations, however the bil
2525
Azure AI Foundry Agent Service supports the following Azure OpenAI models in the listed regions.
2626

2727
> [!NOTE]
28-
> * [Hub based projects](../../what-is-azure-ai-foundry.md#project-types) are limited to the following models: gpt-4o, gpt-4o-mini, gpt-4, gpt-35-turbo
28+
> * [Hub-based projects](../../what-is-azure-ai-foundry.md#project-types) are limited to the following models: gpt-4o, gpt-4o-mini, gpt-4, gpt-35-turbo
29+
> * [Spillover traffic management](../../openai/how-to/spillover-traffic-management.md) for [provisioned throughput](../../openai/concepts/provisioned-throughput.md) is compatible with agents
2930
> * For information on class A subnet support, see the setup guide on [GitHub](https://github.com/azure-ai-foundry/foundry-samples/tree/main/samples/microsoft/infrastructure-setup/15-private-network-standard-agent-setup).
3031
> * The [file search tool](../how-to/tools/file-search.md) is currently unavailable in the following regions:
3132
> * Italy north

articles/ai-foundry/agents/concepts/tracing.md

Lines changed: 0 additions & 91 deletions
This file was deleted.

articles/ai-foundry/agents/how-to/connected-agents.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,8 @@
22
title: 'How to use connected agents'
33
titleSuffix: Azure AI Foundry
44
description: Learn how to create multi-agentic systems using connected agents in the Azure AI Foundry Agent Service.
5-
services: cognitive-services
65
manager: nitinme
7-
ms.service: azure
6+
ms.service: azure-ai-agent-service
87
ms.topic: how-to
98
ms.date: 07/11/2025
109
author: aahill

0 commit comments

Comments
 (0)