Ir al contenido
angel.library

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.

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.

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-size bloquea las lecturas de más de 350 líneas (ajustable con SHUNT_MIN_LINES) y redirige al modo de lectura masiva.
  • check-bash-read caza el mismo intento por la puerta de atrás: cat, head, tail, less, more sobre 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.

ModoPara quéModeloInstrucción clave
bulk-readerLeer varios archivos grandes y responder una preguntaGemini 2.5 Flash, temperatura 0.2«Solo viñetas estructuradas. Sin saludos, sin prosa, sin preámbulo.»
code-writerGenerar salida predecible: tests, configuraciones, tiposGemini 2.5 Flash, temperatura 0.2Devolver solo el código, sin explicaciones

Ambos son configurables: el modelo no está fijado en el diseño, sino en el modo.

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.

Ventana de terminal
claude plugin marketplace add spotify/portal-ai-plugins
claude plugin install portal@portal
claude plugin install shunt@portal

Despué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.

  • 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.