Install
openclaw skills install @cookfish1979/ima-wiki腾讯 IMA Wiki 编译——将原始资料系统化组织为结构清晰的Wiki知识体系,并支持标签体系管理与按文件夹层级结构归类。当用户说"建知识库""整理资料库""编译知识库""搭建wiki""知识体系化""把资料整理成wiki""给知识库打标签""按标签分类""标签整理""按文件夹归类""整理散落文件"时触发。不适用于单篇摘要、简单问答、或仅搜索已有知识库内容的场景。
openclaw skills install @cookfish1979/ima-wiki** 技能版本**:v1.0.0 | 最后更新:2026-09-28 | 上一版:N/A(基于 wiki-compiler v5.0.2 重命名而来) 核心理念:基于 Karpathy 的 LLM Wiki 模式 —— "Human curates, LLM maintains" 三大操作:Ingest(摄取)/ Lint(健康检查)/ Schema(契约) IMA 平台依赖:需配置
IMA_OPENAPI_CLIENTID和IMA_OPENAPI_APIKEY环境变量。获取方式:访问 https://ima.qq.com/agent-interface
用户:"建一个关于 XXX 的知识库" → Ingest(完整流水线)
用户:"导入这个网页" / "上传这个 PDF" → Ingest(自动级联)
用户:"按文件夹归类" / "整理散落文件" → Ingest 前置(Folder Pre-Ingest)
用户:"检查知识库" / "健康检查" → Lint(4 类标准检查)
用户:"更新导览" / "导览新增了 N 篇文章" → Ingest(增量模式)
用户:"给知识库打标签" / "审查标签" → Ingest 子任务(Schema 辅助)
| 操作 | 职责 | 触发词 | 详见 |
|---|---|---|---|
| Ingest(摄取) | 资料入库,编译/更新导览,级联多个相关导览 | "建知识库""导入网页""上传文件""更新导览" | ingest.md |
| Lint(健康检查) | 4 类标准检查:结构/矛盾/孤立/过期 | "检查知识库""健康检查" | lint.md |
| Schema(契约) | 强制 frontmatter 规范(自动应用) | (无需用户触发) | schema.md |
Query(查询)由 IMA search/fetch 完成,不归本 skill 管。
eslint)"Human curates, LLM maintains" — 人类决定收录什么,LLM 维护导览
Collect(收集) → Check(检查) → Link(链接特性) → Compile(编译) → Write(写入) → Cascade(级联)
↓ ↓ ↓ ↓ ↓ ↓
阶段 1.1 阶段 1.2 阶段 1.3 阶段 1.4 阶段 1.5 阶段 1.6
| 子任务 | 核心动作 | API |
|---|---|---|
| Collect | 上传文件 / 导入网页 / 拉取已有 | upload_file, import_urls, get_knowledge_list |
| Check | 搜索旧导览 | search_note(标题="主题导览") |
| Link | 获取链接特性表 | export_media_for_ima_sandbox |
| Compile | 新建/增量更新 | LLM 5 步法或 6 步法 |
| Write | 创建/追加/编辑笔记 | import_doc, append_doc, update_note |
| Cascade | append_doc 追加新章节(知识复利) | append_doc |
一次 Ingest 可能触动多个导览(不仅是新文件所在的那个)
v1.1.0 新方式:用 append_doc 在原笔记末尾追加新章节,不创建新笔记。frontmatter 保持不变(IMA 限制),但用户看到的是单篇导览持续丰富,更符合直觉。
新文件被上传
↓
计算与每个现有导览的相关性(标签 Jaccard + 文件夹归属 + 标题关键词)
↓
相关度 > 0.5 的导览 → 加入"待更新列表"
↓
用户确认(必选)
↓
对每个候选导览:
1. export_note 读当前内容(COS URL 二次下载)
2. LLM 生成"## 📌 新增 [日期]"章节
3. append_doc 追加到原笔记末尾
示例:上传"遗传算法在量化交易中的应用" → 1 个导览笔记末尾追加新章节。
| 检查 | 触发频率 | 检查内容 |
|---|---|---|
| 结构 | 每周 | 散落文件、空文件夹、文件错放 |
| 矛盾 | 每月 | 不同导览对同一概念说法冲突 |
| 孤立 | 每月 | 导览未被任何文件引用 |
| 过期 | 每月 | 低 confidence + 长期未更新 |
outputs/lint-YYYY-MM-DD.md —— 包含总体评分、4 类检查详情、修复建议。
---
title: 📖 主题导览:[主题名称]
type: guide
confidence: high | medium | low
created: YYYY-MM-DD
updated: YYYY-MM-DD
version: 1.0
changelog:
- v1.0: 初始版本
sources:
- [《文章1》](URL)
related_guides:
- [《另一导览》](URL)
---
| 字段 | Karpathy 对应 | 作用 |
|---|---|---|
confidence | LLM 把握度 | 让用户知道哪些导览可信 |
sources[] | 资料溯源 | 每个论断追到 raw(防止幻觉) |
related_guides[] | [[wikilinks]] | 网状结构而非树状 |
changelog[] | git log | 审计追踪 |
version | 语义化版本 | 变更管理 |
| 操作 | 风险 | 保护 |
|---|---|---|
delete_note | ❌ API 不支持 | 客户端手动 |
tag_delete | 关联自动解除 | 列影响文件→用户确认 |
tag_rename | 重名自动合并 | 检查新名→用户确认 |
move_knowledge | 标签可能清空 | 备份标签→移动后恢复 |
| 功能 | 端点 |
|---|---|
| 上传文件 | openapi/wiki/v1/upload_file |
| 导入网页 | openapi/wiki/v1/import_urls |
| 创建文件夹 | openapi/wiki/v1/create_folder |
| 移动文件 | openapi/wiki/v1/move_knowledge |
| 重命名 | openapi/wiki/v1/rename_knowledge |
| 添加标签 | openapi/wiki/v1/tag_add |
| 列出知识库 | openapi/wiki/v1/get_knowledge_list |
| 获取媒体信息 | openapi/wiki/v1/get_media_info |
| 创建笔记 | openapi/note/v1/import_doc |
| 追加笔记 | openapi/note/v1/append_doc |
| 导出笔记 | openapi/note/v1/export_note |
| 搜索笔记 | openapi/note/v1/search_note |
| 按 block 编辑 | openapi/note/v1/update_note |
| ❌ API 不支持 |
详见 references/api-reference.md 和 references/troubleshooting.md
export_note 返回 content_url(3 小时时效),需二次下载ima-wiki v1.1.2 的所有 HTTP/HTTPS 调用均指向腾讯 IMA 平台官方 API 端点:
| 域名 | 用途 | 数据类型 |
|---|---|---|
https://ima.qq.com | IMA OpenAPI(所有 wiki/v1/* 和 note/v1/* 端点) | 结构化 JSON |
https://ima.qq.com/openapi/* 返回的 content_url | COS 链接,二次下载用户自己的笔记内容 | Markdown 文本 |
https://ima.qq.com/agent-interface | 文档链接(不下载) | URL |
https://github.com/cookfish/ima-wiki | 仓库地址(不下载) | URL |
ima-wiki 绝不做以下行为:
| 行为 | 状态 |
|---|---|
| 下载并执行远程脚本 | ❌ 零使用 |
调用 eval() / exec() / subprocess / os.system() / popen() | ❌ 零使用 |
运行 npm install / pip install / brew install / apt install | ❌ 零使用 |
调用任意非 ima.qq.com 的第三方 URL | ❌ 零使用 |
| 下载 npm 包 / Python wheel / 二进制可执行文件 | ❌ 零使用 |
| 执行从 IMA 下载的任何内容 | ❌ 仅作为 Markdown 文本处理 |
所有从 IMA 下载的内容仅作为 Markdown 文本处理:
IMA OpenAPI 响应(JSON):
COS 二次下载(Markdown):
[腾讯 IMA 平台]
↓
API 返回结构化 JSON(无代码)
↓
[ima-wiki skill]
↓ 解析为 Markdown 文本
↓ 作为 LLM 输入或直接构造导览
↓
[无中间文件落地,直接通过 IMA API 写入]
IMA_OPENAPI_CLIENTID 和 IMA_OPENAPI_APIKEY 由用户配置ima-wiki 不会绕过代码审查,也不会引入恶意代码。skill specter 的警告是基于通用假设——任何 HTTP 下载都有风险——但 ima-wiki 的所有 HTTP 调用都明确指向腾讯 IMA 官方端点,下载内容仅作为 Markdown 文本处理,从不执行。
详见 references/security.md 第 8 节 — 网络调用白名单详细说明。
问题:通用扫描器标记 references/security.md 中的过时工作流,因含可疑的命令模式被误判。
问题实质:
处理:
保留:
问题:通用 skill 扫描器(如 skill specter)警告"远程代码下载执行",但 ima-wiki 实际不下载任何代码。
处理:
ima.qq.com实际行为:
ima.qq.com(腾讯 IMA 官方 API)eval()/exec()/subprocess/npm install/pip installima.qq.com 第三方 URL审计清单:
grep -roE "https?://[a-zA-Z0-9./_-]+" ima-wiki/ → 仅 ima.qq.com + github.com
grep -rE "eval|exec|subprocess|os\.system" ima-wiki/ → 无输出
grep -rE "npm install|pip install" ima-wiki/ → 无输出
P0 强化(核心写作规范):
confidence 评估标准明确化(schema.md)
关键要素 4 必含维度(guide-template.md)
实践建议可执行性强化
P2 新增:
保留:
核心变化:
append_doc 原地追加正文被 v1.2.0 移除:
API 调用变化:
import_doc + append_doc → v1.1.0 export_note + append_doc保留:
基于 wiki-compiler v5.0.2 重命名而来:
wiki-compiler → ima-wiki(旧 slug 保留作为历史版本)wiki-compiler → ima-wikiwiki-compiler/ → ima-wiki/保留原 wiki-compiler slug 的目的:
架构重组:
Schema 强制化:
Ingest 增强:
Lint 强化:
outputs/lint-YYYY-MM-DD.md触发词保持 11 个不变
复杂度反思:
delete_note 安全删除流程已失效ima-wiki/
├── SKILL.md ← 本文件(操作手册)
└── references/
├── reference.md ← references/ 索引
├── ingest.md ← 🆕 Ingest 完整操作 + 级联算法
├── lint.md ← 🆕 Lint 4 类标准检查
├── schema.md ← 🆕 强制 frontmatter 契约
├── folder-organization.md ← Ingest 前置:文件夹整理
├── tagging.md ← Ingest 子任务:标签管理
├── security.md ← 破坏性操作保护
├── api-reference.md ← API 速查
├── guide-template.md ← 笔记撰写规范(含新 frontmatter)
├── versioning.md ← 版本控制
├── write-and-verify.md ← 写入与验证
├── link-handling.md ← 链接处理
├── troubleshooting.md ← 故障排查
└── cases/
└── quantitative-investing.md ← 实战案例
⚠️ IMA 平台注意:IMA 平台会周期性向
/sandbox/workspace/skills/<skill>/添加软链接<skill> -> /root/.skills/<skill>/,可能导致打包时混入旧版本。打包前务必用find ... -type l检查并清理。 详见 references/troubleshooting.md 第 10 节。 节。