- BrainTools - https://www.braintools.ru -

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

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

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

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

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

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

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

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

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

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

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

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

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

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

import os
from openai import OpenAI


def 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.py
You: What's the capital city of Germany?
Assistant: The capital city of Germany is **Berlin**.

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

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

Что дальше?

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

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

Автор: Cloud4Y

Источник [4]


Сайт-источник BrainTools: https://www.braintools.ru

Путь до страницы источника: https://www.braintools.ru/article/31758

URLs in this post:

[1] интеллект: http://www.braintools.ru/article/7605

[2] ML-платформа Cloud4Y: https://www.cloud4y.ru/cloud-hosting/ml-platform/?utm_source=habr&utm_medium=article&utm_campaign=cloud-hosting&utm_content=link&utm_term=ml

[3] память: http://www.braintools.ru/article/4140

[4] Источник: https://habr.com/ru/companies/cloud4y/articles/1047722/?utm_source=habrahabr&utm_medium=rss&utm_campaign=1047722

www.BrainTools.ru

Rambler's Top100