Как изучить AI agents с нуля: пошаговый план
Изучите архитектуру AI agents через практику. Пройдите шесть этапов от создания базового цикла до внедрения памяти и безопасности. Реализуйте проект на каждом шаге обучения.
Шесть этапов обучения
Чтобы изучить AI agents с нуля, последовательно пройдите шесть этапов: концепции, ваш первый цикл, инструменты, память, проектирование циклов и безопасность. На каждом этапе вы создаете что-то своими руками. Пропуск этапов — самая частая причина остановки в обучении, так как фреймворк скрывает именно ту часть, которую вам необходимо понять.
AI agent — это цикл вокруг языковой модели, которой разрешено вызывать инструменты. Это определение охватывает весь предмет. Всё, что следует далее, — это детали о том, что входит в цикл, к чему могут обращаться инструменты и как остановить цикл при возникновении ошибки. Если вы можете объяснить работу цикла другому человеку, значит, вы освоили материал. Если вы можете только перечислить названия фреймворков, значит, нет.
Приведенный ниже план предполагает обучение через практику. Изучите этап, создайте небольшое решение, намеренно сломайте его, а затем переходите дальше. Этап, который вы только прочитали, — это этап, который вы не прошли.
Что вам действительно нужно перед первым этапом
Список необходимых условий короче, чем утверждают на большинстве курсов.
- Вы умеете читать и писать на Python или TypeScript на уровне скрипта из 50 строк.
- Вы уверенно работаете в Linux shell: умеете установить пакет, отредактировать файл, прочитать лог.
- У вас есть API key для облачной модели или машина, способная запустить локальную модель.
Это весь список. Вам не нужна теория машинного обучения, и вам не нужно обучать модель. Работа с агентами не предполагает использования градиентов или обучающих данных. Видеокарта важна только в том случае, если вы решите запускать модель самостоятельно — это отдельный навык, который можно освоить позже, изучив развертывание Ollama на VPS для self-hosted LLM.
Многие недооценивают важность навыков работы с командной строкой. Агенты часто дают сбой из-за прав доступа, путей, переменных окружения и процессов, которые завершаются без вывода ошибок. Если stack trace, связанный с PATH или правами доступа к файлу, заставляет вас закрыть терминал, сначала потратьте выходные на изучение основ Linux. Это сэкономит вам месяц работы в будущем.
Этап 1: что такое агент и чем он не является
Начните с одного вызова API без цикла. Отправьте запрос, выведите ответ и посмотрите на количество токенов в ответе. Теперь вы понимаете единицу стоимости и единицу задержки.
Затем изучите использование инструментов. Это единственная действительно новая идея во всей области. Вы описываете функцию для модели: указываете её имя, описание и схему входных данных в формате JSON (JavaScript Object Notation). Модель ничего не запускает. Она отвечает структурированным запросом: вызвать run_command с такими аргументами. Ваш код выполняет функцию, отправляет результат обратно в виде сообщения и снова обращается к модели. Модель планирует действия, читая и записывая текст. Ваш код выполняет действия. Код на вашей стороне этого обмена получает отдельное название, когда вы начинаете сравнивать архитектуры: это обвязка агента, то есть цикл, инструменты и разрешения, организованные вокруг модели, у которой нет ничего из этого.
Чат-бот завершает работу после одного ответа. Агент повторяет этот обмен до тех пор, пока модель не перестанет запрашивать инструменты. В этом повторении заключается вся разница, и именно поэтому режимы сбоев у них тоже различаются. Чат-бот один раз выдает неверный ответ. Агент действует на основе неверного ответа несколько раз, прежде чем кто-либо это заметит.
Этап 2: напишите цикл самостоятельно, один раз
Не начинайте с фреймворка. Напишите около тридцати строк на Python, чтобы структура программы была вашей.
sudo apt update && sudo apt install -y python3-venv
python3 -m venv ~/agent
source ~/agent/bin/activate
pip install anthropic
export ANTHROPIC_API_KEY=your-key-hereimport subprocess
import anthropic
client = anthropic.Anthropic()
tools = [{
"name": "run_command",
"description": "Run a read only shell command and return its output.",
"input_schema": {
"type": "object",
"properties": {"command": {"type": "string"}},
"required": ["command"],
},
}]
messages = [{"role": "user", "content": "How much disk space is free here?"}]
while True:
response = client.messages.create(
model="claude-opus-5",
max_tokens=4096,
tools=tools,
messages=messages,
)
if response.stop_reason != "tool_use":
break
messages.append({"role": "assistant", "content": response.content})
results = []
for block in response.content:
if block.type == "tool_use":
done = subprocess.run(
block.input["command"], shell=True,
capture_output=True, text=True, timeout=10,
)
results.append({
"type": "tool_result",
"tool_use_id": block.id,
"content": done.stdout or done.stderr,
})
messages.append({"role": "user", "content": results})
print(next(b.text for b in response.content if b.type == "text"))Запустите её с помощью python3 agent.py. Корректный запуск выведет один абзац с перечислением ваших файловых систем и свободного места на них, так как модель запросила df -h, ваш код выполнил это, а второй проход преобразовал таблицу в предложение. Если ничего не выводится, значит, цикл завершился до получения текстового блока. Добавьте print(response.stop_reason) внутрь цикла и наблюдайте за изменением значений.
Теперь намеренно нарушьте работу программы. Удалите строку tool_use_id и изучите ошибку: результат инструмента без соответствующего id отклоняется API, и это самая распространенная ошибка новичков. Задайте вопрос, требующий выполнения двух команд, и проследите, как цикл выполнится дважды. Задайте невыполнимый вопрос и посмотрите, сдастся ли программа или будет работать бесконечно.
Одно предостережение по поводу этого примера. Он передает вывод модели напрямую в оболочку через shell=True, что допустимо на тестовой машине, которую можно пересобрать, но недопустимо в любых других условиях. Этап 6 исправляет это. Концепции, лежащие в основе цикла, более подробно рассмотрены в создании собственного ИИ-агента на VPS.
Этап 3: инструменты, которых не было у агента изначально
Ваш инструмент run_command работает, но настоящему агенту нужны инструменты для взаимодействия с внешними системами: тикет-системой, базой данных или репозиторием. Написание отдельных оберток для каждого сервиса под каждого агента не масштабируется.
Model Context Protocol (MCP) — это стандарт, к которому пришла индустрия. MCP-сервер предоставляет набор инструментов через стандартный транспорт, и любой агент с поддержкой MCP может использовать их без дополнительного связующего кода. Эталонный сервер файловой системы запускается одной командой:
npx -y @modelcontextprotocol/server-filesystem /home/you/projectsДля этого требуется установленный Node, а аргумент с директорией — это единственный путь, к которому сервер будет иметь доступ. Это модель безопасности в миниатюре: границы определяет сервер, а не модель. Укажите клиенту этот сервер, и ваш агент получит возможность чтения и записи файлов, которую вы не реализовывали самостоятельно. Правильный запуск таких серверов от имени сервисной учетной записи с учетом выбора транспорта описан в запуске MCP-серверов на VPS для AI-агентов разработки. Для второго сервера, который работает с реальными данными, а не с временной директорией, в self-hosting openGym, трекере тренировок поставляется версия только для чтения. Это позволит вам практиковаться в запросах к истории своих тренировок, не предоставляя агенту возможности что-либо повредить.
Урок этого этапа заключается в том, что проектирование инструментов — это и есть основная работа. Размытое описание заставляет модель гадать. Инструмент, возвращающий сорок тысяч символов, засоряет контекстное окно. Инструмент, который может удалять данные, рано или поздно их удалит.
Этап 4: память, которая по сути является просто файлами
Новички в этом месте сразу обращаются к векторным базам данных. Не делайте этого, по крайней мере пока.
У агента нет памяти между вызовами. Вы каждый раз отправляете всю историю беседы целиком, поэтому длинная сессия стоит за один запрос дороже, чем короткая. Таким образом, проблема памяти разделяется на две части. Первая — это то, что помещается в контекстное окно прямо сейчас; вы управляете этим с помощью суммаризации, удаления старых выводов инструментов и кэширования стабильного префикса промпта, чтобы платить за него лишь малую часть стоимости. Вторая — это то, что сохраняется после перезапуска, то есть постоянное хранилище.
Для решения второй проблемы обычный файл в формате markdown, который агент может читать и редактировать, превосходит векторную базу данных почти в любом первом проекте. Создайте один файл, укажите формат, дайте агенту команду читать этот файл перед началом работы и обновлять его, когда он узнает что-то новое. Вы получите большую часть преимуществ, к тому же вы сможете открыть файл и увидеть, что именно «знает» ваш агент. Обращайтесь к эмбеддингам и поиску по базе только тогда, когда заметки перестанут помещаться в контекстное окно, и не раньше.
Этап 5: цикл как продукт
К этому моменту вы уже можете создать агента, который работает, пока вы за ним наблюдаете. Этап 5 заключается в том, чтобы заставить его работать, когда вы этого не делаете.
Четыре вопроса определяют, безопасно ли оставлять автономного агента без присмотра. Что является триггером, чтобы он не работал вхолостую. В каких границах он действует, чтобы ошибка оставалась незначительной. Как проверяется результат, поскольку агент, который сам оценивает свою работу, всегда ставит себе высший балл. Какой бюджет его ограничивает — в токенах или по времени выполнения. Целенаправленная проработка этих четырех аспектов — это дисциплина, описанная в проектировании циклов и том, что охватывает это определение.
Упражнение: возьмите своего агента со 2-го этапа, дайте ему задачу, требующую четырех или пяти шагов, и добавьте жесткое ограничение на количество итераций. Затем снимите ограничение и посмотрите, что сделает бесконечный цикл с вашим счетом за токены. Проделайте это один раз с небольшим бюджетом, чтобы никогда не допустить этого случайно при большом.
Этап 6: безопасность, секреты и расходы
Этот этап обязателен. Он стоит последним только потому, что вы не почувствуете риск, пока не создадите работающую систему.
Запускайте агента от имени отдельного непривилегированного пользователя, никогда не используйте root или свою личную учетную запись. Это ограничит радиус поражения одной директорией, а не всей машиной. Храните учетные данные вне доступа модели, так как всё, что попадает в контекстное окно, может быть выдано в ответе через вызов инструмента. Решение заключается в использовании краткосрочных токенов, выдаваемых вспомогательным сервисом, как описано в как не допустить попадания секретов в AI-агенты. Установите жесткий лимит расходов, так как автоматизированный цикл оплачивается за каждую итерацию без участия человека. Ограничения и пакетная обработка, помогающие контролировать бюджет, описаны в контроль расходов AI-агентов на постоянно работающем VPS.
Если ваш агент работает внутри готовой среды, а не в написанном вами скрипте, часть этого этапа сводится к настройке, а не к программированию. В статье плагины DeepSeek Harness, которые стоит установить рассматриваются те же вопросы: лимиты бюджета, правила доступа к инструментам и сканирование на предмет инъекций.
Расходы требуют конкретных цифр. По состоянию на июль 2026 года Claude Opus 5 стоит 5 долларов за миллион входных токенов и 25 долларов за миллион выходных токенов. «Разговорчивый» агент, постоянно пересылающий растущую историю переписки, может пропустить через одну задачу несколько сотен тысяч токенов. Кэширование промптов и использование менее мощной модели для рутинных операций меняют экономику проекта гораздо сильнее, чем любая оптимизация промптов.
Инъекции промптов также относятся к этому этапу. Если агент читает веб-страницу, баг-трекер или почтовый ящик, то автор этого текста фактически пишет инструкции для вашего агента. Поиск в Интернете — это обычно инструмент, который открывает данную уязвимость первым. В статье подключение агента к собственному экземпляру SearXNG показаны принципы работы и поверхность атаки, которую это создает. Защита заключается не в более «умном» системном промпте, а в разграничении прав. Агент, который не имеет прав на удаление репозитория, не сможет удалить его, даже если его об этом попросят.
Какому учебному плану следовать?
Выберите один учебный план и завершите его, вместо того чтобы пробовать шесть разных. Репозиторий Microsoft ai-agents-for-beginners — наиболее полный бесплатный ресурс, состоящий из восемнадцати уроков. По состоянию на июль 2026 года он набрал более 70,000 звезд и четко соответствует этапам, описанным выше. Обзоры популярных репозиториев с агентами полезны для понимания того, что существует, но они гораздо менее эффективны в качестве учебной программы, так как список, отсортированный по звездам, отражает популярность, а не последовательность обучения.
Если вам нужен реальный проект для практики, лучшей первой целью станет агент для написания кода: обратная связь здесь мгновенная, инструменты очевидны, а ошибки легко исправить. В статье Запуск AI-агента для написания кода на VPS процесс описан от начала до конца. Если вы предпочитаете изучать готовые системы, а не создавать их с нуля, сравнение в статье лучшие self-hosted AI-агенты показывает, как разные проекты решают одну и ту же задачу по-разному.
Сколько времени это занимает?
Для человека, который уже умеет программировать, этапы 1 и 2 занимают один вечер. Этап 3 — это выходные, большая часть которых уходит на изучение описаний инструментов, а не самого протокола. Этапы 4 и 5 требуют нескольких недель реальной эксплуатации, так как вы узнаете, что именно забывает ваш агент, только наблюдая за тем, как он это делает. Этап 6 по сути никогда не заканчивается, поскольку каждая новая возможность, которую вы предоставляете агенту, открывает его заново.
Два месяца регулярных занятий по вечерам позволяют большинству людей создать работающего, ограниченного в рамках и полезного агента. Те, у кого на это уходит год, обычно просто продолжают читать вместо того, чтобы заниматься разработкой.
FAQ
Нужно ли знать машинное обучение для создания AI-агента?
Нет. Создание агента сводится к вызову модели через API и связыванию её запросов к инструментам с реальными функциями, что является обычной прикладной разработкой. Вы не касаетесь обучения, градиентов или наборов данных. Навыки, от которых зависит работоспособность агента — это проектирование схем для инструментов, обработка ошибок и права доступа в Linux. Теория машинного обучения становится актуальной, только если вы переходите к дообучению (fine-tuning) модели, что является другой задачей с другими требованиями.
Стоит ли начинать с фреймворков вроде LangChain или CrewAI?
Сначала напишите один цикл обработки вручную, а затем переходите к фреймворку. Фреймворк заменяет тридцать строк кода из этапа 2 на объект конфигурации, что удобно, когда вы понимаете, что именно он заменяет, но сбивает с толку до этого момента. Когда агент работает некорректно, вам приходится анализировать список сообщений и результаты работы инструментов напрямую, и это гораздо сложнее, если вы никогда их не видели. После того как вы один раз напишете цикл самостоятельно, фреймворк будет экономить ваше время, а не скрывать механизм работы.
Сколько стоит обучение созданию AI-агентов?
Меньше, чем ожидает большинство людей, если установить ограничения. API-ключ облачного сервиса и небольшой VPS покрывают всё, что описано в этих шести этапах. Настоящий риск — это не почасовая оплата, а бесконечный цикл, который расходует средства, пока вы спите. Установите жесткий лимит расходов в своем API-аккаунте в первый же день, добавьте ограничение на количество итераций в каждом цикле и используйте более дешевую модель для рутинных шагов. Запуск модели локально исключает оплату токенов, но требует наличия соответствующего оборудования.
В чем разница между AI-агентом и чат-ботом?
Чат-бот отвечает один раз. Агент повторяет цикл: модель запрашивает инструмент, ваш код выполняет его, результат возвращается обратно, и модель решает, что делать дальше. Именно эта повторяемость позволяет агенту выполнять многоэтапные задачи, и именно поэтому агентам нужны ограничения, которые не требуются чат-ботам. Неверный ответ чат-бота — это просто плохой абзац текста. Неверный ответ агента — это плохой абзац текста плюс последствия того, что агент предпринял на его основе.