Back to all posts

Kontext, ne kontrola

Kontext, ne kontrola

Kontext, ne kontrola

Každé pravidlo v promptu vašeho agenta začalo jako chyba.

Někdo si všiml špatného chování, napsal pravidlo a šel dál. Někdo další udělal totéž. Třetí člověk přidal „nikdy nedělej X“, protože model jednou v úterý udělal něco zvláštního. Nikdo nic nemaže.

O šest měsíců později agent tráví většinu svého kontextového okna procházením svého pravidlového kodexu místo přemýšlení o skutečném úkolu.

To je myšlení ve stylu kontroly. A myslím, že je to jedna z největších konstrukčních chyb, které týmy při tvorbě AI agentů dělají.

Malý příklad, který odhaluje větší vzorec

Narazili jsme na problém, kdy agent spuštěný naplánovaným úkolem neustále vytvářel nové naplánované úkoly během běhu. Nekonečná rekurze, tentokrát s reálnými dopady.

Existují dva způsoby, jak reagovat.

Styl kontroly: Zakázat to. Napsat kód, který blokuje vytváření plánů z plánů. Přidat pravidlo do promptu: „nikdy nevytvářej plán uvnitř plánu.“ Nasadit.

Styl kontextu: Sdělte agentovi, co se skutečně děje.

Byl jste spuštěn naplánovaným úkolem v 3:00 ráno pacifického času. ID plánu: sched_29x8f. Naplánovaný běh je izolované provedení s definovaným rozsahem, který uživatel původně schválil. Vytvoření nového naplánovaného úkolu by rozšířilo tento rozsah za původní schválení.

První přístup opravuje jedno chování. Druhý dává agentovi model situace.

Nyní může uvažovat i o souvisejících otázkách: Mám poslat upozornění v 3 ráno? Mám vytvořit navazující proces, o který uživatel výslovně nepožádal? Mám upravit něco, co přesahuje původní rozsah běhu?

Není potřeba žádné pravidlo. Agent na to přišel sám.

Mnoho týmů sahá po kontrole, když ve skutečnosti potřebují kontext.

Stejné rozlišení se objevuje i v promtech

Nejde jen o vynucování na úrovni systému. Rozdělení kontext vs. kontrola existuje i uvnitř promptů.

Prompt ve stylu kontextu: převážně fakta, minimum názorů:

Běžíte kvůli naplánovanému úkolu. Spuštěno v 3:00 ráno pekingského času. ID úkolu: sched_29x8f. Uživatel schválil tento běh pro konkrétní rozsah.

Prompt ve stylu kontroly: hodnotící, předepisující:

Vyhýbejte se vytváření plánů. Měli byste upozornit uživatele pomocí nástroje X. Nikdy nedělejte Y, pokud není Z.

Někdy jsou předepisující instrukce užitečné. Velmi často ale jen nahrazují chybějící fakta. A jakmile s tím začnete, je těžké přestat.

Jak se prompty mění v byrokracii

Tohle je hlubší selhání.

Tým vidí problém a přidá pravidlo. Pak další. A další. Každé opravuje lokální problém, ale dohromady vytvářejí systém plný zástupných řešení.

Bezos tento vzorec popsal ve svém dopise akcionářům 2016: dobrý proces slouží vám, abyste mohli sloužit zákazníkům. Ale pokud si nedáte pozor, proces se stane cílem sám o sobě.

Přesně to se děje v systémech agentů.

Pravidlo není cíl. Pravidlo je zástupce výsledku, který chcete. A zástupci se kumulují. Jeden vytvoří okrajové případy, které vyžadují další. Brzy agent uvažuje skrze vrstvy nahromaděných instrukcí, z nichž každá byla přidána z historického důvodu, na který si už nikdo přesně nevzpomíná.

V lidských organizacích z toho vzniká byrokracie. V systémech agentů z toho vzniká obří prompt plný jizev.

Fakta stárnou. Názory hnijí.

Fakt jako „tento běh byl spuštěn naplánovaným úkolem v 3 ráno“ je stabilní. Zůstává pravdivý bez ohledu na to, který model jej čte: Claude, GPT, Gemini, nebo cokoli dalšího přijde příští čtvrtletí.

