Documentation Index
Fetch the complete documentation index at: https://crewai-devin-1778040886-fix-hitl-pre-review-silent-fallback.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
ComposioToolSet
Description
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
Installation
To incorporate Composio tools into your project, follow the instructions below:
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
Example
The following example demonstrates how to initialize the tool and execute a github action:
- Initialize Composio with CrewAI Provider
from composio_crewai import ComposioProvider
from composio import Composio
from crewai import Agent, Task, Crew
composio = Composio(provider=ComposioProvider())
- Create a new Composio Session and retrieve the tools
session = composio.create(
user_id="your-user-id",
toolkits=["gmail", "github"] # optional, default is all toolkits
)
tools = session.tools()
- 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}")
- 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
)
- 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