Composio LangChain
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
-
ModuleNotFoundError: No module named 'composio_langchain'
cause The `composio-langchain` library is not installed in your current Python environment.fixRun `pip install composio-langchain`. -
ValueError: COMPOSIO_API_KEY not found in environment variables. Please set it.
cause The `ComposioToolkit` requires your Composio API key to be set as an environment variable.fixSet the environment variable `COMPOSIO_API_KEY` before running your script. Example: `export COMPOSIO_API_KEY="your_key_here"`. -
composio.exceptions.ComposioToolError: Tool 'google_sheets' not found. Please ensure it's installed.
cause A Composio tool requested by the agent (e.g., 'google_sheets') has not been installed using the Composio CLI.fixInstall the necessary toolkits via the Composio CLI: `pip install composio-cli` followed by `composio install <toolkit_name>`. -
AttributeError: 'ComposioToolkit' object has no attribute 'tools'
cause You are trying to access `toolkit.tools` directly. The correct method to retrieve tools is `get_tools()`.fixChange `toolkit.tools` to `toolkit.get_tools()`.
Warnings
- breaking Composio has a hard dependency on LangChain's 0.1.x series and above (using `langchain_core`). If you are using an older version of LangChain (e.g., 0.0.x), this library will not be compatible.
- gotcha Composio tools are not automatically available. You must first install them using the `composio-cli` (e.g., `composio install google_sheets`). Attempting to use a tool that hasn't been installed will result in a runtime error.
- gotcha The `COMPOSIO_API_KEY` environment variable is mandatory for `ComposioToolkit` to function correctly. Without it, tool discovery and execution will fail.
- gotcha To get the list of tools, you must call the `get_tools()` method on the `ComposioToolkit` instance. Directly accessing `toolkit.tools` is not the correct interface.
Install
-
pip install composio-langchain -
pip install composio-cli
Imports
- ComposioToolkit
from composio_langchain import ComposioToolkit
Quickstart
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"])