dostawca modelu Microsoft Foundry

Microsoft Agent Framework obsługuje bezpośrednie wnioskowanie z modelu za pośrednictwem punktów końcowych projektu Microsoft Foundry, podczas gdy to aplikacja odpowiada za definicję agenta, narzędzia i orkiestrację.

W przypadku promptów zarządzanych przez usługę i hostowanych agentów zobacz Microsoft Foundry Agent Service.

Wprowadzenie

Dodaj wymagane pakiety NuGet do projektu.

dotnet add package Azure.Identity
dotnet add package Microsoft.Agents.AI.Foundry --prerelease

Dwa wzorce integracji

Integracja Microsoft Foundry uwidacznia dwa odrębne wzorce użycia:

Wzór Typ wygenerowany Opis Użyj, gdy
Agent odpowiedzi ChatClientAgent Aplikacja programowo udostępnia model, instrukcje i narzędzia w czasie wykonywania za pomocą polecenia AIProjectClient.AsAIAgent(...). Nie utworzono zasobu agenta po stronie serwera. Masz definicję agenta i potrzebujesz prostej, elastycznej konfiguracji. Jest to wzorzec używany w większości przykładów.
Agent usługi Foundry (monit lub hostowany) FoundryAgent Zarządzane przez serwer — agenci promptów to nazwane i wersjonowane definicje; hostowani agenci to wdrożone aplikacje dostępne za pośrednictwem punktu końcowego właściwego dla danego agenta. Program Foundry jest właścicielem definicji agenta lub hostowanego środowiska uruchomieniowego. Zobacz usługę agenta Microsoft Foundry.

Agent odpowiedzi (bezpośrednie wnioskowanie)

Użyj AsAIAgent bezpośrednio z AIProjectClient modelem i instrukcjami. Jest to zalecany punkt wyjścia dla większości scenariuszy.

using Azure.AI.Projects;
using Azure.Identity;
using Microsoft.Agents.AI;

AIAgent agent = new AIProjectClient(
    new Uri("<your-foundry-project-endpoint>"),
    new DefaultAzureCredential())
        .AsAIAgent(
            model: "gpt-4o-mini",
            name: "Joker",
            instructions: "You are good at telling jokes.");

Console.WriteLine(await agent.RunAsync("Tell me a joke about a pirate."));

Warning

DefaultAzureCredential jest wygodne do programowania, ale wymaga starannego rozważenia w środowisku produkcyjnym. W środowisku produkcyjnym rozważ użycie określonego poświadczenia (np. ManagedIdentityCredential), aby uniknąć problemów z opóźnieniami, niezamierzonego sondowania poświadczeń i potencjalnych zagrożeń bezpieczeństwa wynikających z mechanizmów awaryjnych.

Ta ścieżka jest primarnie oparta na kodzie i nie tworzy zasobu agenta zarządzanego przez serwer.

Korzystanie z agenta

Agent odpowiedzi jest standardem AIAgent i obsługuje sesje, narzędzia, oprogramowanie pośredniczące i przesyłanie strumieniowe.

AgentSession session = await agent.CreateSessionAsync();
Console.WriteLine(await agent.RunAsync("Tell me a joke.", session));
Console.WriteLine(await agent.RunAsync("Now make it funnier.", session));

Aby uzyskać więcej informacji na temat uruchamiania agentów i interakcji z nimi, zobacz samouczki wprowadzające do agenta.

Tools

Agenci odpowiedzi Foundry utworzeni z AIProjectClient.AsAIAgent(...) obsługują standardowy interfejs narzędzi platformy Agent Framework. Zobacz Omówienie narzędzi , aby zapoznać się z pełną macierzą funkcji.

Narzędzie Notatki
Narzędzia funkcji Wsparte.
Zatwierdzanie narzędzi Wsparte. Udostępnione przez klienta czatu wywołującego funkcje biblioteki.
Interpreter kodów Wsparte.
Wyszukiwanie plików Wsparte.
Hostowane narzędzia MCP Wsparte.
Lokalne narzędzia MCP Wsparte.
Microsoft Foundry Toolbox Wsparte.

Odlewnia w Python

W języku Python wszystkie klienty specyficzne dla platformy Foundry znajdują się teraz w obszarze agent_framework.foundry.

  • agent-framework-foundry Udostępnia łączniki usługi Cloud Foundry: FoundryChatClient, FoundryAgent, FoundryEmbeddingClienti FoundryMemoryProvider.
  • agent-framework-foundry-local zapewnia FoundryLocalClient dla lokalnego wykonywania modelu.

Important

Ta strona dotyczy punktów końcowych projektów i modeli w usłudze Microsoft Foundry. Informacje o usłudze Foundry Agent Service można znaleźć w artykule Microsoft Foundry Agent Service. Jeśli masz autonomiczny punkt końcowy zasobów usługi Azure OpenAI (https://<your-resource>.openai.azure.com), skorzystaj ze wskazówek dotyczących języka Python na stronie dostawcy openAI. Jeśli chcesz uruchamiać obsługiwane modele lokalnie, zobacz stronę Dostawcy lokalnego usługi Foundry.

Wzorce czatów i agentów programu Foundry w Python

Scenario Kształt języka Python Użyj, gdy
Podstawowe wnioskowanie na punkcie końcowym odpowiedzi Foundry Agent(client=FoundryChatClient(...)) Twoja aplikacja jest właścicielem definicji agenta, narzędzi i pętli konwersacji, a chcesz model wdrożony w projekcie Foundry.
Agenci zarządzani przez usługę w Foundry Agent Service FoundryAgent(...) Chcesz nawiązać połączenie z elementem PromptAgent lub HostedAgent utworzonym i skonfigurowanym w portalu Foundry lub za pośrednictwem interfejsów API usługi.

Installation

pip install agent-framework-foundry

Ten sam agent-framework-foundry pakiet zawiera również FoundryEmbeddingClient do osadzeń dla końcówek modeli Foundry.

Configuration

FoundryChatClient

FOUNDRY_PROJECT_ENDPOINT="https://<your-project>.services.ai.azure.com"
FOUNDRY_MODEL="gpt-4o-mini"

FoundryEmbeddingClient

FOUNDRY_MODELS_ENDPOINT="https://<apim-instance>.azure-api.net/<foundry-instance>/models"
FOUNDRY_MODELS_API_KEY="<api-key>"
FOUNDRY_EMBEDDING_MODEL="text-embedding-3-small"
FOUNDRY_IMAGE_EMBEDDING_MODEL="Cohere-embed-v3-english"  # optional

FoundryChatClient używa punktu końcowego projektu. FoundryEmbeddingClient używa oddzielnego punktu końcowego dla modeli.

Wybieranie odpowiedniego klienta języka Python

Scenario Preferowany klient Notatki
Zasób usługi Azure OpenAI OpenAIChatCompletionClient / OpenAIChatClient Użyj strony dostawcy OpenAI.
wnioskowanie projektu Microsoft Foundry Agent(client=FoundryChatClient(...)) Używa punktu końcowego Reakcje Foundry.
Agent zarządzany przez usługę Microsoft Foundry FoundryAgent Zalecane dla szybkich agentów i hostowanych agentów.
Osadzenia punktów końcowych modeli Microsoft Foundry FoundryEmbeddingClient Używa znaku FOUNDRY_MODELS_ENDPOINT plus FOUNDRY_EMBEDDING_MODEL / FOUNDRY_IMAGE_EMBEDDING_MODEL.
Lokalne środowisko uruchomieniowe usługi Foundry Agent(client=FoundryLocalClient(...)) Zobacz Foundry Local.

Tworzenie agenta za pomocą polecenia FoundryChatClient

FoundryChatClient nawiązuje połączenie z wdrożonym modelem w projekcie Foundry i używa punktu końcowego Responses. Połącz ją ze standardem Agent , gdy aplikacja powinna posiadać instrukcje, narzędzia i obsługę sesji.

from agent_framework import Agent
from agent_framework.foundry import FoundryChatClient
from azure.identity import AzureCliCredential

agent = Agent(
    client=FoundryChatClient(
        project_endpoint="https://your-project.services.ai.azure.com",
        model="gpt-4o-mini",
        credential=AzureCliCredential(),
    ),
    name="FoundryWeatherAgent",
    instructions="You are a helpful assistant.",
)

FoundryChatClient to ścieżka Python "Foundry-first" przeznaczona do bezpośredniego wnioskowania, która obsługuje narzędzia, strukturalne dane wyjściowe oraz strumieniowanie.

Współbieżne używanie klienta

Jedna instancja FoundryChatClient może obsługiwać współbieżne wywołania asynchroniczne na tej samej pętli zdarzeń, w tym równocześnie wykonywane wywołania strumieniowe i niestrumieniowe.

Utwórz osobne Agent i AgentSession dla każdego współbieżnego uruchomienia oraz przekaż osobne komunikaty i opcje. Oprogramowanie pośredniczące, narzędzia i funkcje zwrotne dostarczane przez użytkownika również muszą obsługiwać pracę współbieżną. Nie współużytkuj klienta między wątkami systemu operacyjnego ani między pętlami zdarzeń i nie zmieniaj jego konfiguracji, gdy trwa wykonywanie wywołań.

Wyrażanie zgody na zaszyfrowane rozumowanie

FoundryChatClient domyślnie nie żąda reasoning.encrypted_content. Ta wartość domyślna uniemożliwia błędy żądań w modelach, które nie obsługują szyfrowanego rozumowania.

Aby włączyć tę funkcję we wdrożeniu, które ją obsługuje, skorzystaj z domyślnych opcji agenta:

from agent_framework import Agent
from agent_framework.foundry import FoundryChatClient
from azure.identity import AzureCliCredential

agent = Agent(
    client=FoundryChatClient(
        project_endpoint="https://your-project.services.ai.azure.com",
        model="<reasoning-model-deployment>",
        credential=AzureCliCredential(),
    ),
    default_options={"include": ["reasoning.encrypted_content"]},
)

Tools

FoundryChatClient udostępnia statyczne metody fabryczne dla każdego hostowanego narzędzia Foundry. Fabryki zwracają obiekty narzędzi SDK, które przekazujesz do tools= w elemencie Agent lub bezpośrednio do client.get_response(..., tools=[...]). Informacje o narzędziach agentów zarządzanych przez usługę można znaleźć w Microsoft Foundry Agent Service.

Metody fabrykujące są metodami klasy, więc nie potrzebujesz instancji, aby utworzyć narzędzie:

from agent_framework import Agent
from agent_framework.foundry import FoundryChatClient
from azure.identity import AzureCliCredential

agent = Agent(
    client=FoundryChatClient(credential=AzureCliCredential()),
    instructions="You can search the web and run code.",
    tools=[
        FoundryChatClient.get_web_search_tool(),
        FoundryChatClient.get_code_interpreter_tool(),
    ],
)

Obsługa narzędzi

W poniższej tabeli wymieniono wszystkie narzędzia, które Python FoundryChatClient uwidacznia dzisiaj.

Narzędzie Fabryka w FoundryChatClient Status Detail
Narzędzia funkcji n/a — przekaż dowolny obiekt wywoływalny Pythona lub @ai_function ogólna dostępność Wywoływane lokalnie w procesie Python.
Zatwierdzanie narzędzi n/a — opakowuje istniejące narzędzia ogólna dostępność Współpracuje z hostowanymi narzędziami MCP i narzędziami funkcyjnymi.
Interpreter kodów get_code_interpreter_tool ogólna dostępność Wykonywanie kodu w izolowanym środowisku na platformie Foundry.
Wyszukiwanie plików get_file_search_tool ogólna dostępność Przeszukuj przesłane pliki w wektorowych magazynach danych Foundry.
Wyszukiwanie w Sieci Web get_web_search_tool ogólna dostępność Oparte na usłudze Bing tworzenie podstaw internetowych zarządzanych przez Microsoft. Tylko modele Azure OpenAI.
Generowanie obrazów get_image_generation_tool ogólna dostępność Generowanie obrazów hostowane w usłudze Foundry.
Hostowana umowa MCP get_mcp_tool ogólna dostępność Zdalny serwer MCP wywoływany przez usługę Foundry.
Lokalne MCP n/a — użyj MCPStreamableHTTPTool / MCPStdioTool ogólna dostępność Działa w Twoim procesie; współpracuje z dowolnym klientem.
Microsoft Foundry Toolbox MCPStreamableHTTPTool lub FoundryToolbox Beta Wykorzystywane przez MCP z FoundryChatClient; podłączone po stronie serwera na FoundryAgent.
Podstawy Binga get_bing_grounding_tool Experimental Bring-your-own Grounding with Bing Search resource (Korzystanie z własnego rozwiązania Grounding za pomocą zasobu wyszukiwania Bing).
Wyszukiwanie niestandardowe Bing get_bing_custom_search_tool Podgląd Uziemienie Bing jest ograniczone do wyselekcjonowanych list domen.
Wyszukiwanie AI platformy Azure get_azure_ai_search_tool Experimental Przeszukaj indeks Wyszukiwanie AI platformy Azure za pośrednictwem połączenia z usługą Foundry.
SharePoint get_sharepoint_tool Podgląd Podstawowe odpowiedzi w zawartości SharePoint.
Microsoft Fabric get_fabric_tool Podgląd Wysyłaj zapytania do agenta danych Fabric.
Wyszukiwanie pamięci get_memory_search_tool Podgląd Wyszukaj magazyn pamięci zarządzanej przez program Foundry.
Wykorzystanie komputerów get_computer_use_tool Podgląd Pozwól agentowi sterować środowiskiem pulpitu lub przeglądarki.
Automatyzacja przeglądarki get_browser_automation_tool Podgląd Sterowanie przeglądarką przy użyciu połączenia z Azure Playwright.
Agent do agenta (A2A) get_a2a_tool Podgląd Wywołaj innego agenta A2A w charakterze narzędzia.

Uwaga / Notatka

Eksperymentalne metody fabrykujące opakowują typy zestawu SDK GA Foundry, ale same opakowania mogą ulec zmianie przed wydaniem GA. Fabryki w wersji zapoznawczej opakowują typy zestawu Foundry SDK, których bazowa funkcjonalność ma status wersji zapoznawczej i może ulec zmianie lub zostać usunięta. Oba generują ExperimentalWarning przy pierwszym użyciu w procesie.

Warianty wyszukiwania w Sieci Web

Foundry uwidacznia trzy opcje uziemienia oparte na usłudze Bing. Wybierz ten, który jest zgodny ze scenariuszem:

  • get_web_search_tool (GA) — domyślnie, bez konfiguracji; zasób Bing zarządzany przez firmę Microsoft. Tylko modele Azure OpenAI. Ograniczone do user_location i search_context_size.
  • get_bing_grounding_tool (eksperymentalne) — użyj własnego zasobu Azure Grounding with Bing Search. Obsługuje count, freshness, market, set_lang oraz modele inne niż OpenAI Foundry.
  • get_bing_custom_search_tool (wersja zapoznawcza) — użyj własnego wystąpienia usługi Bing Custom Search, aby ograniczyć wyszukiwanie do wyselekcjonowanego zestawu domen.

Wszystkie trzy wysyłają dane wyszukiwania poza granicą zgodności Azure. Aby zapoznać się z pełnym porównaniem, zobacz omówienie uziemienia sieci Web .

client = FoundryChatClient(credential=AzureCliCredential())

# Default (GA): minimal configuration
web_search = client.get_web_search_tool(
    user_location={"city": "Amsterdam", "country": "NL"},
    search_context_size="medium",
)

Generowanie obrazu

get_image_generation_tool Konfiguruje narzędzie do generowania obrazów hostowanych przez firmę Foundry. Model tworzy zawartość obrazu w odpowiedzi — nie ma dodatkowych plików do zarządzania.

image_gen = FoundryChatClient.get_image_generation_tool(
    model="gpt-image-1",
    size="1024x1024",
    output_format="png",
    quality="high",
)

Ugruntowanie w Bing

get_bing_grounding_tool opakowuje uziemienia za pomocą narzędzia wyszukiwania Bing. Samodzielnie tworzysz zasób Grounding with Bing Search i dodajesz go jako połączenie w projekcie Foundry, a następnie przekazujesz identyfikator połączenia.

bing = FoundryChatClient.get_bing_grounding_tool(
    connection_id="/subscriptions/.../connections/my-bing",
    market="en-US",
    freshness="Day",
    count=10,
)

get_bing_custom_search_tool ogranicza odwołania do listy dozwolonych elementów zdefiniowanej w zasobie Bing Custom Search.

bing_custom = FoundryChatClient.get_bing_custom_search_tool(
    connection_id="/subscriptions/.../connections/my-bing-custom",
    instance_name="docs-only",
    market="en-US",
)

get_azure_ai_search_tool umożliwia agentowi wykonywanie zapytań o indeks Wyszukiwanie AI platformy Azure za pośrednictwem połączenia projektu Foundry.

ai_search = FoundryChatClient.get_azure_ai_search_tool(
    index_connection_id="/subscriptions/.../connections/my-search",
    index_name="product-docs",
    query_type="vector_semantic_hybrid",
    top_k=5,
)

SharePoint

get_sharepoint_tool opiera odpowiedzi na zawartości SharePoint dostępnej za pośrednictwem połączenia Foundry SharePoint.

sharepoint = FoundryChatClient.get_sharepoint_tool(
    connection_id="/subscriptions/.../connections/my-sharepoint",
)

Microsoft Fabric

get_fabric_tool łączy agenta z agentem danych Microsoft Fabric za pośrednictwem połączenia z usługą Foundry, aby agent mógł odpowiedzieć na pytania dotyczące danych Fabric.

fabric = FoundryChatClient.get_fabric_tool(
    connection_id="/subscriptions/.../connections/my-fabric",
)

get_memory_search_tool umożliwia agentowi przeszukiwanie magazynu pamięci zarządzanego przez Foundry, opcjonalnie zawężonego do użytkownika lub dzierżawcy.

memory = FoundryChatClient.get_memory_search_tool(
    memory_store_name="user-preferences",
    scope="{{$userId}}",
)

Używanie komputera

get_computer_use_tool konfiguruje narzędzie podglądu Computer Use — model może obsługiwać środowisko pulpitu lub przeglądarki, wykonując działania myszy i klawiatury.

computer = FoundryChatClient.get_computer_use_tool(
    environment="browser",
    display_width=1280,
    display_height=800,
)

Automatyzacja przeglądarki

get_browser_automation_tool łączy agenta z zasobem Azure Playwright Testing za pomocą połączenia Foundry. Agent może sterować prawdziwą przeglądarką za pomocą Playwright.

browser = FoundryChatClient.get_browser_automation_tool(
    connection_id="/subscriptions/.../connections/my-playwright",
)

Komunikacja agentów (A2A)

get_a2a_tool udostępnia zdalnego agenta A2A jako narzędzie, tak aby agent Foundry mógł go wywołać. Podaj albo base_url (i opcjonalnie agent_card_path), albo project_connection_id dla zapisanego połączenia A2A.

a2a = FoundryChatClient.get_a2a_tool(
    base_url="https://remote-agent.example.com",
    agent_card_path="/.well-known/agent-card.json",
)

Ogólne wskazówki dotyczące wykrywania A2A, sesji i przesyłania strumieniowego znajdziesz w usłudze agenta A2A.

Tworzenie osadzania za pomocą polecenia FoundryEmbeddingClient

Użyj FoundryEmbeddingClient, jeśli chcesz osadzić tekst lub obraz z punktu końcowego modeli Foundry.

from agent_framework.foundry import FoundryEmbeddingClient

async with FoundryEmbeddingClient() as client:
    result = await client.get_embeddings(["hello from Agent Framework"])
    print(result[0].dimensions)

Korzystanie z agenta

FoundryChatClientintegruje się ze standardowym środowiskiem PythonAgent, w tym wywoływaniem narzędzi, sesjami i odpowiedziami przesyłanymi strumieniowo. W przypadku lokalnych środowisk uruchomieniowych użyj oddzielnej strony dostawcy lokalnego programu Foundry.

Informacje o nazwanych i wersjonowanych pakietach hostowanych konfiguracji narzędzi można znaleźć w Microsoft Foundry Toolbox.

Foundry w języku Go

Zestaw SDK języka Go udostępnia agentów Microsoft Foundry za pośrednictwem usługi github.com/microsoft/agent-framework-go/provider/foundryprovider.

Zobacz przykłady języka Foundry Go , aby zapoznać się z bezpośrednim wnioskowaniem, narzędziami funkcji, narzędziami hostowanymi, mcp i przykładami agenta serwera.

Pakiet obsługuje dwa obiekty docelowe agenta:

Target Kształt języka Go Użyj, gdy
wdrażanie modelu wspieranego przez projekt foundryprovider.ModelDeployment("gpt-4o-mini") Twoja aplikacja kontroluje instrukcje, narzędzia i przebieg rozmowy.
Istniejący agent usługi Foundry po stronie serwera foundryprovider.ServerAgent("my-agent") Definicja agenta jest już skonfigurowana w narzędziu Foundry.

Configuration

Ustaw punkt końcowy projektu Foundry i wdrożenie modelu:

FOUNDRY_PROJECT_ENDPOINT="https://<your-project>.services.ai.azure.com/api/projects/<project-id>"
FOUNDRY_MODEL="gpt-4o-mini"

Agent Foundry wspierany przez projekt

Użyj ModelDeployment, jeśli chcesz utworzyć w kodzie agenta Agent Framework i przekazać instrukcje, narzędzia, middleware oraz dostawców kontekstu z aplikacji napisanej w Go.

import (
    "context"
    "os"

    "github.com/Azure/azure-sdk-for-go/sdk/azidentity"
    "github.com/microsoft/agent-framework-go/agent"
    "github.com/microsoft/agent-framework-go/provider/foundryprovider"
)

endpoint := os.Getenv("FOUNDRY_PROJECT_ENDPOINT")
model := os.Getenv("FOUNDRY_MODEL")

token, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
    panic(err)
}

a := foundryprovider.NewAgent(
    endpoint,
    token,
    foundryprovider.ModelDeployment(model),
    foundryprovider.AgentConfig{
        Instructions: "You are good at telling jokes.",
        Config: agent.Config{
            Name: "Joker",
        },
    },
)

resp, err := a.RunText(context.Background(), "Tell me a joke about a pirate.").Collect()

Istniejący agent usługi Foundry po stronie serwera

Użyj ServerAgent polecenia , jeśli chcesz wywołać agenta już skonfigurowanego w narzędziu Foundry. Agent po stronie serwera jest właścicielem swoich instrukcji i narzędzi, dlatego AgentConfig.Instructions jest ignorowany dla tego obiektu docelowego.

a := foundryprovider.NewAgent(
    endpoint,
    token,
    foundryprovider.ServerAgent("my-agent"),
    foundryprovider.AgentConfig{
        Config: agent.Config{
            Name: "my-agent",
        },
    },
)

resp, err := a.RunText(ctx, "Summarize the current project status.").Collect()

Tools

Agenci Foundry obsługiwani przez projekty obsługują standardowy interfejs narzędziowy platformy Go Agent Framework dla narzędzi lokalnych i obsługiwanych deklaracji narzędzi hostowanych.

Narzędzie Status Notatki
Narzędzia funkcji Supported Funkcje są uruchamiane w procesie języka Go.
Zatwierdzanie narzędzi Supported Współpracuje z lokalnymi narzędziami funkcji za pośrednictwem pętli automatycznego wywoływania narzędzi.
Interpreter kodów Supported Użyj &hostedtool.CodeInterpreter{}.
Wyszukiwanie w Sieci Web Supported Użyj &hostedtool.WebSearch{}.
Lokalne narzędzia MCP Supported Użyj tool/mcptool polecenia , aby nawiązać połączenie z serwerem MCP i uwidocznić jego narzędzia lokalnie.
Hostowane narzędzia MCP Obecnie brak dokumentacji dla Go Foundry Użyj lokalnych narzędzi MCP, jeśli potrzebujesz serwerów MCP z agentami Go Foundry.
Microsoft Foundry Toolbox Obecnie nie jest udostępnione przez funkcję pomocniczą Go.

W przypadku lokalnych narzędzi funkcji dodaj wartości tool.Tool za pośrednictwem agent.Config.Tools:

a := foundryprovider.NewAgent(
    endpoint,
    token,
    foundryprovider.ModelDeployment(model),
    foundryprovider.AgentConfig{
        Instructions: "You are a helpful assistant.",
        Config: agent.Config{
            Tools: []tool.Tool{weatherTool},
        },
    },
)

W przypadku wykonywania hostowanego kodu przekaż deklarację hostowanego narzędzia:

a := foundryprovider.NewAgent(
    endpoint,
    token,
    foundryprovider.ModelDeployment(model),
    foundryprovider.AgentConfig{
        Instructions: "You solve problems with code.",
        Config: agent.Config{
            Tools: []tool.Tool{&hostedtool.CodeInterpreter{}},
        },
    },
)

Nagłówki klienta i serwowany model

Narzędzie Foundry akceptuje x-client-* nagłówki na przebieg. Dodaj je za pomocą polecenia foundryprovider.WithClientHeader lub foundryprovider.WithClientHeaders:

resp, err := a.RunText(
    ctx,
    "Hello!",
    foundryprovider.WithClientHeader("x-client-scenario", "docs"),
).Collect()

Gdy Foundry zwraca nagłówek odpowiedzi x-ms-served-model, dostawca Go dodaje go jako ServedModel do dodatkowych właściwości odpowiedzi/aktualizacji.

