Не инструкция к боту. Матчасть — то, что должен знать пилот, прежде чем взлетать.
Эта штука существует по одной причине: следующие недели ты будешь не только кормить моих попугаев. У тебя будет доступ к инструменту, которым я пользуюсь каждый день последние несколько месяцев, чтобы строить рабочий софт, разбираться в чужом коде за минуты и автоматизировать половину рутины. Это не ChatGPT в браузере. Это агент — модель, у которой есть руки: она читает и пишет файлы у тебя на компьютере, лезет в терминал, гуглит, ставит программы, запускает их и смотрит, что получилось.
ChatGPT в браузере
только текст в ответ
не видит твои файлы
ничего не ставит и не запускает
Агент — Codex
читает и пишет файлы
работает в терминале, гуглит
ставит программы и запускает
Ты будешь работать в Codex — настраивать его будешь сам, но всё, что здесь написано, я вытащил из своей практики с Claude Code, его братом по сути. Принципы совпадают один в один. Здесь не теория из интернета — каждый урок в этом документе родился из реальной ситуации, часто из факапа, который я потом разобрал и превратил в правило. Вся эта фактура живёт у меня в Obsidian — том самом инструменте, который дальше, в модуле 5, я тебе тоже порекомендую, не абстрактно, а буквально: вот программа, вот с чего начать.
Что у тебя будет на руках, если пройдёшь весь путь: рабочий прототип платформы для подготовки к ЕГЭ — с напоминаниями в телеграме, банком настоящих заданий и статистикой по трём предметам. Но если честно, платформа — только повод. Настоящая цель — чтобы к моему возвращению ты умел разговаривать с ИИ-агентом как человек, который понимает, что делает, а не тыкается наугад.
напоминанияв телеграме
банк заданийнастоящих, из ФИПИ
статистикапо трём предметам
10½модулей — от азов до своего агента
1сквозной проект — платформа для ЕГЭ
0 ₽обязательно тратить — всё по подписке
Как это читать
1–4по порядку, минут 40–60 — это фундамент5–8½прочитай раз, дальше — справочник по ходу дела9твой проект — здесь ты проведёшь реальные недели10на будущее, не горит
Модуль 00 · Старт
Перед взлётом
Матчасть — то, что знаешь до старта. Этот блок — как вообще сесть в кабину.
Весь остальной документ молча предполагает, что у тебя уже открыто и отвечает приложение Codex. Это единственный шаг, который я не сделаю за тебя из другого города — поэтому распишу руками, один раз, до всего остального. Ты на Windows, программу для работы с ИИ-агентом раньше не ставил — значит, идём совсем с нуля, по шагам. Ничего страшного, честно.
Что нужно. Твой компьютер, аккаунт ChatGPT (тот, по которому идёт подписка — отдельно платить не надо, «ключ API» не нужен) и минут десять. И сразу сниму главный страх: это не программирование. Ты поставишь одно приложение мышкой и дальше будешь говорить с агентом по-русски. Код писать не придётся — и уж тем более не придётся открывать никакой терминал, это всё приложение берёт на себя.
Что нужно перед стартом
компьютер на Windows
аккаунт ChatGPT (по подписке)
минут десять
Поставь приложение
Всё, что нужно, — одна программа: приложение ChatGPT с режимом Codex внутри. Открой Microsoft Store, в поиске набери ChatGPT и нажми «Установить». Через минуту-другую — открывай.
Самая частая путаница первого дня
Ищешь в Store «Codex» и не находишь? Приложение официально называется ChatGPT — Codex это режим внутри него, а не отдельная программа.
Войди
Открой приложение — увидишь экран «Войти в ChatGPT». Жми «Продолжите, чтобы войти» и авторизуйся тем же аккаунтом, что и подписка. После входа перед тобой — главный экран: слева список задач, справа большое поле «Спросите что угодно». Это и есть твой рабочий стол с агентом.
Привяжи папку и напиши первую задачу
Прямо над полем ввода — кнопка «Выбрать проект». Нажми её → «+ Новый проект» → «Использовать существующую папку» — и укажи любую папку на компьютере, хоть Рабочий стол. Запомни этот трюк, дальше будешь повторять его ещё не раз. Теперь набери в поле ввода:
Codex — первая задача
Покажи, какие файлы лежат в этой папке.
Вот момент, ради которого весь этот модуль. ChatGPT в браузере так не смог бы — твою папку он не видит. А агент сейчас реально в неё заглянет и перечислит, что внутри. Увидел список своих же файлов — связь есть, руки работают.Считай, рукопожатие состоялось. С этой секунды ты не «пишешь боту» — ты работаешь с агентом. Дальше — модуль 1: там разберёмся, что это за зверь, и ты соберёшь себе первого напарника.
Модуль 01 · Фундамент
Агент — это не чат-бот
Тот же движок внутри, совершенно другое животное снаружи.
ChatGPT, с которым ты уже имел дело, — это диалог в коробке. Ты пишешь, он отвечает текстом, и на этом всё: он не видит твой компьютер, не может открыть файл, ничего не может установить или запустить. Всё, что он умеет, — сгенерировать текст в ответ на твой текст.
Агент — другое животное. Внутри та же языковая модель, но вокруг неё обвязка из инструментов: он может прочитать файл на твоём диске, отредактировать его, выполнить команду в терминале, открыть сайт, поставить библиотеку, запустить твою программу и посмотреть, что она вывела — а увидев ошибку, сам её исправить и попробовать снова.
Чат — диалог в коробке
Агент — модель с руками наружу
Ключевая идея — цикл
Агент не отвечает один раз и не замолкает. Он смотрит на задачу → делает шаг → смотрит на результат этого шага (текст ошибки, содержимое файла, вывод команды) → решает, что делать дальше. Это уже не разговор — это работа, которую кто-то выполняет у тебя на глазах.
задачашагсмотрит результатрешает, что дальше
Цикл работы: шаг → результат → решение, и снова
Почему ставки выше в обе стороны
Хороший агент экономит тебе часы — реально построит рабочий кусок твоей платформы, пока ты пьёшь чай. Плохо направленный агент с той же лёгкостью удалит не тот файл, потратит твои деньги на ненужный вызов или разошлёт то, что разослать не стоило. Всё, что дальше в этом документе, — про то, как получить первое и не словить второе.
ПОЛЬЗАРИСКпостроит кусок платформы, пока пьёшь чайснесёт не тот файл · спалит деньги · разошлёт лишнее
Та же сила работает в обе стороны — весь вопрос, куда её направить
Практика · платформа ЕГЭ
Когда в модуле 9 Codex за пять минут соберёт тебе рабочий скелет телеграм-бота — вот это оно и есть. Не подсказка на будущее, а реальное действие, выполненное прямо сейчас на твоей машине.
Собери первого напарника — учителя
Теперь ты знаешь, что агент — это модель плюс руки. Остался главный приём, на котором держится вся моя работа: агенту можно выдать роль. Не «универсальный помощник по всему на свете», а конкретная должность с конкретными обязанностями. И первым в твоей команде будет не строитель — им ты обзаведёшься в модуле 9, — а учитель: он поведёт тебя по этой методичке и будет проверять, что ты реально понял, а не просто кивнул.
Делается за пять минут, всё мышкой. Заведи в Проводнике папку уроки и сохрани в неё эту страницу (Ctrl+S прямо в браузере). Открой приложение → «Новая задача» → «Выбрать проект» → «+ Новый проект» → «Использовать существующую папку» — и укажи уроки. Тот же трюк, что в модуле 0, только папка теперь целевая; «Новая задача» нужна лишь потому, что экран уже занят прошлым разговором — в модуле 0 он был свежим сам по себе. Дальше первое поручение агенту: «создай файл AGENTS.md вот с таким текстом» — и вставь следом текст из блока ниже. Файл руками делать не надо — у агента же есть руки, пусть отрабатывает:
уроки/AGENTS.md — роль учителя
Ты — мой учитель по методичке «Матчасть» (она лежит в этой же папке).
Я прохожу её впервые, веди меня по модулям по порядку.
В конце каждого модуля:
— попроси пересказать главное своими словами;
— задай вопрос из блока «Проверь себя»;
— не переходи дальше, пока я не отвечу сам.
Если отвечаю мимо — не выдавай ответ сразу, наведи вопросом.
Раз в пару модулей возвращайся к старому вопросу — проверь, не забыл ли я.
Что такое AGENTS.md — разберём в модуле 2, пока хватит одного: агент читает этот файл перед началом каждой новой задачи и принимает написанное за инструкцию. Перезапускать ничего не надо — просто открой в этом же проекте «Новую задачу», и перед тобой уже не безымянный агент, а твой учитель. Первым делом попроси: «вытащи из сохранённой страницы текст модулей в файл matchast.md и дальше работай по нему» — чтобы он не продирался каждый раз сквозь разметку. А потом: «модуль 1 я уже прошёл сам — проверь меня по нему и веди дальше со второго». Всё — теперь ты проходишь курс не в одиночку, а в паре: он спрашивает, ты отвечаешь, и мимо непонятого он тебя не пропустит. Блоки «Проверь себя» в конце модулей — это как раз его реплики. Личный репетитор за ноль рублей. У меня в школе такого не было.
Проверь себя · 30 секунд
Назови два дела, которые агент физически может, а ChatGPT в браузере — нет. И почему из-за этого «ставки выше в обе стороны». Кстати, если учителя ты уже собрал — этот вопрос тебе задаст он.
Модуль 02 · Фундамент
Матчасть Codex
Где он работает, когда думает в облаке, и когда тебе понадобится сервер.
Где агент работает
Codex по умолчанию работает у тебя на компьютере: файлы проекта, терминал, установленные программы — всё локальное, всё в твоей папке. Но «думает» он не локально: каждый твой запрос улетает в облако, к серверам OpenAI, там модель генерирует ответ, и результат прилетает обратно как команда «прочитать файл X» или «выполнить команду Y», которую агент уже выполняет у тебя на машине. Наружу уходит не весь диск целиком, а только то, что реально нужно для ответа: текст файла, который ты попросил открыть, вывод команды.
ТВОЙ КОМПЬЮТЕРфайлы · терминал · локальноОБЛАКО OPENAIздесь думает модельзапрос — только нужноеответ — команда
Файлы и запуск — у тебя; думает — в облаке; наружу уходит только нужное для ответа
Когда понадобится сервер
Пока Codex работает у тебя на компьютере, он работает, только когда компьютер включён и агент запущен. Закрыл ноутбук — бот замолчал, никаких напоминаний до следующего запуска. Для разовых задач (собрать код, разобрать баг, написать скрипт) это не проблема. Но твоя платформа должна слать напоминания весь год, в том числе когда ты спишь или сидишь на паре — значит, рано или поздно код должен переехать на сервер: отдельную машину, которая включена всегда, а не только когда ты за ноутбуком.
Сейчас сервер тебе не нужен. Начни локально — это правильный порядок: сначала разберись, что вообще строишь, потом переезжай на инфраструктуру. Как заслужить сервер — в модуле 9.
Файл настроек — инструкция для агента
У Codex есть файл в папке проекта (обычно называется AGENTS.md) — буквально «инструкция для агента, только для этого проекта»: что за проект, на чём написан, что категорически нельзя трогать, какие есть команды для проверки. Агент читает его перед началом каждой задачи. Ты этим уже пользовался — учитель из модуля 1 живёт ровно в таком файле. Смысл тот же: не уговаривать агента заново каждый раз, а написать один раз и забыть. По сути это то же самое, что мой файл настроек для Claude Code, только он у меня прямо сейчас формирует эту методичку. Подробнее — в модуле 5: это вопрос памяти, а не конфигов.
AGENTS.mdинструкция проекта
что за проект
платформа подготовки к ЕГЭ
на чём
Python · Telegram-бот
чего нельзя
трогать боевую базу, слать без подтверждения
команды
как проверить · как запустить
агент читает его перед началом каждой задачи
Написал один раз — агент держит правила проекта в голове, не нужно повторять каждый раз
Да, эту самую методичку мой агент собирает по такому же файлу — ты сейчас читаешь его работу.
Усилие и модель
У приложения есть настройка «сколько думать» перед действием (усилие) и выбор модели — живут они под полем ввода, справа: там написано что-то вроде «5.5 Высокий». Нажми на эту надпись — откроется меню из трёх строк: Модель, Усилие, Скорость. Больше усилия — агент дольше размышляет, реже ошибается на сложных задачах, но медленнее. Меньше усилия — быстро и достаточно для простой механической правки, но не стоит просить на минимальном усилии придумать архитектуру всей платформы. Правило простое: не гоняй сложную задачу на минимуме «чтобы было быстрее» — потеряешь больше времени на переделку; не гоняй тривиальную задачу на максимуме — просто будешь ждать без причины. Дефолтные настройки достаточно хороши, чтобы не трогать их первую неделю.
минимум усилия
максимум усилия
тривиальная задача
✓быстро и достаточно
⏳ждёшь без причины
сложная задача
✕ошибётся → переделка
✓дольше, но верно
Сложное — не на минимуме, тривиальное — не на максимуме
Забегая вперёд
У Codex есть режимы, что ему разрешено делать без спроса, а что — только с твоего явного «да». Это не техническая деталь, это твоя главная защита — целиком разберём в модуле 4.
Проверь себя · 30 секунд
Где Codex держит твои файлы, а где «думает»? И в какой момент проекта тебе однажды понадобится сервер?
Модуль 03 · Фундамент
Как ставить задачу
Постановка задачи — это уже половина результата.
Одно точное число, не вилка
«Сделай 3 карточки с напоминаниями», не «сделай несколько». Вилка не даёт ни агенту, ни тебе понять, когда задача реально выполнена. «Сделай что-нибудь» для агента — как «встань куда-нибудь» для тиммейта: выполнить можно, предсказать — нет.
Говори, откуда брать данные
«Собери банк заданий по математике» без указания источника — приглашение придумать задания. «Возьми задания с открытого банка ФИПИ» — конкретная, проверяемая задача. Почему это критично именно для заданий ЕГЭ — в модуле 8.
Для крупных решений — сначала все вопросы, потом один ответ
Если просишь спроектировать архитектуру всей платформы, пусть агент сначала задаст все уточняющие вопросы одним блоком, а не выдаёт план по кусочкам, переделывая после каждой твоей реплики. Так и попроси: «прежде чем предлагать план, задай все вопросы, которые тебе нужны».
Не надейся, что он помнит редкую процедуру
Если что-то делаешь раз в месяц (например, разворачиваешь код на сервере), не жди, что агент сам вспомнит все шаги — распиши их один раз в файле (см. модуль 5) и указывай на него.
Плохо
«Сделай мне побольше заданий по математике для тренировки»
Лучше
«Возьми 10 заданий по алгебре из открытого банка ФИПИ (профильный уровень), сохрани в data/math/algebra.json в формате {вопрос, тип_ответа, эталон}. Источник — только ФИПИ, ничего не придумывай от себя.»
Практика · платформа ЕГЭ
Присмотрись, как устроен «Лучше»-вариант — точное число, источник, формат, запрет придумывать: ровно такую команду ты дашь строителю в модуле 9 на этапе банка заданий (источником там станет демоверсия ФИПИ — почему именно она, узнаешь на месте). Хорошая постановка пишется один раз — дальше только подставляешь своё.
Проверь себя · 30 секунд
Перепиши по трём правилам модуля: «сделай мне побольше заданий по физике».
Модуль 04 · Фундамент
План → делай → проверяй
И самое важное — когда нажимать стоп.
Рабочий цикл с агентом — всегда четыре шага. План: перед тем как начать, пусть агент скажет, что собирается делать. Делай: по плану, без самодеятельности. Проверяй: не верь на слово «готово» — попроси показать результат, открыть файл, запустить бота, показать вывод. Запомни: важное решение или грабля должны попасть в файл, а не остаться только в разговоре — об этом весь модуль 5.
планделайпроверяйзапомни
Тот же цикл, что у агента в модуле 1 — только теперь рулишь им ты
Главный вопрос — не «доверяю ли я», а «можно ли это отменить»
Риск задачи определяется не тем, насколько ты доверяешь агенту, а тем, насколько легко откатить то, что он собирается сделать.
СвободноЛокально и обратимо: черновики, правки файлов в своей папке, эксперименты. Разрешай без раздумий.
С оглядкойВыходит наружу, но откат реально есть и проверен — не «наверное сработает». Разрешай только тогда.
Только с тобойНеобратимо или выходит наружу без отката. Никогда без явного «да» — сколько бы раз агент это ни делал раньше.
Кнопки под полем ввода
В приложении это не абстракция, а две реальные кнопки прямо под строкой, куда пишешь сообщение. Левая — режим доступа, и в ней три варианта, дословно.
«Запрашивать разрешение» — дефолт и самый безопасный: агент читает и правит файлы в твоей папке сам, но спросит, если полезет в интернет или попробует выйти за её пределы. Это «свободно» и «с оглядкой» из риск-гейджа выше, склеенные в один переключатель.
«Подтверждать автоматически» — агент почти всегда одобряет себе доступ сам, спрашивает только на действительно рискованных вещах. Это уже шаг в сторону «только с тобой»: рискованнее дефолта, но ещё не «полный доступ» — включай, когда уже доверяешь агенту на этом проекте.
«Полный доступ» — агент может отредактировать любой файл на компьютере и лезть в сеть без единого вопроса. Это и есть «только с тобой», вывернутое наизнанку — не включай, пока не понимаешь точно зачем.
И важная оговорка: список ниже — это не то, что технически блокирует приложение, а то, что ты сам всегда требуешь от агента вслух, даже в безопасном режиме. «Запрашивать разрешение» защищает от выхода за пределы папки, но не от глупости внутри неё — секреты и удаление остаются на твоей ответственности.
Никогда без подтверждения
работа с паролями / токенами / ключами — создание, смена, удаление
отключение любых защитных проверок
публикация чего-либо в открытый доступ
любые траты денег
необратимое удаление
массовое переименование или перемещение файлов
агент меняет собственные правила поведения
Git — то, что делает «обратимо» реальностью
Весь риск-гейдж выше держится на одном вопросе: можно ли откатить? Для кода ответ почти всегда «да» — если пользуешься git. Это бесплатный стандартный инструмент версионирования: после каждого рабочего шага делаешь коммит («сохранил состояние как есть»), и если следующая правка агента всё сломала — одна команда откатывает файлы к последнему рабочему коммиту. Без git «попробовать и посмотреть» — риск потерять рабочую версию навсегда; с git — это просто эксперимент. По закону подлости не тот файл, который агент удалит, всегда оказывается ровно тем, что был нужен. Попроси агента коммитить после каждого значимого шага, а не только в конце дня — по сути то же, что живая заметка в модуле 5, только для кода. Приложение само показывает, что изменилось, в отдельной панели — можно посмотреть правки и откатить их, не разбираясь в git-командах руками.
✓ коммитрабочее состояние сохранено
→
✕ сломалосьправка агента всё поломала
→
↩ откатодна команда — снова рабочее
коммит — это твой сейв перед боссом: сломал — вернулся к сейву, а не переигрываешь всё с начала
Ошибка — это стоп-сигнал, не повод тихо чинить
Если агент подозревает, что случайно что-то сломал, — правильная реакция: остановиться и сразу сказать, что произошло, а не молча всё исправить и сделать вид, что ничего не было. Требуй этого прямо, текстом, в самом начале: «если что-то пойдёт не так — сразу останавливайся и говори мне, что именно».
Агент ходит кругами — когда жать стоп сам
Отдельный случай: агент второй раз подряд «чинит» одно и то же место, а оно не чинится. Третью попытку можно не запускать — она будет как первые две: за ней тянется весь груз неудачных заходов, а агент внутри неё смотрит на задачу под одним-единственным углом. Два выхода. Мягкий: «стоп, этот подход отложи и предложи два принципиально других». Жёсткий: начать «Новую задачу» и поставить её заново, со свежим вводом (шаблон — в шпаргалке). Новая задача не знает, что «мы уже полчаса мучаемся», — и в этом её сила.
Проверь себя · 30 секунд
Разложи по уровням риска: (а) агент правит твой notes.md; (б) постит бота в открытый канал; (в) удаляет старую папку проекта. Где «свободно», где «с оглядкой», где «только с тобой»?
Модуль 05 · Справочник
Память
Без этого раздела всё остальное работает вполсилы. Читай внимательно.
Новая задача ничего не помнит
Начал новую задачу с агентом — он не в курсе ни одной твоей вчерашней договорённости, если ты сам не подгрузил ему контекст. Это не баг, так по умолчанию работает большинство агентов, включая Codex. Значит, историю проекта нужно хранить не в переписке, а рядом с проектом — в файле.
Живая заметка о проекте
Заведи в папке проекта простой файл (хоть notes.md) с текущим состоянием: что готово, что в процессе, какие решения приняты и почему. Обновляй его сразу, как только что-то важное изменилось — не «как-нибудь потом», иначе он устареет за неделю, и следующая задача будет строиться на неверной картине. Раздели содержимое по типам: хронология событий — отдельно, факты о проекте — отдельно, заметки про то, как работать с самим агентом, — отдельно. Смешаешь всё — получится свалка, в которой ничего не найти.
Задача не резиновая
Обратная сторона той же медали. У задачи с агентом есть рабочая память — контекст: всё, что вы друг другу написали, и всё, что он прочитал по ходу дела. Она конечна. Когда долгая задача подбирается к её краю, агент начинает «уставать»: забывает, о чём договаривались в начале, повторяется, путает решённое с нерешённым. Это не поломка — память кончилась, и старое вытесняется новым.
Лечится просто: длинную работу режь на части. Закончил кусок — попроси агента записать состояние в живую заметку и начни «Новую задачу» со свежим вводом (шаблон — ниже в этом модуле). Звучит как потеря, на деле наоборот: свежая задача с хорошей заметкой работает лучше уставшей, у которой в памяти месиво.
Инструмент: Obsidian
Всё, что описано выше — живая заметка, распределённая память, журнал уроков (см. ниже) — я лично веду в Obsidian. Бесплатная программа для заметок на markdown, всё хранится локально у тебя на диске, не в чужом облаке. И это не запертая система со своим форматом — это просто папка с обычными .md-файлами. Поэтому она отлично дружит с агентом: Codex читает и пишет в них точно так же, как в любые другие файлы — никакая специальная интеграция не нужна, просто укажи ему путь к папке.
Что она даёт сверх голого текстового файла — wikilinks. Пишешь [[Название заметки]], и Obsidian сама связывает заметки друг с другом, рисует граф связей между ними. Через месяц у тебя не куча разрозненных файлов, а видимая карта того, что ты знаешь о своём проекте — и что с чем связано.
Просто папка файлов — связи между ними держишь в своей голове
[[wikilink]] — Obsidian сама рисует карту: что с чем связано
Не пытайся с нуля повторить мою систему — у меня десяток агентов и правил под них, это перебор для одного человека с одним проектом. На старте хватит трёх файлов в одной папке: текущее состояние (что сделано, что в процессе — обновляешь по ходу), журнал решений (что решил и почему, коротко), журнал уроков (тот самый, из следующего пункта). Дальше структура сама подскажет, что добавить, по мере роста проекта.
состояние — что сделано, что в процессе
решения — что решил и почему, коротко
уроки — грабли, чтобы не наступить на них дважды
Хороший ввод для новой задачи
Когда начинаешь новую задачу и нужно быстро ввести агента в курс дела, хороший текст содержит пять вещей:
кто ты и в какой роли сейчас работаешь;
факты — с явной пометкой, чему доверять, а что перепроверить;
конкретный следующий шаг — не «сделай X», а «сделай X, вот источник, вот как проверить»;
явные границы — что нельзя трогать;
с чего начать в первую очередь.
Голая ссылка на файл без пояснения не работает — новая задача не обязана догадываться, что это и зачем.
Самообучение: агент помнит не только факты, но и уроки о себе
Вот тонкость, которую легко упустить, и именно её я сам чуть не упустил, когда собирал для тебя этот документ. Есть два совершенно разных типа памяти: память о проекте (что сделано, какие решения приняты) — это одно; память о самом процессе работы агента (что было медленно, что пришлось повторять руками несколько раз, что сработало на удивление хорошо) — совсем другое, и она не менее ценна.
память о ПРОЕКТЕ
что сделано, что в процессе
какие решения приняты и почему
факты о проекте
память о ПРОЦЕССЕ
что было медленно
что пришлось повторять руками
что сработало на удивление хорошо
Держи их порознь. Свалишь оба вида в один файл — получится каша, в которой ничего не найти.
Новая задача — существо вежливое, но с полной амнезией: помнит ровно то, что записано в файл, и ни байтом больше.
Если после сложной задачи агент просто говорит «было сложно, в следующий раз буду внимательнее» — это ничего не стоит. Сказано в разговоре — забудется на следующей сессии, и агент наступит на те же грабли снова. Работает только одно: записать урок в файл, который агент реально прочитает в следующий раз.
Главное правило раздела
Растёт только то, что записано. Всё остальное испаряется вместе с историей чата — при новой сессии, при переполнении контекста, при чём угодно. Урок, произнесённый вслух и не сохранённый в файл, для агента не существовал.
Формат простой, ничего сложного не нужно:
journal.md — пример строки
[12.07] бот падал при пустом ответе от API погоды
→ добавить проверку на пустой ответ перед парсингом
статус: ✅ поправлено
Если одна и та же проблема всплывает третий раз подряд — верный сигнал: пора превратить временную заметку в постоянное правило, то есть дописать строчку прямо в AGENTS.md, а не полагаться, что агент «как-нибудь сам запомнит».
И заметь: AGENTS.md — это не только правила проекта, это характер роли. Твой учитель из модуля 1 устроен ровно так: папка, инструкция «кто ты и как себя ведёшь», память. Поменяй инструкцию — получишь другого агента. В модуле 6 увидишь, как из этого собирается целая команда.
Практика · платформа ЕГЭ
В модуле 9 у твоей платформы появится собственный AGENTS.md и маленький журнал уроков — увидишь, как это выглядит не в теории, а на живом проекте.
Проверь себя · 30 секунд
Ты закрыл задачу и начал новую. Что агент помнит про вчерашнюю договорённость, если ты её никуда не записал?
Модуль 06 · Справочник
Когда агентов больше одного
Случится быстрее, чем кажется — и у тебя тоже.
Строго говоря, у тебя уже не один агент: учитель из модуля 1 — отдельная роль в отдельной папке. Дальше — больше: появится агент, который строит платформу (Codex за ноутбуком), и сама платформа — бот, который потом работает самостоятельно, независимо от тебя. Добавь сюда, например, отдельного «сторожа», проверяющего, что бот жив, — и вот уже полноценная система из нескольких действующих лиц.
Антипаттерн — ты в роли передатчика
Самый простой, но самый утомительный способ: самому таскать информацию между агентами — спросил у одного, скопировал ответ, вставил другому. Работает первое время, разваливается, когда агентов становится больше одного-двух. По сути ты — живая копипаста между тиммейтами.
Паттерн — общий файл вместо тебя
Правильно — завести общий файл, условно «доску задач», куда один агент оставляет запись «нужно сделать вот это», а другой сам читает её в начале своей сессии и забирает в работу. Никто не лезет напрямую в чужую зону — только оставляет заметку в нейтральном месте.
Ты таскаешь всё между агентами — узкое место это ты
Общая доска — каждый берёт задачи сам, ты не бегаешь между ними
доска задач — пример строки
№17 · кому: агент-бот · статус: ⏳
Добавить в /list сортировку по предмету — просил на созвоне 12.07
Специализация лучше «одного агента на всё»
Агент с узко описанной задачей («ты только следишь за здоровьем бота и шлёшь мне алерт, если он молчит больше 5 минут») ведёт себя предсказуемее, чем один большой агент, которому поручили сразу всё. Чем уже роль — тем проще доверить ей самостоятельность именно в её зоне.
учитель — ведёт по курсу, проверяет понимание
строитель — пишет код
ревизор — ищет дыры
сторож — следит, что бот жив
дирижёр — раздаёт задачи
Как это выглядит у меня, если интересно устройство целиком
Раз интересно — вот как это выглядит у меня, честно, без прикрас.
У меня не один агент и даже не два. За несколько месяцев таких узких помощников набралось много, и у каждого своя работа. Один только пишет код. Другой только проверяет чужую работу на дыры — сам ничего не строит, лишь ревизует. Третий возится с текстами. Ещё один следит, чтобы никто не наглупил с доступами и безопасностью. И так далее — под каждый тип задач свой.
Почему так, а не один умный агент на всё? Ровно по причине из этого модуля: чем уже роль, тем предсказуемее агент и тем спокойнее доверить ему самостоятельность. «Ревизор» знает, что он ревизор, и не лезет строить; «строитель» строит и не делает вид, что шарит за безопасность. Один агент-на-всё быстро превращается в кашу, где не поймёшь, кто за что отвечает.
Связаны они не через меня. Я не бегаю между ними с копипастой — это тот самый антипаттерн из начала модуля. У них общая «доска»: один оставляет запись «надо сделать вот это, вот контекст», другой берёт оттуда задачи в начале своей работы. Никто не лезет в чужую зону руками — только оставляет заметку в нейтральном месте. Сверху есть «дирижёр»: смотрит, какие задачи открыты, и раздаёт их нужным специалистам.
И чтобы ты не терялся: тебе столько не нужно и близко. Одному человеку с одним проектом хватает того, что уже описано выше — пары агентов и общего файла между ними. Показываю не чтобы ты повторял, а чтобы видел, куда это в принципе вырастает, если не бросать. Всё это собрано ровно из тех же кирпичей, что уже у тебя в руках: узкая роль, память в файле, общая доска, «не верь на слово». Никакой отдельной магии — просто их стало много.
Твоя команда на этот курс
Это не справочник «на когда-нибудь». Команду ты собираешь прямо по ходу методички — по одной роли за раз, каждую в тот момент, когда она реально нужна:
учительуже у тебя — с модуля 1
→
строительмодуль 9 · этап 0 — вся стройка через него
→
ревизормодуль 9 · этап 5 — проверяет стройку
→
сторожпо желанию — когда бот уже живёт
по одной роли за раз — команда, а не зоопарк из пяти агентов в первый день
Проверь себя · 30 секунд
Почему «сам таскаю ответы от одного агента к другому» разваливается — и что делаешь вместо этого? И кто следующий появится в твоей команде после учителя?
Модуль 07 · Справочник
Секреты и деньги
Два разных типа утечки — обе легко предотвратить, обе неприятно чинить.
СЕКРЕТ
токен, пароль, ключ доступа
утечёт — пишут от твоего имени
чинится заменой у источника
ДЕНЬГИ
лимит подписки и вызовы API
утечёт — счёт за чужие вызовы
чинится лимитом и архитектурой
Пароль или токен никогда не идёт в чат
Ни текстом, ни скриншотом, ни фото экрана. Скриншот с видимым токеном в панели телеграм-бота — такая же утечка, как если написать его текстом: переписка сохраняется, и всё, что в ней было, теоретически может утечь вместе с ней.
Как передавать секрет правильно
Агент называет точное имя переменной и куда её вписать — например, файл .env, строка TELEGRAM_TOKEN=. Сам токен ты берёшь напрямую из источника (в телеграме — у @BotFather) и вписываешь сам, минуя разговор с агентом. Агент работает с именем переменной, значения не видит вообще.
агентназывает имя TELEGRAM_TOKEN=
→
тыберёшь значение у @BotFather
→
.envTELEGRAM_TOKEN=•••
значение идёт из источника прямо в файл — минуя разговор с агентом
Если всё же утекло
Единственное, что реально помогает, — заменить токен у источника (у @BotFather новый выпускается за секунду). Удалить сообщение из истории чата недостаточно — секрет мог уже сохраниться в нескольких местах одновременно.
@BotFather выдаёт новый токен за секунду — пожалуй, самая быстрая починка во всей этой методичке.
Деньги — подписка это не то же самое, что API
Собирать код через Codex — в рамках подписки, без отдельной платы за каждый вызов. Но это не «сколько угодно» без края: у подписки есть лимит использования (окна запросов, дальше — кредиты), и при активной работе его вполне можно упереть. А если сам бот, уже работая, будет на лету звать какую-то ИИ-модель («объясни, почему я ошибся») — это отдельный платный вызов — платишь за каждый такой раз. Суммы небольшие — от долей рубля до нескольких рублей за вызов, смотря по модели и объёму, — но это уже не «бесплатно», а осознанный выбор архитектуры. В модуле 9 — какие части платформы вообще не нуждаются в ИИ в момент работы, а какие могут его звать по делу.
Подписка
Codex собирает код без платы за каждый вызов. Но лимит есть — окна запросов, дальше кредиты; активная работа его упирает.
включено, но не бесконечно
Вызов ИИ на лету
Если сам бот во время работы зовёт модель («объясни, почему ошибся») — это отдельный платный вызов, от долей рубля до нескольких за раз.
плата за каждый раз
Правило без исключений
Я сам как-то спалился на глупости с доступом — с тех пор десять раз перестраховываюсь, и тебе советую.
Секрет — это не то, чем стесняются, а то, что стоит денег или доступа. Один утёкший токен телеграм-бота — и кто угодно может писать от его имени. Дешевле десять раз перестраховаться, чем один раз разбираться с последствиями.
Проверь себя · 30 секунд
Что из этого нельзя слать в чат: имя TELEGRAM_TOKEN / сам токен / путь к файлу .env? И почему одного удаления сообщения мало?
Модуль 08 · Справочник
Когда не верить агенту на слово
Уверенный тон и правильный ответ — разные вещи.
Уверенность≠правота
Уверенный тон — это тиммейт, который пишет «ok» и молча уходит фидить.
Уверенный тон — не гарантия правды. Особенно там, где называется точное число, ссылка или ответ на задачу. Самый уверенный тон у агента обычно включается ровно там, где стоило засомневаться.
Может выдумать ссылку даже на свою же прошлую работу. Если это важно — попроси открыть источник и процитировать, а не «вспомнить».
Склонен соглашаться. Модель по природе старается быть полезной, а не спорить. Прямо проси возражать, если видит риск — даже после того, как ты вроде бы уже согласился.
«У меня устаревшие данные» — не финальный ответ, если у агента есть доступ в интернет: пусть проверит, а не разводит руками. Многие агенты умеют по запросу открыть свежую документацию инструмента или библиотеки — прямо попроси «проверь актуальную документацию», не жди, пока он вспомнит сам.
Тесты и красивый на вид код — не гарантия, что штука реально работает как задумано, особенно если дело касается интерфейса или реакции на сбой. Финальная проверка — посмотреть своими глазами, как оно ведёт себя по-настоящему.
Уверенный тон
→
Попроси процитировать источник
Выдумал ссылку
→
Проверь по документации
Со всем соглашается
→
Прямо попроси возразить
«Данные устарели» — как отговорка
→
Пусть проверит актуальную документацию
Тесты прошли — значит работает
→
Посмотри своими глазами
Пять сигналов не верить на слово — и что делать с каждым.
Почему это не абстрактная теория
Именно поэтому банк заданий ЕГЭ в модуле 9 строится на реальных заданиях ФИПИ, а не на том, что модель придумает сама. Один невидимый глазу неверный ответ по математике в тренировочном тесте — и вся тренировка вредит, а не помогает. Это не гипотетический риск, а конкретная причина конкретного архитектурного решения.
Проверь себя · 30 секунд
Агент сказал «готово, бот работает». Твоё следующее конкретное действие — какое?
Модуль 8½ · Вне терминала
ИИ для самой учёбы
Короткая пауза перед проектом — про то, ради чего всё затевалось.
Всё, что до сих пор, — про агента в терминале: даже учитель из модуля 1 живёт там же. Но было бы странно строить платформу для подготовки к ЕГЭ и промолчать: ИИ помогает готовиться и напрямую — уже сегодня, без единой строчки кода и без терминала. Два инструмента, которые я бы на твоём месте включил в учёбу сразу, — оба бесплатные:
Study Mode — репетитор внутри ChatGPT
тот же ChatGPT, даже без подписки — включается прямо в чате, в выборе режима
не выдаёт готовый ответ — ведёт наводящими вопросами, шаг за шагом
подстраивает сложность под то, как ты отвечаешь
Для «не понимаю тему»: разобрать производную с тем, кто не устаёт объяснять — хоть на пятом «а почему?».
NotebookLM — работа по твоим конспектам
бесплатный сервис Google: загружаешь свои материалы — конспекты, учебник, демоверсию ФИПИ
отвечает только по загруженному — и показывает, откуда именно взял
делает выжимки, тесты по материалу и даже аудио-разборы
Для «материала гора, повторять страшно»: превращает гору в то, что реально повторить.
Да, NotebookLM может пересказать твой конспект по обществознанию как подкаст на два голоса. Будущее оказалось странным, но местами полезным.
Заметь, чем NotebookLM принципиально отличается от «просто спросить у ChatGPT»: он отвечает по твоим источникам и цитирует их — та самая привычка из модуля 8, «процитируй, а не вспомни», только встроенная в инструмент. А Study Mode — это модуль 3 наизнанку: там ты учился ставить задачу агенту, здесь хороший агент ставит вопросы тебе.
Тот же модуль 8, без скидок
Уверенный тон в объяснении — ещё не правильное решение задачи: в арифметике модели ошибаются чаще, чем в рассуждениях, поэтому ответ на конкретную задачу сверяй с эталоном — эталоны у тебя будут прямо из демоверсии ФИПИ (модуль 9, этап 3). «Отвечает по твоим источникам» тоже не значит «пересказал без ошибок»: ссылка на конспект — приглашение открыть его и сверить, а не разрешение верить пересказу. И честно: «объясни мне» прокачивает тебя, «реши за меня» — модель. На экзамене рядом будет только первая версия тебя.
Проверь себя · 30 секунд
Чем NotebookLM принципиально отличается от «спросить у ChatGPT в браузере» — и почему для подготовки к экзамену это отличие решающее?
Модуль 09 · Проект
Платформа для подготовки к ЕГЭ
Здесь модули 1–8 перестают быть теорией.
Телеграм-бот, который сам напоминает тебе позаниматься, находит настоящие задания по трём твоим предметам и ведёт статистику твоих попыток. Ты строишь его сам, с Codex в качестве рук. Ниже — путь от пустой папки до рабочего прототипа, этап за этапом. Не обязательно спешить — это проект на месяцы, а не на выходные.
Проигранный матч забываешь за минуту. Год, слитый перед ЕГЭ, запомнится надолго. Уж поверь.
Этап 0
Собери строителя
разминка
Настрой приложение (модуль 0), пройди модули 1–4. А дальше — тот самый приём из модуля 1, второй раз: не строй экспромтом, без роли. Заведи папку проекта, привяжи её тем же способом, что и раньше («Выбрать проект» → «+ Новый проект» → «Использовать существующую папку»), и собери строителя — так же, как собирал учителя, только должность другая:
платформа/AGENTS.md — роль строителя
Ты — строитель моей платформы для подготовки к ЕГЭ:
телеграм-бот с напоминаниями, банком заданий и статистикой,
три предмета: [впиши свои].
Правила:
— сначала план, потом делай, потом покажи, как проверить;
— коммить после каждого рабочего шага;
— задания и ответы — только из ФИПИ, ничего не придумывай;
— секреты в чат не проси и не показывай — только имена переменных;
— сломал или сомневаешься — стоп и скажи мне.
Веди журнал уроков в journal.md.
Присмотрись: в этих шести строчках — половина методички, которую ты только что прошёл. Вся стройка ниже, этапы 1–6, идёт через строителя: одна папка, одна роль, одна память. К концу проекта он будет знать платформу лучше, чем ты её помнишь. А на этапе 5 он ещё и сам заведёт себе напарника — забегая вперёд.
Этап 1
Скелет бота
легко
Простейший телеграм-бот: отвечает на /start, ничего больше. Цель этапа — не функциональность, а первый раз увидеть, как агент реально пишет и запускает рабочий код у тебя на глазах. Когда агент скажет «готово» — не верь на слово (модуль 8), напиши боту в настоящем телеграме и проверь ответ сам.
Первый бот умеет ровно одно — и этим гордится.
Этап 2
Напоминания
средне
Планировщик, который умеет слать сообщение в заданное время, и команда, которой ты сам настраиваешь себе расписание: «напомни в 19:00 про пробник по физике». Первое реальное соприкосновение с «агент помнит за меня».
Этап 3
Банк заданий
пик сложности
Тебе нужны настоящие задания — и настоящие ответы к ним, иначе статистика на Этапе 4 будет считать пустоту. И вот честно про сложность: живой открытый банк ФИПИ парсится тяжело — сайт рисуется скриптами, половина заданий картинками, аккуратного «API» нет. Это один из самых трудных кусков всего проекта, а не рядовой шаг.
Развилка этапа 3 — откуда брать данные
Живой банк ФИПИ
сайт рисуется скриптами
половина заданий — картинками
аккуратного API нет
самый трудный кусок всего проекта
Демоверсия ФИПИ · PDF
один официальный PDF: задания и ответы вместе
агент читает PDF → data/math.json
ответы сразу — механика строится
рекомендуемый путь
Поэтому проще всего зайти так: возьми демоверсию профиля от ФИПИ — это один официальный PDF, где задания и ответы уже вместе. Задача агенту: «прочитай этот PDF, вытащи задания с коротким ответом в data/math.json в формате {вопрос, тип_ответа, эталон}, ответы бери только из PDF, ничего не придумывай». Ответы есть сразу — можно строить всю механику. Захочешь потом копнуть живой открытый банк — копай, но как отдельное приключение, а не как то, на чём держится весь бот.
И держи ухо востро (модуль 8): если Codex, устав биться с данными, предложит «давай я просто сгенерирую задания» — это ровно тот тревожный звонок. Задания придумывать нельзя, ответы тем более. Десять настоящих полезнее ста выдуманных.
Красный флаг · мост к модулю 8
Устав биться с данными, Codex может предложить сгенерировать задания сам. Нельзя — только настоящие из ФИПИ, и задания, и ответы. Это ровно тот момент из модуля 8: агент бодро говорит «готово», а проверяешь ты.
Этап 4
Статистика
средне
Простая база (даже один файл) с историей попыток: предмет, дата, результат. Отсюда — команда /stats по каждому из трёх предметов. Настоящие ответы у тебя уже из Этапа 3 (демоверсия), поэтому статистика считает по-честному.
Этап 5
Ревизор — руками строителя
спокойно
У строителя за спиной четыре этапа — пора, чтобы его работу проверил кто-то, кроме него самого. И вот первый раз в этом курсе, когда агент заводит агента: в задаче со строителем попроси — «дальше мне нужен ревизор, отдельный агент, который будет проверять твою работу. Опиши, что именно ему нужно знать про этот проект и на что смотреть — я заведу его новой задачей и вставлю твой текст». Строитель знает свой код лучше тебя — пусть сам сформулирует бриф для ревизора.
Получишь бриф — скопируй его: выдели текст мышкой и Ctrl+C, либо нажми значок копирования под сообщением, если он есть. Открой в этом же проекте «Новую задачу» и вставь первым сообщением то, что написал строитель — плюс явно обозначь роль: «На эту сессию ты не строитель, а ревизор». Если строитель что-то упустил в брифе — подскажи сам: не лежит ли токен прямо в коде, есть ли резервная копия базы результатов, честно ли ответы взяты из PDF, что будет, если бот упадёт. Доклад — тебе, списком, по убыванию серьёзности.
Заметь разницу: постоянная роль живёт в файле (учитель, строитель), а разовая — задаётся первым сообщением, своя папка ей не нужна. AGENTS.md строителя новая задача всё равно прочитает при старте — поэтому фраза «ты не строитель» не украшение: она снимает с агента каску на эту сессию.
И это не тот антипаттерн из модуля 6 («ты — живая копипаста между агентами») — там речь про постоянную координацию туда-сюда между уже существующими агентами, для которой и нужна общая доска. Здесь — разовый акт: попросить специалиста написать бриф для рождения нового агента. Один раз, не по кругу.
Это модуль 8 «не верь на слово», исполненный чужими руками: строитель говорит «готово», ревизор сомневается, решение — за тобой. Заодно допиши в AGENTS.md строителя то, что ревизор нарыл: «не трогай базу с результатами без резервной копии» — правило ровно отсюда. Гоняй ревизора после каждого большого куска — половину факапов поймаешь до того, как они станут факапами.
Этап 6
Сервер
Когда прототип реально пожил локально и работает — покажи мне. Дальше сервер — моя забота, я подключу один из своих, изолированный от остального. Это честная сделка: докажи, что продукт того стоит, и 24/7-напоминания у тебя будут даже когда ноутбук выключен.
Опционально
Агент-сторож
средне
После модуля 6: ещё один отдельный агент, который раз в несколько минут проверяет, что бот жив, и шлёт тебе алерт, если замолчал. Заводится тем же приёмом, что и ревизор: попроси строителя описать, на что сторожу смотреть, и заведи его новой задачей. Сама проверка по расписанию живёт в приложении, во вкладке «Запланировано» — попробуй попросить агента поставить задачу на повтор; не сработает — открой вкладку сам и настрой время вручную. С ним твоя команда из модуля 6 собрана целиком — учитель, строитель, ревизор, сторож — и координацию нескольких агентов ты тренируешь на живом примере, а не в теории.
Сквозная привычка · учитель
Учитель из модуля 1 не заканчивается вместе с модулями. Закрыл этап — зайди к нему и расскажи, что сделал и почему: пусть погоняет вопросами уже по живому проекту. Смог пересказать своими словами — значит, реально понял, а не «ну, оно вроде работает».
Кстати
У нас уже есть бот-напоминалка похожего духа — можешь подписаться на него прямо сейчас для реальных напоминаний, не дожидаясь своего, а архитектуру своей платформы строить параллельно, глядя на этот документ, а не на чужой код. Спроси у меня ссылку, если хочешь попробовать, как это ощущается с той стороны, — иногда полезно сначала побыть пользователем, прежде чем строить для других.
Модуль 10 · Дальше
Куда расти
Не горит. Прочитай, когда платформа уже дышит.
Когда задача большая, её можно разбить на независимые куски и раздать под-агентам параллельно, а потом свести воедино. Работает так не везде — но сам принцип держи в голове: не всё обязательно делать одним агентом по очереди.
ЗАДАЧАпод-агенты · параллельноСВОД
Большую задачу режут на независимые куски, раздают под-агентам параллельно — и сводят результат воедино
Другие идеи для практики
трекер тренировок — подходы и прогресс сами в статистику
автосводка новостей — по теме, что тебе интересна
бот-словарь — для языка, который учишь
Трекер тренировок, автосводка новостей по интересной тебе теме, бот-словарь для языка, который учишь, — тот же набор навыков переносится на что угодно личное.
Возвращайся к модулям 5–6
Как только рядом со строителем встанет сторож — или третья сессия подряд теряет контекст — самое время перечитать их ещё раз, уже не в теории.
Мир шире Codex
Всё, чему учит эта методичка, — не про Codex. У каждой большой модели есть свой агент: у OpenAI — Codex, у Anthropic — Claude Code (мой основной), у Google — Gemini CLI. Различия — в деталях интерфейса; роли, память, «не верь на слово», секреты и «никогда без твоего „да“» переносятся один в один. Выучил принципы — сменишь инструмент за вечер.
И мета-навык напоследок: инструменты здесь меняются каждый месяц, следить за ними руками — отдельная работа. Не надо. Раз в месяц спрашивай у своего же агента: «что нового появилось в мире ИИ-агентов и инструментов для учёбы? проверь в интернете, не по памяти». Пусть за новинками следит тот, кто в них живёт.
Научившись строить бота для ЕГЭ, ты автоматизируешь полжизни. И это не фигура речи.
Шпаргалка
На случай, если лень листать назад
Никогда без твоего «да»
секреты — создание, смена, удаление
отключение защитных проверок
публикация в открытый доступ
траты денег
необратимое удаление
массовое переименование или перемещение файлов
агент меняет свои же правила
Секреты — создавать, менять, удалять
Отключать защитные проверки
Публиковать в открытый доступ
Тратить деньги
Необратимо удалять
Массово переименовывать или перемещать файлы
Агент меняет свои же правила
Хороший промпт — короткий чек
одно точное число, не диапазон
указан источник данных, не только цель
для крупного решения — сначала все вопросы, потом один план
редкая процедура расписана заново, не «он же помнит»
Ввод для новой задачи
шаблон
Кто ты / в какой роли работаешь сейчас —
Факты (перепроверить: ...) —
Следующий шаг: сделай X, источник — Y, проверка — Z —
Границы: не трогать —
Начни с —
Ввод для новой задачишаблон
Роль
кто ты и в какой роли работаешь сейчас
Факты
что уже известно (перепроверить: …)
Шаг
сделай X, источник — Y, проверка — Z
Границы
чего не трогать
Начни с
первое конкретное действие
Заполнил каждую строку — агент стартует с контекстом, а не с нуля.
Твоя команда — по одной роли за раз
учитель — с модуля 1: ведёт по методичке, гоняет по вопросам
строитель — модуль 9, этап 0: вся стройка платформы — через него
ревизор — модуль 9, этап 5: ищет дыры, доклад тебе
сторож — по желанию: следит, что бот жив
Кнопки приложения — короткая шпаргалка
ищи в Store: «ChatGPT» — Codex это режим внутри, не отдельная программа
«Новая задача» в сайдбаре — начать с чистого листа