Ratel es una biblioteca de código abierto que actúa como capa de ingeniería de contexto para agentes de inteligencia artificial. Su objetivo es doble: reducir el coste por llamada y recuperar la precisión que se pierde cuando el modelo recibe demasiadas herramientas, instrucciones y habilidades a la vez.
El problema que aborda es bien conocido. Cada esquema de herramienta, cada habilidad y cada línea de instrucciones del prompt del sistema se traducen en tokens que se pagan en cada invocación. Además, los modelos empeoran su rendimiento a medida que crece el contexto: si se les presentan capacidades que no necesitan en un turno determinado, acaban eligiendo opciones incorrectas y desviándose de la tarea.
La solución de Ratel consiste en indexar herramientas y habilidades en un catálogo que el agente va descubriendo de forma progresiva. En lugar de cargar todo de antemano, el sistema busca lo que cada turno necesita mediante búsqueda BM25 —el mismo algoritmo empleado por los motores de búsqueda— aplicado a metadatos de esquemas y a nombres, descripciones y etiquetas de habilidades. Solo se inyectan en el contexto las capacidades que coinciden con la consulta. Opcionalmente, se puede activar ranking semántico o híbrido por catálogo o por llamada, con embeddings generados en proceso o a través de un endpoint compatible con OpenAI.
El proyecto se distribuye como motor en Rust, SDK para TypeScript (mediante NAPI) y SDK para Python (mediante PyO3), e incluye integraciones de ejemplo con Vercel AI SDK y Pydantic AI. El motor principal se publica bajo Apache 2.0, con una concesión explícita de patentes para quienes lo embeban; los SDKs y ejemplos usan licencia MIT. La documentación incluye guías de inicio rápido, registros de decisiones arquitectónicas y un benchmark público que, según el repositorio, muestra recortes significativos en el consumo de tokens en modelos locales, de código abierto y de frontera, sin necesidad de una base de datos vectorial externa.
