BYOK(自己帶金鑰)很迷人:不開帳號後端、使用者愛用哪家模型用哪家。山姆鍋也走這條。唯一想碎念的是:
明文 key 不要住進 prompt、不要躺在 agent 前端的 localStorage 當「設定檔」。
目錄
為什麼這件事老是復發
因為最短路徑就是:設定頁一個輸入框 → 存進某個 JSON → 組進 system prompt 或直接 fetch 時字串拼接。Demo 下午就好。然後對話匯出、畫面分享、log 蒐集——key 跟著旅行。
比較穩的形狀通常是:
- 密鑰由宿主保管(可鎖定;刷新即鎖之類)。
- Agent 只記得「用哪個名字的密鑰」、endpoint、model。
- 真正需要時再取出使用;HOST/工具列名可以,讀值給模型聊天則不行。
細節各家不同,原則是:模型的工作記憶不是鑰匙圈。
案例:遊樂場 SecretStore
遊樂場把密鑰放在 SecretStore:OPFS 裡是密文,unlock 後才有短暫可用的金鑰材料;每個 secret 對應獨立 binding。總管設定選得到名字,新增/輪替才走遊樂場介面 dialog。.sam 匯出永不夾帶這些東西。
這不是要你照抄 WebCrypto 細節,而是證明:即便只是部落格上的本機場地,也可以把「key 不住進畫布」當硬約束。
結語
你若正在寫自己的 coding agent,山姆鍋建議把「key 出現在哪幾種字串裡」列成檢查表,比再加一個模型選項優先。有更乾淨的作法,下面留言區歡迎分享——別貼真的 key。