mcpField
M
memory-ingest

memory-ingest

github.com/basicmachines-co生产力23541 次安装28 周前更新
代码仓库

关于 memory-ingest

memory-ingest 是将原始文本整理为 Basic Memory 结构化笔记的技能,适用于处理会议记录、邮件、文档和对话日志。它会提取实体与行动项、检索已有记录,并在创建新实体前征求批准。

主要功能

  1. 01解析原始文本结构
  2. 02提取人物、组织、主题和行动项
  3. 03搜索已有实体并建立关联
  4. 04保留来源文本并添加结构化观察
  5. 05创建新实体前请求批准

适用场景

  1. 01将会议记录整理为关联笔记
  2. 02从邮件线程提取承诺与后续事项
  3. 03把文章或文档纳入知识图谱

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/basicmachines-co/basic-memory-skills --skill memory-ingest

安装后在 Claude Code 中输入/memory-ingest确认已加载。

详细介绍

记忆导入

将原始、非结构化的输入转换为结构化的 Basic Memory 实体。会议记录、对话日志、粘贴的文档、电子邮件往来——任何值得保留信息的内容都会经过解析、与现有知识交叉引用,并整理为规范的笔记。

适用场景

  • 用户粘贴会议记录或对话日志
  • 用户说“处理这些笔记”或“将其添加到 Basic Memory”
  • 用户粘贴文档、文章或电子邮件以提取知识
  • 任何需要将原始外部文本转化为结构化知识的情况

工作流概览

1. Parse raw input           → identify structure, extract key info
2. Extract entities          → people, orgs, topics, action items
3. Search existing entities  → multi-variation queries
4. Research new entities     → optional web research (see memory-research)
5. Present entity proposal   → get approval before creating
6. Create source note        → verbatim content + observations + relations
7. Create approved entities  → structured notes for each new entity
8. Extract action items      → follow-ups and commitments

步骤 1:解析原始输入

阅读粘贴的内容并识别其结构:

  • 格式:会议记录、电子邮件往来、对话日志、文章、自由格式笔记
  • 日期:事件发生的时间(从内容中提取,或询问用户)
  • 参与者:参与其中的人(姓名、角色、组织)
  • 分节:任何已有结构(标题、发言者标签、时间戳)

不要改写或总结源内容。在笔记中逐字保留原文——同时添加结构化观察。

步骤 2:提取实体

扫描内容,找出值得在知识图谱中追踪的实体:

实体类型特征
人物提及姓名及其角色、头衔或所属组织
组织公司名称、机构、院校
主题/概念进行实质性讨论的技术领域、方法论、标准
行动项承诺、截止日期、“我会在 Y 之前完成 X”之类的表述

根据上下文推断类型。 如果某人被介绍为“Acme Corp 的 CTO”,则既可以创建人物实体,也可以创建组织实体。如果某项技术得到深入讨论,可能值得为其创建概念实体。

排除无关信息。 并非提到的每个名称都值得创建实体。筛选出:

  • 担任重要角色或有实质互动的人物(而非一带而过的提及)
  • 在业务/技术背景下讨论的组织
  • 细节充分、值得单独创建笔记的主题

步骤 3:搜索现有实体

针对每个提取出的实体,使用多种查询变体搜索 Basic Memory:

# Person — try full name, last name
search_notes(query="Sarah Chen")
search_notes(query="Chen")

# Organization — try full name, abbreviation, acronym
search_notes(query="National Renewable Energy Laboratory")
search_notes(query="NREL")

# Topic — try the full term and keywords
search_notes(query="edge computing")
search_notes(query="edge inference")

将每个实体分类为:

  • 现有——已在 Basic Memory 中找到。将使用 [[wiki-link]] 链接到该实体。
  • 拟议——未找到。将提议创建,待用户批准。

步骤 4:研究新实体(可选)

对于值得补充更多背景信息的拟议实体,进行简短的网络搜索(每个实体最多搜索 2-3 次):

  • 组织:业务内容、规模、公有/私有、主要产品
  • 人物:当前角色、背景、专业领域
  • 主题:简要定义、相关性

使用带保留意味的措辞(“似乎是”“估计”“根据公开信息”)。切勿编造信息。

此步骤为可选步骤——如果源材料已提供足够背景信息,或者用户赶时间,可以跳过。更深入的研究工作流请参阅 memory-research 技能。

步骤 5:展示实体提案

创建任何内容之前,先展示你找到的信息以及希望创建的实体:

Entities found in Basic Memory:
  - [[Sarah Chen]] (Person — existing)
  - [[Acme Corp]] (Organization — existing)

Proposed new entities:
  - Jordan Rivera (Person — VP Engineering at NovaTech, mentioned as project lead)
  - NovaTech (Organization — SaaS platform, Series B, discussed as integration partner)
  - Federated Learning (Concept — core technical topic of the discussion)

Approve all / select individually / skip entity creation?

为每个拟议实体提供足够的背景信息,让用户可以快速作出决定。

步骤 6:创建源笔记

为导入的内容创建主笔记。这份笔记是“事件记录”——保留原始材料,并添加结构化元数据。

会议/对话笔记
write_note(
  title="NovaTech Meeting - Jordan Rivera - Feb 22, 2026",
  directory="meetings/2026",
  note_type="meeting",
  tags=["meeting", "novatech", "federated-learning"],
  metadata={"date": "2026-02-22"},
  content="""
# NovaTech Meeting - Jordan Rivera - Feb 22, 2026

Brief one-sentence summary of what this meeting was about.

## Transcript
[Preserve all source content verbatim — do not summarize or rewrite]

## Observations
- [opportunity] NovaTech interested in integration partnership
- [insight] Their platform handles 10K concurrent sessions, relevant to our scale needs
- [next_step] Send technical spec document by Friday
- [sentiment] Strong enthusiasm from their engineering team
- [decision] Agreed to start with a proof-of-concept integration

## Relations
- attended [[Jordan Rivera]]
- with [[NovaTech]]
- discussed [[Federated Learning]]
- follow_up [[Send NovaTech Technical Spec]]
"""
)
文档/文章笔记
write_note(
  title="Edge Computing Architecture Whitepaper",
  directory="references",
  note_type="reference",
  tags=["edge-computing", "architecture", "reference"],
  metadata={"source": "https://example.com/whitepaper.pdf", "date_ingested": "2026-02-22"},
  content="""
# Edge Computing Architecture Whitepaper

## Source Content
[Preserve relevant content — for long documents, include key sections rather than the entire text]

## Observations
- [key_finding] Latency drops 40% with edge inference vs cloud-only
- [technique] Model sharding across heterogeneous edge nodes
- [limitation] Requires minimum 8GB RAM per edge node

## Relations
- relates_to [[Edge Computing]]
- relates_to [[Model Optimization]]
"""
)
观察类别

使用能够体现信息性质的类别。摄取内容时常用的类别:

类别用途
opportunity发现的商业或合作机会
decision已作出或达成一致的决定
insight获得的非显而易见的认识
next_step具体的行动事项或后续工作
sentiment表达的热情、顾虑或犹豫
risk发现的风险或顾虑
requirement发现的要求或限制
key_finding参考资料中的重要事实
technique介绍的方法、途径或模式
context之后可能有用的背景信息

可根据需要创建类别——这些只是建议,并非固定列表。

第 7 步:创建已获批准的实体

为用户批准的每个实体创建结构化笔记。选择与实体类型相符的模板。

人物
write_note(
  title="Jordan Rivera",
  directory="people",
  note_type="person",
  tags=["person", "novatech", "engineering"],
  content="""
# Jordan Rivera

## Overview
VP of Engineering at NovaTech. Met during integration partnership discussion.

## Background
[Role, expertise, context from meeting + any web research]

## Observations
- [role] VP Engineering at NovaTech
- [expertise] Distributed systems, federated learning
- [met] 2026-02-22 during integration discussion

## Relations
- works_at [[NovaTech]]
- discussed_in [[NovaTech Meeting - Jordan Rivera - Feb 22, 2026]]
"""
)
组织
write_note(
  title="NovaTech",
  directory="organizations",
  note_type="organization",
  tags=["organization", "saas", "integration-partner"],
  content="""
# NovaTech

## Overview
SaaS platform company. Series B stage.
[Additional context from meeting + web research]

## Products & Services
[What they offer, if discussed or researched]

## Observations
- [stage] Series B, ~200 employees
- [relevance] Potential integration partner for our platform
- [first_contact] 2026-02-22

## Relations
- employs [[Jordan Rivera]]
- discussed_in [[NovaTech Meeting - Jordan Rivera - Feb 22, 2026]]
"""
)
概念 / 主题
write_note(
  title="Federated Learning",
  directory="concepts",
  note_type="concept",
  tags=["concept", "machine-learning", "distributed-systems"],
  content="""
# Federated Learning

## Overview
[Brief description of the concept from the discussion context]

## Observations
- [definition] Machine learning approach where models train across decentralized data sources
- [relevance] Core technique discussed in NovaTech integration

## Relations
- discussed_in [[NovaTech Meeting - Jordan Rivera - Feb 22, 2026]]
"""
)

根据你的领域调整模板。关键要素包括:作为参数的类型和标签、概述部分、带类别的观察,以及指向来源的关联。

第 8 步:提取行动事项

检查来源内容中的承诺和后续事项:

Action Items:
  - Send NovaTech technical spec document by Friday (your commitment)
  - Jordan will share their API documentation by next week (their commitment)

Follow-Up Reminders:
  - 1 week: Check if Jordan sent API docs
  - 2 weeks: Schedule follow-up call to discuss POC scope

如果使用 memory-tasks 技能,请为行动事项创建 Task 笔记。否则,将它们作为观察记录在来源笔记中。

指南

  • 逐字保留来源内容。 原文是事实依据。结构和观察是在此基础上叠加的解读。
  • 创建前先搜索。 始终检查是否已有实体(参见 memory-notes 的创建前搜索模式)。有新信息时更新现有实体,而不要创建重复项。
  • 创建新实体前征求批准。 提出拟创建的实体,让用户决定创建哪些。不要擅自填充知识图谱。
  • 推断,不要盘问。 从上下文中提取实体类型和关系。只有在确实存在歧义时才询问用户。
  • 有选择地创建实体。 并非每个提到的名称都值得单独建笔记。重点关注用户之后还会想要查阅的实体。
  • 对研究所得信息使用谨慎措辞。 网络研究只能作为补充——不要将其作为事实陈述。使用“似乎是”“估计”“根据公开信息”等表述。
  • 建立所有关联。 每个创建的实体都应关联回来源笔记。来源笔记应链接到所有提及的实体。
  • 结合叙述与观察。 同时包含叙述性背景和结构化观察的笔记效果最佳。叙述能赋予内容意义并讲述来龙去脉;观察则让单条事实易于检索。使用正文记录背景,再将关键事实提炼为分类观察。

评论

支持 Markdown