Waarom Vector Databases Agents Niet Zullen Redden van Auditors en Hoe Semantica Dit Oplost
Stel je een realistisch scenario voor. Een AI-agent bij een financiële instelling wees automatisch een leningaanvraag af of stelde een rentevoet vast. Zes maanden later verschijnt een toezichthouder met een eenvoudige vraag: "Op basis waarvan heeft het systeem deze beslissing genomen?"
Als je agent uitsluitend afhankelijk is van een vector database en standaard RAG, heb je geen adequaat antwoord. Vector embeddings kunnen vergelijkbare tekstfragmenten vinden op basis van semantische gelijkenis. Maar ze hebben geen idee welke feiten elkaar tegenspreken, op welke eerdere precedenten het model leunde, en tot welke gevolgen deze redeneerketen heeft geleid.
Dit is waar het Semantica framework om de hoek komt kijken. De ontwikkelaars positioneren het als een open-source alternatief voor Palantir voor autonome agents. Het gereedschap integreert direct onder je agent framework, model en vector store, en voegt een deterministische laag toe van grafieken, regels en audit.

Projectoverzicht en Concept
Semantica is een Python-bibliotheek (pip install semantica) gebouwd rond het concept van Context Graphs. In plaats van af te hangen van een taalmodel om logische verbindingen te bouwen, neemt de bibliotheek dit deterministische werk op zich. Het bouwen van een kennisgraaf, het uitvoeren van regels, of het traceren van LLM-audit vereist helemaal geen LLM.
De bibliotheekarchitectuur dekt de volledige gegevensverwerkingscyclus. Gegevens komen uit bestanden, webpagina's, traditionele databases en enterprise-platforms zoals Databricks en Snowflake. Ruwe tekst wordt geëxtraheerd, opgeschoond en opgesplitst in chunks op basis van entiteiten. Uit deze chunks vormt zich een kennisgraaf die verbindt met deterministische inferentiemotoren (Rete, Datalog, SPARQL), W3C PROV-O-standaarden en beslissingsloggingsmodules.
Belangrijkste Framework-mogelijkheden
- Beslissingen als eersteklas objecten. In conventionele systemen belanden agentbeslissingen in logs of chatgeheugen. In Semantica maakt het aanroepen van
record_decision()een graafknoop met scenario, argumenten, vertrouwen en metadata. Beslissingen worden aan elkaar gekoppeld via causale relaties. - Deterministische redeneermotoren. Taalmodellen zijn gevoelig voor hallucinaties bij het berekenen van complexe bedrijfsregels. Het framework bevat Rete-, Datalog- en forward chaining-motoren. Je definieert regels in code, en het systeem verifieert feiten zonder LLM-betrokkenheid, met transparante resultaten.
- Conflictdetectie en deduplicatie. Wanneer een vector index twee tegenstrijdige feiten ontvangt, slaat het doorgaans beide op of overschrijft het oude. Semantica volgt dergelijke discrepanties, markeert conflicten en stelt resolutiestrategieën voor: van bronvertrouwensweging tot het selecteren van het meest recente feit.
- Opslagflexibiliteit zonder vendor lock-in. De opslaglaag is volledig polyglot. Je kunt werken met RDF-stores (Oxigraph, Blazegraph, Jena, RDF4J) via SPARQL of property graphs (Neo4j, FalkorDB, Apache AGE, AWS Neptune) via Cypher. Vector databases zoals Qdrant, Pinecone, Weaviate of pgvector verbinden zonder de kerncode te wijzigen.
Hoe Het Er Uitziet in Code
Laten we een basisscenario bekijken voor het vastleggen van een beslissing en het traceren van de oorzaken.
from semantica.context import ContextGraph
graph = ContextGraph(advanced_analytics=True)
# Регистрируем решение о согласовании заявки
app_id = graph.record_decision(
category="credit_application",
scenario="Персональный кредит, доход 150k, DTI 31%",
reasoning="Доход соответствует порогу, стабильный стаж работы",
outcome="proceed_to_underwriting",
confidence=0.88,
metadata={"applicant_id": "A-7291"}
)
# Следующий шаг андеррайтинга
uw_id = graph.record_decision(
category="loan_underwriting",
scenario="Проверка андеррайтером для A-7291",
reasoning="DTI в пределах нормы, чистая кредитная история",
outcome="approved",
confidence=0.94
)
# Связываем решения причиной и следствием
graph.add_causal_relationship(app_id, uw_id, relationship_type="CAUSED")
# Получаем всю цепочку для проверки или аудита
chain = graph.trace_decision_chain(uw_id)
similar = graph.find_similar_decisions("кредит с низким DTI", max_results=5)
Elke genomen beslissing wordt geëxporteerd in W3C PROV-O-formaat, wat toezichthouders in de financiële en medische sector accepteren.
Integraties en Ecosysteem
De bibliotheek biedt kant-en-klare deployment-tools:
- Een kant-en-klare MCP-server die Semantica in een paar minuten verbindt met Claude Desktop, Windsurf, Cursor of VS Code.
- Native integratie met het multi-agent framework Agno, waardoor meerdere agents een gemeenschappelijke contextgraaf kunnen delen.
- REST API op FastAPI en het
semanticaCLI-hulpprogramma voor de commandoregel. - Een browsergebaseerde Knowledge Explorer-interface gebouwd op React en Sigma.js voor graafvisualisatie, tijdlijntracking en handmatige entiteitannotatie.
Wie Zal Profiteren van Dit Project
Als je een eenvoudig hobbyproject of een basis-chatbot bouwt voor kennisbankquery's, zou Semantica overkill zijn. Basis-RAG op LangChain of LlamaIndex zou hier voldoende zijn.
Maar het project is zeker het verkennen waard als je agents bouwt voor de financiële sector, juridische sector, geneeskunde of cybersecurity. In deze domeinen wordt het vermogen om een volledige beslissingsgeschiedenis te tonen en naleving van bedrijfsregels te garanderen een kritieke productvereiste.
Gerelateerde projecten