Gyred

Eine Steuerzentrale für KI-Agenten als natives Desktop-Fenster, ohne Browser gerendert (Rust + Dioxus). Ein Ort für alle Sessions: was wartet, was läuft, was geplant ist und das gesamte Gespräch. Derselbe Code kompiliert auch für andere Plattformen.

Gyred
TL;DR

Ein natives Desktop-Fenster, um viele KI-Agenten-Sitzungen gleichzeitig zu führen, gebaut in Rust + Dioxus und ohne Browser gerendert. Alle Sitzungen an einem Ort - was auf eine Entscheidung wartet, was arbeitet, was geplant ist, plus das vollständige Gespräch mit jeder - statt Dutzender Tabs und ständigem Wechseln.

Einleitung

Gyred ist die Desktop-Inkarnation der KI-Agenten-Leitwarte aus der Gyre-Familie. Gyre ist ein einziger Ort, an dem man viele Sitzungen gleichzeitig führt: Sie sehen sie, sprechen mit ihnen, planen die Arbeit und bekommen ein Signal, wenn etwas einen Menschen braucht. Diese Fallstudie behandelt den Desktop-Client - das Fenster, in dem diese Leitwarte den ganzen Tag lebt, neben dem Rest der Werkzeuge eines Entwicklers.

Ein wichtiges Prinzip von ganz Gyre: Das Panel besitzt eine Sitzung niemals. Was auch immer Sie im Fenster sehen, Sie können es auch in Ihrem eigenen Terminal öffnen - Gyred ist eine bequeme Ansicht auf Sitzungen, kein Käfig um sie herum. Für denselben Workflow gibt es einen separaten Handy-Client; der Desktop setzt auf Informationsdichte und die Tastatur am Schreibtisch.

Das Problem der zehn Tabs

Wenn Sie eine Agenten-Sitzung führen, reicht ein Browser-Tab. Wenn Sie zehn führen, wird der Tab zur Falle. Sie sehen nicht gleichzeitig, welche Sitzung stehen geblieben ist und auf Ihre Entscheidung wartet und welche noch ihr Eigenes mahlt. Sie wechseln im Kreis, verlieren den Faden und verpassen den Moment, in dem ein Agent an einer Frage hängen geblieben ist - und genau dieser Moment ist der teuerste, denn die Sitzung steht und tut nichts, bis Sie antworten.

Gyred dreht diese Anordnung um. Statt eines Fensters pro Sitzung - ein Fenster für alle Sitzungen, mit einer klaren Aufteilung zwischen dem, was jetzt einen Menschen braucht, und dem, was ruhig weiterarbeitet. Die Liste links zeigt den Zustand des Ganzen, das Panel rechts das vollständige Gespräch mit der ausgewählten Sitzung. Sie müssen sich nicht merken, wo sich die eine versteckt hat, die wartet; sie kommt von selbst nach oben.

Das ist der Unterschied zwischen dem Verwalten der Aufmerksamkeit und ihrem Zerstreuen. Zehn Tabs verlangen, dass Sie selbst ständig jeden einzelnen überprüfen. Ein Fenster mit klarem Zustand tut das für Sie und befreit Sie vom Wachestehen.

Rust und Dioxus statt eines zweiten Browsers

Eine Anwendung, die den ganzen Tag im Hintergrund laufen und den Zustand vieler Sitzungen live aktualisieren soll, darf keine Ressourcen fressen wie ein zweiter Browser. Deshalb sind wir statt Electron auf Rust mit Dioxus gegangen. Dioxus erlaubt es, die Oberfläche im Komponentenstil zu schreiben, der aus dem Frontend bekannt ist, kompiliert aber zu einem nativen Binary - ohne die ganze Chromium-Engine mitzuschleppen, nur um eine Liste und ein Textfeld zu zeichnen.

In der Praxis bedeutet das ein Fenster, das sofort startet und einen niedrigen Speicher-Fußabdruck hält, selbst bei einem Dutzend geöffneter Sitzungen. Für ein Werkzeug, das die ganze Zeit eingeschaltet sein soll, ist das keine Kosmetik - es ist der Unterschied zwischen einem Programm, das Sie vergessen, und einem, das den Laptop im Hintergrund heizt.

Speicher-Fußabdruck beim Start (orientierend, MB)

