El blog de Deska

Un agente por servicio en un stack local

Aprende a gestionar arquitecturas de microservicios complejas desplegando un agente por servicio en un stack local para mejorar la autonomía y el debugging.

· 11 min de lectura

La gestión de una arquitectura de microservicios en una sola máquina de desarrollo suele provocar una sobrecarga cognitiva. A medida que aumenta el número de repositorios independientes, bases de datos y protocolos de comunicación, resulta imposible mantener todo el estado del sistema en la cabeza. Un patrón arquitectónico moderno para solucionar esto consiste en desplegar un agente por servicio en un stack local, donde se asignan asistentes de programación con IA especializados a contextos delimitados específicos en lugar de usar una única ventana de chat monolítica. Este enfoque garantiza que cada servicio tenga un observador y un asistente dedicado que comprenda su entorno específico, sus dependencias y sus logs sin contaminar el contexto de otros servicios.

El problema del contexto de IA monolítico

Cuando los desarrolladores trabajan en sistemas distribuidos, normalmente interactúan con las herramientas de IA a través de una única ventana de contexto global. Si estás depurando una solicitud que fluye a través de un Gateway, un servicio de Auth y un servicio de Facturación, un solo agente suele tener dificultades para seguir la pista de tres conjuntos diferentes de documentación, variables de entorno y flujos de logs.

Los complementos estándar de los IDE suelen indexar todo el espacio de trabajo. Aunque esto es útil para proyectos pequeños, crea ruido en los microservicios. El agente podría sugerir una corrección para el servicio de Facturación utilizando una librería que solo está disponible en el servicio de Auth. Al aislar a tus asistentes de IA, creas un reflejo de la propia filosofía de los microservicios: alta cohesión y bajo acoplamiento.

Beneficios del patrón de un agente por servicio

El objetivo principal de esta estrategia es proporcionar a cada microservicio su propio "cerebro" que permanezca enfocado en un dominio específico. Esto imita la forma en que se estructuran los equipos en las grandes organizaciones, donde un equipo es dueño del ciclo de vida de un solo componente.

  • Pureza contextual: Cada agente solo ve los archivos, las pruebas y las configuraciones pertinentes para el servicio asignado.
  • Ejecución en paralelo: Puedes pedirle al agente de Auth que refactorice un middleware mientras pides simultáneamente al agente de Facturación que genere una nueva migración de base de datos.
  • Monitoreo de logs: Los agentes dedicados pueden vigilar salidas de terminal específicas en busca de errores, lo que te permite identificar qué servicio falló durante una prueba de integración sin tener que filtrar un archivo de logs combinado masivo.
  • Gestión de recursos: Los agentes locales pueden iniciarse o detenerse en función de qué parte del stack estés tocando en ese momento.

Implementación de agentes distribuidos localmente

Para que este patrón funcione, necesitas un espacio de trabajo que admita múltiples sesiones simultáneas. Los editores de código tradicionales suelen estar optimizados para un único proyecto activo. Los desarrolladores suelen recurrir a abrir múltiples ventanas, lo que dificulta ver la interacción entre los servicios.

Aquí es donde un espacio de trabajo dedicado como Deska resulta útil. La herramienta proporciona un canvas infinito donde puedes colocar varios paneles en cualquier lugar y alejar el zoom para ver todo el sistema a la vez. En lugar de cambiar de pestaña, puedes organizar tu espacio de trabajo de modo que cada microservicio tenga su propia zona dedicada.

Zonas dedicadas para cada servicio

Una zona típica para un solo servicio en tu stack local podría incluir:

  1. Una terminal que ejecute el servicio en modo watch.
  2. Un editor de código basado en Monaco centrado en el repositorio del servicio.
  3. Un panel de agente de programación con IA configurado específicamente para ese directorio.
  4. Un panel de navegador que muestre el health check o la UI de Swagger para esa API específica.

Al organizar el workspace de esta manera, creas un mapa visual de tu arquitectura. Si notas un error 500 en la zona del Gateway, puedes mirar inmediatamente la zona adyacente para ver si el servicio aguas abajo informó de un tiempo de espera agotado.

Comparativa de herramientas para la orquestación de agentes locales

Diferentes herramientas manejan los agentes de IA locales con distintos grados de flexibilidad. Algunas se centran en una integración profunda con un solo editor, mientras que otras priorizan el entorno del espacio de trabajo.

CaracterísticaPlugins de IDE integradosAgentes basados en CLIEspacio de trabajo de Deska
Alcance del contextoTodo el proyectoEspecífico del directorioEspecífico del panel
Diseño de la UIBarra lateral únicaSolo terminalCanvas infinito
Concurrencia de agentesA menudo limitadaAlta (múltiples ventanas)Alta (lado a lado)
Enfoque local-firstAltoAltoAlto

