63 lines
1.5 KiB
Python
63 lines
1.5 KiB
Python
from composio_google_adk import GoogleAdkProvider
|
|
from google.adk.agents import Agent
|
|
from google.adk.runners import Runner
|
|
from google.adk.sessions import InMemorySessionService
|
|
from google.genai import types
|
|
|
|
from composio import Composio
|
|
|
|
# ADK config
|
|
model = "gemini-2.0-flash"
|
|
app_name = "weather_sentiment_agent"
|
|
session_id = "1234"
|
|
user_id = "user1234"
|
|
|
|
# Initialize composio tools
|
|
composio = Composio(provider=GoogleAdkProvider())
|
|
tools = composio.tools.get(user_id=user_id, toolkits=["GITHUB"])
|
|
|
|
# Agent
|
|
weather_sentiment_agent = Agent(
|
|
name=app_name,
|
|
model=model,
|
|
instruction="You are a github utility agent with ability to interact with github APIs",
|
|
tools=tools,
|
|
)
|
|
|
|
# Session and Runner
|
|
session_service = InMemorySessionService()
|
|
session = session_service.create_session_sync(
|
|
app_name=app_name,
|
|
user_id=user_id,
|
|
session_id=session_id,
|
|
)
|
|
runner = Runner(
|
|
agent=weather_sentiment_agent,
|
|
app_name=app_name,
|
|
session_service=session_service,
|
|
)
|
|
|
|
|
|
# Agent Interaction
|
|
content = types.Content(
|
|
role="user",
|
|
parts=[
|
|
types.Part(
|
|
text="Star github repository composiohq/composio",
|
|
)
|
|
],
|
|
)
|
|
events = runner.run(
|
|
user_id=user_id,
|
|
session_id=session_id,
|
|
new_message=content,
|
|
)
|
|
for event in events:
|
|
if (
|
|
event.is_final_response()
|
|
and event.content is not None
|
|
and event.content.parts
|
|
and len(event.content.parts) > 0
|
|
):
|
|
print("Agent Response: ", event.content.parts[0].text)
|