Pular para o conteúdo principal
ToolPotion

Oscar - Git no Google

Oscar é uma arquitetura de agente contribuinte de código aberto projetada para reduzir o trabalho repetitivo de mantenedores no desenvolvimento de software. Ele utiliza LLMs para análise semântica e código determinístico para executar tarefas, visando automatizar o processamento de issues, a correspondência de documentação e mais, melhorando assim a eficiência da manutenção de projetos de código aberto.

Visitar URL
Oscar - Git no Google screenshot

Descrição

Oscar, uma arquitetura de agente contribuinte de código aberto, é um projeto focado em aprimorar o desenvolvimento de software de código aberto através da criação de agentes automatizados para manutenção de projetos. A crença central é que o trabalho repetitivo significativo na manutenção de projetos de código aberto, tanto grandes quanto pequenos, pode ser reduzido. Modelos de Linguagem Grandes (LLMs) oferecem novas possibilidades para agentes interagirem suavemente com pessoas através da análise semântica de linguagem natural, como relatórios de issues e instruções de mantenedores, e convertendo instruções de linguagem natural em código de programa. Embora os LLMs sejam um componente crítico, a maioria das ações de um agente envolverá a execução de código padrão e determinístico. Ao contrário de muitos usos de LLM focados em desenvolvimento, Oscar não visa aumentar ou substituir o processo de escrita de código. Em vez disso, foca nos aspectos menos envolventes da manutenção, como processar issues recebidas, corresponder perguntas à documentação existente e tarefas semelhantes.

Oscar é fundamentalmente um experimento, com sua direção futura e aprendizados ainda a serem totalmente determinados. O protótipo inicial, o bot @gabyhelp, já demonstrou inúmeras interações bem-sucedidas no rastreador de issues do Go. Atualmente desenvolvido sob o projeto Go, Oscar pode potencialmente ser desmembrado em um projeto separado no futuro. Os objetivos concretos do projeto incluem reduzir o esforço dos mantenedores na resolução de issues e change lists (CLs/pull requests), diminuir o esforço necessário para responder a perguntas em fóruns e permitir que mais indivíduos se tornem mantenedores produtivos. Um objetivo chave não é automatizar a codificação; o foco permanece na automação do trabalho repetitivo dos mantenedores.

A abordagem centra-se na construção de uma arquitetura reutilizável e extensível que qualquer projeto de software pode adaptar para criar agentes personalizados. Oscar visa abordar o trabalho repetitivo dos mantenedores, que não é exclusivo do projeto Go. As capacidades identificadas incluem indexar e apresentar o contexto relevante do projeto durante as interações dos contribuidores, usar linguagem natural para controlar ferramentas determinísticas e analisar relatórios de issues, CLs/PRs e discussões em grupo para melhorá-los em tempo real, rotulá-los e encaminhá-los adequadamente. LLMs são integrais a essas capacidades devido à sua força no processamento de linguagem natural, enquanto o código determinístico lida com a execução. O projeto enfatiza o uso de LLMs para análise semântica e tradução de linguagem natural para programa, confiando em código determinístico para o restante.

Uma capacidade crucial é indexar e apresentar o contexto relacionado do projeto. Projetos de software são complexos, e os mantenedores não podem sempre reter todos os detalhes relevantes. Oscar usa embeddings de LLM para criar um motor de busca de projetos, indexando documentação, issues e discussões. Quando uma nova issue surge, um agente pode usar este índice para encontrar contexto relacionado, como issues passadas semelhantes ou documentação relevante, e responder com links. Isso mostrou benefícios como apresentar issues duplicadas, fornecer contexto aos contribuidores e economizar tempo dos mantenedores apontando-os para discussões passadas relevantes ou relatórios de bugs. A interação imediata do agente após o registro de um relatório é vital para engajar os relatores enquanto eles ainda estão disponíveis e engajados.

Outra capacidade chave é usar linguagem natural para controlar ferramentas determinísticas. À medida que os projetos crescem, o número de ferramentas aumenta, tornando difícil rastreá-las e usá-las. Oscar prevê facilidades para editar comentários de issues, adicionar rótulos ou atribuir pessoas com base em solicitações de linguagem natural. LLMs são proficientes em traduzir intenções de linguagem natural para formas executáveis, como invocações de ferramentas. Experimentos preliminares com Gemini mostram promessa na seleção e invocação de ferramentas. Essa abordagem, que usa LLMs para converter linguagem natural em uso determinístico de ferramentas, é considerada mais eficaz do que uma abordagem pura de "varinha mágica" com LLM, pois permite execução determinística e verificação mais fácil.

A terceira capacidade importante envolve a análise de relatórios de issues e CLs/PRs. Além de vincular issues relacionadas, Oscar planeja incorporar análise semântica, como identificar o tópico principal de uma issue para rotulagem apropriada (por exemplo, "desempenho"). Ele também visa determinar se mais informações são necessárias para que um relatório seja útil, como solicitar um link de programa de reprodução ou incorporar código. O agente poderia potencialmente executar ferramentas de execução em sandbox para identificar releases contendo bugs ou usar git bisect para localizar commits que introduziram bugs. Essas análises são mais eficazes quando realizadas imediatamente após o registro de um relatório, aproveitando a disponibilidade 24/7 do agente.

