Dapr

Stavební blok konverzace Dapr směruje odvozování modelu prostřednictvím sajdkáru Dapr a zpřístupňuje IChatClient model, který může vrátit agenta .NET agenta. Zprostředkovatel modelu a přihlašovací údaje se konfigurují v komponentě Dapr Conversation, nikoli přímo v procesu agenta.

Předpoklady

  • .NET 10 nebo novější.
  • Docker a Rozhraní příkazového řádku Dapr
  • Nakonfigurovaná komponenta konverzace Dapr, například komponenta s podporou Ollama.

Instalace balíčků

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

Configuration

DAPR_GRPC_ENDPOINT="http://localhost:3501"

DAPR_GRPC_ENDPOINT je nepovinný a výchozí hodnota http://localhost:3501je . Nastavte ConversationComponentName v kódu aplikace název komponenty Dapr Conversation, například ollama.

Vytvoření agenta založeného na dapr

Nakonfigurujte koncový bod sajdkáru Dapr a konverzační komponentu prostřednictvím injektáže závislostí, přeložte IChatClientji a převeďte ji na agenta.

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

Možnosti poskytovatele závisí na komponentě Dapr Conversation a modelu za ním.

Tools

Podpora nástrojů je zděděna z nakonfigurované komponenty a modelu konverzace Dapr.

nástroj Stav Poznámky
Funkční nástroje Varies Vyžaduje podporu volání funkcí z nakonfigurované komponenty a modelu.
Schválení nástroje Varies K dispozici, když model vytváří volání nástrojů funkcí.
Nástroje hostované poskytovatelem Dapr nepřidá samostatnou plochu hostovaného nástroje Agent Framework.
Místní nástroje MCP Spustí se v procesu aplikace.

Další kroky