ClouisleClouisle

管理 API 参考

管理后台端点的分组、权限码与调用边界

管理路由挂载在 /api/v1/admin 下,覆盖仪表盘、观测、审计日志、会话、用户、角色、权限、站点设置、模型、SSO、通知、团队、记忆、Agent、工具、Skills、工作流、工作流指标、TOTP、包管理、知识库和消息投递。它们由管理后台使用,响应遵循统一的 code/data/msg 结构,不是面向匿名调用的公共 API。

权限模型

每个端点通过依赖声明所需的权限码(admin:* 或 audit:*):

  • 超级管理员直接放行:拥有 is_superuser 的账号跳过所有权限码校验。
  • 其他调用者按权限码判定:账号必须通过角色持有该端点声明的权限码。权限码由启动时同步的系统权限定义管理,可在角色中自由组合(见 /api/v1/admin/roles、/api/v1/admin/permissions)。
  • API Key 同权校验:API Key 按其绑定用户的权限集合校验,因此不要给 API Key 授予不必要的 admin:* 权限。
  • 知识库分组是例外:/api/v1/admin/knowledge-bases 复用平台知识库路由,但会按请求路径前缀把权限码切换为 admin:knowledge-base:{read,test,create,update,delete},并跳过团队成员校验,使管理视图可以跨团队读取和修改知识库。

管理端点的鉴权是后端强制的。前端隐藏入口不构成安全边界,第三方集成必须按权限码申请最小权限。

分组与权限码

分组挂载前缀权限码
仪表盘/api/v1/admin/dashboardadmin:dashboard:access
观测/api/v1/admin/observabilityadmin:dashboard:access
审计日志/api/v1/admin/audit-logsaudit:read(查询)、audit:export(导出、归档)
会话/api/v1/admin/conversationsadmin:conversation:read、admin:conversation:delete
用户/api/v1/admin/usersadmin:user:read、admin:user:create、admin:user:update、admin:user:delete
角色/api/v1/admin/rolesadmin:role:read、admin:role:create、admin:role:update、admin:role:delete
权限/api/v1/admin/permissionsadmin:permission:read、admin:permission:create、admin:permission:update、admin:permission:delete
站点设置/api/v1/admin/site-settingsadmin:settings:read、admin:settings:update(归档审计日志另需 audit:export)
模型/api/v1/admin/modelsadmin:model:read、admin:model:create、admin:model:update、admin:model:delete
集成/api/v1/admin/integrationsadmin:integrations:login:read/update(登录域)、admin:integrations:settings:read/update(内置配置域)
通知/api/v1/admin/notificationsadmin:notification:create(创建)、admin:notification:delete(删除);列表按全局管理权限或授权团队收敛
消息投递/api/v1/admin/deliveriesadmin:integrations:settings:read(只读)
团队/api/v1/admin/teamsadmin:team:read、admin:team:create、admin:team:delete
记忆/api/v1/admin/memoriesadmin:memory:read、admin:memory:update、admin:memory:delete
Agent/api/v1/admin/agentsadmin:app:read、admin:app:create、admin:app:update、admin:app:delete、admin:app:publish、admin:app:duplicate
工具/api/v1/admin/toolsadmin:capability:read、admin:capability:create、admin:capability:update、admin:capability:delete、admin:capability:execute
Skills/api/v1/admin/skillsadmin:capability:read、admin:capability:create、admin:capability:update、admin:capability:delete、admin:capability:execute
工作流/api/v1/admin/workflowsadmin:app:read、admin:app:create、admin:app:update、admin:app:delete、admin:app:publish、admin:app:duplicate
工作流指标/api/v1/admin/workflows/metricsadmin:dashboard:access(清缓存需 admin:settings:update)
TOTP/api/v1/admin/totpadmin:dashboard:access
包管理/api/v1/admin/packages需已认证用户(导入/导出按资源自身的访问规则校验)
知识库/api/v1/admin/knowledge-basesadmin:knowledge-base:read、admin:knowledge-base:test、admin:knowledge-base:create、admin:knowledge-base:update、admin:knowledge-base:delete

Agent、工作流两组共用同一套 admin:app:* 权限码,工具与 Skills 两点共用同一套 admin:capability:* 权限码;授予其中一组会同时影响另一组。

