Dapr

La inferencia del modelo de rutas del bloque de creación de conversaciones de Dapr a través de un sidecar de Dapr y expone un IChatClient que puede respaldar un agente de .NET Agent Framework. El proveedor de modelos y las credenciales se configuran en el componente Conversación de Dapr en lugar de directamente en el proceso del agente.

Prerequisites

  • .NET 10 o posterior.
  • Docker y la CLI de Dapr.
  • Un componente de conversación dapr configurado, como un componente respaldado por Ollama.

Instalación de los paquetes

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

Configuration

DAPR_GRPC_ENDPOINT="http://localhost:3501"

DAPR_GRPC_ENDPOINT es opcional y el valor predeterminado es http://localhost:3501. Establezca ConversationComponentName en el código de aplicación en el nombre del componente De conversación de Dapr, como ollama.

Creación de un agente respaldado por Dapr

Configure el punto de conexión sidecar de Dapr y el componente Conversation a través de la inserción de dependencias, resuelva y IChatClientconviértelo en un agente.

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

Las funcionalidades del proveedor dependen del componente De conversación de Dapr y del modelo subyacente.

Tools

La compatibilidad con herramientas se hereda del componente y el modelo configurados de La conversación de Dapr.

Herramienta Situación Notas
Herramientas de funciones Varía Requiere compatibilidad con llamadas a funciones desde el componente y el modelo configurados.
Aprobación de herramientas Varía Disponible cuando el modelo genera llamadas a function-tool.
Herramientas hospedadas por el proveedor Dapr no agrega una superficie independiente de herramientas hospedada de Agent Framework.
Herramientas de MCP locales Se ejecuta en el proceso de aplicación.

Pasos siguientes