Skip to content

管理网关密钥 ​

本页面向需要签发网关密钥的人:给自己签发的普通用户,以及替他人签发密钥、或为某位用户做清理的账号管理员。读完后你能签发密钥并填进客户端,也清楚密钥被吊销、或其用户的 OpenViking API 密钥变化后会发生什么。开始前至少需要一个上游和一份上下文配置。

什么是网关密钥 ​

在 Studio 中:OpenViking 网关 → 密钥。网关密钥(ovgw_…)是客户端用来代替服务商 API Key 的凭证。每把密钥绑定:

  • 一位 OpenViking 用户。 网关以这位用户的身份、用其本人的 OpenViking API 密钥召回和保存记忆,所以密钥的权限永远不会超出用户本人,见按用户隔离。
  • 一份上下文配置,决定用这把密钥的对话如何召回和保存记忆。
  • 一组上游,还可以进一步限定允许使用的模型。

密钥标签页列出你自己的密钥;账号管理员和 root 能看到本账号的全部密钥,并多出一列 OpenViking 用户。密钥列只显示每把密钥的开头几个字符。

签发密钥 ​

如果密钥标签页提示先添加上游或创建上下文配置,请先完成;自己没有权限时,联系部署网关的人。在全新的网关上,概览页快速模式卡片里的一键生成密钥可以一步完成这些准备并签发密钥,见快速开始清单和快速模式。

  1. 在密钥标签页点签发密钥,弹出签发网关密钥对话框。
  2. 填写名称,用来区分不同的密钥,写上使用者和客户端最清楚,例如“Alice · Claude Code”。
  3. 在给谁用里选择这把密钥读写谁的记忆,见密钥给谁用。
  4. 选择一份上下文配置,并至少勾选一个上游。密钥只能访问选中的上游;每个请求到达时,网关从中挑一个协议与客户端一致、并且提供所请求模型的上游(见路由)。
  5. 按需填写允许的模型,见限定密钥可用的模型。
  6. 点签发密钥。网关会先向 OpenViking 核实这位用户的 OpenViking API 密钥,成功后会弹出复制网关密钥对话框。如果看到的是无法签发密钥,见签发密钥失败。
  7. 点复制网关密钥,再复制 Claude Code、Codex CLI 或聊天客户端的配置,里面已经填好真实密钥和网关地址。某个客户端的配置页提示这把密钥没有已启用的对应协议上游时,该客户端用不了这把密钥。复制完点我已复制。

密钥签发后立即可用。复制网关密钥对话框是唯一一次能看到完整密钥的机会:网关只保存它的哈希和开头几个字符。密钥丢了就重新签发。其他客户端的接入方式见把客户端接入 OpenViking 网关。

密钥给谁用 ​

网关会以给谁用中所选用户的身份召回和保存记忆。能选哪些用户取决于你的身份:

你的身份能给谁签发
普通用户只能给自己。Studio 显示“以你的身份(<用户>)读写记忆。”,不需要粘贴任何密钥。
账号管理员本账号中的任意用户或管理员。
root先在侧边栏切换到目标账号,再选择该账号中的用户。root API 密钥不能绑定到网关密钥。
本地 dev 模式下的任何人密钥以 default 用户的身份读写记忆。

除 root 外,给自己签发时都不需要粘贴密钥。给别人签发时,网关要从 OpenViking 读取那位用户的 API 密钥。OpenViking 只保存密钥哈希时读不出来:这位用户旁会标注“服务端读不到这个用户的用户 API 密钥,请改为粘贴”,并出现粘贴 <用户> 的用户 API 密钥输入框,填入该用户当前的密钥即可。也可以点粘贴用户 API 密钥直接填写。用户列表加载失败时,Studio 改为要求填写 OpenViking API 密钥。

持有网关密钥就能使用对应用户的记忆,因此能替他人签发密钥,就等于能读取本账号所有用户的记忆,见访问控制。

限定密钥可用的模型 ​

允许的模型默认留空,表示允许这把密钥所绑上游提供的全部模型。要限制时,填入客户端发送的模型名称,包括别名。之后这把密钥的模型列表只显示这些名称,请求其他模型会在到达服务商之前被拒绝。设置了允许模型的密钥还要求每个请求都写明模型;具体报错见客户端收到网关返回的错误。

签发之后 ​

网关密钥一经签发就不能再改,但它发起的对话属于它的用户。

  • 密钥不能编辑。 要更换上下文配置、上游、允许的模型或用户,就签发新密钥,再吊销旧的。
  • 对话属于用户,不属于密钥。 客户端发送相同的会话 ID 时,同一用户的新密钥会接着原来的对话,换密钥不会打断对话。
  • 吊销(在密钥标签页点吊销,再点吊销密钥确认)后,这把密钥立即失效。用户的对话状态和日志保留,直到被显式删除或过期。尚未保存到 OpenViking 的内容(例如最新一条回复),只有在用新密钥继续这段对话时才会保存。

每人一把密钥 ​

记忆属于网关密钥背后的 OpenViking 用户,所以共用一把密钥的人也共用这位用户的记忆。请给每人签发一把密钥。想让不同客户端使用不同的上下文配置,或者想单独吊销某个客户端,再按客户端分开签发。

用户的 OpenViking API 密钥变了 ​

每把网关密钥都依赖其用户当前的 OpenViking API 密钥。这个密钥重新生成或用户被删除后,OpenViking 会拒绝网关保存的旧密钥。网关在随后的请求中发现这一点(最多延迟约 30 秒),删除绑定它的网关密钥,对话状态和日志保留。请用当前的 OpenViking API 密钥重新签发。

如果 OpenViking 只是暂时连不上或返回错误,网关不会删除密钥,请求照常发给模型,只是不带记忆。

删除用户的网关数据 ​

吊销密钥不会删除网关为用户保存的数据。要删除,账号管理员或 root 在密钥标签页打开该用户任意一把密钥的 … 菜单,选择删除该用户的网关数据…,再点删除网关数据确认。这一操作会:

  • 吊销该用户的全部网关密钥,其客户端立即失去访问权限;
  • 删除网关为该用户保存的对话状态,包括尚未保存到 OpenViking 的内容;
  • 删除该用户的请求日志。

已存入 OpenViking 的记忆不受影响。对应的 API、按账号整体删除以及适用场景,见删除数据。

下一步 ​

Open source under the AGPL-3.0 License. Font licenses