常用端点

方法路径说明
GET/api/v1/admin/dashboard/stats系统总览统计(用户、团队、Agent、工作流、会话、token)
GET/api/v1/admin/dashboard/stats/trends系统增长趋势
GET/api/v1/admin/observability/overview运行观测总览
GET/api/v1/admin/observability/timeouts超时统计
GET/api/v1/admin/audit-logs分页查询审计日志
GET/api/v1/admin/audit-logs/export导出审计日志
GET/api/v1/admin/roles列出角色
PUT/api/v1/admin/roles/{role_id}/permissions覆盖角色的权限集合
GET/api/v1/admin/permissions/scopes列出权限作用域选项
GET/api/v1/admin/users/stats用户统计
POST/api/v1/admin/users/{user_id}/deactivate停用用户
GET/api/v1/admin/teams列出全部团队
GET/api/v1/admin/memories/entities列出记忆实体
GET/api/v1/admin/memories/relations列出记忆关系
GET/api/v1/admin/agents/filtersAgent 筛选选项
POST/api/v1/admin/agents/{agent_id}/publish发布 Agent
GET/api/v1/admin/tools/config列出全局工具配置
GET/api/v1/admin/skills/filtersSkill 筛选选项
GET/api/v1/admin/workflows/filters工作流筛选选项
GET/api/v1/admin/totp/statsTOTP 使用统计
GET/api/v1/admin/notifications管理视图通知列表
GET/api/v1/admin/deliveries飞书/微信 Agent 会话出站投递记录
GET/api/v1/admin/knowledge-bases跨团队知识库列表

工作流指标

工作流执行指标不在 /api/v1/workflows 下,而在管理前缀下的 /api/v1/admin/workflows/metrics/*。其路由自带 /workflows/metrics 前缀,因此与管理工作流的 /api/v1/admin/workflows CRUD 共存而不冲突。

方法路径说明权限
GET/api/v1/admin/workflows/metrics/dashboard指标看板总览(含运行中的工作流)admin:dashboard:access
GET/api/v1/admin/workflows/metrics/workflows/{workflow_id}单个工作流的执行指标admin:dashboard:access
GET/api/v1/admin/workflows/metrics/nodes全部节点类型指标admin:dashboard:access
GET/api/v1/admin/workflows/metrics/nodes/{node_type}指定节点类型指标admin:dashboard:access
GET/api/v1/admin/workflows/metrics/running当前运行中的工作流列表admin:dashboard:access
GET/api/v1/admin/workflows/metrics/cache指标缓存统计admin:dashboard:access
DELETE/api/v1/admin/workflows/metrics/cache清空指标缓存admin:settings:update
curl -X GET "https://your-domain.com/api/v1/admin/workflows/metrics/dashboard" \
  -H "Authorization: Bearer YOUR_ADMIN_TOKEN"

消息投递日志

GET /api/v1/admin/deliveries 读取飞书与微信 Agent 会话共用的持久化出站队列 integration_deliveries。它是只读端点,需要 admin:integrations:settings:read,超级管理员绕过检查;消息正文、平台资源键(media_key)、凭据和文件内容都不会返回。管理后台的监控 > 投递记录(/deliveries)页面使用同一端点。

sent 只表示平台接受了回复请求,不代表接收人已读、打开了卡片或下载了附件。

查询参数

参数类型必填默认值说明
provider_typerepeated feishu / wechat否-按集成过滤;重复传参匹配任一值(OR)
statusrepeated pending / sending / sent / error / unavailable / unknown否-按投递状态过滤;重复传参匹配任一值(OR)
run_idstring (UUID)否-按来源 AgentRun 精确过滤
filenamestring(1–500 字符)否-对产物文件名做不区分大小写的子串过滤
limitinteger(1–100)否25每页条数
offsetinteger(≥ 0)否0偏移量

provider_type 内部 OR、status 内部 OR,两组之间 AND。响应为 {items, total, limit, offset},按 created_at、id 倒序。

curl -X GET "https://your-domain.com/api/v1/admin/deliveries?provider_type=feishu&provider_type=wechat&status=error&status=unknown&limit=25&offset=0" \
  -H "Authorization: Bearer YOUR_ADMIN_TOKEN"
{
  "code": 0,
  "data": {
    "items": [
      {
        "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
        "provider_type": "feishu",
        "run_id": "1c2f1a2e-0f4e-4a8f-9d4a-2b0d7b3dcb6d",
        "user_id": "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d",
        "agent_id": "550e8400-e29b-41d4-a716-446655440000",
        "chat_id": "oc_xxx",
        "message_id": "om_xxx",
        "event_key": "final-asset",
        "sequence": 0,
        "kind": "asset",
        "filename": "report.pdf",
        "content_type": "application/pdf",
        "size": 12345,
        "media_type": "file",
        "status": "error",
        "error": "feishu_agent_asset_upload_failed",
        "error_detail": "FeishuAPIError: Feishu API error 234001: Invalid request param. | HTTP 400 | code 234001 | {...}",
        "has_media_key": false,
        "created_at": "2026-10-22T10:03:13Z",
        "updated_at": "2026-10-22T10:03:13Z"
      }
    ],
    "total": 1,
    "limit": 25,
    "offset": 0
  },
  "msg": "success"
}

状态

状态含义
pending已入队,尚未被发送者认领;重启与功能暂停后仍保留
sending已被某个 worker 在租约内认领;租约过期后转为 unknown,不会自动重发
sent平台接受了回复请求
error永久失败,如平台拒绝或产物不可用
unavailable运行已结束,但回复不应发送(渠道关闭、访问被撤销、缺少会话上下文)
unknown发送后的超时;结果不确定,绝不盲目重发

字段与错误

字段类型说明
idstring (UUID)投递行 ID
provider_typestringfeishu 或 wechat
run_id / user_id / agent_idstring (UUID) | null来源 AgentRun、连接用户、Agent
chat_id / message_idstring | null平台会话 ID / 消息 ID
event_keystring事件标识,如 received、final、final-asset、ask:<tool-call>
sequenceinteger同一事件内分片顺序
kindstringtext、markdown、asset 等
filename / content_type / sizestring / string / integer | null产物名称、MIME 类型、字节数
media_typestring | null平台媒体类型
statusstring上表状态之一
errorstring | null稳定失败键,用于行为判断与本地化
error_detailstring | null平台原始错误:消息、HTTP 状态、错误码与响应片段
has_media_keyboolean是否已保存平台资源键;键本身不返回
created_at / updated_atstring (ISO 8601)创建与最后更新时间

error 是稳定的机器可读键(如 feishu_agent_asset_upload_failed);error_detail 保留平台返回的原文、HTTP 状态与错误码,便于定位权限、参数或大小问题。

与通知投递不是同一张表

GET /api/v1/admin/deliveries 与 integration_deliveries 只覆盖飞书/微信 Agent 会话。站内通知的 email / webhook / feishu 外部发送记录在 notification_deliveries,通过通知管理接口的 deliveries[] 读取;微信不是通知渠道。

升级关系

单表 integration_deliveries 取代旧的 feishu_agent_deliveries 与 wechat_agent_deliveries。首次启动时 API 复制旧表数据并删除旧表,因此 API、所有 worker 与 Beat 必须部署到匹配版本:旧进程会向已删除的表写入。仅回滚应用镜像无法重建队列表;回滚必须使用升级前的数据库备份。

页面行为、筛选与排障建议见投递记录。

调用示例

curl -X GET "https://your-domain.com/api/v1/admin/users?page=1&page_size=20" \
  -H "Authorization: Bearer YOUR_ADMIN_TOKEN"

集成建议

  • 第三方应用优先使用 Agent、工作流、会话和知识库资源端点,而不是管理端点。
  • 管理自动化必须固定 Clouisle 版本,记录所需权限码,并在升级前检查 OpenAPI Schema。
  • 审计和用户管理操作包含敏感数据,应使用短期密钥并配合最小限速。
  • 只有确实需要跨团队运维时才授予 admin:*;日常使用应通过团队角色授予平台权限(如 workflow:read、kb:read)。

常见错误

HTTP / code含义
401 / 2000缺少认证
403 / 3000缺少对应权限码
404 / 4000资源不存在
1001请求参数校验失败

Last Updated: 2026-09-26

这篇文章对你有帮助吗?

本页目录