关于 PostgMem
PostgMem 是基于 .NET、PostgreSQL 和 pgvector 的记忆存储服务,面向需要持久化和检索记忆的 AI Agent。它以向量相似度搜索为核心,并支持按标签筛选。
主要功能
- 01存储带向量嵌入的结构化记忆
- 02按 ID 获取或删除记忆
- 03按语义相似度搜索
- 04使用标签筛选搜索结果
适用场景
- 01为 AI Agent 保存对话记忆
- 02按语义检索相关信息
- 03按标签整理和筛选记忆
MCP 相关
PostgMem 通过 MCP 暴露存储、搜索、获取和删除记忆的工具,供 AI Agent 调用。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
暂未收录安装方式
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
还没有获取到工具列表
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
PostgMem
一种 MCP(Model Context Protocol)服务实现,使用 PostgreSQL 和 pgvector 为 AI 应用提供向量记忆存储。
概览
PostgMem 是一项基于 .NET 的服务,可让 AI Agent 使用向量嵌入存储、检索和搜索记忆。它利用带有 pgvector 扩展的 PostgreSQL,提供高效的相似度搜索功能。
主要功能:
- 使用向量嵌入存储结构化记忆
- 按 ID 检索记忆
- 使用向量相似度对记忆进行语义搜索
- 使用标签筛选搜索结果
- 集成 MCP(Model Context Protocol),便于与 AI Agent 搭配使用
技术
- .NET 9.0
- 带有 pgvector 扩展的 PostgreSQL
- Model Context Protocol(MCP)
- ASP.NET Core
- 用于连接 PostgreSQL 的 Npgsql
前置条件
- .NET 9.0 SDK
- 已安装 pgvector 扩展的 PostgreSQL 数据库
- 文本嵌入 API(默认配置使用 Ollama)
设置
数据库配置
- 为应用创建 PostgreSQL 数据库
- 在数据库中安装 pgvector 扩展:
CREATE EXTENSION vector; - 创建 memories 表:
CREATE TABLE memories ( id UUID PRIMARY KEY, type TEXT NOT NULL, content JSONB NOT NULL, source TEXT NOT NULL, embedding VECTOR(384) NOT NULL, tags TEXT[] NOT NULL, confidence DOUBLE PRECISION NOT NULL, created_at TIMESTAMP WITH TIME ZONE NOT NULL, updated_at TIMESTAMP WITH TIME ZONE NOT NULL );
环境配置
在 .env 文件中配置应用设置:
ConnectionStrings__Storage="Host=localhost;Database=mcp_memory;Username=postgres;Password=postgres"
Embeddings__ApiUrl=http://localhost:11434/
Embeddings__Model=all-minilm:33m-l12-v2-fp16
ConnectionStrings__Storage:PostgreSQL 连接字符串Embeddings__ApiUrl:嵌入 API 的 URL(默认为 Ollama)Embeddings__Model:要使用的嵌入模型
运行应用
- 进入 PostgMem 目录
- 运行应用:
dotnet run - MCP 服务默认可通过
http://localhost:5000访问
MCP 工具
可用的 MCP 工具如下:
Store
在数据库中存储一条新记忆。
参数:
type(string):记忆类型(例如,'conversation'、'document' 等)content(string):以 JSON 对象表示的记忆内容source(string):记忆来源(例如,'user'、'system' 等)tags(string[]):用于分类记忆的可选标签confidence(double):记忆的置信度分数(0.0 到 1.0)
Search
搜索与给定文本相似的记忆。
参数:
query(string):用于搜索相似记忆的文本limit(int):返回结果的最大数量(默认值:10)minSimilarity(double):最低相似度阈值(0.0 到 1.0)(默认值:0.7)filterTags(string[]):用于筛选记忆的可选标签
Get
按 ID 检索指定记忆。
参数:
id(Guid):要检索的记忆 ID
Delete
按 ID 删除记忆。
参数:
id(Guid):要删除的记忆 ID
实现详情
Memory.cs:定义记忆的数据模型Storage.cs:处理用于存储和检索记忆的数据库操作EmbeddingService.cs:为文本生成向量嵌入MemoryTools.cs:实现用于与记忆存储交互的 MCP 工具
许可证
[此处填写许可证信息]
贡献
[此处填写贡献指南]
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。