ADBAgent OpenAPI 使用指南

更新时间:
复制 MD 格式

本文介绍如何通过 ADBAgent RESTful API 以编程方式使用 AI 数据分析能力,包括认证、会话管理、数据分析、数据源和技能管理等操作。

简介

ADBAgent API 通过实例的公网 IP 和端口提供服务,请求和响应均使用 JSON 格式。获取分析结果支持两种交互模式:

  • 轮询模式:发送提问后,通过返回的 roundId 轮询分析状态和结果,适合脚本和后端集成场景。

  • SSE 实时事件流:通过 Server-Sent Events 事件流实时接收分析过程和结果,适合构建交互式聊天界面。

准备工作

在调用 API 前,请完成以下准备:

  1. 开通 ADBAgent 服务

    在 AnalyticDB MySQL 控制台的集群详情页,选择 ADBClaw (AI 助手),单击添加服务创建 ADBClaw 实例。详情请参见ADBAgent。

  2. 添加 IP 白名单

    在 ADBClaw (AI 助手) 页面,单击目标服务操作列的详情,选择白名单设置页签,单击添加白名单分组,将调用 API 的机器公网 IP 添加到白名单中。

    说明

    可在终端执行 curl ifconfig.me 查询本机公网 IP。

  3. 获取登录凭据

    在 ADBClaw (AI 助手) 页面,单击目标服务操作列的凭证,查看默认账号和密码。该凭据用于调用登录接口获取 Token。如需修改密码,可登录 ADBClaw 后在用户管理页面进行修改。

快速入门

按照以下步骤,通过 API 完成一次完整的数据分析流程。

步骤一:获取访问地址

在 ADBAgent 控制台页面获取公网 IP 地址,设置环境变量:

export BASE="http://<公网IP>:3001"
说明

请将 <公网IP> 替换为 ADBAgent 控制台中的实际公网 IP 地址。

步骤二:登录获取 Token

调用登录接口获取认证 Token。后续所有 API 请求都需要在 Authorization 请求头中携带该 Token。用户名和密码为 ADBClaw (AI 助手) 页面中目标服务的默认凭据,可单击操作列的凭证查看。

TOKEN=$(curl -s -X POST "$BASE/api/v1/auth/login" \
  -H "Content-Type: application/json" \
  -d '{"username":"<用户名>", "password":"<密码>", "expiresIn":86400}' | jq -r .token)

echo $TOKEN

请求参数:

参数

类型

必填

说明

username

string

是

登录用户名。

password

string

是

登录密码。

expiresIn

number

否

Token 过期时间,单位为秒。默认值:14400(4 小时)。

响应示例:

{
  "token": "owt_xxxxx",
  "scope": "collaborator",
  "userId": "usr_xxxxx",
  "username": "admin",
  "expiresIn": 86400,
  "expiresAt": "2026-01-02T10:00:00.000Z"
}
重要

Token 过期后需重新登录获取。请妥善保管 Token,勿在公开场合暴露。

步骤三:查看支持的大模型

查询可用的大语言模型列表。

curl -s "$BASE/api/v1/models" \
  -H "Authorization: Bearer $TOKEN" | jq .

响应示例:

{
  "models": [
    {
      "id": "adb-qwen3.5-plus/qwen3.5-plus",
      "name": "qwen3.5-plus",
      "provider": "adb-qwen3.5-plus"
    }
  ]
}

步骤四:创建会话

所有对话都在会话中进行。发送提问前需先创建会话。

SID=$(curl -s -X POST "$BASE/api/v1/sessions" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"title":"我的分析任务"}' | jq -r '.sessionId')

echo "Session ID: $SID"

请求参数:

参数

类型

必填

说明

title

string

是

会话标题。

响应示例:

{
  "sessionId": "ses_xxxxx",
  "title": "我的分析任务",
  "createdAt": "2026-01-01T10:00:00.000Z"
}

步骤五:发送提问

在会话中提交分析问题。

RID=$(curl -s -X POST "$BASE/api/v1/sessions/$SID/prompt" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"text":"查询本月销量最高的产品"}' | jq -r '.roundId')

echo "Round ID: $RID"

请求参数:

参数

类型

必填

说明

text

string

是

提问内容或分析请求。

model

string

否

模型标识符,格式为 provider/modelName。不传则使用默认模型。

