01 Puntos clave
Aquí hay algunos puntos clave que Alex descubrió después de organizar agentes de IA en estructuras similares a empresas como Apple, Microsoft, Google, etc.:
-
Las empresas con múltiples equipos "competidores" (es decir, compitiendo para producir el mejor producto final), como Microsoft y Apple, superaron a las estructuras jerárquicas centralizadas.
-
Los sistemas con puntos únicos de fallo (como un líder tomando decisiones importantes), como Google, Amazon y Oracle, tuvieron un desempeño deficiente.
-
Las estructuras organizativas de las grandes empresas tecnológicas tuvieron un impacto moderado pero notable en las capacidades de resolución de problemas.
02 Agentes de IA y organizaciones de gigantes tecnológicos
Los métodos anteriores de simplemente aumentar el número de agentes de IA para mejorar el rendimiento, como SWE-bench, no lograron resultados significativos.
Esto sugiere que confiar únicamente en aumentar los números no puede resolver el problema.
Entonces, ¿qué otros métodos pueden hacer que los agentes de IA sean mejores en ingeniería de software?
Hace tres semanas, Alex vio por casualidad un artículo de James Huckle sobre la "Ley de Conway" - la arquitectura del software y del producto está destinada a reflejar la estructura organizativa que la creó.
James mostró una ilustración que revelaba las estructuras organizativas dramatizadas de Amazon, Google, Facebook, Microsoft, Apple y Oracle, y propuso una idea:
Al igual que los humanos en las grandes empresas tecnológicas, las estructuras de comunicación de múltiples agentes pueden dar forma a los enfoques de resolución de problemas.
Inspirado por esto, Alex decidió probar la hipótesis de James en instancias de SWE-bench.
03 Configuración experimental
El autor organizó agentes de IA en diferentes estructuras empresariales y evaluó seis estructuras organizativas diferentes en el subconjunto "mini" de 13 instancias de SWE-bench-lite.
Al construir estas seis organizaciones, diseñó estructuras organizativas de múltiples agentes basadas en algunas observaciones fundamentales:
Amazon
Un árbol binario con un "gerente" en la cima.
Para replicar esta estructura, Alex utilizó un gran número de agentes realizando búsquedas en el repositorio de código, y un solo agente ejecutando actualizaciones finales del repositorio de código.
Una estructura de árbol similar a Amazon, pero con más conexiones entre las capas intermedias.
Alex replicó esto agregando todos los resultados de los agentes dentro de una sola capa y pasándolos a los agentes en la siguiente capa.
Meta (Facebook)
Carece de estructura jerárquica, pero sigue siendo una organización en malla con muchas conexiones entre agentes.
Alex modificó el diseño original del agente aumentando la posibilidad de transiciones entre diferentes agentes.
Microsoft
Enfatiza equipos competidores, cada uno con su propia jerarquía.
Esencialmente, Alex reajustó la estructura de Amazon (reduciendo el número de agentes) y utilizó un método de votación de similitud vectorial para seleccionar la "mejor" solución de tres ejecuciones separadas (cada ejecución ajustando ligeramente la estructura jerárquica).
Apple
Muchos equipos pequeños compitiendo, cada uno con su propia estructura mínima.
Alex utilizó el mismo enfoque de "mejor solución" que Microsoft, pero con más ejecuciones sin jerarquías de agentes (cada ejecución teniendo diferentes transiciones).
Oracle
Tiene dos equipos distintos, un árbol binario "legal" más grande y un árbol de ingeniería más pequeño.
Alex interpretó el equipo legal como agentes buscando en el repositorio de código y recuperando contexto clave, mientras que el equipo de ingeniería consistía en agentes que realmente escribían código.
Las estructuras de ambos equipos son similares a Amazon, con un solo agente en la cima coordinando la transferencia de información entre "legal" e "ingeniería".
04 Resultados de la evaluación
Para evaluar cada conjunto de parches en SWE-bench, el autor utilizó la evaluación de SWE-bench.
Los resultados son los siguientes:
Análisis de rendimiento del organigrama
Aquí están algunas de las observaciones del autor sobre cómo las diferentes estructuras empresariales afectan el rendimiento:
- Los equipos competitivos aumentan las posibilidades de éxito.
Los dos mejores ejecutantes (Microsoft y Apple) tenían múltiples equipos compitiendo para resolver problemas, mientras que otras empresas parecían tener solo un equipo enorme generando un solo parche.