Skip to main content
Composio enables IBM’s Granite Models to connect with many tools!
Goal: Star a repository on GitHub with natural language

Video Guide

Install Packages & Connect a Tool

Ensure you have the necessary packages installed and connect your GitHub account to allow your IBM agents to utilize GitHub functionalities.
pip install composio-langchain
pip install langchain-ibm

#  Connect your GitHub so agents can use it. 
composio add github
#  Check all different apps which you can connect with
composio apps

Goal: Prepare your environment by initializing necessary imports from Composio & IBM.

1

Import Base Packages

Prepare your environment by initializing necessary imports from Composio & IBM.
from composio_langchain import ComposioToolSet, Action
from langchain_ibm import ChatWatsonx
import os

os.environ['WATSONX_API_KEY'] = '<ibm_api_key>' #add your ibm api key here
if not os.environ.get('WATSONX_API_KEY'):
    raise ValueError("WATSONX_API_KEY environment variable is not set")
2

Integrating GitHub Tools with Composio

This step involves fetching and integrating GitHub tools provided by Composio, enabling enhanced functionality for Agent operations.
composio_toolset = ComposioToolSet()
tools = composio_toolset.get_tools(
    actions=[Action.GITHUB_ACTIVITY_STAR_REPO_FOR_AUTHENTICATED_USER]
)
3

IBM Agent Setup

This step involves configuring and executing the agent to carry out actions, such as starring a GitHub repository.
parameters = {
"decoding_method": "sample",
"max_new_tokens": 100,
"min_new_tokens": 1,
"temperature": 0.5,
"top_k": 50,
"top_p": 1,
}
url = input('Add your IBM Cloud URL here: ')
project_id = input('Add your IBM Project ID here: ')
watsonx_llm = ChatWatsonx(
model_id = 'ibm/granite-3-8b-instruct',
url = url, 
project_id = project_id,
)   

if not url or not project_id:
    raise ValueError("IBM Cloud URL and Project ID must be provided")

llm_with_tools = watsonx_llm.bind_tools(tools)


4

Execute with your prompt/task.

Execute the following code to execute the agent, ensuring that the intended task has been successfully completed.
response = llm_with_tools.invoke("Star the composiohq/composio repository")
print(response)