KI & Agenten
Rebase liefert vier verschiedene Komponenten für KI-Assistenten, die unterschiedliche Probleme lösen. Es lohnt sich zu wissen, nach welcher davon Sie greifen:
| Was es ist | Wer es nutzt | |
|---|---|---|
| MCP server | Ein stdio-basierter Model Context Protocol-Server mit 40 Tools für Ihr Schema, Daten, Benutzer, Speicher, Cron und Dev-Server | Ein Assistent zur Laufzeit |
| Agent skills | 20 Markdown-Skill-Dateien, die durch rebase skills install in Ihr Repository geschrieben werden |
Ein Assistent als Referenzmaterial |
| Instruction files | ai-instructions.md plus assistentenspezifische Pointer-Dateien, erstellt durch rebase init |
Ein Assistent als dauerhaft aktive Regeln |
| API keys | Bereichsbezogene Maschinen-Zugangsdaten, pro Collection und pro Operation | Alles, was die HTTP-API aufruft |
Die ersten drei dienen dazu, einem Assistenten Wissen und Werkzeuge bereitzustellen. Die vierte ist die einzige, die bestimmt, was er tatsächlich tun darf.
Der entscheidende Teil: Was ein Agent anfassen darf
Abschnitt betitelt „Der entscheidende Teil: Was ein Agent anfassen darf“Ein Agent mit Werkzeugen für Ihre Datenbank ist ein gewöhnlicher API-Aufrufer, der zufällig seine nächste Anfrage selbst bestimmt. Rebase versucht nicht, ihn durch Anweisungen einzuschränken – ein Prompt ist kein Mechanismus zur Zugriffskontrolle, und ein Agent, der Ihre Zeilen liest, liest Text, den jemand anderes geschrieben haben könnte. Die Einschränkung muss unterhalb des Agenten greifen, in den Zugangsdaten, die er mitführt.
Rebase gibt diesen Zugangsdaten zwei unabhängige Kontrollstufen:
- Die API-Schlüssel-Berechtigungsliste. Deklariert pro Collection und pro Operation,
wobei
deletevonwritegetrennt werden kann – was meistens das ist, was Sie einem Agenten vorenthalten möchten, der ansonsten bearbeiten darf. - Row-Level Security. API-Schlüssel umgehen RLS nicht. Ein Schlüssel verbindet sich
wie jeder andere Aufrufer über die Postgres-Rolle
rebase_user, sodass Ihre Richtlinien weiterhin bestimmen, welche Zeilen zurückgegeben werden.
Beide müssen eine Anfrage erlauben. Keine ersetzt die andere, und die zweite
ist der Grund dafür, dass ein Schlüssel mit "*"-Berechtigungen dennoch eine leere Ergebnismenge
zurückgeben kann.
Ein Punkt, der oft übersehen wird: access: "public" einer Collection erweitert welche
Zeilen ein Aufrufer sehen darf, nicht wer aufrufen darf. Es ist eine Aussage über die
Sichtbarkeit von Zeilen, nicht über die Authentifizierung. Das Gewähren fügt einen Aufrufer
nicht zur Berechtigungsliste hinzu, und das Verweigern stoppt ihn nicht.
Die Mechanismen – Erstellen von Schlüsseln, das Berechtigungs-JSON, Rotation, Ablauf, Ratenbegrenzungen – werden in REST API → API Keys behandelt. Überspringen Sie dabei nicht Security Rules (RLS); die zweite Kontrollstufe ist nur so gut wie die Richtlinien, die Sie geschrieben haben.
Vektorsuche
Abschnitt betitelt „Vektorsuche“Rebase bietet einen erstklassigen vector-Eigenschaftstyp auf Postgres und eine
.vectorSearch()-Abfragemethode mit cosine-, l2- und inner_product-Distanz.
Dies ist bereits an zwei Stellen dokumentiert:
- Querying Data → Vector Search — die SDK-Methode,
das
_distance-Feld, das jeder Zeile hinzugefügt wird, und die Besonderheiten - REST API → Vector Search — die Abfrageparameter
vector_search,vector,vector_distanceundvector_threshold
Drei Dinge, die Sie wissen sollten, bevor Sie darauf aufbauend entwickeln: Rebase speichert und durchsucht
Embeddings; es berechnet sie nicht – es gibt in Rebase keinen Embedding-Provider,
keine Modell-Einstellung und keinen API-Schlüssel, die Generierung der Vektoren liegt also bei Ihnen.
pgvector ist eine Voraussetzung. Das Datenbank-Image des Scaffolds bringt
die Erweiterung mit, ein per rebase init erstelltes Projekt braucht hier also
nichts. Zeigt Rebase auf eine Datenbank, die jemand anderes bereitgestellt hat,
benötigen Sie ein Image mit der Erweiterung und eine Rolle, die einmalig
CREATE EXTENSION vector; ausführen darf – Rebase installiert keine
Erweiterungen für Sie. Und jede Vektorspalte erhält einen HNSW-Index für die
Kosinus-Distanz, denn mit Kosinus misst vectorSearch, sofern Sie nicht
distance übergeben – ein Index bedient genau einen Operator. Anpassen oder
abschalten lässt er sich an der Property: siehe
Der Index.
Vektor-Abfragen können zudem nicht abonniert werden; .vectorSearch(...).listen() wird
mit VECTOR_SEARCH_NOT_LIVE abgelehnt.
Für die lexikalische Suche – gerankte Volltextsuche über die von Ihnen benannten Felder, einschließlich JSONB- und Array-Inhalten – siehe Search. Es ist ein anderer Mechanismus, und die beiden interagieren nicht miteinander.
Nächste Schritte
Abschnitt betitelt „Nächste Schritte“- MCP Server — verbinden Sie Claude Code, Cursor oder beliebige MCP-Clients
- Agent Skills —
rebase skills installund die 20 Skills - AI Instruction Files — das Muster für vorbereitete Regeldateien
