Muvon/octocode

Structural code intelligence for AI agents — semantic search, knowledge graphs, and a built-in MCP server in one Rust binary. Give Claude, Cursor, and any MCP client a deep understanding of your codebase.

Octocode – 面向 AI 代理的结构化代码智能

是什么 – Octocode 是一个开源的 Rust 工具,可将代码库转换为实时可查询的知识图谱。它自带一个 MCP 服务器(Claude Desktop、Cursor、Windsurf 等使用的 Model-Center-Protocol),使 AI 助手能够像人类一样搜索、导航并推理项目结构。

为何重要 – 传统的检索增强生成(RAG)将源文件视为扁平的文本块,丢失了导入、函数调用、继承和模块边界之间的关系。Octocode 提取一个基于 AST 的符号图,具有确定性的边(importscallsextendsimplements 等),并将其图谱和语义搜索功能暴露给任何 MCP 兼容的代理。结果是,AI 可以给出代码感知的回答,例如“认证逻辑在哪里处理?”或“哪些文件依赖支付模块?”,而无需通过关键词匹配猜测。


核心功能

功能 你将获得
语义搜索 自然语言查询使用 BM25 关键词匹配和向量嵌入(Voyage、OpenAI、Jina 等)的混合方式返回最相关的文件。
实时 AST 图 Tree-sitter 将当前源码树解析为节点(文件、符号)和边(importscalls 等),始终保持最新状态——无需单独索引。
GraphRAG(可选) 可选的持久化图在确定性图之上添加 LLM 生成的描述和更广泛的架构关系。
LSP 集成 启动时使用 --with-lsp,服务器将 goto-definitionfind-referenceshovercompletion 等请求转发给你的语言服务器(如 rust-analyzer)。
结构化搜索 AST 模式匹配可定位特定代码模式(例如所有 .unwrap() 调用)。
多语言支持 16 种语言原生支持(Rust、Python、TypeScript/JS、Go、PHP、C++、Ruby、Elixir、Java、Swift、Svelte、Lua、CSS、JSON、Bash、Markdown)。
本地优先 & 隐私优先 可通过 fastembed 本地生成嵌入;云服务为可选,仅查看你明确发送的片段。

工作原理(高层次流程)

  1. Tree-sitter 解析 每个源文件 → 生成文件、函数、类等节点。
  2. 实时符号图 从这些节点构建,具有确定性边(containsimportscalls 等)。
  3. 可选索引:为每个文件(或符号)计算嵌入并存储;可选 LLM 可添加文本描述。
  4. MCP 服务器 暴露 RPC 工具(semantic_searchview_signaturesgraphragstructural_search、LSP 辅助工具),AI 代理调用。
  5. 混合检索 结合 BM25 关键词得分与向量相似度(RRF 融合)对结果进行排序。

快速开始(安装 → 索引 → 查询)

# 安装(curl 安装器、Homebrew 或 cargo)
curl -fsSL https://raw.githubusercontent.com/Muvon/octocode/master/install.sh | sh
# 或:brew install muvon/tap/octocode
# 或:cargo install octocode

# 设置嵌入提供者(Voyage AI 密钥示例)
export VOYAGE_API_KEY="your-key"

# 索引项目
cd /path/to/your/project
octocode index   # 处理每个文件并构建实时图谱

# 自然语言搜索
octocode search "authentication middleware"

连接 AI 助手(MCP 客户端)

在客户端的 mcpServers 配置中添加服务器条目,例如 Claude Desktop:

{
  "mcpServers": {
    "octocode": {
      "command": "octocode",
      "args": ["mcp", "--path", "/path/to/your/project"]
    }
  }
}

现在助手可以调用 semantic_searchgraphrag 等工具,并以具体位置和调用图回答代码库问题。

检索质量(基准测试)

Octocode 随附一个可复现的基准测试(127 个代码搜索查询),在自身源码树上运行。使用简单的混合策略(BM25 0.3 + 向量 0.7)达到:

  • Hit@5 = 0.732
  • Hit@10 = 0.835
  • MRR = 0.572
  • Recall@10 = 0.807 关键词加权可使 Hit@5 比仅使用密集检索提升 +22%。基准测试还表明,通用代码重排序器(bge-reranker-base)会降低性能,表明需要专用代码重排序器。

谁可能使用它

  • 开发者:希望其 LLM 驱动的助手(Claude、Cursor 等)理解仓库实际架构的人。
  • 团队:构建需要可靠、隐私保护代码导航的内部 AI 代理的人。
  • 工具制作者:寻找即用型 MCP 服务器,提供 LSP 级精度而无需重新实现 AST 解析的人。

许可与社区

  • 许可证:Apache 2.0(宽松,适合商业使用)。
  • 仓库活跃度:CI 指示器、覆盖率指示器、crates.io 发布、持续增长的星标数。
  • 支持:GitHub Issues、讨论区、联系邮箱(opensource@muvon.io)。

总结:Octocode 是一个真实、生产级别的 Rust 项目,为 AI 代理提供代码的结构化、基于图的视图,实现精确、上下文感知的辅助,同时将所有内容保留在本地并完全受控。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目