Beispiel-Apps, bei denen ein BasePeak.AI-Agent das gesamte Backend ist — ohne Datenbank, Framework oder Build-Schritt.
  • JavaScript 62.6%
  • CSS 23.8%
  • HTML 13.6%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Thorsten Klein 07951cd662
feat(bpmn-studio): Auto-Layout statt Agenten-Koordinaten
Die gelieferte DI wird verworfen und mit dagre neu gerechnet: Struktur kommt
vom Agenten, Geometrie vom Layouter. Ueber sieben Proben sinken die Kanten,
die durch einen Kasten laufen, von 4 auf 1.

Zwei Details entscheiden ueber das Ergebnis:
- Orthogonales Routing von Rand zu Rand statt der schraegen dagre-Stuetzpunkte.
- Rueckkanten laufen UNTER der Elementreihe zurueck statt diagonal durchs Bild —
  der Fall, der unbehandelt am haesslichsten aussieht.

Sicherungen: laesst sich eine Kante nicht neu zeichnen (etwa in einen
aufgeklappten SubProcess), bleibt das gelieferte Layout unangetastet; liefert
dagre unbrauchbare Werte, ebenfalls. Ein unvollstaendiges Diagramm waere
schlimmer als ein mittelmaessiges.

app.js ist damit ein ES-Modul; window.__studio haelt den Debug-Zugang offen.
2026-08-26 21:58:16 +02:00
hello-agent docs: Apache-2.0-Lizenz, Thread statt Faden, .gitignore je Beispiel 2026-08-26 21:17:02 +02:00
komiq-bpmn-studio feat(bpmn-studio): Auto-Layout statt Agenten-Koordinaten 2026-08-26 21:58:16 +02:00
.gitignore feat: Beispiel-Apps mit einem Agenten als Backend 2026-08-26 21:06:40 +02:00
LICENSE docs: Apache-2.0-Lizenz, Thread statt Faden, .gitignore je Beispiel 2026-08-26 21:17:02 +02:00
README.md docs: Apache-2.0-Lizenz, Thread statt Faden, .gitignore je Beispiel 2026-08-26 21:17:02 +02:00

BasePeak.AI — Beispiel-Apps

Kleine, lauffähige Anwendungen, bei denen ein Agent das gesamte Backend ist. Keine Datenbank, keine Geschäftslogik, kein Framework — der lokale Server reicht Anfragen an den Agenten weiter und liefert eine Oberfläche aus.

Gedacht zum Lesen, Ausprobieren und Abkupfern.

Die Beispiele

Beispiel Worum es geht Umfang
hello-agent Prompt rein, Antwort raus, Thread bleibt. Hier anfangen. ~100 Zeilen, 2 Dateien
komiq-bpmn-studio Verwaltungsprozesse aus einer Beschreibung als BPMN modellieren, live rendern, vom Agenten auswerten lassen 4 Dateien, mobiltauglich

Jedes Beispiel läuft für sich: cp .env.example .env, Werte eintragen, node server.mjs. Node ≥ 18, keine Dependencies, kein Build-Schritt.

Die wiederkehrenden Muster

Was in allen Beispielen gleich ist — und warum.

Der Proxy existiert nur wegen des Schlüssels

CORS ist auf den Instanzen offen (access-control-allow-origin: *), jede dieser Apps liefe technisch als reine HTML-Datei ohne Server. Dann stünde der API-Key aber im Browser-JS. Der Server hält ihn — mehr tut er nicht.

Der Thread ist der Zustand

POST /api/projects/<projekt>/invoke              → Header: x-bpai-thread-id
POST /api/projects/<projekt>/invoke/thread/<id>  → Agent kennt den Verlauf

Thread-ID merken und mitschicken — das ersetzt jede eigene Zustandshaltung. „Mach das nochmal, aber als paralleles Gateway" funktioniert dadurch ohne eine Zeile Anwendungslogik.

Der kleinste Scope, der reicht

Ein API-Key wird auf ein Projekt und eine Handvoll Rechte ausgestellt. Für reines Chatten genügt:

project:chat:<projekt-id>

Weiteres nur, wenn die App es wirklich braucht — project:files* fürs Ablegen von Dateien, project:threads zum Nachlesen von Verläufen, project:knowledge* für RAG- Dokumente. Ein 403 heißt fast immer: Scope fehlt. Alle Beispiele melden das als solches statt als generischen Fehler.

Agenten-Ausgabe ist nie vertrauenswürdig strukturiert

Wer strukturierte Daten vom Agenten will (XML, JSON, CSV), braucht eine Reparaturstufe. Bei komiq-bpmn-studio waren 4 von 4 rohen BPMN-Ausgaben nicht parsebar — fehlende Namespace-Deklarationen, Markdown-Codefences trotz gegenteiliger Ansage, Begleittext vor und hinter der Nutzlast. Nach der Reparatur waren es 4 von 4 saubere.

Der zweite Fallstrick: abgeschnittene Antworten. Große Ausgaben laufen ins Token-Limit des Modells und brechen mitten im Tag ab. Ein Parser meldet dann etwas Irreführendes wie „unclosed token". Zwei Gegenmittel, beide im BPMN-Beispiel zu sehen: Abbruch erkennen und ehrlich benennen, und die Ausgabe kompakt anfordern (keine Einrückung, kurze IDs — das halbierte dort die Antwortgröße bei mehr Inhalt).

Der Agent antwortet synchron und braucht Zeit

Ein größeres Ergebnis dauert zehn Sekunden bis über eine Minute. Alle Beispiele zeigen währenddessen einen Ladezustand; das BPMN-Studio bietet zusätzlich Abbrechen an.

Was diese Beispiele bewusst nicht tun

  • Keine Authentifizierung. Wer den Server erreicht, kann den hinterlegten Schlüssel benutzen, ohne ihn zu kennen. Für ein lokales Werkzeug in Ordnung — vor einer Veröffentlichung im Netz gehört ein Zugangsschutz davor.
  • Keine Persistenz. Ein Neustart vergisst alles.
  • Kein Mehrbenutzerbetrieb. Ein Thread, ein Mensch.

Das ist Absicht: Diese Beispiele sollen zeigen, wie wenig um einen Agenten herum nötig ist, damit die Muster nicht in Infrastruktur untergehen.

Ein Beispiel hinzufügen

Ein Verzeichnis pro Beispiel, darin README.md, .env.example, server.mjs. Keine Dependencies, kein Build-Schritt — wer es ausprobiert, soll nach node server.mjs fertig sein. Oben in die Tabelle eintragen.

Lizenz

Apache-2.0 — wie die übrigen BasePeak.AI-Komponenten.