API Reference
Hub HTTP 接口主要位于/api/v1。所有 /api/v1/* 接口都需要 Authorization: Bearer <JWT>(CLI token 也可作为 bearer token 使用)。认证模式决定登录流程,但业务接口仍由 Hub 的角色中间件授权。
角色(admin / maintainer / member)由 Hub 本地管理,见 配置。/api/v1/admin/* 路径按两个分组注册在相同路径上:
- adminWrite(
RequireManager= admin + maintainer):所有写方法(POST/PUT/PATCH/DELETE)与敏感读(AIGC 配置、Agent 运行时文件内容files/content、Provider 密钥明文)。 - adminRead(admin + maintainer + member):非敏感 GET(列表、详情、tools/skills/mcps/knowledge 绑定、文件列表、部署状态)。member 只读。
/api/v1/admin/users、/api/v1/admin/invites)仅 admin 可用(RequireAdmin)。
接口区域
Ops API 默认不挂载,未配置时返回 404。外部自动化应先确认部署采用的认证模式,并保存最小权限 token。
认证
两个可互换的认证后端由AUTH_MODE 选择(默认 builtin):
Agent(公开)
Provider(公开,供客户端消费)
明文密钥仅 admin/maintainer 可通过
POST /api/v1/admin/providers/:id/reveal-key 获取。
Skill(公开)
Scene(公开)
Chat(普通用户)
管理端点(/api/v1/admin/*)
覆盖 Agent / Tool / Skill / Scene / Provider / Knowledge / Chat 的 CRUD 与探活。重要成员:
审计日志(仅 admin)
GET /api/v1/admin/audit-logs——审计查询,仅 admin(RequireAdmin;maintainer/member 返回 403)。审计日志只读,没有更新/删除接口。
查询参数:
响应(按
createdAt DESC, id DESC 排序):
id/snapshotId是十进制字符串:uint64 超过 2^53-1 的值作为 JS number 会丢精度——保持字符串,绝不转成 number。detail是 JSON 对象或null,结构由按action的强类型白名单决定。status为三态:success/failure/partial。
CLI Tokens(/api/v1/cli/*——仅 admin/maintainer)
CLI token 拥有与签发用户相同的权限。
Ops API(/api/v1/ops/*——X-Ops-Key 请求头)
仅在设置 OPS_API_KEY 时挂载。用于登记各组织的 Casdoor OAuth client(多组织登录),运维手册见 配置。
Agent ID、部署键与公开 URL
自 deployer v3.1 起,已部署 Agent 携带三个相互独立的标识:- Agent ID(裸
<name>):runtime agent 图身份;Hub 的聊天/详情代理通过/v1/agents/<name>裸名寻址 runtime(subagent 同样使用裸名)。 - Deployment key(
<org>-<name>):Kong 实体 / deployer 容器键——所有生命周期寻址(get/start/stop/delete)与网关实体命名。 - Public URL:casdoor 模式为
https://<gateway>/<org>/<name>;builtin 模式为https://<gateway>/<name>(无/default前缀,但部署键仍保留default-前缀)。无 Kong 时,Hub 代理在/runtime前缀下提供相同路径。
Provider 探活示例
核心能力端点速查
自定义工具
- 单文件
.ts/.mts/.js/.mjs,≤ 5 MiB;工具名来自文件默认导出的name(Hub 不执行代码,由 Runtime 在部署时校验)。 tools.source:builtin(共享只读预设)/custom(租户制品);custom 制品状态派生ready|missing。- 删除仍被 Agent 挂载的自定义工具返回
409+data.agents名单;内置工具拒绝一切写操作。 - 部署请求向 agent-deployer 下发
customTools []ToolSource{name,url,hash,fileName}(仅 custom + ready,按名排序;URL =OSS_CDN_HOST+ 内容寻址 key)。 PUT /api/v1/admin/tools/:name仅接受title/description/descriptionEn;其他字段(如isDefault)会被静默忽略。