41 lines
1.2 KiB
Python
41 lines
1.2 KiB
Python
"""ADK agent with vector search RAG tool."""
|
|
|
|
from google import genai
|
|
from google.adk.agents.llm_agent import Agent
|
|
from google.adk.runners import Runner
|
|
from google.adk.tools.mcp_tool import McpToolset
|
|
from google.adk.tools.mcp_tool.mcp_session_manager import StreamableHTTPConnectionParams
|
|
from google.cloud.firestore_v1.async_client import AsyncClient
|
|
|
|
from va_agent.auth import auth_headers_provider
|
|
from va_agent.config import settings
|
|
from va_agent.session import FirestoreSessionService
|
|
from va_agent.governance import GovernancePlugin
|
|
|
|
toolset = McpToolset(
|
|
connection_params=StreamableHTTPConnectionParams(url=settings.mcp_remote_url),
|
|
header_provider=auth_headers_provider,
|
|
)
|
|
|
|
governance = GovernancePlugin()
|
|
agent = Agent(
|
|
model=settings.agent_model,
|
|
name=settings.agent_name,
|
|
instruction=settings.agent_instructions,
|
|
tools=[toolset],
|
|
after_model_callback=governance.after_model_callback,
|
|
)
|
|
|
|
session_service = FirestoreSessionService(
|
|
db=AsyncClient(database=settings.firestore_db),
|
|
compaction_token_threshold=10_000,
|
|
genai_client=genai.Client(),
|
|
)
|
|
|
|
runner = Runner(
|
|
app_name="va_agent",
|
|
agent=agent,
|
|
session_service=session_service,
|
|
auto_create_session=True,
|
|
)
|