Partager via


Automatisation des tâches avec des agents

La plupart des agents IA récupèrent aujourd’hui simplement des données et répondent aux requêtes utilisateur. Toutefois, les agents IA peuvent obtenir beaucoup plus en utilisant des plug-ins pour automatiser les tâches au nom des utilisateurs. Cela permet aux utilisateurs de déléguer des tâches à des agents IA, en libérant du temps pour un travail plus important.

Une fois que les agents IA commencent à effectuer des actions, il est important de s’assurer qu’ils agissent dans le meilleur intérêt de l’utilisateur. C’est pourquoi nous fournissons des hooks / filtres pour vous permettre de contrôler les actions que l’agent IA peut entreprendre.

Lorsqu’un agent IA est sur le point d’effectuer une action pour le compte d’un utilisateur, il doit d’abord demander le consentement de l’utilisateur. Cela est particulièrement important lorsque l’action implique des données sensibles ou des transactions financières.

Dans le noyau sémantique, vous pouvez utiliser le filtre d’appel de fonction. Ce filtre est toujours appelé chaque fois qu’une fonction est appelée à partir d’un agent IA. Pour créer un filtre, vous devez implémenter l’interface IFunctionInvocationFilter , puis l’ajouter en tant que service au noyau.

Voici un exemple de filtre d’appel de fonction qui nécessite le consentement de l’utilisateur :

public class ApprovalFilterExample() : IFunctionInvocationFilter
{
    public async Task OnFunctionInvocationAsync(FunctionInvocationContext context, Func<FunctionInvocationContext, Task> next)
    {
        if (context.Function.PluginName == "DynamicsPlugin" && context.Function.Name == "create_order")
        {
            Console.WriteLine("System > The agent wants to create an approval, do you want to proceed? (Y/N)");
            string shouldProceed = Console.ReadLine()!;

            if (shouldProceed != "Y")
            {
                context.Result = new FunctionResult(context.Result, "The order creation was not approved by the user");
                return;
            }
            
            await next(context);
        }
    }
}

Vous pouvez ensuite ajouter le filtre en tant que service au noyau :

IKernelBuilder builder = Kernel.CreateBuilder();
builder.Services.AddSingleton<IFunctionInvocationFilter, ApprovalFilterExample>();
Kernel kernel = builder.Build();

À présent, chaque fois que l’agent IA tente de créer une commande à l’aide du DynamicsPlugin, l’utilisateur sera invité à approuver l’action.

Conseil

Chaque fois qu’une fonction est annulée ou échoue, vous devez fournir à l’agent IA un message d’erreur significatif afin qu’il puisse répondre de manière appropriée. Par exemple, si nous n’avons pas laissé l’agent IA savoir que la création de commande n’a pas été approuvée, il suppose que l’ordre a échoué en raison d’un problème technique et tenterait de recréer la commande.

Étapes suivantes

Maintenant que vous avez appris à autoriser les agents à automatiser les tâches, vous pouvez apprendre à autoriser les agents à créer automatiquement des plans pour répondre aux besoins des utilisateurs.