Cortex 是一个为 AI Agent 设计的本地知识库引擎。单二进制文件部署,原生支持 MCP 协议,内置混合搜索(向量+BM25)和Agent 记忆系统。100% 本地运行,零外部依赖。
cortex start — 一条命令同时启动 MCP + REST API,自动适配所有环境 🚀
给 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 工具数 | 🔧 8 个 搜索/上下文/记忆/健康/建议 |
🔧 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% 本地部署的知识管理需求 |
cortex start 命令 — 一条命令同时启动 MCP + REST API,自动适配所有环境.bak 备份POST /mcp 端点,任何 HTTP 客户端均可调用 MCP Tool.md > 代码 > .txt > .html/.css)[][]float32→[]float32,去掉 23K 个 slice headerinitStorage 新增 buildIndex 参数)cortex serve 修复 — REST API 现在正确监听 :8080,/health、/v1/search 等端点可用cortex.db_flat_idx.json,下次启动秒加载(3 秒读 23K 向量)cortex_health MCP 工具显示修复 — 正确显示 embedding 状态而非硬编码 none (FTS5)go vet 零警告cortex_suggest MCP 工具 — 第 8 个 MCP 工具,预联想搜索建议GET /v1/suggest REST 端点 — 基于 prefetch 缓存的即时搜索建议go vet 零警告,CRUD 测试重复声明修复PrefetchEngine 预联想 — 文件变更时自动提取关键词并异步预搜索cortex watch 集成 — 搭配 search.prefetch: true 启用SearchConfig.Prefetch(默认 false)cortex version 命令 — 新增版本号查询ReadTimeout/WriteTimeout/ReadHeaderTimeout/MaxHeaderBytesStopAutoBackup()/watcher.Stop() 使用 sync.Once 防 panicdebounceMap 定时清理过期条目expandChineseQuery 改用 strings.HasSuffix 代替字节索引go vet 零警告cortex watch 命令 — 基于 fsnotify 的文件监听,变更自动增量索引cortex_health MCP 工具 — 第 7 个 MCP 工具,健康检测 + 文档统计Content 存原文(无空格),标题用文件名代替”section”cortex serve 修改 config.yaml 自动生效,无需重启cortex setup 首次配置自动开启 auth_enabled: true✅ 全量重建 — --force 标志跳过内容哈希,新分词/新规则即时生效
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 即用# 🚀 新手一秒上手(自动创建配置 + 索引文档)
./cortex install ~/my-docs
# 如果需要交互式配置 embedding 提供商
./cortex setup
# 🎯 一条命令启动所有服务(推荐)
cortex start
# → 自动检测可用端口(2021→2022→...)
# → 同时启动 MCP stdio + REST API
# → 自动注册到 Claude Code / Cursor / OpenCode / Trae
# → 打印接入指引面板
# 仅注册到 AI 工具(不启动服务)
cortex start --register-only
# 自定义端口或禁用某模式
cortex start --port 3000 # 指定 REST API 端口
cortex start --no-mcp # 仅启动 REST API
cortex start --no-rest # 仅启动 MCP
cortex start --no-register # 跳过自动注册
# 索引文档(显示实时进度条,支持断点续传)
cortex index ~/my-docs
# 高级索引选项
cortex index ~/my-docs --force # 从头重新索引
cortex index ~/my-docs --timeout 30m # 30 分钟超时
cortex index ~/my-docs --workers 32 # 32 个并发 worker
# 文件监听(自动增量索引)
cortex watch ~/my-docs # 文件变更自动重新索引
# 启动 MCP 服务器(供 AI Agent 使用)
cortex mcp
# 搜索
cortex search "如何实现 Go 并发"
# 配置热加载(serve 模式下自动启用)
cortex serve # 修改 config.yaml 无需重启
# 知识库去重
cortex dedup # 内容哈希去重
cortex dedup --mode vector # 向量语义去重
# 查看用量
cortex usage # 存储用量和套餐信息
🚀 单二进制下载即运行,无 Python/Node/Docker 依赖 |
🔌 MCP 原生8 个 MCP 工具,AI Agent 开箱即用 |
🌐 三模接入MCP stdio · MCP over SSE · REST API |
🧠 记忆系统长期记忆 + RAG 上下文 |
🔍 混合搜索向量语义 + BM25 关键词 |
🤖 自动注册一键注册 Claude Code / Cursor |
📊 Prometheus39 个监控指标 |
|
🗑️ 三层去重内容哈希 + 向量语义 + MinHash |
🔒 安全加固IP 限流 / 密码策略 / Header认证 |
🐳 Docker 优化多阶段构建 |
| 工具 | 说明 | 对应 REST API | 传输方式 |
|---|---|---|---|
cortex_search |
混合搜索(向量 + BM25) | GET /v1/search |
stdio / SSE |
cortex_context |
RAG 上下文组装 | GET /v1/context |
stdio / SSE |
cortex_memory_write |
写入记忆条目 | POST /v1/memory |
stdio / SSE |
cortex_memory_search |
搜索记忆条目 | GET /v1/memory/search |
stdio / SSE |
cortex_memory_delete |
删除单条记忆 | DELETE /v1/memory/:id |
stdio / SSE |
cortex_memory_delete_batch |
批量删除记忆 | — | stdio / SSE |
cortex_health |
健康检测 + 状态统计 | GET /health |
stdio / SSE |
cortex_suggest |
预联想搜索建议 | GET /v1/suggest |
stdio / SSE |
传输方式:
stdio—cortex mcp/cortex start(标准 MCP 客户端如 Claude Code)SSE—POST /mcp端点(cortex start/cortex serve自动挂载,任意 HTTP 客户端可用)
┌──────────────────────────────────────────────────────────┐
│ Cortex CLI │
├──────────────────────────────────────────────────────────┤
│ index │ search │ start │ serve │ mcp │ watch │
├──────────────────────────────────────────────────────────┤
│ 混合搜索引擎 │
│ 向量搜索 (内存索引) │ FTS5 (BM25) │
├──────────────────────────────────────────────────────────┤
│ L1+L2 两级缓存 (v2.1) │
│ go-cache (内存) │ SQLite │
├──────────────────────────────────────────────────────────┤
│ SQLite 存储层 │
│ 文档表 │ 分块表 │ 向量表 │ 缓存表 │ 用户表 │
├──────────────────────────────────────────────────────────┤
│ MCP 协议 · REST API · SSE │
│ MCP stdio │ MCP over SSE (/mcp) │ 15+ REST 端点 │
│ 8 个 MCP 工具 │ Prometheus │ AI 工具自动注册 │
└──────────────────────────────────────────────────────────┘
技术栈:
| 类别 | 端点 | 方法 | 说明 |
|---|---|---|---|
| 搜索 | /v1/search |
GET | 混合搜索(向量 + FTS) |
/v1/context |
GET | RAG 上下文构建 | |
| MCP | /mcp |
GET/POST | MCP Streamable HTTP (SSE) |
| 记忆 | /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: 20
# cortex start 命令配置
starter:
start_port: 0 # REST API 起始端口(0=自动检测)
auto_register: true # 自动注册到 AI 工具
register_skip_tools: [] # 跳过的工具列表
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 -ldflags="-s -w" -o cortex ./cmd/cortex # 纯 Go,无需 CGO
# 一步安装(自动配置 + 索引)
./cortex install ./docs
# 或手动启动服务
./cortex serve
# 运行测试
go test ./... # 15 个包全部通过
# 一键去重
./cortex dedup
Windows 小白一键脚本(无需 Go 环境):
.\scripts\install.ps1 -DocDir "D:\我的文档"
| 指标 | 值 |
|---|---|
| 记忆写入 | < 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 精确匹配 |
| 索引吞吐量(FTS5-only) | > 1000 files/min(优化后 ~460 files/s) |
| 全量索引(18k 文件) | ~40 秒 |
| 索引失败率 | < 5%(优化后,自动跳过二进制/多媒体) |
| 实时进度反馈 | 动态进度条 · 速度/ETA/当前文件 |
| 中断恢复 | Checkpoint 自动保存,重启续跑 |
| 文件监听 | cortex watch · fsnotify 实时增量索引 |
| 单文件超时保护 | 5 分钟 Embedding 超时 |
| 配置热加载 | cortex serve 修改配置无需重启 |
| 自动备份 | 24h 间隔 · 保留最近 10 份 |
| 内存占用 | ~30 MB / 进程 |
| 二进制大小 | 34.2 MB (strip 优化) |
| 测试覆盖率 | 10/10 包通过 · 全部核心逻辑有测试 |
| MCP 工具 | 8 个(search/context/memory×4/health/suggest) 双传输: stdio + SSE (/mcp 端点) |
| Bug 状态 | 0 · FG 循环验证通过 |
MIT License — 可自由使用、修改、商业化。
Cortex 不是「又一个知识库工具」,而是 AI Agent 时代的基础设施。
在 MCP 协议生态快速发展的当下,它解决了一个真实且普遍的需求——给 AI Agent 装上持久记忆。单二进制、零配置、MCP 原生、MIT 开源,任何人都可以自由使用。
🧠 Cortex v3.5 — 让 AI Agent 拥有记忆
单二进制 · 零配置 · MCP 原生 · 完全本地 · MIT 开源