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.
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-foundryUdostępnia łączniki usługi Cloud Foundry:FoundryChatClient,FoundryAgent,FoundryEmbeddingClientiFoundryMemoryProvider. -
agent-framework-foundry-localzapewniaFoundryLocalClientdla 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 douser_locationisearch_context_size. -
get_bing_grounding_tool(eksperymentalne) — użyj własnego zasobu Azure Grounding with Bing Search. Obsługujecount,freshness,market,set_langoraz 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,
)
Wyszukiwanie niestandardowe Bing
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",
)
Wyszukiwanie AI platformy Azure
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",
)
Wyszukiwanie pamięci
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.