OpenAI Agents SDK — оркестрация LLM-агентов без головной боли
Представьте, что вам нужно создать систему, где несколько ИИ-агентов работают вместе: один переводит текст, другой проверяет факты, третий генерирует ответ. Вручную управлять таким конвейером — настоящий кошмар. К счастью, OpenAI выпустила инструмент, который делает это легко.
Что это и кому пригодится
OpenAI Agents SDK — это Python-фреймворк для создания мультиагентных систем на базе LLM (включая, но не ограничиваясь моделями OpenAI). Если вы:
- Разрабатываете сложные цепочки LLM-запросов
- Строите виртуальных ассистентов с разделением обязанностей
- Нуждаетесь в прозрачном трекинге работы агентов
- Хотите добавить "безопасные" проверки для LLM
...то этот инструмент сэкономит вам кучу времени.
5 причин обратить внимание
1. Передача управления между агентами (Handoffs)
Главная фишка — агенты могут передавать управление друг другу. Как оператор колл-центра перенаправляет звонок нужному специалисту:
spanish_agent = Agent(name="Spanish agent", instructions="You only speak Spanish.")
english_agent = Agent(name="English agent", instructions="You only speak English")
triage_agent = Agent(
name="Triage agent",
instructions="Определи язык запроса и перенаправь нужному агенту",
handoffs=[spanish_agent, english_agent]
)
2. Встроенные "ограничители" (Guardrails)
Проверки входных/выходных данных на соответствие правилам — защита от нежелательных ответов:
from agents import Guardrail
def no_profanity(text: str) -> bool:
return "bad_word" not in text.lower()
agent = Agent(
name="PoliteBot",
guardrails=[Guardrail(no_profanity, "Не используйте ненормативную лексику")]
)
3. Автоматическое управление контекстом
SDK сам сохраняет историю диалога, даже если агенты меняются:
from agents import SQLiteSession
session = SQLiteSession("user_123")
# Первый запрос
Runner.run(agent, "Сколько планет в Солнечной системе?", session=session)
# Второй запрос — агент помнит контекст
Runner.run(agent, "Назови их", session=session)
4. Интеграция с 100+ LLM
Хотя SDK создан OpenAI, он работает с любым провайдером через LiteLLM. Поддерживаются:
- OpenAI
- Anthropic
- Mistral
- Local модели (через Ollama)
5. Детальный трекинг выполнения
Встроенная система трассировки показывает весь путь запроса через агентов:
from agents import trace
with trace("customer_support_flow") as span:
result = Runner.run(agent, "Помогите с возвратом товара")
span.log("Результат", result)
Как это работает под капотом
-
Агентный цикл:
- LLM получает запрос + историю
- Возвращает ответ, инструменты или передачу управления
- Процесс повторяется, пока не получим финальный ответ
-
Сессии:
- Поддержка SQLite (для разработки)
- Redis (для прода)
- Возможность добавить свой бэкенд
-
Интеграции:
- Temporal для долгих процессов
- Подключение к Logfire, Braintrust и другим системам мониторинга
Практические кейсы
-
Многоязычная поддержка:
- Агент-диспетчер + языковые специалисты
- Автоматический выбор агента по языку запроса
-
Сложные workflow:
- Поиск информации → Верификация → Генерация ответа
- Каждый этап — отдельный агент с проверками
-
Голосовые боты:
- Установите пакет с
pip install 'openai-agents[voice]' - Добавьте STT/TTS инструменты агентам
- Установите пакет с
Начать просто
pip install openai-agents
Hello World за 3 строки:
from agents import Agent, Runner
agent = Agent(name="Помощник", instructions="Отвечай кратко")
print(Runner.run_sync(agent, "Расскажи анекдот про программистов").final_output)
Вывод: стоит ли пробовать?
Да, если:
- Ваш проект вырос за пределы простых LLM-запросов
- Нужно разделить ответственность между разными "экспертами"
- Важна прозрачность работы системы
OpenAI Agents SDK — это как дирижёр для ваших LLM, превращающий хаотичные запросы в слаженный оркестр. При этом фреймворк достаточно гибкий, чтобы адаптироваться под любые требования.
💡 Совет: Начните с примеров, затем попробуйте собрать свой первый мультиагентный workflow. Вы удивитесь, насколько это упрощает жизнь.
