19.7 KB · updated 2026-07-06 · md

v0.4.0.ru.md

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

Tesserae v0.4.0 — Контур обратной связи извлечения, режим исследования, эволюция по умолчанию

<!-- translations:start -->

English · 한국어 · 中文 · 日本語 · Español · Français · Deutsch

<!-- translations:end -->

Выпущено 2026-05-26 · PyPI · GitHub release · pip install --upgrade tesserae==0.4.0

Tesserae 0.4.0 превращает базу знаний в нечто, что пользователь может исправлять, выращивать и которому по умолчанию можно доверять. Главное — контур обратной связи извлечения: исправления, которые пользователь делает в хранилище Obsidian, собираются как типизированные FeedbackEvent, кластеризуются в сформулированное LLM руководство и подаются обратно в следующее извлечение, так что движок перестаёт повторять одну и ту же ошибку. Вместе с ним поставляется режим исследования (tesserae project research) — агентный цикл план → поиск → рефлексия → синтез в стиле dzhng, который чеканит типизированные узлы OpenQuestion / SessionHypothesis, чтобы исследовательская нить пережила компиляции. Два эволюционных прохода, бывших опциональными в v0.3.0 — сводки сообществ и линкер прозы-к-коду discusses — теперь включены по умолчанию, а LLM-бэкенд получает пакет исправлений надёжности (автообнаружение учётных данных ~/.claude*, корректная обработка случая, когда Claude CLI не залогинен). Всё аддитивно, без ломающих изменений.

Содержание:

  1. Контур обратной связи извлечения (функция E)
  2. MD0 — агентный режим исследования (функция G)
  3. Эволюция по умолчанию — сообщества + линковка инсайтов
  4. Надёжность LLM-бэкенда + задел под граф-вид
  5. Обновление с v0.3.0
  6. Стратегический контекст

1. Контур обратной связи извлечения (функция E)

Что это

Замкнутый контур исправлений между пользователем и извлекателем. Когда вы редактируете тело узла в хранилище Obsidian — исправляете неверный тип, удаляете галлюцинированный факт, переписываете искажённый инсайт — оверлей хранилища Tesserae записывает правку как типизированный FeedbackEvent в дедуплицированное JSONL-хранилище. Эти события кластеризуются, LLM формулирует каждый кластер в короткое руководство по извлечению (с негативным фильтром, чтобы шум не стал правилом), и это руководство нарезается и внедряется в промпт при следующей компиляции. Чистый эффект: исправление, сделанное один раз, перестаёт повторяться, вместо того чтобы применяться заново после каждого повторного извлечения.

У контура четыре подвижные части:

ЧастьРоль
Модель FeedbackEvent + JSONL-хранилищеДолговечная дедуплицированная запись каждого исправления.
Адаптер оверлея хранилищаСобирает события исправлений при обратной синхронизации хранилища Obsidian.
Сборка руководства (кластер + формулировка LLM)Превращает сырые исправления в кэшируемое, переиспользуемое руководство, с фолбэком и негативным фильтром.
Рендер/парсинг/нарезка руководстваРендерит руководство в markdown, парсит обратно и нарезает релевантную часть в каждый промпт извлечения.

Как использовать

Контур встроен в обычный круговорот хранилища. Редактируйте узлы в Obsidian, запустите obsidian-sync (или цепочку refresh), и исправления собираются автоматически. При следующем tesserae project compile накопленное руководство уже в игре.

# 1. Отредактируйте тела узлов в хранилище Obsidian (исправьте типы, удалите галлюцинации)
# 2. Синхронизируйте хранилище обратно — исправления собираются как FeedbackEvent
tesserae project obsidian-sync

# 3. Перекомпилируйте — кластеризованное руководство внедряется в извлечение
tesserae project compile

Когда включать

  • Вы курируете хранилище вручную и устали от того, что одна и та же ошибка извлечения появляется снова после каждой компиляции.
  • В вашем корпусе есть доменно-специфичные формулировки, которые универсальный извлекатель постоянно типизирует неверно — несколько исправлений научат его вашим конвенциям.

Где это находится

Основная реализация: tesserae/feedback/ (модель FeedbackEvent, JSONL-хранилище, сборка/рендер/парсинг/нарезка руководства) и путь сбора через оверлей хранилища. Спецификация дизайна и план TDD из 7 задач были проработаны с Codex и слиты в PR #20.

Оговорки

  • Детерминированный базовый извлекатель пока учитывает руководство только через путь LLM; при выключенном LLM-бэкенде исправления записываются, но ещё не внедряются повторно. (Учёт руководства на детерминированном пути отслеживается как дальнейшая работа.)
  • Руководство кэшируется; крупное изменение в ваших паттернах исправлений может занять одну-две компиляции, прежде чем полностью отразится по мере переформирования кластеров.

2. tesserae project research — агентный режим исследования (функция G)

Что это

Новая подкоманда tesserae project research <query>, которая запускает ограниченный по ширине/глубине цикл план → поиск → рефлексия → синтез над скомпилированным графом и пишет цитируемый markdown-отчёт в .tesserae/research/<slug>.md. Она смоделирована по паттерну глубокого исследования dzhng, но заземлена на вашей собственной базе знаний, а не на открытом вебе.

Принципиально, что цикл чеканит типизированные узлы и рёбра по ходу дела, так что последующая компиляция может восстановить исследовательскую нить:

  • один OpenQuestion на каждый подвопрос (с metadata.parent_question_id для продолжений и рёбрами derived_from),
  • один SessionHypothesis на каждую сгенерированную LLM гипотезу, с рёбрами references к id узлов-доказательств, на которые она опиралась,
  • и (когда подключён бэкенд WebFetcher) один SourceDocument на каждый веб-результат.

