import os import base64 import requests from agents import Agent, function_tool @function_tool def send_email(subject: str, html_body: str, to: str): """Send out an email with the given subject and HTML body to a specified recipient using Mailgun""" MAILGUN_API_KEY = os.environ.get('MAILGUN_API_KEY') MAILGUN_DOMAIN = os.environ.get('MAILGUN_DOMAIN') if not all([MAILGUN_API_KEY, MAILGUN_DOMAIN, to]): return {"status": "failure", "response": "Missing configuration or recipient"} auth = base64.b64encode(f'api:{MAILGUN_API_KEY}'.encode()).decode() response = requests.post( f'https://api.mailgun.net/v3/{MAILGUN_DOMAIN}/messages', headers={ 'Authorization': f'Basic {auth}' }, data={ 'from': f'Research Agent ', 'to': to, 'subject': subject, 'html': html_body } ) return { "status": "success" if response.status_code == 200 else "failure", "response": response.text } INSTRUCTIONS = """You are able to send a nicely formatted HTML email based on a detailed report. You will be provided with a detailed report and a recipient email. Use your tool to send one email, providing the report as HTML with an appropriate subject line.""" email_agent = Agent( name="Email agent", instructions=INSTRUCTIONS, tools=[send_email], model="gpt-4o-mini", )