Читать книгу: «Создаем ИИ агента. Практикум на Python для начинающих»
© Игорь Боев, 2026
ISBN 978-5-0071-4748-4
Создано в интеллектуальной издательской системе Ridero
О книге
Практикум по CrewAI для тех, кто начинает с нуля. За семь глав вы соберёте четыре работающие системы: команду ревью кода, исследователя биржевого актива, службу поддержки по документам и поток самокоррекции кода.
Всё на реальных данных и с разбором того, где агенты ошибаются и почему. Требуется базовое знание Python и установленная Ollama.
Книга состоит из двух частей — читайте обе
Эта книга — только половина курса. Вторая половина лежит в пяти файлах с кодом, и они не приложение к тексту, а полноправная часть обучения.
В файлах с кодом вас ждёт то, чего нет в книге:
— пояснения к каждому блоку — что подключается, зачем и как работает, прямо рядом с соответствующими строками;
— пометки # ПОПРОБУЙ — конкретные опыты: что изменить и что при этом произойдёт. Не расплывчатое «поэкспериментируйте», а точное указание, куда смотреть и какой результат ожидать;
— пометки # ПРИДУМАЙ САМ — задания без готовых ответов, по три-четыре в конце каждого файла. Некоторые ведут к темам следующих глав, некоторые просят проверить утверждения книги на практике;
— разбор ловушек — мест, где легко ошибиться и где ошибались мы сами, пока готовили эти примеры.
Как работать с курсом. Прочитали параграф — открыли соответствующий файл, разобрали комментарии, запустили, поставили опыты из пометок # ПОПРОБУЙ. Только чтение книги без работы с кодом даст поверхностное знакомство вместо умения.
Файлы курса:

Код везде рабочий: его можно запускать, ломать и собирать заново. Именно так и стоит поступать — понимание приходит от опытов, а не от чтения.
Где взять файлы курса
Архив со всеми файлами доступен по любой из двух ссылок,
которые вы найдете в конце книги, приложение А «Шпаргалка».
Ссылки ведут на один и тот же архив, берите ту, что удобнее.
Что делать после скачивания. Распакуйте архив — внутри лежат папки с файлами глав. Скопируйте все папки целиком в корень вашего учебного проекта CrewAI в PyCharm — того самого, который вы создадите в главе 2. Структуру папок не меняйте: пути в скриптах рассчитаны именно на неё.
Практический курс по CrewAI
Оглавление
Глава 1. Что такое CrewAI и зачем он нужен
1.1. Идея: команда сотрудников вместо одного агента — Кто и когда сделал CrewAI — 1.1.1. Чем CrewAI отличается от ручной сборки на LangGraph — 1.1.2. Метафора «отдел с ролями» — 1.1.3. Когда CrewAI удобнее, а когда лучше LangGraph
1.2. Какие задачи решает — примеры из жизни — 1.2.1. Команда ревью кода: автор, критик, редактор — 1.2.2. Исследование темы и подготовка отчёта — 1.2.3. Многошаговые процессы с несколькими исполнителями
1.3. Карта курса — 1.3.1. Что освоим по главам — 1.3.2. Возможности CrewAI одним взглядом
Глава 2. Подготовка окружения
2.1. Отдельное окружение под CrewAI — 2.1.1. Почему CrewAI нужна своя кухня — 2.1.2. Создаём проект и окружение — 2.1.3. Как убедиться, что другие проекты не задеты
2.2. Подключение моделей и первый запуск — Как CrewAI находит модель — Наши три модели — Первый запуск и разбор скрипта — Что означает verbose=True
Скрипт главы: cai_hello_crew.py
Глава 3. Основа: Агент, Задача, Команда
3.1. Три кирпича CrewAI — 3.1.1. Агент: роль, цель, предыстория — 3.1.2. Задача: описание, результат, исполнитель — 3.1.3. Команда: сборка и запуск
3.2. Связывание задач через контекст — 3.2.1. Как одна задача видит результат другой — 3.2.2. Построение конвейера из задач
3.3. Практика: команда ревью кода — 3.3.1. Постановка задачи — 3.3.2. Как устроена команда — 3.3.3. Разбор результата
Скрипт главы: cai_code_review_crew.py
Глава 4. Процессы: как команда распределяет работу
4.1. Последовательный процесс — 4.1.1. Задачи по очереди — 4.1.2. Когда этого достаточно
4.2. Иерархический процесс — 4.2.1. Что меняется с появлением руководителя — 4.2.2. Распределение работы на ходу — 4.2.3. Когда нужен руководитель, а когда нет
4.3. Практика: исследование биржевого актива — 4.3.1. Постановка задачи — 4.3.2. Как устроен скрипт (+ раздел «Если доступ к SEC закрыт») — 4.3.3. Два подводных камня, которые всплыли на практике — 4.3.4. Сравнение двух режимов на живом результате
Скрипт главы: cai_stock_research_crew.py
Глава 5. Инструменты, знания и память
5.1. Инструменты: руки агента — 5.1.1. Зачем агенту инструменты — 5.1.2. Встроенные инструменты и свои — 5.1.3. Как устроен свой инструмент
5.2. База знаний: ответы по своим документам — 5.2.1. Зачем это нужно — 5.2.2. Как это работает внутри — 5.2.3. О пределах базы знаний
5.3. Память команды и практика: служба поддержки — 5.3.1. Что даёт память — 5.3.2. Постановка задачи — 5.3.3. Как устроен скрипт — 5.3.4. Что получилось: база знаний работает — 5.3.5. Что не получилось: память
Скрипт главы: cai_support_crew.py
Глава 6. Flows: точное управление процессом
6.1. Зачем нужны Flows — 6.1.1. Где упирается обычная команда — 6.1.2. Что даёт Flow — 6.1.3. Когда Flow нужен, а когда избыточен
6.2. Как устроен Flow — 6.2.1. Шаги: из чего собран процесс — 6.2.2. Переходы: как шаги связаны — 6.2.3. Состояние: общая память процесса — 6.2.4. Как это складывается вместе
6.3. Практика: поток самокоррекции кода — 6.3.1. Постановка задачи — 6.3.2. Как устроен поток — 6.3.3. Запасная модель: не лучше, а другая — 6.3.4. Что показал прогон
Скрипт главы: cai_code_flow.py
Глава 7. Итоги
7.1. Что мы собрали — Путь, который мы прошли — Сквозные уроки
7.2. Что удобнее в CrewAI, а что — иначе — 7.2.1. В чём выигрыш CrewAI — 7.2.2. Где готовность оборачивается ограничением — 7.2.3. CrewAI и ручная сборка процессов
7.3. Куда двигаться дальше — 7.3.1. С чего начать свою задачу — 7.3.2. На что смотреть при отладке — 7.3.3. Что осваивать следующим — 7.3.4. Главное, что стоит унести с собой
Приложения
Приложение A. Шпаргалка CrewAI — весь синтаксис курса на одной странице: обязательное начало скрипта, модель, агент, задача, команда, процессы, свой инструмент, база знаний, Flow, безопасное исполнение кода, доступ через прокси.
Приложение B. Словарь терминов — все понятия курса простыми словами: основа, процессы, модели, инструменты и знания, Flows, общее.
Приложение C. Устранение типовых проблем — реальные сбои, встреченные при прохождении, с симптомами, причинами и проверенными решениями: окружение и установка, запуск и модели, инструменты, база знаний, память, внешние источники данных, Flows, работа в PyCharm.
Скрипты курса
cai_hello_crew.py (гл.2)
Первая команда: один агент, одна задача
cai_code_review_crew.py (гл.3)
Ревью кода: автор → критик → редактор
cai_stock_research_crew.py (гл.4)
Исследование актива в двух режимах процесса
cai_support_crew.py (гл.5)
Служба поддержки по инструкции прибора (PDF)
cai_code_flow.py (гл.6)
Поток самокоррекции кода с переключением модели
Модели курса
gpt-oss:120b-cloud Основная: связный текст, рассуждения
gemma4:cloud Запасная: генерация кода, проверка
qwen2.5:7b Локальная: быстрые проверки, строгий формат
bge-m3 Локальная: поиск по документам (эмбеддинги)
Глава 1. Что такое CrewAI и зачем он нужен
1.1. Идея: команда сотрудников вместо одного агента
Кто и когда сделал CrewAI
Фреймворк создал Жоан Моура (João Moura) — бразильский инженер из Сан-Паулу, до этого руководивший ИИ-разработкой в компании Clearbit. Первая версия вышла в открытый доступ в декабре 2023 года и почти сразу привлекла внимание: идея «команды агентов с ролями» оказалась понятнее большинства тогдашних подходов. Сегодня CrewAI развивает одноимённая компания вместе с сообществом, код открыт и свободен для использования. Знать это полезно по одной причине: фреймворк молодой и быстро меняется, поэтому при работе всегда сверяйтесь с официальной документацией — часть деталей за год могла измениться.
Собрать агента можно вручную — например, на LangGraph: описываете узлы, соединяете их рёбрами, ведёте состояние, добавляете циклы и инструменты. Это гибко, но кропотливо: каждую связь приходится прокладывать самому.
CrewAI подходит к делу с другой стороны. Вместо схемы из узлов и стрелок вы набираете команду сотрудников, раздаёте каждому роль и задачу — и говорите: «Работайте». Как это выглядит и когда так удобнее — разберём здесь.
Термины параграфа
— CrewAI — фреймворк для сборки команд ИИ-агентов. Название так и переводится: crew — «команда», «экипаж».
— Агент (Agent) — отдельный «сотрудник»: у него есть роль, цель и характер. Например, «строгий рецензент кода».
— Задача (Task) — конкретное поручение: что сделать и какой результат ожидается.
— Команда (Crew) — группа агентов, которые вместе выполняют набор задач.
Эти три слова — Агент, Задача, Команда — основа всего CrewAI. Подробно разберём их в главе 3, пока достаточно общего смысла.
Аналогия: редакция журнала
Представьте, что вам нужно выпустить статью.
Можно сделать всё в одиночку: написать черновик, самому его вычитать, самому исправить ошибки, самому оформить. Один человек, много шляп — то надеваешь шляпу автора, то шляпу редактора. Именно так работает одиночный агент: одна модель по очереди выполняет все роли.
А можно собрать редакцию: автор пишет, литературный редактор правит стиль, корректор ловит опечатки, выпускающий собирает всё вместе. У каждого своя зона ответственности, работа идёт по цепочке. Так устроен CrewAI: вы описываете сотрудников и их обязанности, а передачу дел между ними берёт на себя фреймворк.
Отсюда главная мысль: разделение ролей часто даёт результат лучше, чем один исполнитель на всё. Специалист, сосредоточенный на одной задаче, ошибается реже, чем универсал, который держит в голове сразу всё.
Этот образ — отдел с распределёнными ролями — пройдёт через весь курс. Держите его в голове: почти всё устройство CrewAI на него ложится.
1.1.1. Чем CrewAI отличается от ручной сборки на LangGraph
В LangGraph вы управляете процессом на уровне механики: вот узел, вот переход, вот условие ветвления. Вы решаете буквально каждый шаг — полный контроль ценой ручной работы.
В CrewAI вы работаете на уровне намерения: описываете, кто эти сотрудники и что нужно сделать, а как передать работу от одного к другому — решает фреймворк.
Коротко разница такая:
— LangGraph — вы конструктор процесса. Максимум контроля, максимум ручной работы.
— CrewAI — вы руководитель команды. Быстрее собрать, но часть решений принимает фреймворк за вас.
Ни один подход не «лучше» вообще — они хороши для разного. К этому вернёмся в пункте 1.1.3.
1.1.2. Метафора «отдел с ролями»
Разложим образ редакции на составные части — они и есть три главных понятия CrewAI:
— Агент — это сотрудник. У него есть должность (роль), цель работы и профессиональный опыт (предыстория, которая задаёт манеру поведения).
— Задача — это поручение в работу. С понятным описанием и ожидаемым результатом, закреплённое за конкретным сотрудником.
— Команда — это сам отдел. Она объединяет сотрудников и поручения и определяет, в каком порядке всё делается.
Когда в главе 3 вы будете писать первый код, вы буквально опишете сотрудников и их поручения обычными словами. CrewAI силён тем, что настройка агента близка к человеческому языку: «ты — опытный рецензент, твоя цель — найти слабые места в коде, ты дотошен и не пропускаешь мелочей».
1.1.3. Когда CrewAI удобнее, а когда лучше LangGraph
Границы применимости важнее списка достоинств.
CrewAI удобнее, когда:
— задача естественно делится на роли (автор — критик — редактор);
— нужно быстро собрать рабочий прототип команды, не выписывая всю схему вручную;
— шаги в целом идут по порядку или их распределяет агент-руководитель;
— вас устраивает, что часть решений о ходе работы фреймворк примет сам.
LangGraph лучше, когда:
— нужен точный контроль над каждым переходом и ветвлением;
— логика сложная: много условий, циклов, возвратов на предыдущие шаги;
— важно предсказуемо управлять состоянием и точками остановки (например, вмешательство человека в конкретный момент);
— вы хотите видеть и настраивать весь маршрут процесса, а не доверять его фреймворку.
Есть и золотая середина: у CrewAI есть механизм Flows (глава 6), который возвращает точное управление порядком шагов — уже поверх команд. По духу он ближе к LangGraph. То есть выбор не всегда «или-или»: инструменты можно сочетать, и в главе 7 мы разберём, как именно.
Главное, что стоит унести из этого параграфа: CrewAI — это про описание команды словами, LangGraph — про черчение процесса руками. Разные уровни управления под разные задачи.
1.2. Какие задачи решает — примеры из жизни
Мы договорились: CrewAI хорош там, где работа естественно делится на роли. Посмотрим на три живых примера — на них видно, где командный подход раскрывается в полную силу. Пока только на уровне идеи, без кода; ко всем трём задачам мы вернёмся практически в следующих главах.
Термины параграфа
— Роль (role) — «должность» агента, одной фразой: кто он и за что отвечает.
— Конвейер — цепочка, где результат одного сотрудника становится сырьём для следующего.
1.2.1. Команда ревью кода: автор, критик, редактор
Проблема из жизни. Вы написали функцию и хотите, чтобы её проверили: нет ли ошибок, всё ли понятно, можно ли улучшить. В одиночку это неудобно — трудно быть одновременно и автором, и придирчивым проверяющим. Глаз замыливается: свои огрехи не видишь.
Как это ложится на команду. Разбиваем работу на три роли:
— Автор — пишет первую версию кода по заданию.
— Критик — придирчиво читает и перечисляет проблемы: ошибки, неясные места, слабые решения.
— Редактор — берёт замечания критика и выпускает исправленную, чистовую версию.
Работа идёт конвейером: автор → критик → редактор. Каждый видит результат предыдущего. Это ровно та редакция, о которой мы говорили в 1.1.
Почему команда здесь уместна. Роли очевидны и не пересекаются, порядок работы естественный. Критику проще быть строгим, когда он не отвечает за написание, а только ищет слабые места. Классический случай, где разделение ролей улучшает результат. Соберём такую команду в главе 3.
1.2.2. Исследование темы и подготовка отчёта
Проблема из жизни. Нужно разобраться в теме и сделать короткую сводку: собрать факты, отсеять лишнее, изложить понятно. Одному агенту тяжело удержать всё сразу — он и ищет, и оценивает, и пишет, и на каком-то шаге обычно «съезжает».
Как это ложится на команду.
— Исследователь — собирает материал по теме (при необходимости — с поиском в интернете как инструментом).
— Аналитик — отбирает из собранного главное, отбрасывает шум.
— Автор отчёта — превращает отобранное в связный, читаемый текст.
Здесь появляется важная деталь: работу можно организовать не жёсткой цепочкой, а с агентом-руководителем, который сам решает, кому что поручить и в каком порядке. Такой способ распределения называется иерархическим — разберём его в главе 4.
Почему команда здесь уместна. Задача крупная и делится на явные этапы. Разделив её, мы не даём одной модели захлебнуться объёмом. Плюс это удобный случай показать инструменты (поиск) и руководителя.
1.2.3. Многошаговые процессы с несколькими исполнителями
Проблема из жизни. Реальная работа редко умещается в один шаг. Пример: собрать свежие новости по теме → отфильтровать важное → написать короткий дайджест → проверить, что он читается. Шагов много, у каждого свой характер.
Как это ложится на команду. Каждый шаг закрепляется за своим исполнителем со своей ролью. Но чем длиннее цепочка, тем сильнее хочется управлять ею точнее: а что, если проверка на последнем шаге забраковала дайджест — вернуть на доработку? Простой конвейер такого разворота назад не умеет.
Вот здесь заканчиваются возможности обычной команды и начинаются Flows (глава 6) — механизм, который позволяет задавать порядок шагов явно, с ветвлениями и возвратами.
Почему это важно понять сразу. Чтобы не было завышенных ожиданий. Обычная команда CrewAI хорошо справляется с линейной или веерной работой, но сложные маршруты с условиями — уже уровень Flows. Мы пройдём и то, и другое.
Итог трёх примеров: как только задача делится на роли, её удобно решать командой. Ревью кода — простой конвейер из трёх ролей. Исследование — команда с руководителем, который раздаёт работу. Многошаговые процессы с проверками и возвратами — забота Flows. Все три задачи мы соберём своими руками в следующих главах.
