Install
openclaw skills install @myd2002/ingest-documentIngest a single document, uploaded file, meeting note, experiment record, or chat-provided material into a personal or team knowledge base, including summaries, source archiving, duplicate checks, and project/person aggregation updates.
openclaw skills install @myd2002/ingest-document把用户日常发来的单个资料入库到个人知识库、团队知识库,或用户明确要求时双写两个库。
支持类型:
Activate when:
Do NOT activate when:
batch_compilequery_kbeval_repoinit_workspace先调用:
python3 scripts/ingest_one.py \
--sender_id <SenderId> \
--chat_type <ChatType> \
--chat_id <GroupSubject> \
--message_sid <MessageSid> \
--message "<用户消息>" \
[--type_hint meeting]
规则:
SenderId。GroupSubject 查 chat_bindings.json。SenderId 必须是绑定团队成员。interactive_card 发送飞书互动卡片;按钮值 ingest_target:personal/team/both 先交给 resolve_target_action.py,再按返回的 explicit_target 再次调用 ingest_one.py。text_extractors.py,纯文本直接写临时 txt。render_summary_template.py 获取该资料类型的结构模板;把返回 JSON 里的 rules、quality_checklist、must_capture_fields 和 markdown_template 一起交给 MiniMax,让它严格按模板生成 Markdown 草稿,写到 /tmp/paperkb/draft_summary.md。check_duplicate.py 返回的 interactive_card。按钮值 duplicate:overwrite/save_new/cancel 交给 resolve_duplicate_action.py 转成保存策略。save_document.py 保存 summary。save_page.py。update_project_people.py 更新项目与人物聚合页。生成草稿前调用:
python3 scripts/render_summary_template.py \
--type_key <paper|survey|project|doc|experiment|meeting|codebase|note> \
--title "<标题>" \
--project_id <project_id> \
--source_id "<source_id>" \
--source_path "<source_path>" \
--source_url "<source_url>" \
--source_commit "<source_commit>" \
--save_to /tmp/paperkb/summary_template.json
MiniMax 生成时必须遵守:
各类型重点记录:
paper:研究问题、任务边界、核心贡献、方法流程、数据/指标/基线、主结果、消融、失败案例、局限、团队可复用点。survey:调研范围、资料来源可信度、分类框架、关键结论与证据、主要玩家/方案、趋势、机会、风险、信息缺口。project:目标场景、功能边界、架构、依赖、许可证、安装运行、测试复现、成熟度、安全隐私风险、团队改造成本。doc:适用版本、前置条件、核心概念、步骤/API/命令/配置、示例、约束、排错、项目关系。experiment:目标、假设、成功标准、变量和对照、环境、代码 commit、数据/模型、结果、异常、结论、产物、下一步行动。meeting:时间、参会人、议题、讨论分歧、决定、行动项、风险阻塞、开放问题、项目页更新建议。codebase:仓库目标、入口、目录结构、核心模块、数据流/调用链、环境配置、外部服务、运行测试、复现风险、改造建议。note:产生背景、触发材料、核心想法、依据、假设、不确定点、关联知识、可执行下一步、待验证问题。保存前先查重:
python3 scripts/check_duplicate.py --owner <owner> --repo <repo> \
--title "<标题>" --source_id "<source_id>" --source_path "<source_path>"
确定重复时询问是否覆盖;疑似重复时询问是否继续保存。
python3 scripts/save_document.py \
--owner <kb_owner> --repo <kb_repo> \
--title "<标题>" \
--summary_file /tmp/paperkb/draft_summary.md \
--type_key meeting \
--brief "<一句话简介>" \
--keywords "关键词1,关键词2" \
--scope team \
--team_id <team_id> \
--project_id general \
--people "张三,李四" \
--source_file_path "<本地原始文件路径>"
--source_file_path 会把原始文档归档到 source_files/。
群聊入库时,把 SenderId 记录为操作者,把 GroupSubject 记录为来源群,把 MessageSid 记录为消息来源。
python3 scripts/update_project_people.py \
--owner <team_kb_owner> --repo <team_kb_repo> \
--project_id <project_id> \
--title "<资料标题>" \
--doc_path "<save_document 返回 path>" \
--people "张三,李四" \
--timeline "<时间线事件>" \
--decisions "<达成决定>" \
--open_questions "<未解决问题>"
回复必须说明:
所有链接都来自脚本返回的 Gitea URL。
ingest_one.py:解析私聊/群聊目标知识库chat_context.py:解析 OpenClaw 群聊上下文和群绑定resolve_target_action.py:解析入库目标选择卡片按钮render_summary_template.py:输出不同资料类型的结构化 summary 模板summary_templates.py:维护资料类型模板和生成规则check_duplicate.py:单条入库查重resolve_duplicate_action.py:解析重复资料处理卡片按钮save_document.py:保存 summary 和原始文件save_page.py:保存概念/资源/人物等聚合页update_project_people.py:更新团队项目和人物聚合页cards.py:生成飞书互动卡片 payload