33 puntos por GN⁺ 2026-03-18 | 2 comentarios | Compartir por WhatsApp
  • Organizaciones de ingeniería importantes como Stripe, Ramp y Coinbase han hecho converger de forma independiente sus agentes internos de programación hacia patrones de arquitectura similares, y Open SWE es un framework que implementa eso como open source
  • Está construido sobre Deep Agents y LangGraph, y ofrece componentes clave como sandboxes aislados en la nube, un conjunto curado de herramientas, orquestación de subagentes e integración con flujos de trabajo de desarrollo
  • Se construye mediante composición, sin hacer fork del agente existente, por lo que permite mantener al mismo tiempo las actualizaciones del framework base y la personalización de cada organización
  • Todos los componentes principales son intercambiables mediante plugins, incluidos proveedor de sandbox, modelo, herramientas, triggers, prompt del sistema y middleware
  • Ofrece bajo licencia MIT un punto de partida basado en patrones validados en producción para equipos que estén evaluando adoptar agentes de programación internos

Patrones comunes encontrados en despliegues en producción

  • Aunque fueron desarrollados de forma independiente, agentes de programación como Minions de Stripe, Inspect de Ramp y Cloudbot de Coinbase han convergido en decisiones arquitectónicas similares
  • Entorno de ejecución aislado: cada tarea se ejecuta en un sandbox dedicado en la nube con permisos completos dentro de límites estrictos. Esto aísla el alcance de errores sobre sistemas de producción y permite ejecutar comandos sin pedir aprobación en cada acción
  • Conjunto curado de herramientas: según el equipo de ingeniería de Stripe, el agente accede a cerca de 500 herramientas, pero no se acumularon con el tiempo, sino que fueron seleccionadas y mantenidas cuidadosamente. La curación importa más que la cantidad de herramientas
  • Invocación con prioridad en Slack: los tres sistemas integran Slack como interfaz principal, para que los desarrolladores puedan acceder desde su flujo de comunicación habitual sin cambiar de contexto a una aplicación nueva
  • Contexto rico desde el inicio: recuperan el contexto completo desde issues de Linear, hilos de Slack y PR de GitHub, y lo entregan antes de comenzar la tarea, reduciendo la sobrecarga de descubrir requisitos mediante llamadas a herramientas
  • Orquestación de subagentes: descomponen tareas complejas y las delegan a agentes hijos especializados, cada uno con contexto aislado y responsabilidades enfocadas

Arquitectura de Open SWE

  • 1. Agent harness: composición basada en Deep Agents

    • En lugar de hacer fork de un agente existente o construir uno desde cero, adopta un enfoque de composición sobre el framework Deep Agents. Es similar al enfoque del equipo de Ramp al construir Inspect sobre OpenCode
    • Dos ventajas de la composición:
      • Ruta de actualización: cuando Deep Agents mejora (mejor gestión de contexto, planeación más eficiente, uso optimizado de tokens), esas mejoras pueden incorporarse sin reconstruir las personalizaciones
      • Personalización sin forks: es posible mantener herramientas, prompts y flujos de trabajo de cada organización como configuración, en lugar de modificar la lógica central del agente
    • Infraestructura que aporta Deep Agents: planeación integrada mediante write_todos, gestión de contexto basada en archivos, creación nativa de subagentes con la herramienta task y hooks de middleware para orquestación determinista
  • 2. Sandbox: entorno aislado en la nube

    • Cada tarea se ejecuta en su propio sandbox aislado en la nube, un entorno Linux remoto con acceso completo al shell
    • Se clona el repositorio y se otorgan permisos completos al agente; los errores quedan aislados dentro de ese entorno
    • Proveedores de sandbox compatibles por defecto: Modal, Daytona, Runloop y LangSmith. También se puede implementar un backend propio de sandbox
    • Comportamientos clave:
      • Se asigna un sandbox persistente por cada hilo de conversación, reutilizable en mensajes posteriores
      • Si el sandbox deja de estar disponible, se vuelve a crear automáticamente
      • Varias tareas pueden ejecutarse en paralelo, cada una en su propio sandbox
  • 3. Herramientas: curación, no acumulación

    • Open SWE ofrece un conjunto enfocado de herramientas junto con las herramientas integradas de Deep Agents (read_file, write_file, edit_file, ls, glob, grep, write_todos, task)
    • Un conjunto pequeño y curado es más fácil de probar, mantener y razonar. Las herramientas adicionales de la organización (APIs internas, sistemas de despliegue personalizados, frameworks de pruebas especializados) pueden agregarse explícitamente
  • 4. Ingeniería de contexto: AGENTS.md + contexto fuente

    • El contexto se recopila desde dos fuentes:
      • Archivo AGENTS.md: si existe en la raíz del repositorio, se lee desde el sandbox y se inyecta en el prompt del sistema. Codifica convenciones, requisitos de pruebas, decisiones de arquitectura y patrones por equipo
      • Contexto fuente: se combina el issue completo de Linear (título, descripción, comentarios) o el historial del hilo de Slack y se entrega antes de iniciar el agente, proporcionando contexto específico de la tarea sin llamadas adicionales a herramientas
    • Es un enfoque de doble capa que combina de forma equilibrada conocimiento global del repositorio e información específica de la tarea
  • 5. Orquestación: subagentes + middleware

    • Combina dos mecanismos:
      • Subagentes: crea agentes hijos con la herramienta task. El agente principal delega subtareas independientes a subagentes aislados con su propia pila de middleware, lista de pendientes y operaciones de archivos
      • Middleware: hooks deterministas que se ejecutan alrededor del loop del agente
        • check_message_queue_before_model: inyecta antes de la siguiente llamada al modelo los mensajes de seguimiento que llegaron mientras el agente estaba trabajando (comentarios en Linear, mensajes de Slack). Esto permite entradas adicionales del usuario durante la ejecución
        • open_pr_if_needed: una red de seguridad que hace commit y crea el PR automáticamente si el agente no logra abrirlo por sí mismo
        • ToolErrorMiddleware: captura y maneja errores de herramientas de forma elegante
    • Separar la orquestación agéntica (impulsada por el modelo) de la determinista (impulsada por middleware) permite lograr un equilibrio entre confiabilidad y flexibilidad
  • 6. Invocación: Slack, Linear, GitHub

    • Slack: mención al bot dentro de un hilo. La sintaxis repo:owner/name especifica el repositorio sobre el que se trabajará. El agente responde en el hilo con actualizaciones de estado y enlaces al PR
    • Linear: comentario con @openswe en un issue. El agente lee todo el contexto del issue, confirma con 👀 y publica el resultado como comentario
    • GitHub: procesa retroalimentación de revisión con la etiqueta @openswe en comentarios de PR generados por el agente y sube correcciones a la misma rama
    • Cada invocación genera un ID de hilo determinista, de modo que los mensajes posteriores del mismo issue o hilo se enrutan al mismo agente en ejecución
  • 7. Verificación: basada en prompts + red de seguridad

    • Se le indica al agente ejecutar linter, formatter y pruebas antes de hacer commit
    • El middleware open_pr_if_needed funciona como respaldo: si el agente termina sin abrir un PR, el middleware se encarga automáticamente
    • Las verificaciones deterministas de CI, validación visual y compuertas de revisión pueden extenderse con middleware adicional

Por qué usar Deep Agents

  • Gestión de contexto: descarga a memoria basada en archivos la gran cantidad de datos intermedios que generan las tareas de programación de larga duración (contenido de archivos, salida de comandos, resultados de búsqueda), sin mantener todo en el historial de conversación. Es efectivo para evitar desbordamientos de contexto en bases de código grandes
  • Bloques básicos de planeación: la herramienta integrada write_todos estructura la descomposición de tareas complejas, el seguimiento del progreso y la adaptación del plan según nueva información. Es especialmente útil para tareas multietapa de larga duración
  • Aislamiento de subagentes: cuando el agente principal crea agentes hijos con la herramienta task, les da contexto aislado. Como el historial de conversación de subtareas distintas no se contamina entre sí, se logra un razonamiento más claro en trabajos complejos
  • Hooks de middleware: permiten inyectar lógica determinista en puntos específicos del loop del agente. Se usan para implementar acciones que deben ejecutarse de manera confiable, como inyección de mensajes y creación automática de PR
  • Ruta de actualización: como Deep Agents se desarrolla activamente como biblioteca independiente, las mejoras en compresión de contexto, caché de prompts, eficiencia de planeación y orquestación de subagentes pueden reflejarse en Open SWE sin reconstruir personalizaciones

Personalización por organización

  • Open SWE está diseñado no como un producto terminado, sino como una base personalizable. Todos los componentes principales son intercambiables mediante plugins:
    • Proveedor de sandbox: se puede cambiar entre Modal, Daytona, Runloop y LangSmith. También es posible implementar un backend de sandbox propio que se ajuste a requisitos internos de infraestructura
    • Modelo: se puede usar cualquier proveedor de LLM. El valor predeterminado es Claude Opus 4, y se pueden configurar modelos distintos por subtarea
    • Herramientas: se pueden agregar herramientas para APIs internas, sistemas de despliegue, frameworks de pruebas y plataformas de monitoreo. También se pueden eliminar herramientas innecesarias
    • Triggers: se puede modificar la lógica de integración con Slack, Linear y GitHub. También se pueden agregar nuevas superficies de activación, como correo electrónico, webhooks o interfaces de usuario personalizadas
    • Prompt del sistema: se puede personalizar el prompt base y la lógica que incorpora archivos AGENTS.md. Se pueden agregar lineamientos, restricciones y convenciones de cada organización
    • Middleware: se pueden agregar hooks propios para validación, compuertas de aprobación, logging y verificaciones de seguridad

Comparación con implementaciones internas

  • Al compararlo con los sistemas internos de Stripe, Ramp y Coinbase con base en la información pública disponible, los patrones centrales son similares
  • Las diferencias están en los detalles de implementación, las integraciones internas y las herramientas específicas de cada organización, que son justamente las diferencias esperables al adaptar el framework a otros entornos

Cómo empezar

  • Open SWE está disponible en GitHub bajo licencia MIT: https://github.com/langchain-ai/open-swe
  • La Installation Guide explica cómo crear la GitHub App, configurar LangSmith, activar triggers de Linear/Slack/GitHub y hacer el despliegue en producción
  • La Customization Guide muestra cómo reemplazar sandbox, modelo, herramientas, triggers, prompt del sistema y middleware
  • Se puede hacer fork, personalizar e implementar internamente

2 comentarios

 
sea715 2026-03-18

Parece que todos piensan más o menos parecido... de verdad esto está en plena era de los Reinos Combatientes.

 
xguru 2026-03-18

Ahora todos están creando agentes de programación internos, así que terminaron haciendo también un framework para eso. Qué rápido va todo.

Más que usar esto sí o sí, también parece buena idea echarle un vistazo a los patrones de varias empresas que tomaron como referencia internamente.