Библиотека · Архитектура, которая выдержит годы

Knowledge Atlas — атлас знаний из 54 слоёв

Инженер65 минОбновлено: октябрь 2026
96 из 105 в библиотеке

Модуль: 25. Production Patterns 2026 | Время: ~25 мин теории + 40 мин практики


Суть урока

Когда ты учишься чему-то новому, учебник кладёт знания цепочкой: глава 1 → глава 2 → глава 3. Это работает для человека, который читает по порядку. Но AI-агент так не читает. Агент приходит со своим вопросом — и хочет за 50 миллисекунд достать ровно ту страницу, которая нужна. Не первую главу, не оглавление. Конкретный кусок про конкретное.

Knowledge Atlas — это другая форма организации знаний. Не книга, а сеть. Не оглавление, а карта. Не цепочка глав, а 54 коротких слоя, каждый — про одну тему, со своими координатами и связями.

В этом уроке разберём, как собрать такой атлас своими руками: из чего состоит слой, как работает машинно-читаемый INDEX.json, зачем три HTML-вида (карточки, дерево, mind map), и как агент находит нужное знание за 150 токенов вместо 13 000.

🎨 Образ: обычный учебник — это автобусная экскурсия по городу. Все смотрят в одно окно, в одном порядке, гид рассказывает по программе. Атлас знаний — это карта города в твоём кармане. Тебе нужно в булочную? Открыл, посмотрел, пошёл. Никто не ведёт тебя через музей и парк, если ты пришёл за хлебом.


Ключевые концепции

  • Layer book (слой) — короткая книга на одну тему (~7–13 KB кириллицы), со стандартной структурой: образ → что это → как работает → примеры → связки → ресурсы → cross-links
  • Frontmatter — машинно-читаемая метадата в начале каждого слоя (YAML): id, group, keywords, related_layers, summary_50w. Агент читает её первой
  • INDEX.json — единая карта всех слоёв в одном JSON-файле. Агент сначала смотрит сюда (~80 токенов), потом достаёт нужный слой
  • Competency groups — 9 групп компетенций (понимаешь / создаёшь / работаешь / строишь / автоматизируешь / выпускаешь / зарабатываешь / mindset / production). Каждая группа = папка
  • Retrieval tiers — 4 уровня глубины чтения (L0 INDEX → L1 frontmatter → L2 секция → L3 полный слой). Агент берёт минимально необходимое
  • Cross-links — каждый слой ссылается на 3–7 связанных слоёв. Это превращает набор файлов в сеть
  • Curriculum — последовательный маршрут через атлас для человека (например, "2 недели для новичка": L1 → L2 → L6 → L7 → L8). Атлас для AI + куррикулум для человека = одна база
  • Mind map view — force-directed граф (HTML) где каждый слой = узел, каждая связь = ребро. Помогает увидеть архитектуру глазами
  • Stub layer — слой-заготовка с frontmatter, но без полного контента. Дописывается по мере применения. Атлас растёт инкрементально
  • Median retrieval cost — целевая стоимость одного обращения агента (target: ~150 токенов медиана). Метрика, которую можно мерить

Теория

Учебник vs атлас: разница архитектур

Учебник предполагает читателя который идёт от начала к концу. Главы упорядочены, каждая опирается на предыдущую. Если ты выдернешь главу 7 из середины — она будет непонятна без главы 6.

Атлас знаний устроен иначе. Каждый слой — самодостаточная страница. Чтобы прочитать L8 (Векторные базы и RAG), не нужно читать L1–L7 по порядку. Слой объясняет себя сам — образом, простыми словами, примерами. Связи с другими слоями указаны в конце, но они не обязательны для понимания.

Это критично для AI-агента. Агент не читает по порядку. Когда пользователь спрашивает "как сделать долговременную память для моего бота?" — агенту нужен L8 целиком и сейчас, а не путь через L1–L7. Атлас отдаёт ровно L8.

