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.
Na předchozí stránce jsme ukázali, jak balíčky dovedností zajišťují opakovaně využitelnou odbornost v oboru – pokyny, referenční materiály a skripty – do samostatných jednotek, které může jakýkoliv agent načíst na vyžádání. Když ale nasadíte agenty do produkčního prostředí, objeví se nová kategorie problémů: problémy, které zasahují každou interakci bez ohledu na to, co agent dělá.
Potřebujete protokolovat všechny požadavky a odpovědi. Potřebujete ochranná opatření, která blokují škodlivý obsah dříve, než ho model uvidí. Potřebujete vynutit omezení rychlosti, zachytit výjimky elegantně a vkládat telemetrii – to vše bez zásahu do základní logiky agenta. Zkopírování těchto obav do každého agenta (nebo každého nástroje nebo každé dovednosti) se nes škáluje a vytváří noční můry údržby.
Middleware to vyřeší. Middleware umožňuje zabalit kanál spuštění agenta s opakovaně použitelným chováním, které zachycuje, kontroluje a upravuje požadavky a odpovědi v dobře definovaných bodech. Middleware si můžete představit jako řadu soustředných vrstev kolem agenta – každá vrstva má možnost působit na vstup předtím, než dosáhne agenta, a na výstup předtím, než dosáhne volajícího.
Kdy to použít
Přidejte do svého agenta middleware, když:
- Před zpracováním modelu nebo po něm potřebujete ochranné mantinely k blokování škodlivého, mimo téma nebo obsah porušujícího zásady.
- Chcete centralizované protokolování nebo telemetrii pro všechny interakce agentů, aniž byste museli upravovat jednotlivé agenty.
- Je potřeba upravit požadavky nebo odpovědi – obohacení výzev, transformaci výstupů nebo úplné nahrazení výsledků – bez změny logiky agenta.
- Chcete prosadit zásady, jako jsou omezování rychlosti, filtrování obsahu nebo ověřovací kontroly, které se vztahují na každé spuštění.
- Potřebujete zpracovávat výjimky konzistentně – opakovat při přechodných selháních, vracet elegantní náhradní odpovědi nebo zaznamenávat chyby pro diagnostiku.
- Chcete sdílet stav v rámci kanálu – například sledování časování požadavků nebo shromažďování metrik, které potřebuje více komponent middlewaru.
Návod
Agent Framework zahrnuje integrovanou instrumentaci pro trasování a metriky. Podrobnosti najdete v tématu Pozorovatelnost .
Jak funguje kanál middlewaru
Když voláte metodu run vašeho agenta, požadavek nepřejde přímo k modelu. Místo toho prochází kanálem vrstvy middlewaru, z nichž každá může požadavek zkontrolovat nebo upravit, delegovat na další vrstvu a pak prozkoumat nebo upravit odpověď na cestě zpět.
┌─────────────────────────────────────────────────────────┐
│ Caller: agent.run("What's the weather?") │
└──────────────┬──────────────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────┐
│ Middleware 1 (Logging) │
│ • Logs the incoming request │
│ • Calls next middleware │
│ • Logs the outgoing response │
└──────────────┬──────────────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────┐
│ Middleware 2 (Guardrails) │
│ • Checks input against content policy │
│ • If blocked → returns early with rejection message │
│ • If allowed → calls next middleware │
│ • Checks output against content policy │
└──────────────┬──────────────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────┐
│ Agent core (model invocation, tool calls, etc.) │
└─────────────────────────────────────────────────────────┘
klíčové body:
- Každý middleware se rozhodne, jestli se má pokračovat. Middleware může volat další vrstvu v řetězci, která pokračuje normálně, nebo může kanál zkratovat tak, že vrátí odpověď přímo – například když ochranný prvek zablokuje požadavek.
- Middleware vidí oba směry. Middleware spustí kód před delegováním (pro kontrolu nebo úpravu vstupu) a po návratu odpovědi (ke kontrole nebo úpravě výstupu). Toto je klasický vzor "onion".
- Několik middlewarů je propojeno do řetězce. Když zaregistrujete několik komponent middlewaru, vnořují se: první zaregistrovaný middleware je vnější vrstva a poslední zaregistrovaná vrstva je nejvnitřnější vrstva nejblíže agentu.
Návod
Podrobný přehled o tom, jak middleware zapadá do úplného kanálu spouštění agentů , včetně poskytovatelů kontextu a vrstev klientů chatu, najdete v architektuře kanálu agenta.
Co může middleware dělat
Agent Framework podporuje middleware ve třech vrstvách pipeline — běh agenta, volání funkcí a chatového klienta — a poskytuje detailní kontrolu nad tím, kde zachytíte provádění. Mezi běžné vzory patří:
| Vzor | Příklad | Referenční informace |
|---|---|---|
| Ochranné zábrany a ukončení | Blokování škodlivého obsahu, omezení délky konverzace | Ukončení a ochranné mechanismy |
| Zpracování výjimek | Opakování při přechodných selháních, vrácení náhradních odpovědí | Zpracování výjimek |
| Přepsání výsledků | Redigovat citlivá data, obohatit nebo nahradit výstup agenta | Přepsání výsledků |
| Sdílený stav | Předání ID požadavků nebo časových údajů mezi middlewarem | Sdílený stav |
| Kontext modulu runtime | Na základě konfigurace relace, uživatele nebo jednotlivého spuštění upravte chování. | Kontext modulu runtime |
| Vymezení problému | Použití middlewaru pro všechna spuštění nebo jen pro jedno spuštění | Agent vs. rozsah spuštění |
Kompletní návod k definování a registraci middlewaru najdete v tématu Definování middlewaru. Úplný přehled architektury si prohlédněte v Přehledu middlewaru.
Úvahy
| Zvážení | Podrobnosti |
|---|---|
| Oddělení oblastí zájmu | Middleware udržuje průřezovou logiku mimo kód agenta, vaše nástroje a vaše dovednosti. Každá komponenta middlewaru má jednu zodpovědnost – protokolování, mantinely, zpracování chyb – které můžete přidávat, odebírat nebo měnit pořadí nezávisle. |
| Závislost objednávek | Middleware tvoří řetězec. Pořadí, ve kterém registrujete middleware, je důležité: protokolovací middleware, který běží první, uvidí neupravený vstup, zatímco ten, který běží naposledy, uvidí vstup již změněný předchozím middlewarem. Pečlivě plánujte postup vašich procesů. |
| Složitost debugování | Když middleware upraví vstupy nebo výstupy, ladění vyžaduje pochopení celého řetězce operací. Odpověď může vypadat špatně, ne kvůli agentu, ale protože ho middleware transformoval. Dobrý protokolovací middleware (umístěný na začátku řetězce) pomáhá diagnostikovat tyto případy. |
| Výkonnostní režie | Každá vrstva middlewaru přidává ke každému požadavku čas zpracování. U jednoduchých operací, jako je protokolování, je to zanedbatelné. U drahých operací, jako je volání rozhraní API pro moderování externího obsahu, se latence zvyšuje – zejména pokud je zřetězený více takových middlewarů. |
Další kroky
Teď, když má váš agent nástroje, dovednosti a middleware, je dalším krokem zprostředkovatele kontextu – komponenty, které před každým spuštěním vloží paměť, profily uživatelů a dynamické znalosti do kontextového okna agenta.
Jděte hlouběji:
- Přehled middlewaru – úplný přehled pro všechny typy middlewaru
- Architektura kanálu agenta – jak middleware zapadá do kanálu spouštění