Spaces:
Sleeping
Sleeping
| 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, | |
| ) | |