Cloudflare Agents SDK — фреймворк для stateful AI-агентов поверх Durable Objects: каждый агент — отдельный «микросервер» с SQLite, WebSocket, планировщиком и hibernation. Разбираем…
OpenAI Agents SDK — это production-фреймворк для сборки ИИ-агентов на питоне и TypeScript. Он обёртывает Responses API в удобный рунтайм с agent loop, handoffs, guardrails, sandbox и MCP — и избавляет от необходимости писать эту инфраструктуру руками. Разбираем, когда он реально нужен, а когда хватит простого цикла вызовов API.
Что такое OpenAI Agents SDK
OpenAI Agents SDK — официальный фреймворк OpenAI для построения multi-agent рабочих процессов. Родился в 2025 году как production-версия экспериментального Swarm и с тех пор вырос в полноценный «агентный харнесс». Доступны две реализации:
- Python: github.com/openai/openai-agents-python (PyPI:
openai-agents). - TypeScript: github.com/openai/openai-agents-js.
SDK provider-agnostic: поддерживает не только Responses/Chat Completions, но и 100+ сторонних LLM через совместимые эндпоинты.
Основные примитивы
| Примитив | Что делает |
| Agent | LLM + instructions + tools + опционально structured output, handoffs, guardrails |
| Handoffs | Передача управления одного агента другому специалисту |
| Guardrails | Валидация входов и выходов агента |
| Tracing | Встроенная визуализация вызовов и отладка |
| Sessions | Сохранение истории между turn'ами (SQLite, OpenAI Conversations и др.) |
| Sandbox (Python) | Изолированная среда с файлами, shell, пакетами, snapshot и памятью |
| Subagents (Python) | Оркестрация нескольких агентов в изолированных контейнерах |
| MCP | Подключение MCP-серверов как источника инструментов |
В TypeScript-версии доступны все базовые примитивы, но sandbox и subagents пока идут впервые в Python, TypeScript-поддержка анонсирована.
Agent loop: что внутри
Один запуск SDK = один «ход» приложения. Рунтайм крутит внутри себя цикл, пока не придёт к финальному ответу:
- Вызывается текущий агент с подготовленным входом.
- Смотрится ответ модели.
- Если есть tool calls — выполняются и результат возвращается модели.
- Если был handoff — управление передаётся другому агенту.
- Если пришёл финальный ответ без инструментов — возвращается результат.
Всё остальное — streaming, approvals, human-in-the-loop, sessions — строится поверх этого цикла.
Простой API loop вручную
Для сравнения — вот та же логика, но без SDK, на чистом Responses API:
from openai import OpenAI
client = OpenAI()
response = client.responses.create(
model="gpt-5.5",
input="Собери отчёт по кварталу",
tools=[my_search_tool, my_db_tool],
)
while not response.is_final:
for call in response.tool_calls:
result = run_tool(call)
response = client.responses.submit_tool_outputs(
response_id=response.id,
tool_outputs=[{"call_id": call.id, "output": result}],
)Своё состояние, свои обработчики tool calls, свои повторы при ошибках. Нет handoffs, guardrails и трейсинга «из коробки» — это пишется руками.
SDK или API loop: когда что
| Ситуация | Что выбирать |
| Одна простая фича в продукте («суммари», «быстрый чат с поиском») | Responses API напрямую |
| 1–2 tool calls в цикле, состояние в приложении | Responses API, свой мини-луп |
| Несколько ролей агентов, handoff друг другу | Agents SDK |
| Нужны guardrails на вход/выход | Agents SDK |
| Длинные задачи (минуты и выше), прерывания, возобновления | Agents SDK + sandbox + checkpointing |
| Агент ходит в файлы и терминал | Agents SDK Sandbox (Python) |
| Используете MCP-серверы как источник инструментов | Agents SDK с нативным MCP |
| Реалтайм голос/видео | Realtime API, иногда в связке с SDK |
| Нужен визуальный builder, без кода | Agent Builder + ChatKit |
Минимальный пример на SDK
from agents import Agent, Runner, function_tool
@function_tool
def search_kb(query: str) -> str:
return run_kb_search(query)
researcher = Agent(
name="Researcher",
instructions="Ищешь факты в базе знаний и приводишь их кратко.",
tools=[search_kb],
)
writer = Agent(
name="Writer",
instructions="Собираешь финальный текст по фактам от Researcher.",
)
router = Agent(
name="Router",
instructions="Сначала делегируй Researcher, потом Writer.",
handoffs=[researcher, writer],
)
result = Runner.run_sync(router, input="Собери сводку по MCP-серверам")
print(result.final_output)Что вы получаете за эти ~15 строк:
- Рутинг между двумя агентами с handoff.
- Автоматическое выполнение tool calls в цикле.
- Tracing из коробки.
- Сессии сохраняются, если подключить session backend.
- Подключается любая описанная функция-tool, MCP-сервер или hosted tool (file_search, web_search, code_interpreter).
Sandbox и long-horizon agents
C весны 2026 в Python-версии появилось нативное sandbox-окружение: контейнер с файлами, пакетами, портами, snapshot'ами и долгоживущей памятью. Это превращает SDK в «харнесс для long-running агентов» и закрывает боль. проблему: раньше приходилось самому клеить Docker, Firecracker и бэбиситтер-процессы.
Ключевые возможности sandbox-слоя:
- Изолированное выполнение кода и shell-команд.
- Файловые примитивы read/write/edit в стиле Codex.
- Кратко- и долгосрочная память агента first-class сущностью.
- Checkpointing и durability — задача переживает перезапуск.
- Subagents: распараллеливание работы по нескольким изолированным контейнерам.
Место в пайплайне: SDK рядом с Codex и MCP
SDK — это слой оркестрации поверх моделей и инфраструктуры. Рядом стоят соседние инструменты OpenAI:
- Codex — cloud coding-агент с собственным sandbox и PR-потоком. SDK выводит в продакшен ту же идеологию файловых инструментов.
- Responses API — основной транспорт между моделью и клиентом. SDK использует его под капотом.
- MCP — стандарт для подключения внешних инструментов. SDK нативно подключает MCP-серверы к агенту.
- Realtime API — для голосовых и видео-агентов, оркестрируется связкой с SDK.
- Agent Builder / ChatKit — hosted UI поверх той же идеологии для no-code редактора.
Практические сценарии
Контент-пирлайн с ролями
Два-три агента внутри SDK: Researcher, Writer, Reviewer. Handoff'ы между ними, guardrails на стиль и факты. Результат складывается в Notion через MCP-сервер Notion.
Coding агент «под проект»
Sandbox-агент с файловыми примитивами. Вы даёте ему репозиторий, бриф и тесты — он пишет код, запускает тесты, оставляет PR. Отличается от Codex тем, что это ваш собственный runtime, а не хостимый продукт.
Клиентский суппорт с триажем
Router-агент по типу вопроса перекидывает на специализированные: «биллинг», «техничка», «продажи». Каждый с отдельным набором инструментов и guardrails.
Ресёрч-агент с веб-поиском
web_search hosted-tool + свои function tools для внутренних баз. SDK оркестрирует цикл «поиск → синтез → проверка → ответ» без ручных перепрыжек.
Ограничения и ловушки
- TypeScript всё ещё догоняет Python. Sandbox, subagents, часть новых примитивов приходят в Python раньше.
- Latency. Каждый проход цикла — это вызов API. Для «быстрых» сценариев лучше Responses API без лишнего слоя.
- Стоимость. Multi-agent хорводы расходуют токены в несколько раз быстрее «одного большого» агента.
- Self-hosted LLM. Работают только через OpenAI-совместимые endpoints. Для «чистых» on-prem фреймворков это вызов.
- Нет визуального конструктора. Если нужен UI «без кода» — смотрите в сторону Agent Builder + ChatKit, а не SDK.
Антипаттерны
- ❌ Прятать «простой хелпер с поиском» за SDK и Runner. Чистый Responses API проще и быстрее.
- ❌ Строить «свой SDK» поверх LangChain и других фреймворков, если вы и так живёте в экосистеме OpenAI. Двойная абстракция — двойные баги.
- ❌ Игнорировать guardrails «потом добавим». Продакшен без них хорош ровно до первого «интересного » вызова.
- ❌ Делать 7 агентов там, где хватит двух. Каждый handoff — это лишний вызов, latеncy и токены.
- ❌ Запускать sandbox-агентов без checkpointing в проде. Первый же перезапуск потеряет часы работы.
- ❌ Смешивать Agent Builder и SDK в одном пайплайне без явных границ. Решите: hosted-редактор или typed code.
Чеклист выбора
Ссылки
- Официальный гайд OpenAI: developers.openai.com/api/docs/guides/agents
- Python SDK: github.com/openai/openai-agents-python · openai.github.io/openai-agents-python
- TypeScript SDK: github.com/openai/openai-agents-js · openai.github.io/openai-agents-js
- Agent loop и континуации: developers.openai.com/api/docs/guides/agents/running-agents
- The next evolution of the Agents SDK (sandbox, subagents): openai.com/index/the-next-evolution-of-the-agents-sdk
- Responses API + computer environment: openai.com/index/equip-responses-api-computer-environment
По теме
- Статья: Codex, Саркис и два месяца боли: как я наконец-то собрал рабочую инфраструктуру ИИ-агентов
- Блог: GPT-5.5 вышла — OpenAI снова двигает планку и ставит на агентов
- База знаний: MCP (Model Context Protocol) — стандарт подключения ИИ к внешним системам
Agents SDK — хороший выбор для всех, кто строит «взрослые» агенты на OpenAI: инфраструктуру вы не пишете с нуля, но полный контроль над логикой остаётся в руках. Если хочется разобрать, где в вашем пайплайне хватит Responses API, а где пора брать SDK или выносить в sandbox — напишите, обсудим.
📢 Telegram-канал: t.me/pimenov_ru · ✉️ Личка: t.me/pimenov