Token导航 LogoToken导航TokenDH.com
研究检索敏感数据clawhub未标认证来源可访问clear审计通过

ima

Agent Skill

ima 用于查找、检索和筛选相关信息,适合在 OpenClaw 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

86,436

周安装

3,675

GitHub Stars

1

下载量

30,282
OpenClaw

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

MIT-0

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:ima(今)
来源仓库:https://github.com/laineyboy/ima
安装命令:
openclaw skills install ima
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install ima

简介

ima 用于管理个人笔记,支持搜索、浏览与内容编辑。

  • 适用于知识库存取与文档整理,支持新建与追加笔记。ima 属于研究检索类 Skill,可作为该场景下的辅助能力补充。
  • 通过“笔记”“记事”等关键词触发,自动识别意图。
  • 建议确认 API 权限及是否同步至外部存储服务。
  • 可结合来源仓库和 README 继续核验接口调用细节。

SKILL.md

name
ima-note
description
|
homepage
https://ima.qq.com
metadata

ima-note

通过 IMA OpenAPI 管理用户个人笔记,支持读取(搜索、列表、获取内容)和写入(新建、追加)。

完整的数据结构和接口参数详见 references/api.md

Setup

  1. 请打开 https://ima.qq.com/agent-interface 获取 Client IDApi Key
  2. 配置环境变量:
export IMA_OPENAPI_CLIENTID="your_client_id"
export IMA_OPENAPI_APIKEY="your_api_key"
建议将上述 export 语句写入 ~/.zshrc~/.bashrc,避免每次重开终端失效。

凭证预检

每次调用 API 前,先确认凭证可用。如果环境变量未设置,停止操作并提示用户按 Setup 步骤配置。

if [ -z "$IMA_OPENAPI_CLIENTID" ] || [ -z "$IMA_OPENAPI_APIKEY" ]; then
  echo "缺少 IMA 凭证,请按 Setup 步骤配置环境变量 IMA_OPENAPI_CLIENTID 和 IMA_OPENAPI_APIKEY"
  exit 1
fi

API 调用模板

所有请求统一为 HTTP POST + JSON Body,Base URL 为 https://ima.qq.com/openapi/note/v1

定义辅助函数避免重复 header:

ima_api() {
  local endpoint="$1" body="$2"
  curl -s -X POST "https://ima.qq.com/openapi/note/v1/$endpoint" \
    -H "ima-openapi-clientid: $IMA_OPENAPI_CLIENTID" \
    -H "ima-openapi-apikey: $IMA_OPENAPI_APIKEY" \
    -H "Content-Type: application/json" \
    -d "$body"
}
隐私规则: 笔记内容属于用户隐私,在群聊场景中只展示标题和摘要,禁止展示笔记正文。

接口决策表

用户意图调用接口关键参数
搜索/查找笔记search_note_bookquery_info(QueryInfo 对象)
查看笔记本列表list_note_folder_by_cursorcursor(必填,首页传"0") + limit(必填)
浏览某笔记本里的笔记,当用户表述"最新"、"最近"之类的通用限定,没有指明笔记本时,都应该直接在全部笔记里去拉list_note_by_folder_idfolder_id(选填,空为全部笔记本) + cursor(必填,首次传"") + limit(必填)
读取笔记正文get_doc_contentdoc_id + target_content_format(必填,推荐0纯文本)
新建一篇笔记import_doccontent + content_format(必填,固定1) + 可选 folder_id
往已有笔记追加内容append_docdoc_id + content + content_format(必填,固定1)

常用工作流

查找并阅读笔记

先搜索获取 docid,再用 get_doc_content 读取正文:

# 1. 按标题搜索
ima_api "search_note_book" '{"search_type": 0, "query_info": {"title": "会议纪要"}, "start": 0, "end": 20}'
# 从返回的 docs[].doc.basic_info.docid 中取目标笔记 ID

# 2. 读取正文(纯文本格式,Markdown 格式目前不支持)
ima_api "get_doc_content" '{"doc_id": "目标docid", "target_content_format": 0}'

浏览笔记本里的笔记

先拉笔记本列表获取 folder_id,再拉该笔记本下的笔记:

# 1. 列出笔记本(首页 cursor 传 "0")
ima_api "list_note_folder_by_cursor" '{"cursor": "0", "limit": 20}'

# 2. 拉取指定笔记本的笔记(首页 cursor 传 "")
ima_api "list_note_by_folder_id" '{"folder_id": "user_list_xxx", "cursor": "", "limit": 20}'

新建笔记

# 新建到默认位置
ima_api "import_doc" '{"content_format": 1, "content": "# 标题\
\
正文内容"}'

# 新建到指定笔记本
ima_api "import_doc" '{"content_format": 1, "content": "# 标题\
\
正文内容", "folder_id": "笔记本ID"}'
# 返回 doc_id,后续可用于 append_doc

追加内容到已有笔记

ima_api "append_doc" '{"doc_id": "笔记ID", "content_format": 1, "content": "\
## 补充内容\
\
追加的文本"}'

按正文搜索

ima_api "search_note_book" '{"search_type": 1, "query_info": {"content": "项目排期"}, "start": 0, "end": 20}'

核心响应字段

搜索结果SearchedDoc):笔记信息路径为 doc.basic_info(DocBasic),关键字段:docidtitlesummaryfolder_idfolder_namecreate_time(Unix 毫秒)、modify_timestatus。额外包含 highlight_info(高亮匹配,key 为 doc_title,value 含 <em>高亮词</em>)。

笔记本条目NoteBookFolder):信息路径为 folder.basic_info(NoteBookFolderBasic),关键字段:folder_idnamenote_numbercreate_timemodify_timefolder_type0=用户自建,1=全部笔记,2=未分类)、status

