# Knowledge graph y analíticas

> Cómo el knowledge graph vincula hosts, servicios, vulnerabilidades y acceso, sus dos backends y el panel de attack chain construido a partir de él.

El registro de PostgreSQL responde *qué imprimió un comando*. El [knowledge graph](https://pentagi.com/es/docs/glossary/#knowledge-graph) responde *cómo se conectan dos [findings](https://pentagi.com/es/docs/glossary/#finding)*: qué host ejecuta qué servicio, qué vulnerabilidad condujo a qué acceso.

## [Dos backends](https://pentagi.com/es/docs/enterprise/knowledge-graph/#two-backends)

|                                                             | graphstore                    | graphiti                              |
| ----------------------------------------------------------- | ----------------------------- | ------------------------------------- |
| Se ejecuta como                                             | en el backend, graph en Neo4j | servicio separado en Neo4j            |
| Habilitado por                                              | `GRAPHSTORE_INGEST_ENABLED`   | `GRAPHITI_ENABLED` + `GRAPHITI_URL`   |
| [Agent](https://pentagi.com/es/docs/glossary/#agent) [tool](https://pentagi.com/es/docs/glossary/#tool) | `graphstore_search`           | `graphiti_search`                     |
| Estado                                                      | sucesor de graphiti           | heredado, conservado para comparación |

Ambos están limitados a un único [flow](https://pentagi.com/es/docs/glossary/#flow): cada lectura filtra por él, así que un flow nunca ve el grafo de otro flow.

Ambos backends están desactivados por defecto. Con `GRAPHSTORE_INGEST_ENABLED=true`, el graphstore necesita `GRAPHSTORE_NEO4J_URI` y `GRAPHSTORE_NEO4J_DATABASE`, y PentAGI no se inicia sin ellos.

Con Graphiti habilitado también, los dos backends almacenan los activos de forma diferente, por lo que PentAGI se niega a iniciarse cuando ambos escriben una base de datos con el mismo nombre en un servidor, o en cualquier servidor mientras `NEO4J_URI` de Graphiti no esté configurado, a menos que `GRAPHSTORE_ALLOW_SHARED_NEO4J_DATABASE=true`. El Neo4j incluido es Community y sirve solo a la base de datos `neo4j`: con ambos backends en él, mantén `neo4j` y permite el uso compartido, a costa de la calidad del graph, ya que los puertos y servicios se almacenan dos veces y algunas escrituras de Graphiti pueden ser rechazadas. Para mantener los graphs separados, dale al graphstore su propio servidor Neo4j, o su propia base de datos en Neo4j Enterprise: PentAGI crea esa base de datos si falta cuando la cuenta de Neo4j del graphstore puede crear bases de datos; de lo contrario, créala de antemano.

## [Panel de la attack chain](https://pentagi.com/es/docs/enterprise/knowledge-graph/#attack-chain-dashboard)

![Attack chain principal: hosts, puertos, servicios, vulnerabilidades, accesos confirmados y cuentas](https://pentagi.com/images/product/attack-chain.webp)

Con el knowledge graph habilitado, la pestaña **Dashboard → Analytics** del flow renderiza el grafo a medida que crece:

* **Main Attack Chain**: hosts, puertos, servicios, vulnerabilidades, accesos confirmados y cuentas.
* Vistas de **Action Chain**, **Infrastructure**, **Access Chain** y **Priv Esc Chain**.
* Un control deslizante de línea temporal para reproducir cómo evolucionó el panorama, además de tablas de puertos abiertos, CVEs detectados y estado de credenciales.

![Vista de la cadena de acceso](https://pentagi.com/images/product/access-chain.webp)

![Resúmenes de superficie de ataque y accesos confirmados](https://pentagi.com/images/product/analytics-stats.webp)