2 Punkte von GN⁺ 2025-04-08 | Noch keine Kommentare. | Auf WhatsApp teilen
  • Da große Systeme und von AI schnell erzeugter Code für Menschen immer schwerer fortlaufend zu lesen und zu verstehen sind, zielt Glamorous Toolkit als deterministisches Kontextwerkzeug auf eine Moldable Development Environment zur Unterstützung des Systemverständnisses ab
  • Für jede Frage werden Kontextwerkzeuge erstellt, die den benötigten Ausschnitt des Systems komprimieren; sie werden an relevante Objekte oder Situationen angehängt und nur bei Bedarf aktiviert
  • Das integrierte Agent Harness definiert Gesprächskontext, Werkzeuge und strukturierte Ausgaben per Skript und kann mit OpenAI, Anthropic, Ollama oder einem eigenen Provider genutzt werden
  • Der Einsatzbereich geht über die Analyse von Legacy-Systemen hinaus und umfasst Domain Discovery, API-, Daten- und Log-Erkundung, Dokumentation, Domain Modeling, Code-Umschreibung, AI-Gespräche und Runtime-Inspektion
  • Es ist kostenlose Open-Source-Software unter der MIT-Lizenz und basiert vor allem auf Smalltalk mit Pharo, lässt sich aber auf Rust sowie die Analyse mehrerer Sprachen und Runtimes erweitern

Eine Moldable Development Environment zum Verständnis von Systemen und AI

  • Das Ziel von Glamorous Toolkit ist es, die Art zu optimieren, wie man Informationen über Systeme gewinnt
  • Systeme sind zu groß, und AI erzeugt Code zu schnell, sodass Code lesen als Verständnismethode zum Engpass wird
  • Statt eines lesezentrierten Ansatzes werden deterministische Kontextwerkzeuge verwendet, die das System rund um ein Problem komprimieren
  • Diese Werkzeuge helfen Menschen und AI, ein System schneller zu erkunden, und können direkt in einer integrierten Umgebung erstellt oder gemeinsam mit AI entwickelt werden
  • Fragen zu bestehenden Systemen lassen sich über Narrative beantworten, die aus Kontextwerkzeugen zusammengesetzt sind

Integriertes Agent Harness

  • Programmierbare Agenten

    • Gesprächskontext, Werkzeuge und strukturierte Ausgaben lassen sich per Skript definieren
  • Erweiterbarer Agent Memory

    • Der Kontext wird als ausführbare Erklärung definiert, die mit Code und Beispielen verknüpft ist
    • Mit Context Views lässt sich der Agent Memory auf beliebige Objekte erweitern
  • Erklärbares Agent-Verhalten

    • Statt ungeprüft zu übernehmen, was AI über ihr eigenes Handeln behauptet, kann man es über Context Views deterministisch verstehen
  • Objekte statt Text

    • Live-Objekte können in Gespräche übergeben und strukturierte Objekte zurückgegeben werden
    • Jedes Objekt besitzt Context Views, die von Menschen und AI erkundet werden können
    • Es kann mit OpenAI, Anthropic und Ollama verwendet werden, und eigene Provider lassen sich ebenfalls erstellen

Warum Kontextwerkzeuge nötig sind

  • Software hat keine physische Form, und nichts in einem Softwaresystem kann ohne Werkzeuge wahrgenommen werden
  • Werkzeuge geben Software ihre Form; wer die Werkzeuge kontrolliert, kontrolliert damit auch Wahrnehmung und Verständnis
  • Software ist stark kontextabhängig, daher müssen auch Werkzeuge Kontext besitzen, um wirksam zu sein
  • Es gibt keine einzige Darstellung eines Softwaresystems
    • Selbst die Textform von Code ist nur eine zufällige Form des Eingabemediums
    • Je nach Problem werden unterschiedliche Darstellungen benötigt
  • Glamorous Toolkit ist wie eine Sprache aus interaktiven, visuellen Operatoren aufgebaut, um viele schwer vorhersagbare Kontextwerkzeuge aufzunehmen
    • Mikro-Werkzeuge lassen sich kostengünstig programmieren und kombinieren
    • Werkzeuge können in einer Live-Umgebung auf verschiedene Weise erstellt werden

Werkzeuge, Kompression und Umkehr der Kontrolle

  • Werkzeuge sind Schnittstellen, die mit Berechnungen interagieren
    • Sie können ein Konfigurationseditor, ein Runtime-Debugger oder ein API-Inspektor sein
    • Sie können komplex sein oder einfache Werkzeuge, die sich auf eine einzige Frage konzentrieren
    • Sie können visuell oder textbasiert sein
    • Sie können allgemein einsetzbar sein oder als Kontextwerkzeuge nur für einen engen Eingabebereich relevant
  • Allgemeine Werkzeuge sind breit einsetzbar, haben aber den Preis, alles ähnlich erscheinen zu lassen
  • Der Wert eines Softwaresystems ist immer konkret, daher können Kontextwerkzeuge diesen Wert effizienter und angenehmer vermitteln
  • Systemverständnis ist letztlich ein Prozess des Beantwortens von Fragen
    • Die Antworten stecken in den Artefakten des Systems, aber diese sind zu groß, um sie gut lesen zu können
    • Werkzeuge kodieren den Weg zur Antwort deterministisch
    • Das Ergebnis eines Werkzeugs wirkt wie eine Kompression des Systems für genau diese Frage
  • Um jede Frage mit deterministischen Kontextwerkzeugen zu beantworten, wären pro System Tausende von Werkzeugen nötig
  • Glamorous Toolkit aktiviert Werkzeuge nicht über einen expliziten Aufruf durch den Nutzer, sondern verknüpft sie mit relevantem Kontext, sodass sie nur bei der Interaktion mit diesem Kontext aktiv werden
    • Dieser Kontext kann eine grundlegende Einheit wie ein einzelnes Objekt sein

