10 puntos por xguru 2025-04-10 | Aún no hay comentarios. | Compartir por WhatsApp
  • El equipo de Node.js de Red Hat está experimentando con formas de integrar LLM con Node.js y TypeScript/JavaScript
  • Comparan varios frameworks, con especial énfasis en las llamadas a tools/functions y la forma en que operan los agentes
  • Analizan las capacidades del recientemente lanzado Llama Stack y su potencial de integración con Node.js

Cómo configurar y ejecutar Llama Stack

  • Llama Stack es un framework modular que distribuye varias implementaciones con el objetivo de estandarizar APIs
  • Al usar un contenedor basado en Ollama, ofrece la forma más sencilla de ejecución
  • Configuración del servidor mediante un ejemplo de script de arranque:
    • Modelo: meta-llama/Llama-3.1-8B-Instruct
    • Puerto: 8321
    • IP del servidor Ollama: 10.1.2.38
  • El modelo debe ejecutarse previamente en Ollama, y es necesario usarlo al menos una vez al día para mantener el keepalive
  • El endpoint de documentación (/docs) permite ver el esquema de la API y hacer pruebas interactivas

Primer ejemplo de aplicación en Node.js

  • Usa la librería llama-stack-client-typescript para comunicarse con Llama Stack
  • Define dos tools:
    • favorite_color_tool: proporciona información de color basada en ciudad/país
    • favorite_hockey_tool: proporciona información de equipos de hockey sobre hielo basada en ciudad/país
  • Prueba el flujo de llamadas a tools mediante un escenario de preguntas
  • Problema inicial: cuando falta información necesaria para la tool, no se muestra un mensaje de guía claro
  • Solución: insertar la palabra "assistant" en el mensaje de respuesta mejora el flujo de forma más natural

Cómo maneja Llama Stack las llamadas a tools

  • Al usar la API chatCompletion(), las llamadas a tools deben manejarse directamente
  • La función handleResponse() detecta las solicitudes de tools y vuelve a pasar el resultado como mensaje
  • tool_choice está configurado como "auto" por defecto, pero tiende fuertemente a usar tools si existen
  • Se observó que, incluso cuando la pregunta no está relacionada con ninguna tool, el sistema intenta usarlas y luego termina marcando el caso como ‘no puede responder’

Experimento de integración entre MCP y Llama Stack

  • Con MCP (Model Context Protocol), es posible alojar tools en un servidor externo y compartirlas entre distintos frameworks
  • El servidor MCP usa Supergateway para hacer bridge de un servidor basado en stdio hacia SSE
  • Tras registrar el servidor MCP, se pueden invocar automáticamente las tools MCP usando la API de agentes de Llama Stack
  • La API de agentes:
    • maneja automáticamente el estado y los mensajes
    • ejecuta internamente el flujo de llamadas a tools dentro del framework
  • Sin embargo, no se pueden ver directamente los logs de las llamadas a tools, y solo es posible confirmar la respuesta final

Uso de MCP para acceder al entorno local

  • Se puede ejecutar un servidor MCP en modo stdio dentro del entorno local y conectarlo con Llama Stack
  • Se necesita código para convertir el JSON de definición de tools del servidor MCP al formato compatible con Llama Stack
  • Mediante mcpClient.callTool(), es posible devolver resultados de tools dentro del flujo de respuesta del LLM
  • Esto permite implementar escenarios de acceso a entornos de apps locales en lugar de depender de un servidor centralizado

Cierre

  • Se realizó una práctica de integración de LLM y llamadas a tools mediante Llama Stack en un entorno Node.js
  • Se presentan distintos enfoques: tools locales, MCP remoto y MCP local, con varios casos de uso
  • En particular, ofrece ejemplos de código y flujos prácticos para desarrolladores de JavaScript/TypeScript
  • Puede servir como un punto de partida útil para quienes quieran integrar LLM y Node.js en adelante

Material adicional

Aún no hay comentarios.

Aún no hay comentarios.