Dokumentation
Ein autonomer Webagent, der zu 100 % im Browser läuft: lokale LLMs auf der GPU (WebGPU), strukturiertes Gedächtnis (AAMS), echte Task-Zerlegung und Ausführung — ohne Cloud, ohne Server.
Was ist das? webgpu-agent ist ein privates Forschungsprojekt / Experiment (WIP) — kein fertiges Produkt, keine Support- oder Stabilitätsversprechen. Es ist ein Prototyp, dessen Zweck es ist, Fragen zu beantworten, die sonst niemand sauber beantwortet: Wie weit kommt ein wirklich autonomer Agent, wenn er komplett im Browser leben muss?
▶ Zur App (Demo) Code auf GitHub (MIT)
1. Warum machen wir das?
1.1 Datensouveränität ist keine Einstellung — es ist die Architektur
Fast alle heutigen AI-Agents arbeiten über Cloud-APIs: Jede Aufgabe, jeder Dateiinhalt, jedes „Gedächtnis" des Agenten läuft über fremde Server. Das ist bequem — aber es bedeutet, dass die Daten nie wirklich uns gehören. Für sensible Inhalte (private Texte, Arbeitsstände, persönliche Notizen) ist das kein vertretbarer Zustand.
webgpu-agent stellt das um: Der Agent läuft komplett im Browser. Es gibt keine Cloud-APIs, kein Backend, keine Serverinfrastruktur. Alle Daten — Aufgaben, Zwischenergebnisse, Audit-Log, Gedächtnis — verbleiben zu 100 % im Client-Browser. Das ist keine Option im Einstellungs-Menü, sondern eine Invariante der Architektur: Sie lässt sich nicht versehentlich „einschalten", weil sie schlicht nicht existiert.
1.2 Lokale Inferenz auf der eigenen GPU
Die Intelligenz kommt nicht aus dem Rechenzentrum, sondern von der GPU des eigenen Geräts. Über WebGPU und WebLLM laufen quantisierte Open-Source-Modelle (Qwen/Llama) direkt im Browser: ein kompakter „Wächter" (0,5 B, läuft permanent) und ein größerer „Planer" (3 B, lädt bei Bedarf nach und wird danach wieder entladen). Damit bleibt alles in einem realistischen VRAM-Budget (Zielprofil: ≤ 4 GB).
1.3 Autonomie im Browser
Ein Agent ist nur dann interessant, wenn er Aufgaben selbst zerlegen und ausführen kann — nicht nur antworten. Deshalb hat das Projekt einen echten Agent-Loop: Der Planer zerlegt eine Aufgabe in Teilaufgaben (fester JSON-Schema), ein Executor führt sie aus, ein Audit-Log dokumentiert jeden Schritt — inkl. echter Token-Usage. Der Agent hat außerdem ein strukturiertes Gedächtnis (Session, Task-Tree, Audit, Memory in IndexedDB) und kann es als JSON exportieren/importieren.
1.4 Die eigentliche Frage: Forschung, nicht Produkt
Dahinter steht eine Forschungsfrage: Wie weit kommt ein autonomer Agent mit echtem Gedächtnis, wenn er vollständig clientseitig leben muss? Wo sind die technischen Grenzen — VRAM, Kontextlänge, WebGPU-Verfügbarkeit, Offline-Fähigkeit, Portabilität des Gedächtnisses? Diese Grenzen wollen wir messen und dokumentieren, nicht behaupten. Deshalb ist das Projekt ausdrücklich ein Experiment: Es gibt ein Benchmark-System, offene Forschungsfragen und einen stufenweisen Plan mit Abbruchkriterien (siehe Forschungsansatz).
1.5 AAMS — Gedächtnis als natives Modell
Das Gedächtnis- und Task-Modell des Agenten ist AAMS (Autonomous Agent Mesh System). Eine Besonderheit dieses Projekts: AAMS spielt doppelt eine Rolle und wird dabei strikt getrennt:
| Rolle | Was | Wo |
|---|---|---|
| A — Arbeitsgrundlage | Steuert den Entwicklungsprozess: Workpapers, Whitepapers, Langzeit-Memory, Diary | In diesem Repository (WORKING/) |
| B — Native Agenten-Architektur | Das Gedächtnis- & Task-Modell des Agenten selbst (Session, Task-Tree, Audit, Memory) | Im Browser des Nutzers (IndexedDB + JSON-Export) |
Dasselbe Schema wird in beiden Rollen verwendet, die Instanzen bleiben getrennt. Für den Nutzer heißt das: Der Agent versteht AAMS von Haus aus und baut seine eigene lokale Wissens- und Task-Struktur exakt nach dieser Spezifikation auf.
2. Was ist das Ziel?
2.1 Kernziel
Ein vollständig clientseitiger, autonomer Webagent mit:
- lokaler Inferenz auf der GPU (WebGPU/WebLLM) — keine Cloud für Kernprozesse (Invariante),
- strukturiertem, session-bezogenem Gedächtnis (AAMS-B), portierbar per JSON-Export/Import,
- eigener Task-Zerlegung und -Ausführung (echter Agent-Loop) mit nachvollziehbarer Audit-Spur,
- prüfbar, reproduzierbar und ehrlich dokumentiertem Verhalten (Benchmark-System).
2.2 Forschungsziele (konkret)
| # | Ziel | Warum |
|---|---|---|
| 1 | Benchmark-System (Level L1–L10, ≤ 4 GB-VRAM-Profil, Pass-Regel 5/5, Referenzgerät) | Ohne harte, programmatisch prüfbare Messung ist jede Aussage über „Funktioniert" unbelegt |
| 2 | Wächter-Spezialist (eigenes getuntes 0,5–1,5-B-Modell für Protokoll-Aufgaben) | Der Wächter läuft permanent — seine Zuverlässigkeit hat die größte Hebelwirkung (siehe §6) |
| 3 | Offline nach Setup | Ein „lokaler" Agent, der nach dem ersten Start noch Internet braucht, ist nicht souverän |
| 4 | Gedächtnis-Portabilität (besser als JSON-Export/Import) | Heute: Gedächtnis ist an Browser+Origin gebunden — anderes Gerät = leeres Gedächtnis |
| 5 | Datei-Output (Artefakte: HTML → ZIP → docx/xlsx) | Nachgewiesene Lücke: Aufgabe „6/6 erledigt", aber 0 Dateien — Ergebnisse müssen echte Dateien sein |
| 6 | Helfer-Modelle (OCR / Übersetzung / Web-Fetch) on-demand | Spezialisten nur bei Bedarf im VRAM, danach wieder frei |
2.3 Nicht-Ziele (bewusst)
- Keine Cloud-Anbindung für Kernprozesse, keine automatische Cloud-Synchronisation
- Keine Benutzerverwaltung, kein Multi-Agent-Mesh / WebRTC (spätere, eigene Phase)
- Kein Generalisten-Training, kein Wettlauf mit großen Modellen
- Kein Produkt-Versprechen: Dies ist Forschung — der Stand kann sich ändern, die Richtung bleibt
3. Wo steht das Projekt?
Stand: · Prototyp (Vite + TypeScript) · Lizenz: MIT · Mitarbeit willkommen (GitHub-Issues/PRs).
3.1 Umgesetzt
| Bereich | Was kann es | Status |
|---|---|---|
| Agent-Loop | Echte Zerlegung (Planer-JSON → Task-Tree) + echte Ausführung (Executor-Regel) mit echter Token-Usage und Audit-Spur (llm.*, plan.*, chat.*) |
umgesetzt |
| Modell-Pool | Wächter (Qwen2.5 0.5B, ≈945 MB) resident + Planer (Llama-3.2 3B, ≈2,3 GB) on-demand · Modell-Katalog ≤ 4 GB · Laden/Entladen, Download-Fortschritt, DEGRADED-State, VRAM-Budget-Balken | umgesetzt |
| Chat | Einziger Dialogkanal, Intent-gesteuert: Status · „beginne" → Ausführung · Aufgabe → Planer + automatischer Loop · Frage → Planer antwortet | umgesetzt |
| Dashboard | Dunkler App-Frame (3 Spalten): Rollen-Karten, VRAM-Bar, Tabs Zuschauen (Live-Feed) / Arbeit (Task-Tree) / Audit (filterbar) / Gedächtnis | umgesetzt |
| Artefakte | HTML-Ergebnisse deterministisch aus task.result extrahiert (kein Schema-Eingriff) → Sandbox-Vorschau (ohne allow-same-origin) + Download + Audit |
umgesetzt |
| Gedächtnis | AAMS-B in IndexedDB (Session, Tasks, Audit, Memory, Knowledge) · „Neue Session" mit automatischem Safety-Export + Rollback · JSON-Export/Import (portabel, mit Schema-Prüfung) | umgesetzt |
| KERN | Prototyp: Tokenwächter (Kontext-Grenzenwächter) + mechanischer Loop (simuliert) — Grundlage für die echten Loops | umgesetzt |
| Benchmark-System | Fixiert als Whitepaper WH-002: Level L1–L10, ≤ 4-GB-Profil, Metriken, Pass-Regel 5/5, Reproduzierbarkeits-Protokoll, Geräterollen | definiert 1. Testlauf offen |
| Live-Demo | Statisch gehostet (HuggingFace-Static-Space), App + Assets verifiziert | live |
3.2 Noch offen
| Punkt | Status |
|---|---|
| Erster Benchmark-Testlauf (L1 auf dem Referenzgerät — GTX 1050 4 GB, Variante zu verifizieren) | offen — erster Schritt |
| Benchmark-Seite (Szenario-Textseiten L1–L5, Start, Run-Report) + Panel „Maschine" | offen |
| Helfer-Modelle (OCR / Übersetzung / Web-Fetch) via Transformers.js | offen |
| Automatisierte Tests (Vitest) für Gedächtnis, Task-Queue, Modell-Pool | offen |
| PWA / Offline-Cache für die Weights (Forschungsziel 3) | bewusst nicht vor Messung |
4. Der Forschungsansatz
4.1 Grundprinzipien
- Messen, nicht raten: Jede Aussage über Besserung braucht einen Benchmark-Vergleich. Keine erfundenen Messwerte.
- Hard DoD: Erfolg ist ein hartes, programmatisch geprüftes 0/1 (z. B. valide JSON ohne Retry), keine „klingt plausibel".
- Strikte Train/Test-Trennung: Auf dem Benchmark trainiert wurde, misst nichts. Test-Szenarien sind zurückgehalten.
- Nur geprüfte Daten: Programmatisch verifizierte Ergebnisse gelten als Beleg — kein Modell bewertet sich selbst.
- Ehrliche Grenzen: Grenzen werden benannt (VRAM, Kontext, Browser), nie still verschwiegen. Ein „nicht möglich" ist ein gültiges Ergebnis.
- Abbruchkriterien: Jeder Forschungsplan hat Stufen mit klaren Abbruch-Bedingungen — auch Abbruch wird dokumentiert.
- Reproduzierbarkeit: Commit-Hash, Modell-Revision, Seed, Tool-Versionen werden festgehalten.
- Lizenz zuerst: Basismodelle, Lehrermodelle und Quellen werden vor Nutzung geprüft.
4.2 Doku-Kette (AAMS-Dev-Prozess, Rolle A)
Der Entwicklungsprozess ist selbst Teil des Experiments: Jede Arbeits-Einheit startet mit einem
Workpaper (offen, mit Autor:in und Auftrag), stabil gewordene Wahrheiten steigen in
ein Whitepaper auf (mit Decision Records — nachvollziehbare Entscheidungen mit
Begründung und Alternativen), und Langzeit-Kontext wird in einem LTM-Index
geführt. Die Kette wird nicht übersprungen: Workpaper → Whitepaper → LTM. Das komplette Repo
(WORKING/) ist offen einsehbar — man kann also sehen, wie das Projekt entsteht.
4.3 Benchmark-Protokoll (WH-002, Auszug)
Das Benchmark-System definiert eine stabile Level-Achse — die Anzahl der Teilaufgaben und der Charakter steigen mit dem Level:
| Level | Teilaufgaben | Charakter |
|---|---|---|
| L1 | 1 | einfache Aufgabe, keine Zerlegung |
| L2 | 2 | minimale Zerlegung |
| L3 | 3 | Standard-Zerlegung |
| L4 | 4 | ein Zwischenergebnis fließt in Teilaufgabe 4 ein |
| L5 | 5 | Zwischenergebnisse + finales Artefakt |
| L6–L9 | 6–9 | Skizze — bei Bedarf ausformulieren |
| L10 | ~10 | kleine App: planen + bauen + HTML-Übersicht (Kern-Proof) |
VRAM-Budget im ≤ 4-GB-Profil (Ground-Truth: WebLLM-Lib-Metadaten):
| Kombination | VRAM (≈) | Passt in ≤ 4096 MB? |
|---|---|---|
| Wächter Qwen2.5-0.5B allein | 944,62 MB | ✅ ~3,1 GB Reserve |
| Wächter + Planer Llama-3.2-3B | 3208,31 MB | ⚠ ~0,8 GB Reserve (beobachten!) |
| Wächter + Fallback Qwen2.5-1.5B | 2574,37 MB | ✅ ~1,5 GB Reserve |
| 7B-Modelle | > 5100 MB | ❌ außerhalb des Zielprofils |
Gemessen wird pro Lauf (automatisch in das Gedächtnis geloggt): harter DoD (0/1), Score (0–3), geplante Teilaufgaben, echte Token-Usage (Prompt/Completion/Total), Zeit, VRAM (geladen + OOM-Events), Flush-Zyklen und KERN-Integrität (nichts nach einem Kontext-Flush verloren — Invariante). Pass-Regel: 5/5 — und „bewiesen" gilt nur auf dem Referenzgerät (GTX 1050 4 GB, Variante zu verifizieren), nicht auf dem Dev-Gerät (RTX 5090). WebGPU-Determinismus ist nicht garantiert → Läufe werden mehrfach wiederholt und die Streuung angegeben.
4.4 Offene Forschungsfragen (Auswahl)
| # | Frage | Status |
|---|---|---|
| 1 | Offline nach Setup: Was darf der Service Worker zuverlässig cachen? App-Shell ja; Weights (1–2,5 GB) → Quota-/CacheStorage-Verhalten je Browser messen | offen |
| 2 | AAMS-B & Origin: Gedächtnis ist an Browser+Origin gebunden — reicht JSON-Export/Import, oder brauchen wir eine Brücke (OPFS + File-System-Access)? | offen |
| 3 | WebGPU-Verfügbarkeit: Welche Browser/Devices können es (Chrome/Edge ja; Firefox/Safari zu prüfen)? Capability-Check + saubere Meldung im UI | offen |
| 4 | Modell-Updates: Wie versionieren wir Weights (Revision pro Modell), wie veralten Caches, wie migrieren Nutzer? | offen |
| 5 | Browser-Extension (Web-Zugriff-Brücke): sinnvoll nur am selben Gerät — wie verteilen/aktualisieren? | offen |
| 6 | Sicherheit/Hosting: CSP-Header, keine Secrets in der App, Web-Zugriff nur über geprüfte Brücke (untrusted-Daten-Regel) | offen |
4.5 Erweiterungs-Proposal (V1–V5, geprüft)
| # | Vorschlag | Prüfergebnis |
|---|---|---|
| V1 | OPFS (Origin Private File System) für größere Kapazität | ✅ machbar |
| V2 | Browser-Extension als Web-Zugriff-Brücke (untrusted-Daten-Regel) | ✅ optional, zuletzt |
| V3 | Pyodide (Python in der Browser-Sandbox) | ✅ erst nach 5/5-Proof |
| V4 | Artefakte: Ergebnisse als echte Dateien | ✅ Schritt 1 (HTML) umgesetzt, ZIP folgt |
| V5 | „Hermes-lite" im Pool | 1–4 ja / 5.5 abgelehnt (kein passendes Modell ≤ 4 GB im Katalog) |
Vorgeschlagene Reihenfolge: V4 → V1 → V5 → V3 → V2 — jede Stufe erst nach menschlicher Freigabe.
5. Offene Probleme — was es zu lösen gilt
Diese Liste ist bewusst gesondert: Hier stehen die Probleme, die wir kennen und die es in Zukunft zu lösen gilt. Bei jedem Punkt steht, warum er wichtig ist und in welche Richtung wir nach besseren Wegen und besseren Lösungen suchen. Die aktuelle Lösung ist bei keinem Punkt als final zu verstehen — genau das ist der Punkt der Forschung.
| Problem | Warum es wichtig ist | Bessere Wege / was wir suchen |
|---|---|---|
| P1 · Offline nach Setup | Ein „lokaler" Agent, der nach dem ersten Start noch Internet braucht, ist nicht souverän. Weights (≈3 GB) + Cache-Quota sind je Browser unbekannt | Zuverlässige Cache-Strategie messen (Service Worker, CacheStorage vs. OPFS), selbst gehostete Weights, Update-/Versions-Strategie — pro Browser messen, nicht raten |
| P2 · Gedächtnis an Browser+Origin gebunden | Anderes Gerät oder Browser = leeres Gedächtnis. Heute gibt es nur JSON-Export/Import (manuell) | Bessere Portabilität: OPFS + File-System-Access-API, lokale Synchronisations-Konzepte, bessere Import-/Merge-UX — ohne Cloud (Invariante bleibt) |
| P3 · WebGPU-Verfügbarkeit | Chrome/Edge ja, Firefox/Safari nein — ein Teil der Nutzer kann das Projekt nicht nutzen | Besserer Capability-Check + ehrliche Meldung im UI; langfristig: Alternativen prüfen (WASM-Runtimes, andere Backends) — als eigene Studie, nicht als Stillstand |
| P4 · Modell-Updates & Caches | Neue Quantisierungen/Revisionen: Wie veralten Caches? Wie kommen Nutzer zu besseren Modellen, ohne zu verlieren? | Revisionssystem pro Modell, saubere Cache-Invalidation, Migrations-Pfad — Teil des Benchmark-Protokolls (Reproduzierbarkeit) |
| P5 · Kontextfenster (4096 Tokens) | Für größere Aufgaben zu klein; der Tokenwächter muss Kontext flushen — dabei darf nichts verloren gehen (Invariante) | Progressive Disclosure (nur benötigte Kontext-Schnitte), bessere Memory-Kompression/Reflexion, längere Kontexte nur, wenn das VRAM-Profil es hergibt |
| P6 · Datei-Output | Nachgewiesene Lücke: eine Website-Aufgabe lief „6/6 erledigt" — aber 0 Dateien. Ein Agent ohne echte Dateien ist unvollständig | Artefakt-Pipeline (V4): HTML (fertig) → ZIP/mehrdateiig → docx/xlsx; File-System-Access für direkten Speicherort-Wunsch |
| P7 · Reproduzierbarkeit auf WebGPU | Inferenz ist nicht deterministisch garantiert — Benchmark-Ergebnisse sind nur im Rahmen der Streuung vergleichbar | Besseres Protokoll: mehr Läufe, fixierte Seeds wo möglich, Spannweite ausweisen, „bewiesen" nur auf dem Referenzgerät |
| P8 · VRAM auf kleinen GPUs | Wächter + Planer lassen im 4-GB-Profil nur ≈0,8 GB Reserve — enger als gedacht | Besseres VRAM-Budget mit Systemreserve, Quantisierungs-Wahl via Capability-Gate (shader-f16 → q4f16_1, sonst q4f32_1), Fallback-Pfade |
| P9 · Training: Daten & Qualität | Für den Wächter-Spezialisten: Daten-Leckage, Lehrer-Fehler, Lizenzen, Quantisierungs-Verlust — alles kann den Tuning-Nutzen aufzehren | Strikter Split, nur programmatisch geprüfte Daten, lizenzkonforme Lehrermodelle, Vor-/Nach-Messung des Exports (Details in §6) |
| P10 · Distribution & Sicherheit | Hosting (CSP, Model-CDN) und die Web-Zugriff-Brücke (Extension) müssen sicher bleiben, ohne die Invariante „keine Secrets in der App" zu brechen | Besseres Hosting-Setup (ggf. selbst gehostetes Weights-CDN), untrusted-Daten-Regel für alles Webseitige, saubere Capability-Grenzen |
6. Ein eigenes Modell für den Wächter
Der Wächter ist die permanent geladene Instanz des Agenten (≈945 MB, resident). Er führt die engen Protokoll-Aufgaben aus: Planer-JSON im festen Schema, Tool-Aufruf-JSON, Skill-Routing und Memory-Zusammenfassungen. Genau deshalb ist er der interessanteste Kandidat für ein eigenes, getuntes Modell.
6.1 Der Ansatz
- Ein schmales Modell (0,5–1,5 B), zugeschnitten auf die Protokoll-Aufgaben, das im ≤ 4-GB-VRAM-Profil läuft.
- Hypothese: Ein getunter Spezialist ist in diesen engen, prüfbaren Aufgaben zuverlässiger als das ungetunte Basismodell — bei gleicher Größe. Er ist ausdrücklich kein Generalist.
- Stufenplan mit Abbruchkriterien (0–5), jede Stufe endet mit ehrlicher Auswertung — auch bei Abbruch:
| Stufe | Inhalt | Abbruch / Weiter |
|---|---|---|
| 0 | Datenerfassung: jeder Lauf loggt Prompts, Antworten, Prüf-Ergebnisse, Versionen als JSONL (kein Training) | Weiter, sobald Format stabil |
| 1 | Baseline ohne Training: Prompt-Optimierung + schemabasierte JSON-Ausgabe | Wenn die Baseline schon ≥ Zielwert → Training überflüssig, Stufen 2+ streichen |
| 2 | Datensatz-Aufbau: Lehrermodell + Filter, strikter Train/Val/Test-Split, Dubletten-Check | Weiter bei genügend geprüften Beispielen je Task |
| 3 | Erstes Tuning (LoRA/QLoRA) auf 0,5 B, ggf. 1,5 B | Abbruch, wenn Val-Metriken nicht besser als Baseline |
| 4 | Export für WebGPU: Adapter zusammenführen, quantisieren, kompilieren, in WebLLM laden | Abbruch, wenn Export Qualität oder VRAM-Profil bricht |
| 5 | Benchmark-Vergleich Base vs. Tuned im selben Protokoll (WH-002) | Entscheidung über Aufnahme in den Pool (Decision Record) |
Messgrößen (Base vs. Tuned, identische Bedingungen): Schema-Validität ohne Retry, Tool-Wahl und Parameter korrekt, Retry-Rate, harter DoD-Erfolg, Token/Zeit pro Aufgabe, VRAM-Spitze — und Test-Set-Leistung getrennt von Val-Leistung, damit Überanpassung sichtbar bleibt. „Besser" heißt: Verbesserung außerhalb der Streuung auf dem Test-Split.
6.2 Sinnhaftigkeit & erwarteter Nutzen
- Höhere Zuverlässigkeit genau dort, wo sie am meisten zählt: Der Wächter läuft permanent und ist die „Stimme" des Agenten. Wenn er Planer-JSON und Tool-Aufrufe ohne Retry sauber erzeugt, wird der gesamte Loop stabiler.
- Weniger Retry = weniger Latenz und weniger Token: Jede vermiedene Wiederholung spart Zeit und VRAM-Druck — im 4-GB-Profil ein reales Budget.
- Prüfbar und begrenzt: Die Aufgaben sind eng und programmatisch prüfbar (Schema, DoD). Das macht den Nutzen messbar — im Gegensatz zu vagen „bessere Antworten".
- Ehrliche Einordnung: Ein getunter Wächter wird nicht als „intelligent" beschrieben, sondern als „zuverlässig im Protokoll". Er ersetzt keinen Generalisten — er entlastet ihn.
6.3 Die Probleme (bewusst sichtbar)
| Problem | Gegenmaßnahme / wie wir es prüfen |
|---|---|
| Daten-Leckage / Auswendiglernen des Benchmarks | Strikter Split: Test-Szenarien nie im Training; Dubletten-Check; zurückgehaltene Zusatz-Szenarien |
| Lehrer-Fehler im Trainingssatz | Nur programmatisch geprüfte Beispiele (Schema + DoD) — kein Modell bewertet sich selbst |
| Überanpassung auf das Protokoll, Verlust von Allgemeinwissen | Aufgabe bewusst eng halten; Generalisten-Leistung wird nicht versprochen (Leitplanke T7) |
| Quantisierung/Export bricht die Qualität | Stufe 4 misst vor/nach Export; Abbruchkriterium, wenn das VRAM-Profil oder die Qualität bricht |
| Lizenzen (Basismodell + Lehrermodell) | Vor Stufe 2 abschließen: Lizenzen selbst lesen, dokumentieren, abgeleitete Modelle prüfen |
| „Moving Target": Der Agent verändert sich laufend | Commit-Hash, Tool-Registry- und Skill-Version in jedem Datensatz festgehalten |
| Aufwand unterschätzt | Abbruchkriterien pro Stufe — und Stufe 1 kann den ganzen Plan beenden („Baseline reicht schon") |
7. Links
- App (Demo): Diese App · Space: huggingface.co/spaces/ogerl/webgpu-agent
- Code (MIT): github.com/ogerly/webgpu-agent — inkl. vollständiger Doku-Kette (
WORKING/) - Projekt-Vision (Whitepaper-Quelle):
idee.mdim Repository - Beispiel-Projekte des Autors: AAMS · webgpu-arena
- Mitarbeit: Feedback, Issues und Pull Requests sind willkommen — siehe README des Repositories.