🎨 Образ: учебник — это сериал, который нужно смотреть с первой серии. Атлас — это Википедия. Зашёл за конкретной статьёй, прочитал, ушёл. Никто не заставляет тебя пройти 100 статей по порядку.


Анатомия одного слоя

В атласе автора курса каждый слой имеет жёсткую структуру. Это не для красоты — это для retrieval. Когда у всех 54 слоёв одинаковые секции в одном порядке, агент знает где искать.

Frontmatter (YAML):

yaml
---
id: L8-vector-rag
layer: L8
group: understand
title: "Векторные базы и RAG · Долговременная память AI"
keywords: [vector, rag, pinecone, vectorize, qdrant, embedding]
tier: foundation
related_layers: [L7, L51]
related_recipes: [r12, r17]
status: stable
summary_50w: "Долговременная память для AI. Векторная база хранит смыслы как координаты. RAG = найди кусок → вложи в промпт → ответь. Решает context limit и галлюцинации."
hot_section: "Образ"
---

Это паспорт слоя. Агент может прочитать только frontmatter (~150 токенов) и уже понимать: что это, к чему относится, с чем связано, насколько зрелый материал. В 90% retrieval-задач frontmatter достаточно.

Тело слоя — 8 секций:

  1. 🎨 Образ — метафора из жизни. Без неё слой не считается готовым. Образ помогает запомнить и найти слой — это правило для всех слоёв
  2. 📖 Что это — простыми словами, без жаргона. С переводом каждого термина
  3. 🔬 Как работает — механизм без математики. С псевдо-кодом или диаграммой
  4. 🛠 Примеры использования — 3–5 конкретных кейсов
  5. 🎯 Связки (рецепты) — какие готовые комбо используют этот слой
  6. 📚 Ресурсы — таблица сравнения опций, видео, доки, инструменты
  7. 🔗 Связан со слоями — cross-links с пояснением
  8. 📝 Мой конспект — пустая секция для личных заметок владельца

Размер одного слоя — 7–13 KB кириллицы. Если получается больше — слой режется на два. Если меньше 5 KB — слой пока stub.

🎨 Образ: слой — это IKEA-инструкция к одному стулу. Картинки, шаги, список деталей, ссылки на гаечный ключ из соседней коробки. Не учебник по столярному делу. Конкретный стул, конкретная сборка, конкретные связи.


Девять групп компетенций

Слои собраны по группам — это папки 01-understand/, 02-create/ и так далее. Девять групп — не случайное число. Это путь от понимания до production.

Напиши в чат
01-understand/     🧠 Понимаешь AI         (L1-L9)    — основы: LLM, модели, RAG, MCP
02-create/         🎨 Создаёшь              (L10-L17)  — генерация контента, image, video
03-work/           ⚡ Работаешь             (L18-L22)  — продуктивность, ассистенты
04-build/          🛠 Строишь                (L23-L29)  — Claude Code, SaaS, агенты
05-automate/       🤖 Автоматизируешь       (L30-L35)  — workflows, cron, integrations
06-release/        🌐 Выпускаешь            (L36-L41)  — deploy, hosting, domains
07-monetize/       💰 Зарабатываешь         (L42-L48)  — pricing, payments, marketing
08-mindset/        🧭 Mindset                (L50)      — установки, принципы
09-production/     🛡 Production            (L51-L54)  — reliability, observability, security

Каждая группа отвечает на свой вопрос. 01-understand — "что это вообще такое?". 04-build — "как мне это построить?". 07-monetize — "как на этом заработать?". 09-production — "как чтобы не упало?".

Это разделение полезно по трём причинам:

Первая — навигация для человека. Ты заходишь в 04-build/, видишь 7 слоёв, выбираешь нужный. Не нужно сканировать 54 файла глазами.

Вторая — фильтрация для агента. В INDEX.json у каждого слоя поле group. Агент может сказать "дай мне только production-слои" — и получит 4 кандидата вместо 54.

