Dapr

Il blocco costitutivo Dapr Conversation instrada l'inferenza del modello tramite un sidecar Dapr ed espone un oggetto IChatClient che può fungere da supporto per un agente .NET di Agent Framework. Il fornitore del modello e le credenziali sono configurati nel componente Dapr Conversation anziché direttamente nel processo agente.

Prerequisites

  • .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

Configura l'endpoint sidecar di Dapr e il componente Conversation tramite l'iniezione delle dipendenze, risolvi il IChatClient e convertilo 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 per gli strumenti viene ereditato dal componente e dal modello Dapr Conversation configurati.

Tool Condizione Notes
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 un'interfaccia separata per gli strumenti ospitati di Agent Framework.
Strumenti MCP locali Viene eseguito nel processo dell'applicazione.

Passaggi successivi