首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
首页
学习
活动
专区
圈层
工具
MCP广场
MCP广场 >详情页
basic-memory2025-05-280分享
github
基础记忆是知识管理系统,能通过与 AI 助手对话构建持久语义图。知识以标准 Markdown 文件存于本地,保障数据自主掌控权,还可与 Obsidian.md 直接集成,实现高效知识管理。
By basicmachines-co
2025-05-280
github
详情内容

许可证:AGPL v3
PyPI版本
Python 3.12+
测试
Ruff
图标
图标
smithery徽章

Basic Memory

Basic Memory让你能够通过与Claude等大型语言模型(LLM)的自然对话来构建持久化知识,同时将所有内容保存在你电脑上的简单Markdown文件中。它使用模型上下文协议(MCP),使任何兼容的LLM都能读取和写入你的本地知识库。

  • 官网:https://basicmachines.co
  • 文档:https://memory.basicmachines.co

从你离开的地方继续对话

  • AI助手可以从本地文件加载上下文开始新的对话
  • 笔记会实时保存为本地Markdown文件
  • 不需要项目知识或特殊提示

https://github.com/user-attachments/assets/a55d8238-8dd0-454a-be4c-8860dbbd0ddc

快速开始

# 使用uv安装(推荐)
uv tool install basic-memory

# 配置Claude Desktop(编辑~/Library/Application Support/Claude/claude_desktop_config.json)
# 在你的配置中添加以下内容:
{
  "mcpServers": {
    "basic-memory": {
      "command": "uvx",
      "args": [
        "basic-memory",
        "mcp"
      ]
    }
  }
}
# 现在在Claude Desktop中,你可以:
# - 用"Create a note about coffee brewing methods"写笔记
# - 用"What do I know about pour over coffee?"读笔记
# - 用"Find information about Ethiopian beans"搜索

你可以通过~/basic-memory(默认目录位置)中的文件查看共享的上下文。

通过Smithery替代安装

你可以使用Smithery自动为Claude Desktop配置Basic Memory:

npx -y @smithery/cli install @basicmachines-co/basic-memory --client claude

这会安装和配置Basic Memory,而无需手动编辑Claude Desktop配置文件。Smithery服务器托管MCP服务器组件,而你的数据仍然作为Markdown文件存储在本地。

Glama.ai

basic-memory MCP服务器

为什么选择Basic Memory?

大多数LLM交互是短暂的——你问一个问题,得到一个答案,然后一切都被遗忘。每次对话都是全新的,没有之前对话的上下文或知识。当前的解决方法有局限性:

  • 聊天历史记录捕获了对话,但不是结构化的知识
  • RAG系统可以查询文档,但不允许LLM写回
  • 向量数据库需要复杂的设置,通常位于云端
  • 知识图谱通常需要专门的工具来维护

Basic Memory通过一个简单的方法解决了这些问题:人类和LLM都可以读取和写入的结构化Markdown文件。主要优势包括:

  • 本地优先:所有知识都保存在你控制的文件中
  • 双向:你和LLM都可以读取和写入相同的文件
  • 结构化但简单:使用熟悉的Markdown和语义模式
  • 可遍历的知识图谱:LLM可以跟随主题之间的链接
  • 标准格式:与现有的编辑器(如Obsidian)兼容
  • 轻量级基础设施:只是本地文件,索引在本地SQLite数据库中

使用Basic Memory,你可以:

  • 进行建立在先前知识基础上的对话
  • 在自然对话中创建结构化笔记
  • 与记住你之前讨论内容的LLM进行对话
  • 语义地导航你的知识图谱
  • 将所有内容保留在本地并受你控制
  • 使用熟悉的工具(如Obsidian)查看和编辑笔记
  • 构建一个随时间增长的个人知识库

实际工作原理

假设你正在探索咖啡冲泡方法并想记录你的知识。以下是工作原理:

  1. 先正常聊天:
我一直在尝试不同的咖啡冲泡方法。我学到的一些关键点:

- 手冲比法压壶更能呈现清晰的风味
- 水温至关重要——大约205°F似乎是最好的
- 新鲜研磨的豆子有很大的不同

...继续对话。

  1. 让LLM帮助构建这个知识:
"让我们写一篇关于咖啡冲泡方法的笔记。"

LLM在你的系统上创建一个新的Markdown文件(你可以在Obsidian或你的编辑器中立即看到):

---
title: 咖啡冲泡方法
permalink: coffee-brewing-methods
tags:
- 咖啡
- 冲泡
---

# 咖啡冲泡方法

## 观察

- [方法] 手冲比法压壶更能呈现清晰的风味和微妙的味道
- [技巧] 水温在205°F(96°C)时提取最佳化合物
- [原则] 新鲜研磨的豆子保留香气和风味

## 关系

- relates_to [[咖啡豆产地]]
- requires [[正确的研磨技巧]]
- affects [[风味提取]]

笔记嵌入了语义内容,并通过简单的Markdown格式链接到其他主题。

  1. 你可以在当前项目目录(默认~/$HOME/basic-memory)中实时看到这个文件。
  • 从v0.12.0版本开始,默认启用了实时同步
  1. 在与LLM的聊天中,你可以引用一个主题:
查看`coffee-brewing-methods`以获取关于手冲咖啡的上下文

现在LLM可以从知识图谱中构建丰富的上下文。例如:

跟随关系'relates_to [[咖啡豆产地]]':
- 找到了关于埃塞俄比亚耶加雪菲的信息
- 关于哥伦比亚豆子坚果风味的笔记
- 海拔对豆子特性的影响

跟随关系'requires [[正确的研磨技巧]]':
- 磨豆机与刀片磨豆机的比较
- 不同方法的研磨尺寸建议
- 一致的颗粒大小对提取的影响

每个相关文档都可以带来更多上下文,构建对你知识库的丰富语义理解。

这创造了一个双向流动:

  • 人类编写和编辑Markdown文件
  • LLM通过MCP协议读取和写入
  • 同步保持一切一致
  • 所有知识都保留在本地文件中。

技术实现

在底层,Basic Memory:

  1. 将所有内容存储在Markdown文件中
  2. 使用SQLite数据库进行搜索和索引
  3. 从简单的Markdown模式中提取语义含义
    • 文件成为实体对象
    • 每个实体可以有观察,或与之相关的事实
    • 关系将实体连接在一起形成知识图谱
  4. 维护从文件派生的本地知识图谱
  5. 提供文件和知识图谱之间的双向同步
  6. 实现模型上下文协议(MCP)用于AI集成
  7. 提供让AI助手遍历和操作知识图谱的工具
  8. 使用memory:// URL在工具和对话中引用实体

文件格式只是带有简单标记的Markdown:

每个Markdown文件有:

前置内容

title: <实体标题>
type: <实体类型>(例如笔记)
permalink: <uri slug>

- <可选元数据>(如标签)

观察

观察是关于一个主题的事实。
可以通过创建带有特殊格式的Markdown列表来添加观察,该格式可以使用"#"字符引用类别标签,并可选地包含上下文

观察Markdown格式:

- [类别] 内容 #标签(可选上下文)

观察示例:

- [方法] 手冲比法压壶更能提取花香
- [技巧] 手冲的研磨尺寸应该是中细 #冲泡
- [偏好] 埃塞俄比亚豆子有明亮、果味的风味(尤其是耶加雪菲)
- [事实] 浅烘焙通常比深烘焙含有更多的咖啡因
- [实验] 尝试了1:15的咖啡与水比例,效果很好
- [资源] YouTube上James Hoffman的V60技巧非常棒
- [问题] 水温是否对不同化合物的提取有不同的影响?
- [笔记] 我最喜欢的本地商店使用30秒的闷蒸时间

关系

关系是到其他主题的链接。它们定义了知识图谱中实体之间的连接方式。

Markdown格式:

- 关系类型 [[WikiLink]](可选上下文)

关系示例:

- pairs_well_with [[巧克力甜点]]
- grown_in [[埃塞俄比亚]]
- contrasts_with [[茶冲泡方法]]
- requires [[磨豆机]]
- improves_with [[新鲜豆子]]
- relates_to [[早晨例程]]
- inspired_by [[日本咖啡文化]]
- documented_in [[咖啡日志]]

在VS Code中使用

要一键安装,请点击下面的安装按钮之一...

使用UV在VS Code中安装 使用UV在VS Code Insiders中安装

你可以使用Basic Memory与VS Code轻松地在编码时检索和存储信息。点击上面的安装按钮进行一键设置,或者按照下面的手动安装说明操作。

手动安装

将以下JSON块添加到你的VS Code用户设置(JSON)文件中。你可以通过按Ctrl + Shift + P并输入Preferences: Open User Settings (JSON)来执行此操作。

{
  "mcp": {
    "servers": {
      "basic-memory": {
        "command": "uvx",
        "args": ["basic-memory", "mcp"]
      }
    }
  }
}

可选地,你可以将它添加到你的工作区中的.vscode/mcp.json文件中。这将允许你与他人共享配置。

{
  "servers": {
    "basic-memory": {
      "command": "uvx",
      "args": ["basic-memory", "mcp"]
    }
  }
}

在Claude Desktop中使用

Basic Memory使用MCP(模型上下文协议)构建,并与Claude桌面应用程序(https://claude.ai/)一起工作:

  1. 配置Claude Desktop使用Basic Memory:

编辑你的MCP配置文件(通常位于~/Library/Application Support/Claude/claude_desktop_config.json,适用于OS X):

{
  "mcpServers": {
    "basic-memory": {
      "command": "uvx",
      "args": [
        "basic-memory",
        "mcp"
      ]
    }
  }
}

如果你想使用特定的项目(参见多个项目),更新你的Claude Desktop配置:

{
  "mcpServers": {
    "basic-memory": {
      "command": "uvx",
      "args": [
        "basic-memory",
        "--project",
        "your-project-name",
        "mcp"
      ]
    }
  }
}
  1. 同步你的知识:

如果你手动编辑,Basic Memory会实时同步你项目中的文件。

  1. 在Claude Desktop中,LLM现在可以使用这些工具:
write_note(title, content, folder, tags) - 创建或更新笔记
read_note(identifier, page, page_size) - 按标题或永久链接读取笔记
build_context(url, depth, timeframe) - 通过memory:// URL导航知识图谱
search_notes(query, page, page_size) - 在你的知识库中搜索
recent_activity(type, depth, timeframe) - 查找最近更新的信息
canvas(nodes, edges, title, folder) - 生成知识可视化
  1. 尝试的示例提示:
"创建一篇关于我们项目架构决策的笔记"
"在我的笔记中查找关于JWT认证的信息"
"创建我的项目组件的知识可视化"
"阅读我关于认证系统的笔记"
"过去一周我在做什么?"

更多信息

请参阅文档以获取更多信息,包括:

许可证

AGPL-3.0

欢迎贡献。请参阅贡献指南,了解如何在本地设置项目并提交PR。

星标历史

星标历史图表

由Basic Machines用心构建

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档