关于 memory-ingest
此 Basic Memory 技能将会议记录、文档、邮件等原始文本转为相互关联的结构化笔记。它会先查找已有实体,并在创建新实体前征求批准。
主要功能
- 01解析原文并提取实体
- 02搜索已有笔记
- 03提议实体并征求批准
- 04逐字保留来源内容
- 05记录行动项与关联
适用场景
- 01将会议记录转为笔记
- 02整理粘贴的邮件往来
- 03从参考文档提取实体
MCP 相关
工作流使用 Basic Memory MCP 工具,包括 bm_search 查找已有实体,以及 bm_write 或 bm_edit 创建或更新笔记。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ basicmachines-co/ basic-memory --skill memory-ingest安装后在 Claude Code 中输入/memory-ingest确认已加载。
详细介绍
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 步:解析原始输入
阅读粘贴的内容并识别其结构:
- 格式:会议记录、电子邮件往来、对话日志、文章、自由形式笔记
- 日期:事情发生的时间(从内容中提取或询问用户)
- 参与者:涉及的人员(姓名、角色、组织)
- 章节:已有的结构(标题、发言者标签、时间戳)
不要改写或总结来源内容。在笔记中逐字保留内容,并在旁边添加结构化观察。
为注明日期的观察添加限定符,使用来源中给出的日期(参见 memory-notes):
会议中发生的事情使用 @occurred:,行动项使用 @due:。
使用文件而非粘贴文本。 对于项目中的 PDF、Word、PowerPoint 或 CSV 文件,如果 bm CLI 可用,请运行 bm import document <path>。此命令会写入一个提取文本的旁注文件(<file>.<ext>.md),并通过 derived_from 链接到源文件。请单独编写结构化笔记并将其链接到旁注文件;不要编辑旁注文件。
第 2 步:提取实体
扫描内容,找出值得在知识图谱中跟踪的实体:
| 实体类型 | 线索 |
|---|---|
| 人物 | 提及姓名、角色、头衔或所属组织 |
| 组织 | 公司名称、机构、组织 |
| 主题/概念 | 详细讨论的技术领域、方法论、标准 |
| 行动项 | 承诺、截止日期、“我会在 Y 之前完成 X”之类的陈述 |
根据上下文推断类型。 如果某人被介绍为“Acme Corp 的 CTO”,则同时将其作为人物实体和组织实体。如果深入讨论某项技术,可能值得将其作为概念实体。
排除无关信息。 并非提及的每个名称都值得建立实体。筛选以下内容:
- 承担实质性职责或有实质性互动的人物(而非一笔带过的提及)
- 在商业或技术语境中讨论的组织
- 详细程度足以单独建立笔记的主题
第 3 步:搜索现有实体
针对每个提取的实体,使用多个查询变体搜索 Basic Memory:
# Person — try full name, last name
bm_search(query="Sarah Chen")
bm_search(query="Chen")
# Organization — try full name, abbreviation, acronym
bm_search(query="National Renewable Energy Laboratory")
bm_search(query="NREL")
# Topic — try the full term and keywords
bm_search(query="edge computing")
bm_search(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 步:创建来源笔记
为摄取的内容创建主要笔记。这是“事件记录”——保留原始材料,并添加结构化元数据。
会议/对话笔记
bm_write(
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] @due:2026-02-27 Send technical spec document
- [sentiment] Strong enthusiasm from their engineering team
- [decision] @occurred:2026-02-22 Agreed to start with a proof-of-concept integration
## Relations
- attended [[Jordan Rivera]]
- with [[NovaTech]]
- discussed [[Federated Learning]]
- follow_up [[Send NovaTech Technical Spec]]
"""
)
文档/文章笔记
bm_write(
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 步:创建已批准的实体
为用户批准的每个实体创建一条结构化笔记。选择合适的模板来匹配实体类型。
如果 bm_write 报告存在相似的笔记,请将其视为第 3 步遗漏的匹配项:合并到现有笔记并删除新笔记,或将两者链接起来。
人物
bm_write(
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]]
"""
)
组织
bm_write(
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]]
"""
)
概念 / 主题
bm_write(
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 的创建前搜索模式)。用新信息更新现有实体,而不是创建重复项。
- 创建新实体前征求批准。 展示拟创建的实体,让用户决定创建哪些。不要擅自填充知识图谱。
- 推断,不要盘问。 根据上下文提取实体类型和关系。只有在确实存在歧义时才询问用户。
- 谨慎选择实体。 并非提及的每个名称都值得单独建立笔记。重点关注用户以后会想再次查阅的实体。
- 对研究所得信息使用不确定表述。 网络研究只能作为补充——不要将其当作事实陈述。使用“似乎是”“估计”“基于公开信息”等表述。
- 将所有内容关联起来。 每个创建的实体都应关联回源笔记。源笔记应链接到所有提及的实体。
- 结合叙述与观察。 笔记最好同时包含叙述性背景和结构化观察。叙述能说明意义并讲述来龙去脉;观察则便于搜索单条事实。使用正文记录背景,再将关键事实提炼为带类别的观察。