Разработка

OpenAI Agents SDK: создание MCP-агентов для работы с реальными приложениями

FulcrumLab 29.07.2025 8 мин чтения
OpenAI Agents SDK: создание MCP-агентов для работы с реальными приложениями
Пошаговое руководство по созданию ИИ-агентов с OpenAI Agents SDK и Composio MCP. Подключаем более 100 инструментов через единый интерфейс и автоматизируем задачи в GitHub, Notion и других сервисах.

ИИ-агенты становятся неотъемлемой частью современных программных систем. Они принимают пользовательский ввод, анализируют цели и взаимодействуют с внешними сервисами для выполнения реальных задач.

11 марта 2025 года OpenAI представила Agents SDK — фреймворк для создания агентов, которые могут подключаться к внешним инструментам через стандартный интерфейс MCP (Model Context Protocol).

Что такое OpenAI Agents SDK

OpenAI Agents SDK — это Python-фреймворк, выпущенный в марте 2025 года. Он помогает разработчикам создавать агентов, которые используют большие языковые модели для решения задач путем анализа целей и применения инструментов. SDK построен на нескольких базовых принципах:

  • Минимальное количество абстракций при максимальной функциональности
  • Готовое решение с возможностью кастомизации
  • Python-ориентированный подход без сложных концепций

Фреймворк включает встроенную поддержку памяти агентов, потоковый вывод, повторные попытки выполнения и трассировку. Также поддерживается вызов функций со структурированными входами и выходами.

Основные компоненты SDK

Agent (Агент)

Класс Agent определяет поведение ИИ-агента и включает:

  • Name — идентификатор агента
  • Instructions — инструкции для ответов и действий
  • Tools — функции или API, которые может использовать агент
  • Handoffs — передача задач другим агентам при необходимости

Tool (Инструмент)

Инструменты — это внешние функции или API, которые агенты могут вызывать. Каждый инструмент определяется через:

  • Уникальный идентификатор
  • Описание назначения
  • Схему входных параметров
  • Функцию-обработчик

Runner (Исполнитель)

Класс Runner управляет выполнением агентов:

  • run() — асинхронное выполнение
  • run_sync() — синхронное выполнение
  • run_streamed() — потоковые ответы в реальном времени

Composio MCP: платформа для инструментов

MCP (Model Context Protocol) — это стандарт, который определяет, как агенты могут обнаруживать и использовать инструменты через общий интерфейс. Он описывает инструменты через структурированные метаданные: названия, типы входов и форматы выходов.

Composio MCP — полностью управляемая платформа, построенная на основе этого стандарта. Она предоставляет доступ к более чем 100 инструментам, каждый из которых представлен как отдельный MCP-сервер со встроенными схемами, конечными точками выполнения и безопасной аутентификацией.

Преимущества Composio MCP

  • Мгновенный доступ к 100+ инструментам — готовые интеграции, совместимые с MCP
  • Не нужно оборачивать API — Composio обрабатывает настройку, валидацию и форматирование
  • Безопасность по умолчанию — встроенная аутентификация и управление токенами
  • Единообразный интерфейс — все инструменты следуют одной структуре
  • Хостинг и мониторинг — инструменты актуальны и готовы к продакшену

Создание MCP-агентов: пошаговое руководство

Шаг 1: Подготовка окружения

Требования:

  • Python 3.8 или выше
  • API-ключ OpenAI

Шаг 2: Настройка проекта

Создание виртуального окружения:

macOS/Linux:

python3 -m venv env
source env/bin/activate

Windows:

python -m venv env
.\env\Scripts\activate

Установка пакетов:

pip install openai-agents python-dotenv

Шаг 3: Настройка API-ключа

Создайте файл .env в корне проекта:

OPENAI_API_KEY=sk-...

