Aprende a implementar observabilidad con LangFuse para monitorear tus agentes Strands en tiempo real y entender su comportamiento
🇻🇪🇨🇱 Dev.to Linkedin GitHub Twitter Instagram Youtube
Linktr
Getting Started with Strands Agents: Build Your First AI Agent - Curso GRATIS
Esta tercera parte de la serie Building Strands Agents se enfoca en implementar observabilidad con LangFuse para monitorear tus agentes en tiempo real.
🎯 Por Qué Importan la Observabilidad y la Evaluación
Cuando despliegas agentes en producción, necesitas responder estas preguntas: ¿Tu agente responde con precisión? ¿Cuánto tiempo toman las respuestas? ¿Dónde están los cuellos de botella? ¿Qué conversaciones fallan y por qué?
Sin una Observabilidad adecuada, estás volando a ciegas. Tus agentes podrían estar alucinando, teniendo un rendimiento deficiente o desperdiciando recursos computacionales, y no lo sabrás hasta que los usuarios se quejen.
Componentes de Observabilidad
El Strands Agents SDK incluye todas las APIs de observabilidad. Los siguientes son puntos de datos clave de observabilidad:
Metrics (Métricas) - Esenciales para entender el rendimiento del agente, optimizar el comportamiento y monitorear el uso de recursos.
Traces (Trazas) - Un componente fundamental del marco de observabilidad del SDK de Strands, que proporciona información detallada sobre la ejecución de tu agente.
Logs (Registros) - El SDK de Strands usa el módulo de registro estándar de Python para proporcionar visibilidad sobre las operaciones.
Evaluation (Evaluación) - Esencial para medir el rendimiento del agente, rastrear mejoras y asegurar que tus agentes cumplan con los estándares de calidad. Con el SDK de Strands, puedes realizar Evaluación Manual, Pruebas Estructuradas, Evaluación con LLM Judge y Evaluación Específica de Herramientas.
Integración con OpenTelemetry
Strands se integra nativamente con OpenTelemetry, un estándar de la industria para rastreo distribuido. Puedes visualizar y analizar trazas usando cualquier herramienta compatible con OpenTelemetry. Esta integración proporciona:
- Compatibilidad con herramientas de observabilidad existentes: Envía trazas a plataformas como Jaeger, Grafana Tempo, AWS X-Ray, Datadog y más.
- Nomenclatura de atributos estandarizada: Usa las convenciones semánticas de OpenTelemetry.
- Opciones de exportación flexibles: Salida de consola para desarrollo, endpoint OTLP para producción.
- Auto-instrumentación: El SDK crea trazas automáticamente cuando activas el rastreo.
🍽️🔍Observabilidad y Evaluación con Restaurant Agent
Este tutorial usa el notebook 06_Observability_with_LangFuse_and_Evaluation_with_RAGAS.ipynb para demostrar la construcción de un agente de recomendación de restaurantes con capacidades de observabilidad y evaluación. Este tutorial está diseñado para desarrolladores nuevos en agentes de IA, observabilidad y evaluación.
⭐ Basado en el código de 08-observability-and-evaluation/Observability-and-Evaluation-sample.ipynb del repositorio Strands Agents Samples
Qué Construirás
Crearás estos componentes clave:
- Base de Datos Vectorial Local: Una colección consultable de información de restaurantes que tu agente puede consultar
- Strands Agent: Un asistente de IA que puede recomendar restaurantes según las preferencias del usuario.
- LangFuse: Una herramienta que muestra cómo funciona tu agente y toma decisiones.
- RAGAS: Un framework que evalúa el rendimiento de tu agente (cubierto en la siguiente parte).
🚀 Comenzando
Clona el repositorio de ejemplo:
git clone https://github.com/aws-samples/sample-getting-started-with-strands-agents-course
cd Lab6
Crea y activa un entorno virtual:
python -m venv .venv
source .venv/bin/activate # En Windows: .venv\Scripts\activate
Instala los paquetes requeridos:
pip install -r requirements.txt
Cada paquete sirve un propósito específico:
- langchain: Nos ayuda a construir aplicaciones con modelos de lenguaje
- langfuse: Proporciona observabilidad para nuestro agente
- ragas: Nos ayuda a evaluar el rendimiento de nuestro agente
- chromadb: Una base de datos para almacenar y buscar embeddings vectoriales
- docx2txt: Convierte documentos Word a texto
- boto3: SDK de AWS para Python, usado para acceder a servicios de AWS y usar modelos de Amazon Bedrock
- strands: Framework para construir agentes de IA
✅ Crear Base de Datos Vectorial desde Datos de Restaurantes
Crearás una base de datos vectorial usando archivos de datos de restaurantes en la carpeta restaurant-data. Estos archivos contienen información sobre diferentes restaurantes, sus menús y especialidades.
Para completar este paso, ejecuta las celdas correspondientes en el notebook
📊 Configurar Langfuse para Observabilidad
LangFuse es una plataforma de observabilidad de código abierto específicamente diseñada para aplicaciones LLM. Proporciona un seguimiento integral de las interacciones de tu agente, incluyendo:
- Análisis de Trazas: Flujos de conversación completos desde la entrada hasta la salida
- Métricas de Rendimiento: Tiempos de respuesta, uso de tokens y seguimiento de costos
- Monitoreo de Errores: Solicitudes fallidas y manejo de excepciones
- Análisis de Usuarios: Patrones de conversación y participación de usuarios
La plataforma se integra perfectamente con frameworks populares y proporciona opciones de implementación tanto alojadas como auto-alojadas.
Sigue los pasos para crear un nuevo proyecto en Langfuse
Configurando la Integración de LangFuse
Primero, configura tu agente para enviar trazas a LangFuse:
from langfuse import Langfuse
from strands import Agent, AgentConfig
# Inicializar cliente LangFuse
langfuse = Langfuse(
secret_key="tu-clave-secreta",
public_key="tu-clave-publica",
#host = "https://cloud.langfuse.com" # 🇪🇺 Región EU
host = "https://us.cloud.langfuse.com" # 🇺🇸 Región US
)
# Crear agente de recomendación de restaurantes con observabilidad
restaurant_agent = Agent(
name = "Restaurant Recommendation Agent",
model=model,
tools=[search_restaurants], # Dar al agente acceso a nuestra herramienta de búsqueda
system_prompt="""Eres un asistente útil de recomendación de restaurantes.
Usa la herramienta search_restaurants para encontrar información sobre restaurantes basándote en las consultas del usuario.
Proporciona recomendaciones detalladas basadas en los resultados de búsqueda.
Si te preguntan sobre restaurantes que no están en la base de datos, explica amablemente que solo puedes proporcionar información sobre restaurantes en tu base de datos.
Siempre sé amigable, útil y conciso en tus respuestas.
""",
record_direct_tool_call = True, # Registrar cuando se usan herramientas
trace_attributes={
"session.id": str(uuid.uuid4()), # Generar un ID de sesión único
"user.id": "user-email-example@domain.com", # Ejemplo de ID de usuario
"langfuse.tags": [
"Agent-SDK-Example",
"Strands-Project-Demo",
"Observability-Tutorial"
]
}
)
✅ Probar el Agente con Rastreo
Ahora probemos nuestro agente con una consulta simple y veamos cómo se desempeña. El agente usará la herramienta de búsqueda para encontrar información relevante y luego generará una respuesta.
# Probar el agente con una consulta simple
response = restaurant_agent("Estoy buscando un restaurante con buenas opciones vegetarianas. ¿Alguna recomendación?")
print(response)
✅ Revisar las Trazas
Después de ejecutar el agente, puedes revisar las trazas en LangFuse:
- Ve al menú de rastreo en tu proyecto LangFuse
- Selecciona la traza que deseas ver
- Examina cómo el agente procesó la solicitud, qué herramientas usó y qué respuesta generó
Esto te da visibilidad sobre cómo está trabajando tu agente y te ayuda a identificar cualquier problema o áreas de mejora.
Mantente atento a la parte final: Evaluación con RAGAS (Retrieval Augmented Generation Assessment), ¡donde nos sumergiremos profundamente en la medición y mejora del rendimiento de tu agente usando métricas de evaluación sistemáticas!
🔗 ¿Qué Sigue?
En la parte de Evaluación con RAGAS, cubriremos:
- Configuración del framework de evaluación RAGAS
- Medición de fidelidad y relevancia de respuestas
- Evaluación de rendimiento automatizada
- Creación de bucles de retroalimentación para mejora continua
📚 Recursos
- Getting Started with Strands Agents: Build Your First AI Agent - Curso GRATIS
- Strands Agent Documentation
- Part 1: Basic Multi-Modal Processing
- Ejemplos de Código Completo
- Documentación de AWS Bedrock
- Getting Started with Strands Agents
¡Gracias!
🇻🇪🇨🇱 Dev.to Linkedin GitHub Twitter Instagram Youtube
Linktr
Top comments (0)