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

如果同一个 Skill 在不同 Space 要连接不同的外部账号,建议保持相同的密钥名称,把各空间对应的密钥配置在 Space 覆盖值里,不需要为每个空间复制一份 Skill。
三层都有同名项时,运行时的优先级是:API Key 覆盖值 > Space 覆盖值 > 用户默认值。没有配置更高层的同名项时,才使用下一层的值。
比如用户默认值中配置了 SERVICE_API_KEY=A,Space 中配置了同名项 B,当前调用使用的 Busabase API Key 又配置了同名项 C,最终会使用 C;如果没有 API Key 覆盖,就使用 B。
所以你这个场景可以优先使用 Space 覆盖值,同时确认调用时选中了正确的 Space,并检查当前 API Key 是否设置了同名覆盖项。相关 Vault 项也需要允许运行时使用。这里的覆盖规则适用于从 Busabase Vault 获取的运行时值;如果 Skill 自己另外读取本地 .env 或写死密钥,还需要检查它自身的配置读取逻辑。
登录后参与讨论。阅读始终开放,只有发帖和回复需要账号。
登录