Cortex 是一个为 AI Agent 设计的本地知识库引擎。单二进制文件部署,原生支持 MCP 协议,内置混合搜索(向量+BM25)和Agent 记忆系统。100% 本地运行,零外部依赖。
给 Claude Code、OpenCode 等 AI Agent 装上永久记忆 🧠
GitHub 仓库 · 🎨 营销落地页 · 本地预览 · 📖 深度技术文章
📊 产品对比 ·
⚡ 快速开始 ·
✨ 核心特性 ·
🏗️ 系统架构 ·
📡 API ·
🔧 配置
🌐 English Version ·
🛠️ 开发 ·
📋 测试报告 ·
📋 迭代计划 ·
📋 评估报告 ·
📊 Grafana
| 功能 | 🚀 Cortex | Mem0 | AnythingLLM | ChromaDB | Qdrant | Dify |
|---|---|---|---|---|---|---|
| 📦 部署 | ||||||
| 部署方式 | ✅ 单二进制 下载即用 |
⚠️ pip/Docker 需 Python 环境 |
⚠️ Docker/Desktop 需 Node.js |
⚠️ pip/Docker 需 Python |
✅ 单二进制 下载即用 |
⚠️ Docker Compose 多服务部署 |
| 外部依赖 | ✅ 零依赖 可选 Ollama |
❌ 需 LLM API | ❌ 需 LLM API | ✅ 无 | ✅ 无 | ❌ 多服务 |
| 🤖 AI Agent 集成 | ||||||
| MCP 协议原生 | ✅ 原生支持 cortex mcp |
⚠️ 插件集成 | ✅ 支持 | ❌ 不支持 | ❌ 不支持 | ✅ 支持 |
| MCP 工具数 | 🔧 5 个 搜索/上下文/记忆 |
🔧 1-2 个 | 🔧 1 个 | — | — | 🔧 1-2 个 |
| Agent 记忆系统 | ✅ 内置 长期记忆+RAG |
✅ 专注 多层记忆 |
❌ 仅对话 | ❌ 向量库 | ❌ 向量库 | ⚠️ 基础记忆 |
| 🔍 搜索 | ||||||
| 搜索类型 | ✅ 混合搜索 向量+BM25+RRF |
✅ 混合搜索 | ✅ 向量搜索 | ✅ 向量/混合 | ✅ 混合搜索 | ⚠️ 依赖后端 |
| 文件格式 | 📄 MD/PDF/DOCX +代码文件 |
— 纯记忆 | ✅ 多格式 | — 纯向量 | — 纯向量 | ✅ 多格式 |
| 📊 运维 | ||||||
| 内置监控 | ✅ Prometheus 39 指标 |
⚠️ Dashboard | ⚠️ 基础 | ❌ 无 | ❌ 无 | ✅ Grafana |
| 缓存加速 | ✅ L1+L2 两级 内存+SQLite |
⚠️ 基础缓存 | ⚠️ 基础缓存 | ❌ 无 | ✅ 内存 | ⚠️ 基础 |
| 隐私保护 | ✅ 完全本地 100% 离线 |
⚠️ 本地/云 | ✅ 完全本地 | ✅ 完全本地 | ✅ 完全本地 | ⚠️ 本地/云 |
| 开源协议 | ✅ MIT 商用自由 |
✅ Apache 2.0 | ✅ MIT | ✅ Apache 2.0 | ✅ Apache 2.0 | ⚠️ 附加条款 |
Cortex 的核心差异化:它是唯一一个同时具备「单二进制部署 + MCP 原生 + 内置记忆系统 + 混合搜索 + Prometheus 监控」的工具,专为 AI Agent 场景设计。
| 场景 | 说明 |
|---|---|
| 🤖 AI Agent 记忆 | 让 Claude Code / OpenCode / Cursor 等 Agent 跨会话记住用户偏好和历史 |
| 📚 团队知识库 | 将团队 Wiki、技术文档、项目规范索引为可搜索的 RAG 知识库 |
| 🔍 代码库语义搜索 | 索引 Go/Python/JS 等代码,用自然语言搜索函数、类和实现 |
| 🏢 企业内部文档 | 员工手册、产品文档、培训材料的本地私密检索,数据不出内网 |
| 🧪 RAG 应用后端 | 作为 RAG pipeline 的检索层,提供 REST API 和 MCP 双协议接入 |
| 🔐 隐私敏感场景 | 金融、医疗、法律等需要 100% 本地部署的知识管理需求 |
running,下次运行自动恢复(修复:之前中断会错误标记为 completed)cortex index 显示动态进度条 [████░░] 45%,含速度、ETA、当前文件cortex index --timeout 30m 超时自动保存进度退出--force 重新索引 — cortex index --force path 从头开始(忽略 checkpoint)--workers 控制并发 — cortex index --workers 32 覆盖默认 16 个 workerinitStorageLight() 跳过向量索引构建,所有 CLI 命令启动 <0.5sembedding.provider: none,索引速度提升 28x,零外部依赖docs/planning/,部署配置移入 deploy/,编译产物移入 bin/cortex setup 交互式向导 — 网络检测 → 选择 Provider → 输入 API Key → 选择模型 → 测试连接 → 写入配置NewProviderFromConfig() 根据配置自动创建对应 Provider,无需修改 main.gocortex usage 查看用量和套餐PRAGMA table_info 智能迁移cortex_memory_delete_batch 批量删除node_modules/.git/.opencode/ 等噪声目录/admin 嵌入式单页 (Go embed),已接线可用--json 标志支持结构化输出IsError 协议响应/auth 端点 IP 级令牌桶限流 (5 req/s)-ldflags="-s -w" 压缩至 34.2 MBcortex_search / cortex_context / cortex_memory_write / cortex_memory_search / cortex_memory_deleteembedding.provider: none,无需 Ollama,FTS5 全文搜索modernc.org/sqlite,无需 CGO/gcc,go build 即用# 1. 下载二进制
# macOS/Linux
curl -fsSL https://github.com/lh123aa/cortex/releases/latest/download/cortex-linux-amd64.zip | unzip -
chmod +x cortex
# Windows
# Invoke-WebRequest -Uri "..." -OutFile "cortex.zip"
# 2. 运行配置向导(选择 embedding provider)
./cortex setup
# 3. 索引文档(显示实时进度条,支持断点续传)
cortex index ~/my-docs
# 4. 高级索引选项
cortex index ~/my-docs --force # 从头重新索引
cortex index ~/my-docs --timeout 30m # 30 分钟超时
cortex index ~/my-docs --workers 32 # 32 个并发 worker
# 5. 启动 MCP 服务器(供 AI Agent 使用)
cortex mcp
# 6. 搜索
cortex search "如何实现 Go 并发"
# 7. 知识库去重
cortex dedup # 内容哈希去重
cortex dedup --mode vector # 向量语义去重
# 8. 查看用量
cortex usage # 存储用量和套餐信息
🚀 单二进制下载即运行,无 Python/Node/Docker 依赖 |
🔌 MCP 原生5 个 MCP 工具,AI Agent 开箱即用 |
🧠 记忆系统长期记忆 + RAG 上下文 |
🔍 混合搜索向量语义 + BM25 关键词 |
⚡ L1+L2 缓存内存 + SQLite 两级缓存 |
📊 Prometheus39 个监控指标 |
🗑️ 三层去重内容哈希 + 向量语义 + MinHash |
🔒 安全加固IP 限流 / 密码策略 / Header认证 |
🐳 Docker 优化多阶段构建 |
| 工具 | 说明 | 对应 REST API |
|---|---|---|
cortex_search |
混合搜索(向量 + BM25) | GET /v1/search |
cortex_context |
RAG 上下文组装 | GET /v1/context |
cortex_memory_write |
写入记忆条目 | POST /v1/memory |
cortex_memory_search |
搜索记忆条目 | GET /v1/memory/search |
cortex_memory_delete |
删除单条记忆 | DELETE /v1/memory/:id |
cortex_memory_delete_batch |
批量删除记忆 | — |
┌──────────────────────────────────────────────────────────┐
│ Cortex CLI │
├──────────────────────────────────────────────────────────┤
│ index │ search │ context │ serve │ mcp │
├──────────────────────────────────────────────────────────┤
│ 混合搜索引擎 │
│ 向量搜索 (HNSW) │ FTS5 (BM25) │
├──────────────────────────────────────────────────────────┤
│ L1+L2 两级缓存 (v2.1) │
│ go-cache (内存) │ SQLite │
├──────────────────────────────────────────────────────────┤
│ SQLite 存储层 │
│ 文档表 │ 分块表 │ 向量表 │ 缓存表 │ 用户表 │
├──────────────────────────────────────────────────────────┤
│ MCP 协议 · REST API │
│ 5 个 MCP 工具 │ 15+ REST 端点 │ Prometheus │
└──────────────────────────────────────────────────────────┘
技术栈:
| 类别 | 端点 | 方法 | 说明 |
|---|---|---|---|
| 搜索 | /v1/search |
GET | 混合搜索(向量 + FTS) |
/v1/context |
GET | RAG 上下文构建 | |
| 记忆 | /v1/memory |
POST | 写入单条记忆 |
/v1/memory/batch |
POST | 批量写入记忆 | |
/v1/memory/search |
GET | 搜索记忆 | |
/v1/memory/context |
GET | 记忆 RAG 上下文 | |
/v1/memory/:id |
DELETE | 删除记忆 | |
| 认证 | /auth/register |
POST | 注册用户 |
/auth/login |
POST | 登录 | |
/auth/logout |
POST | 登出 | |
| 监控 | /health |
GET | 健康检查 |
/metrics |
GET | Prometheus 指标(:9090) |
# ~/.cortex/config.yaml
cortex:
db_path: ~/.cortex/cortex.db
log_level: info
embedding:
provider: none # none | ollama | openai | cohere | voyage | dashscope | zhipu | baidu
auto_update: true # 联网时自动检查最新模型
# 本地 Ollama(离线场景默认)
ollama:
base_url: http://localhost:11434
model: all-minilm # 推荐: all-minilm(23MB), nomic-embed-text(137MB)
# 国外 API
openai:
api_key: sk-xxx
model: text-embedding-3-small
dimension: 512
cohere:
api_key: co-xxx
model: embed-multilingual-v3.0
dimension: 1024
voyage:
api_key: pa-xxx
model: voyage-3-lite
dimension: 512
# 国内 API
dashscope:
api_key: sk-xxx
model: text-embedding-v2
dimension: 1536
zhipu:
api_key: xxx
model: embedding-3
dimension: 2048
baidu:
api_key: xxx
secret_key: xxx
model: Embedding-V1
dimension: 384
index:
workers: 4
max_tokens: 512
search:
cache_ttl: 5m
default_top_k: 10
prometheus:
enabled: true
port: 9090
| 格式 | 支持 | 分块方式 |
|---|---|---|
| Markdown (.md) | ✅ | 层级分块,标题路径追溯 |
| PDF (.pdf) | ✅ | 文本提取,自动分块 |
| Word (.docx) | ✅ | 段落解析,结构保持 |
| 纯文本 (.txt) | ✅ | 按行/段落分块 |
| 代码 (.go/.py/.js/.ts/.java 等) | ✅ | 按函数/类分块 |
| 配置 (.yaml/.json/.toml/.ini) | ✅ | 结构化提取 |
git clone https://github.com/lh123aa/cortex.git
cd cortex
go build -o cortex ./cmd/cortex # 纯 Go,无需 CGO
./cortex serve
go test ./... # 109 个测试
./cortex dedup # 一键去重
| 指标 | 值 |
|---|---|
| 记忆写入 | < 200ms / 条 |
| 记忆搜索 P50 | < 50ms(缓存命中 < 1ms) |
| 记忆搜索 P95 | < 100ms |
| RAG 上下文 | 精确 Token 裁剪 |
| 删除操作 | < 50ms / 条 |
| 缓存命中率 | > 60%(L1+L2 两级) |
| MinHash 去重 | ~12μs / chunk (102k ops/sec) |
| 向量去重效果 | 46/689 chunks 移除 (6.7%) |
| 启动时间(全部 CLI 命令) | < 0.5s(FTS5-only 模式,HNSW 按需异步加载) |
| FTS5 搜索 P50 | < 50ms(20k 分块) |
| FTS5 搜索 P95 | < 200ms(20k 分块) |
| 索引吞吐量(FTS5-only) | > 1000 files/min |
| 实时进度反馈 | 动态进度条 · 速度/ETA/当前文件 |
| 中断恢复 | Checkpoint 自动保存,重启续跑 |
| 单文件超时保护 | 5 分钟 Embedding 超时 |
| 内存占用 | ~30 MB / 进程 |
| 二进制大小 | 34.2 MB (strip 优化) |
| 测试覆盖率 | 10/10 包通过 · 全部核心逻辑有测试 |
| Bug 状态 | 0 · FG 循环验证通过 |
MIT License — 可自由使用、修改、商业化。
Cortex 不是「又一个知识库工具」,而是 AI Agent 时代的基础设施。
在 MCP 协议生态快速发展的当下,它解决了一个真实且普遍的需求——给 AI Agent 装上持久记忆。单二进制、零配置、MCP 原生、MIT 开源,任何人都可以自由使用。
🧠 Cortex v3.0 — 让 AI Agent 拥有记忆
单二进制 · 零配置 · MCP 原生 · 完全本地 · MIT 开源