Dapr

Blok pembangun Percakapan Dapr merutekan inferensi model melalui sidecar Dapr dan mengekspos IChatClient yang dapat mendukung agen Agent Framework .NET. Penyedia model dan kredensial dikonfigurasi dalam komponen Percakapan Dapr daripada langsung dalam proses agen.

Prasyarat

  • .NET 10 atau yang lebih baru.
  • Docker dan Dapr CLI.
  • Komponen Percakapan Dapr yang dikonfigurasi, seperti komponen yang didukung Ollama.

Instal paket-paket tersebut

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

Configuration

DAPR_GRPC_ENDPOINT="http://localhost:3501"

DAPR_GRPC_ENDPOINT bersifat opsional dan bernilai default ke http://localhost:3501. Atur ConversationComponentName dalam kode aplikasi ke nama komponen Percakapan Dapr, seperti ollama.

Membuat agen yang didukung Dapr

Konfigurasikan titik akhir sidecar Dapr dan komponen Percakapan melalui injeksi dependensi, atasi IChatClient, dan konversikan ke agen.

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

Kemampuan penyedia bergantung pada komponen Percakapan Dapr dan model di belakangnya.

Tools

Dukungan alat diwariskan dari komponen dan model Percakapan Dapr yang dikonfigurasi.

Alat Status Notes
Peralatan Fungsional Beragam Memerlukan dukungan panggilan fungsi dari komponen dan model yang dikonfigurasi.
Persetujuan Alat Beragam Tersedia saat model menghasilkan panggilan alat fungsi.
Alat yang dihosting penyedia Dapr tidak menambahkan permukaan alat yang dihosting Agent Framework terpisah.
Alat MCP Lokal Berjalan dalam proses aplikasi.

Langkah berikutnya