Mirage: Un sistema de archivos virtual unificado para agentes de IA

Mirage simplifica el desarrollo de agentes de IA al montar fuentes de datos dispares como S3, Slack y GitHub en un único sistema de archivos virtual compatible con bash.

Construir agentes de IA que puedan interactuar con datos del mundo real a menudo se siente como una pesadilla fragmentada. Terminas haciendo malabares con una docena de SDK diferentes, gestionando la autenticación para cada servicio y escribiendo código de integración personalizado solo para que un agente lea un archivo de S3 y publique un resumen en Slack.

Mirage cambia el paradigma al tratar cada backend como parte de un único sistema de archivos virtual (VFS) unificado. En lugar de enseñar a tu agente cómo usar la API de Slack, la API de GitHub y el SDK de S3, simplemente los montas como directorios. Tu agente puede entonces usar las herramientas de Unix que ya conoce —ls, cat, grep, cp— para interactuar con toda la pila.

Por qué importa Mirage

Los LLM modernos están entrenados en enormes corpus de código y documentación, lo que los hace increíblemente fluidos en bash y en la semántica del sistema de archivos. Al abstraer los servicios remotos en un sistema de archivos, Mirage aprovecha este "conocimiento" existente para minimizar las alucinaciones y los errores específicos de la API.

Los beneficios clave incluyen:

  • Abstracción unificada: Ya sea Google Drive, Redis o un directorio local, todo se ve como un árbol de archivos estándar.
  • Nativo de Bash: Los agentes utilizan herramientas de línea de comandos estándar para realizar operaciones complejas entre servicios.
  • Espacios de trabajo portátiles: Puedes crear una instantánea de todo tu entorno (incluyendo el estado de los datos remotos) en un solo archivo, haciendo que las ejecuciones de los agentes sean reproducibles y fáciles de depurar.
  • Independiente del framework: Se integra perfectamente con OpenAI Agents SDK, Vercel AI SDK, LangChain y Pydantic AI.

Cómo funciona

Mirage actúa como una capa de middleware entre tu agente y tu infraestructura. Utiliza un despachador y un sistema de caché de dos capas para garantizar que las interacciones de tu agente sean eficientes y fiables.

La capa de caché

Consultar repetidamente las API remotas es lento y costoso. Mirage implementa una robusta caché de dos capas:

  1. Caché de índice: Almacena listados de directorios y metadatos. Los comandos ls o find posteriores consultan el índice local hasta que expira el TTL (Time-To-Live).
  2. Caché de archivos: Almacena los bytes de los objetos. La primera lectura se transmite desde el origen, mientras que las lecturas posteriores se sirven desde la caché local.

Puedes configurarlos para usar RAM para tareas efímeras o Redis para entornos persistentes con múltiples trabajadores:

const ws = new Workspace(
  { '/s3': new S3Resource({ bucket: 'my-bucket' }) },
  {
    cache: new RedisFileCacheStore({ url: 'redis://localhost:6379/0', limit: '8GB' }),
    index: new RedisIndexCacheStore({ url: 'redis://localhost:6379/0', ttl: 600 }),
  }
);

Primeros pasos

Mirage proporciona SDK tanto para Python como para TypeScript, lo que facilita su integración en tus aplicaciones FastAPI o Express existentes.

Ejemplo rápido en Python

from mirage import Workspace
from mirage.resource.s3 import S3Resource
from mirage.resource.ram import RAMResource

# Montar múltiples fuentes
ws = Workspace({
    "/data": RAMResource(),
    "/s3": S3Resource(bucket="my-logs")
})

# Realizar operaciones entre servicios
await ws.execute("cp /s3/report.csv /data/local.csv")
await ws.execute("grep 'error' /data/local.csv | wc -l")

Por qué deberías usarlo

Si estás construyendo agentes autónomos, es probable que estés dedicando demasiado tiempo a escribir lógica de "llamada a herramientas" que mapea el lenguaje natural a llamadas API específicas. Mirage te permite definir un espacio de trabajo una vez y dejar que el agente navegue por él de forma natural.

Al usar Mirage, no solo estás construyendo un agente; estás construyendo un entorno reproducible. Debido a que el espacio de trabajo puede ser capturado en una instantánea, puedes tomar una ejecución fallida del agente, exportar la instantánea demo.tar e inspeccionar exactamente lo que el agente vio en el momento del fallo.

Para los desarrolladores que trabajan con Claude Code o agentes similares basados en CLI, Mirage proporciona un demonio ligero que permite a estos agentes acceder a tu infraestructura en la nube como si fuera una carpeta local, ampliando significativamente su utilidad sin requerir definiciones de herramientas personalizadas para cada servicio.

Fuente

strukto-ai/mirage: Un sistema de archivos virtual unificado para agentes de IA