功能描述
希望 AstrBot 支持使用 SuperGrok 或符合资格的 X Premium 订阅,通过 xAI OAuth 登录并调用 Grok 模型,无需配置 XAI_API_KEY。
当前 AstrBot v4.27.4 已经为 xAI 提供 openai_responses Provider,并通过 Responses API 调用 Grok,但认证方式仍为 API Key。xAI 已经分别发布 OpenClaw、Hermes Agent 和 OpenCode 的官方接入公告,这些项目可以通过浏览器登录或 OAuth 2.0 Device Authorization Grant 使用 Grok 订阅:
其中设备码方式适用于 SSH、Docker、NAS 和 VPS,无需 localhost 回调。OpenClaw 与 Hermes 的公开实现还包含 access token 自动刷新、refresh token 轮换和 Responses API 调用。
建议在 AstrBot 中增加独立的 xAI OAuth Provider Source,与现有 xAI API Key Provider 明确分开。初步实现范围可以包括:
- 通过 xAI OIDC discovery 获取设备授权端点和 token 端点。
- 在 Dashboard 中发起设备码登录,展示验证地址和一次性代码,并轮询授权结果。
- 在 Provider Source 中统一保存 access token、refresh token 和过期时间,由引用该 Source 的模型实例共享凭据状态。
- 在 access token 到期前执行单次刷新,并正确处理 refresh token 轮换和并发请求。
- 复用现有
openai_responses Provider 的消息转换、流式输出、工具调用和 token 用量统计能力。
- OAuth 认证失败时返回明确错误,避免静默切换到 API Key Provider,从而意外进入按量计费方式。
- 对登录成功但推理返回 HTTP 403 的情况,区分订阅 entitlement、额度不足和令牌失效,并给出重新登录或改用 API Key 的提示。
相关 AstrBot 工作:
目前还有一个需要维护者确认的问题:xAI 的官方公告明确列出了 OpenClaw、Hermes Agent 和 OpenCode,但 xAI 公开文档尚未提供通用的第三方 OAuth 客户端注册方法。上述项目使用的 OAuth client metadata 可以从公开源码中看到,但尚不清楚 AstrBot 是否可以使用同一客户端,还是需要向 xAI 申请独立客户端或获得正式授权。
在客户端身份和授权方式得到确认后,愿意提交 PR 实现该功能。公开 PR 将采用独立的 xAI OAuth 实现,不依赖其他私有 Provider 代码。
使用场景
- AstrBot 部署在 Docker、NAS、VPS 或远程 Linux 主机上时,可以在任意浏览器中输入设备码完成登录,无需配置回调端口或 SSH 端口转发。
- 已经订阅 SuperGrok 或符合资格的 X Premium 服务时,可以使用订阅身份调用 Grok,而无需另行购买并管理 xAI API Key。
- 多个 Grok 模型引用同一个 xAI OAuth Source 时,可以共享最新凭据,避免多个 Provider 实例分别刷新同一个 refresh token。
- OAuth 权限、订阅额度或刷新令牌失效时,Dashboard 和运行日志可以显示明确原因,并保持 API Key 与订阅 OAuth 的计费方式相互独立。
检查清单
功能描述
希望 AstrBot 支持使用 SuperGrok 或符合资格的 X Premium 订阅,通过 xAI OAuth 登录并调用 Grok 模型,无需配置
XAI_API_KEY。当前 AstrBot v4.27.4 已经为 xAI 提供
openai_responsesProvider,并通过 Responses API 调用 Grok,但认证方式仍为 API Key。xAI 已经分别发布 OpenClaw、Hermes Agent 和 OpenCode 的官方接入公告,这些项目可以通过浏览器登录或 OAuth 2.0 Device Authorization Grant 使用 Grok 订阅:其中设备码方式适用于 SSH、Docker、NAS 和 VPS,无需 localhost 回调。OpenClaw 与 Hermes 的公开实现还包含 access token 自动刷新、refresh token 轮换和 Responses API 调用。
建议在 AstrBot 中增加独立的 xAI OAuth Provider Source,与现有 xAI API Key Provider 明确分开。初步实现范围可以包括:
openai_responsesProvider 的消息转换、流式输出、工具调用和 token 用量统计能力。相关 AstrBot 工作:
目前还有一个需要维护者确认的问题:xAI 的官方公告明确列出了 OpenClaw、Hermes Agent 和 OpenCode,但 xAI 公开文档尚未提供通用的第三方 OAuth 客户端注册方法。上述项目使用的 OAuth client metadata 可以从公开源码中看到,但尚不清楚 AstrBot 是否可以使用同一客户端,还是需要向 xAI 申请独立客户端或获得正式授权。
在客户端身份和授权方式得到确认后,愿意提交 PR 实现该功能。公开 PR 将采用独立的 xAI OAuth 实现,不依赖其他私有 Provider 代码。
使用场景
检查清单