Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Diagnozuj i rozwiązuj typowe problemy podczas tworzenia, uruchamiania i wdrażania agentów za pomocą azd ai agent dla Microsoft Foundry. Zacznij od poleceń diagnostycznych. Następnie skorzystaj z sekcji opartych na objawach, aby rozwiązać problemy z uwierzytelnianiem, programowaniem lokalnym, wdrażaniem, bezpośrednimi poleceniami, dziennikami i procedurami.
Wymagania wstępne
- Zainicjowany projekt agenta hostowanego. Aby go utworzyć, zobacz Jak zainicjować projekt agenta.
- Zainstalowane rozszerzenia azd Foundry. Aby uzyskać instrukcje instalacji, zobacz Instalowanie rozszerzeń azd Foundry.
- Uwierzytelniona sesja Azure Developer CLI. W razie potrzeby uruchom polecenie
azd auth login. - W przypadku problemów z wdrażaniem i dziennikami — wdrożony agent hostowany. Aby wdrożyć go, zobacz Wdrażanie hostowanego agenta.
Zbieranie kontekstu diagnostycznego
Przed zagłębieniem się w określone błędy użyj tych poleceń, aby zebrać kontekst:
# Check extension version
azd ai agent version
# Verify Azure authentication
azd auth login
# Show current environment configuration
azd env get-values
# View agent details
azd ai agent show
# Show the resolved Foundry project endpoint and where it came from
azd ai project show
# Stream production logs
azd ai agent monitor --follow
Aby uzyskać ustrukturyzowany raport kondycji, uruchom polecenie azd ai agent doctor. Aby uzyskać więcej informacji, zobacz Diagnozowanie projektu za pomocą narzędzia Agent Doctor.
Diagnozuj opóźnienie wywołania
Użyj nagłówków debugowania opóźnień, aby określić, czy obsługa wolnego żądania do hostowanego agenta zajęła czas na platformie, na aprowizowanie infrastruktury, na oczekiwanie na kontener czy na przetwarzanie żądania przez agenta. Te nagłówki są sygnałami diagnostycznymi, a nie wskaźnikami SLA ani wskaźnikami rozliczeniowymi.
Włącz diagnostykę dla każdego żądania, ustawiając wartość x-ms-debug-latency-enabled: true. Jeśli żądanie nie zawiera tego nagłówka, odpowiedź nie będzie zawierać x-ms-debug-latency-* nagłówków.
Dodaj nagłówek opóźnień do żądania protokołu Responses lub Invocations dla hostowanego agenta. W tym przykładzie użyto protokołu Responses:
ENDPOINT="https://{account}.services.ai.azure.com/api/projects/{project}" API_VERSION="v1" TOKEN=$(az account get-access-token \ --resource https://ai.azure.com \ --query accessToken -o tsv) AGENT="my-code-agent" curl --http2 -i -X POST \ "$ENDPOINT/agents/$AGENT/endpoint/protocols/openai/responses?api-version=$API_VERSION" \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -H "x-ms-debug-latency-enabled: true" \ -d '{"model":"gpt-5.4-mini","input":"Hello, agent!","stream":false}'Sprawdź nagłówki odpowiedzi. Wszystkie wartości opóźnienia to liczba całkowita milisekund:
Nagłówka Meaning x-ms-debug-latency-session-start-typeTyp uruchomienia sesji wywołanego przez żądanie: zimny start ( cold), ciepły start (warm) lub wznowienie po stanie bezczynności (resume).x-ms-debug-latency-platform-preprocessing-msCzas platformy na dopuszczenie, uwierzytelnianie, wyszukiwanie sesji i orkiestrację. Nie obejmuje to aprowizacji mikro maszyn wirtualnych ani opóźnień gotowości kontenera. Dostępne dla zimnych, ciepłych i wznowionych uruchomień sesji. x-ms-debug-latency-infra-setup-msCzas utworzyć mikromaszynę wirtualną. Pominięto w przypadku ciepłych żądań. x-ms-debug-latency-container-readiness-msCzas od utworzenia mikro maszyny wirtualnej do momentu, aż kontener będzie gotowy. Pominięto w przypadku ciepłych żądań. x-ms-debug-latency-container-response-msCzas od momentu przekazania przez serwer proxy do momentu zatwierdzenia nagłówków odpowiedzi. Obejmuje przesyłanie żądań, konfigurację połączenia, obsługę agenta, ponawianie prób i buforowanie zgodnie z zasadami wyjściowymi. x-ms-debug-latency-response-begin-msCałkowity czas od akceptacji usługi do momentu zatwierdzenia nagłówków odpowiedzi. Ta wartość nie oznacza czasu do otrzymania pierwszego bajtu treści odpowiedzi ani pierwszego zdarzenia przesłanego przez serwer. Cztery składowe czasowe sumują się do
x-ms-debug-latency-response-begin-ms. W przypadku żądania uruchamianego na zimno lub wznawianego, jeśli platforma nie może uchwycić każdego etapu procesu aprowizacji, pomija nagłówki dotyczące infrastruktury i gotowości oraz wlicza ten czas do wstępnego przetwarzania przez platformę.Użyj typu rozpoczęcia sesji i najdłuższego składnika czasu, aby określić prawdopodobne źródło opóźnienia:
Result Interpretacja Co zrobić x-ms-debug-latency-session-start-typejestcoldlubresume, ix-ms-debug-latency-infra-setup-msjest wysokiPlatforma potrzebowała czasu na utworzenie mikromaszyny wirtualnej. Porównaj kilka zimnych lub wznowionych żądań. Jeśli opóźnienie będzie się powtarzać, zarejestruj identyfikator odpowiedzi, znacznik czasu i nagłówki opóźnienia dla żądania pomocy technicznej. x-ms-debug-latency-session-start-typejestcoldlubresume, ix-ms-debug-latency-container-readiness-msjest wysokiUruchomienie kontenera i przygotowanie raportu zajęło dużo czasu. Mierz etapy inicjalizacji w logach uruchamiania, ogranicz zakres pracy, zanim endpoint gotowości stanie się dostępny, i wstępnie kompiluj kod aplikacji tam, gdzie to możliwe. x-ms-debug-latency-platform-preprocessing-msjest wysoki dla dowolnego typu rozpoczęcia sesjiOpóźnienie wystąpiło na platformie przed aprowizowaniem mikro-maszyn wirtualnych lub gotowością kontenera. Utwórz wniosek o pomoc techniczną. Uwzględnij identyfikator odpowiedzi, znacznik czasu, typ rozpoczęcia sesji i nagłówki opóźnienia. x-ms-debug-latency-container-response-ms, lubx-ms-debug-latency-first-byte-msprzyczepafirst_byte_msjest wysokaOpóźnienie wystąpiło po rozpoczęciu przekazywania przez serwer proxy. Instrumentacja procedury obsługi żądań i inspekcja dzienników agentów, wywołań modelu, wywołań narzędzi, ponownych prób i buforowania danych wyjściowych.
Skrócenie czasu gotowości kontenera
Wskaźnik gotowości kontenera obejmuje czas wymagany do uruchomienia procesu, załadowania aplikacji i zwrócenia kodu stanu HTTP 200 pod adresem /readiness. Dodaj znaczniki czasu do dzienników uruchamiania, aby zidentyfikować powolne importowanie, ładowanie zależności, wywołania sieciowe i inne zadania inicjowania.
Zastosuj te optymalizacje do wolno działających etapów, które zidentyfikujesz:
- Zainstaluj zależności i skompiluj kod podczas kompilowania obrazu. Nie uruchamiaj instalacji, przywracania ani kompilacji pakietu podczas uruchamiania kontenera.
- Użyj wieloestegożowego kompilowania i wykluczania narzędzi kompilacji, pamięci podręcznych pakietów, testów i innych plików programistycznych z obrazu środowiska uruchomieniowego.
- Unikaj wywołań modelu, migracji, odnajdywania narzędzi i pobierania zasobów przed gotowością. Uruchom równolegle niezależne procesy inicjalizacji, które muszą najpierw się zakończyć.
- Koncentruj
/readinesssię na tym, czy agent może akceptować żądania. Jeśli odraczasz inicjalizację, zmierz czas obsługi pierwszego żądania, aby upewnić się, że opóźnienie uruchamiania nie zostało przeniesione do obsługi żądań.
Zainstaluj zależności w środowisku wirtualnym, które kopiujesz do obrazu środowiska uruchomieniowego. Kompiluj zależności w miarę możliwości, aby plik, którego nie można sparsować, w pakiecie zewnętrznym nie powodował niepowodzenia kompilacji. Skompiluj aplikację w trybie ścisłym, aby błędy składniowe powodowały niepowodzenie kompilacji.
FROM python:3.13-slim AS build
WORKDIR /app
RUN python -m venv /opt/venv
ENV PATH="/opt/venv/bin:$PATH"
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
RUN PYTHONDONTWRITEBYTECODE= python -m compileall -q /opt/venv \
|| true; \
PYTHONDONTWRITEBYTECODE= python -m compileall -q /app
FROM python:3.13-slim AS final
ENV PATH="/opt/venv/bin:$PATH"
WORKDIR /app
COPY --from=build /opt/venv /opt/venv
COPY --from=build /app /app
# Precompile the standard library in the runtime image.
RUN PYTHONDONTWRITEBYTECODE= python -m compileall -q \
"$(python -c "import sysconfig; print(sysconfig.get_path('stdlib'))")" \
|| true
CMD ["python", "main.py"]
Wyczyszczenie PYTHONDONTWRITEBYTECODE tego kroku kompilacji umożliwia Python zapis kodu bajtowego na obrazie. Zmienna środowiskowa blokuje zapisy kodu bajtowego, a nie odczyty, więc uruchomiony kontener nadal może używać skompilowanych plików.
Informacje: compileall — Kompilowanie bibliotek języka Python do kodu bajtowego
Utwórz dowolny obraz dla architektury x86-64 wymaganej przez hostowanych agentów:
docker build --platform linux/amd64 -t my-agent:latest .
linux/amd64 Oto platforma Docker, a nie identyfikator środowiska uruchomieniowego .NET.
Dokumentacja: Wymagania dotyczące kontenera hostowanego agenta
Badanie opóźnienia agenta i modelu
Jeśli gotowość kontenera jest szybka, ale czas odpowiedzi kontenera lub pierwszego bajtu jest wysoki, skoncentruj się na śledztwie na ścieżce żądania po rozpoczęciu przekazywania dalej.
Uruchom azd ai agent monitor --follow podczas odtwarzania żądania i dodaj śledzenie wokół wywołań modelu, wywołań narzędzi, usług zewnętrznych, ponownych prób i serializacji odpowiedzi. Aby uzyskać więcej informacji, zobacz Monitorowanie dzienników agentów hostowanych.
W przypadku agenta, który wywołuje duży model językowy, należy mierzyć opóźnienie modelu oddzielnie przed zmianą wdrożenia. Porównaj czas do wygenerowania pierwszego tokenu, czas między tokenami, wygenerowaną liczbę tokenów, rozmiar monitu wejściowego, wykorzystanie wdrożenia i dławienie. Następnie oceń wybór modelu, limity tokenów wyjściowych, przesyłanie strumieniowe i separację obciążenia. Zobacz Poprawianie wydajności interfejsu OpenAI Azure.
Jeśli pomiary wskazują na utrzymującą się presję na pojemność przy przewidywalnym obciążeniu, rozważ wdrożenie z przydzieloną przepustowością i dobierz jego rozmiar na podstawie obserwowanej liczby tokenów wejściowych, tokenów wyjściowych oraz szybkości żądań. Zobacz Przepustowość aprowizowana.
Sprawdź czasy ukończenia
W protokole HTTP/2 lub nowszym usługa może zwrócić pole końcowe odpowiedzi x-ms-debug-latency-final w miarę możliwości. Powtarza wartości nagłówka odpowiedzi i może dodać następujące pola:
| Pole | Meaning |
|---|---|
first_byte_ms |
Czas od akceptacji usługi, aż do pierwszego bajtu odpowiedzi lub zdarzenia wysłanego przez serwer. |
total_last_byte_ms |
Czas od akceptacji usługi do momentu zakończenia przekazywania odpowiedzi. |
Zwiastun używa formatu rozdzielanego średnikami:
x-ms-debug-latency-final: v=1;start=cold;platform_pre_ms=...;
infra_ms=...;ready_ms=...;container_response_ms=...;
response_begin_ms=...;first_byte_ms=...;total_last_byte_ms=...
Odpowiedzi HTTP/1.1 nie obejmują tego zwiastuna. Przyczepa może być również nieobecna po anulowaniu, rozłączeniu klienta, błędzie połowy strumienia lub gdy brama lub zestaw SDK nie zachowuje przyczep. Traktuj nagłówki odpowiedzi jako gwarantowany kontrakt diagnostyczny.
Pobieranie przechowywanych wyników opóźnienia
Usługa przechowuje zarejestrowane czasy wraz z odpowiedzią lub wywołaniem. Późniejsze żądanie GET dotyczące tej samej odpowiedzi lub identyfikatora wywołania zwraca w nagłówkach odpowiedzi czasy oryginalnego żądania. Żądanie GET nie wymaga nagłówka latency i nie mierzy samego żądania GET.
Żądanie GET może również zwrócić te wartości ukończenia jako zwykłe nagłówki:
| Nagłówka | Meaning |
|---|---|
x-ms-debug-latency-first-byte-ms |
Czas do pierwszego bajtu treści odpowiedzi. |
x-ms-debug-latency-total-last-byte-ms |
Czas do zakończenia przekazywania odpowiedzi. |
Pamięć masowa jest spójna w sposób ostateczny, więc żądanie GET wysłane bezpośrednio po pierwotnym żądaniu może jeszcze nie zawierać tych nagłówków. W przypadku odpowiedzi asynchronicznej lub wywołania dostępne są tylko wartości związane z obciążeniem platformy: typ uruchomienia sesji, wstępne przetwarzanie platformy, konfiguracja infrastruktury i gotowość kontenera.
Nagłówki opóźnień nie są emitowane dla nieudanych odpowiedzi serwera proxy ani żądań Protokołu WebSocket (invocations_ws).
Naprawianie błędów uwierzytelniania
Napraw AuthenticationError
Objawy: Agent nie uruchamia się lokalnie lub zwraca błąd 401/403 podczas wywoływania modelu AI.
Przyczyny i poprawki:
-
Wygasłe poświadczenia — uruchom polecenie
azd auth login, aby odświeżyć sesję Azure. -
Nieprawidłowa subskrypcja — zweryfikuj z
azd env get-values | grep AZURE_SUBSCRIPTION_ID, czy jest zgodna z subskrypcją projektu Foundry. - Brak ról RBAC — Twoje konto wymaga roli Foundry User lub równoważnych uprawnień w projekcie Foundry.
Ważna
Niedawno zmieniono nazwy ról RBAC w usłudze Foundry. Użytkownik Foundry, właściciel Foundry, właściciel konta Foundry i menedżer projektu Foundry były wcześniej nazywane odpowiednio użytkownikiem Azure AI, właścicielem Azure AI, właścicielem konta Azure AI i menedżerem projektu Azure AI. Poprzednie nazwy mogą być nadal widoczne w niektórych miejscach, podczas gdy zmiana nazwy jest wdrażana. Identyfikatory ról i uprawnienia podstawowe są niezmienione przez zmianę nazwy.
Twoja tożsamość wymaga również użytkownika OpenAI usług Cognitive Services do korzystania z wdrożeń modelu.
Napraw AuthorizationFailed w trakcie aprowizacji
Objawy:azd up lub azd provision kończy się niepowodzeniem z powodu błędu uprawnień.
Poprawka: Zażądaj roli Współautor w ramach subskrypcji Azure. W przypadku CI/CD jednostka usługi głównej wymaga również roli Foundry Owner.
Napraw SubscriptionNotRegistered
Objawy: Aprowizowanie kończy się niepowodzeniem, ponieważ wymagany dostawca zasobów nie jest zarejestrowany.
Rozwiązanie:
az provider register --namespace Microsoft.CognitiveServices
az provider register --namespace Microsoft.ContainerRegistry
Napraw problemy z lokalnym środowiskiem programistycznym
Rozwiązano problem z odmową połączenia na porcie 8088
Objawy:azd ai agent invoke --local Nie można nawiązać połączenia.
Przyczyny i poprawki:
Agent nie jest uruchomiony — uruchom go za pomocą
azd ai agent runw osobnym terminalu.Konflikt portów — inny proces używa portu 8088. Zatrzymaj go lub użyj portu niestandardowego:
azd ai agent run --port 9090 azd ai agent invoke --local --port 9090 "Hello!"Awaria podczas uruchamiania -- sprawdź komunikaty o błędach w terminalu, w którym uruchomiono
azd ai agent run. Typowe przyczyny obejmują brakujące zależności, błędy importu lub nieprawidłowestartupCommandw plikuazure.yaml.
Napraw błędy instalacji zależności
Objawy:azd ai agent run niepowodzenie podczas instalacji zależności.
Przyczyny i poprawki:
- Nieprawidłowa wersja środowiska uruchomieniowego — upewnij się, że zainstalowano Python 3.10 lub .NET 8 lub nowszych.
-
Brak
requirements.txtlub.csproj— interfejs wiersza polecenia automatycznie wykrywa typ projektu z tych plików. Sprawdź, czy istnieją one w katalogu agenta. -
Problemy z siecią — rejestry pakietów mogą być blokowane przez firmowy serwer proxy. Sprawdź konfigurację
piplubdotnet.
Napraw ResourceNotFound lub DeploymentNotFound
Objawy: Agent uruchamia się, ale kończy się niepowodzeniem podczas próby wywołania modelu.
Przyczyny i poprawki:
-
Niezgodność punktu końcowego — uruchom polecenie
azd env get-valuesi sprawdź, czyFOUNDRY_PROJECT_ENDPOINTjest taki sam jak punkt końcowy widoczny w portalu Foundry. -
Niezgodność nazwy wdrożenia modelu — nazwa wdrożenia modelu skonfigurowana w
azure.yamlprogramie musi być zgodna z nazwą wdrożenia w projekcie Foundry. Sprawdź w portalu w sekcji Wdrożenia. -
Zasoby nie są aprowiowane — jeśli jeszcze nie uruchomiono
azd up, zasoby w chmurze nie będą istnieć. Najpierw uruchomazd up, a następnie przetestuj lokalnie. Agent lokalny nadal wywołuje modele hostowane w chmurze.
Rozwiązywanie problemów z wdrażaniem
Naprawianie błędów kompilacji kontenera
Objawy:azd up kończy się niepowodzeniem w fazie kompilacji platformy Docker.
Przyczyny i poprawki:
-
Brak pliku Dockerfile — upewnij się, że w katalogu agenta znajduje się plik
Dockerfile. Jeśli zainicjowano go na podstawie szablonu, jest to generowane automatycznie. -
Błędy kontekstu budowania —
Dockerfilemusi znajdować się w katalogu określonym przez ścieżkę usługiprojectzdefiniowaną w plikuazure.yaml. -
Instalacja zależności w Dockerze — jeśli polecenie pip lub dotnet restore kończy się niepowodzeniem w kontenerze, sprawdź, czy w
requirements.txtlub.csprojwszystkie zależności są poprawnie przypięte.
Napraw problem z azd up zawieszaniem się lub przekroczeniem limitu czasu
Objawy: Aprowizowanie lub wdrażanie trwa niezwykle długo.
Przyczyny i poprawki:
-
Pierwsze wdrożenie — pierwsze
azd upaprowizuje wszystkie zasoby Azure, w tym projekt Foundry, usługę ACR, tożsamość zarządzaną i wdrożenie modelu oraz może potrwać 5–10 minut. Kolejne wdrożenia są szybsze. -
Zdalna kompilacja — domyślnie obrazy kontenerów są tworzone zdalnie w usłudze ACR. Może to być wolniejsze, ale nie wymaga platformy Docker lokalnie. Aby zamiast tego budować lokalnie, ustaw
docker.remoteBuild: falsew konfiguracji usługiazure.yaml. - Pojemność regionu — niektóre regiony mogą mieć ograniczoną pojemność dla niektórych jednostek SKU modelu. Spróbuj użyć innego regionu, jeśli aprowizacja stale kończy się niepowodzeniem.
Napraw agenta, który został wdrożony, ale nie odpowiada
Objawy:azd ai agent invoke Operacja przekracza limit czasu lub zwraca błędy po pomyślnym wdrożeniu.
Przyczyny i poprawki:
-
Sonda kondycji kończy się niepowodzeniem — kontener musi odpowiadać na
GET /readinessna porcie 8088 kodem stanu 200. Sprawdź dzienniki za pomocą poleceniaazd ai agent monitor --follow. -
Niezgodność protokołu — upewnij się, że protokół zdefiniowany w
azure.ai.agentusłudze jestazure.yamlzgodny z implementacją kodu. Jeśliazure.yamlwskazujeresponses, ale Twój kod obsługuje tylkoinvocationslub odwrotnie, żądania zakończą się błędem. -
Awarie kontenera — sprawdź dzienniki systemowe pod kątem zdarzeń ponownego uruchomienia:
azd ai agent monitor --type system. Typowe przyczyny obejmują nieobsługiwane wyjątki i problemy z pamięcią. Zwiększ zasoby kontenera wazure.yaml, jeśli to konieczne.
Naprawianie błędów poleceń bezpośrednich
Te błędy pochodzą z bezpośrednich poleceń azd ai, takich jak azd ai connection, azd ai toolbox i azd ai routine, gdy są uruchamiane w projekcie Foundry.
Naprawa nierozwiązanego punktu końcowego projektu Foundry
Objawy: Bezpośrednie polecenie kończy działanie za pomocą polecenia No Foundry project endpoint resolved. Run azd ai project set to set one, or pass --project-endpoint.
Przyczyna: CLI nie mógł znaleźć punktu końcowego projektu Foundry w żadnym z obsługiwanych źródeł: flaga --project-endpoint, aktywne środowisko azd, konfiguracja globalna lub zmienna środowiskowa FOUNDRY_PROJECT_ENDPOINT.
Poprawki:
- Uruchom polecenie
azd ai project set <endpoint>, aby zapisać punkt końcowy w globalnej konfiguracjiazd(~/.azd/config.json). - Przekaż
--project-endpoint(-p) dla każdego polecenia:azd ai connection list -p https://my-proj.services.ai.azure.com/api/projects/my-project. - Ustaw
FOUNDRY_PROJECT_ENDPOINTw środowisku shella.
Pełną kolejność rozstrzygania oraz informacje o tym, kiedy pierwszeństwo ma każde źródło, znajdziesz w artykule Opis kontekstu projektu azd.
Naprawianie błędów tworzenia istniejących zasobów
Objawy:azd ai connection create, azd ai toolbox create, azd ai routine createlub azd ai skill create kończy się niepowodzeniem z powodu błędu "już istnieje".
Przyczyna: Z założenia create nie obsługuje operacji upsert. Domyślny tryb niepowodzenia uniemożliwia jednemu deweloperowi dyskretne zastąpienie stanu innego w udostępnionym projekcie foundry.
Poprawki:
- Wybierz inną nazwę i uruchom ponownie.
- Przekaż parametr
--force, jeśli poleceniecreateto obsługuje, aby zastąpić istniejący zasób za pomocą operacji ARM PUT. Zastąpienie ma charakter destrukcyjny: nadpisuje istniejący zasób w miejscu, a wszelkie rozbieżności wynikające z ręcznych zmian w portalu, metadanych lub danych uwierzytelniających zostaną utracone. Polecenieazd ai toolbox createnie obsługuje--force. Usuń istniejący przybornik lub użyj zamiast tego nowej nazwy.
Poprawianie connection show danych wyjściowych poświadczeń
Symptomy:azd ai connection show <name> Zwraca nazwę połączenia, jego rodzaj, element docelowy i typ uwierzytelniania, ale nie zwraca klucza API ani wartości poświadczeń.
Przyczyna: Domyślnie wartości danych uwierzytelniających nigdy nie są zwracane. Wymagają one jawnej --show-credentials flagi.
Rozwiązanie:
azd ai connection show tavily-conn --show-credentials
Spowoduje to wywołanie interfejsu API płaszczyzny danych i wymaga uprawnień płaszczyzny danych w projekcie Foundry, takich jak Użytkownik usługi Foundry lub odpowiednik. Jeśli masz tylko dostęp do płaszczyzny Reader zarządzania lub Contributor, wywołanie kończy się błędem 403. Poproś właściciela projektu o rolę płaszczyzny danych.
Odczytywanie dzienników agenta
Użyj azd ai agent monitor, aby sprawdzić zachowanie agenta:
# Stream all recent logs
azd ai agent monitor --follow
# View system-level events (container starts, crashes, restarts)
azd ai agent monitor --type system
# Filter to a specific session
azd ai agent monitor --session-id <session-id>
Typowe wzorce dzienników obejmują:
| Wiadomość logu | Meaning |
|---|---|
Listening on 0.0.0.0:8088 |
Agent został pomyślnie uruchomiony. |
AuthenticationError |
Problem z poświadczeniami lub mechanizmem RBAC. Sprawdź tożsamość zarządzaną. |
ModelNotFound |
Nazwa wdrożenia modelu nie jest zgodna z azure.yaml. |
| Ponowne uruchomienie kontenera w zdarzeniach systemu | Pętla awarii. Sprawdź błędy kodu lub zwiększ limity zasobów. |
Diagnozowanie rutynowych błędów
Rutyny kończą się błędem inaczej niż interaktywne wywołania agent invoke, ponieważ nie ma podmiotu wywołującego, który mógłby ujawnić błąd. Procedura to wyzwalane przez czasomierz, cykliczne, wyzwalane przez zgłoszenie GitHub lub wyzwalane przez zdarzenie niestandardowe uruchomienie agenta. Użyj polecenia azd ai routine run list , aby sprawdzić, co się stało.
Sprawdzanie poprzednich przebiegów
# Recent runs of a routine: trigger time, agent input/output, status, trace link
azd ai routine run list daily-digest
Filtruj według niepowodzeń
# Failed runs only, with an OData filter
azd ai routine run list daily-digest --filter "status eq 'failed'"
Połącz z --top , aby poszerzyć lub zawęzić okno.
Przechodzenie do szczegółów pojedynczego przebiegu
# Full detail for the most recent runs as JSON, then look up the run you care about
azd ai routine run list daily-digest --top 5 --output json
Dane wyjściowe w formacie JSON obejmują ładunek danych wejściowych, odpowiedź agenta oraz link głęboki do śledzenia rozproszonego, czyli ten sam ślad, który można zobaczyć podczas wywołania interakcyjnego.
Ręcznie ponownie uruchom rutynę
Jeśli musisz odtworzyć błąd lub przetestować poprawkę, uruchom procedurę na żądanie za pomocą polecenia dispatch:
azd ai routine dispatch daily-digest
azd ai routine dispatch triage-issues --input '{"issue":{"number":42}}'
dispatch uruchamia się asynchronicznie i wyświetla identyfikator wysłania. Sprawdź wynik za pomocą polecenia azd ai routine run list <name>.
Naprawianie nieudanego uruchomienia procedury
azd ai routine run list pokazuje uruchomienie za pomocą status: failed. Kliknij link śledzenia, aby zobaczyć źródłowy błąd agenta, taki jak błąd modelu, awaria narzędzia lub przekroczenie limitu czasu. Poprawki po stronie agenta są takie same jak w przypadku błędów interakcyjnych. Zobacz Naprawianie błędów uwierzytelniania i odczytywanie dzienników agenta.
Napraw procedurę, która nigdy się nie uruchamia
Jeśli azd ai routine run list w ogóle nie zwraca żadnych uruchomień, sam wyzwalacz się nie uruchamia:
- Sprawdź, czy włączono procedurę:
azd ai routine show <name>. Poszukajenabled: true. - W przypadku wyzwalaczy
timersprawdź, czy--atjest ustawione na przyszłość i nie zostało jeszcze uruchomione. - W przypadku wyzwalaczy
recurringsprawdź, czy wyrażenie--cronjest prawidłowe i czy--time-zonejest zgodne z oczekiwaniami. - W przypadku wyzwalaczy
github-issuesprawdź, czy element--connection-idwskazuje na sprawne połączenie oraz czy repozytorium GitHub i--issue-eventodpowiadają zdarzeniom generowanym przez repozytorium. - W przypadku wyzwalaczy
customsprawdź, czy zakres--provider,--event-namei--parametersodpowiada zdarzeniom publikowanym przez dostawcę.
Uzyskaj więcej pomocy
-
Tryb debugowania — Dodaj
--debugdo dowolnego poleceniaazd, aby uzyskać szczegółowe dane wyjściowe. - Azure portal — sprawdź projekt Foundry w portalu Azure pod kątem kondycji zasobów i diagnostyki.
- Zgłoś usterkę — zgłoś problemy w github.com/Azure/azure-dev/issues.
Treści powiązane
- Monitoruj dzienniki hostowanego agenta za pomocą interfejsu wiersza polecenia dewelopera Azure, aby uzyskać bardziej szczegółowe opcje inspekcji dzienników.
- Przetestuj hostowanego agenta, aby zapobiec problemom z testowaniem ustrukturyzowanym.
- Diagnozuj projekt za pomocą agent doctor, aby uzyskać ustrukturyzowany raport o kondycji projektu.