Los plugins integrados destacan en el autocompletado y en ediciones de un solo archivo. Los agentes basados en CLI como Claude Code o Codex CLI proporcionan interacciones potentes dirigidas desde la terminal. Deska permite ejecutar estos agentes de programación lado a lado como paneles dentro de un único entorno visual, combinando la potencia de los agentes de CLI con la visibilidad de una interfaz gráfica.

Aprovechando Ask Deska para la coordinación entre servicios

Aunque tener un agente por servicio es excelente para el aislamiento, todavía necesitas una forma de coordinar todo el stack. Cuando necesitas ejecutar un comando global o comprobar el estado de todas las sesiones, se requiere un coordinador central.

La función Ask Deska actúa como un asistente de voz y chat que puede dirigir todo el espacio de trabajo. Puede ejecutar comandos en diferentes paneles o ayudarte a navegar entre las diferentes zonas de servicio que hayas creado. Esto cierra la brecha entre los agentes de servicio aislados y la necesidad de una orquestación de alto nivel.

Monitoreo de tu stack de forma remota

Un desafío común con los stacks locales complejos es la imposibilidad de alejarse de la máquina durante tareas de larga duración, como las compilaciones iniciales o las pruebas de integración exhaustivas. Si estás ejecutando múltiples agentes y servicios, es posible que desees monitorear su progreso sin estar atado a tu escritorio.

La aplicación mobile de Deska te permite monitorear tu trabajo a través de un relay seguro. Debido a que los dispositivos se emparejan directamente, no se exponen puertos a la internet pública, manteniendo la seguridad de tu entorno local-first. Puedes comprobar si el agente terminó la refactorización o si el servicio se reinició correctamente, todo desde tu teléfono.

Seguridad y privacidad en despliegues de agentes locales

Al utilizar agentes de IA, la privacidad de los datos es una preocupación importante para muchos desarrolladores. El patrón de "Un agente por servicio" funciona mejor cuando mantienes el control sobre tus datos y el uso de las API.

  1. Almacenamiento local-first: Mantén tu código, archivos e historial de sesiones en tu propia máquina.
  2. BYOK (Trae tu propia llave): Usa tus propias llaves de API para la inferencia para asegurar que solo pagas por lo que usas y mantienes tus datos dentro de tus propios acuerdos con los proveedores.
  3. Emparejamiento directo: Evita los intermediarios en la nube para la comunicación entre dispositivos para prevenir fugas de datos.

Deska sigue estos principios asegurando que la privacidad sea una prioridad. El espacio de trabajo en sí es gratuito, y puedes elegir entre traer tus propias llaves o usar inferencia gestionada si prefieres un modelo de suscripción.

FAQ

¿Cómo ejecutar múltiples agentes de IA localmente?

La mejor forma de ejecutar múltiples agentes localmente es utilizando un espacio de trabajo que admita paneles de terminal o de agente concurrentes. Puedes asignar cada panel a un directorio diferente en tu stack de microservicios, permitiendo que cada agente opere dentro de su propio contexto delimitado.

¿Cuál es la mejor forma de depurar microservicios en un stack local?

La forma más efectiva es visualizar los servicios lado a lado. Utiliza un canvas para colocar logs, código y agentes especializados para cada servicio en proximidad cercana. Esto te permite rastrear visualmente las solicitudes a través de los diferentes componentes de tu arquitectura.

¿Son seguros los agentes de programación con IA para bases de código privadas?

La seguridad depende de la arquitectura de la herramienta. Busca aplicaciones local-first que no almacenen tu código en sus servidores. El uso de tus propias llaves de API también te da más control sobre cómo manejan tus datos los proveedores de LLM subyacentes.

Primeros pasos con un espacio de trabajo distribuido

La transición a un modelo de agentes distribuidos requiere un cambio en la forma de ver tu entorno de desarrollo. En lugar de un único editor de texto, piensa en tu espacio de trabajo como un centro de control de misión para tus microservicios. Esta configuración reduce la carga mental del cambio de contexto y te permite aprovechar todo el poder de los asistentes de IA modernos sin la confusión de los contextos mezclados.

Para empezar a construir tu propio espacio de trabajo con agentes distribuidos, puedes descargar la aplicación Deska para Mac, Windows o Linux y empezar a organizar tus servicios en el canvas infinito. Al darle a cada servicio su propio agente y espacio dedicado, puedes concentrarte en construir mejor software en lugar de gestionar la complejidad de tu stack.

💡 Ideas+🐛 BugsPropón una feature o reporta un bug