笔记列表条目NoteBookInfo):信息路径为 basic_info.basic_info(DocBasicInfo → DocBasic),关键字段:docidtitlesummaryfolder_idfolder_namecreate_timemodify_timestatus

写入结果import_doc/append_doc):返回 doc_id(新建或目标笔记的唯一 ID)。

完整字段定义见 references/api.md

分页

  • 游标分页 — 笔记本列表list_note_folder_by_cursor):首次 cursor: "0",后续用 next_cursoris_end=true 时停止。
  • 游标分页 — 笔记列表list_note_by_folder_id):首次 cursor: "",后续用 next_cursoris_end=true 时停止。
  • 偏移量分页search_note_book):首次 start: 0, end: 20,翻页时递增,is_end=true 时停止。

枚举值

  • content_format 0=纯文本,1=Markdown,2=JSON。写入(import_doc/append_doc)目前仅支持 1(Markdown)。读取(get_doc_content)推荐 0(纯文本),Markdown 格式不支持。
  • search_type 0=标题检索(默认),1=正文检索
  • sort_type 0=更新时间(默认),1=创建时间,2=标题,3=大小(仅 search_note_book 使用)
  • folder_type 0=用户自建,1=全部笔记(根目录),2=未分类

注意事项

  • folder_id 不可为 "0",根目录 ID 格式为 user_list_{userid}(从 folder_type=1 的笔记本条目获取)
  • 笔记内容有大小上限,超过时返回 100009,可拆分为多次 append_doc 写入
  • 展示笔记列表时只展示标题、摘要和修改时间,不要主动展示正文
  • 时间字段是 Unix 毫秒时间戳,展示时转为可读格式
  • 返回数据为嵌套结构:搜索结果取 docs[].doc.basic_info.docid,笔记本取 note_book_folders[].folder.basic_info.folder_id,笔记列表取 note_book_list[].basic_info.basic_info.docid,注意按层级解析
  • UTF-8 编码:内容写入前必须确保为 UTF-8 编码。当内容来自临时文件、WebFetch 或外部来源时,按运行环境选择合适的方式转码:

Python(推荐,几乎所有环境都有):

  # 读取文件,自动检测编码并转为 UTF-8
  content=$(python3 -c "
  import sys
  data = open('tmpfile', 'rb').read()
  for enc in ['utf-8', 'gbk', 'gb2312', 'big5', 'latin-1']:
      try:
          sys.stdout.write(data.decode(enc))
          break
      except (UnicodeDecodeError, LookupError):
          continue
  " 2>/dev/null)

  # 如果内容已在变量中,清洗非法 UTF-8 字节
  content=$(printf '%s' "$content" | python3 -c "import sys; sys.stdout.write(sys.stdin.buffer.read().decode('utf-8','ignore'))")

Node.js:

  content=$(node -e "const fs=require('fs');const buf=fs.readFileSync('tmpfile');process.stdout.write(buf.toString('utf8'))")
  # 已知编码(如 GBK):
  content=$(node -e "const fs=require('fs');process.stdout.write(new TextDecoder('gbk').decode(fs.readFileSync('tmpfile')))")

Unix (macOS/Linux):

  content=$(iconv -f "$(file -b --mime-encoding tmpfile)" -t UTF-8 tmpfile 2>/dev/null || cat tmpfile)

Windows PowerShell:

  # 读取非 UTF-8 文件并转码
  $content = [System.IO.File]::ReadAllText('tmpfile', [System.Text.Encoding]::Default)
  [System.IO.File]::WriteAllText('tmpfile.utf8', $content, [System.Text.Encoding]::UTF8)

> PowerShell 5.1 发送请求注意事项: > Invoke-RestMethod 传入字符串 Body 时,默认使用系统 ANSI 编码(中文 Windows 为 GBK),而非 UTF-8,即使设置了 Content-Type: charset=utf-8 也无效。必须显式转为 UTF-8 字节数组再传入 -Body,同时使用 ConvertTo-Json 构建 JSON 以避免手动拼接的转义风险: > > ``powershell > $body = @{ title = "标题"; content = $content; content_format = 1 } | ConvertTo-Json -Depth 10 > $utf8Bytes = [System.Text.Encoding]::UTF8.GetBytes($body) > Invoke-RestMethod -Uri $url -Method Post -Body $utf8Bytes -ContentType "application/json; charset=utf-8" -Headers $headers > `` > > PowerShell 7+ 默认使用 UTF-8,无需额外处理。

标题同理,确保传入 API 的所有字符串字段均为合法 UTF-8。

错误处理

错误码含义建议处理
0成功
100001参数错误检查请求参数格式和必填字段
100002无效 ID检查凭证配置
100003服务器内部错误等待后重试
100004size 不合法 / 空间不够检查参数范围
100005无权限确认操作的是用户自己的笔记
100006笔记已删除告知用户该笔记不存在
100008版本冲突重新获取内容后再操作
100009超过大小限制拆分为多次 append_doc 写入
310001笔记本不存在检查 folder_id 是否正确
20002apiKey超过最大限频
20004apikey 鉴权失败检查凭证配置是否正确
110037apikey 过期请获取最新apikey:https://ima.qq.com/agent-interface

适合场景

01

OpenClaw 用户查找和安装 Skill 时

02

用户想查找某类 Agent Skill 时

03

需要根据任务场景推荐可安装能力包时

04

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

OpenClaw

96.01%
按下载量换算29,074

安全审计

VirusTotal

通过

ClawScan

通过

Static analysis

通过

权限和风险

敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills