Partilhar via


Automação de tarefas com agentes

Atualmente, a maioria dos agentes de IA simplesmente recupera dados e responde às consultas dos usuários. Os agentes de IA, no entanto, podem conseguir muito mais usando plugins para automatizar tarefas em nome dos usuários. Isso permite que os usuários deleguem tarefas a agentes de IA, liberando tempo para trabalhos mais importantes.

Uma vez que os agentes de IA começam a executar ações, no entanto, é importante garantir que eles estão agindo no melhor interesse do usuário. É por isso que fornecemos ganchos / filtros para permitir que você controle quais ações o agente de IA pode tomar.

Quando um agente de IA está prestes a executar uma ação em nome de um usuário, ele deve primeiro pedir o consentimento do usuário. Isso é especialmente importante quando a ação envolve dados confidenciais ou transações financeiras.

No Kernel Semântico, você pode usar o filtro de invocação de função. Esse filtro é sempre chamado sempre que uma função é invocada de um agente de IA. Para criar um filtro, você precisa implementar a IFunctionInvocationFilter interface e, em seguida, adicioná-lo como um serviço ao kernel.

Aqui está um exemplo de um filtro de invocação de função que requer o consentimento do usuário:

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);
        }
    }
}

Em seguida, você pode adicionar o filtro como um serviço ao kernel:

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

Agora, sempre que o agente de IA tentar criar um pedido usando o DynamicsPlugin, o usuário será solicitado a aprovar a ação.

Gorjeta

Sempre que uma função é cancelada ou falha, você deve fornecer ao agente de IA uma mensagem de erro significativa para que ele possa responder adequadamente. Por exemplo, se não informássemos o agente de IA de que a criação do pedido não foi aprovada, ele assumiria que o pedido falhou devido a um problema técnico e tentaria criar o pedido novamente.

Próximos passos

Agora que você aprendeu como permitir que os agentes automatizem tarefas, você pode aprender como permitir que os agentes criem planos automaticamente para atender às necessidades do usuário.