De semantische laag van EDB Postgres AI geeft een agent context over de betekenis van schema’s; Amazon Bedrock AgentCore bereikt AIDB via MCP, terwijl PostgreSQL met rollen en rijbeveiliging bepaalt welke gegevens een query mag lezen. AWS beschrijft deze opzet in een technische walkthrough met een C360-voorbeeld.
Wat de semantische laag indexeert
De AIDB Semantic Knowledge Base (SemKB) indexeert metagegevens van PostgreSQL: tabellen, kolommen, views, beschrijvingen en relaties via foreign keys. De SemKB doorzoekt de structuur en uitleg van de database, niet de rijen met gegevens zelf. De agent kan die context gebruiken om relevante tabellen en join-paden te vinden.
In de demonstratie legt AWS bedrijfsbetekenissen vast met COMMENT ON-commentaar, views en semantische aliassen. Zo’n alias is een benoemde, geparametriseerde, alleen-lezen SELECT met een beschrijving in gewone taal. De agent krijgt die query als hulpmiddel aangeboden.
Wat je nodig hebt
Voor de beschreven inrichting heb je EDB Postgres AI met de AIDB-extensie nodig, plus toegang tot Amazon Bedrock AgentCore en de onderdelen voor identiteit, netwerkverbinding en databasecredentials. Het C360-voorbeeld gebruikt vier CSV-bestanden uit de Stardog C360 Knowledge Kit. De Python-agent is gebouwd met Strands Agents en een MCP-client; het modelvoorbeeld gebruikt Claude op Amazon Bedrock. De beschikbaarheid van modellen verschilt per AWS-regio.
De aansluiting stap voor stap
- Laad de C360-gegevens in PostgreSQL. Maak het schema
c360met de tabellencustomers,locations,productsenpurchases, en leg de foreign keys vast. Het voorbeeld bevat daarnaast één afgeleide view. - Beschrijf de betekenis van schemaonderdelen. Gebruik
COMMENT ONom tabellen en kolommen in zakelijke termen toe te lichten. Beschrijf ook gevoelige velden, zodat de contextlaag begrippen niet alleen aan technische kolomnamen hoeft te koppelen. - Leg zakelijke definities vast in views en aliassen. In het voorbeeld definieert de view
big_spendereen grote klant als iemand met minstens één bestelling boven US$ 250. De aliasbig_spenders_by_statebiedt daarvoor een benoemde, geparametriseerde, alleen-lezen query aan.De betekenis vanpurchases.priceis hier bepalend: het veld bevat een ordertotaal, geen prijs per stuk. AWS vermeldt dat een verkeerde interpretatie als stukprijs in de C360-demonstratie een foutieve uitkomst van ongeveer US$ 502.529 opleverde voor de grootste klant. Met de bedoelde betekenis gaf de voorbeeldquery US$ 27.991,66. - Configureer de SemKB voor het schema. De voorbeeldkennisbank heet
c360_kb, gebruikt modelbge-small-en-v1.5-f16en staat opauto_processing => 'Live'. AWS noemt ook de modiBackgroundenDisabled. Wanneer er meerdere SemKB’s zijn, moet een zoekopdracht de gewenste kennisbank metkb_nameaangeven. - Schakel het AIDB MCP-eindpunt in. Zet
edb.endpoints_mcp_enabledaan en voegaidbtoe aanshared_preload_libraries. Herstart daarna PostgreSQL. Het voorbeeld gebruikt poort8765; voor een binding buiten de lokale interface zijn TLS-instellingen met een certificaat en sleutel nodig. - Verbind het MCP-eindpunt met AgentCore Gateway. Plaats een HTTPS Application Load Balancer (ALB) voor
edb-endpointsen registreer die route als MCP-doel in AgentCore Gateway. Omdat het AIDB-eindpunt streamable HTTP MCP spreekt, gebruikt deze route geen AWS Lambda als vertaallaag. In het beschreven voorbeeld gebruikt de ALB-doelgroep HTTPS op poort8765, maar controleert die de certificaatketen van de backend niet. AWS beveelt voor productie een private VPC-verbinding aan. - Richt de inkomende gebruikersidentiteit in. Amazon Cognito geeft het JWT van de gebruiker uit. AgentCore Gateway valideert dit token en beoordeelt met een Cedar-beleid of de gebruiker de tools mag aanroepen.
- Stel de uitgaande databasecredentials in. AgentCore Identity levert de gebruikersnaam en het wachtwoord van de gekozen Postgres-rol aan het MCP-doel via HTTP Basic-authenticatie. De code van de agent krijgt die databasecredentials niet zelf.
- Beperk de toegang met PostgreSQL-rollen. Ken de benodigde tabel- en kolomrechten toe aan de rollen en gebruik waar nodig row-level security, oftewel beveiliging op rijniveau. PostgreSQL handhaaft die regels wanneer het MCP-doel de query uitvoert.
Controleer de toegangsrechten en voorbeeldresultaten
Test dezelfde prompt en tools met een volledige en een beperkte Postgres-rol. In AWS’ C360-demonstratie krijgt de beperkte rol een foutmelding wanneer die customers.ssn probeert te lezen, omdat een kolomrecht de toegang blokkeert. Row-level security kan daarnaast bepalen welke rijen een rol te zien krijgt.
De voorbeeldquery voor big_spender telt klanten met minstens één bestelling boven US$ 250. AWS rapporteert deze uitkomsten voor de C360-dataset:
| Staat of gebied | Klanten |
| Florida | 46 |
| Texas | 46 |
| Californië | 42 |
| District of Columbia | 24 |
| New York | 23 |
Dit zijn uitkomsten uit de voorbeelddata, geen prestatiemetingen. De volledige C360-demonstratie bestaat uit vier tabellen en één view.
Volg ook SQL-uitvoering en agenttraces
AIDB kan, zodra OpenTelemetry is ingericht, SQL-uitvoeringstraces opslaan in het schema aidb_otel. AgentCore registreert afzonderlijk traces van toolaanroepen, modelaanroepen en tokengebruik in CloudWatch Transaction Search. Die twee sporen helpen bij het bekijken van verschillende delen van een verzoek: de databasequery en het gedrag van de agent.
Controleer definities, schemawijzigingen en dataversheid
Een semantische laag past een gekozen bedrijfsdefinitie toe, maar bepaalt niet vanzelf welke betekenis een organisatie heeft goedgekeurd. Een gebruiker die een aparte demonstratie met Snowflake beschreef, kreeg in een dataset met 34 leveranciers drie verdedigbare tellingen voor ‘active vendors’: 25 op basis van aankopen of facturen in de afgelopen twaalf maanden, 24 op basis van de afgelopen negentig dagen en 21 op basis van een ERP-statusveld. De communitydemonstratie op Reddit ging over Snowflake, niet over EDB. De praktische stap is om voor zulke termen een eigenaar en een expliciete definitie vast te leggen; vraag om verduidelijking als een vraag bij meerdere meetregels past.
Ook een query die zonder foutmelding draait, kan een verkeerd getal opleveren. In een aparte discussie over agents op grote databases adviseerde gebruiker u/MemStrata om het queryplan in gewone taal te beoordelen en de gebruikte bedrijfsdefinitie bij de query te registreren. Gebruiker u/bshivarthy beschreef het hashen en vergelijken van schema-opnamen en het markeren van definities wanneer de onderliggende tabellen veranderen. Die gebruiker vertelde ook dat verouderde replica-data tot een achterhaald saldo had geleid. Dit zijn ervaringen van practitioners, geen functies van EDB. Naast rechten zijn bekende testvragen, schemawijzigingen en de actualiteit van de gegevens dus afzonderlijke controlepunten.