Typischer Ablauf von Moldable Development

  • Start mit einer konkreten Frage
  • Wenn kein passendes Werkzeug vorhanden ist, wird ein neues erstellt
  • Die Antwort wird interpretiert, und es wird eine Entscheidung getroffen
  • Dieser Prozess wird wiederholt

Objekt-Views und Narrative

  • Mit Objekten verknüpfte Views bilden die Einheit der Dokumentation
  • Wenn Objekte durch automatische Beispiele erzeugt und getestet werden, lassen sich definierte Narrative schaffen, die langlebige Konzepte von Tutorials über Architektur-Constraints bis zu Geschäftsprozessen vermitteln
  • Diese Narrative können sowohl für Menschen als auch für AI gestaltet werden
  • Da dieselben Bausteine in die gesamte Development Experience integriert sind, sind automatische Tests und Refactorings zusammen mit dem Code möglich
  • Definierte Narrative sind wiederverwendbare Fragmente, aber wegen der kontextabhängigen Natur von Software werden auch dynamische Narrative benötigt, die größere Fragen on demand beantworten
    • Untersuchung der Cluster-Performance
    • Erkundung der Struktur eines COBOL-Systems
  • Narrative können beliebige Objekte behandeln, die verschiedene Aspekte eines Systems einschließlich der Domain repräsentieren
  • Sie können sich an Stakeholder mit unterschiedlichen Hintergründen und Interessen richten, sodass die Umgebung den Dialog zwischen den Stakeholdern eines Systems vermittelt

Kontextuelles Editieren

  • Kontextualisierung erstreckt sich auf jede Interaktion mit dem System, einschließlich des Editierens
  • Ein System besteht aus mehreren Aspekten
    • Technik
    • Domain-Regeln
    • Konventionen
    • Bibliotheken
    • Schnittstellen
    • Tests
    • erzeugte Artefakte
    • Runtime-Verhalten
  • Editieren ist nicht bloß Texteingabe, sondern eine Handlung, die einige dieser Aspekte beeinflusst
  • Jede Änderung geschieht innerhalb eines Kontexts, der ihre Bedeutung bestimmt
  • Allgemeine Editoren ebnen diesen Kontext ein und zwingen Nutzer dazu, auf der Ebene des Editors zu arbeiten
  • Kontextuelle Editoren heben die Interaktion auf ein Niveau an, das dem mentalen Modell des Nutzers entspricht

Einsatzbereich und Grenzen

  • Glamorous Toolkit wird hauptsächlich genutzt, um Werkzeuge, Views, Erklärungen und Workflows zum Verstehen und Verändern von Systemen zu erstellen
  • Es ist keine alternative Anwendungsplattform
  • Es kann auch für große Legacy-Systeme verwendet werden, umfasst aber viele weitere Szenarien
    • Domain Discovery
    • API-Erkundung
    • Datenerkundung
    • Log-Verständnis
    • Dokumentation
    • Domain Modeling
    • Code-Umschreibung
    • AI-Gespräche
    • Runtime-Inspektion
  • Standardwerkzeuge sind für allgemeine Probleme nützlich
  • Für konkrete Fragen innerhalb eines bestimmten Systems sind Kontextwerkzeuge nötig

AI-Zusammenfassungen und deterministische Werkzeuge

  • Die meisten Fragen zu einem System erfordern deterministische Antworten, die auf Systeminformationen beruhen
  • AI-Zusammenfassungen können praktisch sein, aber man weiß nicht, ob sie korrekt oder repräsentativ sind, und sie sind nicht erklärbar
  • Für Engineering-Zwecke sind Genauigkeit, Repräsentativität und Erklärbarkeit wichtig
  • Auch deterministische Kontextwerkzeuge können Verzerrungen enthalten, aber diese lassen sich vor der Interpretation der Ausgabe prüfen
  • Mehr dazu steht in Kapitel 6 von Rewilding Software Engineering

Implementierung und unterstützende Technologien

  • Mit Glamorous Toolkit lassen sich Kontextwerkzeuge ohne große Hürden erstellen
  • Die Umgebung ist wie eine Sprache aus visuellen und interaktiven Operatoren aufgebaut, sodass sich Werkzeuge leicht programmieren und auf verschiedene Weise kombinieren lassen
  • Beim Öffnen von Glamorous Toolkit sieht man mehr als 6.000 Kontextwerkzeuge, die im Entwicklungsprozess verwendet wurden
  • Um das Potenzial der Werkzeuge voll auszuschöpfen, ist Programmierung nötig; die zentrale Sprache dafür ist Pharo innerhalb von Smalltalk
  • Smalltalk wurde vor allem deshalb gewählt, weil es ein reflektives System bietet, in dem sich die Umgebung auch während der Nutzung live verändern lässt
  • Ein erheblicher Teil von Glamorous Toolkit ist inzwischen auch in Rust implementiert und arbeitet mit mehreren Technologien zusammen
  • Die Unterstützung für Pharo ist ausgereift, das System ist aber für Erweiterungen auf andere Technologien und Sprachen ausgelegt
    • Beispiele für analysierbaren Source Code: Rust, Java, C#, Ruby/Rails, Python, TypeScript, JavaScript, React, COBOL
    • Beispiele für Runtimes, mit denen zusammengearbeitet werden kann: GraphQL, Python, JavaScript, Gemstone
  • Diese Unterstützung ist standardmäßig enthalten und kann zugleich als Beispiel dafür dienen, was Nutzer für einzelne Sprachen und Technologien selbst erstellen können

Lizenz und Materialien

Noch keine Kommentare.

Noch keine Kommentare.