Dapr

Сборка блочных блоков Dapr Conversation направляет модель вывода через боковую панель Dapr и предоставляет IChatClient возможность резервного копирования агента .NET агента. Поставщик модели и учетные данные настраиваются в компоненте Dapr Conversation, а не непосредственно в процессе агента.

Необходимые условия

  • .NET 10 или более поздней версии.
  • Docker и Dapr CLI.
  • Настроенный компонент Dapr Conversation, например компонент Ollama, поддерживаемый.

Установка пакетов

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

Configuration

DAPR_GRPC_ENDPOINT="http://localhost:3501"

DAPR_GRPC_ENDPOINT является необязательным и по умолчанию имеет значение http://localhost:3501. Задайте ConversationComponentName в коде приложения имя компонента Dapr Conversation, например ollama.

Создание агента с поддержкой Dapr

Настройте конечную точку и компонент беседы Dapr с помощью внедрения зависимостей, устраните IChatClientего и преобразуйте его в агент.

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

Возможности поставщика зависят от компонента Dapr Conversation и модели, лежащей в ее основе.

Tools

Поддержка инструментов наследуется от настроенного компонента и модели Dapr Conversation.

инструмент Статус Примечания
Средства функций Меняется Требуется поддержка вызовов функций из настроенного компонента и модели.
Утверждение инструмента Меняется Доступно, когда модель создает вызовы средства-функции.
Средства, размещенные у поставщика Dapr не добавляет отдельную область инструментов, размещенную в агенте.
Локальные средства MCP Выполняется в процессе приложения.

Дальнейшие действия