Szemantikus kernelügynök összehangolása

Fontos

Az Ügynök-keretrendszer ügynök-vezénylési funkciói a kísérleti fázisban vannak. Aktív fejlesztés alatt állnak, és jelentősen változhatnak, mielőtt továbblépnének az előzetes verzióra vagy a kiadásra jelölt fázisra.

A Szemantic Kernel Ügynök-vezénylési keretrendszere lehetővé teszi a fejlesztők számára összetett ügynök-munkafolyamatok egyszerű létrehozását, kezelését és skálázását.

Miért érdemes többügynökös koordinációja?

A hagyományos együgynök rendszerek korlátozottan képesek összetett, többtényezős feladatok kezelésére. Több ügynök vezénylésével, amelyek mindegyike speciális képességekkel vagy szerepkörökkel bír, olyan rendszereket hozhatunk létre, amelyek robusztusabbak, adaptívabbak, és képesek a valós problémák közös megoldására. A Szemantikus Kernelben a többügynökök vezénylése rugalmas alapot biztosít az ilyen rendszerek létrehozásához, számos koordinációs mintát támogatva.

Orchestrációs minták

A jól ismert felhőtervezési mintákhoz hasonlóan az ügynök-vezénylési minták is technológiai agnosztikus megközelítések, amelyek több ügynök koordinálására szolgálnak egy közös cél érdekében. Ha többet szeretne megtudni magukról a mintákról, tekintse meg az AI-ügynökök vezénylési mintáinak dokumentációját .

Támogatott vezénylési minták a Szemantikus Kernelben

A Szemantikus Kernel ezen vezénylési minták közvetlenül az SDK-ban való implementálásával támogatja Önt. Ezek a minták a keretrendszer részeként érhetők el, és egyszerűen bővíthetők vagy testre szabhatók, hogy az ügynök együttműködési forgatókönyvét hangolhassa.

Minta Leírás Tipikus használati eset
Egyidejű Egy feladatot minden ügynöknek továbbít, és egymástól függetlenül gyűjti az eredményeket. Párhuzamos elemzés, független altevékenységek, együttes döntéshozatal.
szekvenciális Egy adott sorrendben adja át az egyik ügynök eredményét a következőnek. Lépésről-lépésre munkafolyamatok, csővezetékek, többfázisú feldolgozás.
Átadás Dinamikusan továbbítja az irányítást az ügynökök között a környezet vagy szabályok alapján. Dinamikus munkafolyamatok, eszkaláció, tartalék vagy szakértői átadási forgatókönyvek.
Csoportos beszélgetés Minden ügynök részt vesz egy csoportbeszélgetésben, amelyet egy csoportmenedzser koordinál. Ötletgyűjtés, együttműködésen alapuló problémamegoldás, konszenzusépítés.
Magentic Csoportos csevegéshez hasonló szervezés, amelyet a MagenticOne ihletett. Összetett, általános, többügynökön átívelő együttműködés.

Egyszerűség és fejlesztőbarát

Minden vezénylési minták egységes felületet biztosítanak a konstruáláshoz és a meghíváshoz. Függetlenül attól, hogy melyik vezénylést választja, az alábbiak érvényesek:

  • Az ügynökök és képességeik meghatározása: Szemantikus kernelügynökök.
  • Vezénylés létrehozása az ügynökök (és szükség esetén a vezető) hozzáadásával.
  • Igény szerint visszahívásokat vagy átalakításokat is megadhat egyéni bemeneti/kimeneti kezeléshez.
  • Indítsa el a futtatókörnyezetet, és hívja meg a vezénylést egy feladattal.
  • Várjon az eredményre konzisztens, aszinkron módon.

Ez az egységes megközelítés azt jelenti, hogy egyszerűen válthat a vezénylési minták között új API-k elsajátítása vagy az ügynöklogika újraírása nélkül. A keretrendszer elvonja az ügynökkommunikáció, a koordináció és az eredményösszesítés összetettségét, így az alkalmazás céljaira összpontosíthat.

// Choose an orchestration pattern with your agents
SequentialOrchestration orchestration = new(agentA, agentB)
{
    LoggerFactory = this.LoggerFactory
};  // or ConcurrentOrchestration, GroupChatOrchestration, HandoffOrchestration, MagenticOrchestration, ...

// Start the runtime
InProcessRuntime runtime = new();
await runtime.StartAsync();

// Invoke the orchestration and get the result
OrchestrationResult<string> result = await orchestration.InvokeAsync(task, runtime);
string text = await result.GetValueAsync();

await runtime.RunUntilIdleAsync();
# Choose an orchestration pattern with your agents
orchestration = SequentialOrchestration(members=[agent_a, agent_b])
# or ConcurrentOrchestration, GroupChatOrchestration, HandoffOrchestration, MagenticOrchestration, ...

# Start the runtime
runtime = InProcessRuntime()
runtime.start()

# Invoke the orchestration
result = await orchestration.invoke(task="Your task here", runtime=runtime)

# Get the result
final_output = await result.get()

await runtime.stop_when_idle()

Megjegyzés:

Az ügynök-vezénylés még nem érhető el a Java SDK-ban.

A fejlesztési környezet előkészítése

A folytatás előtt adja hozzá a következő csomagokat a projekthez:

dotnet add package Microsoft.SemanticKernel.Agents.Orchestration --prerelease
dotnet add package Microsoft.SemanticKernel.Agents.Runtime.InProcess --prerelease

A használt ügynöktípusoktól függően előfordulhat, hogy hozzá kell adnia az ügynökök megfelelő csomagjait is. További részletekért tekintse meg az Ügynökök áttekintését .

Következő lépések