13.0 KB · updated 2026-07-06 · md

v0.4.0.es.md

docs/i18n/release-notes/v0.4.0.es.md

Tesserae v0.4.0 — Bucle de retroalimentación de extracción, modo investigación, evolución activada por defecto

<!-- translations:start -->

English · 한국어 · 中文 · 日本語 · Русский · Français · Deutsch

<!-- translations:end -->

Publicado el 26-05-2026 · PyPI · Lanzamiento en GitHub · pip install --upgrade tesserae==0.4.0

Tesserae 0.4.0 convierte la base de conocimiento en algo que el usuario puede corregir, hacer crecer y en lo que confiar por defecto. El protagonista es un bucle de retroalimentación de extracción: las correcciones que el usuario hace en la bóveda de Obsidian se recogen como FeedbackEvent tipados, se agrupan en una guía redactada por LLM y se realimentan a la siguiente extracción, de modo que el motor deja de cometer el mismo error. Junto a él se entrega el modo investigación (tesserae project research) — un bucle agéntico estilo dzhng de planificar → buscar → reflexionar → sintetizar que acuña nodos tipados OpenQuestion / SessionHypothesis para que un hilo de investigación sobreviva a las compilaciones. Dos pasadas de evolución que eran opcionales en v0.3.0 — resúmenes de comunidad y el enlazador prosa-a-código discusses — ahora están activadas por defecto, y el backend de LLM recibe un lote de correcciones de robustez (autodescubrimiento de credenciales ~/.claude*, manejo elegante cuando el CLI de Claude no ha iniciado sesión). Todo aditivo, sin cambios disruptivos.

Tabla de contenidos:

  1. Bucle de retroalimentación de extracción (función E)
  2. MD0 — modo investigación agéntico (función G)
  3. Evolución activada por defecto — comunidad + enlace de insights
  4. Robustez del backend LLM + cimientos de la vista de grafo
  5. Actualizar desde v0.3.0
  6. Contexto estratégico

1. Bucle de retroalimentación de extracción (función E)

Qué es

Un bucle de corrección cerrado entre el usuario y el extractor. Cuando editas el cuerpo de un nodo en la bóveda de Obsidian — corriges un tipo erróneo, borras un hecho alucinado, reescribes un insight confuso — la superposición de bóveda de Tesserae registra la edición como un FeedbackEvent tipado en un almacén JSONL deduplicado. Esos eventos se agrupan, un LLM redacta cada grupo en una breve guía de extracción (con un filtro negativo para que el ruido no se convierta en regla), y esa guía se segmenta e inyecta en el prompt en la siguiente compilación. El efecto neto: una corrección hecha una vez deja de repetirse, en lugar de tener que volver a aplicarse tras cada reextracción.

El bucle tiene cuatro partes móviles:

ParteRol
Modelo FeedbackEvent + almacén JSONLRegistro durable y deduplicado de cada corrección.
Adaptador de superposición de bóvedaRecoge eventos de corrección mientras se resincroniza la bóveda de Obsidian.
Construcción de guía (clúster + redacción LLM)Convierte correcciones crudas en guía cacheable y reutilizable, con fallback y filtro negativo.
Renderizado/parseo/segmentado de guíaRenderiza la guía a markdown, la parsea de vuelta y segmenta la porción relevante en cada prompt de extracción.

Cómo usarlo

El bucle está conectado al ciclo normal de la bóveda. Edita nodos en Obsidian, ejecuta un obsidian-sync (o la cadena de refresco) y las correcciones se recogen automáticamente. En la siguiente tesserae project compile, la guía acumulada está en juego.

# 1. Edita cuerpos de nodos en la bóveda de Obsidian (corrige tipos, poda alucinaciones)
# 2. Resincroniza la bóveda — las correcciones se recogen como FeedbackEvents
tesserae project obsidian-sync

# 3. Recompila — la guía agrupada se inyecta en la extracción
tesserae project compile

Cuándo activarlo

  • Curas la bóveda a mano y estás cansado de que el mismo error de extracción reaparezca tras cada compilación.
  • Tu corpus tiene un fraseo específico del dominio que el extractor genérico sigue tipificando mal — unas pocas correcciones le enseñan tus convenciones.

Dónde vive

Implementación central: tesserae/feedback/ (el modelo FeedbackEvent, el almacén JSONL, la construcción/renderizado/parseo/segmentado de guía) y la ruta de recolección de la superposición de bóveda. La especificación de diseño y el plan TDD de 7 tareas se idearon con Codex y se fusionaron en la PR #20.

Advertencias

  • El extractor base determinista todavía honra la guía solo a través de la ruta LLM; con el backend LLM apagado, las correcciones se registran pero aún no se reinyectan. (Honrar la guía en la ruta determinista se rastrea como trabajo posterior.)
  • La guía se cachea; un cambio grande en tus patrones de corrección puede tardar una o dos compilaciones en reflejarse del todo a medida que los clústeres se reforman.

2. tesserae project research — modo investigación agéntico (función G)

Qué es

Un nuevo subcomando tesserae project research <query> que ejecuta un bucle acotado en amplitud/profundidad de planificar → buscar → reflexionar → sintetizar contra el grafo compilado y escribe un informe markdown citado en .tesserae/research/<slug>.md. Está modelado según el patrón de investigación profunda de dzhng, pero anclado en tu propia base de conocimiento en lugar de la web abierta.

Crucialmente, el bucle acuña nodos y aristas tipados sobre la marcha, de modo que una compilación posterior puede recuperar el hilo de investigación:

  • un OpenQuestion por cada subpregunta (con metadata.parent_question_id para seguimientos y aristas derived_from),
  • un SessionHypothesis por cada hipótesis generada por el LLM, con aristas references a los id de nodos de evidencia en que se apoyó,
  • y (cuando hay un backend WebFetcher conectado) un SourceDocument por cada resultado web.

Todos los backends se inyectan vía Protocols, de modo que el bucle es totalmente determinista bajo prueba y nunca toca la red salvo que conectes un fetcher.

Cómo usarlo

tesserae project research "¿Cómo clasifica candidatos nuestro stack de recuperación?"
# → escribe .tesserae/research/...md y acuña nodos OpenQuestion / SessionHypothesis
#   recuperables en la siguiente compilación

La búsqueda web se aplaza intencionadamente en v1: --no-web es un no-op compatible hacia adelante hasta que se entregue un backend WebFetcher.

Cuándo activarlo

  • Quieres una síntesis citada sobre tu propio grafo, no una búsqueda de un solo nodo ni una respuesta plana de ask.
  • Quieres que las preguntas e hipótesis de investigación persistan como nodos de grafo para que sesiones futuras construyan sobre ellas en vez de volver a preguntar.

Dónde vive

Implementación central: tesserae/research/ (reutiliza LLMJsonClient, LLMWikiMCPServer.search_nodes, ResearchGraphBuilder y stable_id). Cableado de CLI: el subparser research en tesserae/cli.py. Doce pruebas cubren planificar/buscar/reflexionar/sintetizar, el cableado del grafo, el tope de max_iters y los fallbacks de fallo de planificador/síntesis. Fusionado en la PR #18.

Advertencias

  • v1 solo sintetiza sobre el grafo local; el nivel web es un no-op compatible hacia adelante hasta que aterrice un backend fetcher.
  • Las escrituras atómicas a disco usan el patrón PID + sufijo temporal aleatorio de batch._write_manifest, de modo que ejecuciones concurrentes de investigación no colisionan.

3. Evolución activada por defecto — comunidad + enlace de insights

