Dapr

Le bloc de construction Dapr Conversation achemine l’inférence du modèle par le biais d’un side-car Dapr et expose un IChatClient agent qui peut sauvegarder un agent Agent Framework .NET. Le fournisseur de modèles et les informations d’identification sont configurés dans le composant Conversation Dapr plutôt que directement dans le processus de l’agent.

Prerequisites

  • .NET 10 ou version ultérieure.
  • Docker et l’interface CLI Dapr.
  • Composant Dapr Conversation configuré, tel qu’un composant soutenu par Ollama.

Installer les packages

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

Configuration

DAPR_GRPC_ENDPOINT="http://localhost:3501"

DAPR_GRPC_ENDPOINT est facultatif et est défini par défaut sur http://localhost:3501. Définissez ConversationComponentName dans le code de l’application le nom du composant Conversation Dapr, par ollamaexemple .

Créer un agent dapr-backed

Configurez le point de terminaison side-car Dapr et le composant Conversation via l’injection de dépendances, résolvez-le IChatClientet convertissez-le en agent.

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

Les fonctionnalités du fournisseur dépendent du composant Conversation Dapr et du modèle derrière celui-ci.

Tools

La prise en charge de l’outil est héritée du composant et du modèle Dapr Conversation configurés.

Tool Status Notes
Outils de fonction Varie Nécessite la prise en charge des appels de fonction à partir du composant et du modèle configurés.
Approbation de l’outil Varie Disponible lorsque le modèle produit des appels d’outil de fonction.
Outils hébergés par un fournisseur Dapr n’ajoute pas d’aire d’outil hébergée par Agent Framework distincte.
Outils MCP locaux S’exécute dans le processus d’application.

Étapes suivantes