---
title: "Скрытие секретов"
id: "2023"
type: "page"
slug: "anonymizer"
published_at: "2026-09-20T18:37:33+00:00"
modified_at: "2026-09-21T00:00:47+00:00"
url: "https://pastukhov.com/agents/proxy/docs/anonymizer"
markdown_url: "https://pastukhov.com/agents/proxy/docs/anonymizer.md"
excerpt: "Когда программа отправляет запрос в модель, вместе с вопросом уходит и всё, что вы в…"
---

# Скрытие секретов

[https://pastukhov.com/agents/proxy/docs/anonymizer.md](https://pastukhov.com/agents/proxy/docs/anonymizer.md)

Когда программа отправляет запрос в модель, вместе с вопросом уходит и всё, что вы в него вставили: ключи, пароли, номера документов, персональные данные. Скрытие секретов — это фильтр, который заменяет такие значения условными обозначениями до отправки, а в ответе возвращает их на место. Модель работает с обозначениями, а вы получаете осмысленный ответ с настоящими данными.

## Включено по умолчанию? Нет

Честно с самого начала: функция **выключена по умолчанию**. Включённая, она переписывает запросы, и включать её стоит осознанно, посмотрев на правила. Переключатель живёт в настройках и применяется в течение примерно 15 секунд, без перезапуска.

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

## Как устроено правило

Правило состоит из трёх частей:

- **Имя** — как вы будете называть правило, например «Личные данные клиентов».
- **Образец поиска** — описание того, что искать. Это «образец» в техническом смысле: специальная запись, которой можно описать, например, «любой номер из одиннадцати цифр» или «слово после „номер:“». Составляется один раз, дальше работает сам.
- **Шаблон вывода** — как обозначить найденное. В шаблоне ровно один знак `$`, на место которого подставляется номер, например `КЛИЕНТ_$`.

К правилу прилагается список самих секретов — конкретных значений, которые нужно прятать.

## Что заменяется, а что нет

Образец поиска лишь **находит** подходящие места, но заменяет продукт только те значения, которые перечислены в списке секретов. Это сделано специально, чтобы не тронуть лишнее: похожий номер или другой ключ останутся как есть.

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

## Нумерация и возврат на место

Нумерация сплошная и постоянная: одно и то же значение во всех запросах получает одно и то же обозначение. Если секрет в первый раз стал `КЛИЕНТ_1`, то и в десятый раз он уйдёт как `КЛИЕНТ_1`. Так модель не путается, а вы понимаете ответы.

Возврат на место работает во всех ответах, включая те, что приходят по частям. Он продолжает работать даже после того, как правило изменили или удалили: продукт отдельно помнит все когда-либо выданные обозначения. А слова, которые просто выглядят похоже, но секретом не являются, не портятся — они проходят как есть.

## Безопасный отказ

Если проверку по правилу выполнить не удалось, запрос **не уходит поставщику** — вы получаете ошибку. Логика простая: лучше не получить ответ, чем отправить секреты наружу. Так ведёт себя и слишком «жадный» образец поиска, который считает тело запроса дольше отведённого времени.

## Отчёты об утечках

Каждый случай замены фиксируется: правило, модель, ключ, время, обозначение и сколько раз значение встретилось. Это раздел «Отчёты об утечках» — он отвечает на вопрос «что именно мы прячем и как часто». Сами секреты в отчётах замаскированы, поэтому историю можно смотреть и спустя месяцы.

Срок хранения отчётов по умолчанию — 90 дней, после чего старые записи удаляются сами. Значение можно изменить в настройках. Если один и тот же запрос приходит повторно, второй раз он не отчитывается — в отчётах не будет искусственного «всплеска утечек».

## Тестер правила

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

## Где хранятся правила и соответствия

Правила живут в вашей базе, а вот **соответствия между секретами и обозначениями** — в отдельном хранилище внутри контейнера, в папке `PROXYAGENT_ANONYMIZER_DB`. По умолчанию это временная папка контейнера. Если не подключить к ней постоянный том, при пересоздании контейнера соответствия потеряются: старые обозначения перестанут возвращаться на место, а новые начнут нумероваться заново. Подключение тома описано в разделе [Размещение и данные](/agents/proxy/docs/hosting)
.

## Чего функция не делает

- **Не трогает чат с ИИ-агентом** — переписка в чате идёт мимо этого фильтра.
- **Не трогает трафик прокси-службы** — обычный, не связанный с ИИ трафик фильтруется отдельно, если вообще фильтруется.

Дальше: как пустить через тот же сервер обычный трафик — в разделе [Прокси для обычного трафика](/agents/proxy/docs/tunnel)
.

[← Оглавление документации](/agents/proxy/docs)
