Записи лорбука: ключевые слова, позиция и время срабатывания
Запись – это один факт в лорбуке плюс правила, которые решают, когда Marinara добавит его в промпт. В этом руководстве разобрано, как добавлять записи, выбирать ключевые слова и тип записи, решать, куда запись попадет, и настраивать время срабатывания.
Перед началом: создайте лорбук и откройте его. См. Обзор лорбуков.
Вкладка Entries
Откройте лорбук в панели Lorebooks (лорбуки). У редактора две вкладки: Overview (обзор) и Entries (записи). Нажмите Entries, чтобы увидеть список. Значок на вкладке показывает, сколько у вас записей.
На панели инструментов есть такие элементы.
- Search entries… (поиск записей) фильтрует список по названию, ключевым словам или содержимому.
- Меню сортировки предлагает Order, Entries, Name A→Z, Name Z→A, Tokens ↓, Keys ↓, Fired ↓, Newest и Oldest. Варианты со стрелкой ↓ сортируют от большего к меньшему.
- Select (выбрать) включает множественный выбор, чтобы копировать, перемещать или удалять сразу несколько записей.
- Add Folder (добавить папку) создает папку (см. Папки записей).
- Add Entry (добавить запись) добавляет пустую запись в начало списка.
Строка под панелью инструментов показывает число записей, число папок и примерный общий размер содержимого всех записей в токенах.
Добавление и изменение записи
- Нажмите Add Entry. Появится новая строка.
- Впишите название в строке. Название нужно каждой записи. Оно нужно вам и поиску, а не ИИ.
- Нажмите на строку или на ее стрелку. Под строкой откроется панель со всеми полями.
- Впишите ключевое слово в Primary Keys (основные ключевые слова) и нажмите <kbd>Enter</kbd>. Затем напишите текст для ИИ в Content (содержимое). См. Содержимое и ключевые слова.
Правки сохраняются сами. В панели видно Autosaving…, затем Saving…, затем Saved automatically. Если сохранить не удалось, ваш текст остается на месте, а Marinara повторяет попытку при следующей правке.
Чтобы скопировать запись, нажмите Duplicate entry (дублировать запись) в ее строке. Чтобы удалить ее, нажмите Delete entry (удалить запись) и подтвердите. На компьютере эти кнопки появляются, когда вы наводите курсор на строку.
Содержимое и ключевые слова
| Поле | Что это |
| Primary Keys | Слова, которые активируют запись. Впишите слово и нажмите <kbd>Enter</kbd>, чтобы добавить его. Запись Normal активирует любое одно совпадение. |
| Content | Текст, который отправляется ИИ. Пишите простой факт. В нем работают макросы, а под полем видна оценка в токенах. |
| Secondary Keys (дополнительные ключевые слова) | Добавочные ключевые слова, которые используют только записи Selective. |
| Description (описание) | Краткая сводка, которую читает только агент Knowledge Router. В основную модель она не отправляется никогда. См. Источники знаний. |
Список длиннее 10 ключевых слов показывает первые 10. Нажмите Show N more (показать еще N), чтобы увидеть остальные, и Collapse (свернуть), чтобы скрыть их. Скрытые ключевые слова по-прежнему срабатывают.
Например, запись с названием Silverhaven, ключевыми словами Silverhaven и the capital и содержимым Silverhaven is the mountain capital. Its people mine blue crystal and distrust outsiders. попадает к ИИ всякий раз, когда любое из этих слов появляется в недавнем чате.
Правила совпадения
По умолчанию ключевое слово совпадает, если оно встречается где угодно в недавнем чате, а регистр букв не важен. Это меняют три элемента.
- Whole Words (целые слова; в панели записи, по умолчанию выключено): ключевое слово должно быть целым словом.
Ashсовпадает с "Ash", но не с "cash". - Case Sensitive (учитывать регистр; в панели записи, по умолчанию выключено): заглавные и строчные буквы должны совпадать.
ITсовпадает с "IT", но не с "it". - Regex (значок в строке со всплывающей подсказкой Enable regex key matching, по умолчанию выключено): считает каждое ключевое слово регулярным выражением, то есть шаблоном для поиска текста. Когда он включен, значок становится оранжевым.
Используйте Regex, только если знаете регулярные выражения. У каждого шаблона короткий лимит времени, и слишком долгий шаблон не совпадает, поэтому держите шаблоны простыми. Например, \bVlad(?:'s)?\b совпадает с "Vlad" и "Vlad's".
Выбор типа записи
Нажмите на цветную точку в строке, чтобы открыть меню типов.
- Normal (зеленая точка, по умолчанию): активируется, когда совпадает основное ключевое слово. Подходит для большинства записей: людей, мест, предметов. Задайте каждой от трех до восьми точных ключевых слов.
- Constant (желтая точка): активируется каждый раз, пока лорбук активен, без ключевого слова. Подходит для немногих фактов, которые должны присутствовать всегда, например года или тона. Время срабатывания, вероятность и фильтры по-прежнему действуют.
- Selective (красная точка): активируется, когда совпадает основное ключевое слово и выполняется логика дополнительных. Подходит, когда распространенное ключевое слово сработало бы не в той сцене.
Каждая запись Constant тратит токены в каждом сообщении, поэтому держите таких записей немного.
Для записи Selective добавьте Secondary Keys и выберите кнопку Logic (логика).
| Logic | Запись срабатывает, когда |
| AND Any | Появляется хотя бы одно дополнительное ключевое слово. |
| AND All | Появляются все дополнительные ключевые слова. |
| NOT Any | Не появляется ни одно дополнительное ключевое слово. |
| NOT All | Не все дополнительные ключевые слова появляются вместе. |
Например, основное ключевое слово king с дополнительным Silverhaven и логикой AND Any срабатывает, только когда в чате упомянуты оба.
Если не получилось: у записи Normal без ключевых слов нечему совпадать. Добавьте ключевые слова или сделайте ее Constant. Запись без ключевых слов по-прежнему можно найти по смыслу, но только когда семантический поиск полностью настроен.
Position, Depth и Order
Эти элементы решают, куда активированная запись попадет в промпте. На широком экране они находятся в компактной строке. На узком экране нажмите в строке кнопку Entry quick controls (быстрое управление записью).
| Элемент | Что делает |
| Position (позиция) | Куда попадает запись. По умолчанию Before character definitions (перед описаниями персонажей). |
| Before character definitions | Перед карточкой персонажа в промпте. Метка в строке – ↑Char. |
| After character definitions (после описаний персонажей) | После карточки персонажа. Метка в строке – ↓Char. |
| @ Depth | Внутри истории чата. Метка в строке – @Depth. |
| Outlet | Никуда автоматически (см. ниже). |
| Depth (глубина) | Показывается только для @ Depth. На сколько сообщений назад от последнего стоит запись. По умолчанию 4. |
| Order (порядок) | Последовательность, когда активируется несколько записей. Меньшее число идет раньше и переживает обрезку, когда лимит поджимает. По умолчанию 100. |
Role (роль) находится в раскрытой панели записи, а не в быстрых настройках. Она помечает вставленный текст как System, User или Assistant, важна только для @ Depth и по умолчанию равна System.
Оставляйте эти настройки по умолчанию, пока записи не понадобится большее. Позицию @ Depth используйте редко. Текст попадает между недавними сообщениями, как вмешательство посреди разговора, поэтому берите ее для правила, которое модель постоянно забывает, или для факта, который только что изменился. Например, "The tavern is now on fire." на @ Depth 1.
Outlet
Запись Outlet появляется только там, где вы поставили макрос.
- Задайте для Position значение Outlet. Появится поле Outlet name (имя outlet).
- Впишите точное имя с учетом регистра, например
character_rules. - Поставьте
{{outlet::character_rules}}в раздел промпта вашего пресета.
Записи с одинаковым именем соединяются в порядке Order и разделяются переводами строки. Макросы outlet работают в разделах промпта в чатах Conversation, Roleplay и Game. Появляются только записи, активированные для этого ответа. Они по-прежнему подчиняются ключевым словам, вероятности, фильтрам, времени срабатывания, Entry Limit (лимит записей) и Token Budget (лимит токенов). Если активных записей нет, макрос ничего не добавляет. Запись Outlet не может вызвать другой макрос outlet. О самом макросе см. макросы.
Вероятность и время срабатывания
Probability (вероятность) – это шанс, что запись сработает, когда ее ключевые слова совпали. По умолчанию 100%. Задайте 25%, чтобы шанс был один из четырех каждый раз.
Поля Timing (время) управляют поведением записи на протяжении нескольких сообщений. Изначально все четыре не заданы, то есть выключены.
| Поле | Что делает | Пример |
| Sticky | После срабатывания запись остается активной еще столько сообщений, даже без совпадения ключевого слова. | Раскрытый секрет со значением 3 остается еще на три сообщения. |
| Cooldown | После срабатывания запись ждет столько сообщений, прежде чем сможет сработать снова. | Знамение со значением 5 срабатывает не чаще раза в пять сообщений. |
| Delay | Запись не может сработать, пока в чате не наберется столько сообщений. | Поворот сюжета со значением 20 поначалу остается скрытым. |
| Ephemeral | Запись выключает себя сама после такого числа активаций. 0 означает без ограничений. | Вступительная заметка со значением 1 срабатывает один раз. |
Sticky, Cooldown и Delay считают сообщения. Ephemeral считает активации.
Активация по решению
Поле Decision (решение) позволяет вашей модели решений, небольшой модели, которая отвечает на вопросы да или нет, решить, подходит ли запись. Напишите утверждение о недавнем чате, например In the latest message, a dragon is physically present, и выберите режим.
| Режим | Что происходит |
| Off (выключено) | Запись активируется как обычно. Это значение по умолчанию. |
| Require (требовать) | Запись активируется как обычно и только тогда, когда утверждение тоже истинно. Это отсекает упоминания вскользь. |
| Trigger (активировать) | Утверждение – еще один способ активировать запись, даже без ключевого слова. Это ловит перефразировки и ситуации. |
В утверждении можно использовать макросы, например {{user}} и {{char}}.
Перед началом: выберите модель решений в Decision model (модель решений) на панели Connections (подключения). Без модели решений или без ответа утверждение засчитывается как нет. Редактор предупреждает, когда модель не выбрана.
- Тогда Require никогда не допускает новую запись, хотя уже действующее удержание Sticky может сохранить ее активной.
- Trigger не добавляет способа активации, и запись по-прежнему может активироваться по ключевым словам.
Дайте важным записям и обычный способ активации, а Require используйте только для фильтрации необязательного лора.
Require проверяет только запись, которая уже проходит по ключевым словам, семантическому совпадению, типу Constant или месту на карте, и пропускает ее, только если утверждение тоже истинно. На записи Constant он делает запись ситуативной, например правила боя с A fight is happening in the latest message. Он не сканирует все неиспользованные записи.
Утверждения решений добавляют запросы к модели и делят общий лимит Decision statements per turn (утверждения решений за один ответ). Советы по формулировкам, ограничения, стоимость и повторное использование ответов описаны в разделах Как писать утверждения, Ограничения и стоимость и Повторное использование ответов. О настройке модели см. Модели решений.
Подробнее:
- Запись sticky не спрашивается снова, пока длится ее удержание, а запись на cooldown не спрашивается вообще.
- Список активных лорбуков показывает decision (решение) для записи, которую активировало утверждение Trigger.
- Peek Prompt никогда не спрашивает. Он показывает ответы, которые уже есть для текущего хода.
- Активация по решению применяется только к ответам в чате. Настройка игры и сканирования, которые агенты запускают для себя, читают записи решений как нет.
{{#if decision:"..."}}внутри содержимого записи – это другое. Он сокращает текст записи, которая уже активировалась.
Группы, фильтры и другие настройки
В раскрытой панели есть еще поля.
| Поле | Что делает |
| Group (группа) | Записи одной группы взаимоисключающие. За один ответ активируется только одна. Используйте для вариантов, например трех записей "погода на сегодня". Сочетайте с низкой Probability, чтобы слухи всплывали лишь изредка. |
| Tag (тег) | Свободная метка для вашей собственной сортировки. На активацию не влияет. |
| Locked (заблокировано) | Запрещает агенту Lorebook Keeper менять эту запись. См. Справочник агентов для скачивания. |
| No Vector | Исключает запись из семантического поиска. См. Семантический поиск в лорбуках. |
| Recursion (рекурсия) | Разрешает содержимому этой записи активировать другие записи. По умолчанию выключено. См. Лимиты токенов и рекурсия в лорбуках. |
Раздел Context filters & matching sources (фильтры контекста и источники совпадений) ограничивает запись определенными персонажами, тегами персонажей или типами генерации. Он также позволяет искать ключевые слова записи в дополнительных полях карточки, например в описании персонажа. В групповом чате в режиме Individual (по отдельности) каждый ответ учитывает только персонажа, который его пишет, поэтому фильтр по персонажу не пускает запись в ответы других персонажей. В ответе Merged (Narrator) (объединенный, с рассказчиком) учитываются все персонажи чата, поэтому запись остается, если в чате есть любой из отфильтрованных персонажей. Используйте это для секретов, которые знает только один персонаж.
Выбор настроек для факта
Спросите себя, когда ИИ должен видеть этот факт, а затем воспользуйтесь таблицей.
| Факт | Настройка |
| Верен всегда | Constant. Таких записей должно быть немного. |
| Важен, только когда его называют | Normal с точными ключевыми словами, например Castle Dracul, the castle, the fortress. |
Его ключевое слово распространенное, например king или home | Whole Words или Selective с дополнительными ключевыми словами. |
| Важен, но его редко называют | Normal с семантическим поиском или более широкие ключевые слова. |
| Несколько версий, которые не должны появляться вместе | Одна и та же Group. |
| Правило, которое модель забывает посреди сцены | @ Depth примерно от 1 до 4. |
Привычки, которые держат лорбук компактным:
- Выбирайте точные ключевые слова. Слово вроде
heилиthe cityсовпадает почти в каждом сообщении и впустую тратит лимит. - Заполняйте Description у каждой записи, которую должен направлять Knowledge Router. Он читает описание, а не содержимое.
- Стройте большие миры деревом. Добавьте запись-узел для группы, например одну запись про Империю со списком ее представителей, рядом с записями о каждом из них.
- Не включайте Recursion на записях-узлах. Иначе одно упоминание группы разом втянет в промпт полные записи всех ее представителей.
Например, возьмем правило о том, как можно убить злодея, – факт, который ИИ склонен забывать. Сделайте запись Selective с логикой AND Any, включенным Whole Words и Order 10. Задайте основные ключевые слова weakness, kill, destroy, stake и дополнительные Vlad, the count. Дополнительные слова не дают записи сработать, когда отряд убивает волка. Whole Words не дает stake совпасть с "mistake". Низкий порядок не дает записи попасть под обрезку в многолюдной сцене.
От того, где лежит лорбук, зависит, какие чаты его видят. О глобальных, привязанных и встроенных лорбуках см. Обзор лорбуков и Привязка лорбуков к персонажам и персонам.
Макросы в содержимом записи
Поле Content раскрывается перед отправкой так же, как любой другой текст промпта. Полезные макросы:
{{char}}и{{user}}подставляют имена, поэтому общая запись читается естественно в любом чате.{{roll:1d6}}бросает кубик.{{setvar::mood::angry}}сохраняет значение для этого чата, а{{getvar::mood}}читает его обратно.{{random::a::b::c}}выбирает один вариант. Добавьте веса, как в{{random::common@3::rare@1}}. Сочетайте это с низкой Probability, чтобы уместить целую таблицу встреч в одну запись.{{include::Entry name}}подставляет текст другой записи из того же лорбука, даже выключенной. См. Макрос include для записей лорбука.{{// note}}– это комментарий. Он вырезается до того, как текст увидит ИИ, и до рекурсивного сканирования, поэтому никогда ничего не активирует.
Полный список см. в руководстве Макросы промптов.
Когда включен Recursive (рекурсивно), Marinara заново сканирует раскрытое содержимое активированных записей. Текст, который выдает макрос, может активировать другие записи.
Инструмент Keyword test
Панель Keyword test (проверка ключевых слов) вверху вкладки Entries проверяет ваши ключевые слова без чата.
- Раскройте Keyword test.
- Вставьте в поле пример абзаца или несколько сообщений.
Записи, которые бы совпали, получают зеленый акцент и плашку Would activate. Записи Constant получают плашку Always active. Строка со счетчиком показывает, сколько включенных записей активировалось бы. Переключатель Include other lorebooks (учитывать другие лорбуки) проверяет также включенные записи в других ваших лорбуках.
Проверка не учитывает время срабатывания, вероятность, фильтры по персонажам и персонам, а также совпадение по смыслу, поэтому живой чат может отличаться.
Папки записей
Папки группируют записи внутри одного лорбука. Они не связаны с папками библиотеки в панели Lorebooks.
- Нажмите Add Folder, а затем переименуйте папку на месте.
- Перетащите запись на папку или воспользуйтесь списком Folder (папка) в записи (работает касанием).
- Перетащите папку на другую, чтобы вложить ее, или на верхнюю полосу, чтобы вынести обратно.
- У каждой папки есть переключатель включения (всплывающая подсказка "Folder enabled"). Когда он выключен, все записи внутри перестают активироваться.
- Clone folder (клонировать папку) копирует папку со всеми записями и вложенными папками.
- Delete folder (удалить папку) удаляет только саму папку. Ее содержимое поднимается на верхний уровень.
Папки видны как группы, только когда вы сортируете по Order без поиска. Иначе вы видите плоский список и примечание Folder view paused (clear search and sort by Order).
Устранение неполадок
| Симптом | Решение |
| Запись никогда не срабатывает. | Задайте ей ключевые слова или сделайте ее Constant. Проверьте, что лорбук включен и активен в чате. |
| Ключевое слово работало, а потом перестало. | Marinara сканирует только несколько последних сообщений: это Scan Depth (глубина сканирования, по умолчанию 2). Увеличьте Scan Depth, добавьте Sticky или сделайте запись Constant. |
| Запись срабатывает не в тех сценах. | Используйте Whole Words, дополнительные ключевые слова Selective или фильтр по персонажу. |
| Важный лор теряется. | Задайте ему меньший Order или увеличьте Token Budget. Раздел Active Context (активный контекст) в Chat Settings (настройки чата) показывает, что пропущено и почему. См. Лимиты токенов и рекурсия в лорбуках. |
| ИИ не обращает внимания на запись. | Проверьте в Active Context, что она активировалась. Факт далеко от последнего сообщения влияет слабее, чем факт, поставленный рядом с последним сообщением через @ Depth. |
Смежные руководства
- Обзор лорбуков
- Модели решений
- Лимиты токенов и рекурсия в лорбуках
- Семантический поиск в лорбуках
- Источники знаний: агенты Knowledge Retrieval и Knowledge Router