Skip to content

Instantly share code, notes, and snippets.

View gusdelact's full-sized avatar

Gustavo de la Cruz Tovar gusdelact

View GitHub Profile
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

Una arquitectura de agentes múltiples (multi-agent architecture) que usa RAG con grafos (Knowledge Graphs) para recuperar conocimiento se construye para que varios agentes colaboren, se especialicen y consulten un grafo semántico como fuente de memoria estructurada.


🧠 ¿Qué queremos lograr?

Un sistema donde:

  • Cada agente tiene un rol (planner, ejecutor, razonador…)

La arquitectura de un agente que utiliza RAG Graph (Retrieval-Augmented Generation + Knowledge Graph) se construye para combinar entendimiento semántico estructurado (ontología + grafo) con la generación de lenguaje natural usando LLMs. Aquí tienes una explicación detallada:


🧠 Objetivo general

Crear un agente capaz de leer documentos, construir una ontología estructurada en forma de grafo de conocimiento, y luego usarlo como fuente de recuperación semántica para responder preguntas o ejecutar tareas.


🧩 Componentes de la arquitectura

Transformar un documento de texto en un grafo de conocimiento en Neo4j implica extraer entidades y relaciones del texto, y luego estructurarlas como nodos y aristas. Aquí te dejo los pasos:


🧠 ¿Qué es lo que quieres lograr?

Pasar de esto:

“Ada Lovelace nació en Londres en 1815. Fue hija de Lord Byron.”

Implementar una ontología en Neo4j consiste en modelar los conceptos (clases), relaciones, instancias y propiedades de tu dominio en forma de grafo, aprovechando el lenguaje Cypher para construir y consultar ese conocimiento.


🧠 ¿Qué es una ontología en este contexto?

Es una forma de representar conocimiento semántico en forma de grafo, donde:

  • Clases → son nodos tipo :Clase (ej. :Persona, :Ciudad)
  • Instancias → son nodos que representan ejemplos concretos (ej. (:Persona {nombre: "Ada"}))

Neo4j es una base de datos de grafos orientada a representar y consultar datos que están altamente conectados. Es una de las herramientas más populares del mundo para trabajar con grafos nativos, ideal para modelar relaciones complejas de forma natural, rápida y escalable.

🧠 ¿Qué es una base de datos de grafos? Es una base donde los datos se almacenan como nodos (entidades) y relaciones (conexiones entre ellos), en lugar de tablas como en una base relacional.

🌐 ¿Qué hace único a Neo4j? 💡 Modelo de grafo nativo: los nodos y relaciones son parte de la estructura interna, no un emulado sobre tablas.

⚡ Consultas muy rápidas para redes densamente conectadas (donde SQL sería muy ineficiente).

🧠 ¿Qué es RAG con un grafo de conocimiento? Es un proceso en el que:

Se interpreta la pregunta

Se consulta el grafo para obtener entidades, relaciones o subgrafos relevantes

Se convierte esa información en texto (contexto)

Se alimenta al LLM para generar una respuesta mejor informada

Una base de datos de conocimiento basada en grafos es un tipo de base que almacena hechos, entidades, relaciones y reglas en forma de grafo semántico, permitiendo a las máquinas entender, razonar y consultar información como si fuera un mapa del conocimiento.


🧠 ¿Qué es una base de conocimiento?

Es una colección estructurada de conocimiento explícito, con información como:

  • Conceptos (ej. Persona, Ciudad, Enfermedad)
  • Relación entre ellos (ej. “viveEn”, “esCausaDe”, “trabajaPara”)

Una base de datos de grafos es un tipo de base de datos diseñada para almacenar, consultar y analizar relaciones entre datos de manera nativa, usando estructuras de nodos y aristas (vértices y relaciones).


🕸️ ¿Qué representa?

  • Nodos (vertices) → entidades (como personas, productos, artículos, etc.)
  • Aristas (edges) → relaciones entre esas entidades (como "amigo de", "compra", "menciona")
  • Propiedades → información asociada tanto a nodos como a aristas

En ciencias de la computación, una ontología es una representación formal y estructurada del conocimiento sobre un dominio específico, que define:

  1. Las entidades (conceptos) que existen en ese dominio
  2. Las relaciones entre esas entidades
  3. Las reglas o restricciones que gobiernan esas relaciones

📘 En palabras simples: