Taakautomatisering met agents
De meeste AI-agents halen tegenwoordig gewoon gegevens op en reageren op gebruikersquery's. AI-agents kunnen echter veel meer bereiken door invoegtoepassingen te gebruiken om taken namens gebruikers te automatiseren. Hierdoor kunnen gebruikers taken delegeren aan AI-agents, waardoor tijd vrij is voor belangrijker werk.
Zodra AI-agents acties gaan uitvoeren, is het echter belangrijk om ervoor te zorgen dat ze handelen in het belang van de gebruiker. Daarom bieden we hooks/filters waarmee u kunt bepalen welke acties de AI-agent kan uitvoeren.
Gebruikerstoestemming vereisen
Wanneer een AI-agent een actie namens een gebruiker gaat uitvoeren, moet deze eerst om toestemming van de gebruiker vragen. Dit is vooral belangrijk wanneer de actie gevoelige gegevens of financiƫle transacties omvat.
In Semantic Kernel kunt u het functie-aanroepfilter gebruiken. Dit filter wordt altijd aangeroepen wanneer een functie wordt aangeroepen vanuit een AI-agent. Als u een filter wilt maken, moet u de IFunctionInvocationFilter
interface implementeren en deze vervolgens toevoegen als een service aan de kernel.
Hier volgt een voorbeeld van een functieaanroepfilter waarvoor gebruikerstoestemming is vereist:
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);
}
}
}
Vervolgens kunt u het filter als een service toevoegen aan de kernel:
IKernelBuilder builder = Kernel.CreateBuilder();
builder.Services.AddSingleton<IFunctionInvocationFilter, ApprovalFilterExample>();
Kernel kernel = builder.Build();
Wanneer de AI-agent nu probeert een bestelling te maken met behulp van de DynamicsPlugin
agent, wordt de gebruiker gevraagd de actie goed te keuren.
Tip
Wanneer een functie wordt geannuleerd of mislukt, moet u de AI-agent een zinvol foutbericht geven, zodat deze op de juiste manier kan reageren. Als we de AI-agent bijvoorbeeld niet hebben laten weten dat het maken van de order niet is goedgekeurd, wordt ervan uitgegaan dat de order is mislukt vanwege een technisch probleem en opnieuw probeert de bestelling te maken.
Volgende stappen
Nu u hebt geleerd hoe u agents toestaat om taken te automatiseren, kunt u leren hoe agents automatisch plannen kunnen maken om tegemoet te komen aan de behoeften van gebruikers.