Третья — постепенный рост. Группа 02-create пока тонкая — там 4 готовых слоя из 8. Когда ты углубишься в генерацию видео — заполнишь остальные. Атлас растёт по мере применения, не сразу.


INDEX.json — машинно-читаемая карта

INDEX.json — это сердце атласа. Один файл, который содержит метадату обо всех 54 слоях. Агент читает его первым шагом любого retrieval.

json
{
  "version": "0.5.3",
  "stats": {
    "total_layers": 54,
    "total_books_with_content": 54,
    "active_groups": 9
  },
  "layers": {
    "L8": {
      "f": "library/01-understand/L8-vector-rag.md",
      "g": "understand",
      "k": ["vector", "rag", "embedding", "pinecone"],
      "related": ["L7", "L51"],
      "status": "stable"
    },
    "L51": {
      "f": "library/09-production/L51-data-pipelines.md",
      "g": "production",
      "k": ["etl", "pipeline", "chunking"],
      "related": ["L8", "L52"],
      "status": "stable"
    }
  },
  "curricula": {
    "c01": {
      "title": "Foundation для нуля",
      "layers": ["L1", "L2", "L6", "L7", "L8"],
      "duration": "2 weeks"
    }
  }
}

Зачем такой формат:

  • Маленький — весь INDEX весит 15–30 KB. Прочитать его агенту — ~5 000 токенов. Это разовая стоимость на сессию
  • Машинно-читаемый — JSON парсится в любом языке. Можно фильтровать, искать, сортировать
  • Полный — содержит всё, что нужно для решения "куда идти дальше" без чтения самих слоёв
  • Версионируется — version: 0.5.3 показывает зрелость. Обновляется вместе с атласом

Паттерн retrieval в 4 уровня:

Напиши в чат
L0: Read INDEX.json once       (~5K tokens, once per session)
L1: Read frontmatter of layer  (~150 tokens, обычно достаточно)
L2: Read targeted section      (~300 tokens, если frontmatter мало)
L3: Read full layer            (~3K tokens, только при deep dive)

Медианная стоимость retrieval — 150 токенов. Против ~13 000 токенов "прочитать всю главу учебника". Улучшение в 87 раз. Не за счёт сжатия — за счёт точности.

🎨 Образ: INDEX.json — это оглавление атласа автодорог. Ты не читаешь каждую страницу. Ты смотришь оглавление, видишь "Россия → центр → Москва — стр. 47", открываешь 47, едешь дальше. Оглавление весит 2 страницы, атлас — 300.


Три HTML-вида: cards, tree, mind

Атлас — это не только markdown-файлы для агента. Для человека нужны визуальные виды. В атласе автора курса сделаны три HTML:

library.html — карточки. Каждый слой — карточка с названием, образом, цветной меткой группы. Глаза сканируют сетку 9×6 и находят нужное за 3 секунды. Хорошо когда знаешь как примерно называется тема, но не помнишь точный номер.

tree.html — дерево с drill-down. 9 групп → раскрывается → 6 слоёв в группе → раскрывается → секции внутри слоя. Иерархическая навигация. Хорошо когда нужно понять структуру: "сколько у меня всего по production-теме?"

mind.html — force-directed граф. 45 узлов (некоторые слои объединены), связи показывают cross-links. Граф можно двигать, перетаскивать. Узлы окрашены по группе. Связи разной толщины — толще когда два слоя ссылаются друг на друга. Хорошо для того, чтобы увидеть пробелы: одинокий узел без связей — кандидат на дополнение.

INDEX.html — это входная страница, которая объединяет три вида и даёт ссылки на курикулумы и рецепты.

🎨 Образ: одни и те же знания, три разных стола. Карточки — стол в библиотеке, выбираешь книгу за обложкой. Дерево — каталог, идёшь по веткам. Mind map — пробковая доска со стрелками между файлами. Один материал, три способа смотреть.


