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

ami阿米

Agent Skill

ami 用于补充效率相关能力,适合在 OpenClaw 中需要让 Agent 承接效率相关任务时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

3,288

周安装

137

GitHub Stars

公开资料未说明

下载量

1,096
OpenClaw

安装说明

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

GitHub

来源数

2

许可证

MIT-0

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

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

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

命令行安装

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

ClawHubOpenClaw
openclaw skills install ami

简介

ami 用于补充效率相关能力,适合在 OpenClaw 中需要让 Agent 承接效率相关任务时使用。

  • 支持笔记管理和知识库操作,适用于上传文件、添加网页、搜索内容等场景。
  • 通过 clawhub 安装并使用 openclaw skills install ami 命令调用。
  • 安装前建议确认权限范围和维护状态,注意可能触发联网或知识库 API 调用。
  • 可结合 GitHub 仓库和原始 README 文档进一步核验触发词和功能细节。

SKILL.md

name
ima-skill
description
|
homepage
https://ima.qq.com
metadata
openclaw
emoji
🔧
requires
{ env: ['IMA_OPENAPI_CLIENTID', 'IMA_OPENAPI_APIKEY'] }
primaryEnv
IMA_OPENAPI_CLIENTID
security
credentials_usage
|
allowed_domains

ima-skill

Unified IMA OpenAPI skill. Currently supports: notes, knowledge-base.

Setup

Security note: This skill authenticates with the official IMA API (ima.qq.com) — the same service the user already uses. Credentials are only sent as HTTP headers to ima.qq.com and never to any other domain, file, or log.
  1. 打开 https://ima.qq.com/agent-interface 获取 Client IDAPI Key
  2. 存储凭证(二选一):

方式 A — 配置文件(推荐):

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 会按优先级依次尝试:环境变量 → 配置文件。

凭证预检

每次调用 API 前,先确认凭证可用。如果两个值都为空,停止操作并提示用户按 Setup 步骤配置。

# Load user-provisioned IMA credentials (used ONLY for ima.qq.com API authentication)
IMA_CLIENT_ID="${IMA_OPENAPI_CLIENTID:-$(cat ~/.config/ima/client_id 2>/dev/null)}"
IMA_API_KEY="${IMA_OPENAPI_APIKEY:-$(cat ~/.config/ima/api_key 2>/dev/null)}"
if [ -z "$IMA_CLIENT_ID" ] || [ -z "$IMA_API_KEY" ]; then
  echo "缺少 IMA 凭证,请按 Setup 步骤配置 Client ID 和 API Key"
  exit 1
fi

API 调用模板

所有请求统一为 HTTP POST + JSON Body,仅发往官方 Base URL https://ima.qq.com

定义辅助函数避免重复 header — 每个模块传入完整路径:

# All requests go ONLY to the official IMA API (ima.qq.com)
ima_api() {
  local path="$1" body="$2"
  curl -s -X POST "https://ima.qq.com/$path" \
    -H "ima-openapi-clientid: $IMA_CLIENT_ID" \
    -H "ima-openapi-apikey: $IMA_API_KEY" \
    -H "Content-Type: application/json" \
    -d "$body"
}
Note: All IMA OpenAPI endpoints currently use HTTP POST. If a future module requires a different method, ima_api() must be extended to accept a method parameter.

模块决策表

用户意图模块读取
搜索笔记、浏览笔记本、获取笔记内容、创建笔记、追加内容notesnotes/SKILL.md
上传文件、添加网页链接、搜索知识库、浏览知识库内容、获取知识库信息、获取可添加的知识库列表knowledge-baseknowledge-base/SKILL.md

⚠️ 易混淆场景

以下场景容易误判模块,需特别注意:

用户说的实际意图正确路由
"把这段内容添加到知识库XX里的笔记YY"往已有笔记追加内容notes — 先搜索笔记获取 doc_id,再用 append_doc
"把这个写到XX笔记里"、"记到XX笔记"往已有笔记追加内容notesappend_doc
"把这篇笔记添加到知识库"将笔记关联到知识库knowledge-baseadd_knowledge with media_type=11
"上传文件到知识库"上传文件到知识库knowledge-basecreate_media → COS → add_knowledge
"新建一篇笔记记录这些内容"创建新笔记notesimport_doc
"帮我记一下"、"记录一下"、"保存为笔记"(未指定已有笔记)意图不明确,需要确认notes — 先询问用户是创建新笔记还是追加到哪篇已有笔记,再决定接口
"添加到笔记里"(未指定具体哪篇)意图不明确,需要确认notes — 先询问用户是创建新笔记还是追加到哪篇已有笔记,再决定接口
"把知识库里的XX内容记到笔记"先从知识库读取,再写入笔记多模块 — knowledge-base 搜索/读取 → notes 创建/追加

核心判断规则

  • 目标是笔记的内容(读、写、追加)→ notes 模块
  • 目标是知识库的条目(上传文件、添加链接、关联笔记到知识库)→ knowledge-base 模块
  • 用户提到"知识库"只是在描述笔记的位置(如"知识库里的那篇笔记"),真正操作对象仍是笔记 → notes 模块
