mirror of
https://github.com/langflow-ai/langflow.git
synced 2026-07-25 01:59:06 +08:00
236 lines
9.5 KiB
Plaintext
236 lines
9.5 KiB
Plaintext
---
|
|
title: Composio
|
|
slug: /bundles-composio
|
|
---
|
|
|
|
import Icon from "@site/src/components/icon";
|
|
|
|
<Icon name="Blocks" aria-hidden="true" /> [**Bundles**](/components-bundle-components) contain custom components that support specific third-party integrations with Langflow.
|
|
|
|
This page describes the components that are available in the **Composio** bundle.
|
|
|
|
For information about specific Composio functionality, see the [Composio documentation](https://docs.composio.dev/introduction/intro/overview).
|
|
|
|
## Use Composio components in a flow
|
|
|
|
Composio components are primarily used as [tools for agents](/agents-tools).
|
|
|
|
The **Composio** bundle includes an aggregate **Composio Tools** component and the following single-service components:
|
|
|
|
<details closed>
|
|
<summary>Composio single-service components</summary>
|
|
|
|
- **AgentQL**
|
|
- **Agiled**
|
|
- **Airtable**
|
|
- **Apollo**
|
|
- **Asana**
|
|
- **Attio**
|
|
- **Bitbucket**
|
|
- **Bolna**
|
|
- **Brightdata**
|
|
- **Calendly**
|
|
- **Canva**
|
|
- **Canvas**
|
|
- **Coda**
|
|
- **Contentful**
|
|
- **Digicert**
|
|
- **Discord**
|
|
- **Dropbox**
|
|
- **ElevenLabs**
|
|
- **Exa**
|
|
- **Figma**
|
|
- **Finage**
|
|
- **Firecrawl**
|
|
- **Fireflies**
|
|
- **Fixer**
|
|
- **Flexisign**
|
|
- **Freshdesk**
|
|
- **GitHub**
|
|
- **Gmail**
|
|
- **Google BigQuery**
|
|
- **Google Calendar**
|
|
- **Google Classroom**
|
|
- **Google Docs**
|
|
- **Google Meet**
|
|
- **Google Sheets**
|
|
- **Google Tasks**
|
|
- **Heygen**
|
|
- **Instagram**
|
|
- **Jira**
|
|
- **Jotform**
|
|
- **Klaviyo**
|
|
- **Linear**
|
|
- **Listennotes**
|
|
- **Mem0**
|
|
- **Miro**
|
|
- **Missive**
|
|
- **Notion**
|
|
- **OneDrive**
|
|
- **Outlook**
|
|
- **Pandadoc**
|
|
- **PeopleDataLabs**
|
|
- **PerplexityAI**
|
|
- **Reddit**
|
|
- **SerpAPI**
|
|
- **Slack**
|
|
- **Slackbot**
|
|
- **Snowflake**
|
|
- **Supabase**
|
|
- **Tavily**
|
|
- **TimelinesAI**
|
|
- **Todoist**
|
|
- **Wrike**
|
|
- **YouTube**
|
|
|
|
</details>
|
|
|
|
|
|
The **Composio Tools** component is an access point for multiple Composio services (tools).
|
|
However, most of these services are also available as single-service components, which are recommended over the **Composio Tools** component.
|
|
|
|
Although you can use single-service components for non-agentic actions in your flows, they are primarily used in **Tool Mode** with **Agent** components.
|
|
In contrast, the **Composio Tools** component can _only_ be a tool for agents; it doesn't support non-agentic use.
|
|
|
|
The following example demonstrates how to use the Composio **Gmail** component as a tool for an **Agent** component.
|
|
This allows the agent to use Composio Gmail functionality, if necessary, when generating responses.
|
|
You can connect other Composio components in the same way.
|
|
|
|
1. Create a flow based on the **Simple Agent** template.
|
|
|
|
2. In <Icon name="Blocks" aria-hidden="true" /> **Bundles**, find the **Composio** bundle, and then add the **Gmail** component to the flow.
|
|
|
|
3. In the **Composio API Key** field, enter your Composio API key or use the `COMPOSIO_API_KEY` global variable.
|
|
For more information, see [Composio authentication](#composio-authentication).
|
|
|
|
If the key is valid, the <Icon name="TriangleAlert" aria-hidden="true" /> **Alert** is replaced by a <Icon name="Check" aria-hidden="true" /> **Success** indicator, and the **Actions** list populates with actions available to your API key.
|
|
|
|
4. In the [component's header menu](/concepts-components#component-menus), enable **Tool Mode**.
|
|
|
|
If you are using the **Composio Tools** component, skip this step because the component is already configured as a tool.
|
|
|
|
5. In the **Actions** list, configure the Gmail actions that you want to provide to the agent.
|
|
You can select the actions you want to allow, and you can edit each action's slug (agentic label) and description, which help the agent decide which tools to use.
|
|
|
|
6. Connect the **Gmail** component's **Toolset** output to the **Agent** component's **Tools** input.
|
|
|
|
7. In the **Agent** component, enter your OpenAI API key or configure the **Agent** component to use a different LLM.
|
|
For more information, see [Language model components](/components-models).
|
|
|
|
At this point, your flow has four connected components:
|
|
|
|
* The **Chat Input** component is connected to the **Agent** component's **Input** port.
|
|
This allows the flow to be triggered by an incoming prompt from a user or application.
|
|
* The **Gmail** component is connected to the **Agent** component as a tool.
|
|
The agent may not use this tool for every request; the agent only uses this connection if it decides the Gmail tool can help respond to the prompt.
|
|
* The **Agent** component's **Output** port is connected to the **Chat Output** component, which returns the final response to the user or application.
|
|
|
|

|
|
|
|
8. To test the flow, click **Playground**, and then ask the LLM about the tools available to it.
|
|
The agent should provide a list of connected tools, including the **Gmail** tool and the built-in tools in the **Agent** component.
|
|
For example:
|
|
|
|
```text
|
|
User:
|
|
What tools are available to you?
|
|
|
|
I have access to a variety of tools that allow me to help you with different tasks. Here are the main categories of tools available to me:
|
|
|
|
1. Gmail Tools:
|
|
- Fetch emails, search, and filter messages.
|
|
- Fetch specific email details by message ID.
|
|
- Create email drafts (with attachments, HTML, CC/BCC, etc.).
|
|
- Delete email drafts or specific messages.
|
|
|
|
2. Date & Time Tools:
|
|
- Get the current date and time in any timezone.
|
|
|
|
3. Multi-Tool Use:
|
|
- Run multiple tools in parallel for efficiency.
|
|
|
|
If you have a specific task in mind, let me know and I can tell you which tool I would use or demonstrate how I can help!
|
|
```
|
|
|
|
9. To test a specific tool or function, tell the agent to perform an action that uses that tool.
|
|
For example, ask the agent to write a draft email:
|
|
|
|
```text
|
|
Create a draft email with the subject line "Greetings from Composio"
|
|
recipient: "your.email@address.com"
|
|
Body content: "Hello from composio!"
|
|
```
|
|
|
|
The **Playground** prints the logic as the agent chooses the `GMAIL_CREATE_EMAIL_DRAFT` tool to create the email draft.
|
|
The following example response is abbreviated:
|
|
|
|
```text
|
|
The draft email with the subject "Greetings from Composio" and body "Hello from composio!" has been successfully created.
|
|
```
|
|
|
|
```json
|
|
{
|
|
"recipient_email": "your.email@address.com",
|
|
"subject": "Greetings from Composio",
|
|
"body": "Hello from composio!",
|
|
"is_html": false
|
|
}
|
|
|
|
{
|
|
"data": {
|
|
"response_data": {
|
|
"id": "r-237981011463568567",
|
|
"message": {
|
|
"id": "195dd80528171132",
|
|
"threadId": "195dd80528171132",
|
|
"labelIds": [
|
|
"DRAFT"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"error": null,
|
|
"successfull": true,
|
|
"successful": true
|
|
}
|
|
```
|
|
|
|
For further confirmation, you can go to your Gmail account and find the message in your drafts folder.
|
|
|
|
10. Optional: To add more Composio services, repeat these steps to add more Composio components to your flow.
|
|
For each component, provide the necessary credentials, enable **Tool Mode**, configure the actions, and then connect it to the **Agent** component's **Tools** port.
|
|
|
|
## Composio parameters
|
|
|
|
All single-service Composio components have the same parameters, and the **Composio Tools** component has one additional parameter:
|
|
|
|
| Name | Type | Description |
|
|
|------|------|-------------|
|
|
| entity_id | String | Input parameter. The entity ID for the Composio account. Default: `default`. This parameter is hidden by default in the visual editor. If you need to set this parameter, you can access it through the [component inspection panel](/concepts-components#component-menus). |
|
|
| api_key | SecretString | Input parameter. The Composio API key for authentication with the Composio platform. Make sure the key authorizes the specific service that you want to use. For more information, see [Composio authentication](#composio-authentication). |
|
|
| tool_name | Connection | Input parameter for the **Composio Tools** component only. Select the Composio service (tool) to connect to. |
|
|
| action | List | Input parameter. Select actions to use. Available actions vary by service. Some actions might require premium access to a particular service. |
|
|
|
|
## Composio authentication
|
|
|
|
Composio components require authentication to the Composio platform with a Composio API key.
|
|
|
|
You can provide this key directly in your components, or you can use the `COMPOSIO_API_KEY` [global variable](/configuration-global-variables), which Langflow can automatically load from your `.env` file.
|
|
|
|
:::info
|
|
The Composio API key _only_ handles the connection to Composio.
|
|
Service provider authentication is managed through the Composio platform for each service that you want to use.
|
|
:::
|
|
|
|
Make sure that your Composio API key provides access to the required services for the components in your flow.
|
|
For example, if you are using the Composio **Gmail** component, your Composio API key must have access to the Gmail service.
|
|
|
|
## Composio output
|
|
|
|
When used as tools for an agent, Composio components output [`Tools`](/data-types#tool), which is a list of tools for use by an agent.
|
|
When called by the agent, the response from the Composio service is ingested by the agent, not passed directly as output to the user or application.
|
|
|
|
In non-agentic use cases, the output is a [`Table`](/data-types#table) containing the response from the specified Composio service, depending on the component and action used in the flow.
|
|
|
|
Because the **Composio Tools** component supports _only_ agentic use, it cannot output `Table`.
|
|
All single-service Composio components can output either `Table` or `Tools`. |