Тајни и променливи на околината без лепење клучеви во разговорот
Повеќето вистински апликации имаат барем една тајна: клуч на давател на плаќања, клуч за сервис за е-пошта, клуч за AI API. Во Mythex не ги лепите во prompt. Кога агентот ќе му треба таков клуч, во разговорот ви прикажува картичка secrets request, вие ја внесувате вредноста во картичката, а таа се зачувува како тајна на проектот што вашата апликација може да ја чита — без клучот да заврши во разговорот.
Што прави
Секој проект на Mythex може да складира променливи на околината: именувани вредности, како STRIPE_SECRET_KEY, што вашата апликација ги чита при извршување, наместо да бидат запишани во кодот. Тајните се променливи на околината чии вредности мора да останат приватни.
Истите вредности се достапни на две места:
- Sandbox-от, каде агентот ја гради и ја пушта вашата апликација додека работите.
- Вашите објавени деплојменти, каде ја користат посетителите.
Постојат три начини да се додадат:
- Картичката за барање тајна, што агентот ја прикажува во разговорот кога му треба клуч за да заврши нешто.
- Project settings → Secrets, каде можете да додавате или уредувате вредности во секое време.
/secretsво разговорот, за додавање или ажурирање тајни на барање.
Зошто помага
Очигледниот начин агентот да добие клуч е да го залепите во пораката. Тоа функционира, но клучот тогаш станува дел од историјата на разговорот, во чист текст, покрај сè што сте кажале.
Картичката со тајни го држи клучот надвор од транскриптот. Ја внесувате вредноста во полињата на картичката, а не во полето за порака, и се зачувува како тајна на проектот. Агентот продолжува со клучот достапен во sandbox-от.
Чувањето клучеви во поставките на проектот, а не во кодот, има и други предности:
- Клучевите остануваат надвор од контрола на верзии. Кодот се повикува на клуч по име; вредноста живее во поставките на проектот.
- Агентот и вашата работечка апликација ја гледаат истата конфигурација. Нема копија што застарува.
- Клучот можете да го ротирате без препишување на кодот. Менувате вредност во поставките; кодот и понатаму ја чита по име.
Ако променливите на околината ви се нови, нашиот водич за што се променливите на околината и тајните ја објаснува идејата од почеток.
Како да ја користите картичката за тајни
- Побарајте ја функцијата — на пример, „испрати добредојде-порака по е-пошта кога некој ќе се регистрира“.
- Кога агентот ќе му треба клуч, во разговорот се појавува картичка за барање тајна со вредноста што ја бара.
- Внесете ја вредноста во полињата на картичката, а не во полето за порака.
- Потврдете. Вредноста се зачувува како тајна на проектот.
- Агентот продолжува, со клучот достапен во sandbox-от.
Како сами да додавате тајни
- Отворете project settings, па Secrets.
- Додајте клучеви како
STRIPE_SECRET_KEY,OPENAI_API_KEYили акредитиви на ваш сопствен сервис. - Замолете го агентот да ги чита на стандарден начин за вашата рамка — на пример од
process.envво Node апликација. - Објавете повторно ако објавената апликација ги бара новите вредности.
Можете и да напишете /secrets во разговорот за да ги додадете или ажурирате таму.
Менување тајна на објавена апликација
Објавената апликација ги зема тајните при објавувањето. Откако ќе додадете или промените една, објавете повторно за живиот деплојмент да ја добие новата вредност. Дотогаш, посетителите сè уште ја користат апликацијата со стариот конфиг.
Безбедносни совети
- Никогаш не комитирајте тајни во репозиториумот. Чувајте ги во поставките на проектот.
- За привилегирани операции користете клучеви само на серверот. Клуч што може да наплатува картички или да праќа е-пошта припаѓа на код што се извршува на серверот, а не на нешто што прелистувачот на посетителот може да го преземе.
- Ако клуч некогаш се појави во историјата на разговорот, ротирајте го. Создајте нов клуч кај давателот, поништете го стариот и ажурирајте ја вредноста во поставките на проектот. Сметајте секој клуч залепен во разговор за изложен.
Ограничувања
- Картичката помага само ако ја користите. Ако сепак залепите клуч во полето за порака, тој е во транскриптот. Ротирајте го кај давателот и ажурирајте ја зачуваната вредност.
- Објавените апликации бараат повторно објавување за да ги земат новите или променетите тајни.
- Безбедното чување на клучот не значи дека секоја употреба е безбедна. Важно е и каде се користи клучот — привилегираните клучеви чувајте ги на серверската страна на апликацијата.
За повеќе за тоа како да ја направите апликацијата безбедна пред да ја споделите, видете ја нашата листа за безбедност за апликации направени со AI.
Деталите се во документацијата: Environment variables and secrets и Secrets in chat.