Запуск агентів в Kubernetes за допомогою Agent Sandbox

Ландшафт штучного інтелекту зазнає масштабної архітектурної трансформації. На початку ери генеративного ШІ взаємодія з моделлю часто розглядалася як тимчасовий, виклик функції без збереження стану: запит, який запускався, виконувався протягом приблизно 50 мілісекунд і завершувався.

Сьогодні світ стає свідком того, як AI v2 витісняє AI v1. Екосистема переходить від короткочасних, ізольованих завдань до розгортання кількох координованих AI агентів, які працюють постійно. Ці автономні агенти повинні підтримувати контекст, використовувати зовнішні інструменти, писати та виконувати код, а також спілкуватися один з одним протягом тривалого часу.

Команди з розвитку та підтримки платформ шукають правильну інфраструктуру для розміщення цих нових AI навантажень, і одна платформа виділяється як природний вибір: Kubernetes. Однак зіставлення цих унікальних агентських навантажень на традиційні примітиви Kubernetes вимагає нової абстракції.

Саме тут на допомогу приходить новий проєкт Agent Sandbox (зараз розробляється під егідою SIG Apps).

Переваги Kubernetes (і пробіли абстракцій)

Kubernetes є де-факто стандартом для оркестрування хмарно-орієнтованих застосунків саме тому, що він вирішує проблеми розширюваності, надійної мережевої взаємодії та зрілості екосистеми. Однак, у міру того як ШІ еволюціонує від короткочасних запитів на обчислення до довготривалих автономних агентів, ми спостерігаємо появу нової моделі функціонування.

На відміну від цього, агенти штучного інтелекту зазвичай є ізольованими, із збереженням стану та єдиними у своєму роді робочими навантаженнями. Вони виконують роль цифрового робочого простору або середовища виконання для великої мови (LLM). Агенту потрібна постійна ідентифікація та захищений робочий простір для написання та виконання (часто ненадійного) коду. Що особливо важливо: оскільки передбачається, що ці довготривалі агенти переважно перебуватимуть у стані бездіяльності, за винятком коротких спалахів активності, їм необхідний життєвий цикл, який підтримує такі механізми, як призупинення та швидке відновлення роботи.

Хоча теоретично це можна було б приблизно реалізувати, об’єднавши StatefulSet розміром 1, сервіс headless та PersistentVolumeClaim для кожного окремого агента, управління такою системою в умовах масштабного розгортання перетворюється на справжній операційний кошмар.

Через ці унікальні властивості стандартні елементи Kubernetes не повністю відповідають вимогам.

Представляємо Kubernetes Agent Sandbox

Щоб заповнити цю прогалину, SIG Apps розробляє agent-sandbox. Цей проєкт пропонує декларативний, стандартизований API, спеціально розроблений для одноекземплярних робочих навантажень з збереженням стану, таких як середовища виконання агентів ШІ.

У центрі проєкту знаходиться CRD Sandbox. Він виступає як легке середовище з одним контейнером, побудоване повністю на примітивах Kubernetes, пропонуючи наступне:

  • Сильна ізоляція для ненадійного коду: Коли агент ШІ автономно генерує та виконує код, безпека є першочерговою. Настроюваний ресурс Sandbox на рівні ядра підтримує різні середовища виконання, такі як gVisor або Kata Containers. Це забезпечує необхідну ізоляцію ядра та мережі, що є обов’язковою умовою для багатокористувацького виконання в умовах низької довіри.
  • Управління життєвим циклом: На відміну від традиційних веб-серверів, оптимізованих для стабільного, трафіку без збереження стану, агент ШІ працює як робоча область зі збереженням стану, яка може бути неактивною протягом годин між завданнями. Agent Sandbox підтримує масштабування цих неактивних середовищ до нуля для економії ресурсів, забезпечуючи при цьому можливість відновлення точно з того місця, де вони зупинилися.
  • Стабільна ідентичність: Координовані багатоагентні системи потребують стабільної мережевої ідентичності. Кожному Sandbox надається стабільне імʼя хосту та мережевий ідентифікатор, що дозволяє різним агентам безперешкодно виявляти та взаємодіяти один з одним.

Масштабування агентів за допомогою розширень

Оскільки світ ШІ розвивається надзвичайно швидко, ми створили шар API розширень, який дозволяє ще швидші ітерації та розробку.

Запуск нового пода додає близько секунди затримки. Це цілком прийнятно при розгортанні нової версії мікросервісу, але коли агент викликається після періоду бездіяльності, односекундний холодний старт порушує безперервність взаємодії. Це змушує користувача або службу оркестрування чекати, поки середовище буде підготовлено, перш ніж модель зможе почати думати або діяти. SandboxWarmPool вирішує цю проблему, підтримуючи пул попередньо підготовлених подів Sandbox, ефективно усуваючи холодні старти. Користувачі або служби оркестрування можуть просто видати SandboxClaim використовуючи SandboxTemplate, і контролер негайно передає попередньо розігріте, повністю ізольоване середовище агенту.

Швидкий старт

Готові спробувати самостійно? Ви можете встановити основні компоненти Agent Sandbox та розширення безпосередньо у ваш навчальний або тестовий кластер, використовуючи обрану версію випуску.

Ми рекомендуємо використовувати останню версію, оскільки проєкт розвивається дуже швидко.

# Замініть "vX.Y.Z" на конкретний тег версії (наприклад, "v0.1.0") з

# https://github.com/kubernetes-sigs/agent-sandbox/releases
export VERSION="vX.Y.Z"

# Встановіть основні компоненти:
kubectl apply -f https://github.com/kubernetes-sigs/agent-sandbox/releases/download/${VERSION}/manifest.yaml

# Встановіть компоненти розширень (необов'язково):
kubectl apply -f https://github.com/kubernetes-sigs/agent-sandbox/releases/download/${VERSION}/extensions.yaml

# Встановіть Python SDK (необов'язково):
# Створіть віртуальне середовище Python
python3 -m venv .venv
source .venv/bin/activate
# Встановіть з PyPI
pip install k8s-agent-sandbox

Після встановлення ви можете спробувати Python SDK для агентів ШІ або розгорнути один із готових до використання прикладів, щоб побачити, як легко створити ізольоване середовище для агента.

Майбутнє агентів - це хмарні технології

Незалежно від того, чи це 50-мілісекундна задача якій не потріно зберігати стан, чи багатотижневий, переважно неактивний спільний процес, розширення Kubernetes за допомогою примітивів, спеціально розроблених для ізольованих одиниць зі збереженням стану, дозволяє нам використовувати всі переваги хмарної екосистеми.

Проєкт Agent Sandbox є відкритим і керується спільнотою. Якщо ви створюєте платформи ШІ, розробляєте агентні фреймворки або цікавитеся розширюваністю Kubernetes, ми запрошуємо вас долучитися: