Install
openclaw skills install wiki-compiler腾讯 IMA 知识库 Wiki 编译——将原始资料系统化组织为结构清晰的 Wiki 知识体系。当用户说"建知识库""整理资料库""编译知识库""搭建wiki""知识体系化""把资料整理成wiki",或上传了一批资料希望系统化组织时触发。不适用于单篇摘要、简单问答、或仅搜索已有知识库内容的场景。
openclaw skills install wiki-compiler核心理念:用 LLM 作为"知识编译器",将原始资料一次性编译为结构清晰、内部互联的 Wiki 知识库,而非依赖传统 RAG 的碎片检索拼凑。编译后的 Wiki 是"真理之源"——LLM 直接基于对 Wiki 整体结构的理解进行自检索和回答,知识在系统中持续累积和演化。
判断用户状态:
明确知识库边界:
收集原始资料("源代码"):
get_knowledge_list 逐级浏览并收集所有文件search(source="web") 补充关键资料,但需告知用户确认门: 向用户展示收集到的资料清单和知识库边界,确认后再进入编译。
这是核心步骤。LLM 读取所有原始资料,输出一个结构化的知识体系。
阅读所有原始资料后,先规划知识体系骨架:
文件夹设计原则:
确认门: 向用户展示 Wiki 结构规划(文件夹树 + 每个文件夹的定位说明),确认后再创建。
在目标知识库中创建文件夹结构(create_folder),然后将原始资料分类归入(move_knowledge)。
对每个主题文件夹,编译一篇导览笔记作为"知识枢纽":
导览笔记是 Markdown 格式的笔记,包含:
1. 用编号列表,不用 Markdown 表格
文章标题中常含 | 字符(如"实务 | 审计抽样实操总结"),| 在 Markdown 表格中是列分隔符,会导致表格解析错乱。使用编号列表可彻底避免此问题:
## 文章导览
1. **中注协提示规范内控审计程序** — 中注协提示规范内控程序、提升上市公司内控质量
2. **审计抽样实操总结** — 实务、抽样实操总结
3. **详解穿行测试、控制测试** — 穿行测试、控制测试、截止性测试
2. 标题中的特殊字符处理
在导览笔记正文中引用文章标题时:
| 替换为全角 | 或直接省略(如 "实务|审计抽样实操总结")[ ] _ *)也需注意转义3. 内容必须基于知识库实际文件
导览笔记的文章列表必须从 get_knowledge_list 返回的实际文件生成,不能依赖本地缓存文件——本地文件可能已被其他任务覆盖或过时。
如何获取知识库文件的可链接 URL:
对每个需要引用的文件,调用 export_media_for_ima_sandbox 接口:
curl -s -X POST "https://ima.qq.com/openapi/wiki/v1/export_media_for_ima_sandbox" \
-H "ima-openapi-clientid: $IMA_OPENAPI_CLIENTID" \
-H "ima-openapi-apikey: $IMA_OPENAPI_APIKEY" \
-H "Content-Type: application/json" \
-d '{"media_id": "<文件media_id>"}'
返回的 data.media_content_url_info.url 即为该文件的可链接 URL。
在笔记正文中用 Markdown 超链接格式嵌入:
1. **[文章标题](https://url-from-export-api)** — 关键词摘要
编译质量标准:
生成导览笔记内容后,按以下流程写入:
写入方式选择:
| 内容规模 | 推荐方式 | 原因 |
|---|---|---|
| < 3KB(绝大多数导览笔记) | import_doc + curl -d @filepath | 跳过 COS 中间环节,直接 JSON 请求体写入,最可靠 |
| ≥ 3KB(超长导览) | file_write → ima_cos_util 上传 → push_note + content_cos_key | 长内容需 COS 中转 |
具体步骤(< 3KB,常用):
file_write 将导览笔记保存为 .md 文件file_write 将 API 请求体保存为 .json 文件(内容通过 cat 读取 .md 文件填入 content 字段)curl -d @filepath 调用 import_doc 创建笔记export_note 导出笔记内容,比对是否与原始内容一致add_knowledge 将笔记添加到对应知识库文件夹为什么不用
push_note+content_cos_key?实战中发现 COS 上传路径对内容格式敏感,可能导致笔记创建后被系统自动删除(export_note返回 "doc is delete")。import_doc直接写入更可靠,且对于 < 3KB 的内容完全够用。
验证是必选步骤——未验证的笔记可能在知识库中显示为空内容或被自动清理,用户无法察觉。
编译完成后,向用户交付:
知识库需要"活"起来,而非一次性建好就搁置。
当用户说"检查知识库""知识库体检"时:
当用户说"补充知识库""更新知识库"时:
用户可基于 Wiki 生成各类产出(研究报告、总结、幻灯片大纲等),这些产出保存回知识库后,实现知识的"增量训练"——系统持续演化,而非一次性消耗。
用户: "我收集了一批IT审计的资料,帮我建一个知识库wiki"
步骤 1: 浏览用户上传的资料 / 指定知识库的内容,了解资料覆盖面
步骤 2: 规划 Wiki 结构(如:审计实务方法 | 审计准则与法规 | IT审计实操 | 案例库 | ...)
步骤 3: 用户确认结构后,创建文件夹并分类移入文件
步骤 4: 用 get_knowledge_list 获取每个文件夹的实际文件列表
步骤 5: 为核心主题编译导览笔记(编号列表格式,不用表格),获取文件可链接 URL
步骤 6: import_doc 写入笔记 → export_note 验证内容完整性 → add_knowledge 添加到文件夹
步骤 7: 交付结构概览和概念索引
用户: "帮我检查一下IT审计知识库,看看有没有问题"
步骤 1: 逐级浏览知识库结构,统计每个文件夹的文件数
步骤 2: 识别问题:空文件夹、可能错分的文件、缺失的重要主题
步骤 3: 生成健康检查报告
步骤 4: 用户确认后执行修复(移动文件、补充内容等)