Spaces:
Sleeping
Sleeping
# 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 <términos clave>'). | |
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 | |