provedor de modelos do Microsoft Foundry

O Microsoft Agent Framework oferece suporte à inferência direta de modelos a partir de endpoints de projetos do Microsoft Foundry, enquanto sua aplicação detém a definição do agente, as ferramentas e a orquestração.

Para agentes de prompt e agentes hospedados gerenciados pelo serviço, consulte Serviço de Agente do Foundry da Microsoft.

Introdução

Adicione o pacote NuGet necessário ao seu projeto.

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

Dois padrões de integração

A integração do Microsoft Foundry expõe dois padrões de uso distintos:

Pattern Tipo produzido Description Usar quando
Agente de Respostas ChatClientAgent Seu aplicativo fornece programaticamente um modelo, instruções e ferramentas em runtime por meio de AIProjectClient.AsAIAgent(...). Nenhum recurso de agente do lado do servidor é criado. Você é o proprietário da definição do agente e deseja uma configuração simples e flexível. Esse é o padrão usado na maioria dos exemplos.
Agente do Foundry (Prompt ou Hosted) FoundryAgent Gerenciados pelo servidor — Prompt Agents são definições nomeadas e versionadas; Hosted Agents são aplicações implantadas acessadas por meio de um endpoint específico do agente. A Foundry é dona da definição do agente ou do runtime hospedado. Consulte Microsoft Foundry Agent Service.

Agente de Respostas (inferência direta)

Use AsAIAgent diretamente no AIProjectClient com um modelo e instruções. Esse é o ponto de partida recomendado para a maioria dos cenários.

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."));

Aviso

DefaultAzureCredential é conveniente para o desenvolvimento, mas requer uma consideração cuidadosa na produção. Em produção, considere o uso de uma credencial específica (por exemplo, ManagedIdentityCredential) para evitar problemas de latência, investigação de credenciais não intencionais e possíveis riscos de segurança de mecanismos de fallback.

Este caminho é baseado em código e não cria um recurso de agente gerenciado pelo servidor.

Usando o agente

O Responses Agent é um padrão AIAgent e dá suporte a sessões, ferramentas, middleware e streaming.

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));

Para obter mais informações sobre como executar e interagir com agentes, consulte os tutoriais de introdução do Agente.

Tools

Os Agentes de Respostas do Foundry criados a partir de AIProjectClient.AsAIAgent(...) oferecem suporte ao conjunto de ferramentas padrão do Agent Framework. Confira a visão geral das Ferramentas para a matriz de recursos completa.

Tool Notes
Ferramentas de Funções Suportado.
Aprovação da ferramenta Suportado. Fornecido pelo cliente de chat com invocação de função do framework.
Interpretador de Código Suportado.
Pesquisa de Arquivo Suportado.
Ferramentas MCP hospedadas Suportado.
Ferramentas MCP locais Suportado.
Caixa de ferramentas do Microsoft Foundry Suportado.

Foundry no Python

Em Python, todos os clientes específicos da Foundry agora residem em agent_framework.foundry.

  • agent-framework-foundryfornece os conectores do Cloud Foundry: FoundryChatClient, , FoundryAgente FoundryEmbeddingClientFoundryMemoryProvider.
  • agent-framework-foundry-local fornece FoundryLocalClient para a execução do modelo local.

Important

