2026 год — это, без сомнения, год ИИ-агентов. С момента выхода Claude Code мощь таких агентов стала неоспоримой. Claude Code, Codex, OpenCode сегодня стали обязательными инструментами для многих разработчиков. OpenClaw и Hermes становятся для многих личными ИИ-ассистентами. Агенты проникают и в сферу интеллектуального труда — с помощью таких инструментов, как Cowork.
В этой статье мы с нуля соберём простого ИИ-агента, чтобы лучше понять, как такие агенты на самом деле работают. Чтобы по-настоящему разобраться в том, что у них «под капотом», мы не будем использовать фреймворки или библиотеки, а напишем агента с нуля на Python. Это не способ выпустить агента как можно быстрее — это способ в нём разобраться.
Что такое ИИ-агент?
ИИ-агент — это программа, которая использует искусственный интеллект для автономного достижения цели. Как и любой другой агент, он воспринимает окружающую среду, рассуждает о ней и воздействует на неё. Обычно такая программа работает в цикле до тех пор, пока цель не будет достигнута.
Что нужно агенту в минимальной комплектации?
Чтобы получить работающего агента, нужно всего четыре вещи:
Цикл, который поддерживает работу агента.
Подключение к LLM — к достаточно способной ИИ-модели.
Пользовательский ввод. Способ, которым пользователь сообщает агенту цель.
Контекст. Сохранение хода разговора, чтобы агент не забывал, что уже произошло.
Повторюсь, это лишь самая базовая из возможных реализаций агента. В следующих статьях мы добавим в него более интересные возможности.
Собираем агента
Чтобы собрать агента, сначала понадобится доступ к модели. В этом примере я возьму модель, которую можно запускать бесплатно и прямо на собственной машине. Для этого я воспользуюсь локальным экземпляром 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: можно поднять модель помощнее, чем влезет в локальную память, и не переживать, что агент что-нибудь натворит на рабочей машине.


























