Composio LangChain

0.11.5 · active · verified Thu Apr 16

Composio-langchain integrates Composio's extensive library of AI tools with LangChain agents, enabling LLMs to interact with a wide range of external applications. Currently at version 0.11.5, the library is actively maintained with frequent updates, often aligning with LangChain's own rapid release cycle.

Common errors

Warnings

Install

Imports

Quickstart

This quickstart demonstrates how to integrate Composio tools with a LangChain agent using OpenAI's LLM. It initializes the `ComposioToolkit`, creates an OpenAI tools agent with the retrieved tools, and then executes a task that leverages one of the installed Composio tools. Requires `COMPOSIO_API_KEY` and `OPENAI_API_KEY` and prior installation of Composio toolkits via the Composio CLI.

import os
from composio_langchain import ComposioToolkit
from langchain.agents import AgentExecutor, create_openai_tools_agent
from langchain_openai import ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder

# Ensure you have your API keys set as environment variables
# export COMPOSIO_API_KEY="your_composio_api_key"
# export OPENAI_API_KEY="your_openai_api_key"

# NOTE: You must install toolkits via Composio CLI first:
# pip install composio-cli
# composio install google_sheets # Example: install a specific toolkit

if not os.environ.get("COMPOSIO_API_KEY") or not os.environ.get("OPENAI_API_KEY"):
    print("Please set COMPOSIO_API_KEY and OPENAI_API_KEY environment variables.")
    exit()

# Initialize the Composio toolkit
toolkit = ComposioToolkit()

# Initialize the LLM
llm = ChatOpenAI(temperature=0, model="gpt-4", openai_api_key=os.environ.get("OPENAI_API_KEY", ""))

# Define the agent prompt
prompt = ChatPromptTemplate.from_messages(
    [
        ("system", "You are a helpful assistant with access to Composio tools."),
        MessagesPlaceholder("chat_history", optional=True),
        ("human", "{input}"),
        MessagesPlaceholder("agent_scratchpad"),
    ]
)

# Create the agent with Composio tools
agent = create_openai_tools_agent(llm, toolkit.get_tools(), prompt)

# Create the agent executor
agent_executor = AgentExecutor(agent=agent, tools=toolkit.get_tools(), verbose=True)

# Invoke the agent with a task that uses a Composio tool (e.g., Google Sheets)
# Ensure 'google_sheets' toolkit is installed via 'composio install google_sheets'
result = agent_executor.invoke({"input": "Create a new Google Sheet named 'Monthly Report 2024'."})
print(result["output"])

view raw JSON →