O primeiro protótipo, Gaby ("Go AI bot"), opera dentro do rastreador de issues do Go, postando como @gabyhelp. Seu código-fonte está em internal/gaby. Gaby indexa conteúdo de issues do Go, documentação do Go, revisões de código Gerrit e discussões do projeto Go/golang-nuts, permitindo que ele responda a novas issues com links relevantes. A arquitetura de Gaby é projetada para flexibilidade, permitindo que ele seja executado em vários serviços de hospedagem, use diferentes LLMs, camadas de armazenamento e bancos de dados vetoriais. O protótipo atual usa GCP Cloud Run com o LLM Gemini do Google e Google Cloud Firestore. O projeto também reconhece a existência do @gopherbot, um agente determinístico de longa data no projeto Go, e visa eventualmente mesclar @gabyhelp em @gopherbot reconstruindo @gopherbot como um agente Oscar, buscando um método de configuração mais leve usando linguagem natural.

Recursos principais de Oscar

  • Agente automatizado para manutenção de código aberto

  • Reduz o trabalho repetitivo de mantenedores processando issues e solicitações

  • Utiliza LLMs para compreensão de linguagem natural e análise semântica

  • Emprega código determinístico para execução confiável de tarefas

  • Indexa e apresenta contexto relevante do projeto (documentação, issues, discussões)

  • Permite controle de linguagem natural sobre ferramentas determinísticas

  • Analisa relatórios de issues e change lists para melhor roteamento e rotulagem

  • Agente protótipo @gabyhelp ativo no rastreador de issues do Go

  • Arquitetura extensível para desenvolvimento de agentes personalizados

  • Suporta integração com vários LLMs, camadas de armazenamento e bancos de dados vetoriais

  • Visa automatizar aspectos não relacionados à codificação da manutenção de código aberto

  • Facilita engajamento mais rápido de contribuidores através de respostas imediatas

Como usar Oscar?

  1. Configurar: Definir capacidades do agente e conectar a fontes de dados do projeto

  2. Implantar: Hospedar o agente em uma plataforma adequada (por exemplo, serviço de nuvem)

  3. Integrar: Conectar a repositórios de projeto e canais de comunicação (por exemplo, webhooks do GitHub)

  4. Treinar/Indexar: Permitir que o agente processe e indexe o contexto do projeto usando LLMs

  5. Monitorar: Observar interações e desempenho do agente em rastreadores de issues e fóruns

  6. Estender: Desenvolver novos comportamentos de agente e integrar ferramentas determinísticas personalizadas

  7. Otimizar: Refinar respostas e análises do agente com base nas necessidades e feedback do projeto

Casos de uso de Oscar

  • Automação de Triagem de Issues
  • Assistência de Documentação
  • Detecção de Issues Duplicadas
  • Redução de Trabalho Repetitivo de Mantenedores
  • Suporte a Contribuidores
  • Análise de Change Lists
  • Apresentação de Contexto
  • Integração de Ferramentas

Perguntas frequentes de Oscar

Avaliações de Oscar

Carregando...

Ferramentas de IA populares como Oscar

Agentes de IA

GitHub Copilot é um programador par IA que auxilia desenvolvedores sugerindo linhas de código e funções inteiras diretamente no editor. Ele acelera fluxos de trabalho desde a…

DestaqueAssistentes de programação com IA

Aider é uma ferramenta de programação em par com IA que se integra ao seu terminal, permitindo que você colabore com grandes modelos de linguagem (LLMs) em novos projetos ou bases…

DestaqueAssistentes de programação com IA

Devin é um agente de codificação AI projetado para ajudar desenvolvedores a construir melhores softwares de forma mais eficiente. Ele utiliza agentes em nuvem paralelos para…

DestaqueAssistentes de programação com IA

Agentes de IA

Codex no ChatGPT melhora a engenharia de software ao fornecer agentes de codificação de IA que ajudam as equipes a construir mais rapidamente. Ele automatiza tarefas como pull…

DestaqueAssistentes de programação com IA

Repositórios de IA no GitHub

Goose é um agente de IA open source e extensível que aprimora a codificação, permitindo que os usuários instalem, executem, editem e testem com qualquer LLM, fornecendo uma…

DestaqueAssistentes de programação com IA

Agentes de IA

SWE-agent é um agente de IA projetado para usar ferramentas de forma autônoma para tarefas como corrigir problemas do GitHub e encontrar vulnerabilidades de segurança cibernética.…

Assistentes de programação com IA

Agentes de IA

Devin Desktop é o centro de comando para gerenciar agentes de codificação de IA locais e na nuvem. Planeje, delegue, revise e envie código diretamente do seu editor. Ele oferece…

Assistentes de programação com IA

Agentes de IA

OpenHands é uma plataforma de código aberto e independente de modelo para agentes de codificação em nuvem que automatiza tarefas de engenharia de forma segura e transparente.…

DestaqueCriadores de agentes de IA