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.
Ważna
Elementy oznaczone jako (wersja zapoznawcza) w tym artykule są aktualnie dostępne w publicznej wersji zapoznawczej. Ta wersja zapoznawcza jest udostępniana bez umowy dotyczącej poziomu usług i nie zalecamy korzystania z niej w przypadku obciążeń produkcyjnych. Niektóre funkcje mogą nie być obsługiwane lub mogą mieć ograniczone możliwości. Aby uzyskać więcej informacji, zobacz Warunki dodatkowe korzystania z testowych wersji Microsoft Azure.
Używaj azd ai z poziomu agentów kodujących i skryptów, z takim samym działaniem jak w terminalu używanym przez człowieka. Ustawiasz samodzielny kontekst, wyłączasz podpowiedzi, przetwarzasz dane wyjściowe w formacie JSON i wywołujesz bezpośrednie punkty końcowe agenta na potrzeby niezawodnej automatyzacji.
Wymagania wstępne
- Zainstalowane rozszerzenia azd Foundry.
- Uwierzytelniona sesja
azd. - Punkt końcowy projektu Microsoft Foundry dla poleceń, które chcesz uruchomić. Aby uzyskać więcej informacji, zobacz Ustawianie kontekstu projektu azd.
- Opcjonalnie: wdrożony hostowany agent, gdy trzeba wywołać punkt końcowy agenta. Aby uzyskać informacje na temat instalacji, zobacz Wdrażanie hostowanego agenta.
Zacznij od umiejętności Microsoft Foundry
Agenty kodujące działają najlepiej, gdy znają już konwencje azd ai.
Umiejętność Microsoft Foundry zapewnia agentowi kodującemu tę wiedzę: generuje on poprawne polecenia azd ai i połączenia w usłudze Foundry oraz stosuje praktyki opisane w tym artykule — ustawia kontekst projektu, przekazuje --no-prompt i prosi o --output json, aby uzyskać wyniki strukturalne. Najpierw skieruj swojego agenta programistycznego do tego zestawu umiejętności, a następnie skorzystaj ze wzorców opisanych w dalszej części artykułu, aby sprawdzić, dopracować i zabezpieczyć to, co wygeneruje.
Ustaw kontekst projektu raz
Każde polecenie dotyczące zasobu, takie jak connection, toolbox, skill lub routine, wymaga wskazania punktu końcowego projektu Foundry jako celu. W automatyzacji ustaw ten punkt końcowy raz na sesję, zadanie ciągłej integracji lub wywołanie agenta kodowania, a następnie użyj go w pozostałej części przebiegu.
Istnieją dwa wzorce.
Przypnij raz za pomocą azd ai project set
Jeśli chcesz, aby kontekst był zachowywany między powłokami bez eksportowania zmiennej środowiskowej, ustaw go w globalnej konfiguracji:
azd ai project set https://my-project.services.ai.azure.com/api/projects/my-project --no-prompt
azd ai project show
azd ai project set <endpoint> jest w pełni nieinterakcyjny, gdy znasz już adres URL.
azd ai project show potwierdza, które źródło rozpoznało aktywny punkt końcowy. Użyj go na początku sesji, jeśli nie masz pewności, w jakim stanie znajduje się host.
Ustawianie zmiennej środowiskowej
Ustaw FOUNDRY_PROJECT_ENDPOINT w środowisku, w którym jest uruchamiany skrypt lub agent kodowania. Każde azd ai polecenie automatycznie pobiera je po środowisku azd w projekcie i globalnej konfiguracji.
export FOUNDRY_PROJECT_ENDPOINT="https://my-project.services.ai.azure.com/api/projects/my-project"
azd ai connection list --output json
Ten wzorzec dobrze pasuje do CI, ponieważ sekrety i konfiguracja są zwykle już przekazywane jako zmienne środowiskowe i nie ma globalnego stanu, który trzeba czyścić między zadaniami.
Aby uzyskać pełne wyjaśnienie tego, jak CLI określa punkt końcowy, w tym kolejność priorytetów, zobacz Ustaw kontekst projektu azd.
Wyłącz monity
Każde azd ai polecenie przyjmuje --no-prompt. Po jej ustawieniu polecenie natychmiast kończy się błędem, zamiast czekać na interaktywne dane wejściowe. Brak wymaganego argumentu lub delete potwierdzenie, które w przeciwnym razie wymagałoby naciśnięcia klawisza, staje się natychmiastowym błędem przy danych wyjściowych o strukturze.
Zawsze ustawiaj --no-prompt w CI i w wywołaniach agenta kodującego.
azd ai connection create my-search \
--kind cognitive-search \
--target https://my-search.search.windows.net \
--auth-type api-key \
--key "$KEY" \
--no-prompt
Wskazówka
--no-prompt oznacza też „pomiń monit potwierdzenia delete”, więc nie potrzebujesz --force tylko po to, aby wyłączyć ten jeden monit.
Pobieranie danych wyjściowych JSON
Większość poleceń azd ai obsługuje --output json, w tym polecenia zasobów connection, toolbox, skill i routine oraz azd ai agent show. Użyj tego, aby niezawodnie przetworzyć wynik za pomocą jq, ConvertFrom-Json lub parsera JSON dostępnego w Twoim języku, zamiast parsować tekstowe dane wyjściowe przeznaczone do odczytu przez człowieka. To azd ai agent invoke polecenie używa --output raw dla niezmodyfikowanej odpowiedzi serwera.
# List connections, extract names with jq
azd ai connection list --output json | jq -r '.[].name'
# Show a single resource as JSON
azd ai routine show daily-digest --output json | jq '.trigger'
# PowerShell example
$conn = azd ai connection show my-search --output json | ConvertFrom-Json
Write-Host $conn.target
Dane wyjściowe tekstu są przeznaczone dla ludzi i mogą ulec zmianie między wydaniami. Kształt JSON jest stabilnym kontraktem.
Twórz zasoby idempotentnie
create nie jest operacją wstawienia lub aktualizacji. Jeśli nazwany zasób już istnieje, ponowne uruchomienie zakończy się niepowodzeniem. To ustawienie domyślne dobrze sprawdza się w przypadku współdzielonych zasobów przypisanych do projektu, ponieważ uniemożliwia jednemu wywołującemu po cichu nadpisanie stanu innego wywołującego.
W przypadku automatyzacji, która musi zakończyć się powodzeniem niezależnie od stanu początkowego, polecenia connection obsługują opcję --force, aby zastąpić istniejący zasób.
azd ai connection create my-search \
--kind cognitive-search \
--target https://my-search.search.windows.net \
--auth-type api-key \
--key "$KEY" \
--force --no-prompt
Warning
--force Zastępuje połączenie (ARM PUT), nie scala. Należy używać go ostrożnie na zasobach współdzielonych, ponieważ zmiany innego wywołującego dotyczące tego samego zasobu mogą zostać utracone.
Jeśli musisz zmienić tylko kilka pól i chcesz zachować wszystko inne, użyj polecenia update. Możesz też użyć dedykowanych poleceń podrzędnych kolekcji, takich jak tool, tag, metadatai key.
Utwórz przybornik z pliku
W przypadku przybornika wielowejściowego, który grupuje wbudowane narzędzia, połączenia i umiejętności, umieść pełną definicję w pliku YAML i przekaż --from-file do azd ai toolbox create. Plik używa odpowiedniego kształtu AgentSchema .
azd ai toolbox create research --from-file ./resources/research-toolbox.yaml --no-prompt
--from-file jest wejściem odczytywanym jednorazowo w momencie wywołania. Interfejs wiersza polecenia nie śledzi ani nie odczytuje ponownie pliku, więc przyszłe edycje kodu YAML nie mają wpływu, dopóki nie uruchomisz ponownie polecenia. Utwórz połączenia z jawnie określonymi flagami (--kind, --target, --auth-type i odpowiadającymi im flagami poświadczeń), a następnie odwołuj się do nich według nazwy z pliku zestawu narzędzi.
Wywoływanie wdrożonego agenta bez projektu azd
Gdy agent programistyczny lub skrypt musi wywołać wdrożonego agenta znajdującego się poza swoim katalogiem roboczym, użyj --agent-endpoint, aby odwołać się do niego bezpośrednio. To podejście pomija zarówno azure.yaml, jak i aktywne środowisko azd. Sam adres URL jest wystarczający.
azd ai agent invoke \
--agent-endpoint https://my-project.services.ai.azure.com/api/projects/my-project/agents/release-summarizer/versions/3 \
"Summarize today's release notes." \
--no-prompt
Użyj tego układu, gdy system CI jednego repozytorium musi wywołać agenta z innego repozytorium albo gdy serwer MCP obsługuje kilku agentów i zna tylko adresy URL ich punktów końcowych. Aby uzyskać pełny zestaw invoke opcji, zobacz Wywoływanie hostowanego agenta.
Przekaż sekrety do lokalnego uruchomienia
Aby uruchomić agenta lokalnie z sekretami, ustaw je jako zmienne środowiskowe azd i odwołuj się do nich w mapie env dla usługi azure.ai.agent w azure.yaml. Wartości znajdują się w .azure/<env>/.env, które jest domyślnie ignorowane przez Git.
azd env set OPENAI_KEY "$AZURE_OPENAI_KEY"
# azure.yaml
services:
my-agent:
host: azure.ai.agent
env:
OPENAI_KEY: ${OPENAI_KEY}
Sekrety, których nie należy przechowywać w lokalnym pliku .env, zapisuj w połączeniu projektu w Foundry i odwołuj się do nich przy użyciu symbolu zastępczego ${{connections.<name>.credentials.<field>}}. Zobacz Uruchamianie hostowanego agenta lokalnie, aby uzyskać pełny opis uruchamiania lokalnego.
Utwórz skrypt krótkiej konfiguracji
Ten skrypt bash łączy powyższe wzorce. Przypina kontekst projektu, tworzy połączenie i zestaw narzędzi w sposób idempotentny, podłącza narzędzie do zestawu narzędzi i weryfikuje wynik poprzez analizę składniową formatu JSON.
#!/usr/bin/env bash
set -euo pipefail
azd ai project set "$FOUNDRY_PROJECT_ENDPOINT" --no-prompt
# A 'remote-tool' connection holds the URL and credentials for the MCP server.
azd ai connection create tavily \
--kind remote-tool \
--target https://mcp.tavily.com/mcp \
--auth-type custom-keys \
--custom-key "x-api-key=$TAVILY_KEY" \
--force --no-prompt
# Create the toolbox with the connection wired in, in a single shot
cat > research-toolbox.yaml <<'EOF'
description: Research tools
connections:
- name: tavily
EOF
azd ai toolbox create research --from-file ./research-toolbox.yaml --no-prompt
echo "Toolbox state:"
azd ai toolbox connection list research --output json | jq .
set -euo pipefail gwarantuje, że skrypt natychmiast zakończy działanie, jeśli którykolwiek krok zakończy się błędem. W połączeniu z --no-prompt zapewnia to deterministyczny kod zakończenia odpowiedni dla bramek CI.
Sprawdź rozpoznawanie punktów końcowych
Agenty kodujące mogą przewidzieć, do którego projektu Foundry będzie kierowane polecenie, kierując się następującą kolejnością priorytetów. Pierwsze źródło, które daje wartość wygrywa; późniejsze źródła nie są konsultowane.
-
--project-endpoint(lub-p) flaga (ma zawsze pierwszeństwo). - W projekcie azd: aktywna wartość azd env.
- Globalna konfiguracja (ustawiona przez
azd ai project set). -
FOUNDRY_PROJECT_ENDPOINTzmienna środowiskowa. - Błąd z sugestią ustrukturyzowaną uruchamiania
azd ai project setlub przekazywania--project-endpoint.
Aby uzyskać pełne wyjaśnienie, w tym sposób interakcji autonomicznego kontekstu z pracą w projekcie, zobacz Ustawianie kontekstu projektu azd.
Zastosuj wskazówki dotyczące agenta programistycznego
- Zawsze przekazuj
--no-prompt, a w poleceniach, które to obsługują, dodaj--output json. Razem zapewniają przewidywalny kod zakończenia oraz wynik możliwy do sparsowania. - Zweryfikuj ustalony kontekst za pomocą
azd ai project showna początku sesji, jeśli nie masz pewności, w jakim stanie znajduje się host. Jest to tanie, tylko do odczytu połączenie. - W przypadku niepowodzenia należy przy podejmowaniu decyzji o kolejnych krokach opierać się na analizie ustrukturyzowanej sugestii zawartej w komunikacie o błędzie. Na przykład błąd „No Foundry project endpoint resolved” oznacza, że przed ponowieniem próby należy uruchomić
azd ai project setlub ustawićFOUNDRY_PROJECT_ENDPOINT. - Używaj
--debugtylko podczas diagnozowania problemu. Generuje pełne, wielowierszowe dane wyjściowe, które trudno przeanalizować i nigdy nie miały być interfejsem programowym. - Uznawaj niepowodzenia
createz komunikatem „already exists” za możliwe do odzyskania. Uruchom ponownie za pomocą--force, jeśli to Twój zasób i chcesz go zastąpić, lub przełącz się naupdatei podpolecenia dla kolekcji, jeśli musisz zmienić tylko jego część.
Treści powiązane
- Ustaw kontekst projektu azd, aby zrozumieć, jak narzędzie CLI określa punkt końcowy projektu Foundry.
-
Skonfiguruj CI/CD dla hostowanych agentów za pomocą Azure Developer CLI dla wzorców uruchamianych
azd aiw potokach. -
Wywołaj hostowanego agenta, aby uzyskać pełne
azd ai agent invokeopcje, w tym--agent-endpoint.