响应示例:

{
  "roundId": "rnd_msg_xxxxx"
}

步骤六:获取回复结果

分析过程是异步的。使用返回的 roundId 轮询结果接口,直到 status 变为 completed。

curl -s "$BASE/api/v1/sessions/$SID/rounds/$RID" \
  -H "Authorization: Bearer $TOKEN" | jq .

响应示例:

{
  "roundId": "rnd_msg_xxxxx",
  "status": "completed",
  "question": "查询本月销量最高的产品",
  "answer": "根据分析结果...",
  "model": "adb-qwen3.5-plus/qwen3.5-plus",
  "duration": 3200
}

status 字段取值说明:

取值

含义

操作

running

分析进行中

继续轮询(建议间隔 2 秒)

completed

分析完成

读取 answer 字段获取结果

error

分析失败

answer 字段包含错误信息

步骤七:SSE 实时事件流(可选)

除轮询外,还可以通过 SSE(Server-Sent Events)实时接收分析进度和结果,适合构建交互式聊天界面。

先在一个终端订阅事件流,再在另一个终端发送提问:

# 终端 1:订阅事件流(plain 格式,打字机效果)
curl -N "$BASE/api/v1/sessions/$SID/events?format=plain" \
  -H "Authorization: Bearer $TOKEN"

# 终端 2:发送提问(与步骤五相同)
curl -s -X POST "$BASE/api/v1/sessions/$SID/prompt" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"text":"分析最近7天的订单趋势"}'

事件流将实时推送分析过程和最终结果。详细的 SSE 格式说明和前端对接示例请参见SSE 实时事件流章节。

API 速查表

方法

路径

说明

认证

POST

/api/v1/auth/login

登录获取 Token

会话

POST

/api/v1/sessions

创建会话

GET

/api/v1/sessions

查看所有会话

DELETE

/api/v1/sessions/{sessionId}

删除会话

GET

/api/v1/sessions/{sessionId}/messages

查看历史消息

POST

/api/v1/sessions/{sessionId}/abort

中断当前分析

对话

POST

/api/v1/sessions/{sessionId}/prompt

发送提问

GET

/api/v1/sessions/{sessionId}/rounds/{roundId}

获取轮次结果(轮询)

GET

/api/v1/sessions/{sessionId}/events

SSE 事件流

模型

GET

/api/v1/models

查看可用模型

GET

/api/v1/sessions/{sessionId}/model

查看会话默认模型

POST

/api/v1/sessions/{sessionId}/model

设置会话默认模型

数据源

GET

/api/v1/datasources

列出所有数据源

GET

/api/v1/datasources/{name}

获取数据源详情

GET

/api/v1/datasources/{name}/databases

列出数据库

GET

/api/v1/datasources/{name}/{database}/tables

列出表

POST

/api/v1/datasources

创建数据源

PUT

/api/v1/datasources/{name}

更新数据源

DELETE

/api/v1/datasources/{name}

删除数据源

技能

GET

/api/v1/skills

列出已安装技能

GET

/api/v1/skills/{skillName}

获取技能详情

POST

/api/v1/skills

创建或更新技能

DELETE

/api/v1/skills/{skillName}

删除技能

PATCH

/api/v1/skills/{skillName}/permission

设置技能权限

POST

/api/v1/skills/upload

上传 ZIP 安装技能

GET

/api/v1/skills/{skillName}/download

导出技能为 ZIP

说明

除登录接口外,所有接口均需在请求头中携带 Authorization: Bearer $TOKEN 进行身份认证。

会话管理

查看所有会话

请求方法:GET

请求路径:/api/v1/sessions

接口说明:获取当前用户的所有会话列表。

请求示例

curl -s "$BASE/api/v1/sessions" \
  -H "Authorization: Bearer $TOKEN" | jq .

响应说明

返回字段:

字段

类型

说明

sessions

array

会话列表。每个元素包含 sessionId、title、model、createdAt、updatedAt 字段。

响应示例:

{
  "sessions": [
    {
      "sessionId": "ses_xxxxx",
      "title": "我的分析任务",
      "model": "adb-qwen3.5-plus/qwen3.5-plus",
      "createdAt": "2026-01-01T10:00:00.000Z",
      "updatedAt": "2026-01-01T12:00:00.000Z"
    }
  ]
}

