KI & Agenten
Rebase liefert vier separate Dinge für KI-Assistenten, und sie lösen unterschiedliche Probleme. Es lohnt sich zu wissen, wonach Sie greifen:
| Was es ist | Wer es nutzt | |
|---|---|---|
| MCP-Server | Ein Stdio-Model-Context-Protocol-Server mit 42 Tools für Ihr Schema, Ihre Daten, Benutzer, Speicher, Cron und Dev-Server | Ein Assistent, zur Laufzeit |
| Agent Skills | 21 Markdown-Skill-Dateien, die durch rebase skills install in Ihr Repo geschrieben werden |
Ein Assistent, als Referenzmaterial |
| Anweisungsdateien | ai-instructions.md plus zeigerbasierte Dateien pro Assistent, geschrieben von rebase init |
Ein Assistent, als dauerhaft aktive Regeln |
| API-Keys | Maschinen-Anmeldedaten, die Scopes halten, pro Collection und pro Operation | Alles, was die HTTP-API aufruft |
Bei den ersten dreien geht es darum, einem Assistenten Wissen und Werkzeuge an die Hand zu geben. Das vierte ist das einzige, das entscheidet, was er tatsächlich tun darf.
Der entscheidende Teil: Worauf ein Agent zugreifen darf
Abschnitt betitelt „Der entscheidende Teil: Worauf ein Agent zugreifen darf“Ein Agent mit Werkzeugen für Ihre Datenbank ist ein gewöhnlicher API-Aufrufer, der zufällig seine eigene nächste Anfrage bestimmt. Rebase versucht nicht, ihn durch Anweisungen einzuschränken – ein Prompt ist kein Zugriffskontrollmechanismus, und ein Agent, der Ihre Zeilen liest, liest Text, den möglicherweise jemand anderes geschrieben hat. Die Einschränkung muss unterhalb des Agenten ansetzen: in den Anmeldedaten, die er mitführt.
Rebase versieht diese Anmeldedaten mit zwei unabhängigen Schranken:
- Die Scopes des Schlüssels. Deklariert pro Operation und, wenn Sie möchten, pro
Collection:
data:read:articles,data:write:articles.data:deleteist vondata:writegetrennt – was normalerweise die Operation ist, die Sie einem Agenten vorenthalten möchten, der ansonsten bearbeiten darf. - Row-Level Security. API-Keys umgehen RLS nicht. Ein Schlüssel verbindet sich wie
jeder andere Aufrufer als 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, warum ein Schlüssel, der data:read auf jeder Collection hält, dennoch eine
leere Ergebnismenge zurückgeben kann.
Ein Punkt, der oft übersehen wird: Das 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. Die
Gewährung gibt einem Schlüssel keinen Scope, und das Verweigern stoppt ihn nicht.
Die Funktionsweise – Erstellen von Schlüsseln, die Wahl der Scopes, Rotation, Ablauf, Rate Limits – wird unter API-Schlüssel behandelt. Überspringen Sie auf dem Weg dorthin nicht Security Rules (RLS); die zweite Schranke ist nur so gut wie die von Ihnen geschriebenen Richtlinien.
Vektorsuche
Abschnitt betitelt „Vektorsuche“Rebase verfügt über einen erstklassigen vector-Eigenschaftstyp auf Postgres und eine
.vectorSearch()-Abfragemethode mit cosine-, l2- und inner_product-Distanz.
Dies ist bereits dokumentiert, und zwar an zwei Stellen:
- Querying Data → Vector Search — die SDK-Methode,
das
_distance-Feld, das jeder Zeile hinzugefügt wird, und die Vorbehalte - REST API → Vector Search — die
Abfrageparameter
vector_search,vector,vector_distanceundvector_threshold
Drei Dinge, die Sie wissen sollten, bevor Sie darum herum planen. Rebase speichert
und durchsucht Embeddings; es berechnet sie nicht – es gibt in Rebase keinen
Embedding-Provider, keine Modelleinstellung und keinen API-Key; die Erstellung der
Vektoren ist also Ihre Aufgabe. pgvector ist eine Voraussetzung, und die Installation
ist optional. database({ extensions: ["vector"] }) in config/resources.ts
ermöglicht es rebase db push und der Schema-Sicherstellung beim Booten,
CREATE EXTENSION IF NOT EXISTS vector für Sie auszuführen; ohne diese Angabe wird
die Spalte angelegt und die Extension Ihnen überlassen. In beiden Fällen benötigt der
Server ein Image, das die Bibliothek enthält, sowie eine Rolle, die berechtigt ist,
sie zu installieren. Und jede Vektorspalte erhält einen HNSW-Index für die
Kosinus-Distanz, da Kosinus das Maß ist, mit dem vectorSearch standardmäßig misst,
sofern Sie nicht distance übergeben – ein Index bedient genau einen Operator.
Sie können ihn optimieren oder deaktivieren: siehe The index.
Vektorabfragen können zudem nicht abonniert werden; .vectorSearch(...).listen()
wird mit VECTOR_SEARCH_NOT_LIVE abgewiesen.
Für die lexikalische Suche – gerankter Volltext über die von Ihnen benannten Felder, einschließlich JSONB- und Array-Inhalten – siehe Search. Es handelt sich um einen anderen Mechanismus, und die beiden interagieren nicht miteinander.
Nächste Schritte
Abschnitt betitelt „Nächste Schritte“- MCP Server — Verbinden Sie Claude Code, Cursor oder einen beliebigen MCP-Client
- Agent Skills —
rebase skills installund die 21 Skills - AI Instruction Files — Das Gerüstmuster für Anweisungsdateien