Dapr

Il blocco predefinito Dapr Conversation instrada l'inferenza del modello tramite un sidecar Dapr ed espone un IChatClient oggetto che può restituire un agente di .NET di Agent Framework. Il provider di modelli e le credenziali sono configurati nel componente Conversazione dapr anziché direttamente nel processo dell'agente.

Prerequisiti

  • .NET 10 o versione successiva.
  • Docker e l'interfaccia della riga di comando di Dapr.
  • Componente di conversazione Dapr configurato, ad esempio un componente supportato da Ollama.

Installare i pacchetti

dotnet add package Dapr.AI.Microsoft.Extensions
dotnet add package Microsoft.Agents.AI --prerelease

Configuration

DAPR_GRPC_ENDPOINT="http://localhost:3501"

DAPR_GRPC_ENDPOINT è facoltativo e il valore predefinito è http://localhost:3501. Impostare ConversationComponentName nel codice dell'applicazione sul nome del componente Dapr Conversation, ad esempio ollama.

Creare un agente supportato daPr

Configurare l'endpoint sidecar Dapr e il componente Conversation tramite l'inserimento delle dipendenze, risolvere e IChatClientconvertirlo in un agente.

// the sidecar (see this sample's README). Override it with the DAPR_GRPC_ENDPOINT environment
// variable if you run the sidecar on a different port.
var daprGrpcEndpoint = Environment.GetEnvironmentVariable("DAPR_GRPC_ENDPOINT") ?? "http://localhost:3501";

// Register the Dapr Conversation client with dependency injection.
var app = Host.CreateDefaultBuilder()
    .ConfigureServices(services =>
    {
        // Configure the gRPC endpoint for the Dapr sidecar.
        services.AddDaprConversationClient((_, builder) => builder.UseGrpcEndpoint(daprGrpcEndpoint));
        // Provide the name of the Conversation component loaded in the sidecar to use.
        services.AddDaprChatClient(opt => opt.ConversationComponentName = "ollama");
    }).Build();

// Get an instance of the Dapr chat client from the dependency injection container.
using var scope = app.Services.CreateScope();
var daprChatClient = scope.ServiceProvider.GetRequiredService<IChatClient>();

// Use this chat client to construct an AIAgent.
AIAgent agent = daprChatClient.AsAIAgent(instructions: "You are good at telling jokes.", name: "Joker");

// Invoke the agent and output the text result.
Console.WriteLine(await agent.RunAsync("Tell me a joke about a pirate."));

Le funzionalità del provider dipendono dal componente Dapr Conversation e dal modello sottostante.

Tools

Il supporto degli strumenti viene ereditato dal componente e dal modello di conversazione Dapr configurati.

Strumento Condizione Note
Strumenti per le funzioni Variabile Richiede il supporto per le chiamate di funzione dal componente e dal modello configurati.
Approvazione degli strumenti Variabile Disponibile quando il modello produce chiamate a strumenti di funzione.
Strumenti ospitati dal provider Dapr non aggiunge una superficie separata degli strumenti hosted-tool di Agent Framework.
Strumenti MCP locali Viene eseguito nel processo dell'applicazione.

Passaggi successivi