多模块任务:当用户意图涉及多个模块时(如"从知识库搜索内容并记到笔记"),按意图顺序依次读取对应的模块文档并逐步执行。先完成前一个模块的操作,再进入下一个模块。

注意事项

  • UTF-8 编码(仅 notes 模块):见下方「⚠️ UTF-8 编码强制要求」章节。notes 模块的所有写入操作前必须完成 UTF-8 编码校验,否则会导致内容乱码且无法修复。
  • 文件上传保持原样(knowledge-base 模块):当用户要求上传文件到知识库时,必须保持文件原始内容不变,不得进行任何编码转换。文件以二进制方式上传,服务端会自行处理编码。擅自转码可能破坏文件内容(如 PDF、图片、Excel 等非文本文件,或用户有意使用特定编码的文本文件)。
  • PowerShell 5.1 环境(所有模块):见下方「⚠️ PowerShell 5.1 环境检测」章节。此问题影响所有 API 调用(notes、knowledge-base 等),PowerShell 5.1 会静默将请求 Body 转为 GBK 编码导致乱码。

⚠️ UTF-8 编码强制要求(CRITICAL — 仅适用于 notes 模块)

此规则为强制性要求,不可跳过。 非法编码会导致内容在 IMA 中显示为乱码,且无法修复,必须重新写入。 适用范围:notes 模块import_docappend_doc 等文本写入 API)。 不适用于 knowledge-base 模块的文件上传:上传文件时必须保持文件原始内容,不得转码。文件以二进制方式上传,服务端自行处理。

每次调用 notes 写入类 API(import_doc/append_doc)之前,必须对 contenttitle 等所有字符串字段执行 UTF-8 编码校验/转换。 无论内容来源如何——用户直接输入、从文件读取、WebFetch 抓取、剪贴板粘贴、外部 API 返回——都不能假设已经是合法 UTF-8,必须显式确认。

强制检查清单(notes 模块写入前)

在构造 notes 写入请求的 body 之前,完成以下步骤:

  1. 来自文件的内容:先检测文件编码,转为 UTF-8 后再读入变量(注意:这是指读取文件内容作为笔记正文写入,不是上传文件到知识库)
  2. 来自 WebFetch / HTTP 请求的内容:响应可能为 GBK/Latin-1 等,必须转码
  3. 来自用户输入或变量拼接的内容:清洗非法 UTF-8 字节(\ÿ\þ 等)
  4. 标题字段同理title 也必须为合法 UTF-8

各环境转码方法

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 环境检测(CRITICAL — 适用于所有模块)

此问题影响所有 API 调用(notes、knowledge-base 等) 此问题极其隐蔽:PowerShell 5.1 下 Invoke-RestMethod 会静默将请求 Body 从 UTF-8 转为系统 ANSI 编码(中文 Windows 为 GBK),即使设置了 Content-Type: charset=utf-8 也无效。结果是请求看起来发送成功,但服务端收到的内容已经是乱码,且无任何错误提示。

当 agent 运行在 PowerShell 环境时,必须在首次 API 调用前检测版本:

# 检测 PowerShell 版本 — 在任何 API 调用之前执行(notes 和 knowledge-base 都需要)
if ($PSVersionTable.PSVersion.Major -le 5) {
    Write-Host "⚠️ 检测到 PowerShell 5.1,将使用 UTF-8 字节数组模式发送请求"
    $useUtf8Bytes = $true
} else {
    Write-Host "✅ PowerShell 7+,默认 UTF-8,无需额外处理"
    $useUtf8Bytes = $false
}

PowerShell 5.1 下必须使用以下方式发送请求(用 ConvertTo-Json 构建 JSON 以避免手动拼接的转义风险,再显式转为 UTF-8 字节数组):

# PowerShell 5.1 安全请求模板(适用于所有模块的所有 API 调用)
$body = @{ title = "标题"; content = $content; content_format = 1 } | ConvertTo-Json -Depth 10
if ($useUtf8Bytes) {
    # CRITICAL: 必须转为字节数组,否则中文/非ASCII内容会变成乱码
    $utf8Bytes = [System.Text.Encoding]::UTF8.GetBytes($body)
    Invoke-RestMethod -Uri $url -Method Post -Body $utf8Bytes -ContentType "application/json; charset=utf-8" -Headers $headers
} else {
    # PowerShell 7+ 可直接传字符串
    Invoke-RestMethod -Uri $url -Method Post -Body $body -ContentType "application/json; charset=utf-8" -Headers $headers
}
总结: 在 PowerShell 5.1 环境中,所有 API 调用(无论 notes 还是 knowledge-base)都必须将 Body 显式转为 UTF-8 字节数组。不检测版本直接发请求 = 中文内容必乱码。这是 PowerShell 5.1 的已知设计缺陷,不是 bug 可以被修复。

适合场景

01

OpenClaw 用户查找和安装 Skill 时

02

用户想查找某类 Agent Skill 时

03

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

04

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

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

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

能力 4

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

能力 5

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

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

平台分布

OpenClaw

79.2%
按下载量换算868

安全审计

VirusTotal

通过

ClawScan

通过

Static analysis

通过

权限和风险

敏感数据

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

安装前确认

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

来源信息

继续浏览同类 Skills