Výrok jako „měl byste se vyhýbat vytváření podplánů“ je křehký. Závisí na interpretaci. Může pomoci v jedné situaci a v jiné tiše selhat.

Když vyměníte model, každý názor v promptu je potenciální minové pole. Nový model má jiné tendence v uvažování a vaše pečlivě kalibrované „vyhýbej se“ pro něj může znamenat něco úplně jiného.

Ale ukotvená fakta o prostředí, oprávněních, rozsahu a omezeních mají tendenci se zobecňovat napříč modely i okrajovými případy. Proto jsou fakta lepším stavebním materiálem.

Past na modelové zvláštnosti

Tohle je možná nejzákeřnější verze problému kontroly: týmy neustále mění dočasné chyby modelu v trvalou strukturu systému.

Model se v nějakém úzkém případě chová špatně. Tým přidá zábranu: úpravu promptu, kontrolu v kódu, zvláštní větev, která existuje jen kvůli jedné konkrétní chybě.

Tato záplata je sázka na to, že zvláštnost přetrvá. Téměř nikdy nepřetrvá.

Za tři měsíce se model změní. Původní chování zmizí. Ale záplata zůstane. Nikdo ji nechce odstranit, protože možná tam byla z nějakého důvodu.

Takto se systémové prompty mění v zastaralý kód.

Nebezpečí snadno rozpoznáme v abstraktní rovině. Ale v praxi je neustálé záplatování aktuálních tendencí Sonnetu v promptu totéž v jiném kabátě.

Dokumentovat stabilní chování systému má hodnotu. Záplatovat tendence modelu je běh na běžícím pásu. Model se změní rychleji, než stihnete udržovat záplaty.

Dobrý testovací případ: Odepřený přístup

Rozdíl je jasně vidět v diagnostice nástrojů. Když agent narazí na chybu oprávnění:

Styl kontroly:

TOKEN chybí. Spusťte „zero permissions request gmail.send“ pro opravu.

Přímočaré, ale agent se nic nenaučí. Příště, když narazí na jinou chybu oprávnění, je v pasti.

Styl kontextu:

process.env.GMAIL_TOKEN → existuje zero connectors inspect gmail → připojeno zero permissions inspect gmail.send → zamítnuto

Možnosti:

  1. Požádat uživatele o schválení pro gmail.send
  2. Použít již schválenou cestu, pokud existuje

Agent nyní ví, že token existuje, konektor funguje a konkrétní oprávnění bylo zamítnuto. Rozumí stavu systému a dokáže uvažovat o nových situacích, které autor pravidla nikdy nepředpokládal.

Heuristika

K tomu se stále vracím:

Kdykoli se chystáte napsat do promptu „ne“, „vyhýbej se“ nebo „nikdy“. Zastavte se. Zeptejte se: jaký fakt toto pravidlo nahrazuje?

Obvykle chybí nějaké faktum. Agent nechápe, v jakém prostředí je, co uživatel schválil, které akce jsou nevratné nebo proč se tento běh liší od běžné konverzace.

Napište tento fakt. Pravidlo smažte.

Někdy budete chtít omezení zachovat, zejména u destruktivních akcí, pohybu peněz nebo bezpečnostních hranic. Tvrdé kontroly stále mají smysl.

Ale mnoho pravidel v promptu nejsou skutečné hranice. Jsou to náhrady za chybějící pochopení. A právě tyto se hromadí a hnijí.

Cíl

Cílem není agent, který si pamatuje kontrolní seznam.

Cílem je agent, který rozumí své situaci natolik, aby činil dobrá rozhodnutí v jasně vymezených hranicích.

Jedna filozofie řídí chování vrstvením pravidel. Druhá zlepšuje chování tím, že činí svět srozumitelným.

První směřuje k byrokracii. Druhá směřuje k pochopení.

Budujte kontext. Odstraňte jizvy. Nasazujte agenty, kteří umí přemýšlet.

Stay in the loop

// Get the latest insights on AI teammates and collaboration.