2 points par GN⁺ 2025-04-08 | Aucun commentaire pour le moment. | Partager sur WhatsApp
  • Alors que les grands systèmes et le code généré rapidement par l’IA deviennent de plus en plus difficiles à lire et à comprendre pour les humains, Glamorous Toolkit vise à offrir un Moldable Development Environment qui aide à comprendre les systèmes au moyen d’outils de contexte déterministes
  • L’approche consiste à créer des outils de contexte qui compressent, pour chaque question, la coupe du système nécessaire, puis à les attacher aux objets ou situations pertinents afin de ne les activer qu’au moment voulu
  • Le harnais d’agents intégré permet de définir par script le contexte de conversation, les outils et les sorties structurées, et peut être utilisé avec OpenAI, Anthropic, Ollama ou avec un fournisseur maison
  • Les usages vont au-delà de l’analyse de systèmes legacy et couvrent la découverte de domaine, l’exploration d’API, de données et de logs, la documentation, la modélisation de domaine, la réécriture de code, les conversations avec l’IA et l’inspection à l’exécution
  • C’est un logiciel gratuit et open source sous licence MIT, centré sur Smalltalk basé sur Pharo, mais extensible à Rust ainsi qu’à l’analyse de plusieurs langages et runtimes

Un Moldable Development Environment pour comprendre les systèmes et l’IA

  • L’objectif de Glamorous Toolkit est d’optimiser la manière de mieux s’informer sur les systèmes
  • Les systèmes sont trop grands, et l’IA génère du code trop rapidement : comprendre uniquement par la lecture du code devient un goulot d’étranglement
  • Plutôt qu’une approche centrée sur la lecture, il utilise des outils de contexte déterministes qui compressent le système autour du problème
  • Ces outils aident les humains et l’IA à explorer plus vite les systèmes, et peuvent être créés directement dans un environnement intégré unique, ou avec l’aide de l’IA
  • Les questions sur des systèmes existants peuvent recevoir une réponse au moyen de narratifs composés d’outils de contexte

Harnais d’agents intégré

  • Agents programmables

    • Il est possible de définir par script le contexte de la conversation, les outils et les sorties structurées
  • Mémoire d’agent extensible

    • Le contexte est défini sous forme d’explications exécutables reliées au code et aux exemples
    • Les vues de contexte permettent d’étendre la mémoire de l’agent à des objets arbitraires
  • Comportement d’agent explicable

    • Plutôt que d’accepter tel quel ce que l’IA dit avoir fait, il est possible de le comprendre de façon déterministe via les vues de contexte
  • Des objets, pas seulement du texte

    • Il est possible de transmettre des objets live dans une conversation et de recevoir en retour des objets structurés
    • Chaque objet possède des vues de contexte que les humains et l’IA peuvent explorer
    • Il peut être utilisé avec OpenAI, Anthropic et Ollama, et permet aussi de créer son propre fournisseur

Pourquoi les outils de contexte sont nécessaires

  • Le logiciel n’a pas de forme, et rien dans un système logiciel ne peut être perçu sans passer par des outils
  • Les outils donnent une forme au logiciel ; contrôler les outils permet donc aussi de contrôler la perception et la compréhension
  • Le logiciel est fortement dépendant du contexte, les outils doivent donc eux aussi avoir du contexte pour être efficaces
  • Un système logiciel donné n’a pas de représentation unique
    • La forme textuelle du code n’est elle aussi qu’une forme accidentelle du support d’entrée
    • Des représentations différentes sont nécessaires selon le problème
  • Glamorous Toolkit est conçu comme un langage composé d’opérateurs interactifs et visuels afin d’accueillir de nombreux outils de contexte difficiles à prévoir
    • Il permet de programmer et de combiner des micro-outils à faible coût
    • Les outils peuvent être créés de plusieurs manières dans un environnement live

Outils, compression et inversion de contrôle

  • Un outil est une interface permettant d’interagir avec le calcul
    • Il peut s’agir d’un éditeur de configuration, d’un débogueur runtime ou d’un inspecteur d’API
    • Il peut être complexe, ou simple et centré sur une seule question
    • Il peut être visuel ou fondé sur du texte brut
    • Il peut être généraliste ou être un outil de contexte pertinent uniquement pour des entrées étroites
  • Les outils généralistes s’appliquent largement, mais au prix de faire paraître tout similaire
  • La valeur d’un système logiciel est toujours concrète ; les outils de contexte peuvent donc transmettre cette valeur plus efficacement et plus agréablement
  • Comprendre un système revient au fond à répondre à des questions
    • La réponse se trouve dans les artefacts du système, mais ceux-ci sont trop volumineux pour être lus facilement
    • Les outils encodent de manière déterministe la façon d’obtenir la réponse
    • Le résultat d’un outil agit comme une compression du système pour la question concernée
  • Répondre à toutes les questions avec des outils de contexte déterministes nécessiterait des milliers d’outils pour chaque système
  • Glamorous Toolkit ne demande pas à l’utilisateur d’appeler explicitement les outils ; il les relie au contexte pertinent et ne les active que lorsque l’on interagit avec ce contexte
    • Ce contexte peut être une unité aussi fondamentale qu’un objet individuel

