跳到主要内容

API 密钥

API 密钥用于在你的应用与 Hindsight API 之间进行认证。本页介绍如何通过 Hindsight Cloud 界面管理 API 密钥。

访问 API 密钥​

  1. 登录 Hindsight Cloud
  2. 在顶部导航栏中打开 Organization 菜单并选择 API Keys

查看 API 密钥​

API Keys 页面显示组织内的所有密钥:

列说明
Name你为密钥设置的描述性名称
Key Prefix用于识别的前几位字符
Created密钥创建时间
Last Used使用此密钥的最近一次 API 调用
Expires过期时间(若已设置)
StatusActive(活动)或 Revoked(已撤销)

筛选密钥​

使用 Active only 复选框:

  • 勾选 - 仅显示活动密钥(默认)
  • 取消勾选 - 显示包括已撤销在内的所有密钥

已撤销的密钥以灰色显示并带有 "Revoked" 标记。

创建 API 密钥​

所需权限

仅 Owner(所有者) 和 Admin(管理员) 可以创建 API 密钥。Member(成员)可查看密钥但不能创建或撤销。

  1. 点击 Create API Key
  2. 为密钥输入 Name(例如 "Production Server"、"CI/CD Pipeline")
  3. 选择 Expiration 期限:
选项说明
Never密钥永不过期
1 hour用于测试的短期密钥
1 day临时访问
7 days每周轮换
30 days每月轮换
90 days每季度轮换
1 year每年轮换
Custom输入具体天数
  1. 可选:将密钥限定为特定记忆库
  2. 点击 Create

创建之后​

请立即复制密钥

你的 API 密钥在创建后 仅显示一次。请立即复制并安全存储。

如果丢失,你需要创建一个新的。

对话框将显示:

  • 完整 API 密钥(点击复制)
  • 安全存储说明
  • Close 按钮

限定记忆库范围的密钥​

默认情况下,API 密钥可以访问你组织中的所有记忆库。你可以限制密钥仅访问特定记忆库,以缩小密钥泄露时的影响范围。

创建限定记忆库范围的密钥​

  1. 创建密钥时勾选 Restrict to specific banks
  2. 从列表中选择一个或多个记忆库
  3. 点击 Create

该密钥将仅能访问所选记忆库。访问其他任何记忆库的请求都将返回 403 Forbidden 错误。

查看记忆库范围​

每张密钥卡显示其记忆库范围:

  • All banks —— 不受限的访问
  • Bank: my-bank —— 限定单个记忆库
  • Banks: bank-1, bank-2, ... —— 限定多个记忆库

编辑记忆库限制​

要更改密钥可访问的记忆库:

  1. 在某个活动密钥卡上点击 Edit(铅笔图标)
  2. 勾选或取消勾选 Restrict to specific banks
  3. 更新记忆库选择
  4. 点击 Save
备注

已撤销、已过期或通过编程方式创建的密钥无法编辑记忆库限制。通过 编程 API 创建的密钥是不可变的——请撤销后重新创建。

使用场景​

场景推荐范围
使用单个记忆库的生产服务限定为该单个记忆库
针对特定环境的 CI/CD 管线限定为预发/测试记忆库
管理所有记忆库的管理工具不限制(所有记忆库)
每个代理一个 MCP 连接限定为该代理的记忆库

编程方式创建密钥​

具备 create_scoped_keys 能力的 API 密钥可以通过 API 编程方式创建、列出和撤销限定记忆库范围的子密钥。这对需要在无需管理员/UI 访问的情况下,为短期、最小权限场景配置密钥的集成和代理非常有用。

前置条件​

Owner 或 Admin 必须先创建一个启用了创建受限密钥能力的父级 API 密钥:

  1. 进入 API Keys 页面
  2. 点击 Create API Key
  3. 输入名称(例如 "Key Creator - CI/CD")
  4. 设置过期时间
  5. 可选 限定为特定记忆库
  6. 在 Capabilities 下勾选 Allow creating scoped child keys
  7. 点击 Create

