Pourquoi les bases de données vectorielles ne sauveront pas les agents des auditeurs et comment Semantica résout ce problème
Imaginez un scénario réel. Un agent d'IA dans une entreprise financière a automatiquement rejeté une demande de prêt ou fixé un taux d'intérêt. Six mois plus tard, un régulateur se présente et pose une question simple : « Sur quelle base le système a-t-il pris cette décision ? »
Si votre agent repose uniquement sur une base de données vectorielle et un RAG standard, vous n'aurez pas de réponse adéquate. Les embeddings vectoriels peuvent trouver des fragments de texte similaires basés sur la similarité sémantique. Mais ils ne savent pas quels faits se contredisent, quels précédents passés le modèle a suivis, ni vers quelles conséquences cette chaîne de raisonnement a mené.
C'est là qu'intervient le framework Semantica. Les développeurs le positionnent comme une alternative open-source à Palantir pour les agents autonomes. L'outil s'intègre directement sous votre framework d'agent, votre modèle et votre store vectoriel, ajoutant une couche déterministe de graphes, de règles et d'audit.

Aperçu du projet et concept
Semantica est une bibliothèque Python (pip install semantica) construite autour du concept de Graphes de Contexte. Au lieu de s'appuyer sur un modèle de langage pour construire des connexions logiques, la bibliothèque prend en charge le travail déterministe elle-même. Construire un graphe de connaissances, exécuter des règles ou tracer un audit LLM ne nécessite pas de LLM du tout.
L'architecture de la bibliothèque couvre l'ensemble du cycle de traitement des données. Les données proviennent de fichiers, de pages web, de bases de données traditionnelles et de plateformes d'entreprise comme Databricks et Snowflake. Le texte brut est extrait, nettoyé et divisé en fragments basés sur des entités. À partir de ces fragments, un graphe de connaissances se forme qui se connecte à des moteurs d'inférence déterministes (Rete, Datalog, SPARQL), aux normes W3C PROV-O et aux modules de journalisation des décisions.
Fonctionnalités principales du framework
- Les décisions comme objets de première classe. Dans les systèmes conventionnels, les décisions des agents finissent dans les logs ou la mémoire de chat. Dans Semantica, appeler
record_decision()crée un nœud de graphe avec scénario, arguments, confiance et métadonnées. Les décisions sont liées entre elles par des relations causales. - Moteurs de raisonnement déterministes. Les modèles de langage sont sujets aux hallucinations lors du calcul de règles métier complexes. Le framework inclut des moteurs Rete, Datalog et de chaînage avant. Vous définissez les règles dans le code et le système vérifie les faits sans intervention du LLM, fournissant des résultats transparents.
- Détection des conflits et déduplication. Lorsqu'un index vectoriel reçoit deux faits contradictoires, il stocke généralement les deux ou écrase l'ancien. Semantica suit ces divergences, signale les conflits et propose des stratégies de résolution : de la pondération de confiance de la source à la sélection du fait le plus récent.
- Flexibilité de stockage sans verrouillage fournisseur. La couche de stockage est entièrement polyglotte. Vous pouvez travailler avec des stores RDF (Oxigraph, Blazegraph, Jena, RDF4J) via SPARQL ou des graphes de propriétés (Neo4j, FalkorDB, Apache AGE, AWS Neptune) via Cypher. Les bases de données vectorielles comme Qdrant, Pinecone, Weaviate ou pgvector se connectent sans modifier le code principal.
À quoi cela ressemble dans le code
Regardons un scénario de base pour enregistrer une décision et suivre ses causes.
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)
Chaque décision prise est exportée au format W3C PROV-O, que les régulateurs des secteurs financier et médical acceptent.
Intégrations et écosystème
La bibliothèque fournit des outils de déploiement prêts à l'emploi :
- Un serveur MCP prêt à l'emploi qui connecte Semantica à Claude Desktop, Windsurf, Cursor ou VS Code en quelques minutes.
- Intégration native avec le framework multi-agents Agno, permettant à plusieurs agents de partager un graphe de contexte commun.
- API REST sur FastAPI et l'utilitaire CLI
semanticapour la ligne de commande. - Une interface Knowledge Explorer basée sur un navigateur, construite avec React et Sigma.js pour la visualisation des graphes, le suivi des timelines et l'annotation manuelle des entités.
Qui bénéficiera de ce projet
Si vous construisez un simple projet personnel ou un chatbot basique pour des requêtes dans une base de connaissances, Semantica serait surdimensionné. Un RAG basique sur LangChain ou LlamaIndex suffirait ici.
Mais le projet mérite définitivement l'exploration si vous construisez des agents pour le secteur financier, le droit, la médecine ou la cybersécurité. Dans ces domaines, la capacité de montrer un historique complet des décisions et de garantir la conformité aux règles métier devient une exigence critique du produit.
Projets similaires