# IMA OpenAPI 能力边界（2026-07-29 实测）

## 可用接口

| HTTP POST | 用途 | 关键参数 |
|-----------|------|---------|
| `openapi/wiki/v1/get_knowledge_base` | 获取KB信息 | `ids: [kb_id]`（必须数组） |
| `openapi/wiki/v1/get_knowledge_list` | 浏览文件列表 | `knowledge_base_id` + `limit` + `cursor` |
| `openapi/wiki/v1/search_knowledge` | 搜索文件名/标题 | `knowledge_base_id` + `query` + `limit` |
| `openapi/wiki/v1/create_folder` | 创建文件夹 | `knowledge_base_id` + `name` |
| `openapi/note/v1/import_doc` | 创建笔记 | `title` + `content`（需UTF-8校验）⚠️ 路径是 `note/v1` 不是 `v1/note`；返回 `data.note_id`（**不是** `doc_id`） |
| `openapi/wiki/v1/add_knowledge` | 添加到KB | `knowledge_base_id` + `note_info: {content_id}` |

## 不可用的接口

| 需求 | 结果 | 替代方案 |
|------|------|---------|
| 读取文件内容 | ❌ API不存在 | 匹配本地同名文件 → `read_file` |
| 移动文件到文件夹（同KB） | ❌ `move_knowledge` 仅跨KB | 在IMA App/Web UI手动拖入 |
| 下载文件 | ❌ | — |
| 更新文件/重命名 | ❌ | — |

## 文件结构发现

- `get_knowledge_list` 返回字段：`media_id`, `title`, `parent_folder_id`, `tags`, `media_type`
- `media_type: 99` = 文件夹
- 文件夹的 `media_id` 格式：`folder_7488244950257113`
- 文件的 `parent_folder_id` 指向所属文件夹（根目录ID: `7300353326341450`）

## 凭证

- Client ID: `~/.config/ima/client_id`
- API Key: `~/.config/ima/api_key`
- Base URL: `https://ima.qq.com`
- 所有请求: HTTP POST + JSON Body + 两个定制 Header

## 知识库 ID

| 名称 | ID |
|------|-----|
| 宝锐诊断原料销售（管理+技能+业务知识） | `fwEO41E0Ef0CfulmtQHYgYQy_jBsbl6tXE5x6VYLIoA=` |
| 宝锐生命科学销售（管理+技能+行业） | `lofJ7cHGhLIvU_ISjQ0tmdYkgzvfjhvZrfVaoo4s7Jc=` |
