Marvis 凭据管理器
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_b22a52ba/marvis-credential-manager。
技能介绍
要解决的问题
Agent 无法在不同对话之间记住 API 密钥、邮箱授权码这类敏感凭据。重复粘贴既不安全,也容易踩到过期坑:OpenAI 密钥可能 90 天后失效,QQ 邮箱授权码过期后发信直接报错,而错误往往到调用那一刻才暴露。另一个现实约束是脱敏——技能需要读取密钥来构造请求,但回复里绝不能展示完整密钥。
工作原理
凭据全部保存在本地 %USERPROFILE%\.marvis\credentials.json,核心逻辑落在 %USERPROFILE%\.marvis\credman.ps1 脚本上。
工作流程分几步:
- 每次对话开始时检查凭据:读取 JSON 数组,逐条调用
credman.ps1 verify验证。needCheck=true触发验证,expiryWarning非空会在回复中提醒,status=expired则明确告知凭据已过期。若存储文件不存在或 check 报错,跳过后续步骤。 - 按需恢复 SkillHub 登录:需要执行
skillhub命令但skillhub auth whoami失败时,自动走一遍登录恢复流程。 - 按需读取密钥值:调用 OpenAI、混元等 API 时,直接用 Python 读取 JSON 对应字段,不走
credman命令——list会脱敏,拿不到可用值。 - 用户指令映射:说“存密钥”执行
credman.ps1 store,“列出凭据”走list,“检查凭据”走verify,“删除凭据”走delete。
存储命令带分类和验证方式,例如 store model openai sk-xxx +90 openai_list_models 表示一个 90 天过期、用 OpenAI 的 list models 接口验证的密钥;store email qq xxx permanent smtp_check 则是用 SMTP 探测验证邮箱授权码。
适用边界与注意点
- 凭据文件仅本地存储,不同步云端,换机器需重新存储,也意味着它不适合团队共享凭据的场景。
- 脚本依赖 PowerShell 执行策略,调用时要带
-ExecutionPolicy Bypass。 - 覆盖已有凭据前必须向用户确认,这是防止误覆盖的硬规则。
- 技能只负责存储和验证,不生成也不轮换密钥,过期后仍需用户提供新值。
使用场景
- 在新对话里调用 OpenAI 时,凭据管理器自动从本地 JSON 读取 API Key,无需重新粘贴密钥。
- 对话开始时自动检查凭据,发现 QQ 邮箱授权码已过期,及时提醒用户换新码再发信。
- 让 Agent 保存一个 90 天过期的 OpenAI 密钥,技能自动记录过期时间并指定验证方式。
- 在新机器上使用 Agent,凭据不同步云端,需重新用存密钥指令录入 OpenAI 或混元密钥。
适合人员
- 需要让 Agent 长期调用 OpenAI、混元等付费 API 的开发者,诉求是换对话后不再手动粘贴密钥。
- 要用 Agent 自动发邮件、管理 QQ 邮箱授权码的自动化人员,诉求是凭据过期时提前被提醒。
- 关注密钥安全、禁止 Agent 回复中暴露完整密钥的工程师,诉求是凭据脱敏且覆盖前需确认。
- 在多台机器上使用 Agent 的独立开发者,诉求是了解凭据只存本地、不同步云端的限制。