Расскажите про граф агента: что является нодами, что рёбрами, где entry point?
Чем планировщик отличается от роутера, выбирающего следующий шаг? Это одна нода или разные?
Как называется паттерн «вызвать инструмент → проанализировать результат → при необходимости повторить вызов с другими параметрами»?
Когда нужен граф из нескольких узлов с подграфами и циклами, а когда достаточно простого ReAct?
Что даёт разбиение на узлы для трейсов и отладки?
Что такое structured output и где он уже используется неявно (вызов инструмента)?
Как обязать LLM соблюдать структуру ответа: описанием в промпте или ограничением на уровне декодинга? В чём разница?
Что такое JSON-схема в клиенте LLM и чем она отличается от описания формата в промпте?
RAG: чанкинг и извлечение
Как выбирать стратегию чанкинга? Почему рекурсивное разбиение по разделителям лучше нарезки по фиксированному числу символов?
Как использовать структуру документа (заголовки, подзаголовки, абзацы) при чанкинге и почему нельзя рвать абзац посередине?
Что делать, если семантически схожие фрагменты лежат в разных разделах большого документа (налоговый кодекс, медицинские справочники)? Какие метаданные хранить у чанка?
Зачем хранить у чанка родительский документ и его номер в документе?
Что такое HyDE и когда его применять?
Зачем гибридный поиск с реранкингом поверх ванильного ретривала?
Деплой и Docker
Как веса локальной модели попадают в Docker-образ?
Что такое Docker volume и когда он нужен вместо копирования в образ?
Python: веб-фреймворки
Чем FastAPI отличается от Flask? Что для каких задач лучше подходит?
Что такое Depends в FastAPI и как работает инъекция зависимостей?
Python: многозадачность
Какие виды многозадачности существуют в Python?
Чем асинхронность отличается от многопоточности и многопроцессности?
Что такое GIL? Чем он мешает и зачем он нужен?
Как можно обойти или отключить GIL (несколько интерпретаторов, флаги интерпретатора, C-расширения, free-threaded сборки)?
Если GIL отключён и потоки работают с общей памятью, как синхронизировать доступ? Какие примитивы синхронизации существуют?
Python: объектная модель
Что такое ссылочная модель в Python?
Какие типы данных изменяемые, а какие неизменяемые?
Что произойдёт со списком во внешней функции, если изменить его во вложенной? А со строкой?
Что такое множество? Какая сложность проверки вхождения, добавления и удаления?
Что будет, если добавить в множество одно и то же значение несколько раз?
Какие ограничения на типы данных, которые могут лежать в множестве, и чем они вызваны устройством хеш-таблицы?
Какой метод должен реализовать кастомный класс, чтобы стать ключом словаря или элементом множества?
Python: контекстные менеджеры и декораторы
Что такое контекстный менеджер и зачем он нужен?
Как написать кастомный контекстный менеджер через класс? Какие два метода нужны?
Как написать контекстный менеджер через генератор? Какой декоратор для этого используется и какую роль играет yield?
Как сделать асинхронный контекстный менеджер? Какие методы нужны вместо __enter__ / __exit__?
Что такое декоратор? Он изменяет саму функцию или дополняет её поведение?
Что произойдёт с именем и сигнатурой функции после декорирования? Как сохранить метаданные оригинальной функции?
Как параметризовать декоратор (например, retry с числом попыток и задержкой)? Почему «просто добавить аргументов» не работает?