具有此能力的密钥在 API Keys 列表中显示 Key Creator 徽章。编程方式创建的密钥显示 Created by <parent key name> 徽章。

创建限定范围的密钥​

使用 Authorization: Bearer <parent-key> 来创建子密钥:

curl -X POST https://api.hindsight.vectorize.io/v1/api-keys/scoped \
-H "Authorization: Bearer <parent-key>" \
-H "Content-Type: application/json" \
-d '{
"name": "Agent - Task 42",
"allowed_bank_ids": ["bank-a"],
"expires_in_days": 7,
"metadata": {"agent_id": "task-42"}
}'

约束:

  • allowed_bank_ids 是必填(至少一个记忆库),且必须是父密钥记忆库范围的子集
  • expires_in_days 是必填(最多 365 天),且不能超过父密钥的过期时间
  • 子密钥永远不会获得 create_scoped_keys 能力——只有管理员创建的密钥才能再创建其他密钥
  • 子密钥不可变——创建后无法编辑记忆库范围。请撤销后重新创建。

列出限定范围的密钥​

列出调用方密钥所创建的所有密钥:

curl https://api.hindsight.vectorize.io/v1/api-keys/scoped \
-H "Authorization: Bearer <parent-key>"

返回密钥元数据(id、name、prefix、记忆库范围、过期时间等),但绝不会返回原始密钥。

撤销限定范围的密钥​

按 ID 撤销子密钥:

curl -X DELETE https://api.hindsight.vectorize.io/v1/api-keys/scoped/<key-id> \
-H "Authorization: Bearer <parent-key>"

你只能撤销由你父密钥所创建的密钥。

使用场景​

场景方法
为 CI/CD 每个任务配置密钥父密钥为每个任务创建短期子密钥
多代理系统中的代理隔离父密钥创建限定到代理记忆库的子密钥
面向客户的集成令牌父密钥创建客户专属子密钥
临时调试访问父密钥为特定记忆库创建 1 小时子密钥

撤销 API 密钥​

在以下情况撤销密钥:

  • 不再需要
  • 可能已被泄露
  • 你正在轮换凭证

撤销密钥:

  1. 在列表中找到该密钥
  2. 点击 Delete(垃圾桶图标)
  3. 确认撤销
撤销不可逆

已撤销的密钥无法恢复或重新激活。任何使用该密钥的应用将立即失去访问权限。

级联撤销: 撤销父密钥(具有 Key Creator 能力的密钥)会自动撤销其所有子密钥。

最佳实践​

命名约定​

使用能识别以下信息的描述性名称:

  • 使用该密钥的应用或服务
  • 环境(production、staging、development)
  • 用途或所属团队

示例:

  • Production API Server
  • CI/CD Pipeline - GitHub Actions
  • Development - Local Testing
  • Mobile App - iOS

密钥轮换​

定期轮换 API 密钥可提升安全性:

  1. 在旧密钥过期前创建新密钥
  2. 更新你的应用以使用新密钥
  3. 验证新密钥工作正常
  4. 撤销旧密钥

过期策略​

根据安全需求选择过期时间:

使用场景推荐过期时间
生产服务90 天或 1 年
CI/CD 管线30-90 天
开发/测试7-30 天
快速调试1 小时或 1 天

安全建议​

  • 绝不将密钥提交到版本控制 - 使用环境变量或密钥管理器
  • 将密钥限定到特定记忆库 - 使用 限定记忆库范围的密钥 仅限每个服务所需的记忆库
  • 限制密钥范围 - 为不同服务创建不同密钥
  • 监控使用 - 检查 "Last Used" 以发现未授权访问
  • 撤销未使用的密钥 - 移除不再需要的密钥
  • 尽可能使用短期密钥 - 减少泄露时的风险