Dapr

De bouwsteen voor dapr-gesprekken routeert modeldeductie via een Dapr-sidecar en toont een IChatClient model dat een Agent Framework .NET agent kan terugzetten. De modelprovider en referenties worden geconfigureerd in het Dapr-gespreksonderdeel 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 de toepassingscode in op de naam van het dapr-gespreksonderdeel, 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."));

Providermogelijkheden zijn afhankelijk van het dapr-gespreksonderdeel en het model erachter.

Gereedschappen

De ondersteuning van hulpprogramma's wordt overgenomen van het geconfigureerde Dapr-gespreksonderdeel en -model.

Tool Status Aantekeningen
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 agentframework toe waarop het hulpprogramma wordt gehost.
Lokale MCP-hulpprogramma's Wordt uitgevoerd in het toepassingsproces.

Volgende stappen