Запись архива

OpenAI Agents SDK: как автоматизировать задачи с помощью AI-агентов

Полный разбор официального SDK от OpenAI: архитектура, примеры кода, сравнение с AutoGen и LangGraph, ограничения и пошаговая инструкция по запуску первого агента.

Код агента OpenAI Agents SDK с вызовом инструмента search_docs
Код агента OpenAI Agents SDK с вызовом инструмента search_docs
Journalists Protest against rising violence during march in Mexi | by Knight Foundation | openverse | by-sa

OpenAI Agents SDK — это официальная Python-библиотека с открытым исходным кодом (лицензия MIT) для создания AI-агентов, способных выполнять многошаговые задачи, вызывать внешние инструменты и передавать управление между специализированными агентами. В отличие от сторонних фреймворков, SDK изначально заточен под модели OpenAI (GPT-4, o3, o4-mini), что обеспечивает минимальные задержки и предсказуемое поведение без лишних обёрток. Если вы используете только OpenAI, этот SDK — самый простой способ внедрить агентов.

Архитектура: агенты, раннеры и инструменты

SDK строится на четырёх основных компонентах:

  • Agent — главный класс, который объединяет системный промпт, набор инструментов и модель.
  • Runner — цикл выполнения, управляющий вызовами инструментов и генерацией ответов (синхронный, асинхронный, стриминговый).
  • Tool — функция или API, которую агент может вызывать; определяется через декоратор `@function_tool` или как класс.
  • Handoff — механизм передачи задачи другому агенту (например, для обработки платежей или поиска в базе знаний).

Также SDK поддерживает контекстные переменные для краткосрочной памяти, экспериментальные guardrails на базе модели и встроенный трекинг вызовов для отладки.

Пример кода: агент для поиска в документации

Минимальный рабочий пример выглядит так:

python
from agents import Agent, Runner, function_tool

@function_tool
def search_docs(query: str) -> str:
# Имитация поиска
return f”Результаты для ‘{query}’: см. раздел 4.2.”

agent = Agent(
name=”DocHelper”,
instructions=”Ты помогаешь находить информацию в документации. Используй search_docs.”,
tools=[search_docs]
)

result = Runner.run_sync(agent, “Как создать агента?”)
print(result.final_output)

Код наглядно демонстрирует паттерн: инструмент — обычная функция с декоратором, агент получает инструкцию и список инструментов, Runner.run_sync запускает диалог. SDK сам решает, когда и какой инструмент вызывать, и возвращает итоговый ответ.

Сравнение: OpenAI Agents SDK vs AutoGen vs LangGraph

Критерий OpenAI Agents SDK AutoGen (Microsoft) LangGraph (LangChain)
Модели по умолчанию Только OpenAI (GPT-4, o3, o4-mini) Любые через коннекторы Любые (OpenAI, Anthropic, локальные)
Архитектура Одноагентная / иерархическая Многоагентная с дебатами Граф с состояниями
Простота старта Высокая (5 строк кода) Средняя Средняя (требует понимания графов)
Встроенная память Контекстные переменные Через History LangGraph persistence
Handoff (передача задач) Встроенный механизм Через асинхронные сообщения Через узлы графа

OpenAI Agents SDK выигрывает в простоте, если вы уже используете модели OpenAI. AutoGen лучше подходит для распределённых сценариев (например, код-ревью несколькими агентами). LangGraph — для сложных ветвлений и цепочек с состоянием.

Ограничения, которые стоит знать

Привязка к экосистеме OpenAI. Нельзя использовать Anthropic, Google или локальные модели без дополнительных обёрток. Если вам нужна мультимодельность — выбирайте LangGraph.
2. Нет встроенной поддержки мультимодальности. Изображения и аудио передаются только через инструменты (например, через API Vision). Отдельного класса для этого нет.
3. Долгосрочная память отсутствует. Контекстные переменные живут только в рамках одного запуска. Для постоянного хранения данных сессии потребуется внешняя база (SQLite, Redis).
4. Guardrails пока экспериментальны. В текущей реализации они могут как пропускать нежелательные запросы, так и блокировать корректные. Рекомендуется тестировать на своих данных.
5. Токен-лимиты. Агенты с большим количеством инструментов быстро расходуют контекст (особенно если инструменты возвращают длинные результаты). Следите за usage в трекинге.

Что проверить перед запуском в production

  • Убедитесь, что у вас есть API-ключ OpenAI с доступом к моделям (GPT-4, o3, o4-mini). Без него SDK не запустится.
  • Изучите официальную документацию: https://platform.openai.com/docs/agents — там есть примеры для чат-ботов, RAG и поиска.
  • Для production используйте Runner.run_streamed() вместо синхронного вызова, чтобы избежать блокировки при длительных задачах.
  • Включите трекинг: передавайте trace_id в Runner, чтобы логировать все вызовы инструментов и ответы модели.
  • Тестируйте handoff-агенты на небольших задачах: неправильная инструкция может привести к циклическим вызовам.

Практические сценарии для автоматизации

  • Чат-бот поддержки с доступом к базе знаний (через search_docs или API).
  • Агент для извлечения данных из документов (PDF, HTML) с вызовом внешних парсеров.
  • Многошаговая обработка заявок: агент-координатор передаёт задачи специализированным агентам (проверка баланса, генерация отчёта, отправка письма).
  • Генерация SEO-метаданных для контента: агент получает текст, извлекает ключевые слова и формирует title и description.

Как обновляется SDK

Разработчики OpenAI регулярно обновляют SDK — в мае 2025 года добавили поддержку handoff-агентов и улучшенный трекинг. Следите за changelog на GitHub: https://github.com/openai/openai-agents-python/releases.

Заключение: ваш первый шаг

Попробуйте SDK в своём проекте: установите через `pip install openai-agents`, напишите первого агента с одним инструментом и запустите с простой задачей. Для production используйте стриминг и мониторинг через трекинг. Если вам нужна гибкость в выборе моделей или сложные графы — присмотритесь к LangGraph или AutoGen. Для стандартных задач автоматизации на базе OpenAI официальный SDK часто оказывается самым простым и надёжным выбором.