干邑
通过模型上下文协议(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许可证-请参阅 许可证
链接
- 文档: docs/
- 问题:
- 发布:
______________________________________________________________________
为更好的AI对话而构建
