v0.25.0.es.md
docs/i18n/release-notes/v0.25.0.es.md
Tesserae v0.25.0 — Descent: navega cualquier grafo dentro de una sola ventana de contexto
<!-- translations:start -->
English · 한국어 · 中文 · 日本語 · Русский · Français · Deutsch
<!-- translations:end -->
Lanzado 2026-07-24 · PyPI · GitHub release · pip install --upgrade tesserae==0.25.0
Un grafo de proyecto compilado desborda cualquier ventana de contexto — el proyecto de referencia ahora se serializa en 2.5M de tokens, 12× una ventana de 200k, y sigue creciendo. La recuperación plana puede encontrar un nodo, pero un agente nunca podía inspeccionar el grafo: la única vista general acotada era la capa de resúmenes más gruesa, de 47 comunidades, y todo lo que había debajo era invisible. Esta versión incluye Descent: la jerarquía como contrato en tiempo de consulta, de modo que un agente puede navegar desde una vista general del grafo completo hasta un solo nodo en un puñado de llamadas acotadas — con cualquier tamaño de grafo.
1 · graph_map — una sola herramienta de descenso para todos los grafos
Una nueva herramienta MCP, graph_map(scope, budget_chars, cursor), convierte cada fuente de conocimiento en lo mismo: un árbol de ámbitos respondido con tarjetas empaquetadas por presupuesto. Sin ámbito devuelve el mapa raíz — conteos del grafo, advertencias de hubs y las tarjetas de comunidad más gruesas. Un id de comunidad desciende un nivel del dendrograma; el nivel más fino lista los nodos miembros. agent:<key> presenta el índice L1 destilado de un agente, org:root el árbol organizativo de agentes, y <alias>:: el mapa de un proyecto hermano — las mismas tarjetas, el mismo protocolo, sin casos especiales. Cada tarjeta lleva parent_scope, así que ascender es simplemente otra llamada a graph_map, y los niveles sobredimensionados se paginan de forma determinista (+N more, cursor=K) en lugar de truncarse silenciosamente.
2 · La jerarquía siempre estuvo ahí — ahora se conserva
Louvain ya calcula un dendrograma completo en cada compilación; usábamos un nivel y descartábamos el resto. La compilación ahora lo persiste íntegro en un sidecar .tesserae/hierarchy.json — 4 niveles en el grafo de referencia — como una función pura y determinista del contenido del grafo: semilla fija, ordenación canónica, cero llamadas al LLM, tanto con 5k como con 1M de nodos. Los bytes de graph.json quedan intactos, la paridad entre compilación completa e incremental ahora asegura dendrogramas idénticos en cada nivel, y las cachés obsoletas de resúmenes de comunidad se podan contra la vigencia de todos los niveles.
3 · CTX-01 — ninguna respuesta de herramienta excede su presupuesto, nunca
Un único helper fit_to_budget ahora acota todas las respuestas MCP: topes por entrada, admisión determinista, una línea de continuación. Las herramientas que podían inundar una sesión quedan corregidas — query_decisions y find_session_findings ganaron parámetros limit, list_communities devuelve un conteo de miembros más un handle en lugar de miles de ids sin procesar, search_nodes/node_context/timeline/search_facts truncan por elemento. El coste de sesión ahora es depth × budget — independiente del tamaño del grafo.
4 · Los resúmenes aparecen donde realmente miras
Las comunidades de nivel fino reciben títulos de forma perezosa: el primer descenso a un ámbito sin resumir hace una sola llamada al LLM, cacheada por el digest de membresía; sin un cliente, recurre a un título estructural determinista — nunca bloquea, nunca lanza errores. Los prompts de resumen-de-resúmenes están validados por citas (la prosa que no cita ninguna comunidad hija se rechaza), de modo que los niveles superiores no pueden desviarse de lo que resumen. El ciclo de sueño del demonio gana una tercera operación, SUMMARIZE, que precalienta las cachés de las comunidades que los agentes realmente visitan — gastando un presupuesto LLM acotado por tick según la demanda, no según el tamaño del corpus.
5 · Compilación jerárquica de contexto
compile_context aprende scope=<community> — recuperación restringida al subgrafo inducido de una comunidad, lo que elimina estructuralmente la explosión de hubs — y strategy="hierarchical": primero empareja con la capa de resúmenes, desciende por las ramas coincidentes y luego ejecuta PPR dentro de ellas. La proyección PPR gana un tope de grado tras flag y una reducción de peso para aristas de procedencia que desactivan los mega-hubs. Las rutas por defecto permanecen byte-idénticas; ambas características son opt-in hasta pasar por A/B.
Actualización
pip install --upgrade tesserae==0.25.0
Recompila una vez para escribir el sidecar de jerarquía, y luego pide a tu agente que llame a graph_map() — el grafo completo, una página acotada a la vez.