查看历史消息

请求方法:GET

请求路径:/api/v1/sessions/{sessionId}/messages

接口说明:获取指定会话的消息历史记录。

请求参数

参数

类型

必填

说明

limit

number

否

返回消息数量。默认值:50。

请求示例

curl -s "$BASE/api/v1/sessions/$SID/messages?limit=50" \
  -H "Authorization: Bearer $TOKEN" | jq .

响应说明

返回字段:

字段

类型

说明

messages

array

消息列表。每个元素包含 id、role(user 或 assistant)、content、model、createdAt 字段。

响应示例:

{
  "messages": [
    {
      "id": "msg_xxxxx",
      "role": "user",
      "content": "查询本月销量最高的产品",
      "model": null,
      "createdAt": "2026-01-01T10:00:00.000Z"
    },
    {
      "id": "msg_yyyyy",
      "role": "assistant",
      "content": "根据分析结果...",
      "model": "adb-qwen3.5-plus/qwen3.5-plus",
      "createdAt": "2026-01-01T10:00:03.000Z"
    }
  ]
}

中断当前分析

请求方法:POST

请求路径:/api/v1/sessions/{sessionId}/abort

接口说明:停止会话中正在进行的分析任务。会话本身不受影响。

请求示例

curl -s -X POST "$BASE/api/v1/sessions/$SID/abort" \
  -H "Authorization: Bearer $TOKEN"

响应说明

成功时返回 HTTP 204,无响应体。

删除会话

请求方法:DELETE

请求路径:/api/v1/sessions/{sessionId}

接口说明:永久删除会话及其所有消息。该操作不可撤销。

请求示例

curl -s -X DELETE "$BASE/api/v1/sessions/$SID" \
  -H "Authorization: Bearer $TOKEN"

响应说明

成功时返回 HTTP 204,无响应体。

获取回复结果

ADBAgent 提供两种方式获取分析结果:轮询模式和 SSE 实时事件流。

轮询获取结果

请求方法:GET

请求路径:/api/v1/sessions/{sessionId}/rounds/{roundId}

接口说明:通过 roundId 查询分析任务的状态和结果。轮询直到 status 变为 completed 或 error。

请求示例

curl -s "$BASE/api/v1/sessions/$SID/rounds/$RID" \
  -H "Authorization: Bearer $TOKEN" | jq .

响应说明

返回字段:

字段

类型

说明

roundId

string

分析轮次 ID。

status

string

分析状态:running(进行中)、completed(完成)、error(失败)。

question

string

用户提问内容。

answer

string

分析回复内容。状态为 error 时包含错误信息。

model

string

本次使用的模型。

duration

number

分析耗时,单位为毫秒。

响应示例:

{
  "roundId": "rnd_msg_xxxxx",
  "status": "completed",
  "question": "查询本月销量最高的产品",
  "answer": "根据分析结果...",
  "model": "adb-qwen3.5-plus/qwen3.5-plus",
  "duration": 3200
}

轮询示例脚本

以下脚本实现了自动轮询逻辑(建议间隔 2 秒):

poll_round() {
  local sid=$1 rid=$2
  while true; do
    RESP=$(curl -s "$BASE/api/v1/sessions/$sid/rounds/$rid" \
      -H "Authorization: Bearer $TOKEN")
    STATUS=$(echo "$RESP" | jq -r '.status')
    case $STATUS in
      completed)
        echo "$RESP" | jq '{question, answer, model, duration}'
        return 0 ;;
      error)
        echo "$RESP" | jq '{question, answer, status}'
        return 1 ;;
      *)
        sleep 2 ;;
    esac
  done
}

# 用法:发送提问并等待结果
RID=$(curl -s -X POST "$BASE/api/v1/sessions/$SID/prompt" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"text":"分析最近7天的用户活跃趋势"}' | jq -r '.roundId')
poll_round "$SID" "$RID"

SSE 实时事件流

请求方法:GET

请求路径:/api/v1/sessions/{sessionId}/events

接口说明:通过 SSE(Server-Sent Events)端点实时接收分析进度和结果。

支持三种输出格式:

格式

Content-Type

说明

raw

text/event-stream

完整的 SSE 事件流,包含 message.part.delta、message.part.updated 和 session.idle 等事件类型,区分思考过程和最终回答。适合需要精细控制的客户端。

