import os from typing import Dict import sendgrid from sendgrid.helpers.mail import Email, Mail, Content, To from agents import Agent, function_tool, AsyncOpenAI, OpenAIChatCompletionsModel gemini_client = AsyncOpenAI(base_url="https://generativelanguage.googleapis.com/v1beta/openai/", api_key=os.getenv('GOOGLE_API_KEY')) gemini_model = OpenAIChatCompletionsModel(model="gemini-2.0-flash", openai_client=gemini_client) @function_tool def send_email(subject: str, html_body: str) -> Dict[str, str]: """ Send an email with the given subject and HTML body """ sg = sendgrid.SendGridAPIClient(api_key=os.environ.get('SENDGRID_API_KEY')) from_email = Email("cz78@illinois.edu") # put your verified sender here to_email = To("ch315868@dal.ca") # put your recipient here content = Content("text/html", html_body) mail = Mail(from_email, to_email, subject, content).get() response = sg.client.mail.send.post(request_body=mail) print("Email response", response.status_code) return {"status": "success"} INSTRUCTIONS = """You are able to send a nicely formatted HTML email based on a detailed report. You will be provided with a detailed report. You should use your tool to send one email, providing the report converted into clean, well presented HTML with an appropriate subject line.""" email_agent = Agent( name="Email agent", instructions=INSTRUCTIONS, tools=[send_email], model=gemini_model, )