Curriculum — мост для человека

Атлас — для AI-агента. Но человек тоже хочет учиться по нему. Прямо из 54 слоёв учиться сложно: с чего начать?

Решение — curriculum. Это последовательный список слоёв с пометкой "читай в таком порядке". Восемь куррикулумов сейчас:

ID Название Длительность Слои
c01 Foundation для нуля 2 недели L1, L2, L6, L7, L8
c02 Build a SaaS MVP 4 недели L1, L9, L23, L25, L26, L36, L37, L38
c03 Локальный AI-бизнес в Эквадоре 6 недель ~10 слоёв
c04 Контент на испанском 3 недели контент-слои
c05 Anthropic Mastery 4 недели claude-слои
c06 Successor onboarding 12 недель весь атлас + Persona
c07 AI-trader path 6 недель data + automate слои
c08 Academy Launch 8 недель release + monetize

Курикулум — это не отдельные новые знания. Это маршрут через атлас. Те же слои читаются в специфическом порядке для специфической цели.

Один атлас обслуживает три аудитории сразу: AI-агента (через INDEX retrieval), эксперта (прямой поиск в graph), новичка (курикулум).

🎨 Образ: одна и та же библиотека. Турист берёт путеводитель ("посетите эти 5 залов"). Историк сам бродит между шкафами. Робот спрашивает каталог и приносит конкретную книгу. Библиотека одна — режимы три.


Стоимость и измерение

Атлас — это не просто структура, это система с метриками. Без метрик не понять, работает или нет.

Что меряем:

  • retrieval_count в frontmatter каждого слоя — сколько раз агент обращался к нему за месяц
  • last_retrieved — когда был последний доступ. Слои с last_retrieved старше 6 мес — кандидаты на удаление или мерж
  • outcome_score — оценка качества ответа после retrieval (1–5). Если слой постоянно даёт плохой результат — переписать
  • my_understanding — green/yellow/red. Ты сам размечаешь свой уровень знания

Целевые метрики:

  • Медиана retrieval cost: ≤ 200 токенов
  • Покрытие cross-links: каждый слой связан с 3+ другими
  • Stub ratio: не более 20% slot заняты заготовками
  • Update freshness: stable-слои обновляются раз в квартал

Это превращает атлас в живую систему. Слои которые никто не читает — увядают. Слои которые читают часто — улучшаются. Атлас сам показывает, куда инвестировать время.


🧪 Практика

Соберём мини-атлас из 10 слоёв на свою тему. Это упражнение займёт 30–40 минут. Тема — на твой выбор: твоё хобби, твоя работа, твой будущий бизнес. Главное чтобы было 10 разных аспектов.

Допустим, тема — "Подкаст с нуля". Мини-атлас будет про запуск подкаста: оборудование, монтаж, дистрибуция, монетизация.

Шаг 1: Создаём папку и INDEX

bash
cd ~/Desktop
mkdir -p mini-atlas/library/{01-equipment,02-recording,03-edit,04-publish,05-grow}
cd mini-atlas

# Создаём пустой INDEX.json
cat > INDEX.json << 'EOF'
{
  "version": "0.1.0",
  "topic": "Подкаст с нуля",
  "updated": "2026-10-04",
  "stats": {
    "total_layers": 0,
    "active_groups": 5
  },
  "groups": {
    "equipment": "Оборудование",
    "recording": "Запись",
    "edit": "Монтаж",
    "publish": "Публикация",
    "grow": "Аудитория"
  },
  "layers": {}
}
EOF

Шаг 2: Пишем 10 слоёв (по 2 на группу)

Один слой = один файл markdown с frontmatter и 8 секциями. Шаблон:

bash
cat > library/01-equipment/L1-microphone.md << 'EOF'
---
id: L1-microphone
layer: L1
group: equipment
title: "Микрофон · Что покупать новичку"
keywords: [microphone, mic, podcast, audio, equipment]
related_layers: [L2, L3]
status: stable
summary_50w: "Микрофон — главный инструмент подкастера. Динамические лучше для шумных комнат, конденсаторные — для студии. Недорогой микрофон начального уровня даёт качество, достаточное для большинства задач."
---

# L1 · Микрофон

## 🎨 Образ
Микрофон — это глаза слушателя. Через него слушатель видит твою комнату, твой стол, твоё дыхание. Дешёвый микрофон — это окно с грязным стеклом.

## 📖 Что это
Динамический микрофон ловит звук узким лучом — отсекает шум комнаты. Конденсаторный ловит широко — отсекает только то, чего нет.

## 🔬 Как работает
... (мембрана, катушка, USB vs XLR)

## 🛠 Примеры использования
- Shure MV7 — динамический, USB+XLR
- Samson Q2U — динамический, USB, недорогая модель
- Rode NT1 — конденсаторный, XLR
- Актуальные цены смотри в магазинах: они меняются

## 🎯 Связки
- Stack: микрофон + аудио-интерфейс + наушники

## 📚 Ресурсы
- Видео: Podcastage YouTube reviews
- Магазины: Sweetwater, B&H

## 🔗 Связан со слоями
- L2 (Аудио-интерфейс) — для XLR микрофонов нужен интерфейс
- L3 (Наушники) — нужны для контроля

## 📝 Мой конспект
_[твои заметки]_
EOF

Сделай так для 10 тем:

  • L1-microphone, L2-interface (equipment)
  • L3-room-acoustics, L4-recording-software (recording)
  • L5-editing-basics, L6-noise-cleanup (edit)
  • L7-hosting, L8-rss-distribution (publish)
  • L9-show-notes, L10-promotion (grow)

Шаг 3: Заполняем INDEX.json

bash
cat > INDEX.json << 'EOF'
{
  "version": "0.1.0",
  "topic": "Подкаст с нуля",
  "stats": { "total_layers": 10, "active_groups": 5 },
  "layers": {
    "L1": { "f": "library/01-equipment/L1-microphone.md", "g": "equipment", "k": ["mic", "audio"], "related": ["L2", "L3"] },
    "L2": { "f": "library/01-equipment/L2-interface.md", "g": "equipment", "k": ["xlr", "usb"], "related": ["L1"] },
    "L3": { "f": "library/02-recording/L3-room-acoustics.md", "g": "recording", "k": ["echo", "absorption"], "related": ["L1"] },
    "L4": { "f": "library/02-recording/L4-recording-software.md", "g": "recording", "k": ["daw", "audacity"], "related": ["L5"] },
    "L5": { "f": "library/03-edit/L5-editing-basics.md", "g": "edit", "k": ["cut", "fade"], "related": ["L4", "L6"] },
    "L6": { "f": "library/03-edit/L6-noise-cleanup.md", "g": "edit", "k": ["noise", "compressor"], "related": ["L5"] },
    "L7": { "f": "library/04-publish/L7-hosting.md", "g": "publish", "k": ["buzzsprout", "anchor"], "related": ["L8"] },
    "L8": { "f": "library/04-publish/L8-rss-distribution.md", "g": "publish", "k": ["rss", "apple-podcasts"], "related": ["L7"] },
    "L9": { "f": "library/05-grow/L9-show-notes.md", "g": "grow", "k": ["seo", "notes"], "related": ["L10"] },
    "L10": { "f": "library/05-grow/L10-promotion.md", "g": "grow", "k": ["social", "marketing"], "related": ["L9"] }
  }
}
EOF

Шаг 4: Тестируем retrieval

Открой Claude Code в папке mini-atlas/. Задай вопрос:

"Что мне купить из оборудования для подкаста с ограниченным бюджетом?"

Claude должен:

  1. Прочитать INDEX.json (увидит группу equipment с L1, L2)
  2. Прочитать frontmatter L1 (увидит summary про микрофоны для начинающих)
  3. Прочитать секцию "Примеры использования"
  4. Ответить с конкретными моделями

Если Claude прочитал все 10 файлов вместо двух — значит retrieval не работает. Это сигнал что нужно явно сказать в CLAUDE.md: "Перед поиском всегда читай INDEX.json первым".

В каждом слое в секции "🔗 Связан со слоями" укажи 2–3 связи. Цель — чтобы граф связности был плотным, без одиноких узлов.

Для mind map можно использовать готовый template на vis.js или d3.js. Минимальный HTML:

html
<!DOCTYPE html>
<html><head><title>Mini Atlas</title>
<script src="https://unpkg.com/vis-network/standalone/umd/vis-network.min.js"></script>
</head><body>
<div id="net" style="height:600px;border:1px solid #ccc"></div>
<script>
const nodes = new vis.DataSet([
  {id:1, label:'L1 Mic', group:'equipment'},
  {id:2, label:'L2 Interface', group:'equipment'},
  {id:3, label:'L3 Acoustics', group:'recording'}
  // ... все 10
]);
const edges = new vis.DataSet([
  {from:1, to:2}, {from:1, to:3}
  // ... cross-links из INDEX.json
]);
new vis.Network(document.getElementById('net'), {nodes,edges}, {});
</script></body></html>

Открой в браузере — увидишь свой первый атлас в форме графа.

Шаг 6: Замерь retrieval-стоимость

Задай Claude 5 разных вопросов на этой теме. Считай токены каждого ответа. Если средний retrieval — больше 500 токенов, значит атлас работает неэффективно. Сократи слои, уплотни frontmatter, проверь INDEX.

Целевая метрика для мини-атласа из 10 слоёв: 150–250 токенов медиана.


⚠️ Антипаттерны

❌ Один большой PDF вместо сети слоёв. "Я соберу всё знание в один файл на 200 страниц." Это умирает на retrieval — агент читает все 200 страниц на каждый вопрос. Сеть из 54 коротких слоёв побеждает один том в 200 страниц по цене обращения.

❌ Слой без образа. "Я инженер, мне образы не нужны." Образ нужен не тебе — он нужен будущему читателю, который пришёл из другой области. Без образа слой не находит контакт с новой темой. Правило автора: слой без секции "🎨 Образ" — не готов.

❌ Слои без cross-links. "Каждый слой самодостаточен, зачем связи?" Тогда у тебя не атлас, а архив. Связи — это то, что превращает 54 файла в сеть. Без них агент не может перейти от L8 к L51, чтобы достать пайплайн.

❌ INDEX.json как чек-лист. Если в INDEX только пути и названия — он бесполезен. INDEX должен содержать keywords, related_layers, summary_50w, group. Чем богаче INDEX — тем чаще агенту хватает только его, не залезая в сами слои.

❌ Атлас без метрик. Делать слои "на всякий случай", не зная какие используются. Через год обнаружишь, что 60% слоёв ни разу не запрашивались. Меряй retrieval_count с первой недели.



✅ Checkpoint

Проверь себя:

Если 6+ пунктов уверенно — можно идти дальше. Если меньше — собери ещё один мини-атлас на другую тему. Атлас собирается руками, не теорией.


Источники

  • Атлас автора курса — 54 слоя, 9 групп компетенций: структура, которую разбирает этот урок
  • Его INDEX.json (версия 0.5.3) — рабочий пример machine-readable map
  • Anthropic Contextual Retrieval (2024) — паттерн frontmatter + chunk для качественного RAG
  • Greg Kamradt "RAG From Scratch" — основы retrieval-стоимости
  • vis.js / d3.js force graph — визуализация mind map

→ Следующий урок: Arsenal of Prompts — шесть переиспользуемых режимов промптов

Отметка хранится только в этом браузере и никуда не отправляется. Мой прогресс