Files
openclaw-skills/ima-skill/references/knowledge-base-api.md
T
2026-03-31 21:04:10 +08:00

20 KiB
Raw Blame History

IMA知识库 API

⚠️ 必读约束

🌐 服务信息

  • **Base URL **:https://ima.qq.com
  • Base Path:/openapi/wiki/v1
  • 协议:HTTP POST,JSON body
  • 完整示例:POST https://ima.qq.com/openapi/wiki/v1/get_knowledge_base

🔒 认证

所有请求必须携带 Header:

Header 说明
ima-openapi-clientid Client ID
ima-openapi-apikey API Key
Content-Type application/json

快速决策

用户意图 接口
「上传文件到知识库」 check_repeated_names → create_media → COS Upload → add_knowledge
「上传文件到指定文件夹」 先定位文件夹 → 同上(传入 folder_id)
「添加网页/微信文章到知识库」 import_urls
「获取知识库信息」 get_knowledge_base
「浏览知识库内容 / 浏览文件夹」 get_knowledge_list(可传 folder_id 进入子文件夹)
「在知识库中搜索」 search_knowledge
「搜索知识库列表」 search_knowledge_base
「获取可添加的知识库列表」 get_addable_knowledge_base_list
「检查文件名是否重复」 check_repeated_names

数据结构

KnowledgeBaseInfo(知识库信息)

字段 类型 说明
id string 知识库唯一 ID
name string 知识库名称
cover_url string 封面图 URL
description string 描述
recommended_questions string[] 推荐问题列表

KnowledgeInfo(知识条目)

字段 类型 说明
media_id string 媒体 ID
title string 标题
parent_folder_id string 所属文件夹 ID

FolderInfo(文件夹条目)

字段 类型 说明
folder_id string 文件夹 ID
name string 文件夹名称
file_number int64 文件数
folder_number int64 子文件夹数
parent_folder_id string 父文件夹 ID
is_top bool 是否置顶

AddableKnowledgeBaseInfo(可添加的知识库信息)

字段 类型 说明
id string 知识库 ID
name string 知识库名称

SearchedKnowledgeBaseInfo(搜索到的知识库信息)

字段 类型 说明
id string 知识库 ID
name string 知识库名称
cover_url string 封面图 URL

SearchedKnowledgeInfo(搜索到的知识条目)

字段 类型 说明
media_id string 媒体 ID
title string 标题
parent_folder_id string 所属文件夹 ID
highlight_content string 高亮内容(内容匹配时返回)

ContentInfo(内容信息)

字段 类型 说明
content_id string 内容 ID(网页时为 URL)

ImportURLData(URL 导入结果)

字段 类型 说明
url string 导入的 URL
ret_code int32 0=成功,非 0=失败
media_id string 导入成功后返回的媒体 ID

FileInfo(文件信息)

add_knowledge 文件上传时使用:

字段 类型 说明
cos_key string COS 对象 Key
file_size uint64 文件大小(字节)
last_modify_time int64 最后修改时间(秒级时间戳)
password string 文件密码(如有)
file_name string 文件名称

Credential(COS 上传凭证)

create_media 返回,用于上传文件到腾讯云 COS:

字段 类型 说明
token string 临时 TOKEN
secret_id string 临时 Secret ID
secret_key string 临时 Secret Key
start_time int64 凭证开始时间(秒级时间戳)
expired_time int64 凭证过期时间(秒级时间戳)
appid string COS AppID
bucket_name string COS 桶名称
region string COS 桶所在区域
custom_domain string 自定义域名
cos_key string COS 对象 Key

MediaType(媒体类型枚举)

