Před časem jsem psal o rozdílu mezi skriptem, workflow s AI a skutečným AI agentem. Hlavní myšlenka byla jednoduchá: nezačínejte tím, že chcete agenta. Nejdřív si řekněte, jaký problém řešíte, a použijte nejjednodušší architekturu, která ho zvládne.
Když je postup pevný, napište ho do programu. Když potřebujete v jednom kroku porozumět nestrukturovaným datům, zapojte model do workflow. A teprve když dopředu nevíte, jaké kroky bude potřeba provést, má smysl pustit model ze řetězu a nechat ho vybírat nástroje a další postup.
Sám jsem si tenhle princip vyzkoušel na dvou malých open-source projektech. Oba se jmenují Sentinel. A přestože oba používají jazykové modely, každý úplně jinak.
První je typický AI agent. Druhý je workflow.
Mail Sentinel: když dopředu nevíte, co bude potřeba zjistit
Mail Sentinel původně vznikl jako demonstrační projekt pro workshop o bezpečnosti AI agentů.
Úkol zní jednoduše: dostane podezřelý e-mail a má zjistit, jestli je bezpečné ho pustit dál. Kdyby všechny útoky vypadaly stejně, agent by byl zbytečný. Napsali bychom několik pravidel, pustili zprávu přes ně a bylo hotovo.
Jenže jednou je problém v odesílateli. Podruhé v odkazu. Potřetí v příloze. Jindy v kombinaci několika nevinně vypadajících věcí. A někdy je samotný e-mail pokusem manipulovat AI systém, který ho analyzuje. Dopředu tedy nevíme, co všechno bude potřeba prověřit.
A právě tady agent dává smysl.
Dostane e-mail, cíl vyšetřování a sadu nástrojů. Podle toho, co během analýzy zjistí, sám volí, který nástroj použije dál. Může kontrolovat odesílatele a Reply-To, odkazy, přílohy, jazyk zprávy, SPF, DKIM a DMARC, firemní pravidla, interní databáze nebo znaky sociálního inženýrství. Každá kontrola vytvoří důkaz s vlastním ID a výsledný verdikt se o tyto důkazy musí opírat. Model tedy nemá jen říct: „Myslím, že tenhle e-mail je podezřelý.“ Musí být schopný doložit proč.
Jazykový model je takový vyšetřovatel uprostřed systému. Některé věci umí dobře: číst text, chápat vztahy mezi informacemi, spojovat slabé signály a rozhodovat, co má smysl zkontrolovat dál. Ale to není důvod nechat ho dělat práci, kterou spolehlivěji zvládne normální program. SPF se neodhaduje jazykovým modelem, ověří ho script. URL lze technicky rozebrat. Soubor lze analyzovat nástrojem. Doménu lze ověřit proti skutečným datům.
A nově je v téhle sadě ještě jeden AI model. Jmenuje se JEV. Tento model od TypeSafe AI patří do kategorie modelů označovaných jako System One. Na rozdíl od běžného generativního modelu nemá za úkol přemýšlet nad otevřenou odpovědí a napsat text.
Dostane stav a přesně definované otázky:
- Například v našem případě:
- Je to pokus o podvod?
- Co po příjemci chce?
- Jak silný nátlak vyvíjí?
- Vydává se odesílatel za někoho jiného?
- Obsahuje zpráva instrukce určené AI místo člověku?
Otázka přitom není jen kus textu, na který si model může odpovědět čímkoli. Aplikace mu předem určí možné typy odpovědí a JEV k nim vrací pravděpodobnosti. Nevygeneruje vysvětlení. Nenapíše report. Nevymyslí čtvrtou možnost, když jsme mu dali tři.
Jazykový model může říct „tohle na mě působí dost podezřele“. Dělá jinou práci. Vyšetřující model čte celý případ, vybírá nástroje, spojuje jednotlivé výsledky a nakonec sestaví srozumitelný report. Naopak JEV dostane pseudonymizovaný obsah zprávy a změří několik předem definovaných vlastností. Výsledek se uloží jako další důkaz vedle kontroly domény, odkazů, příloh nebo autentizace odesílatele.
U některých výsledků navíc můžeme udělat něco, co se s vágním jazykovým hodnocením dělá obtížně: nastavit pevnou hranici.
Pokud například pravděpodobnost podvodu překročí stanovenou hodnotu, funguje výsledek jako blokátor. E-mail už nemůže skončit ve skupině s nízkým rizikem jen proto, že vyšetřující LLM ostatní signály interpretovalo optimisticky.
A přesně tak jsme chtěli Mail Sentinel stavět: různé druhy kontrol, různé druhy důkazů a agent, který z nich skládá vyšetřování.
V předchozím článku jsem přirovnával agenta k mistrovi ve výrobní hale. Může se rozhodovat, kam půjde a jaký nástroj použije, ale neznamená to, že mu dáte klíče od celé továrny. Mail Sentinel funguje stejně.
Část kontrol proběhne povinně. Každé tvrzení ve finálním verdiktu musí mít oporu v důkazech. Pokud se agent pokusí případ uzavřít příliš brzy, systém mu může vrátit seznam věcí, které ještě neprověřil. A některé nástroje vůbec nemá k dispozici.
To je ve skutečnosti jedna z nejúčinnějších bezpečnostních vlastností agentního systému: model nemůže použít nástroj, který jste mu nedali.
Celý proces tak není:
e-mail → LLM → odpověď,
ale spíš:
e-mail → kontroly → nástroje → důkazy → další rozhodnutí → verdikt → report.
AI agentní systém se vším, co k němu patří.
Mail Sentinel je open source na GitHubu.
Paper Sentinel: kde by agent naopak překážel
Druhý projekt řeší úplně jiný problém.
Každý, kdo se snaží sledovat výzkum kolem AI, zná arXiv. A také problém, který s ním přichází: relevantních nových prací může za den vyjít tolik, že jen procházení titulků a abstraktů začne být samostatná pracovní činnost. Tak vznikl Paper Sentinel. Je to radar nad arXivem.
Vyberete kategorie, které chcete sledovat, přidáte vlastní výzkumná témata nebo tagy a nastavíte interval kontroly. Systém pravidelně stáhne nové práce a hledá mezi nimi ty, které by vás mohly zajímat.
A tady by bylo velmi snadné říct:
Uděláme dalšího agenta.
Jenže proč? Předem definovaná cesta je výhoda. U Paper Sentinelu víme přesně, co se má stát:
- Stáhni nové záznamy.
- Vyfiltruj ty, které nemají nic společného s tématy uživatele.
- Relevantnější kandidáty dej modelu.
- Ulož výsledek.
- Zobraz ho v dashboardu a případně pošli do RSS, e-mailového digestu nebo webhooku.
Není tam žádné rozhodování typu „co bych měl udělat dál?“. Trasa je známá předem. Takže žádný agent není potřeba. Je to workflow s AI.
A právě tím je podle mě Paper Sentinel docela pěknou praktickou ukázkou principu z předchozího článku. Nejdřív levně, potom chytře.
Dokonce ani uvnitř workflow není důvod použít jazykový model na všechno.
První filtr může být velmi levný. Kategorie, klíčová slova a další jednoduchá pravidla dokážou odstranit velkou část článků bez jediného tokenu.
Teprve nad tím, co projde, se pustí lokální LLM. Úkolem není napsat na něj oponenturu. Na to by malý model nebyl vhodný.
Má odpovědět na praktičtější otázku: Proč by zrovna tenhle paper mohl být zajímavý vzhledem k tomu, co sleduji?
To je přesně druh úlohy, kde samotná klíčová slova nestačí, protože potřebujeme pracovat s významem.
Paper Sentinel může používat LM Studio, Ollamu nebo jiné OpenAI-kompatibilní API, takže může celý běžet lokálně a bez placení za každé volání externího modelu.
Výsledky zůstávají u vás a ukládají se lokálně.
Současná verze pracuje jen s titulkem a abstraktem. Ráno si otevřu radar a chci během několika minut vědět, jestli přes noc vyšlo něco, co bych měl číst.
Paper Sentinel je také open source na GitHubu.
Oba Sentinely jsou otevřené připomínkám, issues i pull requestům.
