Aufgabenautomatisierung mit Agents
Die meisten KI-Agents rufen heute einfach Daten ab und reagieren auf Benutzerabfragen. KI-Agents können jedoch viel mehr erreichen, indem Sie Plugins verwenden, um Aufgaben im Auftrag von Benutzern zu automatisieren. Auf diese Weise können Benutzer Aufgaben an KI-Agents delegieren und Zeit für wichtigere Arbeit freigeben.
Sobald KI-Agents mit aktionen beginnen, ist es jedoch wichtig, sicherzustellen, dass sie im besten Interesse des Benutzers handeln. Aus diesem Grund stellen wir Hooks / Filter bereit, damit Sie steuern können, welche Aktionen der KI-Agent ausführen kann.
Erfordern der Zustimmung des Benutzers
Wenn ein KI-Agent im Namen eines Benutzers eine Aktion ausführt, sollte er zuerst um die Zustimmung des Benutzers bitten. Dies ist besonders wichtig, wenn die Aktion vertrauliche Daten oder Finanztransaktionen umfasst.
Im semantischen Kernel können Sie den Funktionsaufruffilter verwenden. Dieser Filter wird immer aufgerufen, wenn eine Funktion von einem KI-Agent aufgerufen wird. Um einen Filter zu erstellen, müssen Sie die IFunctionInvocationFilter
Schnittstelle implementieren und dann als Dienst zum Kernel hinzufügen.
Hier ist ein Beispiel für einen Funktionsaufruffilter, der die Zustimmung des Benutzers erfordert:
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);
}
}
Anschließend können Sie den Filter als Dienst zum Kernel hinzufügen:
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)
Java-Beispiel wird in Kürze verfügbar sein.
Wenn der KI-Agent nun versucht, eine Bestellung mithilfe des DynamicsPlugin
Auftrags zu erstellen, wird der Benutzer aufgefordert, die Aktion zu genehmigen.
Tipp
Wenn eine Funktion abgebrochen oder fehlschlägt, sollten Sie dem KI-Agent eine aussagekräftige Fehlermeldung bereitstellen, damit sie entsprechend reagieren kann. Wenn wir beispielsweise den KI-Agenten nicht darüber informiert haben, dass die Auftragserstellung nicht genehmigt wurde, wird davon ausgegangen, dass die Bestellung aufgrund eines technischen Problems fehlgeschlagen ist und versuchen würde, die Bestellung erneut zu erstellen.
Nächste Schritte
Nachdem Sie erfahren haben, wie Sie Agents das Automatisieren von Aufgaben ermöglichen können, erfahren Sie, wie Agents automatisch Pläne erstellen können, um die Benutzeranforderungen zu erfüllen.