# agent/linkedin_agent.py import os from openai import OpenAI from agents import Agent from agents import OpenAIResponsesModel from tools.web_search_tool import get_web_search_tool # Asegúrate de tener la variable de entorno OPENAI_API_KEY definida en tu sistema OPENAI_API_KEY = os.getenv("OPENAI_API_KEY") if not OPENAI_API_KEY: raise ValueError("Debes exportar la clave OPENAI_API_KEY antes de ejecutar el agente.") # Cliente de OpenAI para pasar al modelo client = OpenAI(api_key=OPENAI_API_KEY) def create_agent(): """ Crea y retorna un Agent configurado para: - Usar el modelo '04-mini-high' (OpenAIChatCompletionsModel). - Tener como tool el WebSearchTool nativo de OpenAI Agents SDK. - Instrucciones en español para buscar perfiles de LinkedIn según oferta de empleo. """ # 1) Primero, instanciamos el modelo basado en 04-mini-high: model = OpenAIResponsesModel( model="o4-mini", openai_client=client ) # 2) Obtenemos el WebSearchTool nativo: web_search = get_web_search_tool() # 3) Construimos el agente con instrucciones muy explícitas: instrucciones = """ Eres un agente que recibe dos entradas: 1) Una descripción de oferta de empleo en español. 2) Un número entero N (cantidad de perfiles a extraer). Tu tarea: a) Extraer los términos clave de la oferta. b) Invocar la herramienta `web_search` para buscar en Google sitios de LinkedIn (usando algo como 'site:linkedin.com/in '). c) Devolver hasta N perfiles en un formato de lista donde cada elemento tenga: - Nombre del candidato (si está en el título o snippet de búsqueda). - Enlace completo al perfil de LinkedIn (URL). d) Presenta los resultados en un texto claro, cada perfil en una línea separada. Ejemplo de salida (para N=2): 1. Juan Pérez - https://www.linkedin.com/in/juan-perez-12345 (Ingeniero de Software) 2. María Gómez - https://www.linkedin.com/in/maria-gomez-67890 (Desarrolladora Backend) """ agent = Agent( name="linkedin_agent", instructions=instrucciones, model=model, tools=[web_search] ) return agent