Skip to content

Composio Tool

Composio is an integration platform that allows you to connect your AI agents to 250+ tools. Key features include:

  • Enterprise-Grade Authentication: Built-in support for OAuth, API Keys, JWT with automatic token refresh
  • Full Observability: Detailed tool usage logs, execution timestamps, and more

To incorporate Composio tools into your project, follow the instructions below:

Terminal window
pip install composio composio-crewai
pip install crewai

After the installation is complete, set your Composio API key as COMPOSIO_API_KEY. Get your Composio API key from here

The following example demonstrates how to initialize the tool and execute a github action:

  1. Initialize Composio with CrewAI Provider
from composio_crewai import ComposioProvider
from composio import Composio
from crewai import Agent, Task, Crew
composio = Composio(provider=ComposioProvider())
  1. Create a new Composio Session and retrieve the tools
Code
session = composio.create(
user_id="your-user-id",
toolkits=["gmail", "github"] # optional, default is all toolkits
)
tools = session.tools()

Read more about sessions and user management here

  1. Authenticating users manually

Composio automatically authenticates the users during the agent chat session. However, you can also authenticate the user manually by calling the authorize method.

connection_request = session.authorize("github")
print(f"Open this URL to authenticate: {connection_request.redirect_url}")
  1. Define agent
crewai_agent = Agent(
role="GitHub Agent",
goal="You take action on GitHub using GitHub APIs",
backstory="You are AI agent that is responsible for taking actions on GitHub on behalf of users using GitHub APIs",
verbose=True,
tools=tools,
llm= # pass an llm
)
  1. Execute task
task = Task(
description="Star a repo composiohq/composio on GitHub",
agent=crewai_agent,
expected_output="Status of the operation",
)
crew = Crew(agents=[crewai_agent], tasks=[task])
crew.kickoff()
  • More detailed list of tools can be found here