Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Uwaga / Notatka
Aktualizowanie hostów możliwości nie jest obsługiwane. Aby zmodyfikować host funkcji, musisz usunąć istniejący i ponownie utworzyć go przy użyciu nowej konfiguracji.
Hosty funkcjonalności to zasoby podrzędne konfigurowane zarówno na koncie Microsoft Foundry, jak i w zakresach projektów Foundry. Informują one usługę agenta Foundry, gdzie mają być przechowywane i przetwarzane dane agenta, w tym:
- Historia konwersacji (wątki)
- Przekazywanie plików
- Magazyny wektorów
Wymagania wstępne
- Projekt Microsoft Foundry
- Jeśli używasz własnych zasobów na potrzeby danych agenta (konfiguracja agenta standardowego), utwórz wymagane zasoby i połączenia platformy Azure:
- Wymagane uprawnienia:
- Rola współautora na koncie usługi Foundry w celu utworzenia hostów możliwości
- Administrator dostępu użytkowników lub rola właściciela w celu przypisania dostępu do zasobów platformy Azure (w przypadku standardowej konfiguracji agenta)
- Aby uzyskać szczegółowe informacje, zobacz Wymagane uprawnienia i Kontrola dostępu oparta na rolach (RBAC) w rozwiązaniu Microsoft Foundry.
Dlaczego warto używać hostów funkcjonalności?
Hosty możliwości umożliwiają przenoszenie własnych zasobów platformy Azure zamiast używania domyślnych zasobów platformy zarządzanej przez firmę Microsoft. Zapewnia to:
- Niezależność danych — zachowaj wszystkie dane agenta w ramach subskrypcji platformy Azure.
- Kontrola zabezpieczeń — użyj własnych kont magazynu, baz danych i usług wyszukiwania.
- Zgodność — spełnia określone wymagania prawne lub organizacyjne.
Jak działają hosty funkcji?
Tworzenie hostów dla możliwości nie jest wymagane. Jeśli chcesz, aby agenci używali własnych zasobów platformy Azure, utwórz hosty możliwości zarówno w zakresie konta, jak i projektu.
Domyślne zachowanie (zasoby zarządzane przez firmę Microsoft)
Jeśli nie utworzysz hostów funkcji, usługa agenta automatycznie używa zasobów Azure zarządzanych przez Microsoft, aby:
- Przechowywanie wątków (historia rozmów, definicje agentów)
- Przechowywanie plików (przesłane dokumenty)
- Wyszukiwanie wektorowe (osadzanie i pobieranie)
Przynieś własne zasoby
Podczas tworzenia hostów możliwości na poziomie konta i projektu zasoby platformy Azure przechowują i przetwarzają dane agenta. Jest to standardowa konfiguracja agenta. W przypadku konfiguracji agenta standardowego zabezpieczonego siecią należy wdrożyć wszystkie powiązane zasoby w tym samym regionie co sieć wirtualna. Aby uzyskać wskazówki, zobacz Tworzenie nowego środowiska zabezpieczonego siecią przy użyciu tożsamości zarządzanej przez użytkownika.
Aby dowiedzieć się więcej na temat standardowej konfiguracji agenta, zobacz Wbudowana gotowość przedsiębiorstwa ze standardową konfiguracją agenta.
Uwaga / Notatka
Zalecamy używanie oddzielnych kont i projektów foundry na potrzeby standardowej konfiguracji agenta i podstawowej konfiguracji agenta. Unikaj mieszania typów konfiguracji w ramach tego samego konta Foundry.
Hierarchia konfiguracji
Hosty funkcji przestrzegają hierarchii, w której bardziej szczegółowe konfiguracje mają pierwszeństwo przed szerszymi:
- Wartości domyślne usługi (wyszukiwanie i magazyn zarządzany przez firmę Microsoft) — używane, gdy nie skonfigurowano hosta funkcji.
- Możliwości hosta na poziomie konta — zapewnia wspólne wartości domyślne dla wszystkich projektów w ramach konta.
- Host możliwości na poziomie projektu — zastępuje wartości domyślne na poziomie konta i usługi dla tego konkretnego projektu.
Zrozumienie ograniczeń hosta możliwości
Podczas tworzenia hostów możliwości należy pamiętać o tych ważnych ograniczeniach, aby uniknąć konfliktów:
Jeden host funkcji na zakres: każde konto i każdy projekt może mieć tylko jeden aktywny host funkcji. Jeśli spróbujesz utworzyć drugi host możliwości o innej nazwie w tym samym zakresie, wystąpi konflikt 409.
Nie można zaktualizować konfiguracji: jeśli musisz zmienić konfigurację, usuń istniejący host możliwości i utwórz go ponownie.
Utwórz połączenia dla hostów funkcji
Hosty funkcjonalności zawierają nazwy połączeń, które tworzysz na koncie i w projekcie Foundry. Przed skonfigurowaniem hosta możliwości projektu dla standardowej konfiguracji agenta utwórz połączenia dla zasobów, które przechowują dane agenta:
- Przechowywanie wątków: połączenie z usługą Azure Cosmos DB
- Przechowywanie plików: połączenie z Azure Storage
- Magazyn wektorów: połączenie z Azure AI Search
Jeśli chcesz używać wdrożeń modelu z własnego zasobu usługi Azure OpenAI, również utwórz połączenie Azure OpenAI.
Aby dodać połączenia w portalu Foundry, zobacz Dodawanie nowego połączenia do projektu.
Konfigurowanie hostów możliwości
Obecnie zarządzasz hostami funkcji za pomocą API REST. Obsługa zestawu SDK na potrzeby zarządzania hostami możliwości nie jest dostępna.
Wymagane właściwości (host możliwości projektu)
Aby użyć własnych zasobów na potrzeby danych agenta (konfiguracja agenta standardowego), skonfiguruj hosta możliwości projektu przy użyciu następujących właściwości:
| Majątek | Przeznaczenie | Wymagany zasób platformy Azure | Przykładowa nazwa połączenia |
|---|---|---|---|
threadStorageConnections |
Przechowuje definicje agentów, historię konwersacji i wątki rozmów | Azure Cosmos DB | "my-cosmosdb-connection" |
vectorStoreConnections |
Obsługuje magazyn wektorów do pobierania i wyszukiwania | Wyszukiwanie AI platformy Azure | "my-ai-search-connection" |
storageConnections |
Zarządza przekazywaniem plików i przechowywaniem blobów | Konto magazynu platformy Azure | "my-storage-connection" |
Właściwość opcjonalna
| Majątek | Przeznaczenie | Wymagany zasób platformy Azure | Kiedy należy używać |
|---|---|---|---|
aiServicesConnections |
Używaj własnych wdrożeń modelu | Azure OpenAI | Jeśli chcesz używać modeli z istniejącego zasobu usługi Azure OpenAI, zamiast modeli wbudowanych na poziomie konta. |
Gospodarz funkcji konta
Aby włączyć usługę agenta, użyj hosta obsługi konta i (opcjonalnie) zdefiniuj wartości domyślne, które mogą dziedziczyć projekty.
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CognitiveServices/accounts/{accountName}/capabilityHosts/{name}?api-version=2025-06-01
{
"properties": {
"capabilityHostKind": "Agents"
}
}
Dokumentacja: interfejs API REST zarządzania kontem Foundry
Host możliwości projektu
Ta konfiguracja zastępuje ustawienia domyślne usługi i ustawienia na poziomie konta. Wszyscy agenci w tym projekcie będą używać określonych zasobów:
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CognitiveServices/accounts/{accountName}/projects/{projectName}/capabilityHosts/{name}?api-version=2025-06-01
{
"properties": {
"capabilityHostKind": "Agents",
"threadStorageConnections": ["my-cosmos-db-connection"],
"vectorStoreConnections": ["my-ai-search-connection"],
"storageConnections": ["my-storage-account-connection"],
"aiServicesConnections": ["my-azure-openai-connection"]
}
}
Dokumentacja: Hosty możliwości projektu — tworzenie lub aktualizowanie
Opcjonalnie: wartości domyślne na poziomie konta z nadpisaniami projektu
Ustaw wartości domyślne udostępnione na poziomie konta, które mają zastosowanie do wszystkich projektów:
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CognitiveServices/accounts/{accountName}/capabilityHosts/{name}?api-version=2025-06-01
{
"properties": {
"capabilityHostKind": "Agents",
"threadStorageConnections": ["shared-cosmosdb-connection"],
"vectorStoreConnections": ["shared-ai-search-connection"],
"storageConnections": ["shared-storage-connection"]
}
}
Uwaga / Notatka
Wszystkie projekty Foundry będą dziedziczyć te ustawienia. Następnie przesłoń określone ustawienia na poziomie projektu zgodnie z potrzebami.
Weryfikowanie konfiguracji
Wykonaj następujące kroki, aby upewnić się, że hosty funkcji są poprawnie skonfigurowane:
Pobierz hosta możliwości konta i upewnij się, że istnieje.
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CognitiveServices/accounts/{accountName}/capabilityHosts?api-version=2025-06-01Pobierz hosta możliwości projektu i potwierdź, że odwołuje się do oczekiwanych nazw połączeń.
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CognitiveServices/accounts/{accountName}/projects/{projectName}/capabilityHosts?api-version=2025-06-01Przetestuj konfigurację, tworząc agenta testowego i uruchamiając konwersację. Potwierdź, że:
- Wątki konwersacji są wyświetlane w usłudze Azure Cosmos DB
- Przekazane pliki są wyświetlane na koncie usługi Azure Storage
- Dane wektorowe są wyświetlane w indeksie usługi Azure AI Search
Jeśli zaktualizujesz połączenia lub chcesz zmienić miejsce przechowywania danych, usuń, a następnie ponownie utwórz hosty funkcji za pomocą zaktualizowanej konfiguracji.
Usuwanie hostów możliwości
Ostrzeżenie
Usunięcie hosta możliwości będzie miało wpływ na wszystkich agentów, którzy od niego zależą. Przed kontynuowaniem upewnij się, że rozumiesz wpływ. Jeśli na przykład usuniesz hosta możliwości dla projektu i konta, agenci w twoim projekcie nie będą już mieli dostępu do plików, zasobów wątków i wektorów, do których wcześniej mieli dostęp.
Usuwanie hosta możliwości na poziomie konta
DELETE https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CognitiveServices/accounts/{accountName}/capabilityHosts/{name}?api-version=2025-06-01
Usuń hosta funkcjonalności na poziomie projektu
DELETE https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CognitiveServices/accounts/{accountName}/projects/{projectName}/capabilityHosts/{name}?api-version=2025-06-01
Rozwiązywanie problemów
Jeśli występują problemy podczas tworzenia hostów możliwości, ta sekcja zawiera rozwiązania najczęstszych problemów i błędów.
Błędy HTTP 409 Konflikt
Problem: Wiele hostów na każdy zakres
Objawy: Podczas próby utworzenia hosta funkcji występuje błąd 409 Conflict, mimo że uważasz, że zakres jest pusty.
Komunikat o błędzie:
{
"error": {
"code": "Conflict",
"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."
}
}
Przyczyna: Każde konto i każdy projekt mogą mieć tylko jednego aktywnego hosta funkcji. Próbujesz utworzyć host funkcji o innej nazwie, gdy jeden już istnieje w tym samym zakresie.
Rozwiązanie:
- Sprawdź istniejące hosty funkcjonalności — Wykonaj zapytanie zakresu, aby zobaczyć, co już istnieje
- Użyj spójnego nazewnictwa — upewnij się, że używasz tej samej nazwy we wszystkich żądaniach dla tego samego zakresu
- Przejrzyj wymagania — ustal, czy istniejący host funkcjonalności spełnia Twoje potrzeby
Kroki weryfikacji: Użyj żądań GET w sekcji Weryfikowanie konfiguracji, aby potwierdzić, czy host funkcjonalności już istnieje w docelowym zakresie.
Problem: Współbieżne operacje w toku
Objawy: Zostanie wyświetlony błąd 409 Konflikt wskazujący, że inna operacja jest obecnie uruchomiona.
Komunikat o błędzie:
{
"error": {
"code": "Conflict",
"message": "Create: Capability Host my-host is currently in non creating, retry after its complete: /subscriptions/.../workspaces/my-workspace"
}
}
Przyczyna: Próbujesz utworzyć hosta funkcji, podczas gdy inna operacja (aktualizacja, usuwanie, modyfikowanie) jest w toku w tym samym zakresie.
Rozwiązanie:
- Poczekaj na zakończenie bieżącej operacji — sprawdź stan bieżących operacji
- Monitorowanie postępu operacji — użyj interfejsu API operacji, aby śledzić ukończenie.
- Implementowanie logiki ponawiania prób — używanie wycofywania wykładniczego w przypadku konfliktów tymczasowych
Monitorowanie operacji:
GET https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.CognitiveServices/locations/{location}/operationResults/{operationId}?api-version=2025-06-01
Najlepsze rozwiązania dotyczące zapobiegania konfliktom
1. Sprawdzanie poprawności przed żądaniem
Przed wprowadzeniem zmian zawsze sprawdź bieżący stan:
- Zapytaj istniejące hosty funkcji w docelowym zakresie
- Sprawdź bieżące operacje
- Omówienie bieżącej konfiguracji
2. Zaimplementuj logikę ponawiania przy użyciu wycofywania wykładniczego
try
{
var response = await CreateCapabilityHostAsync(request);
return response;
}
catch (HttpRequestException ex) when (ex.Message.Contains("409"))
{
if (ex.Message.Contains("existing Capability Host with name"))
{
// Handle name conflict - check if existing resource is acceptable
var existing = await GetExistingCapabilityHostAsync();
if (IsAcceptable(existing))
{
return existing; // Use existing resource
}
else
{
throw new InvalidOperationException("Scope already has a capability host with different name");
}
}
else if (ex.Message.Contains("currently in non creating"))
{
// Handle concurrent operation - implement retry with backoff
await Task.Delay(TimeSpan.FromSeconds(30));
return await CreateCapabilityHostAsync(request); // Retry once
}
}
3. Omówienie zachowania idempotentnego
System obsługuje idempotentne żądania tworzenia:
- Ta sama nazwa i ta sama konfiguracja → Zwraca istniejący zasób (200 OK)
- Ta sama nazwa i inna konfiguracja → Zwraca 400 nieprawidłowych żądań
- Inna nazwa → zwraca 409 Konflikt
4. Przepływ zmiany konfiguracji
Ponieważ aktualizacje nie są obsługiwane, postępuj zgodnie z tą sekwencją zmian konfiguracji:
- Usuń istniejącego hosta funkcji
- Poczekaj na zakończenie usuwania
- Tworzenie nowego hosta możliwości z żądaną konfiguracją
Typowe scenariusze
- Programowanie i testowanie: użyj zasobów zarządzanych przez firmę Microsoft. Nie jest wymagana żadna konfiguracja hosta funkcji.
- Produkcja z wymaganiami dotyczącymi zgodności: tworzenie hostów funkcjonalności, korzystając z własnych usług Azure Cosmos DB, Storage i AI Search.
- Współużytkowane zasoby między projektami: skonfiguruj wartości domyślne na poziomie konta, a następnie przesłoń je na poziomie projektu zgodnie z potrzebami.