认证方式
所有 API 请求通过 HTTP Header 携带 Token 认证。
Token 类型
| Token 类型 | 前缀 | 签发方式 | 权限范围 |
|---|---|---|---|
| Admin Token | wes_ | 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}/run | Admin 或 Cell Token |
/cells/{id}/memory(非 GET) | Admin 或 Cell Token(cell:admin) |
/cells/{id}/sessions | Admin 或 Cell Token(cell:chat) |
/cells/{id}/observe/evidence | Admin 或 Cell Token(cell:admin) |
/health | 无需认证 |
/metrics | 公开或 Admin Token |
错误响应
认证失败返回标准 HTTP 状态码:
| 状态码 | 含义 |
|---|---|
| 401 | Token 缺失或无效 |
| 403 | Token 有效但权限不足 |