Dapr

Blok konstrukcyjny konwersacji Dapr kieruje wnioskowanie modelu za pomocą przyczepki Dapr i uwidacznia elementIChatClient, który może wspierać agenta .NET agenta platformy Agent Framework. Dostawca modelu i poświadczenia są konfigurowane w składniku Konwersacja Dapr, a nie bezpośrednio w procesie agenta.

Wymagania wstępne

  • .NET 10 lub nowszych.
  • Docker i interfejs wiersza polecenia języka Dapr.
  • Skonfigurowany składnik konwersacji Dapr, taki jak składnik oparty na Ollama.

Instalowanie pakietów

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

Configuration

DAPR_GRPC_ENDPOINT="http://localhost:3501"

DAPR_GRPC_ENDPOINT parametr jest opcjonalny i domyślnie ma wartość http://localhost:3501. Ustaw ConversationComponentName w kodzie aplikacji nazwę składnika Dapr Conversation, na przykład ollama.

Tworzenie agenta opartego na języku Dapr

Skonfiguruj punkt końcowy przyczepki dapr i składnik Konwersacja za pomocą wstrzykiwania zależności, rozwiąż element i przekonwertuj IChatClientgo 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żliwości dostawcy zależą od składnika Dapr Conversation i modelu za nim.

Tools

Obsługa narzędzi jest dziedziczona ze skonfigurowanego składnika i modelu konwersacji Dapr.

Narzędzie Status Notatki
Narzędzia funkcji Varies Wymaga obsługi wywoływania funkcji ze skonfigurowanego składnika i modelu.
Zatwierdzanie narzędzi Varies Dostępne, gdy model tworzy wywołania narzędzi funkcji.
Narzędzia hostowane przez dostawcę Język Dapr nie dodaje oddzielnej powierzchni narzędzi hostowanej w strukturze agentów.
Lokalne narzędzia MCP Uruchamia się w procesie aplikacji.

Następne kroki