text

text/event-stream

简化的 SSE 格式,仅包含三种事件:delta(内容片段)、done(生成完成)、error(错误)。过滤掉思考内容,仅输出最终回答。适合简单客户端对接。

plain

text/plain

纯文本流(非 SSE 格式),直接输出文本片段,包含思考内容。适合终端调试,呈现打字机效果。

使用方式:先订阅事件流,再发送提问。

# 终端中的打字机效果(plain 格式)
curl -N "$BASE/api/v1/sessions/$SID/events?format=plain" \
  -H "Authorization: Bearer $TOKEN"
说明

使用 SSE 时,先建立事件流连接,再通过 prompt 接口发送提问。事件流将实时推送分析过程和结果。

前端对接示例

以下 JavaScript 示例展示如何使用 text 格式的 SSE 事件流:

async function streamChat(base, token, sessionId, question) {
  const controller = new AbortController();

  // 1. 订阅事件流
  const eventRes = await fetch(
    `${base}/api/v1/sessions/${sessionId}/events?format=text`,
    {
      headers: { 'Authorization': `Bearer ${token}` },
      signal: controller.signal
    }
  );

  // 2. 发送提问
  await fetch(`${base}/api/v1/sessions/${sessionId}/prompt`, {
    method: 'POST',
    headers: {
      'Authorization': `Bearer ${token}`,
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({ text: question })
  });

  // 3. 读取事件流
  const reader = eventRes.body.getReader();
  const decoder = new TextDecoder();
  let buffer = '';
  let answer = '';

  while (true) {
    const { done, value } = await reader.read();
    if (done) break;
    buffer += decoder.decode(value, { stream: true });
    const chunks = buffer.split('\n\n');
    buffer = chunks.pop() ?? '';

    for (const chunk of chunks) {
      const dataLine = chunk.split('\n')
        .find(l => l.startsWith('data:'));
      if (!dataLine) continue;
      const event = JSON.parse(dataLine.slice(5).trim());

      if (event.type === 'delta') {
        answer += event.content ?? '';
        console.log(event.content);  // 实时输出
      } else if (event.type === 'done') {
        controller.abort();
        return answer;
      } else if (event.type === 'error') {
        throw new Error(event.message);
      }
    }
  }
  return answer;
}

默认大模型设置

可以为会话设置默认模型。设置后,该会话中的提问将默认使用指定模型。

查看会话模型

请求方法:GET

请求路径:/api/v1/sessions/{sessionId}/model

接口说明:查看会话的模型设置信息。

请求示例

curl -s "$BASE/api/v1/sessions/$SID/model" \
  -H "Authorization: Bearer $TOKEN" | jq .

响应说明

返回字段:

字段

类型

说明

sessionId

string

会话 ID。

model

string

会话级别设置的默认模型。

globalDefault

string

全局级别默认模型。

effective

string

实际生效的模型(会话级别优先于全局级别)。

响应示例:

{
  "sessionId": "ses_xxxxx",
  "model": "adb-qwen3.5-plus/qwen3.5-plus",
  "globalDefault": "adb-qwen3.5-plus/qwen3.5-plus",
  "effective": "adb-qwen3.5-plus/qwen3.5-plus"
}

设置会话模型

请求方法:POST

请求路径:/api/v1/sessions/{sessionId}/model

接口说明:为会话设置默认模型。设置后,该会话中的提问将使用指定模型。

请求参数

参数

类型

必填

说明

model

string

是

模型标识符,格式为 provider/modelName。通过 /api/v1/models 获取可用模型列表。

请求示例

curl -s -X POST "$BASE/api/v1/sessions/$SID/model" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"model":"adb-qwen3.5-plus/qwen3.5-plus"}' | jq .

响应说明

响应示例:

{
  "sessionId": "ses_xxxxx",
  "model": "adb-qwen3.5-plus/qwen3.5-plus",
  "message": "Model updated successfully"
}

数据源管理

通过数据源 API 管理数据源配置,包括查询、创建、更新和删除操作。支持的数据源类型:adb_mysql、clickhouse、hologres、starrocks。

说明

建议在 ADBAgent 控制台完成数据源的初始配置后,再通过 API 进行管理操作。

列出所有数据源

请求方法:GET

请求路径:/api/v1/datasources

