为 AI Agent 提供稳定、可复用、可观测的代码上下文基础设施
Hybrid Retrieval · Project Memory · MCP Server · Retrieval Observability
English · 文档 · 首次使用 · 部署手册 · CLI · MCP
ContextAtlas 是一个面向 AI 编程 Agent 的开源上下文基础设施——提供混合代码检索、项目记忆和检索可观测能力,可通过 CLI、MCP 服务器或嵌入式库接入。它结合 Tree-sitter 语义分片、LanceDB 向量搜索、SQLite FTS5 全文检索和 Token 感知的上下文打包,为 Claude Code、Codex 和自定义 Agent 工作流提供高质量、结构化的代码上下文。
2026-04-15:新增 git hook 自动维护,--quick健康检查(260x 提速)、幽灵索引目录清理和三层 hook 防护(防抖 + 快速模式 + 每日节流)。2026-04-14:将 11 个 Memory MCP 工具的业务逻辑下沉到 application 层,完成三层架构分离(CLI / MCP adapter → application → domain),并清零全量 TypeScript 编译错误。2026-04-10:codebase-retrieval默认附带轻量直接图谱摘要,MCP 元数据、测试与更新日志同步到位。2026-04-09:为索引计划增加 churn / cost 策略、把长期记忆迁到独立表 + FTS5,并完成默认路径硬化、阈值配置化、运维告警口径对齐与文档同步。2026-04-08:新增 embedding gateway、本地缓存与多上游切换能力,并补齐 Hugging Face 接入与 MCP 上下文生命周期工具。2026-04-07:围绕索引链路完成轻量计划、快照复制优化、队列可观测、fallback 稳定性和性能基准建设。2026-04-06:收口默认主路径、记忆治理和运维可观测能力,让首次使用、反馈闭环和健康检查更清晰。
ContextAtlas 不是单一的“代码搜索工具”。它解决的是更实际的工程问题:
- agent 能不能在大仓库里更快找到正确代码
- agent 能不能把项目理解沉淀下来,而不是每次重读整个仓库
- 检索、索引和记忆系统本身能不能被观测、优化和治理
如果你正在构建 Claude Code、MCP 客户端或自定义 agent workflow,ContextAtlas 提供的是一层 context infrastructure:检索、记忆、上下文打包和观测。
在真实项目里,AI agent 失败往往不是因为“模型不够聪明”,而是因为上下文系统不可靠:
- 找不到真正相关的代码
- 找到的是碎片,缺少依赖和上下文
- 同一个模块反复理解,无法沉淀稳定知识
- 索引过期、检索退化、预算耗尽却没有观测信号
ContextAtlas 把这些问题拆成一套可组合的基础能力:
- 找:混合检索找到相关实现
- 补:图扩展和 token packing 补足局部上下文
- 存:项目记忆、长期记忆、跨项目 Hub 沉淀知识
- 看:索引健康、检索 telemetry、usage 和 alert 让系统可观测
ContextAtlas 决定的是提供什么上下文,而不是如何执行任务。它不处理 Agent 推理、工作流编排或业务 API 操作。
- 作为 coding agent 的仓库检索后端
- 作为 MCP server,为外部客户端提供代码检索和记忆工具
- 作为本地 CLI / skill backend,嵌入脚本、CI 或 agent workflow
- 作为跨项目知识中枢,复用模块职责、决策记录和协作经验
| 能力 | 说明 |
|---|---|
| Hybrid Retrieval | 向量召回 + FTS 词法召回 + RRF 融合 + rerank |
| Context Expansion | 基于邻居、breadcrumb、import 的局部上下文扩展 |
| Token-aware Packing | 在有限 token 预算内优先保留高价值上下文 |
| Project Memory | Feature Memory、Decision Record、Project Profile |
| Long-term Memory | 保存无法从代码稳定推导的规则、偏好、外部参考 |
| Cross-project Hub | 跨仓库共享模块记忆、依赖链和关系图谱 |
| Async Indexing | SQLite 队列 + daemon 消费 + 快照原子切换 |
| Observability | retrieval monitor、usage report、index health、memory health、alert evaluation |
- TypeScript / Node.js 20+
- Tree-sitter:语义分片
- SQLite + FTS5:元数据、检索、队列、memory hub
- LanceDB:向量存储
- Model Context Protocol SDK:MCP server
npm install -g @codefromkarl/context-atlas产品身份映射:
- 仓库名:
ContextAtlas - npm 包名:
@codefromkarl/context-atlas - CLI 命令:
contextatlas
可执行命令:
contextatlascw(短别名)
文档默认统一使用 contextatlas,cw 保留为兼容短别名。
先初始化配置目录和示例环境变量:
contextatlas init
# 选择接入模式:
contextatlas setup:local --mode cli-skill # 终端 + skill 集成
# 或
contextatlas setup:local --mode mcp # MCP 客户端集成默认配置文件位置:
~/.contextatlas/.env至少需要配置:
EMBEDDINGS_API_KEY=
EMBEDDINGS_BASE_URL=
EMBEDDINGS_MODEL=
RERANK_API_KEY=
RERANK_BASE_URL=
RERANK_MODEL=索引更新策略还支持以下可选参数:
INDEX_UPDATE_CHURN_THRESHOLD=0.35
INDEX_UPDATE_COST_RATIO_THRESHOLD=0.65
INDEX_UPDATE_MIN_FILES=8
INDEX_UPDATE_MIN_CHANGED_FILES=5INDEX_UPDATE_CHURN_THRESHOLD:改动文件占比达到阈值时,index:plan/index:update更倾向直接建议fullINDEX_UPDATE_COST_RATIO_THRESHOLD:估算增量处理成本接近全量时触发fullINDEX_UPDATE_MIN_FILES/INDEX_UPDATE_MIN_CHANGED_FILES:只有仓库规模和改动规模都达到门槛时,才启用上述升级策略contextatlas index:diagnose:直接回显当前阈值和升级判定配置,适合排查“为什么升级成 full / 为什么仍保持 incremental”
init会写入一份可直接编辑的示例.env,包括默认的 SiliconFlow endpoint 和推荐模型配置。setup:local --mode <mode>仅写入所选模式的配置文件。模式选择指引见 首次使用。 setup 后建议运行contextatlas health:full,一次性自检索引、记忆、图谱、契约和 MCP 进程状态。
如果你是第一次接入,先看 首次使用。
contextatlas start /path/to/repocontextatlas init
# 编辑 ~/.contextatlas/.envcontextatlas index /path/to/repocontextatlas search \
--repo-path /path/to/repo \
--information-request "用户认证流程是如何实现的?"contextatlas daemon startcontextatlas mcpContextAtlas 支持两种互斥的接入模式,通过 setup:local --mode <mode> 选择:
- cli-skill:终端 + skill 集成,所有操作通过
contextatlasCLI 命令完成,不暴露 MCP server - mcp:MCP 客户端集成,通过 Claude Desktop、Cursor、Codex MCP 等标准工具协议调用
详见 首次使用 中的模式选择指引。
适合:
- 自定义 agent skills
- shell workflow / CI 脚本
- 本地调试与检索分析
示例:
# 检索
contextatlas search --repo-path /path/to/repo --information-request "支付重试策略在哪里实现?"
# 项目记忆
contextatlas memory:find "search"
contextatlas decision:list
# 健康检查
contextatlas health:full适合:
- 支持 MCP 的桌面客户端
- 需要以标准 tool 调用 ContextAtlas 能力的 agent 系统
如果只希望 MCP 客户端看到只读检索、图谱、契约和记忆读取工具,可使用 contextatlas setup:local --mode mcp --toolset retrieval-only。
Claude Desktop 配置示例:
{
"mcpServers": {
"contextatlas": {
"command": "contextatlas",
"args": ["mcp"],
"env": {
"CONTEXTATLAS_EXPOSURE_MODE": "mcp"
}
}
}
}ContextAtlas 的 MCP 工具覆盖:
- 代码检索
- 项目记忆
- 长期记忆
- 跨项目 Hub
- 自动记录与建议写回
索引:Crawler / Scanner → Chunking → Indexing → Vector / SQLite Storage
检索:Vector + FTS Recall → RRF → Rerank → Graph Expansion → Context Packing
记忆:Project Memory / Long-term Memory / Hub → CLI / MCP Tools
ContextAtlas 更关注“给 agent 什么上下文”,而不是“替 agent 完成任务决策”。更完整的边界说明见 仓库定位 和 工程定位文档。
| 文档 | 用途 |
|---|---|
| 文档总览 | 文档目录统一入口,区分稳定文档、计划、更新日志和归档材料 |
| 2026-04-15 更新总结 | 快速健康检查、幽灵索引清理与 git hook 自动运维闭环 |
| 2026-04-10 更新总结 | codebase-retrieval 默认附带图谱摘要,并同步 MCP 文档与测试口径 |
| 首次使用 | 10 分钟跑通默认闭环,先理解包名、CLI 名和第一条查询 |
| 2026-04-07 更新总结 | 索引 7 个阶段优化总结,覆盖轻量计划、快照复制、健康修复、队列可观测性、fallback、存储裁剪与 benchmark |
| 部署手册 | 安装、部署场景、MCP 集成、运维建议 |
| CLI 命令参考 | 所有 CLI 命令的分类说明和示例 |
| MCP 工具参考 | MCP 工具总览、参数和调用顺序 |
| 项目记忆详解 | Feature Memory、Decision Record、Catalog 路由 |
| 仓库定位 | 仓库角色、设计思路、系统边界 |
| 工程定位文档 | ContextAtlas 在 harness engineering 中的定位 |
| 产品路线图 | 后续版本规划和演进方向 |
| 后续任务执行清单 | 将当前未完全关闭的后续事项整理为可执行任务板 |
| 迭代执行计划(2026-04-08) | 按迭代批次拆分后续任务,便于直接排期执行 |
欢迎通过以下方式参与改进 ContextAtlas:
- 提交 issue 报告 bug 或文档问题
- 提交 PR 修复检索、记忆、监控或文档问题
- 补充真实使用场景、部署经验和 benchmark 数据
- 改进 README、CLI 文档和 MCP 工具示例
如果你准备提交代码,建议先:
- 运行
pnpm build确认可以构建 - 确认命令示例、README 和文档与当前实现一致
- 尽量把功能、文档和运维说明一起补齐
pnpm build
pnpm build:release
pnpm dev
node dist/index.jsMIT
