通过 IMA 笔记系统管理宝宝的全流程信息,笔记可追加到 IMA 知识库形成结构化档案。
> ⚠️ 使用本技能前必须先完成 IMA 授权。
$gtp = "C:\Program Files\QClaw\resources\openclaw\config\skills\ima\get-token.ps1"
if (-not (Test-Path $gtp)) { Show-MissingImaGuide; exit }
$creds = & $gtp | ConvertFrom-Json
$body = @{ search_type = 0; query_info = @{ title = "init-check" }; start = 0; end = 1 } | ConvertTo-Json -Compress
$utf8 = [System.Text.Encoding]::UTF8.GetBytes($body)
$resp = Invoke-RestMethod -Uri "https://ima.qq.com/openapi/note/v1/search_note_book" `
-Method Post -Headers @{
"ima-openapi-clientid" = $creds.client_id
"ima-openapi-apikey" = $creds.api_key
} -Body $utf8 -ContentType "application/json; charset=utf-8" -TimeoutSec 15
if ($resp.code -eq 20004) { Show-ImaAuthExpiredGuide; exit }
# code=0 → IMA 可用,继续流程
IMA 未安装:
> "婴儿管家依赖 IMA(腾讯智能笔记)来存储和管理宝宝信息,当前尚未配置。
> 请在 QClaw 控制台 → 集成(Integrations) 中找到 IMA,点击授权连接。
> 完成后告诉我「配置好了」,我继续帮您初始化婴儿管家。"
IMA 授权失效:
> "IMA 授权已失效,需要重新授权。
> 请打开 QClaw 控制台 → 集成 → IMA,点击重新授权。
> 完成后告诉我「好了」,我继续。"
| 笔记标题 | 场景 | 参考文件 |
|---|---|---|
| --------- | ------ | --------- |
| 🍼 奶量记录 | 每日喂奶情况 | references/milk.md |
| 💉 疫苗接种 | 疫苗接种史 | references/vaccine.md |
| 😴 睡眠记录 | 每日睡眠情况 | references/sleep.md |
| 🏥 就医记录 | 门诊/住院记录 | references/medical.md |
| 📦 婴儿用品 | 用品采购清单 | references/supplies.md |
| 📋 户口档案 | 宝宝基本信息与证件 | references/profile.md |
| 📸 成长照片 | 照片打卡记录 | references/photos.md |
```
baby_knowledge_base_id:
```
search_knowledge_base 按名称查找 ID| 用户说的关键词 | 路由到 |
|---|---|
| ------------- | ------- |
| 奶、喂奶、奶量、毫升 | references/milk.md |
| 疫苗、打针、接种、预防针 | references/vaccine.md |
| 睡觉、睡眠、入睡、醒来、午睡 | references/sleep.md |
| 看病、就医、医院、发烧、用药、诊断 | references/medical.md |
| 用品、奶瓶、纸尿裤、购买、推车 | references/supplies.md |
| 宝宝信息、户口、出生、身份证、档案 | references/profile.md |
| 照片、相片、成长、打卡 | references/photos.md |
| 知识库、导入、同步、移到知识库 | references/knowledge-base.md |
| 初始化、创建婴儿管家 | → 初始化流程 |
> 核心原则:记录写入笔记后,立即尝试同步到知识库;知识库不存在或同步失败时静默跳过,不影响记录本身。
每次执行以下操作后,自动触发知识库同步:
| 操作 | 说明 |
|---|---|
| ------ | ------ |
| 新建笔记(初始化) | 创建完 7 篇笔记后,批量添加到知识库 |
| 追加记录(append_doc) | 记录追加成功后,将该笔记添加到知识库 |
| 用户明确要求同步 | 用户说"同步到知识库"时执行 |
同步前从 MEMORY.md 读取知识库 ID:
add_knowledge(笔记 → 知识库)# 从 MEMORY.md 读取知识库 ID
$memPath = "C:\Users\admin\.qclaw\workspace\MEMORY.md"
$memContent = Get-Content $memPath -Raw
if ($memContent -match 'baby_knowledge_base_id:\s*(.+)') {
$kbId = $matches[1].Trim()
} else {
$kbId = $null
}
# 若无 KB ID,尝试按名称搜索
if (-not $kbId) {
# 用 search_knowledge_base 接口搜索"明宝成长手册"
# 找到则更新 KB ID 并继续,找不到则退出
}
# 执行同步
$body = @{
media_type = 11
note_info = @{ content_id = $docId }
title = $noteTitle
knowledge_base_id = $kbId
} | ConvertTo-Json -Depth 3
$utf8 = [System.Text.Encoding]::UTF8.GetBytes($body)
$resp = Invoke-RestMethod -Uri "https://ima.qq.com/openapi/wiki/v1/add_knowledge" `
-Method Post -Headers $headers `
-Body $utf8 -ContentType "application/json; charset=utf-8" -TimeoutSec 20
# 错误处理
# - retcode=0:成功,静默
# - retcode=220001(知识重复添加):笔记已在知识库中,正常
# - retcode≠0 且非220001:记录到日志,告知用户
if ($resp.retcode -ne 0 -and $resp.retcode -ne 220001) {
Write-Host "KB_SYNC_FAILED: $($resp.errmsg)"
}
详见 references/knowledge-base.md。
> 仅当 IMA 可用性检查通过后执行。详见 references/init.md。
import_doc 创建> 用户:"我已经创建了一个叫明宝成长手册的知识库,帮我把最新的内容和笔记导入到这个知识库"
执行步骤:
```powershell
$body = @{ query = "明宝成长手册"; cursor = ""; limit = 10 } | ConvertTo-Json -Compress
$utf8 = [System.Text.Encoding]::UTF8.GetBytes($body)
$resp = Invoke-RestMethod -Uri "https://ima.qq.com/openapi/wiki/v1/search_knowledge_base" `
-Method Post -Headers $headers `
-Body $utf8 -ContentType "application/json; charset=utf-8" -TimeoutSec 15
# $resp.data.info_list[0].kb_id → 知识库 ID
```
```powershell
# 用 list_note_by_folder_id 列出所有笔记
$body = @{ folder_id = ""; cursor = ""; limit = 20 } | ConvertTo-Json -Compress
$resp = Invoke-RestMethod -Uri "https://ima.qq.com/openapi/note/v1/list_note_by_folder_id" `
-Method Post -Headers $headers `
-Body $utf8 -ContentType "application/json; charset=utf-8" -TimeoutSec 15
# 筛选出 7 篇婴儿管家笔记,记录其 doc_id
```
```powershell
foreach ($note in $notes) {
$body = @{
media_type = 11
note_info = @{ content_id = $note.docId }
title = $note.title
knowledge_base_id = $kbId
} | ConvertTo-Json -Depth 3
$utf8 = [System.Text.Encoding]::UTF8.GetBytes($body)
Invoke-RestMethod -Uri "https://ima.qq.com/openapi/wiki/v1/add_knowledge" `
-Method Post -Headers $headers `
-Body $utf8 -ContentType "application/json; charset=utf-8" -TimeoutSec 20
}
```
baby_knowledge_base_id--- 分隔线和时间戳共 2 个版本