Dioxus-Client
55
Dasselbe in Electron
260

Ein Kern, viele Inkarnationen

Gyred ist kein separates Programm neben dem Panel und der mobilen App. Der Sitzungskern - die Verbindung, die Ereigniswarteschlange, der Zustand jedes Gesprächs, die Regeln dafür, was einen Menschen braucht - lebt in einer Rust-Schicht, unabhängig davon, was ihn zeichnet. Die Dioxus-Ansicht ist eine Hülle über diesem Kern, über gemeinsame Typen mit ihm verbunden, nicht über eine separate API zu sich selbst.

Dieselbe Entscheidung bringt eine Prämie, die gewissermaßen nebenbei anfiel: Der Komponentencode zielt auch auf andere Plattformen. Sie schreiben die Ansicht einmal, und die Sitzungslogik ist eine einzige für alle Inkarnationen von Gyre. Eine neue Regel oder ein neuer Sitzungszustand wird im Kern erfasst und erscheint überall im selben Commit, statt dreimal neu geschrieben und dreimal anders kaputtgemacht zu werden.

1
Fenster für alle Sitzungen
3
Sitzungszustände: wartet, arbeitet, geplant
0
verpackte Browser

Wer wartet, kommt nach oben

Der ganze Wert eines solchen Fensters läuft auf eine Sache hinaus: nie eine Sitzung zu verpassen, die auf Sie wartet. Deshalb geht die Sortierung nicht nach der Erstellungszeit, sondern danach, ob eine Sitzung einen Menschen braucht. Ein an einer Frage blockierter Agent gehört an die Spitze der Liste, nicht vergraben zwischen zehn, die noch arbeiten.

session.rs · rust
enum SessionStatus {
    Waiting,
    Working,
    Planned,
}

fn needs_human(status: &SessionStatus) -> bool {
    matches!(status, SessionStatus::Waiting)
}
➜
Tipp

Eine einfache Regel, die den Arbeitskomfort verändert: Sortieren Sie Sitzungen danach, ob sie auf einen Menschen warten, nicht nach der Erstellungszeit. Die Warteschlange stellt sich von selbst auf, und Sie schauen nur auf die Spitze der Liste, statt das Ganze auf der Suche nach der einen abzusuchen, die stehen geblieben ist.

1
Sitzungskern in Rust

Verbindung, Ereigniswarteschlange und Zustand jeder Sitzung in einer von der Ansicht unabhängigen Schicht.

2
Ansicht in Dioxus

Sitzungsliste und vollständiges Gespräch als Komponenten, über gemeinsame Typen mit dem Kern verbunden.

3
Priorität für die Wartenden

auf eine Entscheidung wartende Sitzungen landen oben, der Rest darunter, damit nichts verloren geht.

4
Ein Desktop-Binary

kompiliert zu einem nativen Fenster, das schnell startet und einen niedrigen Speicher-Fußabdruck hält.

Was das Endergebnis ist

Statt der Jagd durch Tabs bekommen Sie einen Bildschirm, auf dem sofort zu sehen ist, wo Sie an der Reihe sind. Sie antworten einer Sitzung direkt aus dem Fenster, kehren zu Ihrer Arbeit zurück, und die Agenten arbeiten weiter. Weniger Wechseln, weniger verpasste Entscheidungen, weniger Sitzungen, die im Leeren stehen, nur weil Sie die Frage nicht bemerkt haben.

Und weil es ein natives Binary ist und keine verpackte Seite, verhält sich das Fenster wie der Rest der Programme auf dem Desktop: Es startet sofort, belastet den Speicher nicht und geht nicht im Dickicht der Tabs verloren. Der Rust-Kern ist ein einziger für alle Inkarnationen von Gyre, sodass der Desktop kein separates Projekt zur Pflege ist - er wächst zusammen mit dem Panel und der mobilen App.

Ein Fenster, in dem sofort zu sehen ist, wer an der Reihe ist - der Rest stellt sich von selbst in die Warteschlange.

Weitere Projekte

Weitere Projekte aus derselben Kategorie - sehen Sie, wie wir ähnliche Herausforderungen angehen.

Haben Sie ein ähnliches Projekt?

Melden Sie sich - ein Angebot ist kostenlos und kommt innerhalb einer Stunde.