17.8 KB · updated 2026-07-31 · md

agent-memory.ru.md

docs/i18n/agent-memory.ru.md

Многоуровневая память агента — графики знаний для каждого агента

<!-- translations:start -->

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

<!-- translations:end -->

Никто не помнит все — и контекстное окно ни одного агента не может вместить все. Ответ Tesserae — многоуровневая база знаний: каждый агент растит свою память из собственных сеансов, эта память периодически отгоняется (организуется, уплотняется, полируется, уточняется — и безопасно забывается), а руководители видят только отогнанный слой своих отчетов. Руководитель руководителя видит дальнейший сводный отчет. Как в реальной организации, ни один читатель никогда не нуждается во всем архиве.

Все ниже — это согласие и добавление: проекты, которые никогда не запускают tesserae distill, ведут себя так же, как и раньше.

Слои

  • L0 — граф проекта (.tesserae/graph.json). Без изменений. Остается байт-идемпотентным. Структурный проход компиляции теперь создает один узел Agent для каждого наблюдаемого агента плюс ребра performed_by из каждого сеанса — сырое авторство, нулевая стоимость LLM.
  • L1 — один артефакт на агента (.tesserae/agents/<key>/distilled.graph.json). Написано tesserae distill. Обычный файл графа, привязанный к одному чтению 48k, так что любой агент может загрузить всю свою отогнанную память одним вызовом.
  • L2' — сводки руководителя. При отгонке агента, у которого есть отчеты, сводит L1 отчетов: дедупликация по происхождению, группировка по общему сырому доказательству и сохранение лучшей заметки дословно — глубина переурезумирования LLM ограничена 1, поэтому резюме никогда не является переформулировкой резюме. Тот же проход рекурсирует к любой глубине организации.

Идентификация агента

Агенты имеют ключ harness:account:role — уровень роли, поэтому подагент reviewer и подагент planner развивают разные навыки даже на одной машине. Роли происходят из дескрипторов подагентов в расшифровках, затем из правил сопоставления декларативного реестра, затем переходят к default.

tesserae agents init         # сканировать сеансы, ВЫВЕСТИ организацию, написать .tesserae/agents/registry.json
tesserae agents tree         # организационная схема, с подсчетом сеансов + устаревание отгонки
tesserae agents list         # наблюдаемые ключи, метки, родители, количество сеансов
tesserae agents set-parent claude-code:me:reviewer claude-code:me:manager
tesserae agents rename <old> <new>   # переносит артефакт dir + реестр атомарно

init выводит иерархию из сигнала роли. Роль подагента(claude-code:me:reviewer) назначается главному агенту, который ее создал (claude-code:me:default), поэтому одна команда дает вам рабочую многоуровневую организацию — set-parent не требуется. Передайте --flat, чтобы заставить старую диаграмму "все под корнем". set-parent предназначен только для более глубоких, спроектированных вручную иерархий. Нулевая конфигурация все еще работает: без реестра каждый агент отчитывается перед org:root, и agent="org" является обзором плоской команды.

Отгонка

tesserae distill                      # каждый агент, листья сначала, менеджеры в конце
tesserae distill --agent <key>        # один агент
tesserae distill --dry-run            # оценить звонки LLM, не писать ничего
tesserae distill --max-llm-calls 50   # жесткий бюджет; ограниченные прогоны сходятся при перезапусках
tesserae distill --retry-fallbacks    # повторить попытку кластеры, которые упали назад
tesserae distill --full               # игнорировать водяные знаки, переотгонять с нуля

Проход кластеризует результаты агента, суммирует каждый кластер (белый список цитирования и проверка верности) и создает отогнанные заметки, идентификация которых — ключ происхождения — хеш сырого доказательства L0 внизу, никогда не формулировка LLM. Кеширование агрессивно и общее: неизменные входные данные пропускаются водяными знаками, растущие кластеры складываются постепенно, отказы поставщика разрывают цепь и создают детерминированные резервные варианты структуры (отмечены, повторяются, никогда не кэшируются как успех).

Отгонка — это согласие: установите TESSERAE_AGENT_DISTILL=1 (или {"agent_distill": {"enabled": true}} в config.json). Когда включено, tesserae refresh также автоматически отгоняет — но только агентов под давлением памяти (их неотогнанные результаты больше не помещаются в половину чтения контекста), триггер консолидации в стиле MemGPT.

Автоматическая консолидация (цикл сна)

Вам не нужно помнить об отгонке. Как мозг консолидирует память во время отдыха, постоянно включенный демон tesserae engine консолидирует сам по себе, когда проект находится в простое (без редактирования или сеансов в течение нескольких минут), плюс периодический потолок, чтобы постоянно занятый проект все еще консолидировался. Каждый запуск выполняет три операции: сжимает и забывает (отгонка проход ниже), позволяет невосстановленному знанию выцветать от неиспользования (LRU-затухание выше) и открывает новые связи между тем, что выжило. Этап отгонки обертывает именно триггер maybe_distill_on_refresh, описанный выше — то же самое согласие, водяной знак для каждого агента и проверки давления памяти — поэтому цикл — это не-оп, если только TESSERAE_AGENT_DISTILL не установлен, не работает под шлюзом компиляции и не нарушает детерминированные артефакты.

