聊天中不必貼上金鑰的機密與環境變數
大多數真實的應用程式至少需要一個機密:付款服務商的金鑰、電郵服務的金鑰,或 AI API 的金鑰。在 Mythex 中,你不必把這些金鑰貼進提示詞。當代理需要其中一個時,它會在聊天中顯示一張機密請求卡片,你把值輸入卡片內,它就會被儲存為專案機密,讓你的應用程式讀取——金鑰不會出現在對話中。
功能說明
每個 Mythex 專案都可以儲存環境變數:一些有名稱的值,例如 STRIPE_SECRET_KEY,應用程式運行時讀取它們,而不是把它們寫進程式碼。機密就是那些必須保持私密的環境變數。
同樣的值會在兩個地方可用:
- 沙盒:你工作時,代理在這裡建構和運行你的應用程式。
- 已發佈的部署:訪客使用的版本。
新增它們有三種方法:
- 機密請求卡片:代理需要金鑰才能完成某項工作時,會在聊天中顯示這張卡片。
- 專案設定 → 機密:隨時新增或編輯值。
- 聊天中的
/secrets:按要求新增或更新機密。
為什麼有幫助
要把金鑰交給 AI 代理,最直接的方法是把它貼進你的訊息。這樣做可行,但金鑰隨即成為聊天記錄的一部分,以純文字形式留在你說過的所有內容旁邊。
機密卡片可以讓金鑰不進入對話紀錄。你在卡片的欄位中輸入,而不是在訊息框中,它會被儲存為專案機密。代理可以在沙盒中使用該金鑰,繼續工作。
把金鑰放在專案設定中,而不是程式碼裡,還有其他好處:
- 金鑰不會進入原始碼管理。 你的程式碼只以名稱引用金鑰,值則存放在專案設定中。
- 代理與正在運行的應用程式看到的是同一份設定。 不會出現過時的副本。
- 無需改寫程式碼即可更換金鑰。 在設定中更改值,程式碼仍會按名稱讀取它。
如果你對環境變數還不熟悉,我們的指南 什麼是環境變數與機密 會從零開始解釋這個概念。
如何使用機密卡片
- 提出功能需求,例如「用戶註冊時發送歡迎電郵」。
- 代理需要金鑰時,聊天中會出現機密請求卡片,列出它所需的值。
- 在卡片的欄位中輸入值,不要在訊息框中輸入。
- 確認。 該值會被儲存為專案機密。
- 代理繼續工作,金鑰可在沙盒中使用。
如何自行新增機密
- 開啟專案設定,然後點選機密。
- 新增例如
STRIPE_SECRET_KEY、OPENAI_API_KEY,或你自己服務的憑證。 - 要求代理按你所用框架的標準方式讀取它們,例如在 Node 應用程式中從
process.env讀取。 - 如果已發佈的應用程式需要新的值,重新發佈。
你也可以在聊天中輸入 /secrets 來新增或更新它們。
更改已發佈應用程式的機密
已發佈的應用程式會在發佈時載入機密。新增或更改機密後,請再次發佈,讓線上部署取得新值。在此之前,訪客仍在使用舊設定的應用程式。
安全提示
- 切勿把機密提交到程式庫。 請保存在專案設定中。
- 特權操作優先使用僅限伺服器的金鑰。 能夠扣款或發送電郵的金鑰,應放在伺服器端運行的程式碼中,而不是訪客瀏覽器會下載的任何內容中。
- 如果金鑰曾出現在聊天記錄中,請更換它。 在服務商處建立新金鑰、撤銷舊金鑰,然後在專案設定中更新值。任何曾被貼進聊天的金鑰,都應視為已外洩。
限制
- 這張卡片只有在你使用時才有幫助。 如果你仍然把金鑰貼進訊息框,它就會留在紀錄中。請在服務商處更換金鑰,並更新已儲存的值。
- 已發佈的應用程式需要重新發佈,才能取得新增或更改的機密。
- 安全地儲存金鑰,並不代表使用它就一定安全。 金鑰在哪裡使用仍然重要——請把特權金鑰保留在應用程式的伺服器端。
如需進一步了解發佈前如何保障應用程式安全,請參閱我們的 AI 建構應用程式安全檢查清單。