接口说明:获取所有已配置的数据源列表。

请求示例

curl -s "$BASE/api/v1/datasources" \
  -H "Authorization: Bearer $TOKEN" | jq .

响应说明

返回字段:

字段

类型

说明

data_sources

array

数据源列表。每个元素包含 name、type、enabled、configured、gateway_status、connection 字段。

响应示例:

{
  "data_sources": [
    {
      "name": "adb_mysql_default",
      "type": "adb_mysql",
      "description": "",
      "enabled": true,
      "configured": true,
      "gateway_status": "running",
      "connection": {
        "host": "xxx",
        "port": 3306,
        "user": "xxx",
        "database": "xxx"
      }
    }
  ]
}

获取数据源详情

请求方法:GET

请求路径:/api/v1/datasources/{name}

接口说明:获取指定数据源的详细配置信息,包含连接池配置。

请求示例

curl -s "$BASE/api/v1/datasources/adb_mysql_default" \
  -H "Authorization: Bearer $TOKEN" | jq .

响应说明

响应字段与"列出所有数据源"相同,额外包含 pool 对象(含 init_timeout_ms、query_timeout_ms、max_restart_count)。

列出数据库

请求方法:GET

请求路径:/api/v1/datasources/{name}/databases

接口说明:列出指定数据源中的所有数据库。

请求示例

curl -s "$BASE/api/v1/datasources/adb_mysql_default/databases" \
  -H "Authorization: Bearer $TOKEN" | jq .

响应说明

响应示例:

{
  "databases": ["INFORMATION_SCHEMA", "my_database", "analytics_db"]
}

列出表

请求方法:GET

请求路径:/api/v1/datasources/{name}/{database}/tables

接口说明:列出指定数据源中某个数据库的所有表。

请求示例

curl -s "$BASE/api/v1/datasources/adb_mysql_default/my_database/tables" \
  -H "Authorization: Bearer $TOKEN" | jq .

响应说明

响应示例:

{
  "tables": ["orders", "users", "products"]
}

创建数据源

请求方法:POST

请求路径:/api/v1/datasources

接口说明:创建新的数据源连接配置。

请求参数

参数

类型

必填

说明

name

string

是

数据源名称。

type

string

是

数据源类型。取值:adb_mysql、clickhouse、hologres、starrocks。

connection

object

是

连接配置,包含 host、port、user、password、database。

请求示例

curl -s -X POST "$BASE/api/v1/datasources" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "my_datasource",
    "type": "adb_mysql",
    "connection": {
      "host": "xxx.xxx.xxx.xxx",
      "port": 3306,
      "user": "db_user",
      "password": "db_password",
      "database": "my_database"
    }
  }' | jq .

响应说明

成功时返回创建的数据源对象,结构与"列出所有数据源"中的元素相同。

更新数据源

请求方法:PUT

请求路径:/api/v1/datasources/{name}

接口说明:更新指定数据源的连接配置。

请求示例

curl -s -X PUT "$BASE/api/v1/datasources/my_datasource" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "connection": {
      "host": "new-host.xxx.xxx",
      "port": 3306,
      "user": "new_user",
      "password": "new_password",
      "database": "new_database"
    }
  }' | jq .

响应说明

成功时返回更新后的数据源对象。

删除数据源

请求方法:DELETE

请求路径:/api/v1/datasources/{name}

接口说明:删除指定数据源。该操作不可撤销。

请求示例

curl -s -X DELETE "$BASE/api/v1/datasources/my_datasource" \
  -H "Authorization: Bearer $TOKEN"

响应说明

成功时返回 HTTP 204,无响应体。

技能管理

技能(Skill)是可复用的 AI Agent 指令模板,用于增强模型在特定领域的能力。系统内置了一些技能(如 ADB MySQL 数据库助手),您也可以通过 API 创建和管理自定义技能。

技能名称必须使用 kebab-case 格式(例如 adb-sql-review),不允许使用空格和大写字母。

列出已安装技能

请求方法:GET

请求路径:/api/v1/skills

接口说明:获取已安装的技能列表。

请求参数

参数

类型

必填

说明

includeGlobal

boolean

否

是否包含全局技能。默认值:false。

请求示例

curl -s "$BASE/api/v1/skills?includeGlobal=true" \
  -H "Authorization: Bearer $TOKEN" | jq .

