Taller · Código Sin Siesta · 2026

Taller Graphify
Indexa un repo o /raw, navega el grafo, decide con criterio

Knowledge graph + skill en tu agente + cuadrante de decisión honesto.
90-120 min para salir con un veredicto razonado: adoptas Graphify o no — con datos.

Graphify Tree-sitter AST Subagentes Claude Leiden clustering MCP server Veredicto razonado
Alejandro de la Fuente

Alejandro de la Fuente

Technical Leader · NTT Data · GDNE

Agenda

Lo que vamos a recorrer en 90 minutos

6 capítulos. La mitad del tiempo en hands-on real. El output del taller no es la herramienta funcionando — es tu veredicto razonado.

01
El problema
Context budget reventado y RAG vectorial que falla cross-doc.
5 min
02
Knowledge graph
Nodes + edges + triples. La idea Karpathy "librarian, not chatbot".
8 min
03
Anatomía + outputs
Las 4 capas de Graphify y los 5 outputs persistentes.
10 min
04
Cuadrante de decisión
Graphify vs GitNexus vs vector RAG vs agentic puro.
12 min
05
Hands-on
Setup + primera ejecución, skill + queries reales.
50 min
06
Más allá + cierre
MCP, incremental, save-result loop. 5 takeaways y QR.
15 min
El problema

El context budget se rompe antes de empezar

Cuatro síntomas reconocibles. Si te pasan los cuatro, este taller es para ti — y probablemente Graphify (o una alternativa) compensa.

🌀

Releer 40 ficheros por sesión

Cada vez que preguntas "qué depende de X", tu agente lee el corpus desde cero. ~20k tokens consumidos antes de empezar a responder.

🪫

Instruction budget reventado

Modelos frontier siguen ~150-200 instrucciones por context. Sumas prompt + AGENTS.md + tools + skills y ya estás en 300+. El modelo atiende a medias.

🧊

Conocimiento que no acumula

Cada sesión empieza de cero. Lo que descubriste ayer no llega a hoy. RAG sin estado no aprende.

🪜

RAG vectorial falla en cross-doc

Vector mete chunks aleatorios. Si la respuesta vive *entre* dos documentos (X depende de Y), no la encuentra.

Datos del experimento real sobre el wiki de Código Sin Siesta: pasar de ~76k tokens por consulta a ~3,5k. 22-30× reducción (los 71× del marketing son para corpus mucho más grandes).

Knowledge graph en 30 segundos

Solo tres primitivas. El grafo emerge si tomas notas con cuidado.

Wikipedia, Google Knowledge Graph y este wiki personal son lo mismo en el fondo: nodos + aristas + triples.

Node

Una entidad nombrada. Una página, una función, una clase, un concepto, una persona.

`tool-registry.ts`, `Anthropic`, `MCP`

Edge

Relación tipada entre dos nodos. Citation, import, depends_on, conceptually_related_to.

chat.ts —imports→ tool-registry.ts

Triple

Sujeto-predicado-objeto. Una afirmación contextualizada. La forma básica de codificar conocimiento.

"Graphify usa Tree-sitter para AST"

"I don't want a chatbot. I want a librarian."

— Andrej Karpathy, 2026

Un chatbot es un oráculo (preguntas, contesta, olvida). Un bibliotecario conoce sus libros: sabe cuál cita a cuál, cuáles tratan el mismo tema con posturas distintas, cuáles son fundacionales. Eso es un knowledge graph aplicado a un agente.

Anatomía de Graphify

Cuatro capas. Solo una cuesta tokens.

Conocer qué pagas y por qué te hace usuario crítico, no promotor entusiasta.

1

AST determinístico

Gratis

Tree-sitter (12+ lenguajes)

Parsea código y extrae funciones, clases, métodos, imports. Sin LLM. Para repos puros, suficiente.

2

Extracción semántica

~$0.30-0.80

Subagentes Claude paralelos

Procesa docs/PDFs/imágenes. Devuelve nodos+aristas con EXTRACTED/INFERRED/AMBIGUOUS y confidence_score. La capa cara y la única donde tu API key entra.

3

Clustering Leiden

Gratis

NetworkX + Leiden

Detecta comunidades temáticas. Identifica god nodes (más conectados) y surprising connections (alta similitud cross-community).

4

Outputs persistentes

0 LLM (regeneración)

JSON + HTML + Obsidian + MCP

graph.json (consumible), GRAPH_REPORT.md (legible), graph.html (Pyvis interactivo), vault Obsidian opcional, servidor MCP. Vive entre sesiones.

