2 pontos por GN⁺ 2025-04-08 | Ainda não há comentários. | Compartilhar no WhatsApp
  • À medida que fica mais difícil para humanos continuar lendo e entendendo grandes sistemas e código gerado rapidamente por IA, o Glamorous Toolkit busca ser um Moldable Development Environment que ajuda na compreensão de sistemas por meio de ferramentas de contexto determinísticas
  • Ele cria ferramentas de contexto que comprimem a fatia necessária do sistema para cada pergunta, anexando-as a objetos ou situações relevantes e ativando-as apenas quando necessário
  • O agent harness embutido permite definir por script o contexto da conversa, as ferramentas e a saída estruturada, podendo ser usado com OpenAI, Anthropic, Ollama ou provedores próprios
  • O escopo de uso vai além da análise de sistemas legados, abrangendo descoberta de domínio, exploração de API, dados e logs, documentação, modelagem de domínio, reescrita de código, conversas com IA e inspeção em runtime
  • É open source gratuito sob licença MIT e, embora seja centrado em Smalltalk baseado em Pharo, pode ser expandido com Rust e análise de várias linguagens e runtimes

Um Moldable Development Environment para entender sistemas e IA

  • O objetivo do Glamorous Toolkit é otimizar como obtemos informação sobre sistemas
  • Os sistemas são grandes demais, e a IA gera código rápido demais, então entender apenas por leitura de código se torna um gargalo
  • Em vez de uma abordagem centrada na leitura, ele usa ferramentas de contexto determinísticas que comprimem o sistema ao redor do problema
  • Essas ferramentas ajudam humanos e IA a explorar sistemas mais rapidamente e podem ser criadas diretamente dentro de um ambiente unificado, sozinhos ou com ajuda da IA
  • Perguntas sobre sistemas existentes podem ser respondidas por meio de uma narrativa composta por ferramentas de contexto

Agent harness embutido

  • Agentes programáveis

    • É possível definir por script o contexto da conversa, as ferramentas e a saída estruturada
  • Memória de agente extensível

    • O contexto é definido como explicações executáveis conectadas a código e exemplos
    • Usando visualizações de contexto, a memória do agente pode ser expandida até objetos arbitrários
  • Comportamento de agente explicável

    • Em vez de aceitar simplesmente o que a IA diz que fez, é possível entender isso de forma determinística por meio de visualizações de contexto
  • Objetos, não texto

    • É possível passar objetos vivos para a conversa e receber de volta objetos estruturados
    • Cada objeto tem visualizações de contexto que humanos e IA podem explorar
    • Pode ser usado com OpenAI, Anthropic e Ollama, e também é possível criar provedores próprios

Por que ferramentas de contexto são necessárias

  • Software não tem forma, e nada dentro de um sistema de software pode ser percebido sem passar por uma ferramenta
  • Ferramentas dão forma ao software; por isso, ao controlar as ferramentas, também se controla a percepção e a compreensão
  • O software é altamente dependente de contexto, então as ferramentas também precisam de contexto para serem eficazes
  • Não existe uma representação única para um sistema de software
    • Até a forma textual do código é apenas uma forma acidental do meio de entrada
    • Representações diferentes são necessárias dependendo do problema
  • O Glamorous Toolkit foi projetado como uma linguagem composta por operadores interativos e visuais para acomodar muitas ferramentas de contexto difíceis de prever
    • Microferramentas podem ser programadas e combinadas com baixo custo
    • Ferramentas podem ser criadas de várias formas em um ambiente vivo

Ferramentas, compressão e inversão de controle

  • Ferramentas são a interface com a qual interagimos com computações
    • Podem ser um editor de configuração, um depurador de runtime ou um inspetor de API
    • Podem ser ferramentas complexas ou ferramentas simples focadas em uma única pergunta
    • Podem ser visuais ou baseadas em texto simples
    • Podem ser de uso geral ou ferramentas de contexto relevantes apenas para entradas específicas
  • Ferramentas de uso geral têm aplicação ampla, mas ao custo de fazer tudo parecer semelhante
  • Como o valor de um sistema de software é sempre específico, ferramentas de contexto podem transmitir esse valor de forma mais eficiente e agradável
  • Entender um sistema é, no fim, o processo de responder perguntas
    • As respostas estão nos artefatos do sistema, mas esses artefatos são grandes demais para serem lidos facilmente
    • Ferramentas codificam de forma determinística como obter a resposta
    • O resultado da ferramenta funciona como uma compressão do sistema para aquela pergunta
  • Para responder todas as perguntas com ferramentas de contexto determinísticas, cada sistema precisaria de milhares de ferramentas
  • O Glamorous Toolkit, em vez de exigir que o usuário invoque explicitamente cada ferramenta, conecta essas ferramentas ao contexto relevante e as ativa apenas ao interagir com esse contexto
    • Esse contexto pode ser uma unidade básica como um objeto individual

