Table of Contents

Composio

Composio is a developer-first tool integration platform that connects AI agents to over 250 pre-built integrations across 900+ SaaS applications. It handles the hardest parts of agent-tool interaction — managed authentication (OAuth, API keys), action execution, error handling, and observability — so developers can focus on agent logic. Compatible with OpenAI, LangChain, CrewAI, AutoGen, and LlamaIndex, Composio provides a unified API and MCP gateway for production-grade agent tooling.

Architecture

Composio's architecture is built on three pillars:

Key Features

Managed Authentication

Composio's AgentAuth eliminates the need to build OAuth flows. Connect apps through the Composio dashboard or API, and the platform manages:

Action Execution

Execute any tool action with a single API call:

Framework Compatibility

Composio integrates with all major agent frameworks:

Framework Integration Method
OpenAI hostedMcpTool() with Composio MCP endpoint
LangChain Single-line tool injection from Composio client
CrewAI ComposioToolSet provider for crew agents
AutoGen Per-agent tool distribution with separate auth
LlamaIndex Direct tool injection for query engines
Entity Management

Entities (via entity_id) tie tools and credentials to specific users:

Triggers

Event-driven triggers listen for changes in connected apps:

Code Example

from composio_openai import ComposioToolSet, Action
from openai import OpenAI
 
# Initialize clients
openai_client = OpenAI()
composio_toolset = ComposioToolSet()
 
# Get GitHub tools for the agent
tools = composio_toolset.get_tools(
    actions=[Action.GITHUB_CREATE_ISSUE, Action.GITHUB_LIST_REPOS]
)
 
# Create an assistant with Composio tools
assistant = openai_client.beta.assistants.create(
    name="DevOps Agent",
    instructions="You help manage GitHub repositories and issues.",
    model="gpt-4o",
    tools=tools,
)
 
# Create a thread and run
thread = openai_client.beta.threads.create()
message = openai_client.beta.threads.messages.create(
    thread_id=thread.id,
    role="user",
    content="Create a GitHub issue in 'my-org/my-repo' titled 'Fix login bug' with a description of the authentication timeout problem."
)
 
run = openai_client.beta.threads.runs.create(
    thread_id=thread.id,
    assistant_id=assistant.id,
)
 
# Composio handles the tool execution and GitHub API auth
result = composio_toolset.wait_and_handle_assistant_tool_calls(
    client=openai_client,
    run=run,
    thread=thread,
)
print(result)

Architecture Diagram

graph TD A["OpenAI Agent"] --> D B["LangChain Agent"] --> D C["CrewAI Agent"] --> D D["Composio Unified API / MCP Gateway"] --> E["AgentAuth (OAuth)"] D --> F["Action Executor"] D --> G["Triggers Engine"] E --> H["250+ Integrations"] F --> H G --> H H --- I["GitHub"] H --- J["Slack"] H --- K["Gmail"]

References

See Also