Lección clave: en el experimento real sobre el wiki de Código Sin Siesta, las capas 1+3+4 son regenerables casi gratis. La capa 2 cuesta ~$0.50 por pase completo y es el único cuello de botella económico para iterar.

Outputs y para qué

Cinco outputs. Cada uno tiene un consumidor distinto.

La trampa frecuente: generar todo y solo mirar el HTML. El output que más rentabiliza el coste del primer pase es graph.json consumido vía skill.

OutputTamaño típicoConsumidorCuándo
graph.json50-500 KBTu agente vía skillSiempre. Es el activo persistente. Versionable, re-consultable indefinidamente.
GRAPH_REPORT.md10-30 KBTú, lectura humanaJusto después del primer pase. God nodes + surprising connections + suggested questions.
graph.html200-500 KBTú, exploración visualCuando el reporte te llama la atención sobre algo concreto. Pyvis sobre WebGL, sin servidor.
obsidian/Vault enteroTu vault si lo tienesOpt-in con --obsidian. Cuidado: si apuntas a vault humano, mete cientos de notas.
MCP server0 KB (proceso)Otros agentesgraphify --mcp. Stdio. Claude Desktop, Cursor, agentes custom lo consumen.
El cuadrante de decisión ⭐

Graphify es una de cuatro herramientas. Conoce las otras tres antes de adoptarla.

HerramientaScopeDeterminismoCostePrivacidadMCP
GitNexusSolo código100% ASTGratisLocal
GraphifyCódigo + docs + papers + imágenes + vídeoAST + LLM~$0.30-0.80LLM ve docs
Vector RAGTexto planoEmbeddingsEmbeddings + storageAPI ve chunksWrapper
Agentic searchFilesystemHeurísticoTokens del agenteLocaln/a

Reglas prácticas

  1. ¿Cabe tu corpus en <30k tokens? → Agentic search puro. No indexes nada.
  2. ¿Solo código y privacidad alta? → GitNexus.
  3. ¿Heterogéneo y queries cross-document? → Graphify.
  4. ¿Corpus enorme y "encuéntrame parecido"? → Vector RAG.
  5. ¿Combinaciones? → Sí. Vector para "narrow", grafo para "navegar".
Cuándo SÍ / Cuándo NO (con datos reales)

Caso real: Graphify sobre este propio wiki dijo NO.

85 docs markdown · 79.224 palabras · MOC manual + lint determinístico ya en su sitio.

201

Nodos extraídos

333

Aristas

16

Comunidades

29,9×

Reducción tokens

~$0,50

Coste real

0,05-0,07

Cohesion grandes

SÍ compensa

  • Codebase desconocido y volátil (>5 cambios/día)
  • Corpus heterogéneo grande (papers + tweets + screenshots)
  • Necesitas exponer estructura vía MCP a varios agentes
  • Quieres detectar patrones cross-proyecto

NO compensa

  • Wiki ya curado con MOC manual (este caso)
  • Corpus pequeño donde rg + lectura cubre
  • Repos puros de código → mejor GitNexus
  • Preguntas únicas que no se repiten

Decisión razonada: NO adoptar como pipeline regular. Mantener para auditoría puntual cada >3× crecimiento (umbral: >200 ficheros / >150k palabras). El lint determinístico (gratis, segundos) detectó 130 asimetrías que Graphify no detecta. Para "encontrar enlaces faltantes", lint > Graphify.

Hands-on 1 · 25-30 min ⭐

Setup + primera ejecución sobre el starter

Output del hands-on: graph.json real, reporte leído, y ojo entrenado para distinguir lo que descubrió Graphify vs lo que esperabas.

narración paso a paso
1
Prerequisitos: Node ≥ 20 y uv. Si te falta uv, curl -LsSf https://astral.sh/uv/install.sh | sh.
2
Instala Graphify globalmente. El package en PyPI es graphifyy con doble y; el binario es graphify.
3
Clona el starter. Verifica con tests + typecheck antes de tocar Graphify.
4
Predice antes de ejecutar — papel y boli: god node esperado, 2-3 comunidades, 1 conexión cross-modal.
5
Lanza el pipeline desde Claude Code. ~$0.30-0.50, ~250-350k tokens, 4-5 subagentes en paralelo.
6
Lee GRAPH_REPORT.mdgraph.html → contrasta con tu predicción. Esa lectura es el output real.
Pro tip
El paso 4 (predecir) es no-negociable. Si saltas a ejecutar, pierdes el músculo crítico que el taller entrena.
Hands-on 2 · 20-25 min ⭐

Skill en Claude Code + queries reales

