custom_jwt(同一个用户池)校验——全程没有共享 API key,用户身份端到端透传。
开始前:按照鉴权与登录配置 AK/SK 或完成 SSO 登录;并在 Agent Identity 准备一个用户池与一个 WEB 客户端,记下
user_pool_id 与 client_id(客户端 secret 由 CLI 自动获取,无需手动填)。要用飞书登录,则在用户池里把飞书配成身份来源(第三方身份联合)。部署前提与版本范围
先准备已经部署、可被前端发现且允许登录用户调用的目标 Runtime。当前前端默认展示云端 Runtime;本流程不会自动将basic 模板中的本地智能体加入列表。需要本地智能体目录调试时,使用 VeADK Frontend 的开发模式
CLI 0.54.0 的前端构建使用 VeADK main 分支,实际行为随构建时的版本变化,不是固定的 VeADK 发布版本。上线前验证目标 Runtime 的发现、登录和调用权限
1
脚手架项目
2
声明前端(编辑 .agentkit/agentkit.yaml)
加上
frontend 块,并显式填写用户池所在区域和项目,避免匹配到其他环境。前端 Runtime 的 custom_jwt 鉴权由该用户池派生,无需重复声明 auth。客户端密钥默认自动获取;未返回密钥时,通过 frontend.oauth2.client_secret: ${USERPOOL_CLIENT_SECRET} 引用实际值:.agentkit/agentkit.yaml
3
填写环境变量
将实际取值写入
.env,部署时 CLI 会自动加载;先将 .env 加入 .gitignore 与 .dockerignore。本例使用火山引擎;BytePlus 应使用独立的用户池与客户端,并同步调整发布配置的云厂商、地域和模型服务:.env
4
部署
5
打开使用
打开输出里的前端地址并完成用户池登录。先确认前端显示正确用户,再检查目标云端 Runtime 出现在列表中,最后发起对话。登录成功只证明身份流程可用;列表为空时检查 Runtime 发现权限,调用失败时检查目标 Runtime 鉴权和模型配置。退出后重新访问应再次进入登录流程
- 无共享密钥:客户端 secret 只保存在前端 BFF 的服务端,浏览器只拿到会话 cookie;调用运行时时由 BFF 注入用户 JWT。
- 回调自动登记:
<前端地址>/oauth2/callback会被自动加入用户池客户端的回调列表(前端地址在部署后才确定,CLI 会自动回填)。 - 网关:前端跑在 serverless 网关上,默认复用账号里已有的 serverless 网关,避免占用网关配额;需要固定时在
frontend.gateway指定。 - Python 项目:前端界面由
veadk frontend提供,构建需要 Python 项目及requirements.txt。本流程使用云端 Runtime 浏览模式,不读取本地root_agent目录