如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
[!IMPORTANT] GitNexus没有官方加密货币、或硬币。任何在Pump.fun或其他平台上使用GitNexus名称的/硬币均与本项目或其维护者无关联、未获认可且非其创建。请勿购买任何声称与GitNexus相关的加密货币。
加入官方***讨论想法、问题等!
企业版(SaaS及自托管) - akonlabs.com
为智能体上下文构建神经系统。
将任何代码库索引到知识图谱中——包括所有依赖项、调用链、集群和执行流——然后通过智能工具开放访问,确保AI智能体不会遗漏任何代码。
类似DeepWiki,但更深入。 DeepWiki帮助你理解代码。GitNexus让你分析代码——因为知识图谱会跟踪每一种关系,而不仅仅是描述。
TL;DR: Web UI是与任何仓库快速对话的方式。CLI + MCP则是让你的AI智能体真正可靠的方法——它为Cursor、Claude Code、Antigravity、Codex等工具提供代码库的深度架构视图,避免它们遗漏依赖项、破坏调用链和盲目修改代码。即使是较小的模型也能获得完整的架构清晰度,使其能够与大型模型竞争。
¹ 反重力钩子遵循Gemini CLI钩子参考文档(Antigravity 2.0是Gemini CLI的官方继任版本)。增强操作在AfterTool中运行,因为在Gemini协议中BeforeTool没有上下文注入通道——智能体通过hookSpecificOutput.additionalContext看到附加到工具结果的图谱上下文。在成功执行git commit/merge/rebase/cherry-pick/pull后,过时索引提示会进入同一通道。如果Antigravity特定的钩子文档与Gemini CLI的文档出现差异,架构可能会演进;实现将跟踪这些变化。
环境变量
大多数 analyze 控制参数同时也是 CLI 标志(--workers、--worker-timeout、--max-file-size、--verbose)。当你需要在每次运行时重复使用相同标志,或者从已管理自身环境的长期运行主机(MCP server、eval-server、CI shell)调用 GitNexus 时,使用环境变量形式。CLI 标志优先于环境变量;环境变量优先于内置默认值。
| 变量 | 默认值 | 作用 | 何时调整 |
|---|---|---|---|
GITNEXUS_WORKER_POOL_SIZE | cores - 1(上限为16) | 解析工作池大小(必须 ≥ 1)。等同于 --workers。工作池是唯一的解析路径——不存在顺序解析器,因此 0 会被拒绝并返回可操作错误(池通过隔离+重启实现自修复)。 | 受限容器(cgroup CPU 限制)或具有明确配额的 CI 运行器。若要排查工作器崩溃问题,可将值设为 1 以使用单工作池——不要设为 0。 |
GITNEXUS_PARSE_CHUNK_CONCURRENCY | 2 | 当池调度当前块时,可并行读取到内存中的块文件内容数量。工作器调度本身保持串行。 | 足以分块的大型仓库(总源代码数 MB 级),且磁盘 I/O 占分析总耗时的可测量比例。 |
GITNEXUS_VERBOSE | 未设置 | 当值为 1 时,启用详细的摄入日志(跳过文件警告、每块吞吐量、解析缓存统计信息)。等同于 --verbose。 | 调试已“完成”但似乎遗漏文件的分析;根据可观察吞吐量调整 --workers/块并发度。 |
GITNEXUS_PROFILE_DEFERRED | 未设置 | 当值为 1 时,为块后延迟解析阶段(导入 → 继承 → buildHeritageMap → 遗留调用解析)输出 [deferred-profile] 时间/进度日志。由 GITNEXUS_VERBOSE 隐含启用。 | 在大型 Java/Kotlin 仓库中诊断“Resolving calls (all chunks)”阶段的分析停滞问题(issue #1741),且无需完整的详细摄入日志。 |
GITNEXUS_PROFILE_DEFERRED_SLOW_MS | 3000(详细模式)/ 5000 | processCallsFromExtracted 输出 slow file … 日志行的每文件阈值(毫秒)。通过 Number() 解析:接受整数(5000)、科学计数法(2.5e3)、小数(.5)和十六进制(0x10)。非有限或非正值将回退到默认值。 | 排查在延迟调用解析阶段占主导时间的少数异常文件;降低值可显示更多文件,提高值可仅关注最严重的情况。 |
GITNEXUS_MAX_FILE_SIZE | 512(KB) | 遍历器跳过阈值(KB)。硬上限为 32768(tree-sitter 缓冲区上限)。等同于 --max-file-size。 | 索引包含有意创建的大型源文件(生成的解析器、第三方捆绑包)且仍需解析这些文件的仓库。 |
GITNEXUS_WORKER_SUB_BATCH_TIMEOUT_MS | 30000 | 工作器重试/回退前的空闲超时(毫秒)。等同于 --worker-timeout × 1000。 | 解析缓慢的文件(大型压缩 JS、深度嵌套的 TS 类型),确实需要超过 30 秒的时间。 |
GITNEXUS_WAL_CHECKPOINT_THRESHOLD | 67108864(64 MiB) | LadybugDB WAL 自动检查点阈值(字节)。等同于 --wal-checkpoint-threshold。-1 保持 LadybugDB 的默认阈值(约 16 MiB)。较大阈值减少检查点频率,但会增加轮换时的 WAL 大小——在磁盘受限环境中选择较小值。 | 需要为分析工作负载调整更大或更小的 WAL 自动检查点阈值。 |
GITNEXUS_WORKER_SUB_BATCH_MAX_BYTES | 8388608(8 MB) | 池在一次 postMessage 中发送给工作器的每任务字节预算。 | 非常大的单个文件;主要用于诊断——超过 8 MB 可能导致结构化克隆内存压力。 |
GITNEXUS_WORKER_MAX_RESPAWNS_PER_SLOT | 3 | 每个工作器槽位在从活动轮换中移除前的最大重启次数。限制长期崩溃槽位的重启循环。 | 在不稳定工作器需要更多重试(提高值)或快速失败(降低值)后再移除槽位的主机。 |
GITNEXUS_WORKER_MAX_CUMULATIVE_TIMEOUT_MS | 5 × subBatchTimeoutMs | 每个任务在隔离前的总重试时间预算。与 timeoutBackoffFactor 配合,防止指数增长的重试导致数小时停滞。 | 确实需要较长总重试窗口的缓慢文件;降低值可在停滞时快速失败。 |
GITNEXUS_WORKER_CONSECUTIVE_FAILURE_THRESHOLD | max(3, poolSize) | 池的断路器触发前每个槽位的连续失败次数。触发后,后续所有调度均会拒绝,直到创建新池。 | 易发生 SIGSEGV 的原生语法需要更快触发断路器的主机;应明确失败的 CI 运行器。 |
GITNEXUS_CHUNK_BYTE_BUDGET | 2097152(2 MB) | 用于缓存键组合和调度的块边界。值越小,缓存命中粒度越细,但调度开销越大。 | 在单体仓库上调整增量分析缓存行为。 |
GITNEXUS_NO_GITIGNORE | 未设置 | 若设置,将跳过 .gitignore 解析。.gitnexusignore 仍会生效。 | 索引 .gitignore 排除了实际需要索引的文件(例如,为跨仓库查找而提交的生成代码)的仓库。 |
GITNEXUS_SKIP_OPTIONAL_GRAMMARS | 未设置 | 当严格设为 =1 时,在安装时跳过 tree-sitter-dart、tree-sitter-proto、tree-sitter-swift 和 tree-sitter-kotlin 的第三方语法实例化(以及 Dart/Proto 源代码构建)。这四种语言将不会被解析;安装仍会成功。 | 在没有 C++ 工具链的主机上安装,或第三方预构建不匹配的情况;愿意跳过 Dart/Proto/Swift/Kotlin 解析。 |
发布到 understand-quickly(可选)
https://github.com/looptech-ai/understand-quickly 是公共代码知识图谱注册表,将 gitnexus@1 列为一等格式。注册仓库一次后(通过 npx @understand-quickly/cli add 或 https://looptech-ai.github.io/understand-quickly/add.html%EF%BC%89%EF%BC%8C%60gitnexus publish会触发一个repository_dispatch` 事件,使注册表按需重新同步你的条目,而非等待夜间作业。
此功能为可选,若未设置 UNDERSTAND_QUICKLY_TOKEN 则无操作——该令牌是具有注册表仓库 Repository dispatches: write 权限的细粒度 GitHub 个人访问令牌(PAT)。不会发生其他操作;不会上传图谱文件。完整协议参见 https://github.com/looptech-ai/understand-quickly/blob/main/docs/integrations/protocol.md%E3%80%82
官方 Docker 设置包含两个签名镜像,由 docker-compose.yaml 编排。每个镜像均发布至 GitHub Container Registry (GHCR) 和 Docker Hub — 相同构建、相同摘要、相同 Cosign 签名 — 因此可选择任意偏好的 registry:
| 用途 | GHCR(docker-compose.yaml 中默认) | Docker Hub 镜像 |
|---|---|---|
CLI / gitnexus serve 后端(4747 端口上的 HTTP API、MCP、索引器) | ghcr.io/abhigyanpatwari/gitnexus:latest | akonlabs/gitnexus:latest |
静态 Web UI(4173 端口) | ghcr.io/abhigyanpatwari/gitnexus-web:latest | akonlabs/gitnexus-web:latest |
[!NOTE] 注意:镜像重命名。早期版本将 Web UI 发布在
ghcr.io/abhigyanpatwari/gitnexus下。自捆绑后端引入后,该地址现在托管 CLI/服务器镜像,而 UI 已迁移至ghcr.io/abhigyanpatwari/gitnexus-web。旧标签仍可拉取,但新版本仅在新地址发布。请相应更新您的docker run/ compose 文件(或直接采用捆绑的 compose)。
docker compose up -d
这会在 http://localhost:4747 启动服务器,在 http://localhost:4173 启动 Web UI。UI 会自动检测服务器,因为浏览器在主机上运行并通过映射端口访问容器。
命名卷(gitnexus-data)会在服务器容器内的 /data/gitnexus 路径持久化存储全局注册表、索引和克隆的仓库。要使主机上的仓库可索引,请在启动堆栈前设置 WORKSPACE_DIR:
诸如 Cursor、Claude Code、Codex、Cline、Roo Code 和 Windsurf 等工具功能强大,但它们并不真正了解你的代码库结构。
实际情况:
UserService.validate()传统方法向 LLM 提供原始图边缘,并希望它进行足够的探索。GitNexus 在索引时预计算结构——聚类、追踪、评分——因此工具可通过一次调用返回完整上下文:
flowchart TB
subgraph Traditional["传统 Graph RAG"]
direction TB
U1["用户:哪些内容依赖 UserService?"]
U1 --> LLM1["LLM 接收原始图"]
LLM1 --> Q1["查询 1:查找调用方"]
Q1 --> Q2["查询 2:哪些文件?"]
Q2 --> Q3["查询 3:过滤测试?"]
Q3 --> Q4["查询 4:高风险?"]
Q4 --> OUT1["4 次以上查询后得到答案"]
end
来自真实用户的反馈,见证轩辕镜像的优质服务