值 名称 content_type / 说明
1 PDF application/pdf
2 网页 N/A(直接 AddKnowledge,web_info.content_id=<url>)
3 Word application/msword / application/vnd.openxmlformats-officedocument.wordprocessingml.document
4 PPT application/vnd.ms-powerpoint / application/vnd.openxmlformats-officedocument.presentationml.presentation
5 Excel application/vnd.ms-excel / application/vnd.openxmlformats-officedocument.spreadsheetml.sheet / text/csv
6 微信公众号文章 N/A(直接 AddKnowledge,web_info.content_id=<url>,URL 匹配 mp.weixin.qq.com/s)
7 MarkDown text/markdown / text/x-markdown / application/md / application/markdown
9 图片 image/png, image/jpeg, image/webp
11 笔记 N/A(直接 AddKnowledge,note_info.content_id=<doc_id>)
12 AI会话 N/A(直接 AddKnowledge,session_info.content_id=<session_id>)
13 TXT text/plain
14 Xmind application/x-xmind / application/vnd.xmind.workbook / application/zip
15 录音 audio/mpeg(mp3), audio/x-m4a(m4a), audio/wav(wav), audio/aac(aac)
16 视频解析 不支持通过 skill 添加。Bilibili/YouTube/本地HTML等仅支持在 ima 桌面端内添加进知识库

接口详情

1. 创建媒体

POST /openapi/wiki/v1/create_media

触发场景:上传文件到知识库的第一步,获取 COS 上传凭证。

请求参数

字段 类型 必填 说明
file_name string 是 文件名称(最长 1024 字符)
file_size uint64 是 文件大小(字节)
content_type string 是 MIME 类型
knowledge_base_id string 是 知识库 ID
file_ext string 是 文件后缀名(无点号,如 pdf)

返回字段

字段 类型 说明
media_id string 媒体 ID
cos_credential Credential COS 上传凭证

2. 添加知识

POST /openapi/wiki/v1/add_knowledge

触发场景:上传文件到知识库的最后一步,或直接添加网页 URL。

请求参数

字段 类型 必填 说明
media_type int32 是 媒体类型
media_id string 否 文件上传时必填,CreateMedia 返回的 ID
title string 是 标题
knowledge_base_id string 是 知识库 ID
folder_id string 否 文件夹 ID(省略则添加到根目录)
note_info ContentInfo 否 笔记内容信息
web_info ContentInfo 否 网页内容信息(media_type=2 时必填)
web_info.content_id string 条件必填 网页 URL(media_type=2 时必填)
session_info ContentInfo 否 会话内容信息
file_info FileInfo 否 文件信息(文件上传时必填,见 FileInfo)

返回字段

字段 类型 说明
media_id string 媒体 ID

3. 获取知识库信息

POST /openapi/wiki/v1/get_knowledge_base

请求参数

字段 类型 必填 说明
ids string[] 是 知识库 ID 列表(1-20 个,不重复)

返回字段

字段 类型 说明
infos map<string, KnowledgeBaseInfo> 知识库信息映射

4. 浏览知识库内容

POST /openapi/wiki/v1/get_knowledge_list

请求参数

字段 类型 必填 说明
cursor string 是 游标,首次传空字符串
limit uint64 是 数量限制(1-50)
knowledge_base_id string 是 知识库 ID
folder_id string 否 文件夹 ID(省略则列出根目录)

返回字段

字段 类型 说明
knowledge_list KnowledgeInfo[] 知识条目列表
is_end bool 是否到达列表末尾
next_cursor string 下页游标
current_path FolderInfo[] 当前路径

5. 搜索知识库内容

POST /openapi/wiki/v1/search_knowledge

请求参数

字段 类型 必填 说明
query string 是 搜索关键词
cursor string 是 游标,首次传空字符串
knowledge_base_id string 是 知识库 ID

返回字段

字段 类型 说明
info_list SearchedKnowledgeInfo[] 搜索结果(media_id, title, parent_folder_id, highlight_content)
is_end bool 是否到达列表末尾
next_cursor string 下页游标

6. 搜索知识库列表

POST /openapi/wiki/v1/search_knowledge_base

请求参数

字段 类型 必填 说明
query string 是 搜索关键词
cursor string 是 游标,首次传空字符串
limit uint64 是 数量限制(1-50)

返回字段

字段 类型 说明
info_list SearchedKnowledgeBaseInfo[] 搜索结果(id, name, cover_url)
is_end bool 是否到达列表末尾
next_cursor string 下页游标

7. 获取可添加的知识库列表

POST /openapi/wiki/v1/get_addable_knowledge_base_list

触发场景:用户想上传文件或添加内容到知识库,但不确定可以添加到哪些知识库时,列出当前用户有权限添加内容的知识库。

