酷斗斗:在 Agent 里统一调用 IMA 笔记与知识库

前言

在 Cursor、Claude Code 等环境里,用户常说「帮我把这份 PDF 放进资料库」「搜一下笔记里有没有上次会议纪要」「记一下这段话」。若没有成体系的 Skill,Agent 要么无法对接腾讯 IMA,要么在「笔记写入」和「知识库上传」之间路由错误。酷斗斗是 SkillHub 上的社区 Skill(坐标 @user_034dd33d/ludouxi159),把 IMA OpenAPI 的笔记与知识库能力收进一套 SKILL.md 工作流,由 Agent 按意图选子模块并调用封装脚本。

这是什么

酷斗斗在 SkillHub 展示名称为「酷斗斗」,包内 Skill 标识为 ima-skill,版本 1.0.0(社区来源 community,分类 knowledge-management)。官方一句话简介是「这是我的外脑」;完整说明写明:统一的 IMA OpenAPI 技能,支持笔记管理和知识库操作。关联产品主页为 https://ima.qq.com。

发布者为 user_034dd33d。SkillHub 页面统计(截至资料抓取):评分 100000,下载 930 次;标签 requires_api_key=false 指 SkillHub 安装本身不要求商店 API Key,不等于无需 IMA 凭证——实际调用仍须配置 IMA OpenAPI 的 Client ID 与 API Key。

核心功能

下面只列 Skill 文档中已写明的能力划分。

笔记(notes 子模块)

  • 读取:按标题或正文搜索(search_note)、列出笔记本(list_notebook)、列出笔记(list_note)、获取正文(get_doc_content)。
  • 写入:新建笔记(import_doc)、向已有笔记追加(append_doc)。
  • 规则:写入前字符串须为合法 UTF-8;append_doc 会修改已有笔记,目标不明确时要先向用户确认;笔记正文不支持本地图片路径,仅保留 http(s) 图片链接。

知识库(knowledge-base 子模块)

  • 上传文件到知识库:check_repeated_names → create_media → COS 上传 → add_knowledge(含 preflight-check.cjs、cos-upload.cjs 辅助脚本)。
  • 导入网页/微信文章:import_urls。
  • 将笔记关联到知识库:add_knowledge(media_type=11)。
  • 浏览与检索:知识库列表/搜索(search_knowledge_base、get_knowledge_list、search_knowledge 等)、获取媒体信息(get_media_info)。
  • 限制:不支持视频、Bilibili/YouTube 链接、file:// 等;不支持的类型应直接拒绝,不要建议「强行试传」。

路由与跨模块

主 SKILL.md 提供「模块决策表」:操作笔记内容走 notes;上传文件、加链接、把笔记挂到知识库走 knowledge-base。若用户意图同时涉及两边(例如「把知识库里的内容记到笔记」),须先读两个子模块文档再按顺序调用。所有 HTTP 请求经 ./ima_api.cjs 发往 https://ima.qq.com;文件上传还会使用 IMA 返回的临时 COS 凭证(*.myqcloud.com)。

运行时依赖见包内 meta.json:Node.js ≥ 18.0.0(用于 .cjs 脚本与 JSON 处理)。

安装与启用

1、安装 SkillHub CLI(若尚未安装)

command -v skillhub && skillhub --version

未安装时可按 SkillHub 官方说明执行(完整安装示例):

curl -fsSL https://skillhub-1388575217.cos.ap-guangzhou.myqcloud.com/install/install.sh | bash

2、安装酷斗斗到当前 Agent 的 skills 目录

安装时必须用 --dir 指向 Agent 实际识别的 skills 路径,否则默认落在 ./skills/ 可能不会被加载。

skillhub install ludouxi159 --namespace user_034dd33d --dir <你的 skills 目录>

常见路径(来自 SkillHub 安装文档):

  • Cursor:~/.cursor/skills/
  • Claude Code:~/.claude/skills/
  • Codex:~/.codex/skills/ 或项目下的 .agents/skills/

