Szybki start: wdrażanie pierwszego hostowanego agenta

W tym przewodniku Szybki start wdrożysz i wywołasz hostowanego agenta w usłudze Foundry Agent Service. Wybierz narzędzie programistyczne lub zestaw SDK pasujący do przepływu pracy.

Jeśli używasz agenta kodowania, takiego jak GitHub Copilot, umiejętności Microsoft Foundry mogą ułatwić wybranie ścieżki programistycznej i ukończenie kroków instalacji, wdrożenia i wywołania.

Wymagania wstępne

Przed rozpoczęciem potrzebne są następujące elementy:

  • Subskrypcja platformy Azure. Jeśli go nie masz, utwórz go bezpłatnie.
  • Jeśli masz istniejący projekt Foundry, potrzebujesz Foundry Project Manager na poziomie projektu. Jeśli chcesz utworzyć nowy projekt Foundry, musisz mieć rolę Owner na poziomie grupy zasobów. Aby zapoznać się z pełną macierzą ról, zobacz Informacje o uprawnieniach hostowanego agenta.
  • Foundry Dev Pack. Pakiet Foundry Dev Pack instaluje interfejs wiersza polecenia platformy Azure dla deweloperów (azd >= 1.27.1) i rozszerzenia Foundry używane w tym przewodniku Szybki start.

  • Sesja uwierzytelniona azd :

    azd auth login
    
  • Python 3.13 lub nowszy.

  • Foundry Dev Pack. Foundry Dev Pack instaluje Azure CLI (az).

  • Uwierzytelniona sesja Azure CLI:

    az login
    
  • Biblioteki SDK języka Python użyte w tym przewodniku „Szybki start”:

    pip install "azure-ai-projects>=2.3.0" azure-identity python-dotenv
    
  • Istniejący projekt Foundry z wdrożonym modelem. Ścieżka Python SDK w tym przewodniku Szybki start tworzy hostowaną wersję agenta i kieruje do niej ruch, ale nie tworzy nowego projektu Foundry ani wdrożenia modelu. Jeśli potrzebujesz pełnego procesu aprowizacji, skorzystaj z karty Azure Developer CLI w tym artykule.

  • .NET 10 SDK.

  • Foundry Dev Pack. Pakiet Foundry Dev Pack instaluje Azure CLI (az).

  • Uwierzytelniona sesja Azure CLI:

    az login
    
  • Pakiety .NET używane w tym przewodniku Szybki start.

    dotnet add package Azure.AI.Projects --version 2.1.0-beta.4
    dotnet add package Azure.Identity
    

    Note

    Interfejsy API wdrażania kodu źródłowego są obecnie dostępne w wersji wstępnej programu Azure.AI.Projects. Stabilny pakiet 2.0.x nie zawiera tych interfejsów API.

  • Istniejący projekt Foundry z wdrożonym modelem. Ścieżka SDK języka C# tworzy hostowaną wersję agenta i kieruje do niej ruch, ale nie tworzy projektu Foundry ani wdrożenia modelu. Aby przejść przez pełny proces aprowizacji, użyj karty Azure Developer CLI.

  • Visual Studio Code.
  • Foundry Dev Pack. Foundry Dev Pack instaluje Azure Developer CLI (azd) oraz rozszerzenie Microsoft Foundry Toolkit dla programu VS Code używane w tym przewodniku Szybki start.
  • GitHub Copilot App.
  • Foundry Dev Pack. Pakiet Dev Pack rozwiązania Foundry instaluje interfejs wiersza polecenia dewelopera Azure (azd >= 1.27.1) i kanwę Microsoft Foundry dla aplikacji GitHub Copilot używanej w tym przewodniku Szybki start.
  • Host dla agenta kodującego z Microsoft Foundry Skill.

  • Foundry Dev Pack. Foundry Dev Pack instaluje Azure CLI (az), Azure Developer CLI (azd) oraz składnik Foundry Skill używany w tym przewodniku Szybki start.

  • Uwierzytelnione sesje Azure CLI i azd:

    az login
    azd auth login
    

Krok 1: Zainicjuj przykładowego agenta

Zainicjuj nowego hostowanego agenta przy użyciu podstawowego przykładu platformy Agent Framework w pustym katalogu:

azd ai agent init -m "https://github.com/microsoft-foundry/foundry-samples/blob/main/samples/python/hosted-agents/agent-framework/responses/01-basic/azure.yaml" --deploy-mode code

Interaktywny proces prosi o podanie:

  • Nazwa agenta: dostosuj nazwę lub zaakceptuj wartość domyślnąagent-framework-agent-basic-responses
  • Foundry Project: Wybierz Utwórz nowy projekt Foundry lub Użyj istniejącego projektu Foundry
  • Dzierżawa: Wybierz swoją dzierżawę platformy Azure
  • Subskrypcja: wybierz subskrypcję Azure
  • Lokalizacja: wybierz region Azure
  • Model: wybierz domyślny, gpt-5.4-mini lub inny model, do którego możesz uzyskać dostęp
  • Wersja modelu: wybierz opcję domyślną
  • SKU modelu: wybierz opcję z dostępnym przydziałem, która nie jest typu Batch, zwykle Standard lub GlobalStandard
  • Pojemność wdrożenia: wybierz wartość domyślną, 10
  • Nazwa wdrożenia: wybierz wartość domyślnągpt-5.4-mini

