← 返回 FEED
CLAUDE2026-04-21

Claude Context:让整个代码库成为 Claude Code 的上下文窗口

问题:大型代码库 + Claude Code 的上下文困境

让 Claude Code 理解一个大型代码库,最直接的方式是把整个 /src 目录加入 context。这在小项目上可行,但在真实工程场景下面临两个问题:

  1. 成本:把几千个文件全塞进 context 窗口,每次请求消耗大量 token
  2. 质量:无关代码越多,Claude 越难专注在真正相关的部分,输出质量下降

claude-context 的方案是:先建索引,用时再搜索——只把语义相关的代码片段拉进 context。

混合检索:BM25 + 向量双路并行

claude-context 使用混合检索策略,同时运行两条搜索路径:

  • BM25(关键词精确匹配):适合已知函数名、变量名、API 名称的精确查找
  • 稠密向量相似度(Dense Vector Search):适合语义相关代码的模糊查询,比如「找所有处理认证的地方」

两路结果通过 Reciprocal Rank Fusion(RRF)合并排序,返回综合相关性最高的代码片段。

增量索引:Merkle Tree 加速重建

全量索引大型代码库一次不贵,贵在每次代码变更后的重建。claude-context 用 Merkle tree 做文件变更追踪:

  • 每个文件计算内容 hash,形成树状校验结构
  • 代码更新时只对内容变更的文件重新索引
  • 其余文件跳过,显著缩短增量更新时间

对于活跃开发中的仓库,这让索引保持最新的成本降到可接受范围。

AST 感知切块:不在函数中间截断

传统 RAG 切块通常按固定字符数截断,可能把一个函数从中间切开,导致每个 chunk 的语义不完整。claude-context 使用 AST(抽象语法树)感知切块:

  • 解析代码结构,识别函数、类、模块边界
  • 在语义边界处切块,不截断表达式或函数体
  • 每个 chunk 包含完整的语义单元

这保证 Claude 拿到的每段代码都是能独立理解的逻辑单元,而不是碎片。

Embedding 与后端配置

支持多种 embedding 方案,可按成本和精度选择:

Embedding 方案说明
OpenAI精度高,有调用成本
VoyageAI代码专用 embedding,适合技术代码库
Ollama本地运行,零 API 成本
GeminiGoogle 生态集成

向量数据库后端支持两种部署方式:

  • Zilliz Cloud:托管服务,零运维
  • 本地 Milvus:自部署,数据不出本地

MCP 接入与兼容性

claude-context 通过标准 MCP 协议暴露代码搜索能力,兼容:

  • Claude Code
  • Cursor
  • Cline
  • 其他支持 MCP 的 AI 编程工具

安装后,agent 可以通过 MCP 工具调用发起语义代码搜索,不需要修改 agent 逻辑本身。