响应说明

返回字段:

字段

类型

说明

name

string

技能名称(kebab-case 格式)。

description

string

技能描述。

scope

string

project(项目级)或 global(全局级)。

builtIn

boolean

是否为内置技能。内置技能不可修改、删除或导出。

permission

string

权限状态:allow(自动允许)、deny(禁用)或 ask(使用前确认)。

响应示例:

{
  "skills": [
    {
      "name": "alibabacloud-analyticdb-mysql-copilot",
      "description": "ADB MySQL 数据库 AI 助手",
      "scope": "project",
      "builtIn": true,
      "permission": "allow"
    }
  ]
}

获取技能详情

请求方法:GET

请求路径:/api/v1/skills/{name}

接口说明:获取指定技能的完整信息,包括 SKILL.md 内容。

请求示例

curl -s "$BASE/api/v1/skills/my-custom-skill" \
  -H "Authorization: Bearer $TOKEN" | jq .

响应说明

响应字段与"列出已安装技能"相同,额外包含 content(SKILL.md 完整内容)和 trigger(触发条件)字段。

创建或更新技能

请求方法:POST

请求路径:/api/v1/skills

接口说明:通过 JSON 请求体创建新技能或更新已有技能。如果同名技能已存在,则更新;否则创建。

请求参数

参数

类型

必填

说明

name

string

是

技能名称,kebab-case 格式(例如 adb-sql-review)。

description

string

否

技能描述。

content

string

是

SKILL.md 的完整 Markdown 内容。

请求示例

curl -s -X POST "$BASE/api/v1/skills" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "adb-sql-review",
    "description": "ADB MySQL SQL 审查技能",
    "content": "# ADB SQL Review\n\n## When to use\n适用于 SQL 性能审查。\n\n## Rules\n1. 检查 SELECT *\n2. 检查缺少 WHERE 子句\n"
  }' | jq .

响应说明

响应示例:

{
  "name": "adb-sql-review",
  "action": "added",
  "path": "/path/.opencode/skills/adb-sql-review/SKILL.md"
}

action 字段值为 added(新建)或 updated(更新)。

设置技能权限

请求方法:PATCH

请求路径:/api/v1/skills/{name}/permission

接口说明:控制技能在 AI 对话中是否自动加载。

请求参数

参数

类型

必填

说明

permission

string

是

权限值:allow(自动允许)、deny(禁用)或 ask(使用前确认)。

请求示例

curl -s -X PATCH "$BASE/api/v1/skills/adb-sql-review/permission" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"permission": "deny"}' | jq .

响应说明

成功时返回更新后的技能对象。

上传 ZIP 安装技能

请求方法:POST

请求路径:/api/v1/skills/upload

接口说明:通过上传 ZIP 文件安装技能。ZIP 包中须包含 SKILL.md 文件,支持两种目录结构:

  • SKILL.md 位于 ZIP 根目录。

  • SKILL.md 位于单个顶层目录下(例如 my-skill/SKILL.md)。

请求示例

curl -s -X POST "$BASE/api/v1/skills/upload" \
  -H "Authorization: Bearer $TOKEN" \
  -F "file=@/tmp/adb-sql-review.zip" | jq .

响应说明

成功时返回安装的技能对象。/api/v1/skills/install 与 /api/v1/skills/upload 功能相同,两个端点均可使用。

导出技能为 ZIP

请求方法:GET

请求路径:/api/v1/skills/{name}/download

接口说明:将已安装的自定义技能下载为 ZIP 文件,用于备份或分享。

请求示例

curl -s -o adb-sql-review.zip \
  "$BASE/api/v1/skills/adb-sql-review/download" \
  -H "Authorization: Bearer $TOKEN"

响应说明

成功时返回 HTTP 200,响应体为 ZIP 文件(application/zip)。

说明

内置技能(builtIn: true)不支持导出,会返回 403 错误。

删除技能

请求方法:DELETE

请求路径:/api/v1/skills/{name}

接口说明:永久删除自定义技能及其所有相关文件。该操作不可撤销。

请求示例

curl -s -X DELETE "$BASE/api/v1/skills/adb-sql-review" \
  -H "Authorization: Bearer $TOKEN"

响应说明

成功时返回 HTTP 204,无响应体。

说明

内置技能(builtIn: true)不支持删除。