语义记忆服务器

Cognio是一个通过模型上下文协议(MCP)为AI助手提供持久语义记忆的服务器,支持多语言语义搜索、自动标记和文本摘要。

  • by 0xReLogic
  • Python
  • 本地部署
  • 12 星标
  • 更新于
在 GitHub 查看 0xReLogic/Cognio

使用说明

干邑

通过模型上下文协议(MCP)为人工智能助手提供持久语义记忆服务器

Cognio是一个模型上下文协议(MCP)服务器,为AI助手提供持久的语义记忆。与短暂的聊天历史不同,Cognio永久存储上下文,并支持跨对话的语义搜索。

适用于:

  • 随着时间的推移而增长的个人知识库
  • 多项目上下文管理
  • 研究笔记和学习日记
  • 具有语义检索的会话历史

特性

  • 语义搜索:使用句子变换器按意义查找记忆
  • LEANN矢量搜索(可选):延迟构建索引,按需重新计算,以减少启动内存
  • 多语言支持:无缝搜索100多种语言
  • 永久存储:基于SQLite的存储,跨会话生存
  • 项目组织机构:按项目和标签组织记忆
  • 自动标记:通过LLM(GPT-4、Groq等)自动生成标签
  • 自动摘要:对长篇文本进行摘录和抽象摘要
  • MCP集成:一键设置VS Code、Claude、Cursor等
  • RESTful API:带有OpenAPI文档的标准HTTP API
  • 导出功能:导出为JSON或Markdown格式
  • Docker支持:使用docker compose进行简单部署

快速开始

1.启动服务器

git clone https://github.com/0xReLogic/Cognio.git
cd Cognio
docker-compose up -d

服务器运行于 http://localhost:8080

2.自动配置AI客户端

MCP服务器在首次启动时自动配置支持的AI客户端:

支持的客户端:

  • 克劳德桌面版
  • 克劳德代码(CLI)
  • VS代码(GitHub副本)
  • 光标
  • Continue.dev
  • 克莱恩
  • 帆板运动
  • 基罗
  • Gemini CLI

快速设置:

运行自动设置脚本以一次配置所有客户端:

cd mcp-server
npm run setup

这将自动为所有9个受支持的客户端生成MCP配置。

手动配置:

看 mcp服务器/README.md 用于客户端特定的MCP配置示例。

第一次运行时,Cognio自动生成 cognio.md 在您的工作空间中,使用AI工具的使用指南。

3.测试它

# Save a memory
curl -X POST http://localhost:8080/memory/save \
  -H "Content-Type: application/json" \
  -d '{"text": "Docker allows running apps in containers", "project": "LEARNING"}'

# Search memories
curl "http://localhost:8080/memory/search?q=containers"

或者在您的AI客户端中自然使用:

"Search my memories for Docker information"
"Remember this: FastAPI is a modern Python web framework"

4.Web UI仪表板

访问交互式内存仪表板:

http://localhost:8080/ui

特征:

  • 浏览和搜索所有回忆
  • 使用markdown预览添加/编辑记忆
  • 查看统计数据和见解
  • 按项目和标签组织
  • 批量操作(选择、删除)
  • 暗/亮主题切换
  • 在本地和Docker中工作

仪表板自动检测API服务器,因此它适用于本地主机、Docker容器和远程部署。

文档

MCP工具

使用MCP服务器时,您可以访问11个专用工具:

工具 说明
save_memory 使用可选项目/标记保存文本(启用自动标记)
search_memory 带项目过滤的语义搜索
list_memories 列出带有分页和过滤器的内存
get_memory_stats 获取存储统计数据和见解
archive_memory 软删除内存(可恢复)
delete_memory 按ID永久删除内存
export_memories 将内存导出为JSON或Markdown
summarize_text 总结长文本(基于提取或LLM)
set_active_project 设置活动项目上下文(自动应用于所有操作)
get_active_project 查看当前活动项目
list_projects 列出数据库中的所有可用项目

活动项目工作流:

1. list_projects() → See: Helios-LoadBalancer (45), Cognio-Memory (23), ...
2. set_active_project("Helios-LoadBalancer")
3. save_memory("Cache TTL is 300s") → Auto-saves to Helios-LoadBalancer
4. search_memory("cache settings") → Auto-searches in Helios-LoadBalancer only
5. list_memories() → Lists only Helios-LoadBalancer memories

