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