Spaces:
Sleeping
Sleeping
File size: 1,525 Bytes
adf61d6 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
import os
from dotenv import load_dotenv
from google.adk.agents.llm_agent import Agent
from google.adk.models.lite_llm import LiteLlm
import prompt as prmpt
import callback as cb
import sf_tools as tls
# 🔑 Load .env file
load_dotenv()
groq_api_key = os.getenv("GROQ_API_KEY")
groq_model = os.getenv("MODEL")
if not groq_api_key:
raise ValueError("GROQ_API_KEY is not set in .env")
if not groq_model:
raise ValueError("MODEL is not set in .env")
# Optional (only needed if LiteLLM expects env var)
os.environ["GROQ_API_KEY"] = groq_api_key
# Create the agent with ADK callbacks (logging + optional audit sink)
root_agent = Agent(
model=LiteLlm(
model=groq_model,
custom_llm_provider="groq"
),
name=prmpt.AGENT_CONFIG["name"],
description=prmpt.AGENT_CONFIG["description"],
instruction=prmpt.AGENT_CONFIG["instruction"],
tools=[tls.check_leave_eligibility, tls.get_employee, tls.get_leave_policy],
# ADK callbacks: observe agent/model/tool lifecycle and optionally persist to audit sink
before_agent_callback=cb.before_agent_callback,
after_agent_callback=cb.after_agent_callback,
before_model_callback=cb.before_model_callback,
after_model_callback=cb.after_model_callback,
before_tool_callback=cb.before_tool_callback,
after_tool_callback=cb.after_tool_callback,
on_model_error_callback=cb.on_model_error_callback,
on_tool_error_callback=cb.on_tool_error_callback,
)
|