Portal de Spotify — enrutar el trabajo de E/S fuera del modelo caro
Artículo de Dimitri Mazmanov (Principal Product Manager) en el blog de ingeniería de Spotify, publicado el 3 de septiembre de 2026. Los plugins que describe son públicos, con licencia Apache-2.0, en spotify/portal-ai-plugins.
El punto de partida es un dato incómodo: los responsables de ingeniería gastan hoy entre 200 y 500 dólares al mes por desarrollador en tokens, y algunos superan los 2.000. La proyección del artículo es que hacia 2028 el coste de las herramientas de IA supere al salario medio de un desarrollador.
La observación que cambia el enfoque es más interesante que el gasto: «la mayor parte de lo que un agente de programación hace por mí no es pensar. Es E/S». Leer diez archivos para responder una pregunta, generar tests repetitivos o actualizar documentación no necesita un modelo de frontera; consume su contexto igual.
La idea
Sección titulada «La idea»En lugar de reducir el uso del agente, se clasifica cada tarea antes de decidir qué modelo la ejecuta. Las tareas de entrada/salida se desvían a modelos más baratos y el modelo caro se reserva para razonar: depurar, decidir arquitectura, revisar código sensible.
Spotify lo implementa sobre Portal, su plataforma interna, cuyos AiKA Modes son agentes declarativos en tiempos de ejecución efímeros —la comparación del artículo es «Lambda para cargas de IA»—: se definen instrucciones, modelo, parámetros y herramientas MCP sin gestionar infraestructura ni claves.
Las tres capas del enrutador
Sección titulada «Las tres capas del enrutador»El plugin de Claude Code se llama shunt y funciona en tres niveles:
1. Hooks. Interceptan la operación antes de que ocurra, con PreToolUse:
check-file-sizebloquea las lecturas de más de 350 líneas (ajustable conSHUNT_MIN_LINES) y redirige al modo de lectura masiva.check-bash-readcaza el mismo intento por la puerta de atrás:cat,head,tail,less,moresobre archivos grandes.
2. Scripts. Dos envoltorios en bash que llaman al CLI de Portal: bulk-read manda varios archivos con una pregunta, y code-write manda una especificación con archivos de referencia.
3. Skills. Documentación en Markdown que le enseña al agente cuándo y cómo invocar esos scripts. La capa que evita tener que recordarlo a mano.
Los dos modos
Sección titulada «Los dos modos»| Modo | Para qué | Modelo | Instrucción clave |
|---|---|---|---|
bulk-reader | Leer varios archivos grandes y responder una pregunta | Gemini 2.5 Flash, temperatura 0.2 | «Solo viñetas estructuradas. Sin saludos, sin prosa, sin preámbulo.» |
code-writer | Generar salida predecible: tests, configuraciones, tipos | Gemini 2.5 Flash, temperatura 0.2 | Devolver solo el código, sin explicaciones |
Ambos son configurables: el modelo no está fijado en el diseño, sino en el modo.
El resultado medido
Sección titulada «El resultado medido»Sobre un monorepo de Java, la lectura masiva ahorró de media cerca del 90% de los tokens que Claude habría consumido. El segundo caso es más difícil de medir con honestidad, y el artículo lo dice: el código generado nunca entra en el contexto del agente porque se escribe directamente en disco.
Replicarlo
Sección titulada «Replicarlo»claude plugin marketplace add spotify/portal-ai-pluginsclaude plugin install portal@portalclaude plugin install shunt@portalDespués, /portal:setup dentro de Claude Code para autenticarse contra una instancia de Portal, y SHUNT_MIN_LINES en el perfil del shell o en .claude/settings.json para mover el umbral de líneas.
Qué mirar de cerca
Sección titulada «Qué mirar de cerca»- Necesita Portal. Los flujos llaman al CLI (
npx @spotify/portal-cli) contra una instancia de Portal. Los plugins son públicos y Apache-2.0, pero no funcionan sueltos. - Lo que no se puede delegar. Editar no: los resúmenes no traen números de línea fiables. Tampoco razonar ni analizar código crítico para la seguridad.
- La latencia manda. Cada delegación cuesta entre 10 y 30 segundos de red, así que desviar archivos pequeños sale peor que leerlos.
- La idea sí es portable. Aunque no tengas Portal, las dos piezas que se pueden copiar hoy son el hook que bloquea lecturas grandes antes de que ocurran y el criterio de fondo: enrutar por tipo de tarea, no por modelo favorito.