Question
Closed · Answered

同一个 Skill 在不同空间要用不同密钥,Vault 值怎么覆盖?

Wenke Li

一个 Skill 会在多个 Space 运行,但每个空间要接不同的外部账号。密钥应该放在用户默认值、Space 覆盖值,还是 API Key 覆盖值?如果三层都有同名项,运行时实际取的是哪一个?

Report
Paylm Feng
Team

如果同一个 Skill 在不同 Space 要连接不同的外部账号,建议保持相同的密钥名称,把各空间对应的密钥配置在 Space 覆盖值里,不需要为每个空间复制一份 Skill。

三层都有同名项时,运行时的优先级是:API Key 覆盖值 > Space 覆盖值 > 用户默认值。没有配置更高层的同名项时,才使用下一层的值。

  • 用户默认值:适合多个空间共用的默认账号。
  • Space 覆盖值:适合每个空间使用不同账号的情况。
  • API Key 覆盖值:适合同一个空间内,不同调用凭证还需要使用不同外部账号的情况。

比如用户默认值中配置了 SERVICE_API_KEY=A,Space 中配置了同名项 B,当前调用使用的 Busabase API Key 又配置了同名项 C,最终会使用 C;如果没有 API Key 覆盖,就使用 B。

所以你这个场景可以优先使用 Space 覆盖值,同时确认调用时选中了正确的 Space,并检查当前 API Key 是否设置了同名覆盖项。相关 Vault 项也需要允许运行时使用。这里的覆盖规则适用于从 Busabase Vault 获取的运行时值;如果 Skill 自己另外读取本地 .env 或写死密钥,还需要检查它自身的配置读取逻辑。

Report

Your reply

Sign in to join the discussion. Reading is always open; you only need an account to post.

Sign in