Читать книгу Создаем ИИ агента. Практикум на Python для начинающих (Игорь Боев) онлайн бесплатно на Bookz
Создаем ИИ агента. Практикум на Python для начинающих
Создаем ИИ агента. Практикум на Python для начинающих
Оценить:

4

Полная версия:

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

Создаем ИИ агента

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

1.3. Карта курса

Прежде чем браться за инструмент, полезно увидеть весь маршрут: куда идём и какие остановки нас ждут. Держите эту карту под рукой: если в середине курса покажется, что вы заблудились, вернитесь сюда и посмотрите, где находитесь.

1.3.1. Что освоим по главам

Курс устроен как подъём по ступеням — от простого к сложному. Каждая следующая глава опирается на предыдущую.

— Глава 2. Подготовка окружения. Поставим CrewAI в отдельное виртуальное окружение и подключим модели через Ollama. Здесь же разберём практический урок: почему CrewAI держат в изолированном окружении.

— Глава 3. Основа: Агент, Задача, Команда. Три главных кирпича. Соберём первую рабочую команду — ревью кода из трёх ролей.

— Глава 4. Процессы. Как команда распределяет работу: по очереди (последовательно) или через агента-руководителя (иерархически). Соберём исследование биржевого актива и прогоним его в обоих режимах.

— Глава 5. Инструменты, знания, память. Дадим агентам «руки» (инструменты), подключим базу знаний из документов и разберём память команды. Соберём службу поддержки, отвечающую по инструкции прибора.

— Глава 6. Flows. Точное управление сложным процессом: явный порядок шагов, ветвления, возвраты, состояние. Соберём поток самокоррекции кода. Это самая мощная часть CrewAI и самая близкая по духу к LangGraph.

— Глава 7. Итоги. Соберём общую картину и разберём практический вопрос: что удобнее делать в CrewAI, что — другими средствами, и как их сочетать.

— Приложения. Шпаргалка на один лист, словарь терминов и разбор типовых проблем — чтобы возвращаться за справкой после курса.

Логика движения простая: сначала научимся собирать команду, потом управлять тем, как она работает, потом расширять её возможности, и в конце — брать процесс под полный контроль.

1.3.2. Возможности CrewAI одним взглядом

Короткий обзор того, что умеет фреймворк. Слева — возможность, справа — зачем она нужна. Пока просто прочитайте, чтобы держать общую картину.

Возможность — Зачем нужна

Агент (Agent) с ролью и целью — Задать поведение «сотрудника» обычными словами

Инструменты (Tools) — Дать агенту «руки»: поиск, работа с файлами, вычисления

Задачи (Tasks) и порядок их выполнения — азложить работу на понятные поручения

Процессы (последовательный, иерархический) — Выбрать, как команда распределяет работу

База знаний (Knowledge RAG) — Отвечать по своим заданным документам без ручной сборки поиска

Память команды — Помнить факты и ход работы между шагами и запусками

Flows — Управлять сложным процессом явно: ветвления, возвраты, состояниеВмешательство человекаОстановиться и спросить человека в нужный момент


Первые семь строк таблицы мы разберём подробно, каждую в своей главе. Последняя — вмешательство человека — в курс не входит; о ней скажем в главе 7 как о направлении для самостоятельного изучения.

Общий вывод: CrewAI даёт готовые узлы там, где иначе пришлось бы собирать механизм из деталей вручную. Ваша задача на этом курсе — понять, где такая готовность экономит силы, а где полезнее взять управление на себя.

Итог главы 1

— CrewAI собирает работу из трёх кирпичей — Агент, Задача, Команда — и организует её как работу отдела с распределёнными ролями.

— В отличие от LangGraph, где процесс чертят вручную, здесь команду описывают словами, а передачу дел берёт на себя фреймворк.

— Это удобно, когда задача делится на роли; для сложных маршрутов с условиями есть Flows.

— Почти всё для сильных команд агентов у CrewAI есть «из коробки».

Теория закончилась. В главе 2 подготовим рабочее окружение и сделаем первый запуск.

bannerbanner