tool-eval-bench

IA / ML

Comprueba si tu endpoint autoalojado orquesta herramientas, respeta seguridad y saca JSON válido, no solo si va rápido.

Descripción

Cuando sirves un LLM para flujos con herramientas, el throughput no te dice si el modelo elige bien la tool, mantiene un diálogo de varios turnos o se sale de los límites de seguridad. El agente “funciona” en la demo y se rompe en cuanto el entorno no es el del tutorial.

Esta batería apunta a un endpoint compatible con OpenAI (/v1/chat/completions) y recorre 69 escenarios deterministas (más 23 opcionales en Hard Mode). Cada caso observa una conversación con herramientas simuladas, puntúa acierto, parcial o fallo y deja la traza completa. Cubre orquestación multi-turno, fronteras de seguridad y salida estructurada sobre vLLM, SGLang, llama.cpp, LiteLLM, TensorFold, NInfer y APIs de Gemini o Anthropic. No mide agentes independientes ni pases entre agentes.

Cómo lo encajas en tu stack

  • Instálalo con uv o Docker y lanza 15 escenarios cortos contra localhost en un par de minutos, sin fichero de configuración.
  • Compara ejecuciones con informe Markdown, SQLite, historial y leaderboard agrupado por huella de configuración (motor, cuantización, GPUs, slots, decodificación especulativa).
  • Reproduce con --seed y prueba variantes controladas (fallos de jobs, paginación, identificadores cambiados…) con --hardmode.

El score ignora timeouts y errores de serving (completion_rate), avisa de acciones inseguras y no mezcla cohortes distintas. La cobertura de localización está centrada en alemán; los niveles de dificultad son estimaciones del autor, no un ranking calibrado.

Tecnologías y temas

  • Benchmark de tool calling

    69 escenarios deterministas más 23 en Hard Mode, con puntuación acierto/parcial/fallo y traza de cada conversación.

  • Informes comparables

    Markdown, SQLite, historial y leaderboard agrupados por config_fingerprint para no mezclar cohortes.

  • Seguridad y JSON

    Comprueba límites de seguridad, tool_choice y salida estructurada, no solo si el modelo responde.

  • Stacks autoalojados

    Habla con endpoints OpenAI-compatibles: vLLM, SGLang, llama.cpp, LiteLLM, TensorFold, NInfer, Gemini y Anthropic.

  • Variantes controladas

    Hard Mode y --variant-seed cambian fixtures (fallos, paginación, identificadores) sin perder reproducibilidad.