← Zpět na blog

Poradci v Telegramu

Série: Jak jsem si postavil druhý mozek · díl 5

Šest AI poradců a jejich rada mi do konce července odpovídali jen u klávesnice. Kdo si chtěl s poradcem promluvit, musel sedět u počítače a otevřít terminál. Otázky ale nevznikají u počítače. Koncem července jsem je proto přesunul do telefonu: sedm obyčejných kontaktů v Telegramu, jeden na každého poradce a jeden na radu.

Bot je jen doprava

Celé rozhodnutí stojí na jedné větě: bot nesmí obsahovat žádnou logiku poradců. Přijme zprávu, předá ji, vrátí odpověď a uloží, co se změnilo. Kdo je kdo a co si pamatuje, zůstává ve wiki a v jejím zadání, stejně jako u klávesnice. Jiné vstupní zařízení, stejná smlouva.

Technicky to je jeden proces na vlastním stroji, který obsluhuje všech sedm botů. Každou zprávu předá Claude Code spuštěnému bez obrazovky přímo ve složce s wiki, takže si zadání načte sám, celé a bez úprav.

Nabízela se cesta přes OpenClaw, který už na stejném stroji běžel i s Telegramem. Proč jsem ji odmítl, jsem psal ve druhém dílu: jeho napojení na Claude záměrně vypíná projektové zadání. A moje zadání je celý druhý mozek. Samostatný bot tak byl menší stavba a zároveň věrnější.

Kdy rozhovor končí

U klávesnice rozhovor končí, když zavřu okno. V chatu konec neexistuje, takže jsem ho musel definovat.

  • První zpráva otevře nové sezení.
  • Další zprávy pokračují v tomtéž sezení, poradce si pamatuje, o čem mluvíme.
  • Po třiceti minutách ticha, nebo na příkaz /wrap, se sezení uzavře.

Uzavření je samostatné volání modelu s jediným úkolem: zapsat do wiki, co se stalo, a aktualizovat stav. Předtím to bylo pravidlo, které si model měl pamatovat uprostřed rozhovoru. Teď je to krok, v němž nic jiného není. Když byl rozhovor triviální, odpoví model jedním slovem, že není co zapsat, a nezapíše se nic.

Pak se sezení zahodí. Další zpráva začne načisto a načte stav z wiki.

Paměť je wiki, ne historie chatu.

Tím zůstává pod kontrolou i cena: každý rozhovor začíná se stejně velkým kontextem, ne s narůstající konverzací z minulého týdne.

Tři otázky, které stavbu změnily

Bot fungoval během jednoho odpoledne. Teprve pak jsem začal klást nepříjemné otázky a každá odhalila díru.

Co když dojdou kredity právě při uzavření?

První verze v takovém případě sezení smazala. Rozhovor, který se nestihl zapsat, byl pryč. Navíc Claude Code hlásí chybu příznakem is_error, zatímco jiné pole dál tvrdí „success". Kód se díval na to druhé.

Dnes neúspěšné uzavření sezení nikdy nesmaže. Zkouší to znovu po deseti minutách, po třiceti, pak každou hodinu bez konce, protože kredity se obnovují. Upozorní mě jednou. Opakovaný pokus naváže na stejné sezení, takže model vidí, co už napůl zapsal, a nezapíše to dvakrát.

Co když jeden prompt sní celý limit?

Jediná pojistka byl časový limit na tah. Přidal jsem dvě vrstvy: strop útraty na každý tah, který hlídá samo Claude Code, a klouzavé počítadlo přes všechny boty s rezervou pro uzavření. I když je chat odříznutý, zapsat se stihne.

Co když služba spadne?