Pasar de "tengo un graph.json precioso" a "el agente lo consulta de forma natural mientras trabajo".

Paso 1 · Instala la skill (3 min)

graphify claude install     # CLAUDE.md + PreToolUse hook
graphify codex install      # AGENTS.md
graphify cursor install     # .cursor/rules/graphify.mdc
graphify opencode install   # AGENTS.md + plugin
graphify aider install      # AGENTS.md

Paso 2 · Tres queries dirigidas (10 min)

BFS /graphify query "qué conecta tool registry con la decisión del LLM"

Esperado: Camino chat → tool-registry → tool-grep, cruzado con docs cross-modal

Path /graphify path "auth" "chat"

Esperado: 2-3 hops vía server.ts. Si "no path", el AST no enlazó middleware — lección práctica

Explain /graphify explain "tool-registry"

Esperado: Resumen + vecinos + dónde se cita en docs. Útil para onboarding rápido

Paso 3 · Contraste con rg puro (5 min)

Misma pregunta, dos vías. Anota: tiempo · tokens consumidos por el agente · calidad · ruido. Esa tabla es lo que te llevas — no Graphify funcionando, sino opinión razonada sobre cuándo el grafo gana.

Save-result loop: graphify save-result --question "..." --answer "..." --nodes A B guarda Q&As cerradas como nodos del grafo. Eso es lo que diferencia un grafo persistente de un RAG sin estado.

MCP y agentes externos

Tu grafo se vuelve infraestructura compartida

graphify --mcp levanta un servidor stdio. Cualquier agente compatible (Claude Desktop, Cursor, agentes custom) consume tu grafo sin tener Graphify instalado.

Tools expuestas vía MCP

  • query_graph
  • get_node
  • get_neighbors
  • get_community
  • god_nodes
  • graph_stats
  • shortest_path

Read-only. Para modificar el grafo: --update manual desde el host.

Config en Claude Desktop

{
  "mcpServers": {
    "graphify": {
      "command": "python3",
      "args": [
        "-m", "graphify.serve",
        "/abs/path/to/graphify-out/graph.json"
      ]
    }
  }
}

Caso real

Un equipo indexa su monorepo con Graphify, levanta el MCP server en CI, y todos los devs apuntan sus IDEs al mismo grafo. Cero indexación local. Coste: un re-pase nocturno (graphify --update) en CI ≈ $0,20/día.

⚠️ Trade-off de saturación: si conectas 10 MCP servers a la vez, las descripciones de tools llenan el context window. El instruction budget se revienta de otra forma. Activa solo los relevantes por sesión.

Más allá del primer pase

Cuatro palancas por ratio impacto/coste

El primer pase es caro. Los siguientes son baratos. Si solo haces el primer pase y nunca más, has tirado dinero.

1

Incremental con --update

graphify --update <path>

Solo re-procesa ficheros modificados via cache SHA256. Code-only changes no llaman al LLM. Coste: fracción del primer pase.

2

Hooks git para rebuild automático

graphify hook install

Tras cada commit, AST + rebuild de graph.json. Doc/image changes no trigger (requieren --update manual).

3

Vault Obsidian con namespace

graphify --obsidian-dir ~/vault/graphify/<proyecto>

Mal patrón: apuntar a vault humano sin namespace. Buen patrón: subcarpeta dedicada para no enturbiar el grafo manual.

4

Save-result = memoria del agente

graphify save-result --question --answer --nodes

Cada Q&A cerrada se guarda. La próxima --update la incorpora como nodo nuevo. El grafo aprende.

El save-result loop es lo que diferencia un grafo de un RAG. Tu RAG no aprende. El grafo persistente con save-result sí. Es acumulación, no consumo.

Cierre

Cinco takeaways. Un siguiente paso esta semana.

1

Graphify resuelve un problema específico: context budget reventado por re-leer ficheros sobre corpus heterogéneos.

2

El cuadrante manda. Verifica que ninguna de las 3 alternativas (GitNexus, vector RAG, agentic search) cubre tu caso mejor.

3

AST gratis, semántica cuesta. Las 4 capas tienen rentabilidad distinta. Conoce qué pagas.

4

El grafo es activo persistente, no decorativo. Si solo abres el HTML al primer pase, has tirado dinero.

5

Honestidad: cada arista EXTRACTED/INFERRED/AMBIGUOUS. Cohesion en números. Diferencia con un RAG ingenuo.

Escanea para todo
codigosinsiesta.github.io/taller-graphify

El veredicto razonado del Ejercicio 3 es el output real del taller. La herramienta es útil solo si entra a tu workflow con criterio. Gracias por venir.

1 / 13
Navegación