memory-ingest by basicmachines-co/basic-memory-skills
npx skills add https://github.com/basicmachines-co/basic-memory-skills --skill memory-ingest将原始、非结构化的输入转化为结构化的基础记忆实体。会议记录、对话日志、粘贴的文档、邮件线程——任何包含值得保存信息的内容都会被解析,与现有知识进行交叉引用,并作为适当的笔记写入。
1. 解析原始输入 → 识别结构,提取关键信息
2. 提取实体 → 人员、组织、主题、行动项
3. 搜索现有实体 → 多变量查询
4. 研究新实体 → 可选的网络研究(参见 memory-research)
5. 呈现实体提案 → 在创建前获取批准
6. 创建来源笔记 → 逐字内容 + 观察 + 关系
7. 创建已批准的实体 → 为每个新实体创建结构化笔记
8. 提取行动项 → 后续事项和承诺
读取粘贴的内容并识别其结构:
不要重写或总结源内容。在笔记中逐字保留它——你将在其旁边添加结构化的观察。
扫描内容,寻找值得在知识图谱中追踪的实体:
| 实体类型 | 信号 |
|---|---|
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
| 人员 |
| 提及的带有角色、头衔或隶属关系的姓名 |
| 组织 | 公司名称、机构、研究所 |
| 主题/概念 | 实质性讨论的技术领域、方法论、标准 |
| 行动项 | 承诺、截止日期、"我将在 Y 前完成 X" 的陈述 |
根据上下文推断类型。 如果有人被介绍为"Acme Corp 的 CTO",这既是人员实体也是组织实体。如果某个技术被深入讨论,它可能值得一个概念实体。
排除噪音。 并非每个提及的名称都值得成为一个实体。筛选标准:
对于每个提取的实体,使用多个查询变体搜索基础记忆:
# 人员 — 尝试全名、姓氏
search_notes(query="Sarah Chen")
search_notes(query="Chen")
# 组织 — 尝试全名、缩写、首字母缩写
search_notes(query="National Renewable Energy Laboratory")
search_notes(query="NREL")
# 主题 — 尝试完整术语和关键词
search_notes(query="edge computing")
search_notes(query="edge inference")
将每个实体分类为:
[[wiki-link]] 链接到它。对于提议的实体,如果更多上下文有价值,进行简短的网络搜索(每个实体最多 2-3 个查询):
使用谨慎的语言("似乎是"、"估计"、"基于公开信息")。切勿捏造细节。
此步骤是可选的——如果源材料提供了足够的上下文,或者用户时间紧迫,可以跳过。更深入的研究工作流程请参见 memory-research 技能。
在创建任何内容之前,呈现你找到的内容以及你想要创建的内容:
在基础记忆中找到的实体:
- [[Sarah Chen]] (人员 — 现有)
- [[Acme Corp]] (组织 — 现有)
提议的新实体:
- Jordan Rivera (人员 — NovaTech 工程副总裁,被提及为项目负责人)
- NovaTech (组织 — SaaS 平台,B 轮融资,讨论为集成合作伙伴)
- Federated Learning (概念 — 讨论的核心技术主题)
全部批准 / 单独选择 / 跳过实体创建?
为每个提议的实体包含足够的上下文,以便用户能快速做出决定。
为摄取的内容创建主要笔记。这是"发生了什么事件的记录"——它保留了原始材料并添加了结构化元数据。
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
关于此次会议的简要一句话总结。
## 记录
[保留所有源内容逐字不变 — 不要总结或重写]
## 观察
- [opportunity] NovaTech 对集成合作伙伴关系感兴趣
- [insight] 他们的平台处理 10K 并发会话,与我们的规模需求相关
- [next_step] 周五前发送技术规范文档
- [sentiment] 他们的工程团队表现出强烈的热情
- [decision] 同意从概念验证集成开始
## 关系
- 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
## 源内容
[保留相关内容 — 对于长文档,包含关键部分而非全文]
## 观察
- [key_finding] 与纯云端相比,边缘推理延迟降低 40%
- [technique] 跨异构边缘节点的模型分片
- [limitation] 每个边缘节点至少需要 8GB RAM
## 关系
- relates_to [[Edge Computing]]
- relates_to [[Model Optimization]]
"""
)
使用能捕捉信息性质的类别。摄取内容的常见类别:
| 类别 | 用于 |
|---|---|
opportunity | 识别出的业务或合作机会 |
decision | 已做出或已同意的决定 |
insight | 获得的非显而易见理解 |
next_step | 具体的行动项或后续步骤 |
sentiment | 表达出的热情、担忧、犹豫 |
risk | 识别出的风险或担忧 |
requirement | 发现的需求或约束 |
key_finding | 参考材料中的重要事实 |
technique | 描述的方法、途径或模式 |
context | 以后可能有用的背景信息 |
根据需要创建类别——这些是建议,不是固定列表。
对于用户批准的每个实体,创建一个结构化笔记。将实体类型与适当的模板匹配。
write_note(
title="Jordan Rivera",
directory="people",
note_type="person",
tags=["person", "novatech", "engineering"],
content="""
# Jordan Rivera
## 概述
NovaTech 工程副总裁。在集成合作伙伴关系讨论期间会面。
## 背景
[角色、专业知识、来自会议的上下文 + 任何网络研究]
## 观察
- [role] NovaTech 工程副总裁
- [expertise] 分布式系统、联邦学习
- [met] 2026-02-22 在集成讨论期间
## 关系
- 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
## 概述
SaaS 平台公司。B 轮融资阶段。
[来自会议 + 网络研究的额外上下文]
## 产品与服务
[如果讨论或研究过,他们提供什么]
## 观察
- [stage] B 轮融资,约 200 名员工
- [relevance] 我们平台的潜在集成合作伙伴
- [first_contact] 2026-02-22
## 关系
- 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
## 概述
[来自讨论上下文的简要概念描述]
## 观察
- [definition] 模型在去中心化数据源上进行训练的机器学习方法
- [relevance] NovaTech 集成中讨论的核心技术
## 关系
- discussed_in [[NovaTech Meeting - Jordan Rivera - Feb 22, 2026]]
"""
)
根据你的领域调整模板。关键要素是:作为参数的类型和标签、概述部分、带类别的观察,以及链接回来源的关系。
审查源内容中的承诺和后续事项:
行动项:
- 周五前向 NovaTech 发送技术规范文档(你的承诺)
- Jordan 将在下周分享他们的 API 文档(他们的承诺)
后续提醒:
- 1 周后:检查 Jordan 是否发送了 API 文档
- 2 周后:安排后续通话讨论概念验证范围
如果使用 memory-tasks 技能,为你的行动项创建任务笔记。否则,将它们作为观察记录在来源笔记中。
每周安装次数
25
代码库
GitHub 星标数
4
首次出现
Feb 23, 2026
安全审计
安装于
codex23
github-copilot21
kimi-cli21
gemini-cli21
cursor21
amp21
Turn raw, unstructured input into structured Basic Memory entities. Meeting transcripts, conversation logs, pasted documents, email threads — anything with information worth preserving gets parsed, cross-referenced against existing knowledge, and written as proper notes.
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
Read the pasted content and identify its structure:
Don't rewrite or summarize the source content. Preserve it verbatim in the note — you'll add structured observations alongside it.
Scan the content for entities worth tracking in the knowledge graph:
| Entity Type | Signals |
|---|---|
| Person | Names with roles, titles, or affiliations mentioned |
| Organization | Company names, agencies, institutions |
| Topic/Concept | Technical domains, methodologies, standards discussed substantively |
| Action Item | Commitments, deadlines, "I'll do X by Y" statements |
Infer type from context. If someone is introduced as "CTO of Acme Corp", that's both a Person and an Organization entity. If a technology is discussed in depth, it might warrant a Concept entity.
Exclude noise. Not every name mentioned is worth an entity. Filter for:
For each extracted entity, search Basic Memory with multiple query variations:
# 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")
Classify each entity as:
[[wiki-link]].For proposed entities where more context would be valuable, do a brief web search (2-3 queries max per entity):
Use hedging language ("appears to be", "estimated", "based on public information"). Never fabricate details.
This step is optional — skip it if the source material provides enough context, or if the user is in a hurry. See the memory-research skill for deeper research workflows.
Before creating anything, present what you found and what you'd like to create:
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?
Include enough context with each proposed entity for the user to make a quick decision.
Create the primary note for the ingested content. This is the "record of what happened" — it preserves the raw material and adds structured metadata.
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]]
"""
)
Use categories that capture the nature of the information. Common categories for ingested content:
| Category | Use For |
|---|---|
opportunity | Business or collaboration opportunities identified |
decision | Decisions made or agreed upon |
insight | Non-obvious understanding gained |
next_step | Concrete action items or follow-ups |
sentiment | Enthusiasm, concerns, hesitations expressed |
risk | Risks or concerns identified |
Invent categories as needed — these are suggestions, not a fixed list.
For each entity the user approved, create a structured note. Match the entity type to an appropriate template.
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]]
"""
)
Adapt templates to your domain. The key elements are: type and tags as parameters, an overview section, observations with categories, and relations linking back to the source.
Review the source content for commitments and follow-ups:
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
If using the memory-tasks skill, create Task notes for your action items. Otherwise, capture them as observations in the source note.
Weekly Installs
25
Repository
GitHub Stars
4
First Seen
Feb 23, 2026
Security Audits
Gen Agent Trust HubPassSocketWarnSnykFail
Installed on
codex23
github-copilot21
kimi-cli21
gemini-cli21
cursor21
amp21
Skills CLI 使用指南:AI Agent 技能包管理器安装与管理教程
44,900 周安装
供应链风险审计员 - 开源项目依赖项安全审计工具 | 识别高风险依赖项
1,100 周安装
企业法律风险评估框架:基于严重性与可能性的风险矩阵与分类指南
1,100 周安装
Valyu API 最佳实践指南:搜索、内容提取、AI 答案与深度研究
1,300 周安装
ralphinho-rfc-pipeline:AI驱动的复杂功能分解与多单元编排工作流工具
1,300 周安装
NanoClaw REPL - AI对话持久化工具,支持会话分支、模型切换与跨会话搜索
1,300 周安装
竞争情报分析工具:生成交互式HTML战卡,深度对比竞争对手功能、定价与定位
1,200 周安装
requirement | Requirements or constraints discovered |
key_finding | Important facts from reference material |
technique | Methods, approaches, or patterns described |
context | Background information that may be useful later |