Die semantische Schicht von EDB Postgres AI liefert einem Agenten Kontext zu Tabellen, Spalten und Geschäftsbegriffen. In der von AWS beschriebenen Architektur läuft der Agent über Amazon Bedrock AgentCore und einen MCP-Endpunkt auf AIDB; PostgreSQL setzt die Zugriffsrechte durch. Der folgende Ablauf orientiert sich am AWS-Tutorial zur Integration und dessen C360-Beispiel.
Was die semantische Wissensbasis indexiert
Die AIDB Semantic Knowledge Base (SemKB) erfasst Metadaten des Schemas, darunter Tabellen, Views, Spalten, Kommentare und Fremdschlüsselbeziehungen. Sie indexiert nicht die Zeilen der zugrunde liegenden Tabellen. Der Agent kann damit Namen und Beziehungen im Schema finden; die eigentlichen Abfragen laufen weiterhin gegen PostgreSQL.
Die Geschäftssemantik ergänzen Sie an mehreren Stellen: COMMENT ON-Kommentare erklären, was eine Spalte bedeutet, Views bilden wiederverwendbare Geschäftsbegriffe ab, und Fremdschlüssel liefern mögliche Join-Pfade. Ein semantischer Alias kann außerdem eine beschriebene, parametrisierte und schreibgeschützte SELECT-Abfrage als Werkzeug für den Agenten bereitstellen.
Voraussetzungen für das C360-Beispiel
Das Tutorial setzt EDB Postgres AI mit aktivierter AIDB-Erweiterung voraus. Für die Beispieldaten werden vier CSV-Dateien in ein eigenes Schema c360 geladen. Sie ergeben die Tabellen customers, locations, products und purchases sowie eine daraus abgeleitete View. Die Beziehungen zwischen den Tabellen müssen als Fremdschlüssel abgebildet sein, damit die SemKB sie als Join-Pfade erfassen kann.
Die Integration Schritt für Schritt einrichten
- C360-Daten laden und Beziehungen abbilden. Laden Sie die vier CSV-Dateien in
c360und legen Sie die Fremdschlüssel an. Sie bilden die Grundlage dafür, dass der Agent Tabellen und mögliche Verknüpfungen auffinden kann. - Geschäftsbegriffe und Spalten dokumentieren. Ergänzen Sie Kommentare und Views für die Bedeutung Ihrer Daten. Im Beispiel steht
purchases.pricefür den Gesamtbetrag einer Bestellung, nicht für den Stückpreis. Die Viewbig_spenderdefiniert einen Großkunden als jemanden mit mindestens einer Bestellung über 250 US-Dollar. Solche Definitionen beeinflussen, welche Abfrage zu einer Frage passt. - Die SemKB für das Schema konfigurieren. Das Tutorial legt
c360_kbfür das Schemac360an und verwendet dafürbge-small-en-v1.5-f16sowieauto_processing => 'Live'. AWS nennt außerdemBackgroundundDisabledals mögliche Verarbeitungsmodi. Bei mehreren SemKBs muss die Suche den Parameterkb_nameangeben. - Den AIDB-MCP-Endpunkt aktivieren. Aktivieren Sie
edb.endpoints_mcp_enabledund nehmen Sieaidbinshared_preload_librariesauf; anschließend muss PostgreSQL neu gestartet werden. Der Endpunkt verwendet im Beispiel standardmäßig Port8765. Für eine Bindung außerhalb vonlocalhostsind TLS-Zertifikat und Schlüssel einzurichten. - Den Netzwerkpfad zu AgentCore herstellen. Das Beispiel stellt
edb-endpointshinter einen HTTPS Application Load Balancer (ALB) und registriert ihn als MCP-Ziel bei AgentCore Gateway. Der Endpunkt spricht Streamable HTTP MCP direkt, sodass dieser Pfad keine AWS-Lambda-Übersetzungsschicht benötigt. AWS empfiehlt für den Produktionseinsatz eine private VPC-Verbindung. Im beschriebenen ALB-Aufbau wird HTTPS auf Port8765zum Ziel weitergeleitet; die Zertifikatskette des Backend-Ziels wird dabei nicht validiert.
Identität und Datenbankzugriff getrennt absichern
Amazon Cognito stellt im Beispiel das JWT des Benutzers aus. AgentCore Gateway validiert es und prüft die Richtlinie für den Tool-Zugriff. Für die Verbindung zur Datenbank liefert AgentCore Identity dem MCP-Ziel separat die Zugangsdaten einer PostgreSQL-Rolle per HTTP Basic Authentication. Der Agentencode erhält diese Zugangsdaten nicht.
Die Berechtigungen für Tabellen, Spalten und Zeilen setzt PostgreSQL anhand dieser Rolle durch. Damit hängen die zugänglichen Daten von den gewährten Rechten ab, nicht allein von der Formulierung des Prompts.
Rollen und Abfragen prüfen
Testen Sie dieselbe Frage mit einer uneingeschränkten und einer eingeschränkten Rolle. Im C360-Beispiel kann die eingeschränkte Rolle die Spalte customers.ssn nicht lesen; PostgreSQL weist den Zugriff mit einem Berechtigungsfehler zurück. Row-Level Security kann den Zugriff zusätzlich auf bestimmte Zeilen begrenzen.
Eine ausführbare Abfrage ist noch kein Beleg dafür, dass ihre Geschäftsdefinition richtig gewählt wurde. Eine separate Anwenderdemonstration mit Snowflake zählte in einem Beispieldatensatz mit 34 Anbietern 25 als „aktiv“ nach einer Definition auf Basis von Käufen oder Rechnungen der vergangenen zwölf Monate, 24 nach einer 90-Tage-Definition und 21 nach einem ERP-Statusfeld. Das Beispiel stammt nicht aus der EDB-Implementierung. Es zeigt, warum ein Unternehmen festlegen muss, welche Definition für einen Begriff wie „aktiv“ gelten soll, bevor ein Ergebnis als fachlich freigegeben behandelt wird.
Anwender, die über Agenten mit großen Datenbankschemata diskutierten, empfahlen außerdem, bekannte Fragen regelmäßig zu testen, Abfragepläne zu prüfen und die verwendete Geschäftsdefinition festzuhalten. Ein Nutzer beschrieb den Vergleich gespeicherter Schema-Schnappschüsse, um Änderungen an referenzierten Tabellen zu erkennen. Ein anderer berichtete von einer verzögerten Replik, deren veralteter Stand einen bereits bezahlten Saldo noch als offen erscheinen ließ. Das sind Anwenderberichte aus anderen Umgebungen, keine Funktionen von EDB.
Für die Beobachtbarkeit kann AIDB SQL-Ausführungsspuren im Schema aidb_otel speichern, wenn die Telemetrie aktiviert ist. AgentCore erfasst separat Spuren zu Werkzeug- und Modellaufrufen sowie zum Tokenverbrauch in CloudWatch Transaction Search.