Структура модуля
AI не выдумывает книги. Он предсказывает следующий токен.
«AI kitob to'qib chiqarmaydi — u keyingi tokenni taxmin qiladi»До того как решать «отдать AI или сделать самому» — нужно понять как он вообще собирает ответ. Один механизм: предсказать следующий токен по тому, что было до. Из этого следует всё — где он силён, где врёт уверенно, и какие задачи ему можно отдать без присмотра.
Hook — про книги, которых нет.Mavjud bo'lmagan kitoblar haqida
Зухра — ментор Python в Юнусободе. Помимо кода ведёт культурный раздел в школьной газете. Просит агента: «напиши эссе про узбекскую поэтессу Зульфию для детей 12-14 лет, 800 слов, упомяни 3-4 её главных сборника стихов».
Через 40 секунд — гладкий текст. Пять названий сборников. Все звучат правдоподобно. Зухра проверяет в каталоге Алишер Навои библиотеки — два сборника не существуют. Агент их выдумал. Уверенно.
Это не «AI глупый». Это не «модель сломалась». Это Next Token Prediction — та самая механика, благодаря которой агент гладко пишет код и переводит письма родителям. Та же механика — собирает несуществующие сборники из правдоподобных слов.
Понять NTP — значит научиться заранее видеть где агент работает на well-worn paths, а где сворачивает в novel territory и начинает врать. Без этого делегировать ему задачи — лотерея.
Три навыка, которые я проверю
- Разделить свои задачи (минимум 10) на три уровня:
Full delegation(агент делает, ты апрувишь diff) ·Co-creation(агент драфтит, ты правишь) ·Validation(агент проверяет, ты делаешь). - Распознавать на лету, где задача в well-worn paths (NTP силён — boilerplate, перевод, рефактор по образцу) vs novel territory (NTP плывёт — редкие факты, имена, специфика твоего проекта без контекста).
- Объяснить ребёнку или коллеге на пальцах, как агент собирает ответ — token by token, по probability distribution — без буллшита про «магию» и «AI думает».
Mental model — NTP, как агент собирает ответ.NTP — agent javobni qanday yig'adi
В прошлом модуле ты дал агенту контракт. Теперь — как он вообще пишет ответ: от этого напрямую зависит, что ему можно доверить, а что придётся проверять руками.
1. AI не ищет ответ — он его дописывает
AI — это не поисковик. Это очень мощный автокомплит: он пишет ответ слово за словом, каждый раз выбирая следующее по принципу «что чаще всего идёт после этого». Из одного этого свойства вытекают и плавная речь, и галлюцинации — это не два разных механизма, а одна монета с двух сторон.
2. Как это устроено внутри — на пальцах
Представь игру: берёшь 5 своих SMS, считаешь, какое слово за каким чаще идёт, и по этой таблице частот пишешь новое «сообщение». LLM делает ровно это — только вместо маленькой таблицы у неё миллиарды параметров, натренированных на огромном корпусе текста.
Главный сдвиг. Когда агент пишет «сборник стихов "Бахор" 1953» — он не достал этот факт из памяти. Он сгенерировал токен за токеном, и каждый токен был «правдоподобный по форме». «Бахор» — нормальное узбекское слово. 1953 — нормальный год. Это валидное продолжение по статистике. Существует ли такой сборник в реальности — для NTP не вопрос механизма.
3. Модель — это «архив интернета», а не база данных
Хорошая метафора от Андрея Карпати: модель — это сжатый с потерями zip-архив интернета. Не индекс, не база данных — архив. Когда ты «спрашиваешь её про Зульфию», ты не делаешь поиск по записи — ты заставляешь архив распаковать что-то правдоподобное. Частое и популярное распаковывается чётко. Редкое — реконструируется по соседним обрывкам: звучит правильно, но конкретики там нет.
Andrej Karpathy · «How I Use LLMs» · 2025
4. Well-worn paths vs novel territory
Это шкала, а не «да/нет». Слева — задачи, которые модель видела миллион раз. Справа — там, где она едет по тонкому льду и сама этого не знает.
for-loop в list comprehension (Python idiom, повторён в корпусе бесконечно)3.7.2 (модель знает API «в общих чертах», уверенно дописывает несуществующий метод)while для 9-летнего ребёнка (популярная педагогическая задача)Граница подвижна. Одна и та же задача с прочитанными файлами и CLAUDE.md уезжает влево (у агента есть факты, а не догадки); без контекста — вправо (агент додумывает). Поэтому: прежде чем отдать агенту что-то незнакомое — дай ему источник правды в контекст (файл, документ, ссылку). Тогда даже редкая задача становится для него «хоженой тропой».
5. Гладкий текст умеет прятать догадку
Самое опасное для ментора: агент не сигнализирует, где он знает, а где угадал. Догадка выходит таким же уверенным, ровным текстом, как факт. Поэтому проверять надо именно конкретику — имена, даты, цитаты, ссылки, числа: чем точнее заявление, тем выше шанс, что оно выдумано, и тем сильнее оно требует сверки с источником.
Отсюда мостик к Delegation. Если ты понял, как агент собирает ответ — ты понимаешь, как его проверять. А значит можешь осознанно решать: что отдать агенту целиком, что сделать вместе, а что — только под твоим контролем. Это и есть первое D — делегирование.
4D · Delegation — что отдать, что оставить.Nimani berasan, nimani o'zing qilasan
Первое из четырёх умений оператора — делегирование: решить «делаю сам / вместе с агентом / отдаю агенту». Дальше — три части этого решения и три практических уровня для ментора Mars.
Делегирование — это умение увидеть, когда и как подключать AI к своей задаче. В основе — понимание его сильных и слабых сторон (ровно то, что мы только что разобрали через NTP) и осознанное решение, где он работает сам, где помогает тебе, а где лучше не подпускать.
Три части одного решения
«Что я вообще делаю?»
Дочисти свою задачу до конца, прежде чем звать AI. Что для тебя «хороший результат»? Какие куски требуют твоей экспертизы, а какие — нет? Иначе ты делегируешь то, что сам ещё не сформулировал.
«А что он умеет?»
Знай сильные и слабые стороны инструмента. Для нас: Claude Code силён на коде, слаб на свежих фактах, без CLAUDE.md ничего не помнит между сессиями. Это ровно та карта NTP, которую мы только что нарисовали.
«Ок, вот план»
Раздели: что делаешь ты, что вместе, что агент сам. Каждый — на своих сильных сторонах. Цель не «всё автоматизировать», а напарничество.
Цель — не «убрать человека из процесса», а усилить тебя там, где силён ты, и отдать агенту то, в чём силён он. Для ментора Mars: педагогические решения, оценка ученика, выбор «чему сегодня учим» — это твоё. Boilerplate, перевод, рефактор по образцу — это агент.
Три уровня delegation для ментора (как применить)
Мы берём sub-component 03 (Task Delegation) и раскладываем её в три практических уровня. Это не abstract — это то, как ты будешь маркировать свой список 10 задач в упражнении.
«сделай и покажи diff»
Пример: «прочитай
01-circle.py, по образцу сделай 06-triangle.py ... 10-spiral.py. ≤30 строк, имена как в 01». Ты делаешь git diff, апрувишь.«план — мой, реализация — твоя»
Пример: «придумай 5 заданий по циклам для 12-летних». Агент кидает каркас — ты вычёркиваешь два, переписываешь одно, потом просишь финализировать.
«проверь, я сам исправлю»
Пример: «прочитай мой
lesson-12-loops.md, найди (а) синтаксические ошибки в код-примерах, (б) места где код сложнее темы. Не правь — выдай список». Список фильтруешь ты — потому что часть findings будут сами галлюцинацией.Связка с NTP. Уровень выбирается не наугад. Full — когда задача в well-worn paths и есть verifiable check (diff, тест). Co-creation — когда задача требует twoего педагогического суждения (это уже не well-worn). Validation — когда задача в novel territory (твой урок, твоя специфика), но агент может помочь как лишняя пара глаз — при условии что ты потом фильтруешь.
Сейчас ты увидишь 4 реальных запроса Зухры в Claude Code. Запиши себе на бумаге: на каком из 4 — NTP сработает корректно? На каком — выдумает? И как именно Зухра поймает галлюцинацию (если поймает)? Прогноз делается сейчас, проверка — через 3 минуты ниже.
Demo — один день Зухры в Claude Code.Zuhraning bir kunlik ish kuni
Зухра, ментор Python в Юнусободе. Группа 7-9 лет (Mars Python младшие). Сегодня — 4 разных задачи за утро. Каждая ложится на свой уровень delegation. На последней — NTP даёт сбой; смотри как именно она это ловит.
10:14 · Full delegation — перевод объявления родителям
Завтра выезд в парк, надо разослать родителям по-узбекски. Хорошо знакомый Claude well-worn path: стандартные конструкции, миллион примеров в корпусе.
$ claude ✓ CLAUDE.md loaded ~/mars/comms/CLAUDE.md (1,420 tokens) › переведи на узбекский для родителей, тон вежливый, без эмодзи: "Завтра в субботу в 10:00 выезд в Tashkent Park. Сбор у филиала Юнусобод. Вернёмся к 13:00. Возьмите воду и кепку. Если ребёнок не идёт — напишите до 18:00 сегодня." ⠋ Generating… Hurmatli ota-onalar, Ertaga, shanba kuni soat 10:00 da Tashkent Parkga sayohat qilamiz. Yig'ilish — Yunusobod filiali oldida. Soat 13:00 ga qaytamiz. Iltimos, farzandingiz uchun suv va shapka olib keling. Agar farzandingiz bormaydigan bo'lsa, iltimos, bugun soat 18:00 gacha xabar bering. Hurmat bilan, Mars IT School · Yunusobod
Что произошло: well-worn path в чистом виде — перевод с парных языков. Зухра проверяет глазами 30 секунд, отправляет. Уровень — Full. Diff = текст, verifiable = понимает узбекский родительским взглядом.
10:18 · Co-creation — 5 заданий по циклам для группы 12-14
Зухра иногда подменяет коллегу на старшей группе. Готовит блок «введение в for и while».
› придумай 5 заданий на циклы (for/while) для Python-группы 12-14. уровень: знают переменные, if/else, ввод. циклы — первый раз. каждое задание: название, цель, скелет кода с TODO для ребёнка, ожидаемый выход. возрастающая сложность. ⠋ Drafting… 1. "Считалочка от 1 до N" — for, range, print 2. "Сумма от 1 до N" — for, аккумулятор 3. "Угадай число" — while, input, break 4. "Таблица умножения" — nested for 5. "Алгоритм Эратосфена" — list, for, modulo + скелеты кода каждой задачи
Что делает Зухра. Открывает каждый скелет. Задание 5 (Эратосфен) — слишком сложно для первого знакомства с циклами, выкидывает. Задание 2 — переименовывает в «копилка» (метафора понятнее). Задание 3 — у агента в while нет «попыток» — добавляет счётчик. Потом просит финализировать оставшиеся 4 в .py файлы.
Что произошло: well-worn path для каркаса (Python boilerplate, стандартные туториалы), но педагогическое решение «что подходит этому возрасту» — это Зухра. Уровень — Co-creation. Без её фильтра 5-я задача попала бы детям и угробила урок.
10:25 · Validation — проверка плана урока
Завтра урок «списки» в группе Python 7-9. План написала вчера, хочет вторую пару глаз: не наврала ли в Python-фактах, не перегрузила ли возраст.
› прочитай lesson-08-lists.md. найди: (а) фактические ошибки про Python — синтаксис, поведение; (б) места где код сложнее темы урока (мы только списки); (в) куски где имя переменной не как в CLAUDE.md (snake_case, рус. слова — ок). НЕ правь файл. выдай список с цитатами. ⠋ Reading lesson-08-lists.md… ⠋ Reading CLAUDE.md… Найдено: [a-1] строка 47: «fruits.append() возвращает новый список» — это неверно. append() меняет on the spot и возвращает None. [a-2] строка 89: «срез fruits[1:-1] исключает последний и предпоследний» — неверно. Исключает только последний. [b-1] строка 112: пример использует list comprehension — сложнее темы урока, отложить. [c-1] строка 64: переменная fruitList — camelCase, в CLAUDE.md требуется snake_case. [a-3] строка 134: «len() для строки тоже работает через __length__» — это __len__ (одно подчёркивание с каждой стороны было бы __len__, неверно записано).
Зухра не доверяет на слово. Открывает строки 47, 89, 134 — три фактические ошибки подтверждаются по её опыту. Хорошо. Строка 64 — её camelCase, действительно надо. Строка 112 — соглашается.
НО. Зухра помнит про NTP. Она просит у агента второй проход:
› для каждой найденной ошибки [a-1..a-3] цитируй точную строку из моего файла и из официальных Python docs (раздел и URL). если URL не помнишь — пиши "URL: не уверен" вместо догадки. ⠋ Re-reading lesson-08-lists.md… [a-1] мой файл стр.47: «fruits.append(x) → возвращает [...x]» Python docs: data structures · list.append() → URL: не уверен (помню что в "More on Lists") [a-2] мой файл стр.89: «fruits[1:-1] исключает последний и предпоследний» Python docs: tutorial · sequence slicing → URL: не уверен [a-3] cтр.134 в файле — НЕТ упоминания __length__. Я ошибся в первом ответе. Прошу прощения, стр.134 — пример range(len(fruits)), не __len__.
Вот оно. Третья «ошибка» (__length__) — была галлюцинацией агента. Цитаты из файла на двух первых нашлись (это правда). На третьей агент признался когда его прижали к источнику. Уровень — Validation. Зухра использовала агента как «лишнюю пару глаз», но финальная фильтрация — её.
10:31 · Novel territory — эссе про Зульфию
Та самая задача из hook'а. Зухра попробовала — гладкий текст, 5 названий сборников. Прямо в Claude Code:
› напиши эссе про узбекскую поэтессу Зульфию для культурного раздела газеты школы. 800 слов. для детей 12-14. упомяни 3-4 её главных сборника стихов с годами. ⠋ Generating 800 words… Зульфия Исроилова (1915–1996) — голос узбекской поэзии XX... [...] её сборники включают: • «Hayot varaqlari» (1932) • «Qizlar qo'shig'i» (1947) • «Bahor nafаsi» (1953) • «Onamning kuylari» (1968) • «Xotira» (1985) [...]
Зухра ловит галлюцинацию двумя движениями.
- Просит источник под каждое название: «для каждого сборника дай: каталог библиотеки или URL. если не уверен — пиши "не уверен"». Агент возвращает: «Hayot varaqlari — есть в каталоге Алишер Навои; Qizlar qo'shig'i — есть; Bahor nafаsi — не уверен; Onamning kuylari — не уверен; Xotira — есть».
- Сверяет 5 названий в каталоге
natlib.uz(Национальная библиотека Узбекистана). 3 находятся, 2 — нет. Совпадает с тем, что агент признал.
Что произошло. Это не Validation, это novel territory без источника в контексте. NTP уверенно сгенерировал 5 правдоподобных названий, потому что «название сборника узбекской поэтессы середины XX века» — это валидное по форме сочетание слов. Из них правда — 3, выдумка — 2. Smooth prose wrapped a guess.
Урок для Зухры (и для тебя): когда задача про конкретные факты в narrow domain (имена, даты, заголовки, цитаты) — не делегируй full. Либо дай агенту источник (загрузи каталог / Wikipedia / PDF), либо сам напиши факты, а агент пусть только обернёт их в текст для нужной аудитории.
Как это выглядит для Тимура (Python олимп 12–14, Чиланзар)
У Тимура группа олимпиадников. CLAUDE.md из M1 — у него специфический: разрешён list comprehension, dataclasses, требуется комментарий со сложностью алгоритма (O(n log n)) над каждой задачей. Сегодня — Validation-задача.
Ученик прислал решение задачи «префиксные суммы, найти подотрезок с суммой = K» из olymp.uz. 87 строк. Работает на маленьких примерах, на большом — TLE. Тимур пускает агента проверить корректность и сложность.
› прочитай student-solution.py. проверь: (1) корректность — есть ли логические ошибки; (2) сложность — оцени O(?) и сравни с ожидаемым O(n); (3) соответствие CLAUDE.md (комментарий O(...) сверху, snake_case). [1] корректность: на стр. 34 в проверке prefix[j] - prefix[i] == K логически верно. Но цикл на стр. 28-40 — двойной for, это O(n²), не O(n). [2] сложность: фактически O(n²). Ожидаемо для prefix sums — O(n) через hashmap "видели ли prefix[j]-K раньше". [3] CLAUDE.md: комментария "# O(...)" сверху нет. переменные prefSum, nMax — camelCase. [reference] в этой репе есть похожие решения: olymp/easy/sum-subarray.py — O(n) через dict. olymp/medium/two-sum.py — тот же паттерн.
Что Тимур получил. Корректность подтверждена (агент проверил логику ветки на стр. 34), сложность объяснена с конкретным анти-паттерном (двойной for на стр. 28-40), нарушения конвенций из CLAUDE.md перечислены, плюс ссылки на свои же эталоны в репе. Тимур не верит на слово — открывает olymp/easy/sum-subarray.py своими глазами, видит O(n)-вариант, ведёт ученика к нему.
Где NTP помог: well-worn path (анализ Big-O, типичные паттерны префиксных сумм — миллион учебных примеров в корпусе). Где могло наврать: если бы агент придумал ссылку на несуществующий файл в репе — Тимур поймал бы, открыв его. Verification step встроен.
Упражнение — 3 probe для своих задач.Uchta probe — o'z vazifalaringga
Тест на проверку — на твоих реальных задачах. Без рук это не возьмётся: закладывай 20-25 минут.
Выпиши 10 реальных coding/teaching задач следующей недели
Не «вообще дела» — конкретные задачи ментора Mars, которые можно отдать (или не отдать) в claude. Если задач меньше 10 — добавь типовые из работы коллег (проверка ДЗ, обновление примеров, перевод материалов, скрипты для разметки).
- Открой блокнот / NOTES.md / лист бумаги. Пиши столбиком 1-10.
- Каждая задача — одной фразой, конкретно: «обновить
06-snake.pyдобавить стрелочки» (а не «доработать игру»). - Маркируй ⭐ те, что требуют CLAUDE.md (твой стек, конвенции твоей группы), и ☆ те, что cold start ok (перевод объявления — не требует, generic Python boilerplate — не требует).
Рядом каждой задачи поставь Full / Co / Validation / None
Это применение карты NTP × Delegation к твоему списку. None — это валидный ответ для задачи, где AI не нужен (например, «провести 1:1 с ребёнком которого травят» — это не Claude Code, это ты).
- Для каждой из 10 задач — буква в одну колонку: F (Full), C (Co-creation), V (Validation), N (None).
- Справа — одна фраза-аргумент: почему именно этот уровень. Применяй карту well-worn vs novel из mental model.
- Проверь баланс: если у тебя 9 Full и 1 None — скорее всего ты переделегируешь. Если 9 None и 1 Full — скорее всего недо. Здоровый разброс — обычно 3-4 Full, 3-4 Co, 1-2 V, 1-2 N.
Возьми ОДНУ Full и ОДНУ Co — сделай обе в claude
Тут техника встречается с реальностью. CLAUDE.md из M1 должен лежать в репе — это база для probe.
- Full: открой
claudeв нужной репе, дай задачу одной репликой. Жди результат. Не правь промпт по дороге — суть Full в том чтобы получить готовое. - Открой
git diff(или просмотри новые файлы). Запиши: что ровно, где удивил (приятно или неприятно), что пришлось редактировать. - Co-creation: то же самое, но первой репликой проси только план (без кода). Поправь план словами. Только после approve — попроси код.
- Сравни ощущения. В каком случае ты больше доверял результату и почему. В каком меньше времени потратил.
Перед тем как проверять себя — пауза на 60 секунд
Эти ответы остаются у тебя — мы их не отправляем. Это способ заякорить два момента, на которых модуль вырывается из «прочитал и забыл».
Quiz — проверь себя за 3 минуты.O'zingni sina — 3 daqiqada
Три apply-вопроса. Не «вспомни определение», а «примени к ситуации». Если хотя бы один ошибся — вернись к соответствующему разделу.
Ты дал агенту запрос «напиши эссе про Зульфию Исроилову, упомяни её сборники с годами». Получил 5 названий сборников с годами. Что нужно сделать ДО того как использовать этот список с детьми?
У тебя три задачи на сегодня. Какой уровень delegation подходит каждой?
Z1: прочитать 01-circle.py и сделать по образцу 06-triangle.py ... 10-spiral.py (5 файлов).
Z2: придумать 5 заданий по словарям для группы 12-14.
Z3: прочитать твой план урока lesson-12.md, найти места где код сложнее темы.
На какой из трёх задач NTP-механизм вероятнее всего сгалюцинирует уверенно?
while, через бытовой пример/init, /memory, /compact, plan mode, sub-agents
Что дальше — Модуль 3.Keyingisi — Modul 3
Как просить, чтобы агент не ушёл туда, где слаб
Теперь ты знаешь что отдать агенту. В М3 — как сформулировать запрос, чтобы агент не свернул в novel territory: product / process / performance в одной фразе, @-mention файлов как источника, plan mode когда задача требует обзора кодовой базы. Цель — превратить твою Co-creation в Full, добавив правильный контекст в запрос.
Atribuция и лицензия
Этот модуль адаптирован Mars IT School (2026) на основе:
— «AI Capabilities and Limitations» — Anthropic Academy, 2026, уроки 4-5 (Next Token Prediction) — verbatim определение и упражнение «The Verification Test».
— «AI Fluency: Framework & Foundations» — Rick Dakan, Joseph Feller, Anthropic, 2025 (CC BY-NC-SA 4.0) — уроки 6-7 (Delegation), три sub-component.
— Andrej Karpathy «How I Use LLMs» (2025) — метафора «1 TB zip file with smiley face» — fair use в образовательных целях.
— Claude Code documentation (claude.com/docs) — рабочий цикл, plan mode, tool use loop.
Наша адаптация — CC BY-NC-SA 4.0. Можно копировать, ремиксить, использовать в обучении — с указанием Mars IT School и сохранением той же лицензии.