Полное поведение, флаги CLI(--consolidate-idle / --consolidate-every / --consolidate-check) и заметки флота: docs/engine-consolidation.md.

Забвение — никогда не удаление

  • Поглощение: ослабленное, низкой уверенности открытие, которое охватывает llm-качество отогнанное примечание, складывается в него (absorbed_refs) и подавляется при чтении по умолчанию — но остается доступным через include_superseded и drill_down.
  • Понижение: все остальное в худшем случае падает из полного тела в строку заголовка+ссылки в заметке индекса агента. Сам по себе возраст никогда не делает знание невидимым.
  • Устарелостью (LRU):распад управляется недавностью извлечения, не только возрастом создания. Прочитайте запись доступа к поверхности — last_accessed_at / access_count — в node_memory боковое (никогда не в graph.json). Отгонка сливает это живое состояние доступа в его рабочее представление перед вычислением распада, поэтому открытие, которое никто никогда не извлекает, распадается и становится подходящим для поглощения или понижения, в то время как открытие, которое было недавно прочитано, сохраняется независимо от возраста. Пустой боковой воспроизводит старое поведение только по возрасту в точности.
  • Бухгалтерская книга: каждое повышение/понижение/поглощение добавляется в книгу забвения и поверхностно tesserae lint (AGENT_FORGET_LEDGER), наряду с метрикой невыполненной отгонки на агента (AGENT_UNDISTILLED_BACKLOG).

Обнаруженные связи

Помимо сжатия и забвения, консолидация также обнаруживает новые связи между отогнанными заметками——между агентами в проекте, а не только в одном агенте. Она встраивает заметки и связывает близкие пары как ребра shares_concept_with (с маркером federation_semantic). Обнаружение заблокировано встраиванием — оно запускается только тогда, когда настроена реальная система встраивания и пропускает заглушку хеша——поэтому оно никогда не производит ложные связи. Ребра записываются в накапливающееся боковое наложение под .tesserae, никогда в graph.json, и объединяются в памяти при чтении запроса/PPR/федерации (точно как наложение косильных представлений). Каждый цикл консолидации дедупликуется против и расширяет то, что нашли предыдущие циклы. См. docs/engine-consolidation.md для операции цикла сна, которая ее запускает.

Чтение косильного представления

Из CLI, --agent KEY ограничивает query, ask и context:

tesserae query "release checklist" --agent claude-code:me:reviewer   # рабочее представление
tesserae ask "what does my team know about deploys?" --agent org      # вся команда
tesserae agents show claude-code:me:manager    # режим, участники, устаревание
tesserae agents drill SessionInsight:abc123 --agent claude-code:me:reviewer

В MCP, каждый инструмент чтения графа принимает то же agent=. В обоих случаях ключ разрешается следующим образом:

  • ключ рабочего → собственный необработанный опыт ∪ собственные отогнанные заметки, отогнанные предпочтительно (поглощенные необработанные автоматически подавляются наложением, полученным во время загрузки — никогда не записываются обратно в graph.json).
  • ключ менеджера → федерация только L1 артефактов отчетов. Сырые находки никогда не протекают вверх.
  • org → все отогнанные артефакты, нулевая конфигурация.

Вспомогательные инструменты: agents show / agent_view_explain(участники + водяной знак distilled_through устаревания — насколько старым является опыт каждого отчета) и agents drill / drill_down(разрешить member_refs отогнанной заметки обратно к сырому доказательству L0 со статусом живо/изменено/поглощено/ушло——каждый вызов проверяется). compile_context --multi-pool резервирует слоты бюджета для отогнанных заметок и профилей опыта и помечает устаревшее или резервное качество знаний в выводе.

Цикл роста

  • По-агентный ремень: write_harness режим агента выдает каталог ремня по агенту, конфигурация MCP которого достигает того разрешенного представления этого агента, плюс однократное семя purpose.md страница миссии, генерируемая из его профиля опыта.
  • По-агентное руководство: направляйте отгонку одного агента через .tesserae/extraction-guidance-<key>.md, наложенная на уровень проекта .tesserae/distill-guidance.md. Редактирование потока одного агента переотгоняет только этого агента.
  • Семантические мосты (согласие): свяжите связанные отогнанные с shares_concept_with ребрами в представлениях менеджера/организации — ребра, не слияния.
  • Карты тем: agent_topics сворачивает набор отогнанного агента в детерминированный topics.md — содержание агента.
  • Повышение подагента: типизированные прогоны подагента выпускают находки под собственным ключом подагента, поэтому делегированная работа накапливается в опыт делегата.

Гарантии детерминизма

Граф проекта остается байт-идемпотентным; отогнанные артефакты детерминированы при (граф байтов, реестр, каталог кэша, предыдущий артефакт, варианты). Время всегда корпус часы — новейший момент в самих сеансов, рекурсивно новейший детский водяной знак для менеджеров — никогда стена часы. Идентификация узла не зависит от LLM прозы. Зонд Lint отклоняет метаданные в форме временной метки/счетчика на узлах уровня агента, потому что именно этот класс состояния ранее нарушал байт-идемпотентность.

Полное обоснование дизайна: docs/superpowers/specs/2026-07-19-layered-agent-kg.md.