mcpbeat

Im Wiki Extractor

cafe3310/im-wiki-extractor

将超长群聊日志转化为结构化知识图谱。采用滑动窗口增量提取,规避上下文限制,并确保实体与关系的沉淀与溯源

9k tokens
context cost
the whole folder, loaded on every use
6
files
ships runnable scripts
0
copies elsewhere
how many repositories repackaged it
249
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/cafe3310/public-agent-skills --skill im-wiki-extractor

The instruction itself

8 sections, as written by the author

Agent Skill: im-wiki-extractor (群聊知识图谱提取器)

1. 概述 (Overview)

本技能旨在将非结构化的聊天记录(如群聊历史)转化为存储在 memories-off Agent Skill 生成的仓库中的结构化知识图谱。

它强调「逐渐增量」的处理方式,通过 100 行一个的「滑动窗口」来处理超长日志,从而规避模型上下文限制。

该技能通过动态注入工具的 help 信息来确保子代理生成 100% 正确的 CLI 指令。

外部依赖与规范说明

本 Skill 依赖 memories-off 库进行实体管理与长期记忆。在执行任何任务前,您必须先查阅并完整遵循当前目录下的 memories-off-declare.md 声明文档,以获取其定义的实体类型规范及封装的子过程操作细节。

2. 提取定义 (Schema)

提取任务应遵循用户给出的实体和关系规范。

templates/meta.md 中包含了一个示例定义,定义了实体的类型(Member, Opinion, Info 等)及其关系谓语(Propose, Discuss 等)。

用户可以根据实际需求进行调整。

3. 工作流阶段 (Workflow Phases)

第一阶段:准备与访谈

  • 确认范围: 询问语料位置及目标知识库目录。
  • Schema 确认: 引导用户确认 templates/meta.md
  • 目标定义: 确认 templates/prompt_template.md

第二阶段:空间初始化

  • 初始化 memories-off 仓库: 在用户指定的地方创建知识目录并执行 memocli init
  • 配置元数据: 用 cp 命令将 templates/meta.md 的内容写入知识库的 meta.md;或根据用户之前的输入动态生成 meta.md
  • 复制语料: 在 memocli init 创建的知识库中创建 chat_res 子目录,用于存储规范化后的原始语料;然后将原始日志复制到 chat_res,按顺序重命名为 YYYY-MM-DD_NNN_orig_name.md
  • 任务分解与状态追踪: 运行 python scripts/setup_workspace.py path_to_chat_res TASK_YYYY-MM-DD.md。该脚本会扫描语料并生成带有行号分片(100行)和前序上下文(50行)的 TASK 文件。

第三阶段:增量提取循环 (断点续传)

针对 TASK 文件中定义的每个未完成分片([ ]):

  • 自动定位: 启动任务时,直接定位到 TASK 文件中第一个 [ ] 状态的分片开始处理。
  • 生成提示词: 运行 python scripts/generate_prompt.py ...。该脚本现在会动态注入支持「组合操作」的 memocli 语法(如在追加内容的同时建立关系)。
  • 执行提取子任务 (原子化操作):
  • 组合指令优先: 优先使用 append-update --add-rel-out 等组合指令,减少工具调用次数。
  • 路径自动探测: 默认在知识库根目录执行,无需显式传入 --path
  • 失败处理: 若执行中断,直接在下一次尝试时重新处理该分片。
  • 记录与提交:
  • 检查 TASK 文件,确认分片状态已更新为 [x]
  • 标准化提交: 执行 memocli commit -r "processed chunk [ID]"。该命令会自动触发全库审计并生成标准的 Git 提交信息。
  • 检查并继续: 进入下一个分片。

4. 执行原则 (Execution Principles)

  • 命名规范 (Identity): 实体名即文件名。严禁添加类型前缀。
  • 组合语义 (Combined Ops): 充分利用 memocli--add-rel-out/in 参数。在 create-entityappend-update 时同步完成关系建模,提升提取效率。
  • 动态语法核验: generate_prompt.py 会实时调用 memocli --help 以确保子代理使用的语法与当前环境安装的版本 100% 匹配。
  • 最小化探测:
  • 识别到实体后直接 create-entity,通过 || true 忽略已存在错误。
  • 严禁冗余的 ls 或全局 search
  • 溯源强制: 所有的 append-update 必须包含 filename:line_range

5. 资源清单 (Resources)

脚本 (Scripts)

  • scripts/setup_workspace.py: 初始化分片任务清单。
  • scripts/generate_prompt.py: 动态组装包含权威 CLI 语法的子代理提示词。

模板 (Templates)

  • templates/prompt_template.md: 核心任务模板,包含元数据和工具操作占位符。
  • templates/meta.md: 图谱本体定义模板。

How to use it

Copy the folder

Take cafe3310/im-wiki-extractor from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.