if servedModel, ok := resp.AdditionalProperties["ServedModel"].(string); ok {
    fmt.Println(servedModel)
}

Dostawca pamięci Foundry

Użyj foundryprovider.NewMemoryProvider, jeśli chcesz, aby agent Agent Framework przy każdym uruchomieniu pobierał dane z magazynu pamięci zarządzanego przez Foundry i go aktualizował.

import (
    "log/slog"

    "github.com/microsoft/agent-framework-go/agent"
    "github.com/microsoft/agent-framework-go/provider/foundryprovider"
)

memoryProvider := foundryprovider.NewMemoryProvider(
    endpoint,
    tokenCredential,
    "memory-store-sample",
    func(*agent.Session) string { return "user-123" },
    foundryprovider.MemoryProviderConfig{
        Logger: slog.Default(),
    },
)

a := foundryprovider.NewAgent(
    endpoint,
    tokenCredential,
    foundryprovider.ModelDeployment(model),
    foundryprovider.AgentConfig{
        Instructions: "Use known memories about the user when responding.",
        Config: agent.Config{
            Name:             "FoundryMemoryAgent",
            ContextProviders: []agent.ContextProvider{memoryProvider},
        },
    },
)

Punkt końcowy musi być punktem końcowym w zakresie projektu Microsoft Foundry, a magazyn pamięci musi już istnieć w tym projekcie. Funkcja zwrotna zakresu powinna zwracać stabilny klucz użytkownika, dzierżawcy lub partycji konwersacji.

Tip

Zobacz przykład pamięci Foundry w języku Go, aby poznać kompletny działający przykład.

Bieżące luki języka Go

Obsługa języka Go nie obejmuje obecnie hostowanych interfejsów API wdrażania, cyklu życia i administrowania platformą Foundry, klientów osadzeń ani pomocników specyficznych dla języka Go dla Microsoft Foundry Toolbox. Użyj portalu Foundry lub zestawów SDK usługi do wykonywania tych operacji.

Następne kroki