Dos pasadas que eran opcionales en v0.3.0 ahora están activadas por defecto, de modo que el grafo listo para usar es más rico sin flags adicionales:

  • Resúmenes de comunidad (PR #14) — la detección de comunidades Louvain más los resúmenes LLM ahora corren en la compilación por defecto en lugar de estar tras un flag. El grafo trae panorámicas a nivel de clúster por defecto.
  • Enlazador prosa-a-código discusses (PR #13) — el enlazador insight-símbolo de la función H de v0.3.0 (TESSERAE_INSIGHT_SYMBOL_LINK) está activado por defecto en v0.4.0, de modo que los hallazgos de sesión se enlazan a los símbolos de código que mencionan sin que tengas que fijar la variable de entorno. (Aún puedes desactivarlo explícitamente si tu corpus es mayormente prosa con poca discusión de código.)

La intención es que una primera compilación produzca un grafo que ya tiene panorámicas de comunidad y aristas prosa-a-código, acorde con la misión de "base que se mejora a sí misma, lista para entregar a agentes" en lugar de exigir al usuario descubrir y alternar cada pasada.


4. Robustez del backend LLM + cimientos de la vista de grafo

Un lote de correcciones de fiabilidad al backend LLM, más una especificación para la próxima vista de grafo:

  • Autodescubrimiento de credenciales ~/.claude* (PR #19) — la ruta LLM por defecto ahora encuentra credenciales de Claude a través de los directorios ~/.claude* y puebla el entorno del backend por defecto, de modo que la configuración inicial en máquinas multicuenta es menos engorrosa.
  • "Claude CLI no ha iniciado sesión" de forma elegante (PR #17) — cuando el CLI de Claude está instalado pero no autenticado, Tesserae degrada limpiamente con un mensaje accionable en vez de fallar a mitad de compilación.
  • Hook PostToolUse sync-code (PR #15) — complementa el hook SessionStart sync-code de v0.3.0 para que el grafo de código también se refresque tras ediciones de herramientas dentro de una sesión.
  • Especificación de vista de grafo v1 — el diseño que porta la codificación HypePaper y un cajón de nodo al sitio de Tesserae se ideó con Codex y aterrizó como especificación + plan, preparando el trabajo de grafo visual que sigue.

Actualizar desde v0.3.0

pip install --upgrade tesserae==0.4.0

Esa es toda la actualización — v0.4.0 es aditivo, sin cambios disruptivos. El único cambio de comportamiento a tener en cuenta es que los resúmenes de comunidad y el enlazador prosa-a-código discusses ahora corren por defecto; si antes dependías de que estuvieran apagados, desactívalos explícitamente.

Nuevo subcomando de CLI para tu memoria muscular:

tesserae project research "<pregunta>"   # planificar→buscar→reflexionar→sintetizar agéntico sobre tu grafo

Comportamiento ahora activado por defecto (antes opcional):

  • Resúmenes de comunidad (Louvain + LLM).
  • Aristas prosa-a-código discusses (la pasada TESSERAE_INSIGHT_SYMBOL_LINK de v0.3.0).

Todo lo demás — graph_ppr, search_nodes híbrido, sync-code, el hook SessionStart en vivo, embedding_status, fresh_insights, scoring de decaimiento, supersedes, schema-drift, los comandos slash, la proyección wiki / Obsidian — se mantiene sin cambios desde v0.3.0.


Contexto estratégico

v0.3.0 conectó las decisiones en prosa con los símbolos de código que las implementan. v0.4.0 es la versión donde la base empieza a corregirse y crecer sola: el bucle de retroalimentación de extracción cierra la brecha entre "el usuario lo arregló una vez" y "el extractor lo aprendió", y el modo investigación deja que el agente haga crecer el grafo con sus propias preguntas e hipótesis tipadas en vez de solo ingerir lo que ya existe. Activar por defecto los resúmenes de comunidad y el enlazador discusses es el mismo tema desde el lado del producto — el motor debe entregar a los agentes una base rica sin hacer que el usuario busque flags.

Esta es la versión puente. v0.3.0 probó el grafo tipado prosa-a-código; v0.5.0 convierte todo en un motor en ejecución continua con un compilador de contexto bajo demanda. v0.4.0 es donde el pilar de automejora obtiene su primera superficie real (correcciones de retroalimentación, hilos de investigación agénticos) por delante de la columna vertebral de v0.5.0 que hace que todo corra continuamente.

Véase también: