Composio for Integrating AI Agents with External Services
Composio — платформа интеграций для AI-агентов: предоставляет 100+ готовых коннекторов к внешним сервисам (GitHub, Jira, Slack, Google Workspace, Salesforce, Linear и другие) с готовыми schemas инструментов для LLM. Устраняет необходимость писать OAuth-flow и API-обёртки вручную.
Базовая интеграция с LangChain
# pip install composio-langchain
from composio_langchain import ComposioToolSet, App
from langchain_openai import ChatOpenAI
from langgraph.prebuilt import create_react_agent
toolset = ComposioToolSet(api_key="composio-api-key")
# Получить инструменты для конкретного приложения
github_tools = toolset.get_tools(apps=[App.GITHUB])
jira_tools = toolset.get_tools(apps=[App.JIRA])
slack_tools = toolset.get_tools(apps=[App.SLACK])
llm = ChatOpenAI(model="gpt-4o")
# ReAct агент с доступом к GitHub + Jira + Slack
agent = create_react_agent(
llm,
tools=[*github_tools, *jira_tools, *slack_tools],
)
result = agent.invoke({
"messages": [{
"role": "user",
"content": "Найди все open PR в репозитории company/backend, "
"создай Jira-задачи для каждого и уведоми в #dev-reviews"
}]
})
Авторизация пользователей (multi-tenant)
# Composio поддерживает разные аккаунты для разных пользователей
toolset = ComposioToolSet(api_key="composio-api-key")
# Инициация OAuth для нового пользователя
connection = toolset.initiate_connection(
app=App.GITHUB,
entity_id="user_12345", # ID пользователя в вашей системе
redirect_url="https://yourapp.com/auth/callback",
)
print(f"Redirect user to: {connection.redirectUrl}")
# После авторизации — агент работает от имени этого пользователя
user_toolset = ComposioToolSet(
api_key="composio-api-key",
entity_id="user_12345",
)
user_tools = user_toolset.get_tools(apps=[App.GITHUB])
Фильтрация инструментов
from composio import Action
# Только конкретные действия (ограничение permissions)
read_only_tools = toolset.get_tools(
actions=[
Action.GITHUB_LIST_REPOSITORIES,
Action.GITHUB_GET_PULL_REQUEST,
Action.JIRA_GET_ISSUE,
Action.JIRA_LIST_ISSUES,
]
)
# Запрет на write-операции в production
write_tools = toolset.get_tools(
actions=[
Action.GITHUB_CREATE_ISSUE_COMMENT,
Action.JIRA_UPDATE_ISSUE,
]
)
Практический кейс: DevOps автоматизация
Задача: агент ежедневно проверяет метрики CI/CD, открытые PR, ошибки в Sentry и создаёт Jira-задачи для критических проблем.
devops_tools = toolset.get_tools(apps=[
App.GITHUB,
App.JIRA,
App.SENTRY,
App.SLACK,
])
devops_agent = create_react_agent(llm, tools=devops_tools)
Результаты: настройка агента с доступом к 4 сервисам — 2 часа вместо 3–5 дней на написание кастомных интеграций.
Сроки
- Подключение готовых интеграций: 1–4 часа
- Кастомный агент с 3–5 сервисами: 1–2 дня
- Multi-tenant OAuth flow: 3–5 дней







