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

от автора

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

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

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

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

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

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

  1. Цикл, который поддерживает работу агента.

  2. Подключение к LLM — к достаточно способной ИИ-модели.

  3. Пользовательский ввод. Способ, которым пользователь сообщает агенту цель.

  4. Контекст. Сохранение хода разговора, чтобы агент не забывал, что уже произошло.

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

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

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

import osfrom openai import OpenAIdef get_llm_client():    return OpenAI(        base_url="http://localhost:11434/v1",        api_key=""    )def agent_loop(client):    messages = [        {"role": "system", "content": "You are a helpful assistant."}    ]    while True:        user_input = input("You: ")        if user_input.lower() == "\\exit":            break        messages.append({"role": "user", "content": user_input})        response = client.chat.completions.create(            model="gemma4",            messages=messages,            temperature=0.7,        )        reply = response.choices[0].message.content        print(f"Assistant: {reply}")        messages.append({"role": "assistant", "content": reply})if __name__ == "__main__":    client = get_llm_client()    agent_loop(client)

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

  • Сначала с помощью функции get_llm_client мы создаём подключение к LLM — к локальному экземпляру Ollama.

  • Затем создаём массив с историей сообщений и инициализируем его базовыми инструкциями для ИИ-ассистента в системном промпте.

  • Берём пользовательский ввод и добавляем его в историю сообщений как сообщение пользователя.

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

  • Ответ модели добавляется в историю разговора.

  • Цикл работает бесконечно, пока пользователь не введёт \exit.

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

$ python agent.pyYou: What's the capital city of Germany?Assistant: The capital city of Germany is **Berlin**.

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

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

Что дальше?

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

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

ссылка на оригинал статьи https://habr.com/ru/articles/1047722/