代码图集
一个代码智能图,让AI编码代理在一个可搜索的图中深入、高效地理解你的代码库——结构、文档和依赖关系。
绘制你的代码库。搜索它三种方式。把它喂给特工。
   
______________________________________________________________________
问题
每次人工智能代理接触你的代码库时,它都会燃烧代币,只是想知道东西在哪里。查找函数名称。阅读五个文件以了解调用链。在文档中搜索上下文。重复——在每个任务、每个会话中。对于大型项目,代理商可以花费 30-50%的上下文窗口 在编写一行代码之前,先了解方向。
许多工具都解决了其中的一个问题:语义搜索、图遍历或关键字查找。但是开发人员并不是通过一个镜头来理解代码库的——他们构建了一个 心智模型 它同时连接结构、意义和名称。代理人也需要同样的东西。
代码图谱是一种心理模型,以图形的形式表现出来。
这是什么?
Code Atlas构建了一个 图数据库 您的整个代码库——代码结构、文档和依赖关系——并通过以下方式公开 MCP工具 AI编码代理可以用来理解、导航和推理你的代码。
三种搜索类型,一个系统:
- 图的遍历 --关注关系:谁调用此函数?这个类继承了什么?哪些服务依赖于这个图书馆?
- 语义搜索 --按含义查找代码:“身份验证中间件”即使已命名,也会查找相关代码
verify_token_chain - BM25关键字搜索 --精确匹配:找到特定的错误消息、配置键或函数名
全部由 Memgraph 作为一个单一的后端。
主要特点
- Monorepo原生 --自动检测子项目、跟踪跨项目依赖关系、范围查询
- 一流的文档 --索引markdown文档、ADR和README,并链接到它们所描述的代码
- AST级增量索引 --只重新索引实际更改的实体,而不是整个文件
- 模式检测 --用于装饰器路由、事件处理程序、DI、测试的可插拔检测器→代码映射等
- 图书馆意识 --用于外部依赖的轻量级存根,用于内部库的完整索引
- 自托管 --使用Docker在本地运行。没有数据离开您的机器
- 没有额外的API成本 --代理优先设计意味着所有智能都通过您现有的订阅运行;通过TEI的本地嵌入,无需额外的API密钥
- 代币高效 --有预算意识的上下文组装,优先考虑最重要的事情
- 可插拔AI --TEI用于嵌入,LiteLLM用于LLM调用,或自带
- MCP服务器 --适用于Claude Code、Cursor、Windsurf或任何兼容MCP的客户端
这两者相比如何?
这个领域有几个优秀的工具——基于图的分析器、语义搜索引擎、wiki生成器和IDE集成索引器。Code Atlas建立在他们的想法之上,同时弥补了一个空白:没有一个工具将图遍历、语义搜索和BM25关键字搜索与文档智能和MCP暴露相结合。
有关DeepWiki、Cursor、Sourcegraph Cody、Kit、代码图rag、代码图rust等的详细比较,请参阅 docs/landscape.md.
MCP工具
15个工具通过 模型上下文协议,旨在最大限度地减少上下文窗口开销。
| 工具 | 功能 | 搜索 | 满 | 延迟(平均值/p95) |
|---|---|---|---|---|
| 搜索 | ||||
hybrid_search | 主要工具 --通过RRF融合图+BM25+矢量。根据查询形状自动调整权重。 | ~117 | ~497 | 548/677毫秒 |
text_search | BM25关键字搜索。引号短语、通配符、特定字段查询。 | ~90 | ~275 | 34/36毫秒 |
vector_search | 通过嵌入实现语义相似性。按含义而不是名称查找代码。 | ~67 | ~297 | 102/125毫秒 |
get_node | 按名称查找实体。级联:精确(uid+名称)→ 部分(后缀>前缀>包含)。 | 约100 | 约254 | 7/8毫秒 |
| 导航 | ||||
get_context | 展开节点的邻域:父节点、兄弟节点、调用者、被调用者、文档。 | ~64 | ~273 | 34/36毫秒 |
cypher_query | 对图形运行只读Cypher。自动限制,写保护。 | ~59 | ~168 | 3/3毫秒 |
| 分析 | ||||
analyze_repo | 结构、中心性、依赖性、模式或质量分析。 | ~41 | ~266 | 22/23毫秒 |
generate_diagram | 美人鱼图:包、导入、继承、模块细节。 | ~37 | ~254 | 3/3毫秒 |
| 指导 | ||||
get_usage_guide | 为客服提供快速入门或特定主题的指导。 | ~35 | ~106 | \<1/\<1ms |
plan_search_strategy | 推荐问题的搜索工具+参数。 | ~40 | ~97 | \<1/\<1ms |
validate_cypher | 在执行之前捕获Cypher错误。 | ~58 | ~116 | 1/2毫秒 |
schema_info | 全图模式:标签、关系、Cypher示例。 | ~75 | ~96 | \<1/\<1ms |
| 状态 | ||||
index_status | 项目、实体计数、架构版本、索引运行状况。 | ~72 | ~93 | 22/23毫秒 |
list_projects | 具有依赖关系的Monorepo项目列表。 | ~56 | ~77 | 12/13毫秒 |
health_check | 基础设施诊断:Memgraph、TEI、Valkey、模式。 | ~55 | ~76 | 218/264毫秒 |
根据MCP JSON工具定义(tiktoken cl100k_base)测量的令牌计数。 搜索 =名称+描述(总计~966); 满的 =名称+描述+带字段描述、枚举和约束的参数模式(共约2945个)。所有参数都是自记录的——代理可以一次性调用任何工具,而无需调用 get_usage_guide 第一。 延迟 使用代码图集仓库上的本地TEI嵌入(约1400个实体)进行测量,5次迭代,热嵌入缓存。看 scripts/profile_query.py.
快速开始
先决条件
1.启动基础设施
下载合成文件并启动Memgraph+Valkey:
curl -O https://raw.githubusercontent.com/SerPeter/code-atlas/main/docker-compose.yml
docker compose up -d可选-添加本地嵌入(不需要API密钥):
docker compose --profile tei up -d2.为你的项目建立索引
uvx --from code-atlas-mcp atlas index /path/to/your/project
uvx --from code-atlas-mcp atlas status3.连接到您的AI代理
克劳德代码:
claude mcp add code-atlas -- uvx --from code-atlas-mcp atlas mcp游标/其他MCP客户端 --添加到您的MCP配置中:
{
"mcpServers": {
"code-atlas": {
"command": "uvx",
"args": ["--from", "code-atlas-mcp", "atlas", "mcp"]
}
}
}看 CLI使用指南 更多命令和选项。
发展
如果你想贡献或从源代码运行:
git clone https://github.com/SerPeter/code-atlas.git
cd code-atlas
uv sync --group dev
uv run pre-commit install演出
| 度量 | 值 |
|---|---|
| 完整索引(107个文件) | 55秒 (当地TEI) |
| 仅解析吞吐量 | 每秒600至700个文件 |
get_node / text_search | 7毫秒/34毫秒 |
vector_search | 102毫秒 |
| 并行QPS | 238 (零错误) |
完整索引包括解析、图翻转和通过本地TEI(8个并发工作进程)嵌入。仅解析是没有I/O的原始树占用CPU时间。查询延迟是 scripts/profile_query.py.完整的基准表: docs/benchmarks.md
文档
- 建筑 --系统设计、管道、部署模型
- 景观 --代码智能工具比较与设计原理
- 配置 --atlas.toml、.atlasinore、环境变量
- CLI使用情况 --索引、搜索、守护进程模式
- 基准测试 --解析、查询延迟、并发性
- 存储库指南 --构建代码以更好地索引
支持代码图集
我构建了Code Atlas,因为我的人工智能代理一直在燃烧一半的上下文,只是为了弄清楚事情在更大的范围内的位置 代码库。没有什么能将我需要的搜索类型组合在一个地方,所以我构建了它并将其开源,这样你就可以 也有好处。
如果Code Atlas为您节省了时间、代币,或使您的代理明显更好——请考虑 赞助该项目.

