API key 不要住在 prompt 裡

發布: 約 2 分鐘

BYOK(自己帶金鑰)很迷人:不開帳號後端、使用者愛用哪家模型用哪家。山姆鍋也走這條。唯一想碎念的是:

明文 key 不要住進 prompt、不要躺在 agent 前端的 localStorage 當「設定檔」。

目錄

展開目錄

為什麼這件事老是復發

因為最短路徑就是:設定頁一個輸入框 → 存進某個 JSON → 組進 system prompt 或直接 fetch 時字串拼接。Demo 下午就好。然後對話匯出、畫面分享、log 蒐集——key 跟著旅行。

比較穩的形狀通常是:

  1. 密鑰由宿主保管(可鎖定;刷新即鎖之類)。
  2. Agent 只記得「用哪個名字的密鑰」、endpoint、model。
  3. 真正需要時再取出使用;HOST/工具列名可以,讀值給模型聊天則不行。

細節各家不同,原則是:模型的工作記憶不是鑰匙圈。

案例:遊樂場 SecretStore

遊樂場把密鑰放在 SecretStore:OPFS 裡是密文,unlock 後才有短暫可用的金鑰材料;每個 secret 對應獨立 binding。總管設定選得到名字,新增/輪替才走遊樂場介面 dialog。.sam 匯出永不夾帶這些東西。

這不是要你照抄 WebCrypto 細節,而是證明:即便只是部落格上的本機場地,也可以把「key 不住進畫布」當硬約束。

結語

你若正在寫自己的 coding agent,山姆鍋建議把「key 出現在哪幾種字串裡」列成檢查表,比再加一個模型選項優先。有更乾淨的作法,下面留言區歡迎分享——別貼真的 key。

Sampot (山姆鍋)

獨立軟體開發者,專長分散式系統、Web 應用與雲端服務架構。目前一人開發NT² Vault:結構化數位資產保管箱。工作之餘關注開源軟體的發展與應用,偶爾在這裡碎念與分享。