Dapr

Het Dapr Conversation-bouwblok routeert modelinferentie via een Dapr-sidecar en biedt een IChatClient dat kan dienen als basis voor een Agent Framework .NET-agent. De modelprovider en inloggegevens worden geconfigureerd in het Dapr Conversation-onderdeel in plaats van rechtstreeks in het agentproces.

Prerequisites

  • .NET 10 of hoger.
  • Docker en de Dapr CLI.
  • Een geconfigureerd Dapr-gespreksonderdeel, zoals een onderdeel met Ollama-ondersteuning.

De pakketten installeren

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

Configuration

DAPR_GRPC_ENDPOINT="http://localhost:3501"

DAPR_GRPC_ENDPOINT is optioneel en wordt standaard ingesteld op http://localhost:3501. Stel ConversationComponentName in de applicatiecode in op de naam van de Dapr Conversation-component, zoals ollama.

Een door Dapr ondersteunde agent maken

Configureer het Dapr-sidecar-eindpunt en gespreksonderdeel via afhankelijkheidsinjectie, los het IChatClientprobleem op en converteer deze naar een 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."));

De mogelijkheden van de provider zijn afhankelijk van het Dapr Conversation-onderdeel en het onderliggende model.

Tools

Ondersteuning voor tools wordt geërfd van het geconfigureerde Dapr Conversation-component en -model.

Tool Status Opmerkingen
Functiehulpmiddelen Varies Hiervoor is ondersteuning vereist voor het aanroepen van functies vanuit het geconfigureerde onderdeel en model.
Goedkeuring van hulpprogramma Varies Beschikbaar wanneer het model functiehulpmiddel aanroept.
Door provider gehoste hulpprogramma's Dapr voegt geen afzonderlijk hosted-tool-oppervlak voor het Agent Framework toe.
Lokale MCP-hulpprogramma's Wordt uitgevoerd in het toepassingsproces.

Volgende stappen