NotariumДокументация
Версия документации: latest
RU

Контекст-наборы и пины

Когда агент зовёт start_session, он получает не всю базу, а курируемый вами стартовый контекст. Раздел Agents → Context — это конструктор стартового контекста: здесь вы решаете, что именно агент видит на старте: какие заметки грузятся всегда (пины), какие переиспользуемые пачки подключены к области (контекст-наборы) и какие категории памяти приглушены. Тег-пины и приглушение памяти — file-first: они живут во frontmatter заметок и переживают повторный клон репозитория. Контекст-наборы и кросс-спейс пины хранятся в служебной БД (осознанная оговорка: повторный клон на чистый хост и режим none их не переживают).

Пины always-load

Пин — это ручная пометка «грузить всегда» (членство в теге always-load, а не очередность). Пины работают на двух осях:

  • Личная — заметки личного домена попадают в profile.alwaysLoad и грузятся при каждой сессии.
  • Проектная — заметки поддерева помеченного проекта попадают в project.alwaysLoad и грузятся, когда агент работает в этом проекте (хинт project).

Пин привязан к месту заметки: заметка в личном домене пинится в профиль, заметка в поддереве проекта — в бандл проекта. Конструктор показывает ровно то, что реально загрузит агент, — курация на сервере и в превью считается одним и тем же кодом.

Контекст-наборы — кросс-спейс пачки

Тег always-load привязывает пин к одному пространству. Контекст-наборы снимают это ограничение: это именованная переиспользуемая коллекция ссылок на заметки, которую можно подключить к другой области.

Типичный сценарий: вы собрали набор «Фронт-конвенции» из заметок общего пространства conventions и подключили его к проектам в другом пространстве. Все сессии этих проектов получают эти заметки, а правите вы набор в одном месте — обновилось везде.

Есть и облегчённый вариант — кросс-спейс loose-пин: одна заметка, запиненная напрямую в область из другого пространства, без обёртки-набора. Тег always-load остаётся для same-space пина; наборы и loose-пины — для кросс-спейс. Все сосуществуют, дедуп идёт по note-id.

Владение ≥ подключение

Набор живёт в своём родном пространстве, и членство там даёт видимость и правку. Личный набор подключается только к вашему личному домену; общий набор (из общего пространства) — к личному или к любому проекту. Подключить личный набор к проекту нельзя — он грузил бы контекст только вам.

Порядок = приоритет загрузки

Порядок пинов и наборов в списке — ваш (drag-and-drop), не производный. Он задаёт приоритет: что выше — грузится первым и обрезается последним при упоре в токен-бюджет. Пины и наборы ранжируются в одном пространстве порядка (набор можно поднять выше пина). Общий порядок загрузки: пины → наборы → память (специфичное перевешивает общее), затем лишнее обрезается по бюджету области.

Приглушение памяти (mute)

Память агента грузится в контекст по умолчанию. Если категория шумит — точечно приглушите её (mute). Приглушение убирает память отовсюду, где она попадает к агенту сама, без явного запроса:

  • личный профиль, который грузится сразу при start_session;
  • сборка бандла recall;
  • словарь категорий в start_session(project).knownValues.
Search видит приглушённое намеренно

search не фильтрует mute: он индексирует память именно для дедупа «искать перед записью». Иначе агент не нашёл бы приглушённую категорию и пересоздал бы дубль. Mute — это приглушение авто-контекста, не удаление: явный поиск и аудит по-прежнему видят всё. Реверс — Unmute на той же оси.

Единый токен-бюджет

Над секциями конструктора — одна шкала загрузки, строго равная бюджету текущей области. Личный ответ несёт один бюджет (сперва пины, потом память); проектный — свой бюджет, где сперва идут проектные пины, а личный фон встраивается в остаток. Загруженное всегда ≤ бюджета, а обрезка видна поэлементно. Проектная память не грузится сразу, а подтягивается по запросу; если конкретный факт проекта нужен всегда — запиньте заметку.

Дальше