Esta página aborda os endpoints de projeto e de modelos do Microsoft Foundry. Para o Serviço de Agente do Microsoft Foundry, consulte Microsoft Foundry Agent Service. Se você tiver um endpoint de recurso autônomo do Azure OpenAI (https://<your-resource>.openai.azure.com), use as diretrizes de Python na página do provedor OpenAI. Se você quiser executar modelos com suporte localmente, consulte a página do provedor Local do Foundry.

Padrões de chat e agente do Foundry no Python

Scenario Formato do Python Usar quando
Inferência simples com o endpoint Foundry Responses Agent(client=FoundryChatClient(...)) Seu aplicativo possui a definição do agente, as ferramentas e o loop de conversa, e você deseja um modelo implantado em um projeto do Foundry.
Agentes gerenciados pelo serviço no Serviço de Agente da Foundry FoundryAgent(...) Você deseja se conectar a um PromptAgent ou HostedAgent criado e configurado no portal do Foundry ou por meio das APIs de serviço.

Installation

pip install agent-framework-foundry

O mesmo pacote agent-framework-foundry também inclui FoundryEmbeddingClient para incorporações de texto por meio de um projeto do Foundry ou incorporações de texto e imagem por meio de um ponto de extremidade do Foundry Models.

Configuration

FoundryChatClient

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

FoundryEmbeddingClient com um endpoint do projeto

FOUNDRY_PROJECT_ENDPOINT="https://<resource>.services.ai.azure.com/api/projects/<project>"
FOUNDRY_EMBEDDING_MODEL="text-embedding-3-small"

Embeddings com suporte de projeto usam uma implantação de embeddings da OpenAI no projeto Foundry. Autentique-se com uma credencial de token assíncrona, como AzureCliCredential.

FoundryEmbeddingClient com um endpoint de modelos

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

Use o ponto de extremidade Foundry Models para incorporações de imagens ou para modelos de texto implantados nesse ponto de extremidade. Se ambas as variáveis de ambiente de endpoint estiverem definidas e você não passar um endpoint explícito ou um cliente do projeto, FOUNDRY_MODELS_ENDPOINT terá precedência.

FoundryChatClient usa o endpoint do projeto. FoundryEmbeddingClient dá suporte a inserções de texto com suporte de projeto e inserções de texto ou imagem de ponto de extremidade de modelos.

Escolha o cliente de Python certo

Scenario Cliente preferencial Notes
Recurso Azure OpenAI OpenAIChatCompletionClient / OpenAIChatClient Use a página do provedor OpenAI.
Inferência do projeto Microsoft Foundry Agent(client=FoundryChatClient(...)) Usa o endpoint de Respostas do Foundry.
Agente gerenciado pelo serviço Microsoft Foundry FoundryAgent É recomendado para agentes de prompt e agentes hospedados.
inserções de texto do projeto Microsoft Foundry FoundryEmbeddingClient Usa FOUNDRY_PROJECT_ENDPOINT, FOUNDRY_EMBEDDING_MODEL e uma credencial de token.
Incorporações de texto ou imagem no ponto de extremidade de modelos do Microsoft Foundry FoundryEmbeddingClient Usa FOUNDRY_MODELS_ENDPOINT mais FOUNDRY_EMBEDDING_MODEL / FOUNDRY_IMAGE_EMBEDDING_MODEL.
Runtime local do Foundry Agent(client=FoundryLocalClient(...)) Consulte Foundry Local.

Criar um agente com FoundryChatClient

FoundryChatClient conecta-se a um modelo implantado em um projeto Foundry e usa o endpoint Respostas. Emparelhe-o com um padrão Agent quando seu aplicativo deve possuir instruções, ferramentas e gerenciamento de sessão.

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 é o caminho de Python do Foundry para inferência direta e dá suporte a ferramentas, saídas estruturadas e streaming.

Reutilize o cliente de forma simultânea

Uma FoundryChatClient instância pode atender chamadas assíncronas simultâneas no mesmo loop de eventos, incluindo streaming sobreposto e chamadas sem streaming.

Crie um Agent e um AgentSession separados para cada execução simultânea e passe mensagens e opções separadas. Middleware, ferramentas e callbacks fornecidos pelo usuário também devem oferecer suporte à concorrência. Não compartilhe o cliente entre threads do sistema operacional ou loops de eventos ou transforme sua configuração enquanto as chamadas estiverem ativas.

Aceitar o raciocínio criptografado

FoundryChatClient não solicita reasoning.encrypted_content por padrão. Esse padrão impede falhas de solicitação em modelos que não dão suporte ao raciocínio criptografado.

Para uma implantação eficiente, opte pelas configurações padrão do agente:

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 fornece métodos de fábrica estáticos para cada ferramenta de Foundry hospedada. As fábricas retornam objetos da ferramenta SDK que você passa para tools= em Agent ou diretamente para client.get_response(..., tools=[...]). Para ferramentas de agente gerenciadas pelo serviço, consulte Microsoft Foundry Agent Service.

As fábricas são métodos de classe, portanto você não precisa de uma instância para criar uma ferramenta:

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(),
    ],
)