Flux typique de Moldable Development

  • Partir d’une question concrète
  • S’il n’existe pas d’outil pertinent, en créer un
  • Interpréter la réponse et prendre une décision
  • Répéter ce processus

Vues d’objets et narratifs

  • Les vues attachées aux objets deviennent une unité de documentation
  • Lorsque des objets sont générés comme exemples automatiques et testés, il devient possible de créer des narratifs définis qui transmettent des concepts durables, des tutoriels aux contraintes d’architecture en passant par les processus métier
  • Ces narratifs peuvent être conçus aussi bien pour les humains que pour l’IA
  • Comme les mêmes composants sont intégrés à toute l’expérience de développement, ils peuvent être testés automatiquement et refactorés avec le code
  • Les narratifs définis sont des fragments réutilisables, mais la nature contextuelle du logiciel exige aussi des narratifs dynamiques capables de répondre à la demande à des questions plus vastes
    • Analyse des performances d’un cluster
    • Exploration de la structure d’un système COBOL
  • Les narratifs peuvent porter sur n’importe quel objet représentant différents aspects du système, y compris le domaine
  • Ils peuvent cibler des parties prenantes aux parcours et centres d’intérêt différents, de sorte que l’environnement sert de médiateur aux échanges entre parties prenantes du système

Édition contextuelle

  • La contextualisation s’étend à toutes les interactions avec le système, y compris l’édition
  • Un système est composé de multiples aspects
    • Technologie
    • Règles de domaine
    • Conventions
    • Bibliothèques
    • Interfaces
    • Tests
    • Artefacts générés
    • Comportement runtime
  • Éditer n’est pas une simple saisie de texte, mais une action qui influence une partie de ces aspects
  • Toute modification se produit dans un contexte qui en détermine la signification
  • Les éditeurs généralistes aplatissent ce contexte et forcent l’utilisateur à travailler au niveau de l’éditeur
  • Les éditeurs contextuels élèvent l’interaction au niveau correspondant au modèle mental de l’utilisateur

Périmètre d’utilisation et limites

  • Glamorous Toolkit sert principalement à créer des outils, vues, explications et workflows pour comprendre et modifier les systèmes
  • Ce n’est pas une plateforme applicative de remplacement
  • Il peut être utilisé sur de grands systèmes legacy, mais couvre aussi de nombreux autres scénarios
    • Découverte de domaine
    • Exploration d’API
    • Exploration de données
    • Compréhension de logs
    • Documentation
    • Modélisation de domaine
    • Réécriture de code
    • Conversations avec l’IA
    • Inspection à l’exécution
  • Les outils standard sont utiles pour les problèmes généralistes
  • Les questions spécifiques qui apparaissent dans un système concret nécessitent des outils de contexte

Résumés IA et outils déterministes

  • La plupart des questions sur un système exigent des réponses déterministes fondées sur les informations du système
  • Les résumés générés par l’IA peuvent être pratiques, mais il est impossible de savoir s’ils sont exacts ou représentatifs, et ils ne sont pas non plus explicables
  • Pour des réponses destinées à l’ingénierie, l’exactitude, la représentativité et l’explicabilité sont importantes
  • Les outils de contexte déterministes peuvent eux aussi avoir des biais, mais ces biais peuvent être examinés avant d’interpréter la sortie
  • Plus de détails sont disponibles dans le chapitre 6 de Rewilding Software Engineering

Implémentation et technologies prises en charge

  • Glamorous Toolkit permet de créer des outils de contexte sans grande difficulté
  • L’environnement est conçu comme un langage composé d’opérateurs visuels et interactifs, ce qui facilite la programmation des outils et leur combinaison de plusieurs manières
  • En ouvrant Glamorous Toolkit, on peut voir plus de 6 000 outils de contexte utilisés pendant son développement
  • Pour exploiter pleinement le potentiel des outils, il faut programmer ; l’approche principale passe par Pharo, dans la famille Smalltalk
  • Smalltalk a été utilisé principalement parce qu’il offre un système réflexif permettant de modifier l’environnement live pendant son utilisation
  • Une part importante de Glamorous Toolkit est aujourd’hui également implémentée en Rust, et il fonctionne avec de nombreuses technologies
  • La prise en charge de Pharo est sophistiquée, mais l’outil est conçu pour s’étendre à d’autres technologies et langages
    • Exemples de sources analysables : Rust, Java, C#, Ruby/Rails, Python, TypeScript, JavaScript, React, COBOL
    • Exemples de runtimes avec lesquels il peut travailler : GraphQL, Python, JavaScript, Gemstone
  • Cette prise en charge est fournie par défaut et peut aussi être vue comme un ensemble d’exemples que les utilisateurs peuvent créer eux-mêmes pour chaque langage et technologie

Licence et ressources

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.