SkillHub 页面亦提示:可根据 https://skillhub.cn/install/skillhub.md 安装 @user_034dd33d/ludouxi159。安装后按所用客户端要求重启或刷新 Agent。

3、配置 IMA OpenAPI 凭证

在调用任何接口前,到 https://ima.qq.com/agent-interface 获取 Client ID 与 API Key,任选一种方式保存。

方式 A(配置文件,Skill 文档推荐):

mkdir -p ~/.config/ima
echo "your_client_id" > ~/.config/ima/client_id
echo "your_api_key" > ~/.config/ima/api_key

方式 B(环境变量):

export IMA_OPENAPI_CLIENTID="your_client_id"
export IMA_OPENAPI_APIKEY="your_api_key"

Agent 按「环境变量 → 配置文件」顺序读取;缺失时 node ima_api.cjs ... 会以错误码 -100 退出并在 stderr 给出说明。凭证仅作为请求头发往 ima.qq.com,Skill 安全说明中写明不会写入日志或发往其他域名。

典型用法

下列示例摘自 Skill 自带的笔记子模块文档;实际执行时需将 ima_api 替换为包目录下的 node ima_api.cjs 调用方式(主 SKILL.md 中有带 OPTS 的完整 bash 模板)。

搜索并阅读笔记:

# 1. 按标题搜索
ima_api "openapi/note/v1/search_note" '{"search_type": 0, "query_info": {"title": "会议纪要"}, "start": 0, "end": 20}'

# 2. 读取正文(target_content_format: 0 为纯文本)
ima_api "openapi/note/v1/get_doc_content" '{"note_id": "目标note_id", "target_content_format": 0}'

新建笔记:

ima_api "openapi/note/v1/import_doc" '{"content_format": 1, "content": "# 标题\n\n正文内容"}'

上传文件到知识库(概念流程): 先对本地文件运行 knowledge-base/scripts/preflight-check.cjs 做类型检查,再 check_repeated_names → create_media → cos-upload.cjs → add_knowledge;title 必须与原始 file_name(含扩展名)一致。大文件上传可为 cos-upload.cjs 显式设置更长 --timeout。

用户在对话中的自然语言触发范围(Skill 描述原文):提到知识库、资料库、笔记、备忘录、上传文件、网页收藏、知识搜索,或「帮我记一下」「搜一下知识库里有没有 XX」等意图时,应启用本 Skill。

适用场景与注意

适合谁: 已在使用腾讯 IMA 存资料与个人笔记,并希望 Cursor / Claude Code / Codex 等 Agent 通过 OpenAPI 完成搜索、读写、上传,而不是手动打开客户端操作的用户。

需要注意:

  1. 凭证与合规:须自行申请并保管 IMA OpenAPI 密钥;群聊场景下笔记正文属隐私,Skill 要求只展示标题与摘要。
  2. 编码与环境:Windows PowerShell 5.1 向 API 发 JSON 时可能静默转码导致中文乱码,Skill 要求检测版本并用 UTF-8 字节数组发 Body;笔记写入前必须校验 UTF-8。
  3. 版本与更新:ima_api.cjs 内置每日首次调用的更新检查;返回 -200 时表示需先按指引更新 Skill 再重试原请求。包内 meta.json 记录的脚本元数据版本可能与 SkillHub 展示的 1.0.0 并存,以安装后的文件为准。
  4. 能力边界:视频、部分外链、本地图片插入笔记等场景需改用 IMA 桌面端或调整内容形式。

结尾

酷斗斗把 IMA 的笔记与知识库 API 收敛成可安装的 Agent Skill:安装到正确的 skills 目录、配置 IMA 凭证后,Agent 可按文档中的决策表路由请求,并用 ima_api.cjs 与辅助脚本完成常见读写与上传流程。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