Glamorous Toolkit
(gtoolkit.com)- À 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
- O Glamorous Toolkit é open source gratuito sob licença MIT
- Detalhes práticos podem ser vistos no livro do Glamorous Toolkit
- Uma explicação em nível mais alto pode ser vista em moldabledevelopment.com
- Materiais para começar estão disponíveis em Get started
Ainda não há comentários.