Memory Guard
Memory Guard — защитный слой сервера MMW, через который проходит каждая запись перед сохранением. У него две задачи: отклонять попытки «отравить» память агента и вычищать секреты.
Из этой страницы вы узнаете:
- какие записи отклоняются целиком и что при этом видит агент;
- какие секреты заменяются заглушками и как выглядит заглушка;
- где ещё работают те же правила.
Отклонение: защита от отравления памяти
Заголовок раздела «Отклонение: защита от отравления памяти»Память читают агенты, поэтому запись может стать способом подбросить инструкцию будущим сессиям. Memory Guard отклоняет текст записи, если он похож на такую попытку:
- просьбы игнорировать предыдущие инструкции или прежний контекст;
- попытки переопределить системный промпт;
- указания выгрузить данные на внешний адрес;
- указания отправить кому-то пароли, секреты или токены.
Отклоняется и пустая запись.
Что видит агент — ошибку инструмента remember:
Memory rejected by Security Guard: Memory poisoning detected: matching pattern '…'Запись не сохраняется. Если вам действительно нужно зафиксировать такой случай (например, «в задаче была попытка prompt injection»), опишите его своими словами, не цитируя саму вредоносную фразу.
Вычистка секретов
Заголовок раздела «Вычистка секретов»Секрет в записи не приводит к отказу: запись сохраняется, но сам секрет заменяется заглушкой. Проверяются все сохраняемые поля: content, source, source_id, source_hash, source_revision, fact_key.
Что распознаётся (по категориям):
| Категория | Примеры |
|---|---|
| Приватные ключи | Блоки PEM, ключи PuTTY, в том числе обрезанные |
| Строки подключения | Пароль в URI базы данных и в адресах вида пользователь:пароль@хост — маскируется только пароль |
| Заголовки авторизации | Authorization: Bearer …, Basic … |
| Ключи LLM-провайдеров | OpenAI, Anthropic, Groq, xAI, Hugging Face, Replicate и похожие |
| Системы разработки | Токены GitHub, GitLab, Atlassian, npm, PyPI |
| Облака | AWS, Google Cloud, Azure, DigitalOcean, HashiCorp Vault, Yandex Cloud |
| Сообщения и рассылки | Slack, Telegram-боты, SendGrid, Twilio |
| Платежи и SaaS | Stripe, Shopify, Linear, Notion |
| Ключи MMW | Ключи формата mmw_… |
| Подписанные токены | JWT |
| Присваивания | password=…, API_KEY: …, «пароль: …» и похожие пары «имя секрета — значение» |
Заглушка выглядит так:
[REDACTED:<правило>:<8 символов хеша>]Пример. Агент пытается сохранить:
Тестовая база: postgres://app:<пароль>@db.internal:5432/appВ памяти окажется:
Тестовая база: postgres://app:[REDACTED:db_uri_password:5f1e9c02]@db.internal:5432/apprememberотвечает как обычно — агент не получает ошибку;- в
searchагент увидит текст с заглушкой; - хеш — первые 8 символов SHA-256 от значения: по нему можно понять, что в двух записях был один и тот же секрет, но восстановить сам секрет нельзя;
- в журнал операций попадает только то, какие правила сработали и сколько раз, без значений и хешей.
Чтобы снизить ложные срабатывания, не маскируются значения, похожие на код и идентификаторы (например, config.api_key или имя переменной), явные заглушки в примерах адресов и уже вычищенный текст.
Где ещё работают эти правила
Заголовок раздела «Где ещё работают эти правила»- mmw-agent на вашем компьютере — та же копия правил вычищает историю сессий до отправки. Тест проверяет, что правила агента совпадают с серверными. См. История сессий.
- Сервер при приёме истории сессий — каждый фрагмент вычищается ещё раз.
- Telegram-бот — заметки сохраняются тем же
remember. - Архивариус — его ответ вычищается, прежде чем попасть в
fact_key.