Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Generativní orchestrace také podporuje multiagentní systémy, kde jeden agent volá jiné agenty. Když rozdělíte problémy mezi několik specializovaných agentů, učiníte svou aplikaci modulárnější, škálovatelnější a lépe spravovatelnou.
Vložení agenti
Vložení agenti, označovaní také jako podřízení agenti, jsou malé, opětovně použitelné pracovní postupy v rámci téhož agenta. Často jsou to jen témata, která hlavní agent používá jako podprogramy. Například hlavní agent může vyhlásit téma "Překlad textu" jako jeden krok v rámci většího plánu. Inline agenti sdílejí kontext s hlavním agentem, takže předávání dat mezi nimi je jednoduché.
Osvědčený postup: Udržujte inline agenty zaměřené na jedinou úlohu a důkladně je testujte.
Připojení agenti
Propojení agenti jsou samostatní agenti s vlastní orchestrací, nástroji a znalostmi. Hlavní agent deleguje část požadavku na podřízeného agenta. Například it agent volá agenta prodeje, aby získal informace o cenách. Připojení agenti umožňují modularitu a oddělení domén a můžou obejít limity plánů. Mohou mít jiné privilegia nebo znalosti, proto aplikujte kontrolu řízení a auditu.
Používání propojených agentů však vyžaduje pečlivou správu:
Orchestrace: Mateřský orchestrátor by měl mít jasná kritéria, kdy předat úkol připojenému agentovi. Orchestrátor obvykle předává řízení v případě, že záměr uživatele odpovídá doméně připojeného agenta. Pro podporu tohoto procesu jasně popište účel připojeného agenta v konfiguraci rodiče. Celého propojeného agenta chápejte jako agentský „nástroj“ s popisem, z pohledu nadřízeného agenta.
Předání dat: Musíte spravovat předávání dat. Určete, jaký kontext od rodiče bude předán připojenému agentovi. Propojený agent má nastavení pro zahrnutí kontextu, které ovládá, zda obdrží historii konverzace, takže toto nastavení potvrďte místo toho, abyste předpokládali, že historie je předána automaticky. Naopak podřízený agent vždy přijímá kontext nadřazeného. Možná budete muset také předat konkrétní parametry. Například pokud hlavní agent už zná jméno uživatele z dřívějška, může ho poslat připojenému agentovi, aby se vyhnul dalším dotazům.
Bezpečnost: Připojený agent může mít přístup k věcem, které mateřský agent nemá. Ujistěte se, že volání připojenému agentovi nezáměrně neobchází omezení. Například pokud nadřazený agent nesmí mazat záznamy, ale propojený agent ano, neměl by v situacích, kdy by mohlo dojít k odstranění bez řádného schválení, volat spojeného agenta. Přistupujte k hovoru s připojeným agentem jako k jakékoli jiné silné akci. Pokud to dělá něco citlivého, podrobte to potřebným kontrolám nebo souhlasu uživatele.
Audit a monitorování: Zaznamenejte, kdy byl aktivován připojený agent a co dělal. Jelikož jde o samostatného agenta, máte k dispozici samostatné přepisy. Je důležité pro ladění korelovat nadřazeného agenta a propojené relace. Obvykle identifikátory v telemetrii tyto dvě složky spojují.
Kdy oddělit agenty
Nevytvářejte samostatného agenta pro každou podúlohu. Použijte samostatné agenty, pokud je to pro podúkol potřeba:
- Je dostatečně složitý na to, aby měl vlastní sadu nástrojů nebo znalostí (v jiné oblasti odbornosti)
- Vyžaduje jiná pravidla řízení nebo přístupové kontroly než hlavní agent
- Lze jej opakovaně použít v mnoha různých hlavních agentech (tedy funguje jako servisní agent).
Pokud se žádná z těchto podmínek nepoužije, může jednoduchý vložený agent zpracovat úlohu dobře a zároveň být jednodušší než úplný připojený agent. Samostatné agenty přinášejí systému dodatečné režijní náklady. Kvůli přepínání kontextu a složitosti při údržbě více agentů je trochu delší doba provádění. Takže je používejte rozumně. Pro praktický přístup začněte jedním agentem. Teprve potom to rozdělte do více agentů, pokud jasně vidíte potřebu modularity nebo hranici, kterou by jeden agent neměl překročit.
Osvědčené postupy pro orchestraci s více agenty
Následující osvědčené postupy platí při vytváření pokynů pro nadřazené a dílčí agenty v nastavení s více agenty.
1. Princip jednotné odpovědi
Zajistěte, aby najednou s uživatelem mluvil jenom jeden agent. V nastavení s více agenty je nadřazený agent jediným agentem, který by měl dodat konečnou odpověď. Subagenti jsou výzkumníci, ne ti, kdo odpovídají.
- Doporučuje se: Přidejte do nadřazených pokynů: "Jste jediným agentem, který komunikuje s uživatelem." Sluč výstupy všech podřízených agentů do jediné odpovědi.“
- Nenechávejte to nejednoznačné. Bez explicitních pokynů odpovídají podagents uživateli přímo, což způsobuje duplicitní nebo částečné zprávy.
Note
Směrování veškeré uživatelské komunikace přes rodiče je jeden platný návrh, nikoli jediný. Podřízený nebo připojený agent může také odpovědět přímo uživateli, pokud je to záměrné rozhodnutí. V každém případě je riziko, s nímž je třeba při návrhu počítat, stejné: nadřazený agent odpoví na požadavek, který už podřízený agent vyřídil. Seznamte se s kontextovým kontraktem, který v obou návrzích zabraňuje duplicitním zprávám, v článku Navrhování subagentů, kteří se vyhýbají duplicitním zprávám.
2. Pokyny pro subagenta musí uvádět jeho roli
Vždy subagentům řekněte, že jsou subagenti. Subagenti ze své podstaty nevědí, že jsou součástí orchestrace. Bez explicitních pokynů se chovají jako samostatní agenti a odesílají zprávy přímo uživateli.
- Udělejte: Do pokynů každého subagenta přidejte: „Jste subagent.“ Neodpovídejte přímo uživateli. Vaším úkolem je vyhledat informace a vrátit svá zjištění nadřazenému agentovi. Nadřazený agent zpracovává veškerou komunikaci s uživatelem."
- Don't: Předpokládejme, že dílčí agenti sami zjistí model orchestrace.
3. Používejte jasný, přímý jazyk v pokynech
Vždy používat jazyk direktiv. Vyhněte se měkké nebo zdvořilé formulaci. Platforma vkládá systémové instrukce pomocí důrazných formulací (MUST, DO NOT, NEVER). Instrukce napsané v měkkém jazyce ("zkuste", "měli byste", "bylo by dobré") ztratí prioritu, když dojde ke konfliktu.
- Dělejte: "NIKDY neodpovídejte přímo uživateli. Vraťte pouze svá zjištění."
- Ano: "Na každý dotaz uživatele musí být právě jedna finální odpověď."
- Nepoužívejte: "Zkuste se vyhnout odesílání zpráv uživateli a místo toho vraťte svá zjištění."
- Neříkejte: „V ideálním případě chceme jednu společnou odpověď.“
4. Použití jednoho zdroje znalostí na podagent (bez překrývání)
Přiřaďte jednotlivým dílčím agentům odlišné zdroje znalostí, které nejsou překryvné. Pokud dva podagenti prohledávají stejnou znalostní bázi, jeden z podagentů najde odpověď jako první. Druhý subagent buď vrací duplicitní výsledky, nebo zcela přeskočí vyhledávání, takže nepřináší žádnou hodnotu.
- Do: CA-1 hledá zdroj znalostí A (například zásady lidských zdrojů). CA-2 vyhledá zdroj znalostí B (například dokumentaci k IT).
- Ne: Nedávejte oběma podagentům přístup ke stejným dokumentům, tabulkám Dataverse ani webům služby SharePoint.
- Poznámka: Pokud máte pouze jeden zdroj znalostí, použijte jeden agent se znalostmi místo rozdělení do dvou podagentů. Více agentů přidává hodnotu pouze v případech, kdy se zdroje skutečně liší.
5. Pro podagenty používejte přesné a jedinečné popisy.
Napište jasné a odlišné popisy pro každého podřízeného agenta, který je viditelný nadřazenému agentovi. Rodičovský agent používá popisy podagentů k rozhodování o směrování. Pokud jsou popisy vágní, identické nebo nepřesné, nadřazený agent nemůže správně rozhodovat o směrování.
- Doporučuje se: CA-1: "Prohledává dokumenty zásad HR pro dotazy týkající se zaměstnanců." CA-2: "Prohledává bázi znalostí IT pro dotazy týkající se technické podpory."
- Nedoporučuje se: Dávat oběma agentům stejný popis, pokud obsluhují různé domény.
- Nepoužívejte: Používejte obecné popisy, jako je například "Tento agent vám může pomoct s dotazy".
6. Nadřazené instrukce musí definovat vzor orchestrace.
Řekněte nadřazenému agentovi, jak koordinovat. Neříkejte jen „použijte podřízené agenty“. Nadřízený agent potřebuje explicitní pokyny k danému vzorci: vyvolat agenty, počkat na výsledky, zkombinovat je a poté odpovědět.
- Udělejte: "Když uživatel položí otázku: 1. Vyvolání obou podřízených agentů za účelem shromáždění informací 2. Počkejte, až se oba podřízení agenti vrátí se svými zjištěními. 3. Zkombinujte závěry do jedné sjednocené odpovědi. 4. Doručte uživateli přesně jednu odpověď. Podřízení agenti nesmí uživateli přímo odpovídat."
- Nedoporučuje se: „Když uživatel položí otázku, vyvolejte podřízené agenty, získejte odpověď z obou zdrojů a poskytněte jednu kombinovanou odpověď.“ (Příliš vágní. Pokyn neříká podřízeným agentům, aby zůstali potichu.)
7. Do delegování úkolů zahrňte direktivu "bez přímé odpovědi".
I s jasnými pokyny pro podřízené agenty poskytuje přidání posílení v delegované úloze záchrannou síť.
- Doporučuje se: Přidat do pokynů pro nadřízeného agenta: „Při delegování na podřízeného agenta vždy do úlohy zahrňte: ‚Vraťte pouze svá zjištění. Na uživatele neodpovídejte."
- Ne: Nespoléhejte se pouze na vlastní pokyny subagenta. Kontext úlohy poskytuje subagentovi více signálů, které posilují tento vzorec.
8. Testování s dotazy na neshodu domény
Vždy testujte dotazy, které nespadají do domény žádného subagenta. Toto testování odhalí, zda podřízení agenti elegantně vrátí zprávu „nebyly nalezeny žádné informace“, nebo zda vrátí informace, které mohou být nesprávné, zaseknou se nebo budou posílat matoucí zprávy.
- Do: Testujte pomocí dotazů mimo oblasti působnosti všech podagentů (například se zeptejte na počasí, když agenti řeší HR a IT).
- Doporučuje se: Ověřit, že nadřízený agent elegantně zvládne situaci, kdy „ani jeden agent nic nenašel“.
- Ne: Testujte pouze s nejjednoduššími dotazy na případ, které dokonale odpovídají doméně jednoho podagenta.
9. Pokud očekáváte další dotaz, upřednostněte „zeptat se“ před „informovat“
Když očekáváte odpověď od uživatele, používejte formulaci formou otázky. Styl „informovat/odeslat“ používejte pouze pro závěrečné jednosměrné zprávy. Pokud agent požádá uživatele o něco pomocí jednosměrné zprávy (inform), odpověď uživatele se vrátí do nadřazeného plánovače jako zcela nový dotaz. V takovém případě je lepší pokračovat ve stejné konverzaci se subagentem.
- Do: Napište pokyny, jako je: "Pokud potřebujete objasnit, položte uživateli otázku a počkejte na odpověď".
- Don't: Pište pokyny jako: „Informujte uživatele o možnostech a nechte ho vybrat si.“ „Informovat“ označuje jednostranné sdělení, zatímco „zeptat se“ označuje obousměrnou komunikaci.
Kontrolní seznam rychlých referenčních informací
| # | Zaškrtnutí |
|---|---|
| 1 | Nadřazené pokyny výslovně uvádějí: „Na uživatele odpovídám pouze já.“ |
| 2 | Každá instrukce pro subagenta říká „neodpovídejte uživateli přímo“. |
| 3 | Pokyny používají důrazné formulace (MUST, NEVER, ONLY) |
| 4 | Každý subagent má jedinečný, nepřekrývající se zdroj znalostí. |
| 5 | Popisy podagentů jsou přesné, odlišné a specifické |
| 6 | Nadřazené instrukce definují úplný vzor orchestrace (vyvolání → čekání → kombinování → odpovědi) |
| 7 | Nadřízený agent předává „žádná přímá odpověď“ v kontextu delegované úlohy |
| 8 | Testováno s dotazy na neshodu domén |
| 9 | Rozlišení mezi „zeptat se“ a „informovat“ je v pokynech pro subagenta správně. |