v0.27.0.ru.md
docs/i18n/release-notes/v0.27.0.ru.md
Tesserae v0.27.0 — агенты могут писать в граф и спрашивать, что он лицензирует
<!-- translations:start -->
English · 한국어 · 中文 · 日本語 · Español · Français · Deutsch
<!-- translations:end -->
Released 2026-07-26 · PyPI · GitHub release · pip install --upgrade tesserae==0.27.0
До сих пор агент мог только передать Tesserae текст и надеяться, что экстрактор правильно угадает типы. Этот выпуск открывает путь записи и путь верификации: агенты записывают свои находки как типизированные структуры и могут спросить граф, действительно ли он лицензирует утверждение.
Агенты записывают типизированные находки
graph_write принимает проверенные схемой типизированные узлы и рёбра с обязательной провенансностью. Он отказывает вместо приведения типов — нетипизированные рёбра, типы вне контролируемого словаря, подвешенные конечные точки и отсутствующая провенансность — всё отклоняется; повторные записи идемпотентны.
Узлы, записанные агентом, пережидают полную переомпиляцию, удаление graph.json, --limit и полное удаление корпуса. При состязательном тестировании 60 одновременных записей против живой компиляции прошли с нулевыми разорванными чтениями из 1,483 чтений.
Агенты верифицируют против графа
verify_claim отвечает, лицензирует ли граф тройку. Вердикт — чистая функция байтов графа: нет LLM, нет вложений, нет размытого совпадения где-либо на пути решения. Верификатор, который галлюцинирует, хуже, чем отсутствие верификатора.
Он принимает (subject, predicate, object) и не имеет параметра естественного языка — намеренно. Семь вердиктов, включая PRESENT_UNEVIDENCED (ребро существует, но ничего подкреплённого документом не стоит за ним) и ABSENT ("этот граф не утверждает это" — никогда не опровержение).
Два гарантия, стоящие того, чтобы явно сказать. supersedes никогда не производит вердикт: это говорит, что узел был заменён, не что тройка ложна. И запись агента может только когда-либо ослабить класс провенансности, никогда не улучшить — ничто, что агент утверждает, не может представляться как подкреплённое документом.
Также
- Семантическое разрешение сущностей. Кандидаты, сгруппированные вложениями, теперь подают на существующую очередь рецензирования вместо автоматического объединения. Точность сверх полноты: неправильное объединение молча объединяет две реальные сущности и каждый последующий обход наследует ошибку.
- Маршрутизация в форме вопроса для
ask. Графы выигрывают в многоходовых, временных и синтезирующих вопросах и проигрывают в простом поиске фактов и стоимости, поэтому платить цены графа за всё — убыток. Решение маршрутизации находится в конверте, так что дешёвый ответ поддаётся аудиту;--routeпереопределяет. - Интервалы валидности на временные факты, полученные из меток времени источника — никогда не настенные часы.
--llm-limitдержится при одновременной экстракции. С v0.26.0, которая сделала экстракцию параллельной, старая проверка-затем-инкремент позволял каждому рабочему прочитать счётчик, прежде чем любой из них записал его, так что--llm-limit 1купил один звонок на рабочего. Это крышка расходов, поэтому она теперь не срабатывает.- Охват компиляции — инвариант, не утверждение. Четыре пути молчаливой потери данных закрыты, затем машинерия за ними удалена полностью —
compile(loader=…)не имеет производственного вызывающего, и защита этого API, предназначенного только для библиотеки, была источником каждого серьёзного дефекта в нескольких раундах рецензирования. Один из них был регрессией, которую сам v0.26.0 представил. - Новая документация для поверхностей записи, верификации и маршрутизации.
Что не попало в релиз и почему
Проход контраста для добычи рёбер contradicts_claim / derived_from / criticizes был построен, измерен и обрезан. Он создал 0 рёбер из 80 судимых пар на двух реальных корпусах, и 60 из 60 обоснований судьи дали одну и ту же причину: пары были почти дубликатами без ничего для противоречия.
Причина была структурной. Генерирование кандидатов блокировалось на общих редких токенах, что оптимизирует для подобия — но противоречие и происхождение держатся между утверждениями, которые отличаются. Переделка оценила пять новых генераторов в режиме офлайн, с нулевой стоимостью LLM: один высокоемкий забрал 0/10 при ручной проверке (его "конфликтующие числа" были ID arXiv и датами публикации), и единственный точный произвёл шесть пар кандидатов на один корпус и ни одной на другой.
Контрольный запуск установил — судить 15 рёбер рассуждений, которые уже существуют, вернул полноту 7/15. Судья всегда работал; кандидаты всегда были неправильными.
Правило REASONING_EDGE_RATIO остаётся, и закрепляет честную базовую линию: 7.5% рёбер несут рассуждения, с contradicts_claim, derived_from, attributes_improvement_to и criticizes на нулевых экземплярах.
Обновление с v0.26.0
Включение и использование. Если вы установили TESSERAE_CONTRAST_PASS, оно больше ничего не делает — проход исчез.