Po zakończeniu zobaczysz , że definicja agenta sztucznej inteligencji została pomyślnie dodana do projektu azd! Zmień katalog na nowo utworzony folder agenta.

cd agent-framework-agent-basic-responses

Krok 2. Aprowizuj zasoby Azure

Aprowizuj zasoby zdefiniowane w pliku azure.yaml:

azd provision

Krok 3. Testowanie agenta lokalnie

azd ai agent run

To polecenie tworzy środowisko wirtualne, instaluje zależności, uruchamia agenta za pomocą startupCommand zdefiniowanego w azure.yaml i otwiera inspektor agenta w przeglądarce, aby móc rozmawiać z agentem.

Krok 4. Wdrażanie w usłudze agenta programu Foundry

Wdróż kod źródłowy agenta. azd pakuje kod źródłowy do pliku ZIP i przesyła go do Foundry. Narzędzie Foundry rozwiązuje zależności, kompiluje hostowanego agenta zdalnie i wdraża go:

azd deploy

Po zakończeniu polecenia dane wyjściowe zawierają linki do placu zabaw agenta i punktu końcowego agenta:

Deploying services (azd deploy)

  Done: Deploying service basic-agent
  - Agent playground (portal): https://ai.azure.com/.../build/agents/basic-agent/build?version=1
  - Agent endpoint: https://ai-account-<name>.services.ai.azure.com/api/projects/<project>/agents/basic-agent/versions/1

Krok 5. Wywoływanie agenta

  1. Wyślij ten sam monit do wdrożonego agenta:

    azd ai agent invoke "Write a haiku about deploying cloud applications."
    

    Powinna się wyświetlić odpowiedź w formie haiku w ciągu kilku sekund.

  2. (Opcjonalnie) Przesyłaj dzienniki kontenera podczas interakcji z agentem:

    azd ai agent monitor --follow
    

Krok 1. Tworzenie lub wybieranie projektu Foundry

  1. Otwórz portal Foundry i utwórz projekt Foundry lub wybierz istniejący.

  2. W projekcie wdróż model obsługujący czaty, taki jak gpt-5.4-mini.

  3. Skopiuj te wartości z portalu:

    • punkt końcowy projektu w sekcji Przegląd.
    • Nazwa wdrożenia z Build>Deployments.

Krok 2. Pobieranie podstawowego przykładowego kodu agenta

Sklonuj repozytorium z przykładami Foundry.

git clone https://github.com/microsoft-foundry/foundry-samples.git

Krok 3. Tworzenie środowiska Python i konfigurowanie ustawień

Utwórz środowisko wirtualne i zainstaluj pakiety języka Python wymagane w tym przewodniku Szybki start.

W przypadku systemu macOS lub Linux:

python -m venv .venv
source .venv/bin/activate
pip install "azure-ai-projects>=2.3.0" azure-identity python-dotenv

Dla systemu Windows (PowerShell):

python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install "azure-ai-projects>=2.3.0" azure-identity python-dotenv

Utwórz folder roboczy skryptu wdrażania, a następnie utwórz .env plik w tym folderze:

FOUNDRY_PROJECT_ENDPOINT=<your-project-endpoint>
FOUNDRY_MODEL_NAME=<your-model-deployment-name>
FOUNDRY_HOSTED_AGENT_NAME=basic-agent
FOUNDRY_SAMPLE_PATH=<full-path-to-foundry-samples/samples/python/hosted-agents/agent-framework/responses/01-basic/src/agent-framework-agent-basic-responses>

Krok 4. Wdrażanie hostowanego agenta przy użyciu Python

Utwórz plik o nazwie deploy_hosted_agent.py w tym samym folderze roboczym co .env z następującą zawartością:

import os
import tempfile
import time
import zipfile
from pathlib import Path

from azure.ai.projects import AIProjectClient
from azure.ai.projects.models import (
  AgentEndpointConfig,
  CodeConfiguration,
  CodeDependencyResolution,
  FixedRatioVersionSelectionRule,
  HostedAgentDefinition,
  ProtocolConfiguration,
  ProtocolVersionRecord,
  ResponsesProtocolConfiguration,
  VersionSelector,
)
from azure.identity import DefaultAzureCredential
from dotenv import load_dotenv

load_dotenv()

endpoint = os.environ["FOUNDRY_PROJECT_ENDPOINT"]
model_name = os.environ["FOUNDRY_MODEL_NAME"]
agent_name = os.environ.get("FOUNDRY_HOSTED_AGENT_NAME", "basic-agent")
sample_path = Path(os.environ["FOUNDRY_SAMPLE_PATH"]).resolve()


def create_code_zip(source_dir: Path) -> Path:
  zip_path = Path(tempfile.gettempdir()) / f"{agent_name}.zip"
  excluded = {".git", ".venv", "__pycache__", ".env", "deploy_hosted_agent.py"}

  with zipfile.ZipFile(zip_path, "w", zipfile.ZIP_DEFLATED) as zip_file:
    for path in source_dir.rglob("*"):
      if not path.is_file():
        continue
      if any(part in excluded for part in path.parts):
        continue
      zip_file.write(path, path.relative_to(source_dir))

  return zip_path


def wait_for_active_version(project_client: AIProjectClient, version: str) -> None:
  for attempt in range(60):
    time.sleep(10)
    details = project_client.agents.get_version(
      agent_name=agent_name,
      agent_version=version,
    )
    status = details["status"]
    print(f"Provisioning status: {status} (attempt {attempt + 1}/60)")

    if status == "active":
      return

    if status == "failed":
      raise RuntimeError(f"Hosted agent provisioning failed: {dict(details)}")

  raise RuntimeError("Timed out waiting for the hosted agent version to become active.")


code_zip_path = create_code_zip(sample_path)

with (
  code_zip_path.open("rb") as code_stream,
  DefaultAzureCredential() as credential,
  AIProjectClient(endpoint=endpoint, credential=credential) as project_client,
):
  original_agent_endpoint = None
  created = None

  try:
    created = project_client.agents.create_version_from_code(
      agent_name=agent_name,
      description="Basic hosted agent deployed from local Python source.",
      definition=HostedAgentDefinition(
        cpu="0.5",
        memory="1Gi",
        code_configuration=CodeConfiguration(
          runtime="python_3_14",
          entry_point=["python", "main.py"],
          dependency_resolution=CodeDependencyResolution.REMOTE_BUILD,
        ),
        environment_variables={
          "FOUNDRY_PROJECT_ENDPOINT": endpoint,
          "FOUNDRY_MODEL_NAME": model_name,
        },
        protocol_versions=[
          ProtocolVersionRecord(protocol="responses", version="2.0.0")
        ],
      ),
      code=code_stream,
    )

    print(f"Created hosted agent version {created.version}")

    wait_for_active_version(project_client, created.version)

    original_agent_endpoint = project_client.agents.get(
      agent_name=agent_name
    ).agent_endpoint
    project_client.agents.update_details(
      agent_name=agent_name,
      agent_endpoint=AgentEndpointConfig(
        version_selector=VersionSelector(
          version_selection_rules=[
            FixedRatioVersionSelectionRule(
              agent_version=created.version,
              traffic_percentage=100,
            ),
          ]
        ),
        protocol_configuration=ProtocolConfiguration(
          responses=ResponsesProtocolConfiguration()
        ),
      ),
    )

    print(f"Agent endpoint configured for version {created.version}")

    with project_client.get_openai_client(agent_name=agent_name) as openai_client:
      response = openai_client.responses.create(
        input="Write a haiku about deploying cloud applications.",
      )

    print(f"Agent response: {response.output_text}")
  finally:
    if original_agent_endpoint is not None:
      project_client.agents.update_details(
        agent_name=agent_name,
        agent_endpoint=original_agent_endpoint,
      )
      print("Agent endpoint restored")

    if created is not None:
      project_client.agents.delete_version(
        agent_name=agent_name,
        agent_version=created.version,
        force=True,
      )
      print(f"Deleted hosted agent version {created.version}")

Uruchom skrypt:

python deploy_hosted_agent.py

Skrypt spakuje przykładowe źródło, przekazuje go jako nową wersję hostowanego agenta, czeka na ukończenie aprowizacji, tymczasowo kieruje hostowany punkt końcowy agenta do tej wersji, wywołuje wdrożonego agenta, a następnie przywraca poprzednią konfigurację punktu końcowego i usuwa tymczasową wersję.

Krok 5. Wywoływanie agenta

Po zakończeniu działania skryptu użyj hostowanego agenta na jeden z następujących sposobów:

  1. Edytuj deploy_hosted_agent.py i zmień wartość przekazaną input na openai_client.responses.create(...), a następnie ponownie uruchom skrypt.
  2. Jeśli chcesz trwałą wersję kierowaną ruchem zamiast tymczasowego wdrożenia walidacyjnego, dostosuj skrypt tak, aby pominąć przywracanie oraz krok delete_version(...) po przeanalizowaniu skutków kierowania ruchem.
  3. Jeśli użyto przykładowego skryptu jako napisanego, przywraca on już konfigurację punktu końcowego i usuwa tymczasową wersję hostowanego agenta po weryfikacji.
  4. Jeśli utworzysz dedykowaną grupę zasobów na potrzeby tego przewodnika Szybki start, możesz usunąć ją z portalu Azure, gdy projekt lub wdrożenie modelu nie będą już potrzebne.

Ostrzeżenie

Usunięcie grupy zasobów trwale usuwa wszystkie elementy, w tym projekt Foundry, wdrożenia modelu, rejestr kontenerów, usługę Application Insights i hostowanego agenta.

Krok 1. Tworzenie lub wybieranie projektu Foundry

  1. Otwórz portal Foundry i utwórz projekt Foundry lub wybierz istniejący.

  2. W projekcie wdróż model obsługujący czaty, taki jak gpt-5.4-mini.

  3. Skopiuj te wartości z portalu:

    • punkt końcowy projektu w sekcji Przegląd.
    • Nazwa wdrożenia z Build>Deployments.

Krok 2: Pobierz agenta „hello-world” w języku C#

Sklonuj repozytorium z przykładami Foundry:

git clone https://github.com/microsoft-foundry/foundry-samples.git

Źródło agenta znajduje się w samples/csharp/hosted-agents/agent-framework/hello-world/src/hello-world-dotnet-agent-framework.

Krok 3. Tworzenie projektu wdrożenia w języku C#

Utwórz aplikację konsolową i zainstaluj wymagane pakiety:

dotnet new console --name HostedAgentDeployer
cd HostedAgentDeployer
dotnet add package Azure.AI.Projects --version 2.1.0-beta.4
dotnet add package Azure.Identity

Ustaw wartości używane przez aplikację wdrażania. W programie PowerShell uruchom:

$env:FOUNDRY_PROJECT_ENDPOINT = "<your-project-endpoint>"
$env:FOUNDRY_MODEL_NAME = "<your-model-deployment-name>"
$env:FOUNDRY_HOSTED_AGENT_NAME = "basic-agent"
$env:FOUNDRY_SAMPLE_PATH = "<full-path-to-hello-world-dotnet-agent-framework>"

W systemie macOS lub Linux uruchom polecenie:

export FOUNDRY_PROJECT_ENDPOINT="<your-project-endpoint>"
export FOUNDRY_MODEL_NAME="<your-model-deployment-name>"
export FOUNDRY_HOSTED_AGENT_NAME="basic-agent"
export FOUNDRY_SAMPLE_PATH="<full-path-to-hello-world-dotnet-agent-framework>"

Krok 4. Wdrażanie hostowanego agenta za pomocą języka C#

Zastąp zawartość Program.cs pliku następującym kodem. Pakiet SDK platformy .NET pakuje i przesyła katalog źródłowy, więc nie musisz samodzielnie tworzyć archiwum ZIP.

using Azure.AI.Extensions.OpenAI;
using Azure.AI.Projects;
using Azure.AI.Projects.Agents;
using Azure.Identity;
using OpenAI.Responses;

#pragma warning disable AAIP001, OPENAI001

var projectEndpoint = Environment.GetEnvironmentVariable("FOUNDRY_PROJECT_ENDPOINT")
  ?? throw new InvalidOperationException("FOUNDRY_PROJECT_ENDPOINT isn't set.");
var modelName = Environment.GetEnvironmentVariable("FOUNDRY_MODEL_NAME")
  ?? throw new InvalidOperationException("FOUNDRY_MODEL_NAME isn't set.");
var agentName = Environment.GetEnvironmentVariable("FOUNDRY_HOSTED_AGENT_NAME")
  ?? "basic-agent";
var samplePath = Environment.GetEnvironmentVariable("FOUNDRY_SAMPLE_PATH")
  ?? throw new InvalidOperationException("FOUNDRY_SAMPLE_PATH isn't set.");

AIProjectClient projectClient = new(
  endpoint: new Uri(projectEndpoint),
  tokenProvider: new DefaultAzureCredential());

HostedAgentDefinition definition = new(cpu: "0.5", memory: "1Gi")
{
  Versions =
  {
    new ProtocolVersionRecord(ProjectsAgentProtocol.Responses, "2.0.0")
  },
  CodeConfiguration = new(
    runtime: "dotnet_10",
    entryPoint: ["dotnet", "hello-world.dll"],
    dependencyResolution: CodeDependencyResolution.RemoteBuild),
};
definition.EnvironmentVariables.Add(
  "FOUNDRY_PROJECT_ENDPOINT", projectEndpoint);
definition.EnvironmentVariables.Add(
  "AZURE_AI_MODEL_DEPLOYMENT_NAME", modelName);

ProjectsAgentVersion? created = null;
AgentEndpointConfiguration? originalEndpoint = null;

try
{
  created = await projectClient.AgentAdministrationClient
    .CreateAgentVersionFromCodeAsync(
      agentName: agentName,
      filePath: samplePath,
      metadata: new AgentVersionFromCodeMetadata(definition));
  Console.WriteLine($"Created hosted agent version {created.Version}");

  for (var attempt = 1; attempt <= 60; attempt++)
  {
    await Task.Delay(TimeSpan.FromSeconds(10));
    created = await projectClient.AgentAdministrationClient
      .GetAgentVersionAsync(agentName, created.Version);
    Console.WriteLine(
      $"Provisioning status: {created.Status} (attempt {attempt}/60)");

    if (created.Status == AgentVersionStatus.Active)
    {
      break;
    }
    if (created.Status == AgentVersionStatus.Failed)
    {
      throw new InvalidOperationException("Hosted agent provisioning failed.");
    }
  }

  if (created.Status != AgentVersionStatus.Active)
  {
    throw new TimeoutException(
      "Timed out waiting for the hosted agent version to become active.");
  }

  ProjectsAgentRecord agent = await projectClient.AgentAdministrationClient
    .GetAgentAsync(agentName);
  originalEndpoint = agent.AgentEndpoint;

  AgentEndpointConfiguration endpoint = new()
  {
    VersionSelector = new(
      [new FixedRatioVersionSelectionRule(created.Version, 100)]),
    ProtocolConfiguration = new()
    {
      Responses = new ResponsesProtocolConfiguration()
    }
  };
  await projectClient.AgentAdministrationClient.PatchAgentAsync(
    agentName,
    new PatchAgentOptions { AgentEndpoint = endpoint });
  Console.WriteLine($"Agent endpoint configured for version {created.Version}");

  ProjectResponsesClient responsesClient = projectClient.ProjectOpenAIClient
    .GetProjectResponsesClientForAgentEndpoint(agentName);
  ResponseResult response = await responsesClient.CreateResponseAsync(
    "Write a haiku about deploying cloud applications.");
  Console.WriteLine($"Agent response: {response.GetOutputText()}");
}
finally
{
  if (originalEndpoint is not null)
  {
    await projectClient.AgentAdministrationClient.PatchAgentAsync(
      agentName,
      new PatchAgentOptions { AgentEndpoint = originalEndpoint });
    Console.WriteLine("Agent endpoint restored");
  }

  if (created is not null)
  {
    await projectClient.AgentAdministrationClient.DeleteAgentVersionAsync(
      agentName,
      created.Version,
      force: true);
    Console.WriteLine($"Deleted hosted agent version {created.Version}");
  }
}

Kod jest zgodny ze wzorcami przesyłania kodu źródłowego i trasowania punktów końcowych z przykładu code-agent dla pakietu Azure SDK dla platformy .NET.

Uruchom aplikację:

dotnet run

Aplikacja przekazuje źródło agenta języka C#, czeka na aprowizację, kieruje punkt końcowy agenta do nowej wersji, wysyła monit, przywraca poprzednią trasę i usuwa wersję tymczasową.

Krok 5. Wywoływanie agenta

Po zakończeniu działania aplikacji użyj hostowanego agenta na jeden z następujących sposobów:

  1. W Program.cs, zmień polecenie przekazywane do CreateResponseAsync, a następnie ponownie uruchom dotnet run.
  2. Aby zachować wersję kierowaną, usuń operację przywracania punktu końcowego i wywołania DeleteAgentVersionAsync po przeanalizowaniu wpływu kierowania ruchem.
  3. Jeśli aplikacja języka C# została użyta zgodnie z zapisem, przywraca konfigurację punktu końcowego i usuwa tymczasową wersję hostowanego agenta po weryfikacji.
  4. Jeśli utworzono dedykowaną grupę zasobów dla tego przewodnika Szybki start, usuń grupę zasobów z portalu Azure, gdy nie potrzebujesz już wdrożenia projektu ani modelu.

Ostrzeżenie

Usunięcie grupy zasobów trwale usuwa wszystkie elementy, w tym projekt Foundry, wdrożenia modelu, rejestr kontenerów, usługę Application Insights i hostowanego agenta.

Krok 1. Utwórz projekt Foundry

  1. Otwórz Paletę poleceń (Ctrl+Shift+P) i wybierz pozycję Foundry Toolkit: Create Project.
  2. Wybierz subskrypcję Azure.
  3. Utwórz nową grupę zasobów lub wybierz istniejącą.
  4. Wprowadź nazwę projektu Foundry.

Krok 2. Wdrażanie modelu

  1. Otwórz paletę poleceń i wybierz pozycję Foundry Toolkit: Otwórz katalog modeli.
  2. Wyszukaj gpt-4.1 i wybierz pozycję Wdróż.
  3. Na stronie wdrażania modelu wybierz pozycję Wdróż do Microsoft Foundry.

Krok 3: Utwórz projekt hostowanego agenta

  1. Otwórz paletę poleceń i wybierz pozycję Foundry Toolkit: Create new Hosted Agent (Utwórz nowego hostowanego agenta).
  2. Wybierz Python jako język.
  3. W obszarze Struktura wybierz pozycję Struktura agenta.
  4. Wybierz interfejs API odpowiedzi jako typ protokołu.
  5. Wybierz pozycję Podstawowa jako przykładowy kod.
  6. Wybierz przycisk Dalej .
  7. Wybierz folder dla plików projektu i wprowadź nazwę agenta.
  8. W obszarze Konfiguracja środowiska wybierz pozycję Skonfiguruj przy użyciu Microsoft Foundry. Zawartość jest wypełniana automatycznie projektem i modelem utworzonym w krokach 1 i 2.
  9. Wybierz przycisk Create.

Otwiera się nowe okno programu VS Code, a projekt staje się aktywnym obszarem roboczym.

Krok 4. Instalowanie zależności

Utwórz środowisko wirtualne i zainstaluj wymagania.

W przypadku systemu macOS lub Linux:

python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

Dla systemu Windows (PowerShell):

python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r requirements.txt

Krok 5. Testowanie agenta lokalnie

Naciśnij klawisz F5 , aby uruchomić lokalny serwer HTTP z włączonym debugowaniem. Otwiera się narzędzie Foundry Toolkit Agent Inspector do testowania interakcyjnego, gdzie można ustawiać punkty przerwania w kodzie.

Aby uruchomić serwer bez debugowania:

python main.py

Agent nasłuchuje na http://localhost:8088/. Wyślij monit testowy za pomocą narzędzia curl (lub dowolnego klienta HTTP):

curl -sS -H "Content-Type: application/json" -X POST http://localhost:8088/responses \
    -d '{"input": "Write a haiku about deploying cloud applications.", "stream": false}'

Krok 6: Wdrażanie do usługi Foundry Agent Service

  1. Otwórz paletę poleceń i wybierz pozycję Foundry Toolkit: Deploy Hosted Agent (Zestaw narzędzi Foundry: Wdrażanie hostowanego agenta). Zostanie otwarty widok internetowy wdrożenia.
  2. W polu Metoda wdrażania wybierz pozycję Kod.
  3. Wybierz Remote jako tryb pakietowania.
  4. Nazwa agenta jest wypełniana automatycznie.
  5. Wybierz przycisk Dalej .
  6. Strona Przeglądanie i wdrażanie jest wypełniana automatycznie.
  7. Wybierz przycisk Wdróż .

Po zakończeniu wdrażania agent zostanie wyświetlony w obszarze Hostowani agenci w Eksploratorze zestawu narzędzi Foundry.

Krok 7. Wywoływanie agenta

  1. W Eksploratorze Foundry Toolkit rozwiń pozycję Agenci hostowani i wybierz swojego agenta. Na stronie szczegółów jest wyświetlany stan w obszarze Szczegóły wdrożenia.
  2. Wybierz kartę Plac zabaw i wyślij monit testowy, taki jak Write a haiku about deploying cloud applications..

Kanwa Microsoft Foundry przeprowadzi Cię przez proces tworzenia i wdrażania hostowanego agenta z panelu bocznego w aplikacji GitHub Copilot. Gdy dokonujesz wyborów w obszarze roboczym, każdy etap jest przekazywany do Copilota wraz z odpowiednim kontekstem z projektu Foundry.

Krok 1. Otwieranie kanwy

  1. W aplikacji GitHub Copilot poproś Copilot o utworzenie agenta hostowanego w usłudze Foundry. Przykład:

    Create a Foundry hosted agent using Microsoft Foundry Canvas
    
  2. Kanwa zostanie otwarta w prawym panelu. Jeśli nie zostanie otwarty automatycznie, otwórz go z panelu po prawej stronie.

Zrzut ekranu przedstawiający Microsoft Foundry Canvas otwarty w prawym panelu aplikacji GitHub Copilot. Kanwa przedstawia trzy etapy: Tworzenie nowych hostowanych agentów, Kompilowanie bieżącego hostowanego agenta oraz Wdrażanie i testowanie. Etap Tworzenie jest rozwinięty i zawiera opcje Zainspiruj mnie, Pomóż mi zdecydować i Hello world obok konwersacji w Copilot.

Kanwa poprowadzi Cię przez trzy etapy, które odpowiadają następującym krokom:

  • Utwórz hostowanego agenta. Wybierz projekt Foundry i poinformuj Copilot, co chcesz skompilować. Możesz zacząć od gotowego promptu, aby przyspieszyć pracę.
  • Skompiluj hostowanego agenta. Wybierz model, zestawy narzędzi, umiejętności i zabezpieczenia dla swojego agenta spośród zasobów projektu Foundry.
  • Wdrażanie i testowanie. Przetestuj agenta lokalnie, a gdy uznasz, że wszystko działa poprawnie, wdroż go do usługi Foundry Agent Service.

Krok 2: Połącz projekt Foundry

  1. Otwórz menu projektu Canvas i zaloguj się do platformy Azure, jeśli pojawi się monit.
  2. Wybierz subskrypcję.
  3. Wybierz projekt Foundry. Kanwa przechowuje to zaznaczenie po ponownym otwarciu.

Krok 3: Tworzenie szkieletu agenta

Wybierz sposób uruchamiania:

  • Wybierz Zainspiruj mnie, aby wygenerować szkielet hostowanego agenta na podstawie wygenerowanego pomysłu.
  • Wybierz przykładowy monit Hello world , aby rozpocząć od podstawowego agenta.

Copilot tworzy szkielet kodu agenta w Twoim obszarze roboczym na podstawie Twojego wyboru.

Krok 4. Konfigurowanie agenta

Na tym etapie połączysz agenta z zasobami w projekcie Foundry. Każdy wybór wysyła polecenie do Copilota, który aktualizuje za Ciebie kod i konfigurację agenta:

  1. Wybierz wdrożony model na potrzeby rozumowania agenta.
  2. Połącz Foundry Toolboxes i ich narzędzia, aby wyposażyć agenta w możliwości, takie jak wywoływanie interfejsów API lub uruchamianie kodu.
  3. Połącz z umiejętnościami, które zawierają logikę wielokrotnego użytku do wykorzystania przez agenta.
  4. Przypisz mechanizmy zabezpieczające, aby stosować zabezpieczenia i kontrolę treści.

Krok 5. Testowanie agenta lokalnie

  1. Wybierz pozycję Sprawdź lokalnie. Kanwa jest uruchamiana azd ai agent run w zintegrowanym terminalu Copilot, czeka na agenta na porcie 8088i osadza inspektora agenta.

  2. Wyślij monit testowy, taki jak:

    Write a haiku about deploying cloud applications.
    
  3. Jeśli inspektor zgłosi błąd, skopiuj komunikat o błędzie do pola monitu kanwy i poproś Copilota o naprawienie problemu.

Krok 6: Wdrażanie do usługi Foundry Agent Service

  1. Wybierz pozycję Wdróż do Foundry. Obszar roboczy wykorzystuje azd i usługę Copilot do wdrożenia agenta hostowanego.
  2. Po zakończeniu wdrażania użyj linków w danych wyjściowych, aby otworzyć plac zabaw agenta w portalu Foundry.

Krok 1: Otwórz obszar roboczy za pomocą umiejętności Foundry

Otwórz pusty folder w środowisku hostującym agenta kodowania, takim jak GitHub Copilot w Visual Studio Code, Copilot CLI lub Claude Code. Upewnij się, że microsoft-foundry umiejętność jest dostępna, zanim poprosisz agenta kodowania o utworzenie zasobów Azure.

Jeśli umiejętności nie są dostępne, wykonaj czynności opisane w temacie Use the Microsoft Foundry Skill in coding agents (Używanie umiejętności Microsoft Foundry w agentach kodowania).

Krok 2: Poproś funkcję o utworzenie hostowanego agenta