Systemd ve výchozím nastavení vzdá službu, která pětkrát rychle za sebou spadne, a nechá ji mrtvou a potichu. Dnes ji restartuje donekonečna. Navíc bot každou minutu dává znamení, že žije, ale jen tehdy, když všech sedm botů opravdu poslouchá. Proces, který běží, ale neslyší, je pro mě stejně mrtvý. Samostatný hlídač to kontroluje každých pět minut, upozorní mě a službu restartuje. Na hlídači stroje se ale nedozvím, že zhasl celý stroj. To musí hlídat něco zvenku.

Nejcennější kód nevznikl z návrhu, ale z otázky „a co když…" položené den po návrhu.

Při testech vypadla ještě jedna drobnost: zástupný text místo tokenu prošel kontrolou, protože hledala velká písmena. Shodil by všech sedm botů najednou. Dnes chyba jednoho bota ostatní nezastaví.

Poradci, kteří se ozvou sami

Telefon otevřel druhou možnost: poradce se může ozvat bez vyzvání. V srpnu dostal každý naplánované kontroly. Kontrola není rozhovor. Proběhne jednou, sama, a buď najde něco, co mě opravdu potřebuje, nebo nenapíše nic.

Kontrola nesmí měnit wiki. Pošle zprávu a návrh zápisu, pod ním dvě tlačítka: zapsat, nebo ne. Teprve moje „zapsat" spustí druhé volání, jediné, které smí psát. Wiki čtou všichni poradci, takže jeden špatný závěr zapsaný bez dohledu by se rozšířil do všech dalších rozhovorů. Odmítnutý návrh si bot pamatuje, aby se nevracel každý týden.

Když jsme plánovali další vlnu kontrol, zeptal jsem se, jestli se všechny ozvou v osm ráno ve všední den. Tím se ukázalo, co je skutečný limit: moje pozornost, ne peníze. Šest rozumně nastavených poradců, každý s jednou kontrolou týdně, vyprodukuje tolik zpráv, že je přestanu číst. A kontrola, kterou nikdo nečte, je horší než žádná, protože vytváří dojem, že je něco pohlídané.

Nevyžádané zprávy proto soutěží o tři místa týdně pro celou flotilu. Každá kontrola má prioritu, daňový termín vyhraje nad nápadem na obsah. Kontroly s nízkou prioritou musí jedno místo nechat volné, aby středeční nápad nezablokoval páteční termín. A co prohraje, neztratí se: příští kontrola téhož poradce to dostane zpátky.

Co se pokazilo

Poradce, který nevěděl, že má rozvrh

Den po spuštění kontrol mi jeden poradce s jistotou řekl, že mou poštu sám nesleduje, ať mu ji připomenu. Jeho kontrola ji přitom četla dvakrát týdně. Zadání rozhovoru popisovalo poradce, který jen odpovídá, protože takový dřív byl. Dnes si každý poradce svůj rozvrh přečte v zadání, a to se generuje přímo z rozvrhu. Ručně psaný seznam kontrol je druhá kopie rozvrhu a zastará vždycky právě ta.

Povolené nástroje, které nic nepovolují

Kontrole jsem dal jen kalendář a ona si přesto načetla poštu i disk. Seznam povolených nástrojů u MCP nástrojů nic neomezuje; funguje jen seznam zakázaných. Každý přístup, který kontrola nemá, je dnes zakázaný jménem.

Jak začít

  1. Bot ať je jen doprava. Logika a paměť patří tam, kde je čte i zbytek systému.
  2. Definujte konec rozhovoru a zápis udělejte samostatným krokem, ne pravidlem uprostřed konverzace.
  3. Selhání nesmí mazat. Projděte každou chybovou větev a zeptejte se, co v ní zmizí.
  4. Hlídejte, že služba poslouchá, ne jen že běží.
  5. Nevyžádaným zprávám dejte rozpočet. Pozornost je nejvzácnější zdroj, který máte.
  6. Automat navrhuje, vy schvalujete, dokud mu nevěříte s dobrým důvodem.

Příště: jak jsem do druhého mozku začal sypat vlastní data, ze zdraví, auta, banky, fotek a pošty.

← Zpět na blog Napište mi