Hotdry.
ai-systems

浏览器端 GitHub 仓库知识图谱 RAG:GitNexus 无服务器代码探索

GitNexus 在浏览器中构建 GitHub repo 的知识图谱,提供 Graph RAG agent 用于交互式代码探索与分析,无需服务器部署。

GitNexus 提供了一种纯客户端解决方案,通过浏览器直接从 GitHub 仓库或 ZIP 文件构建代码知识图谱(Knowledge Graph, KG),并集成 Graph RAG agent,实现无服务器的交互式代码探索。这避免了传统 RAG 系统对后端服务器的依赖,特别适合隐私敏感或快速原型场景。核心观点是:利用 WebAssembly(WASM)技术栈,将解析、图存储和查询全栈下沉到浏览器,提升开发者的代码理解效率,同时保持零网络泄露。

首先,理解 GitNexus 的工作原理。其索引管道包括结构遍历、Tree-sitter AST 解析、跨文件符号解析、函数聚类、执行流程追踪和混合搜索索引构建。支持 TypeScript/JavaScript、Python、Java、C/C++/C#、Go、Rust 等 9 种语言。在浏览器模式下,所有组件均为 WASM 实现:Tree-sitter WASM 负责语法解析,KuzuDB WASM 作为嵌入式图数据库(支持向量索引),transformers.js 处理语义嵌入(WebGPU 加速)。例如,拖拽一个 ZIP 文件后,系统自动解析出函数调用链、模块依赖和功能集群,一次索引即可生成完整的 KG。

证据显示,这种 client-side 设计在实际使用中高效:Web UI(https://gitnexus.vercel.app)支持浏览器内 ~5k 文件规模的 repo,超出时可切换到本地 CLI 桥接模式。Graph RAG agent 通过 LangChain ReAct 框架暴露工具,如 query(BM25 + 语义 + RRF 混合搜索,按进程分组返回)、context(符号 360 度视图,包括调用者 / 被调用 / 进程参与)、impact(变更影响半径分析,支持深度分组和置信阈值)。引用 GitHub README:“impact ({target: 'UserService', direction: 'upstream', minConfidence: 0.8})” 可立即返回高置信调用链,避免 LLM 盲目探索。

可落地参数与清单:

1. Web UI 快速上手参数

  • 浏览器要求:Chrome 100+ / Firefox 100+(WebGPU 支持最佳),内存 ≥8GB。
  • 输入:GitHub URL 或 ZIP(<500MB),语言自动检测。
  • 索引阈值:--skip-embeddings(跳过嵌入,加速小 repo);maxFiles=5000(浏览器限)。
  • Agent 配置:localStorage 设置 OPENAI_API_KEY(可选,wiki 生成用),默认 gpt-4o-mini。
  • 监控点:浏览器 DevTools > Performance,观察 WASM 加载(<2s)和图渲染(Sigma.js WebGL,节点 < 10k)。
  • 回滚:刷新页面重置 in-memory KG。

2. CLI + MCP 生产集成 安装:npm install -g gitnexus,单命令 npx gitnexus analyze(从 repo root 执行,生成 .gitnexus/ 索引,gitignore)。

  • MCP 服务器:npx gitnexus mcp(stdio 模式),全局配置 npx gitnexus setup(自动写~/.cursor/mcp.json 等)。
  • 多 repo 支持:~/.gitnexus/registry.json 注册,连接池 max=5,闲置 5min 驱逐。
  • 工具参数示例:
    工具 参数 示例输出要点
    query query="auth", repo="my-app" 进程分组:LoginFlow (优先 0.042, 4 符号)
    impact target="funcX", direction="downstream", maxDepth=3, minConfidence=0.8 Depth1: 8 callers (90% conf)
    detect_changes scope="all" 变更 12 行,影响 3 进程,risk=medium
    rename symbol_name="old", new_name="new", dry_run=true 5 文件 8 编辑,graph_edits=6
  • 编辑器集成清单:
    • Claude Code:claude mcp add gitnexus -- npx -y gitnexus@latest mcp + PreToolUse hooks(自动 KG 增强 grep)。
    • Cursor:~/.cursor/mcp.json 添加 {"gitnexus": {"command": "npx", "args": ["-y", "gitnexus@latest", "mcp"]}}。
    • 技能安装:Exploring/Debugging/Impact/Refactoring(.claude/skills/)。
  • 性能调优:analyze --force 全重索引;--skip-embeddings 纯结构 KG;worker threads 并发。

3. Graph RAG 最佳实践

  • 查询优化:优先 cypher 原料查询,如 MATCH (c:Community)<-[:MEMBER_OF]-(fn) RETURN ...(schema via gitnexus://repo/{name}/schema)。
  • 隐私阈值:CLI 全本地,无网络;Web 无上传,API key localStorage。
  • 规模限:CLI 无上限(KuzuDB native);Web 桥接 gitnexus serve(HTTP API)。
  • 监控 & 回滚:gitnexus status 检查 staleness;clean --all --force 清索引;日志 via --verbose。

这种设计 democratizes 代码智能:小模型借助预计算工具匹敌大模型,token 效率提升 10x(单工具调用 vs 多轮探索)。实际落地中,先用 Web UI 验证 repo,再 CLI+MCP 日常开发。

资料来源

查看归档