Poproś swojego agenta programistycznego o skorzystanie z tej umiejętności w całym przepływie pracy hostowanego agenta:

Use the Microsoft Foundry Skill hosted-agent quick-start workflow to create my
first hosted agent end to end. Verify my environment first, and stop if I need
to sign in myself. Use Python 3.13, Agent Framework, the Responses API, the
Basic sample, and code deployment. Create a new Foundry project unless I provide
an existing project. Use the model deployment from the Basic sample unless I
provide an existing deployment. Test the agent locally, deploy it to Foundry
Agent Service, and invoke it with: "Write a haiku about deploying cloud
applications."

Agent kodowania powinien sprawdzić dostępne narzędzia Foundry, gdy narzędzia MCP są dostępne, załadować hostowany przepływ pracy szybkiego uruchamiania agenta oraz poprosić o podanie brakujących wartości lub użyć wartości domyślnych, takich jak subskrypcja, region, nazwa projektu i informacja, czy użyć istniejącego projektu Foundry.

Krok 3. Przeglądanie i zatwierdzanie planu

  1. Przejrzyj plan, pliki, polecenia, zasoby platformy Azure i przypisania ról proponowane przez agenta programistycznego.
  2. Aby dopasować się do tego przewodnika Szybki start, wybierz Python 3.13, Agent Framework, Responses API, przykładowy kod Basic oraz wdrożenie Code.
  3. Zatwierdź tworzenie zasobów z uwzględnieniem kosztów dopiero po zweryfikowaniu subskrypcji, regionu, grupy zasobów, wdrożenia modelu i limitu przydziału.
  4. Jeśli agent programistyczny poprosi Cię o uwierzytelnienie, samodzielnie uruchom az login i azd auth login, a następnie poproś agenta programistycznego, aby kontynuował.

Krok 4. Pozwól szkieletowi umiejętności i przetestowaniu agenta

Pozwól agentowi programistycznemu utworzyć projekt agenta hostowanego, aprowizować zasoby po wybraniu nowego projektu Foundry, zapisać wartości lokalnego środowiska, przygotować środowisko lokalne i uruchomić lokalny test smoke. W przypadku agentów języka Python przepływ pracy umiejętności wykorzystuje azd ai agent run do instalowania zależności podczas pierwszego lokalnego uruchomienia.

Przepływ pracy powinien również dodać plik wytycznych projektu wymagany przez hosta agenta programistycznego oraz sprawdzić poprawność wygenerowanej konfiguracji projektu przed lokalnym testem.

Jeśli host agenta programistycznego nie może utrzymać uruchomionego lokalnego serwera na potrzeby testu smoke, użyj karty Azure Developer CLI w tym artykule, aby skorzystać z poleceń testów lokalnych. Do wdrożenia możesz przejść dopiero po podjęciu decyzji, aby zamiast tego zweryfikować agenta zdalnie.

Krok 5. Wdrażanie i wywoływanie hostowanego agenta

Po pomyślnym zakończeniu lokalnego testu smoke poproś agenta programistycznego o dokończenie wdrożenia i zdalnej weryfikacji:

Continue with the Microsoft Foundry Skill workflow. Deploy the hosted agent to
Foundry Agent Service, show the deployment status and playground link, and invoke
it remotely with: "Write a haiku about deploying cloud applications." If the
skill workflow requires evaluation suite generation before the final summary,
submit the generation job and show me the follow-up eval command.

Po zakończeniu przepływu pracy agent kodowania powinien wyświetlić nazwę hostowanego agenta, wersję, stan wdrożenia, punkt końcowy, link do środowiska testowego, utworzone zasoby, odpowiedź na testowy prompt oraz ewentualne polecenie uzupełniające związane z oceną.

Czyszczenie zasobów

Usuń zasoby po zakończeniu, aby zatrzymać naliczanie opłat.

Ostrzeżenie

Jeśli bieżące azd środowisko utworzyło projekt Foundry, azd down trwale usuwa grupę zasobów projektu oraz wszystkie zawarte w niej zasoby. Jeśli podczas inicjowania wybrano istniejący projekt, azd down pozostawi projekt, jego grupę zasobów, hostowanego agenta i inne zasoby szybkiego startu. Aby usunąć zasoby, których już nie potrzebujesz z istniejącego projektu, usuń je oddzielnie.

azd down

Gdy środowisko utworzyło projekt, azd wyświetla listę zasobów, monituje o potwierdzenie i usuwa je w ciągu około 2–5 minut.

  1. Otwórz portal Azure i przejdź do grupy zasobów zawierającej agenta.
  2. Wybierz pozycję Usuń grupę zasobów, wpisz nazwę grupy zasobów, aby potwierdzić, a następnie wybierz pozycję Usuń.

Ostrzeżenie

Usunięcie grupy zasobów powoduje trwałe usunięcie wszystkich elementów, w tym projektu Foundry, usługi Container Registry, usługi Application Insights i hostowanego agenta.

Kanwa tworzy obszar roboczy oparty na azd, więc czyścisz go za pomocą azd down z folderu obszaru roboczego.

Ostrzeżenie

Jeśli bieżące azd środowisko utworzyło projekt Foundry, azd down trwale usuwa grupę zasobów projektu oraz wszystkie zawarte w niej zasoby. Jeśli podczas inicjowania wybrano istniejący projekt, azd down pozostawi projekt, jego grupę zasobów, hostowanego agenta i inne zasoby szybkiego startu. Aby usunąć zasoby, których już nie potrzebujesz z istniejącego projektu, usuń je oddzielnie.

