kagent: Kubernetes-нативный рантайм для AI-агентов — архитектура, практика и альтернативы
kagent — это open-source платформа с открытым исходным кодом, которая привносит «агентный» искусственный интеллект в облачные и Kubernetes-среды. Если говорить проще, она позволяет создавать интеллектуальных агентов, которые понимают запросы на естественном языке и автономно выполняют сложные операции по управлению инфраструктурой: диагностируют проблемы с сетью, анализируют логи, управляют развертываниями. https://kagent.dev
kagent был создан компанией Solo.io в 2025 году и является sandbox-проектом CNCF (Cloud Native Computing Foundation). Его главная идея — превратить AI-агента из простого чат-бота в полноценного участника DevOps- и платформенных процессов, управляемого теми же инструментами, что и остальные рабочие нагрузки в кластере.
🎯 Что дает kagent и как он работает
Ключевые возможности
- Управление как кодом (GitOps): Агенты определяются как обычные Kubernetes-ресурсы (Custom Resources). Вы можете версионировать их, применять через `kubectl` и управлять ими так же, как и любыми другими компонентами инфраструктуры.
- Автоматизация рутины: Агенты самостоятельно выполняют многошаговые задачи по устранению неполадок и мониторингу, снижая нагрузку на специалистов.
- Гибкость и отсутствие привязки: kagent поддерживает множество LLM-провайдеров (OpenAI, Anthropic, Gemini и другие), а также любые OpenAI-совместимые эндпоинты, что позволяет использовать практически любую модель, включая вашу собственную.
- Интеграция с инструментами: Агенты могут использовать широкий набор инструментов (Tools) через Model Context Protocol (MCP) для взаимодействия с системами: просмотр логов подов, запросы к Prometheus, управление ресурсами Kubernetes и многое другое.
- Human-in-the-loop: Встроенные механизмы подтверждения действий, когда агент предлагает изменить ресурс, но ждет одобрения человека, а также поддержка инициативных вопросов от агента.
- Долговременная память: Векторная память, позволяющая агентам помнить контекст между сессиями, а не только в рамках последнего запроса.
- Agent-to-Agent (A2A): Агенты могут обнаруживать друг друга и вызывать, что позволяет строить многоагентные рабочие процессы с делегированием задач.
Архитектура
Архитектура kagent состоит из трех основных компонентов:
- Tools (Инструменты): Это «руки» агента — набор функций, которые агент может вызывать для выполнения реальных действий в инфраструктуре. kagent поставляется с предустановленными инструментами для отображения логов подов, запросов к Prometheus, генерации ресурсов и многого другого.
- Agents (Агенты): Это «мозг» системы — автономные системы, которые планируют, выполняют и анализируют задачи, используя доступные инструменты. Вы описываете агента в YAML-файле, указывая его системный промпт (роль), модель LLM и список инструментов, к которым у него есть доступ. Агенты могут объединяться в команды, где планирующий агент распределяет задачи между исполнителями.
- Framework (Фреймворк): Гибкий интерфейс, позволяющий запускать агентов как через UI, так и декларативно. Он построен на фреймворке Google ADK, но также поддерживает LangGraph, CrewAI и собственные фреймворки.
🐳 Практический пример: запуск kagent в Podman на macOS
Перейдем от теории к практике. Наш тестовый агент `myagent` был успешно запущен локально на MacBook (Intel) с использованием Podman. Он продемонстрировал возможность вызова инструментов (Tool Calling) и ведения диалога на русском языке.
Ключевые шаги развертывания
- Подготовка окружения: Установка Podman и `podman-compose`, а также создание скрипта-обертки `docker-compose`, который перенаправляет вызовы в `podman-compose`, поскольку kagent ожидает наличия именно этой утилиты.
- Создание проекта агента: Генерация структуры проекта командой `kagent init adk python myagent`.
- Настройка базового образа: В `Dockerfile` базовый образ был заменен на `kagent-adk:0.10.4-full`, так как distroless-вариант не содержит оболочки `/bin/sh`, необходимой для выполнения команд установки зависимостей. Также был добавлен шаг `RUN uv pip install “google-adk[extensions]”` для поддержки LiteLLM и указана переменная `ENV PYTHONPATH=/app`.
- Конфигурация подключения к LLM: В файле `agent.py` (и/или `docker-compose.yaml`) были явно указаны параметры для подключения к вашему эндпоинту ProxyAPI:
- Модель: `openai/z-ai/glm-5.3-flash` (обязательный префикс `openai/` для LiteLLM).
- Базовый URL: `https://api.proxyapi.ru/v1`.
- API-ключ: ваш токен от ProxyAPI.
- Запуск: Сборка образа и запуск контейнера через `podman-compose up`.
Результат: работающий агент с Tool Calling
На скриншоте видно, как агент `myagent` в интерактивном режиме `kagent run` отвечает на приветствие, а затем по запросу «давай кинем» выполняет вызов инструмента:
- Tool Call: `roll_die` с параметром `{“sides”: 6}`.
- Tool Result: `{“result”: 1}`.
- Ответ агента: «Выпала 1 🎲. На кубике с 6 гранями это минимальный результат — не повезло, но такое бывает! Хочешь бросить ещё раз или проверить число на простоту?»
Этот пример наглядно демонстрирует полный цикл работы агента: понимание запроса, выбор и вызов нужного инструмента, обработка результата и формирование естественно-языкового ответа.
⚖️ Сравнение с альтернативами
kagent — не единственный инструмент в этой нише. Чтобы понять его место, полезно сравнить его с другими решениями, которые решают смежные, но зачастую разные задачи. Подробные обзоры на Asya и Agent Autoscale появятся в отдельных статьях, а здесь мы приведем краткое сравнение.
| Инструмент | Категория | Ключевая абстракция | Модель выполнения | Масштабирование | Основной сценарий |
| kagent | Фреймворк для AI-агентов | `Agent` (системный промпт + инструменты + LLM) | Синхронный запрос/ответ через контроллер и движок ADK | ❌ Нет встроенного автомасштабирования (агенты — это процессы, управляемые контроллером) | Одиночные агенты для операционных задач в K8s (troubleshooting, мониторинг) |
| Asya | Меш акторов для AI-нагрузок | `AsyncActor` (stateless обработчик + очередь + sidecar) | Хореография: сообщение несет свой маршрут через меш акторов | ✅ Поакторное масштабирование через KEDA (по глубине очереди), scale-to-zero | Многошаговые AI/ML пайплайны, агентные рабочие процессы в масштабе |
| Agent Autoscale | Оператор для управления AI-агентами | `SwarmAgent` (LLM-агент с промптом, инструментами, guardrails и автомасштабированием) | Управляется оператором, масштабирование на основе KEDA | ✅ Масштабирование на основе спроса и scale-to-zero через KEDA | Управление флотами AI-агентов как first-class ресурсами с автомасштабированием |
Другие заметные инструменты в экосистеме
Помимо вышеперечисленных, стоит упомянуть специализированные утилиты, которые часто используются в связке или как альтернативы для конкретных задач:
- K8sGPT: AI-ассистент для быстрой диагностики кластера. Он сканирует ресурсы и объясняет проблемы на понятном языке, но по умолчанию не вносит изменений (read-only).
- HolmesGPT: Инструмент для более глубокого расследования инцидентов. Он анализирует логи, метрики и состояние кластера для поиска корневой причины, с возможностью опционального исправления с подтверждением.
- kubectl-ai: Утилита, которая превращает запросы на естественном языке в команды `kubectl`. Перед выполнением спрашивает подтверждение у пользователя.
💎 Заключение
kagent занимает важную нишу, предлагая Kubernetes-нативный, декларативный подход к управлению AI-агентами. Он идеально подходит для платформенных инженеров и DevOps-специалистов, которые хотят автоматизировать рутинные операции, используя знакомые им инструменты (YAML, `kubectl`, GitOps). В отличие от специализированных ассистентов (K8sGPT, HolmesGPT), kagent — это именно фреймворк для создания собственных агентов под конкретные задачи вашей инфраструктуры.
Хотя kagent не является решением для масштабных асинхронных пайплайнов (как Asya) или автоматического масштабирования флотов агентов (как Agent Autoscale), его сила — в простоте, гибкости и глубокой интеграции с экосистемой Kubernetes.
Успешный запуск агента с поддержкой Tool Calling в локальном окружении подтверждает, что kagent готов к практическому использованию и может стать мощным инструментом в арсенале вашей команды.