Создаём простого ИИ-агента с нуля. Часть 1

Создаём простого ИИ-агента с нуля. Часть 1

2026 год — это, без сомнения, год ИИ-агентов. С момента выхода Claude Code мощь таких агентов стала неоспоримой. Claude Code, Codex, OpenCode сегодня стали обязательными инструментами для многих разработчиков. OpenClaw и Hermes становятся для многих личными ИИ-ассистентами. Агенты проникают и в сферу интеллектуального труда — с помощью таких инструментов, как Cowork.

В этой статье мы с нуля соберём простого ИИ-агента, чтобы лучше понять, как такие агенты на самом деле работают. Чтобы по-настоящему разобраться в том, что у них «под капотом», мы не будем использовать фреймворки или библиотеки, а напишем агента с нуля на Python. Это не способ выпустить агента как можно быстрее — это способ в нём разобраться.

Что такое ИИ-агент?

ИИ-агент — это программа, которая использует искусственный интеллект для автономного достижения цели. Как и любой другой агент, он воспринимает окружающую среду, рассуждает о ней и воздействует на неё. Обычно такая программа работает в цикле до тех пор, пока цель не будет достигнута.

Что нужно агенту в минимальной комплектации?

Чтобы получить работающего агента, нужно всего четыре вещи:

  1. Цикл, который поддерживает работу агента.
  2. Подключение к LLM— к достаточно способной ИИ-модели.
  3. Пользовательский ввод. Способ, которым пользователь сообщает агенту цель.
  4. Контекст. Сохранение хода разговора, чтобы агент не забывал, что уже произошло.

Повторюсь, это лишь самая базовая из возможных реализаций агента. В следующих статьях мы добавим в него более интересные возможности.

Собираем агента

Чтобы собрать агента, сначала понадобится доступ к модели. В этом примере я возьму модель, которую можно запускать бесплатно и прямо на собственной машине. Для этого я воспользуюсь локальным экземпляром Ollama, на котором работаетgemma4:e4b— модель с 4 млрд эффективных параметров.

Весь код можно найти и просмотреть вGithub-репозитории.

Что здесь происходит?

  • Сначала с помощью функцииget_llm_clientмы создаём подключение к LLM — к локальному экземпляру Ollama.
  • Затем создаём массив с историей сообщений и инициализируем его базовыми инструкциями для ИИ-ассистента в системном промпте.
  • Берём пользовательский ввод и добавляем его в историю сообщений как сообщение пользователя.
  • Отправляем модели весь обновлённый разговор, включая последнее сообщение пользователя, и запрашиваем у неё ответ.
  • Ответ модели добавляется в историю разговора.
  • Цикл работает бесконечно, пока пользователь не введёт\exit.

Если запустить этот агентный цикл, мы сможем по очереди задавать агенту вопросы. У этого агента нет доступа к внешней информации, поэтому отвечать он сможет только на основе своих внутренних знаний:

Что у нас получилось

Это самый простой ИИ-агент из возможных, и в нём пока многого не хватает. Сейчас это просто чат-бот, который отвечает на всё, что укладывается в знания модели. Но он по-прежнему не умеет взаимодействовать со своим окружением. Он не может читать или записывать файлы, выполнять команды или искать информацию, чтобы лучше отвечать на ваши запросы.

Что дальше?

Следующий шаг — дать агентуинструменты, чтобы он мог начать выполнять действия в своём окружении. Вот тут-то и начинается самое интересное, и потенциал ИИ-агентов становится очевидным.

Один из таких инструментов — доступ к bash, то есть возможность выполнять на машине практически что угодно. И тут возникает резонный вопрос: а стоит ли пускать такого агента (да и прожорливую локальную модель) на личный ноутбук? Для экспериментов с LLM и агентами куда удобнее изолированная среда с нужными ресурсами — например,ML-платформа Cloud4Y: можно поднять модель помощнее, чем влезет в локальную память, и не переживать, что агент что-нибудь натворит на рабочей машине.

Читать оригинал