azd down

Gdy środowisko utworzyło projekt, azd wyświetla listę zasobów, monituje o potwierdzenie i usuwa je w ciągu około 2–5 minut.

Umiejętność Microsoft Foundry nie usuwa zasobów samodzielnie. Może to pomóc agentowi programistycznemu zidentyfikować zasoby utworzone przez ten przewodnik Szybki start i wybrać właściwą metodę czyszczenia. Ty lub Twój agent programistyczny nadal uruchamiacie polecenie czyszczenia po jego przejrzeniu i zatwierdzeniu.

  1. W folderze projektu agenta hostowanego poproś agenta programistycznego o przejrzenie operacji czyszczenia:

    Use the Microsoft Foundry Skill to identify the Azure resources created for
    this quickstart. Confirm whether azd down is the right cleanup method for
    this project, and show me the resources before any deletion command runs.
    
  2. Jeśli projekt hostowanego agenta został utworzony przy użyciu azd, a grupa zasobów zawiera tylko zasoby szybkiego startu, uruchom:

    azd down
    
  3. Zatwierdź usunięcie dopiero po zweryfikowaniu grupy zasobów i zasobów, które są wyświetlane na liście poleceń.

Jeśli agent kodowania nie może uruchomić poleceń oczyszczania, użyj karty interfejsu wiersza polecenia dewelopera Azure w tym artykule lub usuń grupę zasobów z portalu Azure.

Rozwiązywanie problemów

Problem Rozwiązanie
SubscriptionNotRegistered Zarejestruj dostawcę: az provider register --namespace Microsoft.CognitiveServices.
AuthorizationFailed podczas konfiguracji Zażądaj roli Współautor w subskrypcji lub grupie zasobów.
AuthenticationError lub DefaultAzureCredential niepowodzenie Aby odświeżyć poświadczenia, uruchom polecenie azd auth logout , a następnie azd auth login.
ResourceNotFound lub DeploymentNotFound Sprawdź adres URL punktu końcowego i nazwę wdrożenia modelu w portalu Foundry w sekcji Kompilacja>Wdrożenia.
create_version_from_code kończy się niepowodzeniem przy użyciu Hosted agent provisioning failed Sprawdź, czy main.py i requirements.txt znajdują się w katalogu głównym przesłanego pliku ZIP, a następnie zweryfikuj, czy nazwa wdrożenia modelu w .env istnieje w docelowym projekcie Foundry.
Connection refused przy uruchomieniu lokalnym Upewnij się, że żaden inny proces nie używa portu 8088.
azd ai agent init Nie powiedzie się Uruchom polecenie azd version, aby sprawdzić, czy masz wersję 1.27.1 lub nowszą. Zaktualizuj za pomocą winget upgrade Microsoft.Azd (Windows) lub brew upgrade azd (macOS). Uruchom polecenie azd ext show azure.ai.agents , aby sprawdzić wersję 1.0.0-beta.4 lub nowszą. Zaktualizuj za pomocą azd ext upgrade azure.ai.agents.
Nie można odnaleźć rozszerzenia Microsoft Foundry Toolkit Zainstaluj zestaw narzędzi Microsoft Foundry Toolkit for Visual Studio Code z witryny Marketplace i przejdź do kanału wersji wstępnej.
Agent programistyczny nie wczytuje umiejętności Microsoft Foundry Zainstaluj lub ponownie załaduj umiejętności, postępując zgodnie z instrukcjami Używanie umiejętności Microsoft Foundry w agentach kodowania.
Agent programistyczny nie może uruchomić lokalnego testu smoke Użyj karty Azure Developer CLI lub karty VS Code w tym artykule do testowania lokalnego. Kontynuuj sprawdzanie poprawności zdalnej dopiero po przejrzeniu, dlaczego weryfikacja lokalna nie jest dostępna.
Uruchamianie lokalne kończy się niepowodzeniem w Windows ARM64 z błędami kompilacji dla aiohttp, grpcio, lub cryptographyhttptools Wstępnie utworzone koła arm64 nie są publikowane dla tych pakietów, a kompilacje źródłowe wymagają Microsoft narzędzi kompilacji języka C++. Aby obejść problem, pomiń krok 3 i zweryfikuj agenta zdalnie za pomocą azd deploy, a następnie azd ai agent invoke.

Aby uzyskać pełną macierz uprawnień i przypisań ról, zobacz Informacje referencyjne dotyczące uprawnień agenta hostowanego.

Czego się nauczyłeś

W tym przewodniku Szybki start wykonasz następujące zadania:

  • Utworzono szkielet projektu hostowanego agenta na podstawie przykładu Basic agent.
  • Przesłano i skierowano hostowaną wersję agenta przy użyciu zestawu SDK dla języka Python lub C#, albo wygenerowano szablon przykładu za pomocą Azure Developer CLI.
  • Przetestowano agenta lokalnie.
  • Wdrożono agenta do usługi Foundry Agent Service.
  • Wysyłaj monity testowe za pomocą zestawu SDK dla języka Python lub C#, narzędzia Azure Developer CLI, programu VS Code, kanwy Foundry lub agenta programistycznego korzystającego z umiejętności Microsoft Foundry Skill.

Następny krok