请求参数

字段 类型 必填 说明
cursor string 是 游标,首次传空字符串
limit uint64 是 数量限制(1-50)

返回字段

字段 类型 说明
addable_knowledge_base_list AddableKnowledgeBaseInfo[] 可添加内容的知识库列表
next_cursor string 下页游标
is_end bool 是否到达列表末尾

8. 检查文件名重复

POST /openapi/wiki/v1/check_repeated_names

触发场景:上传文件到知识库前,检查目标知识库(及文件夹)中是否已存在同名文件。仅用于文件类型(media_type 1/3/4/5/7/9/13/14),不用于网页(2/6)、笔记(11)等。

请求参数

字段 类型 必填 说明
params CheckRepeatedNamesParam[] 是 待检查的文件列表(1-2000 个)
knowledge_base_id string 是 知识库 ID
folder_id string 否 文件夹 ID(省略则检查根目录)

CheckRepeatedNamesParam:

字段 类型 说明
name string 文件名称
media_type int32 媒体类型(见 MediaType 枚举)

返回字段

字段 类型 说明
results CheckRepeatedNamesResult[] 检查结果

CheckRepeatedNamesResult:

字段 类型 说明
name string 文件名称
is_repeated bool true 表示同名文件已存在

9. 导入 URL

POST /openapi/wiki/v1/import_urls

触发场景:添加网页或微信公众号文章到知识库。替代 add_knowledge 的 media_type=2/6 用法,支持批量导入,服务端自动识别 URL 类型。

请求参数

字段 类型 必填 说明
knowledge_base_id string 是 知识库 ID
folder_id string 是 文件夹 ID
urls string[] 是 URL 列表(1-10 个,每个非空字符串)

返回字段

字段 类型 说明
results map<string, ImportURLData> URL→结果映射(含 ret_code、media_id)

文件夹说明

知识库内容以文件夹层级结构组织。文件夹是一种特殊的知识条目:

  • get_knowledge_list 返回结果中同时包含 文件(KnowledgeInfo)和 文件夹(FolderInfo),通过 current_path 字段可获取当前路径的面包屑信息
  • search_knowledge 搜索结果中也会包含匹配的文件夹
  • 所有支持 folder_id 参数的接口(add_knowledge、import_urls、get_knowledge_list、check_repeated_names),省略 folder_id 则操作根目录。根目录的 folder_id 等于 knowledge_base_id,当接口要求 folder_id 必填时(如 import_urls),传 knowledge_base_id 的值即可表示根目录
  • 定位文件夹:当用户只提供文件夹名称时,使用 search_knowledge 按名称搜索,或用 get_knowledge_list 逐级浏览,从返回结果中找到目标文件夹的 ID

文件大小限制

上传前必须校验文件大小,超限文件应在上传前拦截:

文件类型 media_type 最大大小
Excel、TXT、Xmind、Markdown 5/13/14/7 10 MB
图片 9 30 MB
PDF、Word、PPT、音频及其他 1/3/4/15 等 200 MB

网页(2/6)、笔记(11)等非文件类型无大小限制。音频文件额外限制:最长 2 小时。


响应格式

所有 API 返回统一结构:

{
  "retcode": 0,
  "errmsg": "成功",
  "data": { ... }
}
  • retcode=0:成功,从 data 提取业务字段
  • retcode≠0:失败,直接将 errmsg 展示给用户,无需自行翻译错误码

游标翻页使用规范

  1. 首次请求:cursor 传空字符串 ""
  2. 检查返回的 is_end:false 表示还有更多数据
  3. 将返回的 next_cursor 作为下次请求的 cursor
  4. is_end = true 时停止翻页

错误码

错误码 说明 建议处理
0 成功 —
110001 参数非法 检查请求参数(详见 errmsg)
110002 配置非法 检查服务配置
110010 下游网络错误 可重试
110011 下游逻辑错误 不可重试,详见 errmsg
110012 接口无效 检查接口路径
110013 客户端取消 检查请求是否超时
110020 安全打击 检查内容是否违规
110021 请求频控 降低请求频率后重试
110030 无权限 确认操作权限