博客

在聊天中不粘贴密钥,也能管理机密和环境变量

大多数真实的应用至少需要一个机密:支付服务商的密钥、邮件服务的密钥,或者 AI API 的密钥。在 Mythex 中,你不需要把这些密钥粘贴到提示词里。当智能体需要某个密钥时,聊天中会出现一张机密请求卡片,你把值输入到卡片里,它会被保存为项目机密,供你的应用读取,而密钥本身不会出现在对话内容中。

它的作用

每个 Mythex 项目都可以保存环境变量:有名称的值,例如 STRIPE_SECRET_KEY,你的应用在运行时读取它们,而不是把它们直接写进代码。机密就是那些必须保持私密的环境变量。

同样的值可以在两个地方使用:

  • 沙盒:智能体在你工作时构建和运行应用的地方。
  • 已发布的部署:访客使用应用的地方。

添加它们的方式有三种:

  1. 机密请求卡片:智能体在聊天中显示的卡片,在它需要某个密钥才能完成任务时出现。
  2. 项目设置 → Secrets:随时添加或编辑值。
  3. 聊天中的 /secrets:按需添加或更新机密。

为什么这样更好

给 AI 智能体一个密钥,最直接的做法是把它粘贴到消息里。这样做确实能用,但密钥会变成聊天记录的一部分,以明文形式和你说过的其他内容躺在一起。

机密卡片会让这个值不进入对话记录。你在卡片的输入框中填写,而不是在消息框里,它会被保存为项目机密。智能体在沙盒中就能使用这个密钥,然后继续工作。

把密钥保存在项目设置中,而不是放在代码里,还有其他好处:

  • 密钥不会进入源代码管理。 你的代码只通过名称引用密钥,值保存在项目设置中。
  • 智能体和正在运行的应用看到的是同一份配置。 不会出现过期的副本。
  • 轮换密钥无需改代码。 在设置中修改值即可,代码仍然按名称读取。

如果你对环境变量还不熟悉,我们的指南 什么是环境变量和机密 会从头解释这个概念。

如何使用机密卡片

  1. 提出需求,例如「用户注册时发送欢迎邮件」。
  2. 当智能体需要密钥时,聊天中会出现一张机密请求卡片,列出它需要的值。
  3. 在卡片的输入框中填写值,而不是在消息框里。
  4. 确认。 该值会被保存为项目机密。
  5. 智能体继续工作,密钥已在沙盒中可用。

如何自己添加机密

  1. 打开项目设置,然后进入 Secrets。
  2. 添加密钥,例如 STRIPE_SECRET_KEY、OPENAI_API_KEY,或你自己服务的凭据。
  3. 让智能体按你所用框架的标准方式读取它们,例如在 Node 应用中从 process.env 读取。
  4. 如果已发布的应用需要新值,重新发布。

你也可以在聊天中输入 /secrets 来添加或更新它们。

更改已发布应用的机密

已发布的应用会在发布时读取机密。添加或更改机密后,请再次发布,让线上部署获得新值。在此之前,访客仍在使用旧配置的应用。

安全建议

  • 绝不要把机密提交到代码仓库。 把它们保存在项目设置中。
  • 特权操作优先使用仅服务端的密钥。 能够扣款或发送邮件的密钥,应该只存在于服务器端运行的代码中,而不应出现在访客浏览器下载的任何内容里。
  • 如果密钥曾出现在聊天记录中,请轮换它。 在服务商处创建新密钥,撤销旧密钥,然后在项目设置中更新该值。凡是粘贴进聊天的密钥,都应视为已经泄露。

限制

  • 只有使用卡片,它才有作用。 如果你仍然把密钥粘贴到消息框里,它就会留在聊天记录中。请在服务商处轮换它,并更新保存的值。
  • 已发布的应用需要重新发布,才能获取新增或更改的机密。
  • 安全地存储密钥,并不代表每一种用法都是安全的。 密钥在哪里被使用仍然很重要,请把特权密钥保留在应用的服务端。

如需在分享应用之前进一步保证安全,请参阅我们的 AI 构建应用安全检查清单。

详细内容请见文档:环境变量和机密 以及 聊天中的机密。

Mythex · Pricing · 用 AI 构建任何东西 · 网站和应用模板 · Mythex 对比 · AI 应用构建术语表 · 免费的 AI 应用构建工具 · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 繁體中文(香港) 繁體中文(台灣)