平台能力
平台能力是 FunClaw 对外提供的可授权业务动作。每个能力都有唯一的 capabilityKey,组织应用获得授权后,可以通过统一开放入口执行。
当前平台能力按两层理解:
- 产品化开放能力:外部应用可以申请、授权和调用的能力,例如
adx-creator-data-single、douyin-hot-rank-data、douyin-top10-single、kuaishou-creator-info-single。 - 内部原子能力:平台内部执行步骤,例如任务队列、抖音 Top10 抓取、资产写入。外部应用不直接调用内部原子能力。
授权前提
- 应用必须归属于一个组织。
- 应用审核通过后,由平台管理员在应用授权中选择可调用的平台能力。
- 外部应用必须使用绑定到该组织应用的 API Key。
- 未授权能力会被拒绝调用。
统一执行入口
POST /api/open/v1/organizations/{orgId}/capabilities/{capabilityKey}:execute
Authorization: Bearer <sk-organization-application-api-key>
Content-Type: application/json{
"applicationId": "organization-application-id",
"input": {
"any": "capability-specific-input"
}
}当前执行响应为:
{
"capabilityKey": "douyin-top10-single",
"message": "SUCCEEDED",
"code": 200,
"data": {}
}message 和 code 表示开放能力入口的执行结果;具体能力产生的任务状态、批次状态或资产信息放在 data 内。capabilityKey 会随响应返回,便于外部系统做调用追踪和问题排查。
异步任务查询
异步型开放能力会在 data.taskId 返回平台任务 ID。调用方可以通过统一任务查询入口轮询状态:
GET /api/open/v1/organizations/{orgId}/capabilities/{capabilityKey}/tasks/{taskId}
Authorization: Bearer <sk-organization-application-api-key>查询成功时仍返回 capabilityKey/message/code/data。当 data.status 为 SUCCEEDED 时,data.result 和 data.artifacts 会携带结果摘要与平台资产引用。
异步任务仍在运行时,调用方可以通过统一取消入口请求取消任务:
POST /api/open/v1/organizations/{orgId}/capabilities/{capabilityKey}/tasks/{taskId}:cancel
Authorization: Bearer <sk-organization-application-api-key>取消成功时仍返回 capabilityKey/message/code/data。具体取消后的 data.status 由能力自身定义,例如 CANCELLED 或 CANCELED。已成功、失败或部分失败的终态任务不可取消,会返回 409;重复取消已取消任务会返回当前已取消状态。
同一个应用下,如果某个能力使用共享任务队列,调用方可以查询队列里正在运行的 owner 列表:
GET /api/open/v1/organizations/{orgId}/capabilities/{capabilityKey}/current-task
Authorization: Bearer <sk-organization-application-api-key>没有运行任务时:
{
"capabilityKey": "douyin-top10-single",
"message": "SUCCEEDED",
"code": 200,
"data": {
"running": false,
"queueKey": "douyin-top10",
"ownerCapabilityKey": null,
"taskId": null,
"executionId": null,
"status": null,
"acquiredAt": null,
"activeCount": 0,
"capacity": 2,
"owners": []
}
}有运行任务时:
{
"capabilityKey": "douyin-top10-single",
"message": "SUCCEEDED",
"code": 200,
"data": {
"running": true,
"queueKey": "douyin-top10",
"ownerCapabilityKey": "douyin-top10-batch",
"taskId": "platform-task-id",
"executionId": "platform-execution-id",
"status": "RUNNING",
"acquiredAt": "2026-05-12T02:00:00Z",
"activeCount": 2,
"capacity": 2,
"owners": [
{
"slotIndex": 0,
"ownerCapabilityKey": "douyin-top10-batch",
"taskId": "platform-task-id",
"executionId": "platform-execution-id",
"status": "RUNNING",
"acquiredAt": "2026-05-12T02:00:00Z"
},
{
"slotIndex": 1,
"ownerCapabilityKey": "kuaishou-creator-info-single",
"taskId": "platform-task-id-2",
"executionId": "platform-execution-id-2",
"status": "RUNNING",
"acquiredAt": "2026-05-12T02:01:00Z"
}
]
}
}activeCount 表示当前正在占用队列的 owner 数,capacity 表示这个共享队列的 slot 容量,owners 按 slotIndex 升序返回所有正在运行的 owner。douyin-top10-single、douyin-top10-batch、kuaishou-creator-info-single、kuaishou-creator-info-batch、adx-creator-data-single 和 adx-creator-data-batch 共享底层 douyin-top10 远端资源队列。返回的 ownerCapabilityKey 仍表示当前页视角下第一个占用队列的开放能力;调用方应使用 ownerCapabilityKey 与 taskId 继续查询任务详情。所有 slot 都被占满时,新的抖音 Top10、快手达人信息或 ADX 达人数据创建请求会返回 409。
已有能力
| 能力 Key | 名称 | 状态 | 适用场景 |
|---|---|---|---|
adx-creator-data-single | ADX 达人数据 单条 | 已接入统一执行入口 | 外部应用提前组装完整 prompt,平台按单条任务原样转发到 session-hub 采集 ADX 达人数据。 |
adx-creator-data-batch | ADX 达人数据 批量 | 已接入统一执行闭环 | 外部系统按 JSON 数组批量提交已组装的 prompt,平台串行执行 item 并返回批量进度。 |
douyin-top10-single | 抖音 Top10 单条 | 已接入统一执行入口 | 外部应用按一次查询条件创建单条抖音 Top10 榜单任务。 |
douyin-top10-batch | 抖音 Top10 批量 | 已接入统一执行闭环 | 外部系统按 JSON 数组批量创建抖音 Top10 榜单任务。 |
douyin-video-url-backfill | 抖音视频真实地址回填 | 已接入统一执行入口 | 外部应用传入 videoId 和真实 videoUrl,并回写当前应用生成的抖音 Top10 资产。 |
kuaishou-creator-info-single | 快手达人信息 单条 | 已接入统一执行入口 | 外部应用按快手号创建单条达人信息采集任务,返回整份快手结果 JSON。 |
kuaishou-creator-info-batch | 快手达人信息 批量 | 已接入统一执行闭环 | 外部系统按 JSON 数组批量创建快手达人信息采集任务,item 结果保持整份 JSON。 |
douyin-hot-rank-data | 抖音热榜数据 | 已接入开放能力层 | 外部系统写入和读取一次一个资产的抖音热榜纯 JSON 快照,归属“数据”分类。 |
funclaw-mcp-server | FunClaw MCP Server | 已接入开放能力层 | 外部 MCP 客户端在授权后通过 JSON-RPC 读取当前应用可见的 FunClaw 工具能力目录。 |
tikhub-api-service | TikHub API Service | 已接入异步任务型业务 action | 外部应用通过 action=douyin.top.search 或 action=kuaishou.account.search 创建纯 TikHub API 任务;TikHub raw endpoint action 不作为普通对外契约。 |
meowload-api-service | 提取链接去水印视频 | 已接入统一执行入口 | 外部应用通过 media.extract / playlist.extract / subtitle.extract / credits.query 调用 MeowLoad 媒体提取与去水印能力;同步返回标准化媒体直链。 |
media-clip-api-service | 媒体拆条内容 | 已接入统一执行入口 | 外部应用通过 clips.list 全量或增量拉取媒体拆条数据,按真实切条 ID 游标分页。 |