Automatizace úloh pomocí agentů
Většina agentů umělé inteligence dnes jednoduše načítá data a reaguje na dotazy uživatelů. Agenti umělé inteligence ale můžou dosáhnout mnohem více pomocí modulů plug-in k automatizaci úloh jménem uživatelů. To umožňuje uživatelům delegovat úlohy na agenty AI a uvolnit tak čas na důležitější práci.
Jakmile ale agenti umělé inteligence začnou provádět akce, je důležité zajistit, aby fungovaly v nejlepším zájmu uživatele. Proto poskytujeme háky nebo filtry, které vám umožní řídit, jaké akce může agent AI provést.
Vyžadování souhlasu uživatele
Když se agent umělé inteligence chystá provést akci jménem uživatele, měl by nejprve požádat o souhlas uživatele. To je zvlášť důležité, pokud akce zahrnuje citlivá data nebo finanční transakce.
V sémantickém jádru můžete použít filtr vyvolání funkce. Tento filtr se vždy volá při každém vyvolání funkce z agenta AI. Pokud chcete vytvořit filtr, musíte implementovat IFunctionInvocationFilter
rozhraní a pak ho přidat jako službu do jádra.
Tady je příklad filtru vyvolání funkce, který vyžaduje souhlas uživatele:
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);
}
}
Potom můžete do jádra přidat filtr jako službu:
IKernelBuilder builder = Kernel.CreateBuilder();
builder.Services.AddSingleton<IFunctionInvocationFilter, ApprovalFilterExample>();
Kernel kernel = builder.Build();
from typing import Any, Coroutine
from semantic_kernel.filters.filter_types import FilterTypes
from semantic_kernel.filters.functions.function_invocation_context import FunctionInvocationContext
from semantic_kernel.functions.function_result import FunctionResult
# The `filter` decorator within kernel, creates and adds the filter in one go.
@kernel.filter(filter_type=FilterTypes.FUNCTION_INVOCATION)
async def approval_filter_example(
context: FunctionInvocationContext, next: Coroutine[FunctionInvocationContext, Any, None]
):
if context.function.plugin_name == "DynamicsPlugin" and context.function.name == "create_order":
should_proceed = input("System > The agent wants to create an approval, do you want to proceed? (Y/N)")
if should_proceed.lower() != "y":
context.result = FunctionResult(
function=context.function.metadata, value="The order creation was not approved by the user"
)
return
await next(context)
Ukázka v Javě bude brzy k dispozici.
Když se teď agent AI pokusí vytvořit objednávku DynamicsPlugin
pomocí příkazu , zobrazí se uživateli výzva ke schválení akce.
Tip
Kdykoli dojde ke zrušení nebo selhání funkce, měli byste agentu umělé inteligence poskytnout smysluplnou chybovou zprávu, aby mohla správně reagovat. Pokud bychom například agentovi AI nedali vědět, že vytvoření objednávky nebylo schváleno, předpokládá se, že objednávka selhala kvůli technickému problému a pokusila by se objednávku vytvořit znovu.
Další kroky
Teď, když jste se dozvěděli, jak povolit agentům automatizovat úlohy, můžete zjistit, jak umožnit agentům automaticky vytvářet plány pro řešení potřeb uživatelů.