认证方式

所有 API 请求通过 HTTP Header 携带 Token 认证。


Token 类型

Token 类型前缀签发方式权限范围
Admin Tokenwes_POST /admin/tokens 或引擎启动自动生成全部 Cell + Admin 端点
Cell Token—POST /cells/{id}/tokens单个 Cell 内的业务端点

请求格式

Authorization: Bearer <token>

示例

curl http://localhost:9091/admin/cells \
  -H "Authorization: Bearer wes_xxxxxxxxxxxx"

Admin Token

签发

curl -X POST http://localhost:9091/admin/tokens \
  -H "Authorization: Bearer $ADMIN_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"ttl": "720h"}'

响应:

{
  "token": "wes_new_token_value",
  "id": "tok-abc123",
  "expires_at": "2026-10-21T06:00:00Z"
}

吊销

curl -X DELETE http://localhost:9091/admin/tokens/tok-abc123 \
  -H "Authorization: Bearer $ADMIN_TOKEN"

Bootstrap Token

引擎首次启动时自动生成一个 Admin Token 并输出到 stderr:

wesgine: bootstrap admin token: wes_xxxxxxxxxxxx

⚠️ 此 Token 直接写入 stderr 文件(不经 journal),因为生产部署中 journal 可能被转发到外部日志系统。


Cell Token

Cell Token 的权限限定在单个 Cell 内。适合分发给前端或第三方集成。

签发

curl -X POST http://localhost:9091/cells/dept-legal/tokens \
  -H "Authorization: Bearer $ADMIN_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"ttl": "24h"}'

吊销

curl -X DELETE http://localhost:9091/cells/dept-legal/tokens/tok-xyz789 \
  -H "Authorization: Bearer $ADMIN_TOKEN"

权限作用域

不同端点要求不同的 Token 作用域:

端点前缀所需 Token
/admin/*Admin Token
/cells/{id}/runAdmin 或 Cell Token
/cells/{id}/memory(非 GET)Admin 或 Cell Token(cell:admin)
/cells/{id}/sessionsAdmin 或 Cell Token(cell:chat)
/cells/{id}/observe/evidenceAdmin 或 Cell Token(cell:admin)
/health无需认证
/metrics公开或 Admin Token

错误响应

认证失败返回标准 HTTP 状态码:

状态码含义
401Token 缺失或无效
403Token 有效但权限不足