通过模型上下文协议(MCP)为AI助手提供持久语义记忆的服务器
Cognio 是一个模型上下文协议(MCP)服务器,它为AI助手提供了持久的语义记忆。与短暂的聊天历史不同,Cognio 永久存储上下文,并支持在对话中进行语义搜索。
适用于:
git clone https://github.com/0xReLogic/Cognio.git
cd Cognio
docker-compose up -d
服务器运行在 http://localhost:8080
MCP服务器在首次启动时会自动配置支持的AI客户端:
支持的客户端:
快速设置:
运行自动设置脚本以一次性配置所有客户端:
cd mcp-server
npm run setup
这将自动生成所有9个支持客户端的MCP配置。
手动配置:
参见mcp-server/README.md获取特定客户端的MCP配置示例。
首次运行时,Cognio会在您的工作区自动生成cognio.md,其中包含AI工具的使用指南。
# 保存记忆
curl -X POST http://localhost:8080/memory/save \
-H "Content-Type: application/json" \
-d '{"text": "Docker允许应用程序在容器中运行", "project": "LEARNING"}'
# 搜索记忆
curl "http://localhost:8080/memory/search?q=容器"
或者在您的AI客户端中自然使用:
"在我的记忆中搜索Docker信息"
"记住这个:FastAPI是一个现代的Python网络框架"
访问交互式记忆仪表板:
http://localhost:8080/ui
特性:
仪表板会自动检测API服务器,因此可以在localhost、Docker容器和远程部署中工作。
使用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() → 查看:Helios-LoadBalancer (45), Cognio-Memory (23), ...
2. set_active_project("Helios-LoadBalancer")
3. save_memory("缓存TTL是300秒") → 自动保存到Helios-LoadBalancer
4. search_memory("缓存设置") → 自动仅在Helios--LoadBalancer中搜索
5. list_memories() → 仅列出Helios-LoadBalancer的记忆
项目隔离:
始终指定一个project名称或使用set_active_project来保持记忆有序并防止不同工作空间之间的上下文混合。
| 方法 | 端点 | 描述 |
|---|---|---|
| GET | /health | 健康检查 |
| POST | /memory/save | 保存新记忆 |
| GET | /memory/search | 语义/混合搜索 |
| GET | /memory/list | 列出记忆,带过滤 |
| DELETE | /memory/{id} | 按ID删除记忆 |
| POST | /memory/bulk-delete | 按项目批量删除 |
| GET | /memory/stats | 获取统计 |
| GET | /memory/export | 导出记忆 |
| POST | /memory/summarize | 摘要长文本 |
交互式文档:http://localhost:8080/docs
环境变量(参见.env.example):
复制示例并编辑本地覆盖:
cp .env.example .env
# 数据库
DB_PATH=./data/memory.db
# 嵌入
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
# 可选API密钥用于认证
API_KEY=your-secret-key
# 搜索
DEFAULT_SEARCH_LIMIT=5
SIMILARITY_THRESHOLD=0.4
HYBRID_ENABLED=true
HYBRID_MODE=rerank # candidate | rerank
HYBRID_ALPHA=0.6 # 0..1, 数值越高越语义化
HYBRID_RERANK_TOPK=100 # 重新排序候选池大小
# 摘要
SUMMARIZATION_ENABLED=true
SUMMARIZATION_METHOD=abstractive # extractive | abstractive
SUMMARIZATION_EMBED_MODEL=all-MiniLM-L6-v2
# 自动标记(可选)
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
# 性能
MAX_TEXT_LENGTH=10000
BATCH_SIZE=32
SUMMARIZE_THRESHOLD=50
# 日志
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/ # 核心应用
│ ├── main.py # FastAPI应用
│ ├── config.py # 环境配置
│ ├── models.py # 数据模式
│ ├── database.py # SQLite操作
│ ├── embeddings.py # 语义搜索
│ ├── memory.py # 记忆CRUD
│ ├── autotag.py # 自动标记
│ └── utils.py # 辅助函数
│
├── mcp-server/ # MCP集成
│ ├── index.js # MCP服务器
│ └── package.json # 依赖项
│
├── scripts/ # 实用工具
│ ├── setup-clients.js # 自动配置AI客户端
│ ├── backup.sh # 数据库备份
│ └── migrate.py # 架构迁移
│
├── tests/ # 测试套件
├── docs/ # 文档
└── examples/ # 使用示例
# 安装依赖
poetry install
# 运行测试
pytest
# 启动开发服务器
uvicorn src.main:app --reload
| 操作 | 时间 | 备注 |
|---|---|---|
| 保存记忆 | ~20毫秒 | 包括嵌入 |
| 搜索(1000记忆) | ~15毫秒 | 语义相似度 |
| 搜索(10000记忆) | ~50毫秒 | 仍然很快 |
| 模型加载 | ~3秒 | 启动时一次性加载 |
MIT许可证 - 详见LICENSE
为更好的AI对话而构建