Kitabı oxu: «Создаем ИИ агента. Практикум на Python для начинающих»

Şrift:

© Игорь Боев, 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. Все три задачи мы соберём своими руками в следующих главах.

Yaş həddi:
12+
Litresdə buraxılış tarixi:
07 oktyabr 2026
Həcm:
80 səh.
ISBN:
9785007147484
Müəllif hüququ sahibi:
Издательские решения
Yükləmə formatı:

Oxşar kitablar