Fluxo típico de Moldable Development

  • Começa com uma pergunta concreta
  • Se não houver uma ferramenta relevante, cria-se uma nova
  • Interpreta-se a resposta e toma-se uma decisão
  • O processo se repete

Visualizações de objetos e narrativas

  • Visualizações conectadas a objetos tornam-se unidades de documentação
  • Se objetos forem gerados e testados automaticamente como exemplos, é possível criar narrativas definidas que transmitam conceitos duradouros, de tutoriais a restrições de arquitetura e processos de negócio
  • Essas narrativas podem ser projetadas tanto para humanos quanto para IA
  • Como os mesmos componentes são integrados à experiência completa de desenvolvimento, também é possível fazer testes automáticos e refatoração junto com o código
  • Narrativas definidas são fragmentos reutilizáveis, mas devido à natureza contextual do software, também são necessárias narrativas dinâmicas que respondam sob demanda a perguntas maiores
    • Investigação de desempenho de cluster
    • Exploração da estrutura de sistemas COBOL
  • Narrativas podem tratar de qualquer objeto que represente vários aspectos do sistema, inclusive o domínio
  • Elas podem ser direcionadas a stakeholders com diferentes repertórios e interesses, fazendo com que o ambiente medie a conversa entre os envolvidos no sistema

Edição contextual

  • A contextualização se estende a toda interação com o sistema, inclusive a edição
  • Um sistema é composto de vários aspectos
    • Tecnologia
    • Regras de domínio
    • Convenções
    • Bibliotecas
    • Interfaces
    • Testes
    • Artefatos gerados
    • Comportamento em runtime
  • Editar não é apenas inserir texto, mas agir sobre alguns desses aspectos
  • Toda mudança acontece dentro de um contexto que determina seu significado
  • Editores genéricos achatam esse contexto e forçam o usuário a trabalhar no nível do editor
  • Editores contextuais elevam a interação a um nível mais compatível com o modelo mental do usuário

Escopo de uso e limites

  • O Glamorous Toolkit é usado principalmente para criar ferramentas, visualizações, explicações e fluxos de trabalho para entender e modificar sistemas
  • Não é uma plataforma alternativa de aplicações
  • Pode ser usado em grandes sistemas legados, mas também abrange vários outros cenários
    • Descoberta de domínio
    • Exploração de API
    • Exploração de dados
    • Entendimento de logs
    • Documentação
    • Modelagem de domínio
    • Reescrita de código
    • Conversas com IA
    • Inspeção em runtime
  • Ferramentas padrão são úteis para problemas genéricos
  • Para perguntas específicas que surgem dentro de um sistema concreto, são necessárias ferramentas de contexto

Resumos por IA e ferramentas determinísticas

  • A maioria das perguntas sobre um sistema exige respostas determinísticas baseadas nas informações do sistema
  • Resumos por IA podem ser convenientes, mas não é possível saber se são corretos, representativos ou explicáveis
  • Para fins de engenharia, precisão, representatividade e explicabilidade são importantes
  • Ferramentas de contexto determinísticas também podem ter viés, mas esse viés pode ser inspecionado antes de interpretar a saída
  • Mais detalhes podem ser vistos no capítulo 6 de Rewilding Software Engineering

Implementação e tecnologias de suporte

  • O Glamorous Toolkit facilita a criação de ferramentas de contexto
  • O ambiente foi construído como uma linguagem composta por operadores visuais e interativos, o que permite programar ferramentas com facilidade e combiná-las de várias maneiras
  • Ao abrir o Glamorous Toolkit, é possível ver mais de 6.000 ferramentas de contexto usadas ao longo do processo de desenvolvimento
  • Para aproveitar plenamente o potencial das ferramentas, é necessário programar, e a principal forma de fazer isso é com Pharo, uma variante de Smalltalk
  • O principal motivo para usar Smalltalk é que ele oferece um sistema reflexivo em que o ambiente pode ser alterado ao vivo mesmo durante o uso
  • Atualmente, uma parte significativa do Glamorous Toolkit também é implementada em Rust e funciona junto com várias tecnologias
  • O suporte a Pharo é sofisticado, mas o projeto foi pensado para se expandir a outras tecnologias e linguagens
    • Exemplos de código-fonte analisável: Rust, Java, C#, Ruby/Rails, Python, TypeScript, JavaScript, React, COBOL
    • Exemplos de runtimes com os quais pode trabalhar: GraphQL, Python, JavaScript, Gemstone
  • Esse suporte é fornecido por padrão e também pode ser visto como exemplo do que os usuários podem construir por conta própria para cada linguagem e tecnologia

Licença e materiais

Ainda não há comentários.

Ainda não há comentários.