Zum Hauptinhalt springen

URL-Format

AISCouncil kodiert Bot-Konfigurationen direkt in das URL-Fragment (den Teil nach #). Das bedeutet, dass Teilen eines Bots so einfach ist wie Teilen eines Links – kein Server, keine Datenbank, kein Konto erforderlich. Die URL ist der Bot.

Wie Bot-URLs funktionieren

Wenn Sie einen Bot teilen, nimmt die App die gesamte Bot-Konfiguration – Name, Anbieter, Modell, System-Prompt, Temperatur und alle anderen Einstellungen – und komprimiert sie in einen kompakten String, der im URL-Fragment lebt.

https://aiscouncil.net/#B{base80_payload}

Der Browser sendet das Fragment niemals an einen Server (dies ist Teil der HTTP-Spezifikation), daher bleibt die Konfiguration vollständig clientseitig.

URL-Struktur

Eine Bot-URL hat drei Teile:

TeilBeispielZweck
Basis-URLhttps://aiscouncil.net/Die App selbst
##Fragment-Trenner (nie an Server gesendet)
VLQ-Präfix + PayloadBeLT1Qx9k...Versions-Byte + komprimierte Konfiguration

Das VLQ-Versions-Präfix

Das/die erste(n) Zeichen des Fragments identifizieren die Kodierungsversion mittels Variable-Length-Quantity (VLQ)-Kodierung:

PräfixVersionInhaltstyp
A0Editor-Inhalt (verwendet von aiscouncil.net/s/)
B1Bot-Konfiguration
C2PDL-Page-Spec

Das B-Präfix teilt der App mit: "Dies ist eine Bot-Konfiguration, kodiert mit Version 1 des Codecs." Zukünftige Versionen können neue Formate hinzufügen, ohne bestehende URLs zu brechen.

Base80-Kodierung

Nach dem Versions-Präfix wird der Payload mit einem benutzerdefinierten Base80-Alphabet kodiert. Dieses Alphabet wurde gewählt, um die URL-Dichte zu maximieren, während nur Zeichen verwendet werden, die in URL-Fragmenten ohne Prozentkodierung sicher sind:

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~$&'()*+,;=:@/?

Base80 ist effizienter als Base64 für URL-Fragmente, da es 80 Zeichen statt 64 verwendet und mehr Daten pro Zeichen packt.

Komprimierung

Vor der Base80-Kodierung wird das Bot-Konfigurations-JSON mit deflate-raw komprimiert (über die native CompressionStream-API des Browsers). Dies reduziert eine Bot-Konfiguration typischerweise auf 30-60% ihrer ursprünglichen Größe. Die Komprimierung ist verlustfrei und die Dekomprimierung verwendet die native DecompressionStream des Browsers.

Kodierungs-Pipeline

Bot-Konfiguration (JSON) --> UTF-8-Bytes --> Deflate-raw komprimieren --> Base80 kodieren --> VLQ-Präfix

Schritt für Schritt:

  1. Das Bot-Konfigurations-Objekt wird zu JSON serialisiert
  2. Der JSON-String wird zu UTF-8-Bytes kodiert
  3. Die Bytes werden mit deflate-raw komprimiert (native CompressionStream)
  4. Die komprimierten Bytes werden zu Base80-Zeichen kodiert
  5. Das VLQ-Versions-Präfix (B) wird vorangestellt

Die Dekodierung kehrt den Prozess exakt um.

Bot-Konfigurations-Schema

Die Konfiguration verwendet kurze Ein-Buchstaben-Schlüssel, um die komprimierte Größe zu minimieren:

SchlüsselTypBeschreibungStandard
nstringBot-Anzeigename"Neuer Bot"
pstringAnbieter-ID (anthropic, openai, xai, gemini, openrouter, ollama, etc.)Erforderlich
mstringModell-ID (z.B. claude-sonnet-4-20250514, gpt-4o)Erforderlich
sstringSystem-Prompt""
tnumberTemperatur (0-2)0.7
xintegerMax. Output-Tokens4096
restringReasoning-Aufwand (low, medium, high, max, oder numerisches Budget)
tpnumberTop P (0-1)1
fpnumberFrequency Penalty (0-2)0
ppnumberPresence Penalty (0-2)0
seintegerSeed (für reproduzierbare Outputs)
starrayStop-Sequenzen
rfstringAntwortformat (text oder json)"text"
authintegerZugriffskontrolle: 1 = öffentlich (kein Login erforderlich)
iconstringBot-Icon (Emoji)
dstringBot-Beschreibung
colorstringBot-Akzentfarbe (Hex)"#7c3aed"
kstringPro-Bot-API-Schlüssel (lokal gespeichert, nie in URL)
cobjectCouncil-Konfiguration (für Multi-Modell-Bots)
pfstringProfil-Referenz-ID
clintegerKontextlänge (Nachrichtenverlauf-Limit)
smbooleanStreaming aktivierttrue
atbooleanAuto-Titel für Konversationenfalse
mrbooleanMarkdown-Rendering aktivierttrue
stcbooleanToken-Anzahl anzeigenfalse

Nur Nicht-Standard-Werte werden in die Konfiguration aufgenommen, um die URL-Länge zu minimieren.

Was NICHT in der URL ist

Sicherheitsgarantie

API-Schlüssel sind niemals in URLs enthalten. Das k-Feld (Pro-Bot-API-Schlüssel) wird während der URL-Kodierung entfernt. Schlüssel werden nur im localStorage des Browsers gespeichert und nur an den API-Endpunkt des LLM-Anbieters gesendet.

Folgendes ist von geteilten URLs ausgeschlossen:

  • API-Schlüssel – Empfänger müssen ihre eigenen bereitstellen
  • Chat-Verlauf – nur die Bot-Konfiguration wird geteilt
  • Memory-Einträge – pro-Bot persistenter Speicher bleibt lokal
  • Nutzungsstatistiken – Tracking-Daten sind gerätelokal

Editor-URLs

Der Web-Editor unter aiscouncil.net/s/ verwendet dasselbe Kodierungssystem mit einem anderen Versions-Präfix:

https://aiscouncil.net/s/#A{base80_payload}

Das A-Präfix kennzeichnet Version 0 (Editor-Inhalt). Der Payload enthält den komprimierten Dokumentinhalt statt einer Bot-Konfiguration.

Programmatische Kodierung und Dekodierung

Sie können Bot-Konfigurationen programmatisch mit dem AIS.Codec-Modul in der Browser-Konsole kodieren und dekodieren:

Eine URL dekodieren

// Aus URL-Hash dekodieren
const hash = location.hash.slice(1); // Das '#' entfernen
const config = await AIS.Codec.decodeBotConfig(hash);
console.log(config);
// { n: "Mein Bot", p: "anthropic", m: "claude-sonnet-4-20250514", s: "Du bist hilfreich.", t: 0.7, x: 4096 }

Eine Konfiguration kodieren

const config = {
n: "Forschungsassistent",
p: "anthropic",
m: "claude-sonnet-4-20250514",
s: "Du bist ein gründlicher Forschungsassistent. Zitiere Quellen.",
t: 0.3,
x: 8192,
};
const hash = await AIS.Codec.encodeBotConfig(config);
const url = location.origin + "/#" + hash;
console.log(url);
// https://aiscouncil.net/#BeLT1Qx9k...

Das Schema inspizieren

console.log(AIS.Codec.CONFIG_SCHEMA);
// Gibt die JSON Schema-Definition für Bot-Konfigurationen zurück

URL-Längen-Limits

Browser-Limits

Die meisten modernen Browser unterstützen URL-Längen von mindestens 2.000 Zeichen, viele unterstützen 8.000+ Zeichen. Einige Vermittler (E-Mail-Clients, Social-Media-Plattformen, URL-Shortener) können jedoch lange URLs abschneiden.

Das praktische Limit hängt von der System-Prompt-Länge ab:

System-Prompt-LängeUngefäre URL-LängeKompatibilität
< 500 Zeichen~300-500 ZeichenÜberall sicher
500-2.000 Zeichen~500-1.200 ZeichenSicher in Browsern und den meisten Plattformen
2.000-5.000 Zeichen~1.200-2.500 ZeichenFunktioniert in Browsern, kann in E-Mail/SMS fehlschlagen
> 5.000 Zeichen2.500+ ZeichenNur Browser, kann anderswo abgeschnitten werden

Wenn Ihr System-Prompt sehr lang ist, erwägen Sie:

  • Kürzen oder Zusammenfassen des Prompts
  • Verwendung eines URL-Shorteners, der Fragmente bewahrt
  • Teilen der Bot-Konfiguration als JSON-Datei statt (über Export)

Homepage-Verhalten

Keine URL-Kodierung auf der Homepage

Wenn Sie aiscouncil.net direkt laden (kein Hash in der URL), kodiert die App Ihre Bot-Konfiguration nicht in die URL. URL-Kodierung wird nur aktiviert, wenn die Seite von einer geteilten Bot-URL geladen wurde (d.h. die URL enthielt bereits ein #B...-Fragment). Dies hält die Homepage-URL sauber.