GB-Power-Market-JJ knowledge-precipitation

install
source · Clone the upstream repo
git clone https://github.com/GeorgeDoors888/GB-Power-Market-JJ
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/GeorgeDoors888/GB-Power-Market-JJ "$T" && mkdir -p ~/.claude/skills && cp -r "$T/openclaw-skills/skills/binhuatochina/knowledge-precipitation" ~/.claude/skills/georgedoors888-gb-power-market-jj-knowledge-precipitation && rm -rf "$T"
OpenClaw · Install into ~/.openclaw/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/GeorgeDoors888/GB-Power-Market-JJ "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/openclaw-skills/skills/binhuatochina/knowledge-precipitation" ~/.openclaw/skills/georgedoors888-gb-power-market-jj-knowledge-precipitation && rm -rf "$T"
manifest: openclaw-skills/skills/binhuatochina/knowledge-precipitation/SKILL.md
source content

KAPE — 知识自动沉淀引擎 v0.1.3

安全说明

本 skill 需要以下工具权限:

  • exec
    :获取 Get笔记 API 数据(只读 HTTPS 请求)
  • feishu_wiki
    feishu_doc
    :写入飞书文档
  • sessions_list
    sessions_history
    :读取对话记录

不会执行任何本地文件写入之外的 shell 命令,所有外部 API 调用均为只读请求。

凭证配置

Get笔记 API 凭证存储在

openclaw.json
中:

{
  "skills": {
    "entries": {
      "getnote": {
        "apiKey": "<从配置文件读取,勿硬编码>",
        "env": {
          "GETNOTE_CLIENT_ID": "<从配置文件读取>"
        }
      }
    }
  }
}

飞书机器人需已加入知识库成员,否则

feishu_wiki(spaces)
返回空。

共享文件夹配置

飞书文档统一存放在共享文件夹「牛管家日志」,确保张公子有删除权限。

配置项
文件夹名称牛管家日志
文件夹 token
FQfXfYBGGllxxydJ1SgcJZWqnpf
文件夹 URLhttps://qcnu4qzh46f0.feishu.cn/drive/folder/FQfXfYBGGllxxydJ1SgcJZWqnpf
张公子权限full_access(可删除文档)

核心工作流

每天自动生成日志简报,三端同步归档。

第一步:确定日期范围

  • 目标日期:昨天
  • 获取方式:使用
    session_status
    工具获取当前日期,向前减1天作为目标日期
  • 日期格式
    YYYY-MM-DD
    (用于字符串前缀匹配)

第二步:获取数据(并行)

Get笔记读取

  1. 调用 Get笔记 API:

    GET https://openapi.biji.com/open/api/v1/resource/note/list?since_id=0
    Headers:
      Authorization: {从 openclaw.json 读取的 apiKey}
      X-Client-ID: {从 openclaw.json 读取的 GETNOTE_CLIENT_ID}
    
  2. int64 ID 修复(必须执行):response 中的

    id
    note_id
    next_cursor
    parent_id
    需做字符串化处理,防止 JSON 解析溢出:

    text = re.sub(r'"(id|note_id|next_cursor|parent_id)"\s*:\s*(\d{16,})',
                  lambda m: f'"{m.group(1)}":"{m.group(2)}"', text)
    
  3. 筛选

    created_at.startswith(target_date)
    的笔记

  4. 注意:优先读取录音笔记(

    recorder_audio
    )和网页剪藏(
    plain_text
    from web),这些通常含 AI 整理的完整内容

对话记录获取

  1. sessions_list
    获取所有 session(设置足够的
    activeMinutes
    覆盖目标日期)
  2. 判断 session 在目标日期有活动的条件:
    updatedAt
    >= 目标日期开始时间 AND
    updatedAt
    < 今日开始时间
  3. sessions_history
    读取符合条件的 session 内容(
    includeTools=false
  4. 解析用户消息(
    role: user
    )作为对话记录

词汇存档(若有)

  • 容错读取:用
    exec
    +
    cat
    读取
    workspace/vocabulary/{target_date}.md
    ,若文件不存在或读取失败则跳过,不阻断流程
  • 统计当日新增单词数量(如有)

⚠️ 路径处理规范:所有从

memory_search
sessions_list
等工具返回的路径,返回格式可能为 Markdown 链接(如
[2026-04-05.md](http://...
)或纯路径。传给
read
工具前,必须先去除 Markdown 链接格式,只提取纯路径部分(去掉
[text](url)
包装,保留
text
部分作为文件路径)。

第三步:深度分析与整理

⚠️ 数据获取优先级:Get笔记是对话记录的主要来源,session 对话记录是辅助参考。无论 Get笔记调用成功与否,都要继续执行后续步骤,不要因为某项数据缺失而中断流程。

用户行为分析

  • 从 Get笔记的
    tags
    title
    source
    推断用户关注领域
  • 从录音笔记数量和总时长推断学习深度
  • 从内容关键词判断核心主题

张公子画像维度(供参考):

维度观察点
学习风格主动深度 vs 被动浏览
知识关联是否跨领域建立联系
方法论倾向重底层原理 vs 碎片技巧
时间感知是否主动管理精力/时间
决策态度务实程度、换方法频率

生成日志简报结构(见 references/briefing-template.md)

第四步:写入本地文件

必须先确保目录存在

mkdir -p /Users/openclawer/.openclaw/workspace/日志管理

文件路径

/Users/openclawer/.openclaw/workspace/日志管理/{target_date}-日志简报.md

第五步:三端同步归档

① Get笔记必须写入完整简报全文,不得简写):

POST https://openapi.biji.com/open/api/v1/resource/note/save
Headers:
  Authorization: {从配置文件读取}
  X-Client-ID: {从配置文件读取}
Body:
  title: "日志简报 {target_date} | {姓名}"
  content: 【必须写入完整简报全文】,包含所有章节、分析、统计数据,不得写入摘要或简短版本
  note_type: "plain_text"
  tags: ["AI整理", "日志简报"]

⚠️ 重要:Get笔记的

content
字段必须包含日志简报的完整正文(与写入本地文件和飞书文档的内容完全一致),不得以"详见链接"为由缩减内容。

② 飞书知识库

  1. 先用
    feishu_wiki(action=spaces)
    确认知识库存在且机器人有权限
  2. feishu_wiki(action=nodes, space_id=个人知识库space_id)
    获取根目录
  3. feishu_wiki(action=create, space_id=..., parent_node_token=..., obj_type=docx)
    创建节点
  4. feishu_doc(action=write, doc_token=新文档token, content=简报内容)
    写入

③ 飞书文档(主归档通道): 0. 先获取

tenant_access_token

curl -X POST 'https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal' \
  -H 'Content-Type: application/json' \
  -d '{"app_id":"cli_a94b4a1e43781cc7","app_secret":"{从 openclaw.json 读取 appSecret}"}'
  1. exec
    +
    curl
    在共享文件夹中创建文档(需指定
    folder_token
    ):
    curl -X POST 'https://open.feishu.cn/open-apis/docx/v1/documents' \
      -H 'Authorization: Bearer {tenant_access_token}' \
      -H 'Content-Type: application/json' \
      -d '{"title":"日志简报 {target_date} | 张公子","folder_token":"FQfXfYBGGllxxydJ1SgcJZWqnpf"}'
    
  2. feishu_doc(action=write, doc_token=..., content=...)
    写入简报内容
  3. 赋予张公子
    full_access
    权限(确保可删除):
    curl -X POST 'https://open.feishu.cn/open-apis/drive/v1/permissions/{doc_token}/members?type=docx' \
      -H 'Authorization: Bearer {tenant_access_token}' \
      -H 'Content-Type: application/json' \
      -d '{"member_type":"openid","member_id":"ou_d8ace8a146610ca26bc07d8e68a5620f","perm":"full_access"}'
    
  4. 将文档 URL 记录到反馈消息中

⚠️ 注意:飞书知识库操作需要机器人已加入知识库成员。如果

feishu_wiki(spaces)
返回空,说明权限不足。

第六步:用户反馈

向用户发送完成通知,包含:

  • 下载 Get笔记 数量(分类统计:录音/播客/纯文本等)
  • 参考对话记录数量
  • 简报核心发现摘要(1-3句话)
  • 各端存储结果链接

错误处理原则

  1. 任何一步失败不影响其他步骤:三端归档是独立的,写入本地文件是最基本的保障
  2. 明确告知用户失败原因:如果某个平台失败,需要在反馈中说明
  3. 不要静默失败:如果关键步骤(如获取数据)失败,必须通知用户