IMA OpenAPI 统一接口
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_5958866b/test00qwb。
技能介绍
要解决的问题
当 agent 需要通过 IMA 的开放接口处理文本与文件时,容易把“笔记”和“知识库”混在一起:用户说“把内容记到知识库里”,真实动作可能是 append_doc;用户说“把笔记添加到知识库”,又需要先取 note_id 再 add_knowledge。更隐蔽的是编码问题:PowerShell 5.1 可能把请求体静默转成 GBK,导致中文乱码;notes 写入前如果 content、title 不是合法 UTF-8,也可能产生不可逆脏数据。
技能如何工作
- 模块路由:先根据意图选择
notes或knowledge-base;涉及“查看原文”“把笔记加入知识库”等跨模块任务时,要求先读取两个子模块再继续。 - 凭证与调用:优先读取
~/.config/ima/client_id和api_key,再统一 POST JSON 到https://ima.qq.com,具体封装在ima_api.cjs。 - 错误处理:同时检查脚本层
stderr的-100/-200与业务层stdout的code != 0,分别对应程序错误、技能更新与后端业务失败。 - 写入安全:notes 文本写入前校验 UTF-8;文件上传保持原始文件名与二进制内容,不转码、不重命名。
适用边界
适合做笔记检索、创建、追加,以及知识库文件上传、链接添加、媒体信息获取。不适合直接处理视频、Bilibili/YouTube URL 或 file:// 资源;遇到这些请求应提示使用 IMA 桌面端。若用户意图不明确,例如只说“帮我记一下”,应先确认是创建新笔记还是追加已有笔记。
使用场景
- 处理用户把网页摘要记成笔记的请求:先路由到 notes,调用 import_doc 创建正文与标题。
- 用户要求把本地 PDF 上传到知识库:调用 knowledge-base 的 create_media 与 add_knowledge 保持文件名。
- 需要查看知识库条目的原文:通过 get_media_info 获取 media_id,再按 media_type 决定是否读 notes 内容。
- 在 PowerShell 5.1 环境中发起 IMA API 请求:先检测版本,再把请求体转 UTF-8 字节数组避免乱码。
适合人员
- 需要把分散笔记和知识库条目整理成可检索内容的知识管理员。
- 调用 IMA 开放接口封装自动化流程的后端工程师。
- 在 Agent 工作流中路由 notes 与 knowledge-base 任务的 LLM 应用开发者。
- 处理中文编码与 PowerShell 请求体异常的客户端集成工程师。