Provider di modelli

I provider di modelli forniscono il client di inferenza usato da un agente di Agent Framework. L'applicazione è proprietaria della definizione dell'agente, delle istruzioni, degli strumenti, del middleware e dei criteri di sessione, mentre il provider fornisce l'inferenza del modello e le funzionalità ospitate dal provider.

Per i runtime remoti o gestiti che possiedono una definizione, autorizzazioni o esecuzione lato servizio dell'agente, vedere Servizi agente. Per le implementazioni dell'agente framework personalizzato, vedere Agenti personalizzati.

Confronto tra provider

Provider Strumenti per le funzioni Output strutturati Interprete di codice Ricerca file Strumenti MCP Risposte in background
Azure OpenAI
OpenAI
Microsoft Foundry
Anthropic
Ollama
Foundry Local
Roccia amazzonica Variabile
Google Gemini
ONNX
Dapr Variabile Variabile Variabile Variabile Variabile Variabile
Mistral N/A N/A N/A N/A N/A N/A

Importante

Se si usa Microsoft Agent Framework per creare applicazioni che operano con server, agenti, codice o non Azure modelli diretti ("Sistemi di terze parti"), è possibile farlo a proprio rischio. I sistemi di terze parti sono prodotti non Microsoft ai sensi delle condizioni del prodotto Microsoft e sono disciplinati dalle proprie condizioni di licenza di terze parti. L'utente è responsabile di qualsiasi utilizzo e dei costi associati.

È consigliabile esaminare tutti i dati condivisi e ricevuti da sistemi di terze parti e riconoscere le procedure di terze parti per la gestione, la condivisione, la conservazione e la posizione dei dati. È responsabilità dell'utente gestire se i dati verranno trasmessi al di fuori dei confini di conformità e geografici di Azure della propria organizzazione e delle eventuali implicazioni correlate, assicurandosi che vengano fornite le autorizzazioni, i confini e le approvazioni appropriati.

L'utente è responsabile di esaminare e testare attentamente le applicazioni compilate usando Microsoft Agent Framework nel contesto dei casi d'uso specifici e di prendere tutte le decisioni e le personalizzazioni appropriate. Ciò include l'implementazione di mitigazioni di intelligenza artificiale responsabili, ad esempio metaprompt, filtri di contenuto o altri sistemi di sicurezza, e garantire che le applicazioni soddisfino standard di qualità, affidabilità, sicurezza e attendibilità appropriati. Vedere anche: Domande frequenti sulla trasparenza

Provider disponibili

Qualsiasi servizio di inferenza che fornisce un'implementazione Microsoft.Extensions.AI.IChatClient può restituire un oggetto ChatClientAgent.

  • Azure OpenAI: inferenza OpenAI ospitata Azure con supporto delle identità Azure.
  • OpenAI : API di completamento e risposte di chat OpenAI.
  • Microsoft Foundry : inferenza del modello tramite un progetto foundry Microsoft.
  • Anthropic : inferenza del modello Claude tramite Anthropic ed endpoint ospitati supportati.
  • Ollama : inferenza del modello open source locale.
  • Amazon Bedrock - Inferenza del modello di base gestito da AWS.
  • Google Gemini - API gemini developer o inferenza vertex ai.
  • ONNX : inferenza locale del runtime ONNX GenAI.
  • Dapr : inferenza indirizzata attraverso il blocco predefinito dapr Conversation.

Supporto della cronologia delle conversazioni

L'API selezionata determina se il servizio remoto può essere proprietario della cronologia delle conversazioni e se l'agente può invece usare un oggetto in memoria o personalizzato ChatHistoryProvider.

Connessione dell'agente Cronologia gestita dal servizio Cronologia in memoria o personalizzata
Microsoft prompt foundry o agente ospitato
risposte Microsoft Foundry
Risposte di Azure OpenAI
Azure completamento della chat OpenAI
Risposte OpenAI
Completamento della chat OpenAI
Anthropic
Qualsiasi altro IChatClient Variabile Variabile

La disponibilità della cronologia gestita dal servizio può anche dipendere dalle opzioni del servizio selezionate. Per informazioni dettagliate sulla configurazione, vedere la pagina del provider.

Selezione dell'SDK e dell'endpoint

Diversi SDK di .NET possono connettersi a Microsoft Foundry, Azure OpenAI, OpenAI o Anthropic. Scegliere l'SDK corrispondente all'endpoint di servizio e al modello di autenticazione.

Servizio di intelligenza artificiale Client SDK Pacchetti NuGet Endpoint o identificatore
Progetto Microsoft Foundry Progetti di intelligenza artificiale di Azure Azure.AI.Projects, Microsoft.Agents.AI.Foundry https://<resource>.services.ai.azure.com/api/projects/<project>
Microsoft modelli foundry tramite OpenAI v1 OpenAI OpenAI, Microsoft.Agents.AI.OpenAI https://<resource>.services.ai.azure.com/openai/v1/
Azure OpenAI Azure OpenAI Azure.AI.OpenAI, Microsoft.Agents.AI.OpenAI https://<resource>.openai.azure.com/
Azure OpenAI tramite OpenAI v1 OpenAI OpenAI, Microsoft.Agents.AI.OpenAI https://<resource>.openai.azure.com/openai/v1/
OpenAI OpenAI OpenAI, Microsoft.Agents.AI.OpenAI Endpoint OpenAI predefinito
Anthropic in Microsoft Foundry Anthropic Foundry Anthropic.Foundry, Microsoft.Agents.AI.Anthropic Nome della risorsa Foundry
Anthropic Anthropic Anthropic, Microsoft.Agents.AI.Anthropic Endpoint di Anthropic predefinito

Usare la pagina Microsoft Foundry, Azure OpenAI, OpenAI o Anthropic per esempi di costruzione e autenticazione client.

Provider disponibili

Agent Framework Python espone client di chat specifici del provider dietro l'interfaccia dell'agente comune.

Provider disponibili

Go SDK crea uno standard *agent.Agent tramite costruttori specifici del provider.

Provider Package Percorso di importazione
Microsoft Foundry foundryprovider github.com/microsoft/agent-framework-go/provider/foundryprovider
Completamento della chat OpenAI openaiprovider github.com/microsoft/agent-framework-go/provider/openaiprovider
Risposte OpenAI openaiprovider github.com/microsoft/agent-framework-go/provider/openaiprovider
Anthropic anthropicprovider github.com/microsoft/agent-framework-go/provider/anthropicprovider
Google Gemini geminiprovider github.com/microsoft/agent-framework-go/provider/geminiprovider

Ad esempio, creare un agente basato su Foundry da un endpoint di progetto, credenziali e distribuzione del modello:

a := foundryprovider.NewAgent(endpoint, token, foundryprovider.ModelDeployment(model), foundryprovider.AgentConfig{
    Instructions: "You are a helpful assistant.",
    Config: agent.Config{
        Name: "MyAgent",
    },
})

Passaggi successivi