ProfileClaw

Agent 鉴权

让凭证停留在 runtime,而不是进入 prompt 循环

agent 的鉴权应该显式、scope-aware,而且尽量无聊。runtime 注入 key,模型只调用工具,失败由确定性的分支处理。

Format: AI-first docs
Source: DocsAgentsAuthPage
注意

模型不应该拥有 secret 管理权。

key 应该属于 runtime 控制的存储和传输层,而不是进入用户可见 prompt 或由模型编写的工具参数。

鉴权职责分层

把职责拆清楚,生产环境里的鉴权才会稳定。

Runtime

负责 key、scope 分配、轮换和传输注入。

  • 在模型看到请求前附加 `Authorization` 或 `X-API-Key`。
  • 轮换凭证时不需要重写 prompt。
  • 保持 staging 和 production 隔离。

Model

负责选择工具,不负责管理 secret。

  • 模型应请求能力,而不是请求原始凭证。
  • forbidden 不应触发模型猜测式重试。
  • 工具输出只暴露安全的失败分类。

Operators

需要足够元信息来排查鉴权问题,但不需要看到 secrets。

  • 记录 request id 和 key 身份标签。
  • 跟踪每个环境 key 拥有哪些 scopes。
  • 把接入失败和产品逻辑失败分开。

在 runtime 边界注入凭证

最干净的模式很简单:模型调用工具,工具适配层附加凭证,API 不依赖任何 prompt 可见 secret。

  • 默认优先使用 Bearer auth。
  • 新 key 先用 Context API 验证,再构建更深工作流。
  • 每个环境边界维护自己的 secret store。

用 scope 表达能力边界

ProfileClaw 的接口是 scope-aware 的,所以 key 也应该和 runtime 被允许执行的工作精确对齐。

  • 只读型助手应停留在窄 scope 上。
  • prediction、reasoning 和写操作只在必要时提升能力。
  • scope 失败应分流到配置修复,而不是交给模型 improvisation。

责任划分

好的鉴权行为来自于堆栈里清晰的所有权。

负责不该负责
Runtime adaptersecrets、header 注入、轮换和可重试传输。对话文案或猜测式推理。
Model工具选择和工作流意图。原始 key、token refresh 或 scope 修复。
Operations环境隔离、审计链路和故障恢复。prompt 层凭证处理。

决策矩阵

当出现鉴权相关问题时,可以按下面的方式分支。

情况

请求返回 unauthorized

动作

把它视为 runtime 里的凭证缺失、失效或过期。

原因

模型无法修复 secret 边界问题。

情况

请求返回 forbidden

动作

检查 scopes 和 runtime 能力配置。

原因

key 存在,但当前工作流没有该操作权限。

情况

正在接入一个新集成

动作

先用 Context API 验证 key,再扩展到更深调用。

原因

它能用最小可行请求确认鉴权路径已经通。

请求头示例

优先使用 runtime 持有的 Bearer 流,`X-API-Key` 作为备用。

Bearer 请求头
1curl "https://api.profileclaw.com/api/v1/context" -H "Authorization: Bearer $PROFILECLAW_API_KEY"
备用请求头
1curl "https://api.profileclaw.com/api/v1/context" -H "X-API-Key: $PROFILECLAW_API_KEY"

下一步

鉴权稳定后,再去优化请求大小和恢复姿态。