El problema fundamental que aborda este sistema es la ineficiencia económica y computacional de utilizar modelos de lenguaje grandes (LLMs) de 'frontera' para tareas que no requieren sus capacidades de razonamiento avanzadas. A medida que el uso de agentes de IA para la codificación se dispara, también lo hacen los costos asociados al consumo de tokens, proyectándose que superen los salarios de los desarrolladores. La mayoría de las interacciones con LLMs para tareas de desarrollo, como la lectura de múltiples archivos para responder una pregunta simple o la generación de código boilerplate, son operaciones de I/O intensiva o de reconocimiento de patrones, no de razonamiento complejo.

La solución propuesta por Spotify es un sistema de enrutamiento inteligente que delega estas tareas de 'bajo valor' a modelos más pequeños y económicos, mientras reserva los LLMs de alto costo para problemas que realmente exigen su capacidad de inferencia superior. Esto se logra mediante un enfoque de 'dos modos' que distingue entre la lectura masiva de código y la escritura de código predecible, optimizando el consumo de recursos y alineando el costo del modelo con la complejidad de la tarea.

Arquitectura del Sistema

El sistema se construye sobre 'AiKA Modes' de Spotify Portal, que son agentes declarativos que se ejecutan en un runtime efímero, similar a AWS Lambda. Cada 'Mode' define instrucciones, selecciona un modelo de lenguaje (ej. Gemini 2.5 Flash), y configura parámetros como la temperatura. Portal gestiona la infraestructura subyacente.

Se han implementado dos modos principales: 'bulk-reader' para la lectura de archivos grandes y 'code-writer' para la generación de código boilerplate. Estos modos son invocables a través de la CLI o API de Portal. El enrutamiento se gestiona mediante un plugin de Claude Code llamado 'shunt', que utiliza un sistema de capas. La 'Capa 1: Hooks' registra 'PreToolUse hooks' que interceptan llamadas de lectura de archivos. Si un archivo excede un umbral de líneas configurable, el hook bloquea la lectura directa por Claude y redirige a la 'Capa 2: Scripts'.

La 'Capa 2: Scripts' consiste en scripts Bash que envuelven las llamadas a la CLI de Portal. Estos scripts construyen la solicitud, invocan las acciones de los modos (ej. 'bulk-read' o 'code-write'), y manejan la comunicación. Por ejemplo, 'bulk-read' envuelve cada archivo en tags XML y los envía al modo 'bulk-reader' junto con la pregunta. 'code-write' envía una especificación y un archivo de referencia al modo 'code-writer', y puede escribir directamente a disco sin que Claude vea el código generado. La 'Capa 3: Skills' son archivos Markdown que instruyen a Claude sobre cuándo y cómo usar los scripts, mejorando la experiencia del usuario y la degradación elegante del sistema.

Flujo de Delegación de Lectura de Archivos Grandes

  1. 1 Claude Code Intenta leer un archivo grande (ej. `Read` call)
  2. 2 Shunt Plugin (Hook) Intercepta la llamada `Read` y verifica el tamaño del archivo
  3. 3 Shunt Plugin (Hook) Si el archivo excede el umbral, bloquea la lectura directa
  4. 4 Shunt Plugin (Hook) Instruye a Claude a usar la skill `/bulk-reader`
  5. 5 Claude Code Invoca el script `bulk-read` vía la skill
  6. 6 Script `bulk-read` Envuelve archivos en XML y llama al `bulk-reader` Mode de Portal
  7. 7 Portal AiKA Mode El `bulk-reader` Mode (Gemini Flash) procesa los archivos y resume
  8. 8 Script `bulk-read` Recibe el resumen y lo presenta a Claude

Flujo de Delegación de Escritura de Código Boilerplate

  1. 1 Claude Code Recibe una solicitud de generación de código boilerplate
  2. 2 Claude Code Invoca el script `code-write` vía la skill
  3. 3 Script `code-write` Envía la especificación y un archivo de referencia al `code-writer` Mode
  4. 4 Portal AiKA Mode El `code-writer` Mode (Gemini Flash) genera código basado en patrones
  5. 5 Script `code-write` Recibe el código generado, elimina markdown y lo escribe a disco
  6. 6 Claude Code Nunca ve el código generado directamente, solo el resultado en disco
CapaTecnologíaJustificación
orchestration Spotify Portal AiKA Modes Plataforma para definir y ejecutar agentes declarativos (modos) en un runtime efímero, gestionando la infraestructura y el enrutamiento de modelos.
compute Gemini 2.5 Flash Modelo de lenguaje de bajo costo utilizado como 'worker model' para tareas de I/O intensiva y generación de boilerplate, optimizando el consumo de tokens. temperature: 0.2
compute Claude Code Modelo de lenguaje de frontera utilizado para tareas de razonamiento complejo, con su consumo de tokens optimizado mediante la delegación de tareas.
orchestration Claude Code Plugin (Shunt) Plugin que intercepta llamadas de herramientas (hooks) y redirige tareas a los AiKA Modes de Portal, implementando la lógica de enrutamiento. SHUNT_MIN_LINES (configurable threshold for file size)
orchestration Bash Scripts Actúan como intermediarios entre Claude Code y la CLI de Portal, envolviendo las llamadas a los AiKA Modes y gestionando la entrada/salida.

Trade-offs

Ganancias
  • ▲▲ Reducción de costos de tokens de LLM
  • Uso eficiente de modelos de IA
  • Reusabilidad y compartibilidad de agentes (modos)
Costes
  • Aumento de latencia por delegación
  • Incapacidad de delegar edición de código con números de línea fiables
  • Incapacidad de delegar razonamiento complejo o depuración
name: bulk-reader
description: Bulk file reader for code analysis - delegates I/O from Claude Code
instructions: You are a precise code analyst. Read the provided files and answer the question concisely. Output structured bullets only. No greetings, no prose, no preambles. Lead every bullet with the exact name, type, or line number. Use nested bullets for details. Skip anything the caller did not ask for.
visibility: public
model: gemini-2.5-flash
resourceLimits:
temperature: 0.2
tags:
- coding
- delegation
Ejemplo de configuración declarativa para el modo 'bulk-reader', especificando nombre, descripción, instrucciones, visibilidad y modelo.
{
"env": {
"SHUNT_MIN_LINES": "500"
}
}
Configuración del umbral de líneas para el plugin 'shunt' en el archivo de configuración de Claude Code.

Fundamentos Teóricos

Este enfoque de enrutamiento de tareas y modelos se alinea con principios de sistemas distribuidos y optimización de recursos, donde la especialización de componentes y la delegación de cargas de trabajo son clave. Conceptualmente, se relaciona con el patrón de 'sharding' o 'partitioning' en bases de datos, donde las solicitudes se dirigen a nodos específicos basados en criterios para optimizar el rendimiento y el costo.

Aunque no hay un paper único que prediga directamente el enrutamiento de LLMs, la idea de 'mixture of experts' (MoE) en redes neuronales, popularizada por trabajos como 'Outrageously Large Neural Networks: The Sparsely-Gated Mixture-of-Experts Layer' (Shazeer et al., 2017), explora la activación condicional de subredes especializadas para diferentes entradas. Este sistema de Spotify extiende ese principio a un nivel arquitectónico, utilizando diferentes modelos de IA como 'expertos' para distintos tipos de tareas de desarrollo de software, optimizando así el uso de recursos computacionales y económicos en un contexto de sistemas distribuidos a gran escala.