项目隔离:
始终指定 project 名称或用途 set_active_project 以保持记忆的有序性,并防止不同工作空间之间的上下文混合。

API终点

方法 端点 描述
得到 /health 健康检查
职位 /memory/save 保存新内存
得到 /memory/search 语义/混合搜索
得到 /memory/list 用过滤器列出记忆
删除 /memory/{id} 按ID删除内存
职位 /memory/bulk-delete 按项目批量删除
得到 /memory/stats 获取统计数据
得到 /memory/export 导出记忆
职位 /memory/summarize 总结长文本

交互式文档:http://localhost:8080/docs

配置

环境变量(参见 .env.example):

复制示例并编辑本地覆盖:

cp .env.example .env
# Database
DB_PATH=./data/memory.db

# Embeddings
EMBED_MODEL=all-MiniLM-L6-v2
EMBED_DEVICE=cpu
EMBEDDING_CACHE_PATH=./data/embedding_cache.pkl

# API
API_HOST=0.0.0.0
API_PORT=8080
# Optional API key for auth
API_KEY=your-secret-key

# Search
DEFAULT_SEARCH_LIMIT=5
SIMILARITY_THRESHOLD=0.4
HYBRID_ENABLED=true
HYBRID_MODE=rerank        # candidate | rerank
HYBRID_ALPHA=0.6          # 0..1, higher = more semantic
HYBRID_RERANK_TOPK=100    # rerank candidate pool size

# LEANN vector search (optional)
LEANN_ENABLED=false
LEANN_INDEX_PATH=./data/leann/memories.leann
LEANN_BACKEND=hnsw
LEANN_LAZY_BUILD=true
LEANN_RECOMPUTE_ON_SEARCH=true
LEANN_WARMUP_ON_START=false

# Summarization
SUMMARIZATION_ENABLED=true
SUMMARIZATION_METHOD=abstractive   # extractive | abstractive
SUMMARIZATION_EMBED_MODEL=all-MiniLM-L6-v2

# Auto-tagging (Optional)
AUTOTAG_ENABLED=true
LLM_PROVIDER=groq
GROQ_API_KEY=your-groq-key
GROQ_MODEL=openai/gpt-oss-120b
# OPENAI_API_KEY=your-openai-api-key
# OPENAI_MODEL=gpt-4o-mini

# Performance
MAX_TEXT_LENGTH=10000
BATCH_SIZE=32
SUMMARIZE_THRESHOLD=50

# Logging
LOG_LEVEL=info

自动标记模型:

  • openai/gpt-oss-120b -高品质
  • gpt-4o-mini -OpenAI,快速且廉价
  • llama-3.3-70b-versatile -Groq,平衡
  • llama-3.1-8b-instant -Groq,最快

看 .env.example 所有可用的选项和建议。

项目结构

cognio/
├── src/                # Core application
│   ├── main.py         # FastAPI app
│   ├── config.py       # Environment config
│   ├── models.py       # Data schemas
│   ├── database.py     # SQLite operations
│   ├── embeddings.py   # Semantic search
│   ├── memory.py       # Memory CRUD
│   ├── autotag.py      # Auto-tagging
│   └── utils.py        # Helpers
│
├── mcp-server/         # MCP integration
│   ├── index.js        # MCP server
│   └── package.json    # Dependencies
│
├── scripts/            # Utilities
│   ├── setup-clients.js  # Auto-config AI clients
│   ├── backup.sh       # Database backup
│   └── migrate.py      # Schema migrations
│
├── tests/              # Test suite
├── docs/               # Documentation
└── examples/           # Usage examples

发展

# Install dependencies
poetry install

# Run tests
pytest

# Start development server
uvicorn src.main:app --reload

技术栈

  • 后端:Python 3.11+、FastAPI、Uvicorn
  • 数据库:支持JSON的SQLite
  • 嵌入:句子转换器(意译多语言mpnet-base-v2,768 dim)
  • MCP服务器:Node.js,@modelcontextprotocol/sdk
  • 自动标记:Api
  • 测试:pytest、pytest异步、pytest-cov
  • 部署:Docker,Docker编写

演出

操作 时间 备注
节省内存 ~20ms 包括嵌入
搜索(1k个记忆) ~15ms 语义相似性
搜索(10k内存) ~50ms 仍然很快
模型负载 ~3s 启动时一次

许可证

MIT许可证-请参阅 许可证

链接


为更好的AI对话而构建