Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ez a cikk az ügynök-keretrendszer architektúrájának legfontosabb fogalmait ismerteti, beleértve az alapvető alapelveket, a tervezési célkitűzéseket és a stratégiai célokat.
Célok
A Agent Framework fejlesztés a következő fő prioritásokat szem előtt tartva történt:
- A Szemantic Kernel-ügynök keretrendszer az ügynökfunkciók implementálásának alapvető alapja.
- A különböző típusú ügynökök egyetlen beszélgetésen belül együttműködhetnek, és mindegyik hozzájárul az egyedi képességeikhez, miközben integrálja az emberi bemenetet.
- Az ügynökök egyszerre több egyidejű beszélgetést is kezdeményezhetnek és kezelhetnek.
Ügynök
Az absztrakt Agent osztály az összes ügynöktípus alapvető absztrakciójaként szolgál, és olyan alapszintű struktúrát biztosít, amely kiterjeszthető a specializáltabb ügynökök létrehozásához. Ez az alaposztály képezi az alapul a konkrétabb ügynök-implementációkhoz, amelyek mindegyike a Kernel képességeit használja a saját függvényeik végrehajtásához. Tekintse meg az összes elérhető ügynöktípust az Ügynöktípusok szakaszban.
Az alapul szolgáló szemantikus kernel Agent absztrakciója itt található.
Az alapul szolgáló szemantikus kernel Agent absztrakciója itt található.
Az ügynökök közvetlenül meghívhatók feladatok végrehajtására, vagy különböző mintákkal vezénylhetők. Ez a rugalmas struktúra lehetővé teszi az ügynökök számára, hogy alkalmazkodjanak a különböző beszélgetési vagy feladatalapú forgatókönyvekhez, és robusztus eszközöket biztosítanak a fejlesztőknek intelligens, többügynökökből álló rendszerek létrehozásához.
Ügynöktípusok a Szemantikus Kernelben
Ügynökszál
Az absztrakt AgentThread osztály a szálak vagy beszélgetések állapotának alapvető absztrakciójaként szolgál. Különböző ügynökök esetében a beszélgetési állapotok kezelésének különböző módjait egyszerűsíti le.
Az állapotalapú ügynökszolgáltatások gyakran tárolják a beszélgetés állapotát a szolgáltatásban, és egy azonosítón keresztül kezelhetik. Más ügynökök megkövetelhetik a teljes csevegési előzmények átadását az ügynöknek minden egyes meghíváskor, amely esetben a beszélgetési állapot helyileg van kezelve az alkalmazásban.
Az állapotalapú ügynökök általában csak egy megfelelő AgentThread implementációval működnek, míg más típusú ügynökök többféle AgentThread típussal is dolgozhatnak. Például AzureAIAgent esetén szükség van a AzureAIAgentThread egyezésére. Ennek az az oka, hogy az Azure AI-ügynök szolgáltatás a szolgáltatásban tárolja a beszélgetéseket, és meghatározott szolgáltatáshívásokat igényel egy szál létrehozásához és frissítéséhez. Ha az AzureAIAgent használatával másik ügynökszáltípust alkalmazunk, gyorsan leállítjuk a rendszert a váratlan száltípus miatt, és kivételt dobunk, hogy értesítsük a hívót.
Ágens koordinációja
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.
Megjegyzés:
Ha Ön az AgentGroupChat orchestration sablont használta, vegye figyelembe, hogy már nincs karbantartva. Javasoljuk a fejlesztőknek, hogy használják az új GroupChatOrchestration mintát. A migrálási útmutató itt érhető el.
A Szemantikus Kernel ügynök-vezénylési keretrendszere lehetővé teszi több ügynök koordinálását összetett feladatok közös megoldásához. Rugalmas struktúrát biztosít az ügynökök interakciójának, az információk megosztásának és a felelősségek delegálásának módjának meghatározásához. Az alapvető összetevők és fogalmak a következők:
- Vezénylési minták: Az olyan előre elkészített minták, mint az Egyidejű, a Szekvenciális, a Handoff, a Csoportos csevegés és a Magentic, lehetővé teszik a fejlesztők számára, hogy a forgatókönyvükhöz legmegfelelőbb együttműködési modellt válasszák. Minden minta eltérő módon határozza meg az ügynökök kommunikációját és a feladatok feldolgozását (a részletekért tekintse meg az Orchestration patterns táblát).
- Adatátalakítás logikája: A bemeneti és kimeneti átalakítások lehetővé teszik a vezénylési folyamatok számára az adatok ügynökök és külső rendszerek közötti adaptálását, ami egyszerű és összetett adattípusokat is támogat.
- Emberi közreműködés: Egyes minták támogatják az emberi közreműködést, ami lehetővé teszi az emberi szereplők számára, hogy részt vegyenek az irányítási folyamatban. Ez különösen akkor hasznos, ha emberi megítélésre vagy szakértelemre van szükség.
Ez az architektúra lehetővé teszi a fejlesztők számára, hogy intelligens, többügynökökkel működő rendszereket építsenek ki, amelyek az együttműködés, a specializáció és a dinamikus koordináció révén képesek kezelni a valós problémákat.
Ügynök összehangolása szemantikai kernel funkciókkal
A Agent Framework rendszer azokra az alapfogalmakra és funkciókra épül, amelyeket sok fejlesztő megismert a Szemantikus Kernel ökoszisztémában. Ezek az alapvető alapelvek szolgálnak az Ügynök-keretrendszer kialakításának építőelemeiként. A szemantikus kernel ismert szerkezetének és képességeinek kihasználásával az Ügynök-keretrendszer kibővíti funkcióit, hogy fejlettebb, autonómabb ügynökviselkedéseket biztosítson, miközben fenntartja a konzisztenciát a szélesebb szemantikus kernelarchitektúrával. Ez zökkenőmentes átmenetet biztosít a fejlesztők számára, lehetővé téve számukra, hogy meglévő tudásukat intelligens, adaptálható ügynökök létrehozására alkalmazzák a keretrendszeren belül.
Beépülő modulok és függvényhívások
A beépülő modulok a Szemantikus Kernel alapvető elemei, amelyek lehetővé teszik a fejlesztők számára az egyéni funkciók integrálását és az AI-alkalmazások képességeinek kiterjesztését. Ezek a beépülő modulok rugalmas módot kínálnak arra, hogy speciális funkciókat vagy üzleti logikát építsenek be az alapvető AI-munkafolyamatokba. Emellett a keretrendszeren belüli ügynökképességek jelentősen bővíthetők beépülő modulok használatával és a függvényhívások használatával. Ez lehetővé teszi az ügynökök számára, hogy dinamikusan kommunikáljanak a külső szolgáltatásokkal, vagy összetett feladatokat hajtsanak végre, tovább bővítve az AI-rendszer hatókörét és sokoldalúságát a különböző alkalmazásokban.
Itt megtudhatja, hogyan konfigurálhatja az ügynököket beépülő modulok használatára.
Ügynöküzenetek
Az ügynöküzenetek, beleértve a bemenetet és a választ is, a Szemantikus Kernel alapvető tartalomtípusaira épülnek, és egységes struktúrát biztosítanak a kommunikációhoz. Ez a kialakítási választás leegyszerűsíti a hagyományos csevegés-befejezési mintákról a fejlettebb ügynökalapú mintákra való áttérés folyamatát az alkalmazásfejlesztésben. A jól ismert Szemantikus Kernel-tartalomtípusok használatával a fejlesztők zökkenőmentesen integrálhatják az ügynök képességeit az alkalmazásukba anélkül, hogy át kellene alakítaniuk a meglévő rendszereket. Ez a egyszerűsítés biztosítja, hogy az alapszintű beszélgetési AI-ről az autonómabb, feladatorientáltabb ügynökökre való fejlődés során a mögöttes keretrendszer konzisztens maradjon, így a fejlesztés gyorsabb és hatékonyabb lesz.
Jótanács
API-referencia:
Jótanács
API-referencia:
Sablonkészítés
Az ügynök szerepkörét elsősorban a kapott utasítások határozzák meg, amelyek meghatározzák a viselkedését és a műveleteit. A parancssorhoz Kernelhasonlóan az ügynök utasításai olyan sablonalapú paramétereket is tartalmazhatnak – értékeket és függvényeket egyaránt –, amelyek dinamikusan helyettesíthetők a végrehajtás során. Ez lehetővé teszi a rugalmas, környezettudatos válaszokat, így az ügynök valós idejű bemenet alapján módosíthatja a kimenetét.
Emellett az ügynök közvetlenül konfigurálható parancssori sablonkonfigurációval, így a fejlesztők strukturált és újrafelhasználható módon határozhatják meg a viselkedését. Ez a megközelítés hatékony eszközt kínál az ügynökutasítások szabványosításához és testreszabásához, biztosítva a különböző használati esetek konzisztenciáját, miközben továbbra is dinamikus alkalmazkodóképességet biztosít.
Itt tudhat meg többet arról, hogyan hozhat létre ügynököt Szemantikus Kernel-sablonnal.
Deklaratív specifikáció
Hamarosan megjelenik a deklaratív specifikációk használatára vonatkozó dokumentáció.
Fontos
Ez a funkció a kísérleti fázisban van. Az ebben a szakaszban található funkciók fejlesztés alatt állnak, és változhatnak, mielőtt továbblépnek az előzetes verzióra vagy a kiadásra jelölt fázisra.
Egyéni ügynöktípusok regisztrálása
Ha egyéni ügynököt szeretne használni a deklaratív YAML-specifikációs rendszerrel, először regisztrálnia kell az ügynökosztályt az ügynökregisztrációs adatbázisban. Erre azért van szükség, hogy az AgentRegistry felismerje és felépítse az ügynököt, amikor a type: mezőt elemzik a YAML-specifikációban.
Egyéni ügynöktípus regisztrálásához használja a @register_agent_type dekorátort.
from semantic_kernel.agents import register_agent_type, Agent, DeclarativeSpecMixin
@register_agent_type("custom_agent")
class CustomAgent(DeclarativeSpecMixin, Agent):
...
A dekorátornak megadott sztringnek (például "custom_agent") meg kell egyeznie a YAML-specifikációban szereplő típus: mezővel.
A regisztráció után az egyéni ügynök példányosítható a deklaratív mintával, például a következőn keresztül AgentRegistry.create_from_yaml(...).
A DeclarativeSpecMixin támogatja az olyan módszereket, mint a from_yaml, from_dict és resolve_placeholders, amelyek lehetővé teszik, hogy az ügynök YAML-ből vagy szótár-specifikációból épüljön fel.
@classmethod
async def from_yaml(cls, yaml_str: str, *, kernel=None, plugins=None, prompt_template_config=None, settings=None, extras=None, **kwargs):
# Resolves placeholders and loads YAML, then delegates to from_dict.
...
@classmethod
async def from_dict(cls, data: dict, *, kernel=None, plugins=None, prompt_template_config=None, settings=None, **kwargs):
# Normalizes and passes spec fields to _from_dict.
...
@classmethod
@abstractmethod
async def _from_dict(cls, data: dict, *, kernel, prompt_template_config=None, **kwargs):
# Subclasses implement this to create the agent from a dict.
...
@classmethod
def resolve_placeholders(cls, yaml_str: str, settings=None, extras=None) -> str:
# Optional: override this to customize how environment or runtime placeholders are resolved in YAML.
return yaml_str
Jótanács
Minden személyre szabott ügynöknek a DeclarativeSpecMixin-től kell származnia a YAML-alapú konstrukció engedélyezéséhez, és a beállításjegyzékben kell regisztrálnia a @register_agent_type használatával.
Ez a funkció nem érhető el.