GatingГейтинг
Secrets and explicit entries need more than a plausible keyword. Their location, matching conditions, timing and recursion settings must work together.Для секретов и откровенных записей мало подходящего ключа. Нужно согласовать место хранения, условия срабатывания, задержку и настройки рекурсии.
How a gate worksКак устроен гейт
A key match only tells the platform that matching text appeared. For sensitive material, I also decide where the information lives, which key groups must match, when the entry becomes eligible and whether another lore entry may activate it.Совпадение по ключу означает лишь то, что платформа нашла нужный текст. Для чувствительного материала я также решаю, где хранить информацию, какие группы ключей должны совпасть, когда запись станет доступна и сможет ли её активировать другая запись лорбука.
| DecisionРешение | QuestionВопрос | ControlИнструмент |
|---|---|---|
| PlacementМесто | Should the material be present on every turn or only in a relevant scene?Нужен ли материал на каждом ходу или только в подходящей сцене? | Card or lorebook entryКарточка или запись лорбука |
| TriggerТриггер | Which words clearly point to this entry?Какие слова ясно указывают на эту запись? | Primary keysОсновные ключи |
| ConditionУсловие | Must a key from a second group also appear?Должен ли встретиться ключ ещё и из второй группы? | Optional-filter keysКлючи дополнительного фильтра |
| EligibilityДоступность | May the entry activate in the first messages?Может ли запись сработать в первых сообщениях? | Initial delayНачальная задержка |
| SourceИсточник | May text from another lore entry activate it?Может ли её активировать текст другой записи лорбука? | Recursion controlsНастройки рекурсии |
SillyTavern handles these checks separately. Delay cannot fix an overly broad key. A secondary-key condition cannot hide information stored on the character card. Recursion settings cannot judge whether the story has progressed far enough. Each control has one job.В SillyTavern это отдельные проверки. Задержка не исправит слишком общий ключ. Дополнительный ключ не скроет информацию, записанную в карточке персонажа. Настройки рекурсии не определят, достаточно ли далеко продвинулся сюжет. У каждой настройки своя задача.
Mechanics explains each control separately. Here they are combined so an entry appears only in an appropriate scene.В разделе «Механика» каждая настройка разобрана отдельно. Здесь они объединены так, чтобы запись появлялась только в подходящей сцене.
How to keep a secret from surfacing earlyКак не раскрыть секрет раньше времени
Hidden truth does not belong on the character card. The card is present from the first message, so the model can use anything written there immediately. Facts meant to emerge through the story belong in separate lorebook entries instead. Foundations explains this division in detail.Скрытой правде не место в карточке персонажа: она находится в контексте с первого сообщения, и модель сразу может использовать всё написанное там. Факты, которые должны раскрыться по ходу сюжета, лучше хранить в отдельных записях лорбука. Подробнее это разделение разобрано в «Основах».
The clue and its explanation stay separate. One entry describes what others can notice: a new habit, a flinch or an evasive answer. A gated entry holds the cause, why it is hidden, how the truth can be uncovered and what changes after the reveal.Подсказка и объяснение хранятся отдельно. Одна запись описывает то, что могут заметить окружающие: новую привычку, вздрагивание или уклончивый ответ. Запись с гейтом содержит причину, объясняет, почему её скрывают, как докопаться до правды и что изменится после раскрытия.
Discovery keys come from the actions and evidence that could uncover the secret. If the answer is hidden in a letter, words such as postmark, handwriting and sender are useful; generic message is not. In my lorebooks, standalone words remain the default; a phrase appears only when one word would activate the secret entry too easily.Ключи раскрытия берутся из действий и улик, которые действительно могут привести к секрету. Если ответ скрыт в письме, подойдут слова штемпель, почерк и отправитель, но не общее слово сообщение. В своих лорбуках я по-прежнему предпочитаю отдельные слова, а фразы использую только тогда, когда один ключ слишком легко активировал бы секретную запись.
Delay blocks the entry for a chosen number of opening messages, while recursion controls keep it out of recursive activation. Delay counts messages rather than narrative progress. When it ends, the required keys must still appear. Blocking recursive activation prevents another lore entry from exposing the secret merely by containing one of those keys.Задержка блокирует запись на выбранное число первых сообщений, а настройки рекурсии исключают её из рекурсивной активации. Задержка считает сообщения, а не развитие сюжета. После её окончания нужные ключи всё равно должны появиться в тексте. Запрет рекурсивной активации не позволяет другой записи раскрыть секрет лишь потому, что в ней встретился один из этих ключей.
The intended order is clue first, discovery second, explanation last. Placement, keys and Delay support that order, but no single setting creates it on its own.Нужный порядок таков: сначала подсказка, затем раскрытие и только потом объяснение. Место хранения, ключи и Задержка поддерживают эту последовательность, но ни одна настройка не создаёт её сама по себе.
ExampleПример
A blue envelope addressed to Nic arrives with the afternoon mail at The Lamplighter. He pockets it before anyone can read the return address and tells Teddy that it is only an old bill.Днём в The Lamplighter приносят синий конверт на имя Ника. Он прячет его в карман, прежде чем кто-либо успевает прочитать обратный адрес, и говорит Тедди, что это всего лишь старый счёт.
This scene also contains two layers. The visible layer is Nic’s reaction: blue envelopes make him evasive, and he hides them before anyone can identify the sender. That clue can appear whenever mail reaches the bar. The hidden layer is the truth about the letters: Nic claims that his sister Marisa has not contacted him in two years, but she has been writing for months and asking him to meet. Nic leaves every letter unanswered and hides the evidence that she still reaches out. Separate entries let ordinary scenes show the clue without revealing the sender or the contents.В этой сцене тоже два слоя. Видимый — реакция Ника: при виде синих конвертов он ведёт себя уклончиво и прячет их, прежде чем кто-нибудь сможет определить отправителя. Такую подсказку можно показывать всякий раз, когда в бар приносят почту. Скрытый слой — правда о письмах: по словам Ника, его сестра Мариса не связывалась с ним два года, хотя на самом деле уже несколько месяцев пишет и просит о встрече. Ник оставляет письма без ответа и скрывает доказательства того, что она всё ещё пытается с ним связаться. Разные записи позволяют показать подсказку, не раскрывая отправителя и содержание писем.
- PurposeНазначение
- A clue that can appear in ordinary mail-related scenesПодсказка для обычных сцен с почтой
- Candidate wordingВарианты ключей
- envelopeконверт
- mailпочта
- letterписьмо
- ContentСодержимое
- Nic pockets blue envelopes immediately, avoids showing the return address and dismisses questions about the sender.Ник сразу прячет синие конверты, не показывает обратный адрес и уходит от вопросов об отправителе.
- BoundaryГраница
- Does not identify the sender or reveal what the letters sayНе называет отправителя и не раскрывает содержание писем
- Primary candidates: any oneОсновные ключи: достаточно одного
- MarisaМариса
- sisterсестра
- letterписьмо
- Discovery candidates: any oneКлючи раскрытия: достаточно одного
- postmarkштемпель
- handwritingпочерк
- addressадрес
- EligibilityДоступность
- Blocked during the opening exchange; cannot activate through recursive scanningЗаблокирована в первых репликах; не активируется при рекурсивном сканировании
- ContentСодержимое
- Marisa has written to Nic for months, asking him to meet. He leaves every letter unanswered and tells others that his sister has made no contact.Мариса уже несколько месяцев пишет Нику и просит о встрече. Он оставляет все письма без ответа, а остальным говорит, что сестра с ним не связывалась.
A casual mention of mail can match the visible entry. The secret needs any one primary candidate and any one discovery candidate: OR within each group, AND between the groups. Even then, it stays blocked until the delay has passed, and recursive matches cannot activate it. If these candidates are implemented as regexes, give them the boundaries described in Regex.Обычного упоминания почты достаточно для видимой записи. Секретной записи нужен любой один основной ключ и любой один ключ раскрытия: внутри каждой группы действует ИЛИ, между группами — И. Но даже при обоих совпадениях запись не сработает до окончания задержки, а рекурсивные совпадения её не активируют. Если эти варианты оформлены как регексы, добавьте границы, описанные в главе «Регексы».
| Scene textТекст сцены | Gate resultРезультат гейта | What appearsЧто появляется |
|---|---|---|
| A blue envelope arrives for NicНику приносят синий конверт | Only the visible entry has a matching keyСовпал только ключ видимой записи | Visible entry onlyТолько видимая запись |
| During the opening exchange, Teddy sees “Marisa” on the return-address lineВ первых репликах Тедди видит имя «Мариса» в строке «Обратный адрес» | Both key groups match, but the delay still blocks the secretСовпали обе группы ключей, но задержка ещё блокирует секрет | The secret stays offСекретная запись не срабатывает |
| After the delay, Teddy recognizes the handwriting; the letter is signed “Marisa”После задержки Тедди узнаёт почерк; письмо подписано именем «Мариса» | Both key groups match, and the delay has passedСовпали обе группы ключей, и задержка уже закончилась | The visible entry appears, and the secret can fireПоявляется видимая запись, и секретная запись может сработать |
The second and third rows show two schematic moments from the same story. During the opening exchange, the configured Delay has not ended, so the secret remains ineligible even though both key groups match. In the later scene, enough messages have passed for the entry to become eligible, but the required keys must still match again. Delay counts messages, not narrative progress, and no keyword match can bypass it.Вторая и третья строки показывают две условные сцены одной истории. В первых репликах настроенная Задержка ещё не закончилась, поэтому секретная запись недоступна, хотя ключи обеих групп совпали. В более поздней сцене прошло достаточно сообщений, запись стала доступна, но нужные ключи всё равно должны совпасть снова. Задержка считает сообщения, а не развитие сюжета, и совпадение ключей не может её обойти.
Words such as blue, paper and generic message describe the object, not the discovery. They occur too often to guard this secret safely. See broad keys and the collision audit.Слова синий, бумага и слишком общее сообщение описывают предмет, а не раскрытие секрета. Они встречаются слишком часто, чтобы безопасно использовать их здесь. См. слишком общие ключи и проверку коллизий.
The two-layer gateДвухуровневый гейт
I require two non-empty key groups for every explicit entry. The primary group marks sexual context; the secondary group confirms an explicit action. Keys within each group use OR, while the groups are joined by AND. At least one key from each group must match.Для каждой откровенной записи я обязательно использую две непустые группы ключей. Основная группа обозначает сексуальный контекст, а дополнительная подтверждает откровенное действие. Внутри каждой группы действует ИЛИ, между группами — И. Должно совпасть хотя бы по одному ключу из каждой группы.
In SillyTavern, enable selective, populate keysecondary and set selectiveLogic: 0 to require one primary key plus any secondary key. I also enable both recursion-isolation controls so the entry cannot be activated by another lore entry or trigger further sensitive entries.В SillyTavern я включаю selective, заполняю keysecondary и задаю selectiveLogic: 0: тогда потребуется один основной и любой дополнительный ключ. Также я включаю обе настройки изоляции от рекурсии, чтобы запись не могла активироваться через другую запись лорбука или запустить дальнейшие чувствительные записи.
{
"key": ["/\\bmoan(?:ed|ing)?\\b/i"],
"keysecondary": ["/\\bthrust\\s+into\\b/i"],
"selective": true,
"selectiveLogic": 0,
"excludeRecursion": true,
"preventRecursion": true
}
{
"key": ["/(?<![А-Яа-яЁё])простонал(?:а|и)?(?![А-Яа-яЁё])/i"],
"keysecondary": ["/(?<![А-Яа-яЁё])проникновени(?:е|я|ю|ем|и)(?![А-Яа-яЁё])/i"],
"selective": true,
"selectiveLogic": 0,
"excludeRecursion": true,
"preventRecursion": true
}
An empty keysecondary list does not create a second layer. SillyTavern applies secondary filtering only when selective is enabled and secondary keys are present. If the list is empty, a primary key can activate the entry by itself.Пустой список keysecondary не создаёт второй уровень. SillyTavern применяет дополнительную фильтрацию, только если selective включён и список дополнительных ключей заполнен. Если список пуст, запись может активироваться по одному основному ключу.
The entry can contain character-specific preferences, boundaries, physical reactions, responses and aftercare. This example shows only the activation logic. The Delay value and entry content depend on the character and are configured separately.В самой записи можно описать предпочтения и границы персонажа, телесные реакции, поведение и заботу после близости. Здесь показана только логика активации. Значение Задержки и содержимое записи зависят от персонажа и задаются отдельно.
Test both outcomesПроверьте оба исхода
A positive test shows that the gate can open, but not that it stays closed when it should. Pair it with an ordinary affectionate scene that must not activate the entry. This is the same principle used in regex testing.Положительный тест показывает, что гейт открывается, но не доказывает, что он не сработает лишний раз. Добавьте обычную сцену с проявлением нежности, которая не должна активировать запись. Тот же принцип используется при тестировании регексов.
“She kissed his cheek and held him close.”«Она поцеловала его в щёку и крепко обняла.»
Neither key group matches, so the entry stays off.Не совпала ни одна группа ключей, поэтому запись не срабатывает.
“He thrust into her, groaning as she moaned his name.”«Во время проникновения он глухо застонал, а она простонала его имя.»
The primary key moaned and secondary phrase thrust into both match, so the entry can fire.Совпали основной ключ простонала и дополнительный ключ проникновения, поэтому запись может сработать.
Then apply the usual relevance test to the complete entry: every key should point clearly enough to the entry’s subject to justify adding it to the prompt.Затем примените к полной записи обычный тест релевантности: каждый ключ должен достаточно ясно указывать на тему записи, чтобы её добавление в промпт было оправдано.
Same idea, different controlsОдин принцип, разные настройки
The testing goal carries across platforms, but the controls differ. SillyTavern provides built-in lorebook settings. JanitorAI Lorebook scripts use the gate fields shown in the right column, while an Advanced Script may add its own logic around them.Цель проверки на разных платформах одна, но настройки отличаются. В SillyTavern они встроены в лорбук. В Lorebook Scripts для JanitorAI используются поля гейта из правой колонки, а Advanced Script может дополнять их собственной логикой.
| Gate conceptЭлемент гейта | SillyTavernSillyTavern | JanitorAI Lorebook scriptsJanitorAI Lorebook Scripts |
|---|---|---|
| Require a second layerПотребовать второй слой | selective + keysecondary | requireAny / requireAll |
| Wait before initial eligibilityОтложить начальную доступность | delay | minMessages |
| Reject blocked termsБлокировать при стоп-словах | keysecondary + NOT_ANY | requireNone / notAny |
The field names are not direct replacements for SillyTavern fields, and a script may combine them with additional conditions. Timed effects and recursion controls still require separate decisions. One complete third-party implementation is explained in Regex on JanitorAI.Эти поля не являются прямыми заменами полей SillyTavern, а конкретный скрипт может сочетать их с дополнительными условиями. Временные эффекты и настройки рекурсии всё равно задаются отдельно. Один полный сторонний пример разобран в разделе «Регексы в JanitorAI».
Test the result instead of trusting a familiar field name: ordinary scenes must leave the gate closed, the intended scene must open it, and the secret must remain unavailable at the beginning.Проверяйте результат, а не знакомое название поля: в обычной сцене гейт должен оставаться закрытым, в нужной — открываться, а в начале разговора секрет должен быть недоступен.