---
id: 0022
title: Consulta del grafo en lenguaje natural via LLM
status: pending
priority: medium
created: 2026-05-01
depends_on: [0001]
---

## Objetivo

Input de texto ("personas relacionadas con BancoX que aparecen en mas de
3 documentos") -> LLM traduce a SQL sobre `operations.db` o a un set de
filtros sobre el grafo en memoria -> resalta el subgrafo resultante.

Complementa el chat de 0001 con un modo "consulta puntual" sin
conversacion: input -> resultado destacado, sin chat history.

## Alcance

- Tool-use ya disponible en 0001 (`query_entities`, `query_relations`).
- Modo "highlight": en lugar de devolver texto, el LLM emite un set de
  ids -> la UI dibuja el subgrafo con resaltado y oscurece el resto.
- Boton "save as filter" -> persiste como vista nombrada (issue 0023).
- Historial de queries recientes en un dropdown.
- Indicador de query en curso (puede tardar varios segundos).

## Decisiones

- ¿Mismo cliente HTTP/Anthropic que 0001 o duplicado? Reusar.
- Modelo por defecto el mismo que 0001 (`claude-sonnet-4-6`).
- Query schema (que campos ve el LLM) dado por `types_registry` para
  que aprenda los nombres de campos del proyecto.

## Definicion de hecho

- "personas con mas de 5 conexiones" devuelve subgrafo correcto.
- "documentos publicados en 2025" funciona si la metadata tiene fechas.
- Fallo silencioso (LLM mal interpreta) -> mensaje claro y opcion de
  reintentar refinando.
- Query guardada como filtro reutilizable.
