🧠

Můj druhý mozek

Tři úrovně systému — jak pracuji s kontextem, znalostmi a AI

Aktivní Metodologie Strategie
23 chatbot
projektů
100+ KB
dokumentů
6 aktivních
agentů
47 návodů
pro AI

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.

01

KB chatbota

100+ strukturovaných dokumentů v Chatbase. Standardizovaný systém číslování, AI instrukce, prokliky mezi dokumenty.

→ Pro zákazníky klientů
02

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 komunikace
03

Cursor 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 AI
// Vrstva 01

Znalostní 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

101_OBCANSKE_PRUKAZY.md
# 101 — Občanské průkazy > **Pro AI agenty:** Tento dokument obsahuje kompletní > informace o vydání občanského průkazu. > Pro kontakty viz 001_KONTAKTY, > pro úřední hodiny viz 003_UREDNI_HODINY. --- ## ZÁKLADNÍ INFORMACE Veřejná listina prokazující totožnost občana ČR. Od srpna 2021 se vydává s biometrickými údaji. ## KDE VYŘÍDIT Městský úřad Trutnov — Odbor: Správní Slovanské náměstí 165, 541 01 Trutnov ## FAQ **Kolik stojí nový OP?** Zdarma (standardní lhůta 30 dní) **Co potřebuji?** Rodný list, starý OP, 1 fotografie --- *Zdroje: web klienta, deep research 5.12.2025* *Poslední aktualizace: 8.1.2026*

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
Klíčový princip

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.

// Vrstva 02

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

Scénář: Vzkaz pro recepční

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: high
    fact_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"
// Vrstva 03

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
Proč ne Notion, Obsidian nebo OneNote?

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:

general.mdc

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).

agents.mdc

Digitální zaměstnanci

3 typy agentů: A (prompt), B (pipeline + UI + Supabase), C (code). Rozhodovací strom pro výběr typu. Šablona dokumentace.

workflow.mdc

Jak pracujeme

Plan Mode pro netriviální tasky, subagenty pro research, self-improvement loop (chyby se zapisují, příště se neopakují).

klient-*.mdc

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.

tasks/lessons.md
Datum: 2026-02-15 Kontext: Recepční — WhatsApp reply routing Co se stalo: JSON escape problém při odesílání přes Make.com Pravidlo: Pro WhatsApp používat přímé Graph API, ne Make.com webhook --- Datum: 2026-02-20 Kontext: Analytička — reporty Co se stalo: Dashboard nezobrazoval české znaky správně Pravidlo: Vždy nastavit charset v headeru i v Supabase query
Proč to funguje

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.