Suporte de ferramentas

A tabela a seguir lista todas as ferramentas que o Python FoundryChatClient expõe hoje.

Tool Fábrica em FoundryChatClient Status Detalhes
Ferramentas de Funções n/a — passe qualquer Python que pode ser chamado ou @ai_function GA Invocado localmente em seu processo de Python.
Aprovação da ferramenta n/a — encapsula as ferramentas existentes GA Funciona com MCP hospedado e ferramentas de funções.
Interpretador de Código get_code_interpreter_tool GA Execução de código em área restrita na Foundry.
Pesquisa de Arquivo get_file_search_tool GA Pesquise arquivos carregados por meio de repositórios de vetores do Foundry.
Pesquisa na Web get_web_search_tool GA Aterramento na Web com suporte do Bing gerenciado por Microsoft. Somente modelos do Azure OpenAI.
Geração de Imagem get_image_generation_tool GA Geração de imagem hospedada no Foundry.
MCP hospedado get_mcp_tool GA Servidor MCP remoto invocado pelo Foundry.
Local MCP n/a — use MCPStreamableHTTPTool / MCPStdioTool GA É executado no seu processo; funciona com qualquer cliente.
Caixa de ferramentas do Microsoft Foundry MCPStreamableHTTPTool ou FoundryToolbox Beta Consumido por MCP de FoundryChatClient; anexado no lado do servidor em FoundryAgent.
Fundamento do Bing get_bing_grounding_tool Experimental Traga seu próprio grounding com o recurso do Bing Search.
Pesquisa Personalizada do Bing get_bing_custom_search_tool Preview Fundamentação do Bing restrita a uma lista selecionada de domínios.
Pesquisa de IA do Azure  get_azure_ai_search_tool Experimental Pesquise em um índice do Pesquisa de IA do Azure  usando uma conexão do Foundry.
SharePoint get_sharepoint_tool Preview Respostas básicas no conteúdo SharePoint.
Microsoft Fabric get_fabric_tool Preview Consultar um agente de dados do Fabric.
Pesquisa de Memória get_memory_search_tool Preview Pesquise um repositório de memória gerenciado pela Foundry.
Uso de computador nativo get_computer_tool Available Retornar ações ordenadas do computador por meio da API de Respostas. Requer azure-ai-projects 2.3.0 ou superior.
Visualização de uso do computador get_computer_use_tool Preview Use a API de computador de versão prévia separada.
Automação do navegador get_browser_automation_tool Preview Controle um navegador usando uma conexão do Azure Playwright.
Agente para Agente (A2A) get_a2a_tool Preview Chame outro agente A2A para usá-lo como ferramenta.

Note

As fábricas experimentais encapsulam tipos de SDK do GA Foundry, mas os wrappers em si podem mudar antes da GA. As fábricas de visualização encapsulam os tipos do SDK do Foundry cuja funcionalidade subjacente está em versão prévia e podem ser alteradas ou removidas. Ambos emitem ExperimentalWarning na primeira vez em que são utilizados em um processo.

Variantes de pesquisa na Web

O Foundry expõe três opções de aterramento com suporte do Bing. Escolha aquele que corresponda ao seu cenário:

  • get_web_search_tool (GA) — padrão sem configuração; recurso do Bing gerenciado pela Microsoft. Somente modelos do Azure OpenAI. Limitado a user_location e search_context_size.
  • get_bing_grounding_tool (experimental): traga seu próprio recurso de aterramento com a pesquisa do Bing Azure. Compatível com count, freshness, market, set_lang e modelos Foundry não OpenAI.
  • get_bing_custom_search_tool (versão preliminar): use sua própria instância do Bing Custom Search para restringir a fundamentação a um conjunto selecionado de domínios.

Todos os três enviam dados de pesquisa fora do limite de conformidade Azure. Confira a visão geral do embasamento na Web para ver a comparação completa.

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",
)

Geração de imagem

get_image_generation_tool configura a ferramenta de geração de imagem hospedada do Foundry. O modelo produz conteúdo de imagem na resposta – não há arquivos extras para gerenciar.

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

Fundamento do Bing

get_bing_grounding_tool envolve a ferramenta do Foundry Fundamentação com Pesquisa do Bing. Crie você mesmo o recurso Grounding with Bing Search e adicione-o como uma conexão do projeto do Foundry; em seguida, forneça o ID da conexão.

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

get_bing_custom_search_tool restringe a fundamentação à lista de permissões definida em um recurso de Pesquisa Personalizada do Bing.

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 permite que o agente consulte um índice de Pesquisa de IA do Azure  por meio de uma conexão de projeto do 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 baseia as respostas em conteúdo do SharePoint acessível por meio de uma conexão do Foundry com o SharePoint.

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

Microsoft Fabric

get_fabric_tool conecta o agente a um agente de dados do Microsoft Fabric por meio de uma conexão Foundry para que o agente possa responder a perguntas sobre seus dados do Fabric.

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

get_memory_search_tool permite que o agente pesquise um repositório de memória gerenciado pelo Foundry, opcionalmente com escopo para um usuário ou locatário.

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

Uso do computador

get_computer_tool configura o uso nativo do computador por meio da API de Respostas. A ferramenta SDK do Foundry não é uma versão prévia, mas os construtores compartilhados do Agent Framework ComputerSafetyCheck e do computador Content são experimentais. Seu aplicativo executa as ações ordenadas, revisa as verificações de segurança e retorna uma captura de tela. Para obter a solicitação completa e o fluxo de resultados, consulte o uso do computador nativo.

computer = FoundryChatClient.get_computer_tool()

Essa fábrica requer azure-ai-projects 2.3.0 ou posterior. Versões mais antigas do SDK ainda compatíveis podem importar FoundryChatClient, mas, ao chamar get_computer_tool(), é gerado um(a) ImportError com orientações de atualização.

get_computer_use_tool permanece disponível para a API de prévia separada do Computer Use:

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

Automação de navegador

get_browser_automation_tool conecta o agente a um recurso do Azure Playwright Testing via uma conexão do Foundry. O agente pode controlar um navegador real por meio do Playwright.

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

Agente para Agente (A2A)

get_a2a_tool expõe um agente A2A remoto como uma ferramenta para que um agente do Foundry possa chamá-lo. Forneça uma base_url (e, opcionalmente, agent_card_path) ou um project_connection_id para uma conexão A2A armazenada.

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

Para obter orientações gerais de descoberta, sessões e streaming do A2A, consulte o serviço de agente A2A.

Criar inserções com FoundryEmbeddingClient

Use FoundryEmbeddingClient com um ponto de extremidade de projeto quando quiser inserir texto de uma implantação do OpenAI em seu projeto do Foundry.

import os

from agent_framework.foundry import FoundryEmbeddingClient
from azure.identity.aio import AzureCliCredential

async with AzureCliCredential() as credential:
    async with FoundryEmbeddingClient(
        project_endpoint=os.environ["FOUNDRY_PROJECT_ENDPOINT"],
        model=os.environ["FOUNDRY_EMBEDDING_MODEL"],
        credential=credential,
    ) as client:
        result = await client.get_embeddings(["hello from Agent Framework"])
        print(result[0].dimensions)

Para embeddings de imagem, configure FOUNDRY_MODELS_ENDPOINT, FOUNDRY_MODELS_API_KEY e FOUNDRY_IMAGE_EMBEDDING_MODEL em vez disso. Não combine a configuração do ponto de extremidade do projeto com argumentos de ponto de extremidade de modelos ou clientes no mesmo FoundryEmbeddingClient.

Usando o agente

FoundryChatClient integra-se com a experiência padrão do Python Agent, incluindo chamada de ferramentas, sessões e respostas em streaming. Para runtimes locais, use a página separada do provedor Local do Foundry.

Para pacotes nomeados e versionados de configurações de ferramentas hospedadas, consulte Microsoft Foundry Toolbox.

Foundry no Go

O SDK Go fornece agentes do Microsoft Foundry por meio de github.com/microsoft/agent-framework-go/provider/foundryprovider.

Consulte os exemplos do Foundry Go para obter inferência direta, ferramentas de função, ferramentas hospedadas, MCP e exemplos de servidor-agente.

O pacote suporta dois alvos de agente:

Target Forma do Go Usar quando
Implantação de modelo com suporte do Project foundryprovider.ModelDeployment("gpt-4o-mini") Seu aplicativo possui instruções, ferramentas e fluxo de conversa.
Agente do Foundry existente no servidor foundryprovider.ServerAgent("my-agent") A definição do agente já está configurada na Foundry.

Configuration

Defina o endpoint do projeto Foundry e a implantação do modelo:

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

Agente do Foundry apoiado por Project

Use ModelDeployment quando quiser criar um agente do Agent Framework no código e passar instruções, ferramentas, middleware e provedores de contexto do aplicativo 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()

Agente do Foundry existente no servidor

Use ServerAgent quando quiser invocar um agente já configurado no Foundry. O agente do lado do servidor tem suas próprias instruções e ferramentas, portanto AgentConfig.Instructions é ignorado para este destino.

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

Os agentes do Foundry com respaldo de projeto oferecem suporte à superfície de ferramenta do Agent Framework do Go para ferramentas locais e declarações com suporte de ferramentas hospedadas.

Tool Status Notes
Ferramentas de Funções Supported As funções são executadas no seu processo do Go.
Aprovação da ferramenta Supported Funciona com ferramentas de função locais por meio do loop de chamada automática da ferramenta.
Interpretador de Código Supported Use &hostedtool.CodeInterpreter{}.
Pesquisa na Web Supported Use &hostedtool.WebSearch{}.
Ferramentas MCP locais Supported Use tool/mcptool para se conectar a um servidor MCP e expor suas ferramentas localmente.
Ferramentas MCP hospedadas Atualmente não há documentação para o Go Foundry Use ferramentas MCP locais quando precisar de servidores MCP com agentes do Go Foundry.
Caixa de ferramentas do Microsoft Foundry Atualmente não exposto por um assistente do Go.

Para ferramentas de função local, adicione valores de tool.Tool por meio de 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},
        },
    },
)

Para execução de código hospedado, passe a declaração da ferramenta hospedada:

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

Cabeçalhos do cliente e modelo servido

O Foundry aceita cabeçalhos x-client-* por execução. Adicione-os com foundryprovider.WithClientHeader ou foundryprovider.WithClientHeaders:

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

Quando o Foundry retorna o cabeçalho de resposta x-ms-served-model, o provedor do Go o adiciona às propriedades adicionais de resposta/atualização como ServedModel.

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

Provedor de memória Foundry

Use foundryprovider.NewMemoryProvider quando quiser que um agente do Agent Framework recupere e atualize um repositório de memória gerenciado pelo Foundry em cada execução.

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},
        },
    },
)

O endpoint deve ser um endpoint do Microsoft Foundry com escopo de projeto, e o armazenamento de memória já deve existir nesse projeto. O retorno de chamada de escopo deve retornar uma chave de partição de usuário, locatário ou conversa estável.

Tip

Consulte o exemplo de memória do Foundry em Go para ver um exemplo completo e executável.

Lacunas atuais do Go

Atualmente, o suporte a Go não inclui APIs de implantação, ciclo de vida e administração hospedadas pelo Foundry, clientes de embeddings nem helpers específicos para Go do Microsoft Foundry Toolbox. Use o portal do Foundry ou os SDKs de serviço para essas operações.

Próximas Etapas