Секреты и переменные окружения без вставки ключей в чат
Большинству реальных приложений нужен хотя бы один секрет: ключ платёжного провайдера, ключ сервиса рассылки писем, ключ для AI API. В Mythex такие ключи не нужно вставлять в запрос. Когда агенту нужен ключ, он показывает в чате карточку запроса секрета, вы вводите значение прямо в карточку, и оно сохраняется как секрет проекта, который может читать ваше приложение. Сам ключ при этом не попадает в переписку.
Что это такое
Каждый проект Mythex может хранить переменные окружения: именованные значения, например STRIPE_SECRET_KEY, которые приложение читает во время работы, вместо того чтобы записывать их прямо в код. Секреты — это переменные окружения, значения которых должны оставаться приватными.
Эти значения доступны в двух местах:
- В песочнице, где агент собирает и запускает ваше приложение, пока вы работаете.
- В опубликованных развёртываниях, которыми пользуются посетители.
Добавить значения можно тремя способами:
- Карточка запроса секрета, которую агент показывает в чате, когда ключ нужен, чтобы что-то завершить.
- Настройки проекта → Secrets, где можно добавлять и менять значения в любой момент.
/secretsв чате, чтобы добавить или обновить секреты по запросу.
Зачем это нужно
Очевидный способ передать агенту ключ — вставить его в сообщение. Это работает, но тогда ключ становится частью истории чата и лежит открытым текстом рядом со всем остальным, что вы написали.
Карточка секрета не даёт значению попасть в переписку. Вы вводите его в поля карточки, а не в поле сообщения, и значение сохраняется как секрет проекта. Агент продолжает работу, и ключ доступен в песочнице.
Хранение ключей в настройках проекта, а не в коде, даёт и другие преимущества:
- Ключи не попадают в систему контроля версий. Код ссылается на ключ по имени, а значение лежит в настройках проекта.
- Агент и запущенное приложение видят одну и ту же конфигурацию. Нет копии, которая устаревает.
- Ключ можно сменить без переписывания кода. Вы меняете значение в настройках, а код читает его по тому же имени.
Если переменные окружения для вас в новинку, наше руководство что такое переменные окружения и секреты объясняет эту идею с нуля.
Как пользоваться карточкой секрета
- Попросите функцию — например, «отправь приветственное письмо, когда кто-то регистрируется».
- Когда агенту нужен ключ, в чате появляется карточка запроса секрета с перечнем нужных значений.
- Введите значение в поля карточки, а не в поле сообщения.
- Подтвердите. Значение сохраняется как секрет проекта.
- Агент продолжает работу, а ключ доступен в песочнице.
Как добавить секреты самостоятельно
- Откройте настройки проекта, затем Secrets.
- Добавьте ключи, например
STRIPE_SECRET_KEY,OPENAI_API_KEYили учётные данные вашего сервиса. - Попросите агента читать их стандартным для вашего фреймворка способом — например, из
process.envв приложении на Node. - Опубликуйте проект заново, если опубликованному приложению нужны новые значения.
Чтобы добавить или изменить секреты прямо в чате, можно также ввести /secrets.
Смена секрета в опубликованном приложении
Опубликованное приложение получает секреты в момент публикации. После добавления или изменения секрета опубликуйте проект снова, чтобы работающее развёртывание получило новое значение. До этого посетители продолжают пользоваться приложением со старой конфигурацией.
Советы по безопасности
- Никогда не коммитьте секреты в репозиторий. Храните их в настройках проекта.
- Для привилегированных операций используйте ключи, доступные только на сервере. Ключ, который может списывать деньги с карт или отправлять письма, должен работать в коде на сервере, а не в том, что скачивает браузер посетителя.
- Если ключ когда-либо попал в историю чата, перевыпустите его. Создайте новый ключ у провайдера, отзовите старый и обновите значение в настройках проекта. Считайте любой ключ, вставленный в чат, скомпрометированным.
Ограничения
- Карточка помогает, только если вы ею пользуетесь. Если вы всё равно вставите ключ в поле сообщения, он останется в истории. Перевыпустите его у провайдера и обновите сохранённое значение.
- Опубликованным приложениям нужна повторная публикация, чтобы получить новые или изменённые секреты.
- Безопасное хранение ключа не делает безопасным любое его использование. Важно, где ключ применяется: привилегированные ключи держите на серверной стороне приложения.
Больше о том, как защитить приложение перед тем, как им делиться, читайте в нашем чек-листе безопасности для приложений, созданных с помощью AI.
Подробности есть в документации: Переменные окружения и секреты и Секреты в чате.