Все бэкенды внедряются через Protocols, так что цикл полностью детерминирован в тестах и никогда не трогает сеть, пока вы не подключите фетчер.

Как использовать

tesserae project research "Как наш стек извлечения ранжирует кандидатов?"
# → пишет .tesserae/research/...md и чеканит узлы OpenQuestion / SessionHypothesis,
#   восстановимые при следующей компиляции

Веб-поиск намеренно отложен в v1: --no-web — это совместимый вперёд no-op, пока не появится бэкенд WebFetcher.

Когда включать

  • Вам нужен цитируемый синтез над вашим собственным графом, а не поиск по одному узлу или плоский ответ ask.
  • Вы хотите, чтобы исследовательские вопросы и гипотезы сохранялись как узлы графа, чтобы будущие сессии строили на них, а не спрашивали заново.

Где это находится

Основная реализация: tesserae/research/ (переиспользует LLMJsonClient, LLMWikiMCPServer.search_nodes, ResearchGraphBuilder и stable_id). Подключение CLI: подпарсер research в tesserae/cli.py. Двенадцать тестов покрывают план/поиск/рефлексию/синтез, монтаж графа, ограничение max_iters и фолбэки при сбоях планировщика/синтеза. Слито в PR #18.

Оговорки

  • v1 синтезирует только над локальным графом; веб-уровень — совместимый вперёд no-op, пока не приземлится бэкенд-фетчер.
  • Атомарные записи на диск используют паттерн PID + случайный временный суффикс из batch._write_manifest, так что параллельные запуски исследования не сталкиваются.

3. Эволюция по умолчанию — сообщества + линковка инсайтов

Два прохода, бывших опциональными в v0.3.0, теперь включены по умолчанию, так что готовый из коробки граф богаче без дополнительных флагов:

  • Сводки сообществ (PR #14) — обнаружение сообществ Louvain плюс LLM-сводки теперь выполняются в компиляции по умолчанию, а не за флагом. Граф поставляется с обзорами кластерного уровня по умолчанию.
  • Линкер прозы-к-коду discusses (PR #13) — линкер инсайт-символ из функции H v0.3.0 (TESSERAE_INSIGHT_SYMBOL_LINK) включён по умолчанию в v0.4.0, так что находки сессий связываются с упоминаемыми ими символами кода без необходимости устанавливать переменную окружения. (Вы по-прежнему можете явно отключить его, если ваш корпус — в основном проза с малым обсуждением кода.)

Замысел в том, чтобы первая компиляция давала граф, уже имеющий обзоры сообществ и рёбра прозы-к-коду, соответствуя миссии «самосовершенствующаяся база, готовая к передаче агентам», вместо того чтобы требовать от пользователя находить и переключать каждый проход.


4. Надёжность LLM-бэкенда + задел под граф-вид

Пакет исправлений надёжности LLM-бэкенда плюс спецификация под предстоящий граф-вид:

  • Автообнаружение учётных данных ~/.claude* (PR #19) — путь LLM по умолчанию теперь находит учётные данные Claude по каталогам ~/.claude* и заполняет окружение для бэкенда по умолчанию, так что первичная настройка на мультиаккаунтных машинах менее хлопотна.
  • Корректное «Claude CLI не залогинен» (PR #17) — когда Claude CLI установлен, но не аутентифицирован, Tesserae корректно деградирует с действенным сообщением вместо краха посреди компиляции.
  • PostToolUse sync-code hook (PR #15) — дополняет хук SessionStart sync-code из v0.3.0, так что граф кода обновляется и после правок инструментами в рамках сессии.
  • Спецификация граф-вида v1 — дизайн, переносящий кодировку HypePaper и панель узла на сайт Tesserae, был проработан с Codex и приземлился как спецификация + план, задавая последующую работу над визуальным графом.

Обновление с v0.3.0

pip install --upgrade tesserae==0.4.0

Это всё обновление — v0.4.0 аддитивен, без ломающих изменений. Единственное изменение поведения, о котором стоит знать: сводки сообществ и линкер прозы-к-коду discusses теперь выполняются по умолчанию; если вы ранее полагались на то, что они выключены, отключите их явно.

Новая подкоманда CLI для мышечной памяти:

tesserae project research "<вопрос>"   # агентный план→поиск→рефлексия→синтез над вашим графом

Поведение, теперь включённое по умолчанию (ранее опциональное):

  • Сводки сообществ (Louvain + LLM).
  • Рёбра прозы-к-коду discusses (проход TESSERAE_INSIGHT_SYMBOL_LINK из v0.3.0).

Всё остальное — graph_ppr, гибридный search_nodes, sync-code, живой хук SessionStart, embedding_status, fresh_insights, скоринг затухания, supersedes, schema-drift, слэш-команды, проекция вики / Obsidian — переносится без изменений из v0.3.0.


Стратегический контекст

v0.3.0 соединила прозаические решения с символами кода, которые их реализуют. v0.4.0 — релиз, в котором база начинает исправлять и выращивать себя: контур обратной связи извлечения закрывает разрыв между «пользователь исправил один раз» и «извлекатель этому научился», а режим исследования позволяет агенту выращивать граф собственными типизированными вопросами и гипотезами, а не только поглощать уже существующее. Включение сводок сообществ и линкера discusses по умолчанию — та же тема со стороны продукта: движок должен вручать агентам богатую базу, не заставляя пользователя охотиться за флагами.

Это мостовой релиз. v0.3.0 доказала типизированный граф прозы-к-коду; v0.5.0 превращает всё это в непрерывно работающий движок с контекстным компилятором по запросу. v0.4.0 — место, где столп самосовершенствования получает первую реальную поверхность (исправления обратной связи, агентные исследовательские нити) перед спиной v0.5.0, которая заставляет всё это работать непрерывно.

См. также: