Skip to main content

Core package to act as a bridge between composio platform and other services.

Project description

Follow me

Sign up



EN | CN | JP

Composio logo Composio Logo

Tests PyPI NPM Downloads

Production Ready Toolset for AI Agents

Equip your agent with high-quality tools & integrations without worrying about authentication, accuracy, and reliability in a single line of code!


✨ Socials >> Discord | Youtube | Twitter | Linkedin

⛏️ Contribute >> Report Bugs | Request Feature | Contribute

📋 Table of contents

🤔 Why Composio?

We believe AI Based Agents/Workflows are the future. Composio is the best toolset to integrate AI Agents to best Agentic Tools and use them to accomplish tasks.

Illustration

🔥 Key Features

  • 100+ Tools: Support for a range of different categories

    • Software: Do anything on GitHub, Notion, Linear, Gmail, Slack, Hubspot, Salesforce, & 90 more.
    • OS: Click anywhere, Type anything, Copy to Clipboard, & more.
    • Browser: Smart Search, Take a screenshot, MultiOn, Download, Upload, & more.
    • Search: Google Search, Perplexity Search, Tavily, Exa & more.
    • SWE: Ngrok, Database, Redis, Vercel, Git, etc.
    • RAG: Agentic RAG for any type of data on the fly!
  • Frameworks: Use tools with agent frameworks like OpenAI, Groq (OpenAI compatible), Claude, LlamaIndex, Langchain, CrewAI, Autogen, Gemini, Julep, Lyzr, and more in a single line of code.

  • Managed Authorisation: Supports six different auth protocols. Access Token, Refresh token, OAuth, API Keys, JWT, and more abstracted out so you can focus on the building agents.

  • Accuracy: Get up to 40% better agentic accuracy in your tool calls due to better tool designs.

  • Embeddable: Whitelabel in the backend of your applications managing Auth & Integrations for all your users & agents and maintain a consistent experience.

  • Pluggable: Designed to be extended with additional Tools, Frameworks and Authorisation Protocols very easily.

🚀 Getting Started with Python

1. Installation

To get started, type the following command in your Terminal.

pip install composio-core

If you want to install the 'composio' package along with its openai plugin: pip install composio-openai.

2. Testing Composio in Action

Let's use Composio to create an AI Agent that can star a Github Repo.

composio add github # Connect your Github - Run this in terminal
from openai import OpenAI
from composio_openai import ComposioToolSet, App, Action

openai_client = OpenAI(
    api_key="{{OPENAIKEY}}"
)

# Initialise the Composio Tool Set

composio_tool_set = ComposioToolSet()

# Get GitHub tools that are pre-configured
actions = composio_tool_set.get_actions(
    actions=[Action.GITHUB_STAR_A_REPOSITORY_FOR_THE_AUTHENTICATED_USER]
)

my_task = "Star a repo composiodev/composio on GitHub"

# Setup openai assistant
assistant_instruction = "You are a super intelligent personal assistant"

assistant = openai_client.beta.assistants.create(
    name="Personal Assistant",
    instructions=assistant_instruction,
    model="gpt-4-turbo",
    tools=actions,
)

# create a thread
thread = openai_client.beta.threads.create()

message = openai_client.beta.threads.messages.create(
    thread_id=thread.id,
    role="user",
    content=my_task
)

# Execute Agent with integrations
run = openai_client.beta.threads.runs.create(
    thread_id=thread.id,
    assistant_id=assistant.id
)


# Execute Function calls
response_after_tool_calls = composio_tool_set.wait_and_handle_assistant_tool_calls(
    client=openai_client,
    run=run,
    thread=thread,
)

print(response_after_tool_calls)

🚀 Getting Started with Javascript

To get started with the Composio SDK in Javascript, follow these steps:

1. Install the Composio SDK:

npm install composio-core

2. Setup the OpenAI and Composio Tool Set:

import { OpenAI } from "openai";
import { OpenAIToolSet } from "composio-core";

const toolset = new OpenAIToolSet({
    apiKey: process.env.COMPOSIO_API_KEY,
});

async function setupUserConnectionIfNotExists(entityId) {
    const entity = await toolset.client.getEntity(entityId);
    const connection = await entity.getConnection('github');

    if (!connection) {
        // If this entity/user hasn't already connected the account
        const connection = await entity.initiateConnection(appName);
        console.log("Log in via: ", connection.redirectUrl);
        return connection.waitUntilActive(60);
    }

    return connection;
}

async function executeAgent(entityName) {
    const entity = await toolset.client.getEntity(entityName)
    await setupUserConnectionIfNotExists(entity.id);

    const tools = await toolset.get_actions({ actions: ["github_issues_create"] }, entity.id);
    const instruction = "Make an issue with sample title in the repo - himanshu-dixit/custom-repo-breaking"

    const client = new OpenAI({ apiKey: process.env.OPEN_AI_API_KEY })
    const response = await client.chat.completions.create({
        model: "gpt-4-turbo",
        messages: [{
            role: "user",
            content: instruction,
        }],
        tools: tools,
        tool_choice: "auto",
    })

    console.log(response.choices[0].message.tool_calls);
    await toolset.handle_tool_call(response, entity.id);
}

executeAgent("your-entity-name");

3. Run your script:

node your_script.js

This will set up the Composio SDK and execute an agent that creates a GitHub issue using the provided instructions.

For more details, refer to the Composio SDK Documentation.

💡 Examples

Python Examples

Javascript Examples

Star History

Star History Chart

📋 Read Our Code Of Conduct

As part of our open-source community, we hold ourselves and other contributors to a high standard of communication. As a participant and contributor to this project, you agree to abide by our Code of Conduct.

🤗 Contributions

Composio is open-source and we welcome contributions. Please fork the repository, create a new branch for your feature, add your feature or improvement, and send a pull request.

Also go through our Contribution Guidelines and Code of Conduct before you start.

🔗 Links

🛡️ License

Composio is licensed under the Elastic License - see the LICENSE file for details.

💪 Thanks To All Contributors

List of Contributors

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

composio_core-0.5.43.tar.gz (299.1 kB view details)

Uploaded Source

Built Distribution

composio_core-0.5.43-py3-none-any.whl (461.1 kB view details)

Uploaded Python 3

File details

Details for the file composio_core-0.5.43.tar.gz.

File metadata

  • Download URL: composio_core-0.5.43.tar.gz
  • Upload date:
  • Size: 299.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for composio_core-0.5.43.tar.gz
Algorithm Hash digest
SHA256 a7135136a3659db7b6ab6b3e343bbc57bf713999e31bd7890d81155a375e1e09
MD5 e8467e6f587b6ef221a50e67ff2943b3
BLAKE2b-256 5ec0bd3fe62fb53d5755a67efc7d8d377d0e6e5759e94c1da1a7a2908d6a7153

See more details on using hashes here.

File details

Details for the file composio_core-0.5.43-py3-none-any.whl.

File metadata

File hashes

Hashes for composio_core-0.5.43-py3-none-any.whl
Algorithm Hash digest
SHA256 904c9edc1ec979c4d0509cf527a0125336a3462c84de39beea69fb0a7302d37f
MD5 6b036aab22c5c25866b76b2c55aea8d8
BLAKE2b-256 da143ed5abef9f1651417e7f2aa611bb4e3fe3842dd12ada117b842a566eac2f

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page