Tři úrovně jednoho systému
Můj „druhý mozek" není jedna aplikace. Jsou to tři propojené vrstvy — každá na jiné úrovni, každá pro jiný účel. Tady je, jak to celé funguje.
KB chatbota
100+ strukturovaných dokumentů v Chatbase. Standardizovaný systém číslování, AI instrukce, prokliky mezi dokumenty.
→ Pro zákazníky klientůKB AI agenta
Supabase databáze, která se učí z každé interakce. 5 zdrojů učení, automatická extrakce faktů, propojení na entity.
→ Pro mě — moje komunikaceCursor systém
Návody, pravidla, deníky, registr agentů — AI v Cursoru to čte celé. Všechno jsou markdown soubory v Dropboxu.
→ Pro mě i pro AIZnalostní báze chatbota
Ukázkový projekt: TrutBot (Městský úřad Trutnov) — 100+ KB dokumentů. Systém, který funguje napříč 23 projekty.
Proč to tak vypadá
Chatbot je jen tak dobrý, jak dobrá je jeho znalostní báze. Pokud KB nemá strukturu, chatbot odpovídá náhodně, vymýšlí si nebo neví, kam uživatele nasměrovat.
Proto mám standardizovaný systém, který se škáluje od 30 do 300 dokumentů. Jeden formát, jedno číslování, jedna struktura — pro města, e-shopy, prodejny i vlastní projekty.
Systém číslování
Každý dokument = trojciferné číslo + kategorie
Číslo říká chatbotovi, o čem dokument je a kam patří. Varianta pro města a obce:
| Rozsah | Kategorie | Příklady |
|---|---|---|
000–099 |
Základní info | Kontakty, úřední hodiny, organizační struktura |
100–199 |
Doklady a evidence | Občanské průkazy, cestovní doklady, trvalý pobyt |
200–299 |
Matrika | Svatby, narození, úmrtí, změna jména |
300–399 |
Sociální věci | OSPOD, senioři, dávky, sociální bydlení |
400–499 |
Finance a majetek | Poplatky, dotace, prodej pozemků |
500–599 |
Doprava | Registr vozidel, parkování |
600–699 |
Stavby a územní plán | Stavební povolení, parcely |
800–899 |
Kultura, sport | Organizace města, sportoviště |
Pro e-shopy a prodejny mám odlišné varianty — ale princip je vždy stejný: unikátní číslo, jasná kategorie, škálovatelné.
Anatomie jednoho dokumentu
Co dělá KB dobrou
- AI instrukce v blockquote — hned pod nadpisem. Říká chatbotovi: jaký je kontext, na co odkazovat, kdy dokument použít a kdy ne
- Prokliky mezi dokumenty — chatbot ví, že informace o poplatcích jsou v 401, ne v 101. Neduplikuje, odkazuje
- FAQ jen tam, kde dává smysl — u procesních dokumentů (jak vyřídit OP) ano. U historie města ne
- Zdroje a datum na konci — odkud pochází, kdy naposledy ověřeno. Zdroje se přidávají, nepřepisují — vidím historii
Všechno píšu tak, aby to bylo čitelné pro lidi i pro AI. Strukturovaný markdown s jasnou hierarchií. Žádné PDFka, žádné Wordy. Text, který AI rozumí a člověk přečte.
KB AI agenta Recepční
Digitální zaměstnankyně #01 — zpracovává veškerou mou komunikaci a učí se z každé interakce. Supabase databáze, která roste.
Statická vs. dynamická KB
Chatbot pro klienta má statickou KB — dokumenty napíšu já a aktualizuju ručně.
Recepční je jiná. Potřebuje vědět věci, které se mění: kdo mi psal, o čem jsme se bavili, jaké mám preference pro komunikaci s konkrétním člověkem.
Proto má Supabase databázi, do které si sama ukládá fakta — a příště je použije.
5 zdrojů učení
Příchozí zprávy
Claude automaticky extrahuje fakta z nových emailů. Příklad: "Sabina pracuje na textech pro Janské Lázně."
Vzkaz od Katky
Napíšu poznámku do hubu → Claude ji rozloží na jednotlivé fakty. Příklad: "Martin preferuje formální oslovení."
Odchozí zprávy
Co pošlu, z toho se taky učí kontext. Příklad: "Domluvili jsme schůzku na 19.1."
Opravy klasifikace
Když překategorizuju zprávu (respond → noise). Příklad: "Newslettery od Webnode = vždy noise."
Úpravy draftů
Když změním navržený text odpovědi — recepční se naučí komunikační styl s konkrétním kontaktem.
Tabulka knowledge_base
Každý fakt je jeden řádek v databázi
| Sloupec | Typ | Co obsahuje |
|---|---|---|
fact |
text | Samotný poznatek — jedna věta |
fact_type |
text | Typ faktu (rule, instruction, preference, observation, relationship, context) |
importance |
text | critical / high / normal / low |
source_type |
text | Odkud fakt pochází (email, user_note, draft_edit) |
confidence |
real | Jak si je jistá (0.0–1.0) |
valid_until |
timestamp | Kdy fakt expiruje (jen u dočasných) |
is_active |
boolean | Je fakt stále platný? |
Typy faktů
6 typů — od trvalých pravidel po dočasný kontext
| Typ | Co to je | Příklad | Trvanlivost |
|---|---|---|---|
rule |
Trvalé pravidlo | "Vždy odpovídat klientům chatbotů do 24h" | Permanentní |
instruction |
Přímá instrukce ode mě | "Martin z Trutnova preferuje formální oslovení" | Permanentní |
preference |
Moje preference | "Newslettery od Webnode vždy noise" | Permanentní |
observation |
Poznatek z komunikace | "Sabina pracuje na textech pro Janské Lázně" | Může expirovat |
relationship |
Vztah mezi entitami | "Martin Čapek je správce TrutBotu" | Permanentní |
context |
Situační kontext | "Tento týden deadline na Janské Lázně" | Expiruje |
Propojení faktů na entity
Tabulka knowledge_links — proč existuje
Jeden fakt se může týkat víc entit. "Martin Čapek je správce TrutBotu" se propojí na kontakt Martina i na projekt Trutnov. Když mi Martin příště napíše, Recepční ví obojí.
| Sloupec | Co obsahuje |
|---|---|
fact_id |
Odkaz na konkrétní fakt v knowledge_base |
entity_type |
Typ entity: contact, company, project |
entity_id |
UUID kontaktu, ID firmy |
entity_name |
Čitelné jméno ("Martin Čapek", "nextmind") |
relationship |
Typ vztahu ("about", "related_to") |
Jak se kontext buduje pro prompt
Pokaždé, když přijde zpráva, Recepční si vytáhne relevantní znalosti — funkce buildKnowledgeContext():
Pravidla a instrukce
Vždy se načtou. Všechny fakty typu rule, preference, instruction. Limit 25 faktů.
Znalosti o odesílateli
Pokud existuje kontakt — fakta propojená na contact_id přes knowledge_links.
Znalosti o firmě
Podle domény emailu: nextmind.cz → "nextmind", alesio.cz → "alesio".
Aktivní konverzační vlákna
Probíhající konverzace s daným odesílatelem — kontext posledních zpráv.
Zpětná vazba z minulých oprav
Pokud alespoň 4 opravy — vzory chyb, které Recepční udělala, aby se neopakovaly.
Příklad naživo
Katka: Otevřu v KatkaAI.hub email od Martina z Trutnova. Napíšu do pole "Vzkaz pro recepční":
Vzkaz: "Martin preferuje formální oslovení, je to důležitý klient"
Co se stane automaticky
- API uloží moji poznámku k dané zprávě
- Claude extrahuje dva fakty:
fact_type: instruction→ "Martin preferuje formální oslovení" |importance: highfact_type: observation→ "Martin je důležitý klient" |importance: high - Uloží do knowledge_base — oba fakty s vazbou na Martinův contact_id
- Příště, když Martin napíše, Recepční to najde v kroku 2 a přizpůsobí draft: formální oslovení "Vážený pane Čapku" + poznámka "důležitý klient, doporučuji prioritně vyřídit"
Systém práce v Cursoru
Cursor + Dropbox = můj hlavní pracovní prostor. AI vidí všechno, zná pravidla, ví jak pracovat. Nepotřebuju nic kopírovat, uploadovat, synchronizovat.
Proč Dropbox + Markdown
- Cursor čte přímo ze souborů — nepotřebuju nic kopírovat, uploadovat, synchronizovat
- Markdown je text — čitelný pro mě i pro AI (žádné proprietární formáty)
- Verzuji přes Git (kód) i přes Dropbox (dokumenty) — nic se neztratí
- Škáluje se — funguje pro 1 projekt i pro 23
Protože AI potřebuje přímý přístup k souborům. V Cursoru řeknu "podívej se na projekt Trutbot" — a AI ho najde v Dropboxu. Žádné API, žádné exporty, žádné copy-paste. Soubory jsou kontext.
Cursor Rules — jak AI ví, co má dělat
V .cursor/rules/ mám 7 souborů, které AI automaticky načte podle kontextu:
Základní pravidla
Kdo je AI ("seniorní full-stack vývojář"), struktura projektu, kde co žije, co nesmí (hardcodovat API klíče), co musí (aktualizovat ARCHITECTURE.md).
Digitální zaměstnanci
3 typy agentů: A (prompt), B (pipeline + UI + Supabase), C (code). Rozhodovací strom pro výběr typu. Šablona dokumentace.
Jak pracujeme
Plan Mode pro netriviální tasky, subagenty pro research, self-improvement loop (chyby se zapisují, příště se neopakují).
Per-klient kontext
Automaticky se aktivují podle souboru. Otevřu projekt UFFO → Cursor načte kontext: kdo je klient, kontakty, stav projektu, priority.
47 návodů v centrální knihovně
Každý návod je psaný tak, aby ho AI mohlo přečíst a řídit se jím
| Kategorie | Rozsah | Příklady |
|---|---|---|
| Filozofie | 00 |
Digitální zaměstnanci — HR framing, jazyk značky |
| Chatbot workflow | 01–18 |
Fáze projektu, nový projekt, číslování KB, persona framework, konverzační UX, testování |
| Administrativa | 50–52 |
Denní zapisování, měsíční retrospektiva, případové studie |
| Marketing | 60–62 |
LinkedIn strategie, Instagram, blog |
Když zakládám nový chatbot projekt, AI si přečte 02_NOVY_PROJEKT.md a ví přesně, co má udělat — 11 kroků od analýzy po předání klientovi.
Registr digitálních zaměstnanců
Centrální místo, kde vidím celý tým
| # | Jméno | Typ | Status |
|---|---|---|---|
| 01 | Recepční | B (pipeline) | Aktivní |
| 05 | Šéfredaktorka | B (pipeline) | Aktivní |
| 07 | Nika | B (pipeline) | Aktivní |
| 08 | Účetní | B (pipeline) | Ve vývoji |
| 09 | Analytička | B (pipeline) | Aktivní |
| 11 | Ela Discovery | B (pipeline) | Aktivní |
| 12 | Ela Next Mind | B (pipeline) | Aktivní |
Plánovaní: Tajemnice, Kronikářka, Dispečerka, Zlatokopka. Každý agent má povinnou dokumentaci: ARCHITECTURE.md, README.md, PROMPT.md.
Self-improvement loop
Po každé korekci ode mě AI zapíše chybu do tasks/lessons.md. Příště ji neudělá znovu.
AI si tento soubor přečte na začátku session. Každá chyba se stane jen jednou. Systém se zlepšuje s každou interakcí — nejen Recepční, ale i samotné vývojové prostředí.
Co funguje dobře
- Systém drží — 23 projektů, 6 aktivních agentů, 47 návodů. Cursor ví, co dělat
- AI zná kontext — nepotřebuju nic kopírovat. Řeknu "podívej se na projekt Trutbot" a AI ho najde
- Recepční se učí — čím víc interakcí, tím lepší. Ráno otevřu hub místo Gmailu
- Škáluje se — přidat nový chatbot = zkopírovat strukturu. Přidat agenta = zkopírovat šablonu
- Dokumentace žije — ARCHITECTURE.md se aktualizuje automaticky po každé změně
Co zatím chybí
- Cross-project agent — nemám jednoho agenta, který prohledává všech 23 projektů najednou
- Automatická aktualizace kontextů — některé kontextové soubory zastarávají. Potřebuju systém, který hlídá aktuálnost
- Propojení mezi agenty — Recepční a Analytička spolu už komunikují, ale ostatní zatím ne
Kam to směřuje
10 digitálních zaměstnanců, vzájemně propojených a funkčních.
A kteří si trackují čas a fakturují ho, stejně jako já.
Není to dokonalé. Ale funguje to v produkci každý den.