开发者文档 新手入门

认证

平台 API 与 LLM 网关共享同一凭据:每次任务运行获得的任务 JWT。请求范围限定在所属项目内。

Bearer 任务令牌

每次任务运行都会在 TASK_JWT 环境变量里拿到一个短期 JWT。调用平台 API 时把它作为 bearer token 传入:

curl "$ALLYBUILD_API_URL/projects/$PROJECT_ID/tasks" \
  -H "Authorization: Bearer $TASK_JWT"

项目隔离

所有读写都按项目隔离。client 需要显式传入项目 id,workflow 模块会自动从 PROJECT_ID 接线:

from allybuild_sdk import AllyBuildClient

client = AllyBuildClient(
    base_url=ALLYBUILD_API_URL,   # 注入,含 /api
    token=TASK_JWT,               # 注入的 bearer 凭据
    project_id=PROJECT_ID,        # 注入的项目范围
)

client.configured()   # 三项凭据缺任意一项时为 False

LLM 网关凭据

LLM 网关兼容 OpenAI,位于平台根路径的 /v1 前缀下。使用同一个任务 JWT 作为 API key:

from openai import OpenAI

gateway = f"{ALLYBUILD_API_URL.removesuffix('/api')}/v1"
llm = OpenAI(base_url=gateway, api_key=TASK_JWT)

过期与续期

任务令牌随任务运行过期。长时间运行的工作应在请求时从环境变量读取 TASK_JWT,而不是硬编码,重试的运行会自动拿到新令牌。

清单

  • 始终携带 Authorization: Bearer $TASK_JWT——缺失时请求认证失败
  • 所有路径都在 /projects/$PROJECT_ID 之下——跨项目访问会被拒绝
  • 把 ALLYBUILD_API_URL 当作唯一基址;不要硬编码主机名
  • 不要在运行之外持久化令牌——需要时从环境变量读取