Что такое AI Agent и как его создать
Ключевые тезисы
- AI Agent — это программа, которая использует LLM (мозг) и набор инструментов (tools) для выполнения задач, выходящих за рамки простого генеративного ответа.
- Без агента LLM может только отвечать на вопросы на основе своих статических знаний и не может выполнять действия.
- Агент анализирует запрос, решает, какие инструменты использовать, выполняет их и формирует итоговый ответ.
- Можно создавать мультиагентные системы, где один главный агент управляет другими узкоспециализированными агентами.
Чем отличается работа с LLM и с AI Agent
Запрос к LLM без агента
Пользователь отправляет запрос напрямую языковой модели.
- Пример запроса: "Кто текущий президент Америки? Останови сервер DF1".
- Ответ LLM:
- На вопрос о президенте даст ответ, актуальный на дату своего обучения (например, "Джо Байден", если данные актуальны до октября 2024).
- На просьбу остановить сервер либо признает, что не может выполнить действий, либо предложит абстрактную команду, либо "соврёт", чтобы угодить пользователю.
- Ограничение: LLM не имеет доступа к реальным действиям (tools) или свежим данным.
Запрос к AI Agent
Пользователь отправляет запрос агенту, у которого есть набор инструментов (tools).
- Пример запроса: "Кто текущий президент Америки? Останови сервер DF2".
- Работа агента:
- Агент передаёт запрос и список доступных инструментов в LLM.
- LLM (мозг агента) анализирует, какие инструменты нужны для ответа (например,
web_searchдля актуальных данных иstop_serverдля управления). - Агент выполняет выбранные инструменты, получает результаты и с помощью LLM формирует связный ответ для пользователя.
Компоненты AI-системы (на примере "Терминатора")
- LLM (модель, например, от Ollama): Мозг системы, который принимает решения.
- Ollama: Тело системы, которое "хостит" (запускает и обслуживает) LLM-модели локально.
- AI Agent (написанный на Python): Руки системы, которые исполняют решения мозга, используя инструменты (tools).
Создание простого AI Agent на Python
1. Установка окружения
- Скачать и запустить Ollama.
- Загрузить через Ollama модели, поддерживающие работу с инструментами (tools) (например,
gemma3:1b). - Установить необходимые Python-библиотеки:
ollama,streamlit-agents(или аналог для создания агента),flask,requests.
2. Настройка модели (мозга агента)
В коде указывается, где находится Ollama и какую конкретную модель использовать.
3. Создание инструментов (tools)
Инструменты — это Python-функции с описанием на естественном языке.
- Пример инструмента
get_server_status: Принимает имя сервера, возвращает фиктивный статус "онлайн". Описание: "Check the current status of the server". - Аналогично создаются инструменты
start_serverиstop_server.
4. Сборка агента
Агент создаётся с указанием трёх ключевых параметров:
- Модель: Ссылка на LLM (мозг).
- Инструменты: Список созданных функций-инструментов.
- System Prompt: Инструкция, кто такой агент и как действовать (например, "You are a helpful IT assistant. Use appropriate tools for server requests. Answer shortly and clearly.").
5. Запуск через веб-сервер (Flask)
Создаётся простой веб-сервер с двумя endpoint:
GET /— для проверки работоспособности.POST /— принимает промпт пользователя, передаёт его агенту и возвращает результат.
Демонстрация работы агента
Агент С инструментами
- Запрос: "Restart server stage1 and stage2".
- Действие агента: Понимает, что инструмента
restartнет, но естьstopиstart. Последовательно вызываетstop_serverиstart_serverдля каждого сервера. - Результат: Корректное выполнение задачи.
Агент БЕЗ инструментов
- Запрос: "Restart server aa1 and bb2".
- Действие агента: Не имеет инструментов для выполнения. Может либо честно сказать об этом, либо, если модель не очень "умная", сгенерировать ложный ответ, чтобы угодить пользователю (например, "I have initiated restart process"), хотя ничего не сделал.
Развитие архитектуры: Multi-Agent Systems
Агенты могут использовать других агентов как инструменты. Это позволяет строить сложные системы:
- Главный агент-архитектор получает задачу.
- Он делегирует подзадачи специализированным агентам: программисту, DevOps-инженеру, писателю документации.
- Каждый саб-агент имеет свою модель и свой набор инструментов, оптимальный для своей области.
Выводы
- AI Agent превращает LLM из простого генератора текста в активную систему, способную выполнять действия через инструменты.
- Ключевые элементы агента: мозг (LLM), инструменты (tools) и логика оркестрации (код агента).
- Агент без инструментов практически бесполезен для выполнения практических задач.
- На базе простого агента можно строить сложные мультиагентные системы для автоматизации workflows.