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-entity或append-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: 图谱本体定义模板。