Alexei Rojas Quiroga
← Todos los proyectos

Proyecto corporativo · Presentado sin referencias a la empresa: solo arquitectura y decisiones.

Plataforma agéntica de entrega de software

Máquina de estados que coordina agentes de IA del backlog al PR aprobado

Estado
En producción
Rol
Ingeniero líder y arquitecto: máquina de estados de flujos, gateway de LLM, integración de seguridad de prompts, superficie de herramientas MCP, memoria vectorial, diseño del indexador, portal y forma de despliegue.

Arquitectura

  • 4 agentes de IA por rol
  • Máquina de estados persistida con leases
  • Aprobaciones humanas
  • Del work item al pull request aprobado

Una señal de listo crea una ejecución persistida; el orquestador despacha definición, planificación de QA, aprobación de plan, desarrollo, revisión y retrabajo, luego publica un pull request, vigila el CI y espera aprobación humana.

Arquitectura · 9 nodos · 2 flujos
LO QUE CONSTRUÍAzure DevOpsSeguimiento yrepositoriosItems, ramas, PRsTeams botBot de chat delequipoComandos y tarjetas deaprobaciónReact/SignalRPortal de agentesVista en vivo yaprobacionesCouchbaseAlmacén deejecuciones yleasesEjecuciones, trabajo,leases.NET 10Orquestador deflujoMáquina de estadospersistidaLLM agentAgente de revisiónRevisión adversarial dePRLLM agentAgente dedefiniciónRedacta items listospara IALLM agentAgente de QAPlanes y suites depruebaLLM agentAgente dedesarrolloPlanifica, programa,prueba123456789
  • Servicio / cómputo
  • Almacén de datos
  • Cliente
  • Sistema externo
  • Síncrono
  • Asíncrono / bucle
Desplázate hacia los lados para ver todo el diagrama

Cómo fluye, paso a paso

Haz clic en un paso para saltar a él. Haz clic en un componente para ver detalles.

Qué hace

Plataforma interna que convierte ítems de un sistema de seguimiento de trabajo en pull requests revisados, coordinando agentes de IA especializados en requisitos, planificación de QA, desarrollo, revisión adversarial y reparación de CI. Un gateway de LLM multi-proveedor con capa de seguridad de prompts, un servidor MCP con herramientas acotadas, memoria vectorial y un indexador código a grafo forman la infraestructura compartida, con aprobación humana en cada paso crítico.

El problema

Los equipos querían entrega asistida por LLM pero no podían permitir que los agentes hablaran directo con los proveedores, filtraran datos sensibles en prompts, tuvieran acceso irrestricto al repositorio o al backlog, ni perdieran trabajo cuando una ejecución larga fallaba. El reto era volver auditable, reanudable y gobernado el comportamiento de los agentes, en lugar de una cadena de prompts ad hoc.

Qué construí

  • Diseñé una máquina de estados persistida (requisitos, planificación de QA, aprobación de plan, desarrollo, revisión, retrabajo, publicación de PR, monitoreo y reparación de CI, aprobación humana) con colas de trabajo pendientes durables, leases y recuperación, de modo que las ejecuciones sobreviven reinicios y retoman exactamente donde se detuvieron.
  • Construí un gateway de LLM multi-proveedor con enrutamiento por rol, límites de tasa por rol, fallback entre proveedores con circuit breaker, continuación automática de respuestas truncadas, monitoreo de salud con alertas operativas y auditoría completa con archivado opcional de payloads.
  • Integré Cerberus, una capa de seguridad de prompts en proceso, guiada por reglas de detección compartidas, que bloquea secretos, credenciales y datos personales o de pago antes de que cualquier solicitud salga del límite de confianza.
  • Implementé un servidor MCP con herramientas de mínimo privilegio para lectura y etiquetado de ítems, operaciones de ramas, archivos y pull requests, consultas al grafo de código, memoria vectorial y ejecución de pruebas, con permisos por rol y registros de auditoría aplicados en tiempo de ejecución.
  • Creé un indexador basado en Roslyn que emite un grafo estructural inmutable, direccionado por commit, de proyectos, tipos, miembros y referencias, dando al planificador y al agente de desarrollo contexto de código preciso en lugar de volcados de archivos.
  • Aislé la ejecución de código en un worker de workspace en contenedor que clona, edita, compila y prueba repositorios, además de un runner de pruebas de navegador que produce evidencia, todo tras puertas de aprobación para comandos riesgosos.
  • Entregué un portal en tiempo real que muestra el ciclo de vida, la actividad en vivo de los agentes, las puertas y el historial de ejecuciones, con aprobaciones y aclaraciones disponibles tanto en el portal como en tarjetas de chat.

Decisiones clave y por qué

01

El agente no es el modelo y el gateway no es el agente

El estado del flujo, las herramientas y la memoria viven en el orquestador y los runtimes de agentes; el gateway solo ofrece acceso al modelo seguro, auditado y enrutado, y no sabe nada de ítems ni ramas. Así cada responsabilidad es reemplazable y el gateway reutilizable por cualquier cliente.

02

Máquina de estados durable con leases en lugar de bucles en memoria

Las ejecuciones con LLM son largas, frágiles y costosas. Persistir la fase, el trabajo pendiente y el lease permite recuperación tras caídas, reintentos programados ante fallos de proveedor y estacionar ejecuciones que requieren decisión humana, para luego reanudar la misma transcripción y plan.

03

Seguridad de prompts como compuerta previa en proceso

Escanear con Cerberus antes del enrutamiento garantiza que el contenido sensible nunca llegue a un proveedor externo, sin salto de red adicional. Las reglas son datos compartidos, por lo que evolucionan sin redesplegar el gateway.

04

Roles y proveedores separados para constructor y revisor

Un revisor adversarial con otro rol, y preferiblemente otro modelo, reduce puntos ciegos correlacionados. Los hallazgos regresan al agente de desarrollo como retrabajo estructurado, con un número acotado de iteraciones antes de escalar a una persona.

05

Herramientas impuestas por el servidor MCP, no por texto del prompt

Los permisos por rol de agente, las reglas de ramas protegidas y la nomenclatura de ramas se validan en el servidor y no existe una herramienta genérica de mutación. Un prompt comprometido o confundido no puede exceder su autoridad.

06

Grafo de código inmutable direccionado por commit

Identidades de símbolo estables (hash de repositorio, nombre calificado y firma) y generaciones por commit hacen la recuperación de contexto reproducible y barata, y permiten fusionar repositorios multi-solución en un único índice.

Stack tecnológico

Lenguajes
C#TypeScript
Backend
.NET 10ASP.NET CoreRoslyn
IA
Model Context Protocol (MCP)OpenAIAnthropicSelf-hosted LLMEmbeddings (OpenAI / Voyage)
Datos
QdrantCouchbase
Nube
Azure Blob StorageAzure Key Vault
DevOps
Azure DevOpsDocker
Otros
Microsoft Teams bot
Frontend
ReactSignalR
Pruebas
Playwright

Historia del proyecto

Abrir en pantalla completa

Historia del proyecto

Plataforma agéntica de entrega de software

Gira el teléfono o abre en pantalla completa para ver la historia

Abrir en pantalla completa

Haz clic o usa las flechas para avanzar