Шаг 4: Получение URL MCP-сервера

  1. Перейдите на mcp.composio.dev
  2. Выберите нужный инструмент
  3. Скопируйте URL MCP-сервера (формат: https://mcp.composio.dev/<tool>/<instance-id>)

Шаг 5: Создание и запуск агента

Создайте файл main.py:

import asyncio
import os
from dotenv import load_dotenv
import openai
from agents import Agent, Runner
from agents.mcp import MCPServerSse

# Загрузка переменных окружения
load_dotenv()

# Установка API-ключа
openai.api_key = os.getenv("OPENAI_API_KEY")

# URL MCP-инструмента
TOOL_URL = "https://mcp.composio.dev/<tool-name>/<instance-id>"

async def main():
    mcp_server = MCPServerSse({"url": TOOL_URL})
    
    try:
        await mcp_server.connect()
        
        agent = Agent(
            name="MCP Agent",
            instructions="Помогаю пользователю выполнять задачи с подключенным инструментом.",
            mcp_servers=[mcp_server]
        )
        
        task = "Выполни задачу с помощью подключенного инструмента."
        result = await Runner.run(agent, task)
        print(result.final_output)
        
    finally:
        await mcp_server.cleanup()

if __name__ == "__main__":
    asyncio.run(main())

Практические примеры

Пример 1: Управление GitHub репозиториями

Агент для работы с GitHub через интеграцию Composio MCP может:

  • Создавать GitHub issues на основе пользовательского ввода
  • Обновлять описания репозиториев
  • Помогать с pull request'ами и рабочими процессами
  • Автоматизировать планирование проектов и отслеживание багов

import asyncio
import os
from dotenv import load_dotenv
import openai
from agents import Agent, Runner
from agents.mcp import MCPServerSse

load_dotenv()
openai.api_key = os.getenv("OPENAI_API_KEY")

GITHUB_MCP_URL = "https://mcp.composio.dev/github/<your-tool-id>"

async def main():
    github_server = MCPServerSse({"url": GITHUB_MCP_URL})
    
    try:
        await github_server.connect()
        
        agent = Agent(
            name="GitHub Agent",
            instructions="Помогаю управлять GitHub: создаю issues, обновляю репозитории и работаю с PR через подключенный GitHub-инструмент.",
            mcp_servers=[github_server]
        )
        
        task = "Создай issue в репозитории 'username/repo-name' с заголовком 'Баг: не работает авторизация' и описанием 'Кнопка входа выдает ошибку 500.'"
        result = await Runner.run(agent, task)
        print(result.final_output)
        
    finally:
        await github_server.cleanup()

if __name__ == "__main__":
    asyncio.run(main())

Пример 2: Управление страницами Notion

Агент для работы с Notion может автоматизировать:

  • Создание страниц с заголовками, контентом и разметкой
  • Добавление задач или планов проектов
  • Обновление статусов и командных чек-листов
  • Планирование мероприятий, спринтов или повесток встреч

import asyncio
import os
from dotenv import load_dotenv
import openai
from agents import Agent, Runner
from agents.mcp import MCPServerSse

load_dotenv()
openai.api_key = os.getenv("OPENAI_API_KEY")

NOTION_MCP_URL = "https://mcp.composio.dev/notion/<your-tool-id>"

async def main():
    notion_server = MCPServerSse({"url": NOTION_MCP_URL})
    
    try:
        await notion_server.connect()
        
        agent = Agent(
            name="Notion Agent", 
            instructions="Помогаю управлять рабочим пространством Notion: создаю страницы, организую контент и отслеживаю задачи через подключенный Notion-инструмент.",
            mcp_servers=[notion_server]
        )
        
        task = "Создай страницу Notion с названием 'План недельного спринта' и содержимым '1. Исправить баг авторизации\\n2. Обновить дашборд\\n3. Подготовить демо на пятницу.'"
        result = await Runner.run(agent, task)
        print(result.final_output)
        
    finally:
        await notion_server.cleanup()

if __name__ == "__main__":
    asyncio.run(main())

Заключение

ИИ-агенты — это не концепция будущего, а реальный инструмент сегодняшнего дня. С OpenAI Agents SDK и Composio можно создавать умных агентов, которые понимают задачи и используют инструменты вроде GitHub, Notion или Gmail для выполнения реальной работы.

Composio предоставляет готовые к использованию инструменты, поэтому не нужно беспокоиться о настройке API или сложном коде. Просто подключите инструмент, дайте агенту задачу, и он позаботится об остальном.

Готовы внедрить ИИ в свой бизнес?

Превратите идеи в действия. Получите персональные рекомендации по внедрению искусственного интеллекта и начните трансформацию уже сегодня.