Descripción
Oscar, una arquitectura de agente contribuyente de código abierto, es un proyecto centrado en mejorar el desarrollo de software de código abierto mediante la creación de agentes automatizados para el mantenimiento de proyectos. La creencia fundamental es que se puede reducir una carga de trabajo significativa en el mantenimiento de proyectos de código abierto, tanto grandes como pequeños. Los Modelos de Lenguaje Grandes (LLM) ofrecen nuevas posibilidades para que los agentes interactúen sin problemas con las personas a través del análisis semántico del lenguaje natural, como informes de incidencias e instrucciones de mantenedores, y convirtiendo instrucciones de lenguaje natural en código de programa. Si bien los LLM son un componente crítico, la mayoría de las acciones de un agente implicarán la ejecución de código estándar y determinista. A diferencia de muchos usos de LLM centrados en el desarrollo, Oscar no tiene como objetivo aumentar o reemplazar el proceso de escritura de código. En cambio, se centra en los aspectos menos atractivos del mantenimiento, como el procesamiento de incidencias entrantes, la correspondencia de preguntas con la documentación existente y tareas similares.
Oscar es fundamentalmente un experimento, cuya dirección futura y aprendizajes aún no se han determinado por completo. El prototipo inicial, el bot @gabyhelp, ya ha demostrado numerosas interacciones exitosas dentro del rastreador de incidencias de Go. Actualmente desarrollado bajo el proyecto Go, Oscar podría potencialmente ser escindido en un proyecto separado en el futuro. Los objetivos concretos del proyecto incluyen reducir el esfuerzo de los mantenedores en la resolución de incidencias y listas de cambios (CLs/pull requests), disminuir el esfuerzo requerido para abordar preguntas de foros y permitir que más personas se conviertan en mantenedores productivos. Un objetivo clave no es automatizar la codificación; el enfoque sigue siendo automatizar la carga de trabajo de los mantenedores.
El enfoque se centra en construir una arquitectura reutilizable y extensible que cualquier proyecto de software pueda adaptar para crear agentes personalizados. Oscar tiene como objetivo abordar la carga de trabajo de los mantenedores, que no es exclusiva del proyecto Go. Las capacidades identificadas clave incluyen indexar y presentar el contexto relevante del proyecto durante las interacciones de los contribuyentes, usar lenguaje natural para controlar herramientas deterministas y analizar informes de incidencias, CLs/PRs y discusiones grupales para mejorarlos en tiempo real, etiquetarlos y dirigirlos adecuadamente. Los LLM son integrales para estas capacidades debido a su fortaleza en el procesamiento del lenguaje natural, mientras que el código determinista maneja la ejecución. El proyecto enfatiza el uso de LLM para el análisis semántico y la traducción de lenguaje natural a programa, confiando en código determinista para el resto.
Una capacidad crucial es indexar y presentar el contexto relacionado del proyecto. Los proyectos de software son complejos y los mantenedores no siempre pueden retener todos los detalles relevantes. Oscar utiliza incrustaciones de LLM para crear un motor de búsqueda de proyectos, indexando documentación, incidencias y discusiones. Cuando surge una nueva incidencia, un agente puede usar este índice para encontrar contexto relacionado, como incidencias pasadas similares o documentación relevante, y responder con enlaces. Esto ha mostrado beneficios como la presentación de incidencias duplicadas, la provisión de contexto a los contribuyentes y el ahorro de tiempo a los mantenedores al dirigirlos a discusiones pasadas o informes de errores relevantes. La interacción inmediata del agente después de que se presenta un informe también es vital para involucrar a los informantes mientras aún están disponibles y comprometidos.
Otra capacidad clave es usar lenguaje natural para controlar herramientas deterministas. A medida que los proyectos crecen, el número de herramientas aumenta, lo que dificulta su seguimiento y uso. Oscar prevé instalaciones para editar comentarios de incidencias, agregar etiquetas o asignar personas basándose en solicitudes de lenguaje natural. Los LLM son expertos en traducir intenciones de lenguaje natural a formas ejecutables como invocaciones de herramientas. Los experimentos preliminares con Gemini muestran promesas en la selección e invocación de herramientas. Este enfoque, que utiliza LLM para convertir lenguaje natural en uso de herramientas deterministas, se considera más efectivo que un enfoque de "varita mágica" de LLM puro, ya que permite la ejecución determinista y una verificación más fácil.
La tercera capacidad importante implica analizar informes de incidencias y CLs/PRs. Más allá de vincular incidencias relacionadas, Oscar planea incorporar análisis semántico, como identificar el tema principal de una incidencia para un etiquetado apropiado (por ejemplo, "rendimiento"). También tiene como objetivo determinar si se necesita más información para que un informe sea útil, como solicitar un enlace de programa de reproducción o incrustar código. El agente podría potencialmente ejecutar herramientas de ejecución en sandbox para identificar lanzamientos que contienen errores o usar git bisect para identificar commits que introducen errores. Estos análisis son más efectivos cuando se realizan inmediatamente después de que se presenta un informe, aprovechando la disponibilidad 24/7 del agente.
El primer prototipo, Gaby ("Go AI bot"), opera dentro del rastreador de incidencias de Go, publicando como @gabyhelp. Su código fuente está en internal/gaby. Gaby indexa contenido de incidencias de Go, documentación de Go, revisiones de código de Gerrit y discusiones de proyectos de Go/golang-nuts, lo que le permite responder a nuevas incidencias con enlaces relevantes. La arquitectura de Gaby está diseñada para la flexibilidad, lo que le permite ejecutarse en varios servicios de alojamiento, usar diferentes LLM, capas de almacenamiento y bases de datos vectoriales. El prototipo actual utiliza GCP Cloud Run con el LLM Gemini de Google y Google Cloud Firestore. El proyecto también reconoce la existencia de @gopherbot, un agente determinista de larga data en el proyecto Go, y tiene como objetivo fusionar eventualmente @gabyhelp en @gopherbot reconstruyendo @gopherbot como un agente Oscar, buscando un método de configuración más ligero utilizando lenguaje natural.
Características principales de Oscar
Agente automatizado para el mantenimiento de código abierto
Reduce la carga de trabajo de los mantenedores procesando incidencias y solicitudes
Aprovecha los LLM para la comprensión del lenguaje natural y el análisis semántico
Utiliza código determinista para una ejecución de tareas fiable
Indexa y presenta el contexto relevante del proyecto (documentación, incidencias, discusiones)
Permite el control del lenguaje natural sobre herramientas deterministas
Analiza informes de incidencias y listas de cambios para mejorar el enrutamiento y el etiquetado
Agente prototipo @gabyhelp activo en el rastreador de incidencias de Go
Arquitectura extensible para el desarrollo de agentes personalizados
Soporta la integración con varios LLM, capas de almacenamiento y bases de datos vectoriales
Tiene como objetivo automatizar los aspectos no de codificación del mantenimiento de código abierto
Facilita una interacción más rápida con los contribuyentes a través de respuestas inmediatas
¿Cómo usar Oscar?
Configurar: Definir las capacidades del agente y conectarse a las fuentes de datos del proyecto
Desplegar: Alojar el agente en una plataforma adecuada (por ejemplo, servicio en la nube)
Integrar: Conectarse a los repositorios del proyecto y canales de comunicación (por ejemplo, webhooks de GitHub)
Entrenar/Indexar: Permitir que el agente procese e indexe el contexto del proyecto utilizando LLM
Monitorizar: Observar las interacciones y el rendimiento del agente en rastreadores de incidencias y foros
Extender: Desarrollar nuevos comportamientos del agente e integrar herramientas deterministas personalizadas
Optimizar: Refinar las respuestas y el análisis del agente según las necesidades y la retroalimentación del proyecto
Casos de uso de Oscar
- Automatización de Triaje de Incidencias
- Asistencia de Documentación
- Detección de Incidencias Duplicadas
- Reducción de Carga de Mantenedores
- Soporte al Contribuyente
- Análisis de Listas de Cambios
- Presentación de Contexto
- Integración de Herramientas






