GitNexus 作为一款零服务器代码智能引擎,完全在浏览器端运行,支持从 GitHub 仓库或 ZIP 文件直接构建知识图谱,并内置 Graph RAG agent 用于交互式代码情报分析。这种 client-side 架构的最大优势在于隐私保护和即时可用性:无需上传代码到远程服务器,一切解析、存储和查询均在本地浏览器完成,避免了数据泄露风险,同时启动速度极快,适合快速代码审查和探索场景。
核心技术栈依赖 WebAssembly 实现高性能本地计算。具体而言,代码解析采用 Tree-sitter WASM,支持 TypeScript、JavaScript、Python、Java、C/C++、C#、Go、Rust 等 9 种主流语言,通过 AST(抽象语法树)提取函数、类、方法和接口等符号。符号间关系解析包括调用链(CALLS)、导入(IMPORTS)、继承(EXTENDS/IMPLEMENTS)等,并计算置信度分数(confidence,通常 0.8 以上视为高可靠)。知识图谱存储于 KuzuDB WASM,这是一个嵌入式图数据库,支持向量索引和 Cypher 查询语言,实现高效的混合搜索(BM25 + 语义嵌入 + RRF 融合排序)。“GitNexus is a client-side knowledge graph creator that runs entirely in your browser.” 索引管道分为多阶段:文件树遍历 → AST 解析 → 跨文件符号解析 → 功能聚类(community detection,使用 Graphology)→ 执行流程追踪(从入口点如 main () 追溯调用链)→ 嵌入生成(transformers.js via WebGPU/WASM)。整个过程在浏览器内存中完成,对于中小型仓库(~5k 文件)耗时通常数分钟。
Graph RAG agent 是 GitNexus 的亮点,它不是简单文本 RAG,而是基于预计算图结构的智能工具集,通过 LangChain ReAct 代理暴露给用户,支持自然语言交互。agent 可调用 7 个核心工具,每个工具返回结构化上下文,避免 LLM 盲目图遍历,提高 token 效率和准确性。关键工具包括:
-
query({query: "auth middleware", repo?: "my-app"}):过程分组混合搜索。返回按执行流程(process)聚合的结果,如优先级(priority)、符号计数、步骤数。落地参数:query 字符串精确描述需求;repo 在多仓库模式下指定;预期输出包含 process_symbols 和 definitions,便于定位相关模块。
-
context({name: "validateUser"}):360 度符号视图。展示传入 / 传出调用、进程参与、文件位置。参数:name 为符号名(如函数 / 类);可选 filter(如 relationTypes: ["CALLS"])。用于调试时快速了解符号生态。
-
impact({target: "UserService", direction: "upstream|downstream", minConfidence: 0.8, maxDepth: 2, includeTests: false}):爆炸半径分析。核心参数:
- direction: "upstream"(谁依赖我,会因修改我而破)、"downstream"(我依赖谁)。
- minConfidence: 阈值 0.7-0.9,过滤低置信边。
- maxDepth: 层级 1-3,避免图爆炸。
- relationTypes: ["CALLS", "IMPORTS"]。 输出分层分组,高置信调用链,便于变更前风险评估。
-
detect_changes({scope: "all|modified", gitDiff?: true}):Git diff 影响检测。扫描变更行,映射到受影响进程。参数:scope 限定范围;risk_level 自动分类(low/medium/high,根据 affected_count)。
-
cypher(query: "MATCH ... RETURN ..."):原生 Cypher 查询,如查找高置信认证调用:
MATCH (c:Community {heuristicLabel: 'Authentication'})<-[r:CodeRelation {type: 'CALLS', confidence > 0.8}]-(fn) RETURN fn.name。
其他工具如 rename(多文件重命名,dry_run: true 先预览)和 list_repos。
对于 Web UI(https://gitnexus.vercel.app/),使用流程简单:拖拽 ZIP → 自动索引 → 交互图可视化(Sigma.js + Graphology WebGL 渲染)→ 聊天框输入自然语言,agent 调用工具响应。监控要点:浏览器开发者工具查看 Web Workers 进度;内存使用 <2GB 为宜;索引后检查 staleness(CLI 有 status 命令)。若仓库大,转 local backend:CLI npx gitnexus serve 启动 HTTP 服务,UI 自动桥接,无需重索引。
CLI 版扩展生产力:npx gitnexus analyze(repo 根目录运行,生成 .gitnexus/ 索引,~/.gitnexus/registry.json 注册)。选项:--force 全重析、--skip-embeddings 跳向量(加速 2x,但语义搜索弱)。集成 MCP(Model Context Protocol)到编辑器:
- Claude Code:
claude mcp add gitnexus -- npx -y gitnexus@latest mcp,获 PreToolUse hooks 自动图增强。 - Cursor:编辑~/.cursor/mcp.json 添加 {"gitnexus": {"command": "npx", "args": ["-y", "gitnexus@latest", "mcp"]}}。
参数优化:并发连接池 max 5,空闲 5min 驱逐;wiki 生成
--model gpt-4o-mini --base-url自定 LLM。
回滚策略:gitnexus clean 删当前索引、--all --force 清全局。风险限:浏览器内存溢出(>10k 文件用 CLI);LLM API 依赖 wiki/agent(本地无 key 则纯图工具)。总体,GitNexus 通过预计算关系智能(precomputed relational intelligence),让中小模型也能处理复杂代码架构,远超传统 RAG。
(正文字数:约 1250 字)
资料来源:
- GitHub Repo: https://github.com/abhigyanpatwari/GitNexus
- Web Demo: https://gitnexus.vercel.app/
- Tree-sitter: https://tree-sitter.github.io/tree-sitter/