PROJEKTEINBLICK ·

Er sollte sich etwas merken

Mit den Widgets konnten Informationen sichtbar bleiben. Aber damit war noch nicht geklärt, was mein Assistent behalten sollte. Ein Gespräch fortzusetzen, mich später an etwas zu erinnern und mir einen Überblick über den Tag zu geben, waren unterschiedliche Aufgaben. Ich musste ihnen jeweils einen eigenen Platz geben.

KONZEPT · UMSETZUNGOliver Röschner
LESEZEIT5 Minuten
BEREICHTECHNOLOGIE
Ein lokaler Rechner zwischen Uhr, Notizbuch und geordneten Karteikarten
KI GENERIERTES ARTIKELBILD | OPERUS

Eine Information auf dem Bildschirm ist praktisch. Wenn ich später darauf zurückkommen möchte, brauche ich allerdings mehr als eine sichtbare Fläche. Mein Assistent musste mit Informationen über den einzelnen Moment hinaus umgehen können.

Dabei steckten hinter dem Wort „merken“ mehrere Wünsche. Im Gespräch sollte eine Rückfrage nicht völlig ohne Zusammenhang dastehen. Eine gesetzte Erinnerung sollte zum passenden Zeitpunkt ausgelöst werden. Und für einen kurzen Tagesüberblick wollte ich vorhandene Informationen zusammenführen können.

Das klang zunächst nach einem gemeinsamen Thema. Bei der Umsetzung waren es aber verschiedene Aufgaben, die ich getrennt behandelte.

Ein Gespräch braucht Zusammenhang

Wenn ich auf eine Antwort eingehe, möchte ich nicht jedes Mal wieder alles erklären. Dafür bekam mein Assistent einen Gesprächsspeicher. Vorherige Eingaben und Antworten konnten bei einer Fortsetzung wieder als Kontext dienen.

Dieser Speicher blieb begrenzt. Ich wollte nicht einfach jede Unterhaltung endlos an die nächste Anfrage anhängen. Mit der lokalen JSON-Datei gab es außerdem einen Weg, Gesprächsverlauf über einen Neustart hinaus aufzubewahren, soweit das Speichern erfolgreich war.

Eine frühere Antwort wiederzufinden macht sie noch nicht automatisch richtig.

Gerade nach den Erfahrungen mit Halluzinationen war diese Unterscheidung wichtig. Auch im Gesprächsverlauf konnte eine falsche Aussage stehen. Der gespeicherte Kontext half beim Anschluss an ein Gespräch; er war keine geprüfte Wissensdatenbank.

Der Verlauf ließ sich auch wieder löschen. Das passte für mich zu einem persönlichen Assistenten: Ich wollte verstehen können, was er behielt, und diesen Zustand zurücksetzen können.

Eine Erinnerung braucht einen Zeitpunkt

Bei einer Erinnerung ging es um etwas anderes. Hier genügte es nicht, dass eine Bitte irgendwo im Gesprächsverlauf stand. Aus ihr musste ein Eintrag mit einer Fälligkeit werden.

Die Anwendung bekam dafür einen eigenen Erinnerungsdienst. Er verwaltete die Einträge, konnte sie auflisten und wieder abbrechen. Die Zeitsteuerung lag damit im Programm und musste nicht bei jeder Nachfrage vom Sprachmodell neu eingeschätzt werden.

Zwei Aufgaben, zwei Arten von Speicher
GesprächskontextErinnerung
Hält vorherige Eingaben und Antworten bereitHält eine Aufgabe mit einer Fälligkeit fest
Hilft beim Fortsetzen einer UnterhaltungLöst zum vorgesehenen Zeitpunkt ein Ereignis aus
Bleibt in seinem Umfang begrenztHat einen eigenen Lebenszyklus bis zur Ausführung oder zum Abbruch

Auch die Erinnerungen wurden lokal gespeichert. Beim Start konnte der Dienst noch ausstehende Einträge wieder einplanen. Das war eine andere Art von Beständigkeit als der Gesprächskontext: Hier ging es um eine Aufgabe, auf deren späteren Zeitpunkt sich die Anwendung vorbereiten musste.

Damit war auch klar, warum diese Funktion einen eigenen Dienst brauchte. Speichern, Warten und Abbrechen gehörten zum normalen Programmablauf. Sie sollten nicht davon abhängen, wie überzeugend ein Modell eine Erinnerung formulierte.

Aus vorhandenen Informationen wurde ein Briefing

Daneben kam das Daily Briefing dazu. Der Name klingt schnell nach einem großen persönlichen Tagesplan. Der vorhandene Anfang war deutlich überschaubarer: eine passende Begrüßung, Datum und Uhrzeit sowie das Wetter, wenn es erfolgreich abgerufen werden konnte.

Interessant war daran für mich vor allem die Zusammensetzung. Für das Wetter musste ich keine zweite Funktion schreiben. Der Briefing-Handler konnte den vorhandenen Wetterweg aufrufen und dessen Ergebnis ergänzen.

Schwarze Module sind über Kupferleitungen mit einer zentralen Einheit verbunden
KI-generierte Illustration. Vorhandene Fähigkeiten verbinden sich zu einem Briefing, statt dieselbe Funktion erneut zu bauen.

Das war wieder ein Moment, in dem die bisherigen Bausteine zusammenpassten. Eine neue Funktion konnte aus vorhandenen Fähigkeiten entstehen. Dafür musste ich nicht jeden Bestandteil erneut entwickeln.

  • Der Gesprächsspeicher lieferte Kontext für die Unterhaltung.
  • Der Erinnerungsdienst verwaltete zukünftige Aufgaben.
  • Das Briefing stellte einen kurzen Überblick aus Datum, Uhrzeit und Wetter zusammen.

Diese Trennung hielt die Aufgaben überschaubar. Das Briefing war damit noch kein vollständiger Kalender und auch keine Zusammenfassung sämtlicher Erinnerungen. Es war ein Anfang, auf dem sich weiter aufbauen ließ.

Persönlicher wurde es durch den Zusammenhang

Meine Instruktionen hatten dem Assistenten bereits eine Rolle und eine Art zu sprechen gegeben. Mit Kontext und Erinnerungen kam eine andere Seite dazu: Informationen konnten über eine einzelne Antwort hinaus Bedeutung behalten.

Dabei blieb für mich dieselbe Frage wichtig wie bei den Skills und Widgets. Wo liegt die Information? Welcher Teil der Anwendung ist dafür zuständig? Und was passiert, wenn ich sie nicht mehr brauche?

Ich konnte diese Fragen jetzt für die einzelnen Funktionen beantworten, statt alles unter einem großen Begriff wie „Gedächtnis“ zusammenzufassen.

Mit dem Briefing zeigte sich außerdem, wie nützlich es war, vorhandene Informationen zusammenzuführen. Auch auf der Oberfläche wollte ich neben Wetter und Uhrzeit weitere Daten übersichtlich anzeigen. Das technische Log konnte ich in einer Seitenleiste ein- und ausblenden. So hatte ich direkt im Blick, was mein KI-Assistent gerade tat.

Teil 9: Aus Widgets wurde mein Signal DeskIm nächsten Teil geht es um den Signal Desk: Nachrichten, Aktien und Krypto bekamen einen gemeinsamen sichtbaren Rahmen – und jede Quelle ihre eigenen Grenzen. JORIS