Saltar al contenido principal
ToolPotion

Oscar - Git en Google

Oscar es una arquitectura de agente contribuyente de código abierto diseñada para reducir la carga de trabajo de los mantenedores en el desarrollo de software. Aprovecha los LLM para el análisis semántico y el código determinista para ejecutar tareas, con el objetivo de automatizar el procesamiento de incidencias, la correspondencia de documentación y más, mejorando así la eficiencia del mantenimiento de proyectos de código abierto.

Visitar URL
Oscar - Git en Google screenshot

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?

  1. Configurar: Definir las capacidades del agente y conectarse a las fuentes de datos del proyecto

  2. Desplegar: Alojar el agente en una plataforma adecuada (por ejemplo, servicio en la nube)

  3. Integrar: Conectarse a los repositorios del proyecto y canales de comunicación (por ejemplo, webhooks de GitHub)

  4. Entrenar/Indexar: Permitir que el agente procese e indexe el contexto del proyecto utilizando LLM

  5. Monitorizar: Observar las interacciones y el rendimiento del agente en rastreadores de incidencias y foros

  6. Extender: Desarrollar nuevos comportamientos del agente e integrar herramientas deterministas personalizadas

  7. 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

Preguntas frecuentes de Oscar

Reseñas de Oscar

Cargando...

Herramientas de IA populares como Oscar

Agentes de IA

GitHub Copilot es un programador par de IA que asiste a los desarrolladores sugiriendo líneas de código y funciones completas directamente dentro de su editor. Acelera los flujos…

DestacadaAsistentes de programación con IA

Aider es una herramienta de programación en pareja con IA que se integra con tu terminal, permitiéndote colaborar con modelos de lenguaje grande (LLMs) en nuevos proyectos o bases…

DestacadaAsistentes de programación con IA

Devin es un agente de codificación AI diseñado para ayudar a los desarrolladores a construir mejor software de manera más eficiente. Utiliza agentes en la nube en paralelo para…

DestacadaAsistentes de programación con IA

Agentes de IA

Codex en ChatGPT mejora la ingeniería de software al proporcionar agentes de codificación de IA que ayudan a los equipos a construir más rápido. Automatiza tareas como solicitudes…

DestacadaAsistentes de programación con IA

Repositorios de IA en GitHub

Goose es un agente de IA de código abierto y extensible que mejora la programación al permitir a los usuarios instalar, ejecutar, editar y probar con cualquier LLM, proporcionando…

DestacadaAsistentes de programación con IA

Agentes de IA

SWE-agent es un agente de IA diseñado para usar herramientas de forma autónoma para tareas como solucionar problemas de GitHub y encontrar vulnerabilidades de ciberseguridad.…

Asistentes de programación con IA

Agentes de IA

Devin Desktop es el centro de comando para gestionar agentes de codificación de IA locales y en la nube. Planifique, delegue, revise y envíe código directamente desde su editor.…

Asistentes de programación con IA

Agentes de IA

OpenHands es una plataforma de código abierto y agnóstica en cuanto a modelos para agentes de codificación en la nube que automatiza tareas de ingeniería de manera segura y…

DestacadaCreadores de agentes de IA