https://github.com/composiohq/cookbook
https://github.com/composiohq/cookbook
Last synced: 3 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/composiohq/cookbook
- Owner: ComposioHQ
- Created: 2024-08-27T13:10:18.000Z (about 1 year ago)
- Default Branch: master
- Last Pushed: 2024-10-08T13:36:50.000Z (12 months ago)
- Last Synced: 2025-06-04T00:45:15.902Z (4 months ago)
- Language: JavaScript
- Size: 73.8 MB
- Stars: 16
- Watchers: 2
- Forks: 15
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Production Ready Toolset for AI AgentsEquip your agent with high-quality tools & integrations without worrying about authentication, accuracy, and reliability in a single line of code!
โจ Socials >>
Discord |
Youtube |
Twitter |
โ๏ธ Contribute >>
Report Bugs |
Request Feature |
Contribute## ๐ Table of contents
- [๐ Table of contents](#-table-of-contents)
- [๐ค Why Composio?](#-why-composio)
- [๐ฅ Key Features](#-key-features)
- [๐ Getting Started with Python](#-getting-started-with-python)
- [1. Installation](#1-installation)
- [2. Testing Composio in Action](#2-testing-composio-in-action)
- [๐ Getting Started with Javascript](#-getting-started-with-javascript)
- [1. **Install the Composio SDK**:](#1-install-the-composio-sdk)
- [2. **Setup the OpenAI and Composio Tool Set**:](#2-setup-the-openai-and-composio-tool-set)
- [3. **Run your script**:](#3-run-your-script)
- [๐ก Examples](#-examples)
- [Python Examples](#python-examples)
- [Javascript Examples](#javascript-examples)
- [Star History](#star-history)
- [๐ Read Our Code Of Conduct](#-read-our-code-of-conduct)
- [๐ค Contributions](#-contributions)
- [๐ Links](#-links)
- [๐ก๏ธ License](#๏ธ-license)
- [๐ช Thanks To All Contributors](#-thanks-to-all-contributors)## ๐ค 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.
## ๐ฅ 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, 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.
```bash
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.
```bash
composio add github # Connect your Github - Run this in terminal
``````python
from openai import OpenAI
from composio_openai import ComposioToolSet, App, Actionopenai_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**:
```bash
npm install composio-core
```### 2. **Setup the OpenAI and Composio Tool Set**:
```javascript
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**:
```bash
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](https://docs.composio.dev/).
## ๐ก Examples
### [Python Examples](https://docs.composio.dev/guides/python/)
### [Javascript Examples](https://docs.composio.dev/guides/javascript/)
## Star History
[](https://star-history.com/#composiohq/composio&Date)
## ๐ 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](https://github.com/composiodev/composio/blob/master/CODE_OF_CONDUCT.md).
## ๐ค 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](https://github.com/composiodev/composio/blob/master/CONTRIBUTING.md) and [Code of Conduct](https://github.com/composiodev/composio/blob/master/CODE_OF_CONDUCT.md) before you start.
## ๐ Links
- [Home page](https://composio.dev?utm_campaign=github-readme)
- [Contribution Guidelines](https://github.com/composiodev/composio/blob/master/CONTRIBUTING.md)
- [Docs](https://docs.composio.dev/?utm_campaign=github-readme)## ๐ก๏ธ License
Composio is licensed under the Elastic License - see the [LICENSE](https://github.com/composiodev/composio/blob/master/LICENSE) file for details.
## ๐ช Thanks To All Contributors