返回市场
认知服务器

认知服务器

作者:0xReLogic2 星标更新:2025-11-15

项目介绍

Cognio

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

CI/CD License: MIT Python 3.11+ FastAPI

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

适用于:

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

特性

  • 语义搜索:使用句子转换器按意义查找记忆
  • 多语言支持:无缝支持100多种语言的搜索
  • 持久存储:基于SQLite的存储,跨会话生存
  • 项目组织:按项目和标签组织记忆
  • 自动标记:通过大型语言模型(如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客户端:

支持的客户端:

  • Claude Desktop
  • Claude Code (CLI)
  • VS Code (GitHub Copilot)
  • Cursor
  • Continue.dev
  • Cline
  • Windsurf
  • Kiro
  • Gemini CLI

快速设置:

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

cd mcp-server
npm run setup

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

手动配置:

参见mcp-server/README.md获取特定客户端的MCP配置示例。

首次运行时,Cognio会在您的工作区自动生成cognio.md,其中包含AI工具的使用指南。

3. 测试它

# 保存记忆
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网络框架"

4. Web UI仪表板

访问交互式记忆仪表板:

http://localhost:8080/ui

特性:

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

仪表板会自动检测API服务器,因此可以在localhost、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() → 查看: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来保持记忆有序并防止不同工作空间之间的上下文混合。

API端点

方法端点描述
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

技术栈

  • 后端:Python 3.11+,FastAPI,Uvicorn
  • 数据库:具有JSON支持的SQLite
  • 嵌入:sentence-transformers(paraphrase-multilingual-mpnet-base-v2,768维)
  • MCP服务器:Node.js,@modelcontextprotocol/sdk
  • 自动标记:API
  • 测试:pytest,pytest-asyncio,pytest-cov
  • 部署:Docker,docker-compose

性能

操作时间备注
保存记忆~20毫秒包括嵌入
搜索(1000记忆)~15毫秒语义相似度
搜索(10000记忆)~50毫秒仍然很快
模型加载~3秒启动时一次性加载

许可证

MIT许可证 - 详见LICENSE

链接


为更好的AI对话而构建