mcpField
C
CompareGraph

CompareGraph

本地服务
github.com开发工具

关于 CompareGraph

CompareGraph 是面向团队和编码 Agent 的本地 Rust 命令行工具及 MCP 服务,可按功能分类比较多个克隆仓库。它构建共享代码图,为判断记录文件与行号引用,不运行仓库代码,也不调用模型。

主要功能

  1. 01从多个仓库构建共享 SQLite 图
  2. 02按功能分类比较克隆仓库
  3. 03为判断保存文件和行号引用
  4. 04检查引用并保留声明历史
  5. 05提供命令行和 18 个 MCP 工具
  6. 06本地运行且不调用模型

适用场景

  1. 01比较多个仓库中的产品功能
  2. 02对一组项目开展尽职调查
  3. 03梳理某个软件领域的能力
  4. 04为编码 Agent 提供带引用的仓库事实

MCP 相关

`comparegraph mcp` 通过标准输入输出提供 18 个工具,其中 17 个只读,1 个用于写入声明。其配置命令可将 MCP 服务注册到机器上检测到的受支持 Agent。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

CompareGraph

已经安装?运行 comparegraph doctor。

使用 Claude Code、Codex、Cursor、Gemini CLI、Windsurf、OpenCode 和另外六种 Agent 比较多个代码仓库

将多个克隆整合为一张图 · 每个单元格的结论都有引用 · 支持 29 种语言 · 100% 本地运行,不调用模型
单个 Rust 二进制文件

CI 版本发布 npm 许可证:Apache-2.0 经过校验和验证的版本发布 Rust 1.85+ MCP 工具:18 语言:29 Agent:12 100% 本地运行,不调用模型

Linux x64 Linux arm64 macOS arm64 macOS x64 Windows x64

Claude Code Codex Cursor Gemini CLI OpenCode Hermes Windsurf Antigravity Kiro GitHub Copilot Copilot CLI Qwen Code

使用方法 · 命令 · MCP 工具 · 常见问题 · 故障排除 · 路线图 · 报告


CompareGraph 会将多个克隆的代码仓库解析到一个 SQLite 图中。它会根据分类体系(即一组功能)为每个克隆评分,并针对每个克隆和功能记录判定结果,同时引用文件及行范围。它是一个包含 CLI 和 MCP 服务的 Rust 二进制程序。它只读取克隆,不会运行它们,也不会调用模型。


快速开始

无需安装运行时:只需一个二进制程序。Node 用户可以通过 npx -y @massrelay-ai/comparegraph 运行同一个二进制程序。

1. 安装二进制程序
# macOS / Linux
curl -fsSL https://raw.githubusercontent.com/massrelay-ai/comparegraph/main/scripts/install.sh | sh

# Windows x64 (PowerShell)
irm https://raw.githubusercontent.com/massrelay-ai/comparegraph/main/scripts/install.ps1 | iex

安装程序会根据发行版的 SHA256SUMS 校验文件(linux-x64、linux-arm64、darwin-arm64、darwin-x64、win32-x64;从 v0.1.2 起还可验证来源:gh attestation verify <asset> -R massrelay-ai/comparegraph),然后将其写入 ~/.local/bin(Windows:%LOCALAPPDATA%\Programs\comparegraph,并添加到用户的 PATH;请在该目录打开新终端)。COMPAREGRAPH_VERSION=v0.1.1 可固定发行版;COMPAREGRAPH_INSTALL_DIR 可更改二进制程序的安装位置。

其他方式:npm、Homebrew、手动安装、从源代码安装

npm,适用于五个平台,要求 Node 18 或更高版本(该包封装了相同的发行版二进制程序):npx -y @massrelay-ai/comparegraph --version,或 npm i -g @massrelay-ai/comparegraph。

Homebrew,适用于 macOS 和 Linux:brew install massrelay-ai/comparegraph/comparegraph。

**手动安装:**从最新发行版获取 comparegraph-<platform> 和 SHA256SUMS。从源代码安装可在任何支持 Rust 1.85 或更高版本的环境中进行:cargo install --locked --git https://github.com/massrelay-ai/comparegraph comparegraph(--locked 很重要:crates.io 上最新版本的 Perl 语法包已被撤回,只有 Cargo.lock 能解析依赖)。

2. 配置 Agent
comparegraph setup --apply      # omit --apply for the plan; --scope project for an entry you commit
comparegraph doctor             # each client's state: aligned, stale, conflict, missing, plugin

为本机上找到的所有 Agent(共十二个:Claude Code、Codex、Cursor、Gemini CLI、OpenCode、Hermes、Windsurf、Antigravity、Kiro、Copilot、Copilot CLI、Qwen Code)注册 MCP 服务,在工作区的指令文件中写入简短的规则区块,并为 Claude Code 添加会话启动钩子。它只配置 Agent,不会建立索引。

将 Claude Code 用作插件,或使用 Agent 自带的命令

**将 Claude Code 用作插件:**一次安装即可包含七个技能、服务和钩子(要求 Claude Code 2.1.275 或更高版本; 也可在 shell 中运行 claude plugin install … 完成相同操作):

/plugin install comparegraph --marketplace massrelay-ai/comparegraph

启用插件后,setup --apply 会将 Claude Code 的服务和钩子交由插件管理(对应行会显示 plugin),并仍会写入规则区块。

使用 Agent 自带的命令,在工作区中运行;每条命令都会写入 setup 会写入的用户级条目(Claude Code 的默认作用域 local 不会被 doctor 读取),因此 doctor 会将其识别为已对齐:

Agent命令
Claude Codeclaude mcp add --scope user comparegraph -- comparegraph --root "$PWD" mcp
Codexcodex mcp add comparegraph -- comparegraph --root "$PWD" mcp
Gemini CLIgemini mcp add -s user comparegraph comparegraph -- --root "$PWD" mcp

该服务已在 MCP Registry 中登记为 io.github.massrelay-ai/comparegraph; 表格列出了每个客户端对应的文件。

3. 添加并构建克隆
comparegraph add ../some-clone --name some
comparegraph build some

克隆只会被读取,不会运行。每个工作区使用一个存储库,位于 .comparegraph/ 下。增量重建的结果与 build --full 的哈希相同。

4. 比较
comparegraph family add families/example-code-graph-tools   # the taxonomy
comparegraph map some example-code-graph-tools              # ranked candidates per feature, writes nothing
comparegraph claim some symbols.extraction has --author me --at <path>:<start>-<end>
comparegraph matrix example-code-graph-tools                # features x clones, prevalence, gaps

示例套件随仓库一起提供,不包含在二进制文件中,因此请在仓库克隆副本中运行这些内容。下方示例会使用实际输出,演示如何对随附示例执行所有这些步骤。

快速开始:使用随附示例

示例套件和示例仓库随仓库一起提供,不包含在二进制文件中。使用指南会以实际输出演示如何对照十项功能的示例套件检查 fixtures/typescript,从 add 到 export vault。

如需卸载,请参阅Agent、平台与卸载。


为什么选择 CompareGraph

六个项目共包含 106.1 MB 源代码(约 26.5 M 个 token,估算值);针对全部六个项目的 30 项功能,排名靠前的候选项共 336 KB(约 84 k 个 token),矩阵为 6 KB;候选项是供人阅读的内容,不是结论。

在六个研究副本和 30 项功能上测得,二进制版本为 0.1.1:数据见 docs/assets/cost.json,方法和注意事项见答案大小报告。

你有许多仓库,想弄清楚谁具备什么能力。逐个手动阅读无法扩展;没有行号的摘要无法核查;代码一旦变动,笔记就会过时。五项特性,每一项都可以验证:

  1. 确定性。 相同的克隆副本和版本会生成相同的 store_hash。comparegraph check 会重建并进行比较;增量构建必须与 build --full 相同(在计划 6 报告中的两棵大型代码树上结果相同)。
  2. 每个答案都带有证据类别。 每个封装都会标明 observed、derived、inferred 或 unknown,并附上引擎无法查看的内容列表 limitations[]。
  3. 每项声明都需要一条当前有效的引文。 has 和 partial 需要与已存储节点匹配的 --at path:start-end;否则引擎会拒绝。引文对应的代码移动后,经 check 检查会显示为 unknown*。
  4. none 需要缺失证据。 可以提供搜索结果为空的 --searched 词条;也可以提供同一组词条,并在 --read-hits 中列出所有已打开并排除的命中项;还可以通过图检查:四个渠道(符号、路径、社区词条和节点类型)均为空。带有 --searched 的 none 必须将 absent-check --searched 返回的排名前 10 个候选项(read_set)列为已阅读;超过上限的候选项会记录为 read_capped 限制。排名前 10 中有未阅读的候选项时,引擎会拒绝该声明并指出该候选项。
  5. 引擎中没有模型。 分数、等级、描述和候选项都根据已存储的事实计算。Agent 可以负责阅读;引擎只负责存储、检查和拒绝。
与单仓库代码图谱相比
需求单仓库代码图谱CompareGraph
根据同一功能列表比较多个仓库不支持,每个索引只能对应一个仓库family、relate、matrix
将证据与结论一并保存不支持声明会存储 path:start-end 和内容哈希
拒绝缺乏依据的声明不支持has 和 partial 需要有效引文;none 需要引擎执行过搜索
显示代码变动后发生的变化不支持check 会将已移动的引文标记为过时;矩阵会显示 unknown*
留下记录,追踪谁说了什么不支持声明和决策采用只追加方式保存

适用场景:团队将自己的产品与同领域项目进行比较;对一组项目开展尽职调查;新手绘制领域图谱(family propose 会起草分类体系);以及需要通过 MCP 获取精简事实的编码 Agent。


工作原理

工作流:克隆仓库、构建单一图谱、建立分类体系、生成带引文的结论、制定决策、构建矩阵

### 三条规则
  1. 引擎绝不会调用模型。 所有分数、等级、描述和候选项均根据已存储的事实计算。
  2. 声明需要一条当前可解析的引用。 has 和 partial 需要与已存储节点匹配的 --at path:start-end。 none 需要能查无结果的 --searched 词项,或图谱检查。否则,引擎会拒绝,或写入 unknown。
  3. 声明和决策只能追加,由数据库强制执行。 更改会新增一行,并注明其取代的记录。 以最新记录为准,变更轨迹会保留。

search 或 map 得出的候选项会标记为 candidate,绝不会标记为 has。设计文档: docs/design.md。

流程和代码环图示:docs/design.md。

图谱中的一个家族

图谱中的一个家族:10 个组中的 30 个特征、6 个克隆、121 个双方读者均达成一致结论的单元(93 个 has、9 个 partial、19 个 none),以特征指向克隆、并按结论着色的边表示

家族是一种分类体系:由若干特征组构成,每个特征都有定义和一项测试,用于判断是否具备该特征。一个单元对应一个克隆与一个特征,包含一个结论(has、partial、none),而 has 和 partial 还需附带引用。图中展示了家族 code-graph-tools 及映射基准数据中双方达成一致的单元;在 Obsidian 中运行 comparegraph export vault,即可查看同一图谱的实时版本。

插件和第二引擎

外部提供程序是任何通过 stdin 和 stdout 传输 JSON 行的可执行程序:宿主写入一行请求后关闭 stdin,并读取答复行,直到收到第一条 ok 答复。它输出的所有内容都是数据,并会解析为我们自己的类型。在 comparegraph.toml 中注册提供程序([providers.mine] command = "tools/my-provider"),或将其作为 comparegraph-provider-<name> 放在 PATH 上,并在旁边放置 comparegraph-plugin.toml 清单(kind、name、protocol = "1"、languages、network)。没有清单时,只有使用 --allow-unverified 才会运行。

完整协议、防护措施、一个 25 行的 Python 提供程序,以及 code-review-graph 适配器(作为第二引擎,由 build --providers reference,crg 调用):docs/dev/plugin-protocol.md。

家族和七项技能

家族是一个包含 rows.md 的目录。随附两个包:families/example-code-graph-tools(10 个特征,快速入门)和 families/code-graph-tools(30 个特征,映射基准)。列规则、同义词和 family propose 见用法。

这套方法由 skills/ 中的七项纯 Markdown 技能构成,任何 Agent 都可以阅读。每项技能都会说明何时使用相应动词、准确的命令、引擎会拒绝哪些操作,以及如何检查。在 Claude Code 中,这些技能和 MCP 服务会作为一个插件一起提供(开始使用);其他 Agent 可从克隆的仓库中读取 skills/ 目录。

技能简介
using-comparegraph入门:适用的技能、工作流顺序,以及确保结论可靠的习惯。
adding-a-clone将克隆注册为比较对象或根节点,解析它,并验证构建结果。
defining-a-family编写一个包,使用 family propose 为其生成初始内容,并安全地重新加载。
mapping-features查找候选证据并评估相关性。候选项只是线索,绝不是结论。
writing-a-claim记录 has、partial、none 或 unknown,并附上当前可解析的引用。
recording-a-decision记录某人的采纳、拒绝或暂缓决定,并附上姓名和理由。
reading-the-vault阅读矩阵、知识库和 JSON 导出,并正确解读其中的空缺。

使用方法

docs/ 下的四个页面包含参考资料;从这里出发,点击几次即可到达。

你将获得什么

四个层级,每个层级都回答它如何得知:仓库概况、模块社区、符号(调用方、被调用方、影响范围、测试、入口点、潜在死代码)以及声明(判定、引文、作者、轨迹)。每个答案都是一个带有证据类别的 JSON 信封。使用说明中有表格和一个真实的 show 答案。

CLI 参考

全局选项 --root 和 --pretty,然后是分为四组的动词:构建与检查、图查询、家族与声明、导出与 Agent。命令列出了每个动词及其重要标志。

MCP 工具

comparegraph mcp 通过 stdio 提供十八个工具(十七个只读,一个写入:comparegraph_claim);刻意不提供 decide 工具。MCP 工具中有表格;docs/catalog.json 是机器可读的来源,CI 中的 catalog --check 会对其进行检查。

知识库、配置、库

comparegraph export vault --out ./vault 会写入一个 Obsidian 风格的 Markdown 知识库,其中的笔记带有生成的描述。设置项为 --root 和 COMPAREGRAPH_* 环境变量,而 crate 会将每个动词作为一个函数公开。这三项内容都在使用说明中。


效果如何

以下每个数字均摘自本仓库中的报告;引用前请先阅读其中的注意事项。所有数据均于 2026-10-13 在一台共享主机上测得。

750 个手工标注金标准上的各引擎调用边精确率和召回率:CompareGraph 汇总值为 0.995 / 0.834,code-review-graph 经适配器运行后为 0.956 / 0.736,codegraph 为 0.708 / 0.506。

规模:四棵代码树中解析的文件数与节点数、边数和构建秒数,以及 1.29M 边 openclaw 图上的查询时间。

在手工标注的调用点金标准上,CompareGraph 的精确率达到 0.995,汇总召回率达到 0.834;相比之下,code-review-graph 通过其适配器运行后的精确率 / 召回率为 0.956 / 0.736,codegraph 为 0.708 / 0.506。它在 499.6 s 内构建了一个包含 38,258 个文件的仓库,并在 2.5 s 内对一个有 1.29M 条边的图完成 impact 查询;下方表格列出了注意事项。数据:accuracy.json、scale.json;一致性报告:引擎一致性。

调用边与手工标注金标准的对比

金标准:从每个项目自己的源码中随机抽取 150 个调用点(总计 750 个),由两名读者按照同一套规则独立标注 (两名读者都是大模型 Agent;标注时均未对引擎结果设盲)。final 仅保留双方一致的行。金标准的制作方式见:fixtures/gold/README.md。精确率以已回答的站点为分母,召回率以指向仓库内目标的站点为分母(括号中显示)。Kappa 是两名读者对调用目标判断的 Cohen's kappa。

项目(站点数)读者间 kappaCompareGraph P / Rcode-review-graph 经适配器运行后的 P / Rcodegraph P / R
graphmind (48)0.980.973 / 0.7500.963 / 0.5420.650 / 0.813
srclight (50)0.961.000 / 0.7801.000 / 0.7401.000 / 0.320
code-review-graph (53)1.001.000 / 0.9251.000 / 1.0000.913 / 0.396
hono (36)0.891.000 / 0.6670.880 / 0.611无回答 / 0.000
caddy (48)0.921.000 / 1.0000.897 / 0.7290.623 / 0.896
汇总 (235)0.950.995 / 0.8340.956 / 0.7360.708 / 0.506
汇总计数:CompareGraph 在已回答的 197 个站点中答对 196 个,在 235 个站点中答对 196 个;codegraph 在已回答的 168 个站点中答对 119 个,在 235 个站点中答对 119 个。
来源:docs/reports/2026-10-12-engine-parity.md 中的“After Plan 6”和
“codegraph head-to-head”部分;kappa 来自“After Plan 5”中的读者间一致性(汇总 is_call kappa 为 0.94)。
复现:scripts/gold-score.sh <project-copy> fixtures/gold/<project>/calls.jsonl --binary <comparegraph>、
scripts/compare-engines.sh(所有引擎)、scripts/h2h-codegraph.sh(codegraph)。

阅读这些数据时请注意以下限制。每个项目的站点数为 36 到 53,因此单个项目的噪声约为 0.1。caddy 的 1.000 表示“每个已标注站点”(在 Go 工作开始前抽取的 48 个站点),而 hono 的精确率基于 24 个已回答站点。codegraph 以 --graph-only 模式运行,每个站点调用一次 get_callees;如果它列出了多个同名目标,只要其中包含正确目标,我们的评分器就会将该站点计为正确。hono 上没有任何站点得到回答,因为它找到的最具体节点是一个没有调用边的匿名箭头函数;未运行通过最近的具名祖先进行查找的步骤。fixtures/gold/FLOORS.json 中的最低标准由 crates/comparegraph/tests/gold.rs 断言,且只会提高。

构建与查询耗时

数据见 docs/assets/scale.json,来源是验证报告(最后一节)和 Plan 6 报告。

指标结果来源章节
五个研究项目的冷构建每个项目耗时 0.8 秒至 6.4 秒;与 codegraph 对比,我们的耗时 : codegraph 耗时在四个项目上为 0.50 至 1.29,在 hono 上为 5.12,已扣除 codegraph 固定的 12 秒嵌入模型加载时间head-to-head
冷构建与 code-review-graph 对比快 1.6 倍至 3.4 倍,仅给出比率(主机负载为 37 至 73)After Plan 5
hermes-agent,10,288 个文件全量构建 93.2 秒;空操作重建 2.0 秒;编辑单个文件 47.5 秒;存储哈希与 --full 相同After Plan 6,build time and scale
openclaw,38,258 个文件全量构建 499.6 秒(比 8 分钟的目标慢了 20 秒);空操作 7.5 秒;编辑单个文件 289.7 秒;最大 RSS 为 3.54 GBAfter Plan 6,build time and scale
在含 1.29M 条边的 openclaw 图上查询impact 2.5 秒,traverse 3.6 秒,dead-code 1.6 秒;RSS 为 12 至 15 MBAfter Plan 6,query bounds

报告中的注意事项:构建测试在 40 核机器上运行,负载为 6 至 15,因此应关注比率,而非秒数。hermes-agent 的构建比 Plan 6 的 B1 阶段结束时慢 1.40 倍;这是已测得但原因未明的回归。查询上限是在默认设置下,对一个枢纽符号(3,156 个调用者)各运行一次测得的。一个包含 4.4k 个文件的私有产品单体仓库构建耗时 103 秒(53k 个节点),其三个测试框架比较器耗时分别为 25 秒、81 秒和 436 秒(验证报告,最后一 节);在产品上,对 12 个特性执行排序后的 map 耗时 1.2 秒,在含 454k 个节点的比较器上耗时 12.1 秒。 复现:scripts/compare-engines.sh、scripts/h2h-codegraph.sh,以及 COMPAREGRAPH_PROFILE=1 comparegraph build <repo>。

与 code-review-graph 的重合度(符号和边)

在三个项目上计算节点和已解析边的 Jaccard 系数(一致性报告中的“After the review fixes”;符号和继承关系数据来自“After the precision and recall pass”):

指标graphmindsrclightcode-review-graph
符号(函数、方法、类、类型)0.9460.9880.939
调用,已解析0.7130.9690.963
导入,文件到文件0.6470.9040.901
测试(测试到被测符号)0.1190.6050.513
继承与实现0.9380.6670.730

测试链接是三个项目中表现较弱的部分。复现:scripts/compare-engines.sh。

一致性测试样例(参考引擎)

comparegraph conform reference 会运行 fixtures/ 中的黄金测试样例;低于基准(节点召回率和精确率 0.95,边召回率和精确率 0.85)的提供方将被拒绝。本次提交的输出:

测试样例节点召回率 / 精确率边召回率 / 精确率
go1.00 / 1.001.00 / 1.00
java1.00 / 1.001.00 / 1.00
python1.00 / 1.000.952 / 1.00
rust1.00 / 1.001.00 / 1.00
typescript1.00 / 1.000.955 / 1.00

这五个测试样例来自五个小型代码库:它们用于验证提取器能否生成经人工核查的图,而非涵盖每种语言特性。

特性映射黄金标准

第二个黄金标准评估 map(从特性映射到代码)和基于图的缺失检查:以 families/code-graph-tools/rows.md 中的 30 项特性,对照六个代码图工具的研究副本,共 180 组配对,由两位独立读者阅读,其中 121 组达成一致,59 组存在分歧,因此未计入评分(有 13 个一致认定的位置在引擎图中没有节点)(方法和 kappa 系数: fixtures/gold-map/README.md)。排名依据三个克隆版本进行调优,并在另外三个版本上测量一次;留出集这一列才是面对工具从未见过的代码库时的真实表现。

precision@5recall@5备注
map,留出集克隆版本(CodeGraph、codanna、ripwire)0.0380.149应关注的数值
map,调优用克隆版本(graphmind、srclight、code-review-graph)0.1610.523拟合结果
map,六个版本合并0.1130.393排名之前为 0.046 / 0.141
对相同词项进行普通全文 OR 搜索,合并结果0.0460.141我们自己的引擎,不进行排名
对相同词项使用 codegraph symbol_search,合并结果0.0360.118按相同规则评分
缺失检查,合并结果1.00(1 次调用)0.05(19 项中的 1 项)从不出错,但很少给出结果

目标(留出集 recall@5 达到或超过 0.50,precision@5 为 0.30)尚未实现:对于留出集中的特性,只有三分之一的黄金位置位于前 200 个候选结果中,因为存储内容只有符号名称、路径和社区关键词,没有文档文本;下一步的改进方向见路线图。relate 区间是已知的弱信号:家族之外的代码库得分仍高于 0.5(docs/decisions.md,「Plan 7 IMP」);运行 relate 之前,该克隆版本在矩阵中会显示 not run,并在 limitations[] 中注明(matrix --relate 会先为缺失项评分)。来源: docs/reports/2026-10-14-mapping-gold-first-measurement.md 和一致性报告中的「Feature-mapping baselines」。复现方法:scripts/map-score.sh、scripts/map-baselines.sh。

回答大小

对于六个研究副本中的 30 项特性,map 的回答总计 336 KB(估算约 84 k 个 token),而源代码为 106.1 MB(约 26.5 M 个 token):比例为 316 比 1。这些回答是排序后的阅读位置,并非结论(上文的留出集 recall@5 为 0.149),因此读者仍需打开文件。方法、各克隆版本的数据和注意事项:docs/reports/2026-10-14-answer-size.md。 复现方法:运行 scripts/answer-size.sh,然后运行 node scripts/readme-assets.mjs。

## 语言

共解析 29 种语言,其中 5 种会进行深度解析,4 种有经过测量的黄金标准。请查看各层级,而不是只看标题。 每种语法(共 32 个 ID:tsx、jsx 和 mjs 分别计数)都有一个固定样例,并在 fixtures/languages/ 中提交了图摘要,因此,任何会改变图的语法版本升级都会导致 CI 失败,并需要有意重新生成黄金标准。

层级语言引擎提取的内容
已解析(29)typescript(+tsx)、javascript(+jsx、mjs)、python、rust、go、java、ruby、php、swift、kotlin、dart、scala、c、cpp、csharp、objc、perl、r、bash、powershell、sql、yaml、toml、hcl、dockerfile、graphql、css、scss、html符号、文件、包含关系、导入,以及提取器报告的直接调用。配置和标记语言(yaml 到 html)只会产生符号;比较时应将其视为噪声。
已解析绑定(5)typescript/javascript、python、rust、go、java还会提取解析到文件的导入、声明类型、类型化接收者、barrel 再导出、继承(extends、implements)和测试关联;按设计,go 没有继承边
经过测量typescript(hono、graphmind、code-review-graph)、python(srclight、code-review-graph)、rust(graphmind)和 go(caddy)有调用边黄金标准;所有 5 种已解析绑定的语言都有一致性固定样例参见黄金标准表;java 只有固定样例
限制、已知缺口和跳过的文件

注册表包含 32 个标识符(tsx、jsx、mjs 与其所属语言一起计数)。未解析绑定的语言只会按名称绑定调用, 置信度为 0.5,且仅限同一语言系列。已知缺口:Java 的 new T() 没有调用点;Rust trait 方法及其实现共享一个限定名称;Go 中对方法结果、range 变量和泛型的调用目前都无法绑定 (计划 7 候选项)。每次构建都会跳过以下目录: node_modules、target、dist、build、.git、vendor、__pycache__、.venv、venv;被 .gitignore 或 .ignore 排除的文件;以及经过压缩的文件。跳过的文件数会计入运行结果的 limitations。


Agent、平台与卸载

comparegraph setup 会写入条目;comparegraph doctor 会报告每个客户端的状态(aligned、stale、conflict、 missing、unverified、plugin)。--client all 只会作用于看起来已安装的客户端。plugin:启用 comparegraph@comparegraph 并使用 --client all 时,交由 Claude Code 插件处理;指定 --client claude 可强制写入。通过 PATH 解析到已注册二进制文件的裸 comparegraph 命令会被视为已对齐。setup --apply 采用增量方式,并会创建名为 <file>.bak-<unix-seconds> 的备份;除非传入 --force,否则不会改动不同的条目。

setup 还会在 Agent 的指令文件中写入规则块,并为 Claude Code 添加 SessionStart 钩子;详情请参阅用法。

十二个客户端、对应文件及卸载时的删除项
Agent--client配置(用户 / 项目)规则文件卸载时删除
Claude Codeclaude~/.claude.json / .mcp.jsonCLAUDE.mdmcpServers.comparegraph
Codexcodex~/.codex/config.toml / .codex/config.tomlAGENTS.md[mcp_servers.comparegraph] 表
Cursorcursor --scope project.cursor/mcp.json(用户范围未经验证,已跳过)AGENTS.mdmcpServers.comparegraph
Gemini CLIgemini~/.gemini/settings.json / .gemini/settings.jsonGEMINI.mdmcpServers.comparegraph
OpenCodeopencode~/.config/opencode/opencode.json / opencode.jsonAGENTS.mdmcp.comparegraph
Hermeshermes~/.hermes/config.yaml(无项目范围)AGENTS.mdmcp_servers.comparegraph
Windsurfwindsurf~/.codeium/windsurf/mcp_config.json(无项目范围)AGENTS.mdmcpServers.comparegraph
Antigravityantigravity~/.gemini/antigravity/mcp_config.json(无项目范围)GEMINI.mdmcpServers.comparegraph
Kirokiro --scope project.kiro/settings/mcp.json(无用户范围)AGENTS.mdmcpServers.comparegraph
GitHub Copilot(VS Code)copilot --scope project.vscode/mcp.json(无用户范围).github/instructions/comparegraph.instructions.mdservers.comparegraph
GitHub Copilot CLIcopilot-cli~/.copilot/mcp-config.json(无项目范围)AGENTS.mdmcpServers.comparegraph
Qwen Codeqwen~/.qwen/settings.json(无项目范围)GEMINI.mdmcpServers.comparegraph

要卸载规则块,请删除从 到 的行;要卸载钩子,请删除命令为 comparegraph doctor --brief 的 SessionStart 条目。

平台:每次发布都会在各自的运行器上构建 linux-x64、linux-arm64、darwin-arm64、darwin-x64 和 win32-x64 版本,并将每个版本作为发布资源提供,资源列表见 SHA256SUMS;Homebrew tap 会跟随发布更新。测试套件仅在 linux-x64 上运行。凡是能运行 Rust 1.85+ 的平台,都可以从源代码构建。仅在本地运行:引擎不会进行网络调用,MCP 服务通过 stdio 通信,存储是一个由你管理的 SQLite 文件。

卸载:删除上方的条目(在 Claude Code 中使用插件时,执行 /plugin uninstall comparegraph),然后删除二进制文件(~/.local/bin/comparegraph、brew uninstall comparegraph 或 cargo uninstall comparegraph),并在每个工作区中执行 rm -r .comparegraph。


常见问题与故障排除

  • 常见问题:它与 code-review-graph 和 codegraph 有何不同(以及它们具备而它不具备的功能)、是否使用模型(不使用)、是否会替你采纳代码(不会)、为何某些调用边的值为 0.5,以及它不会做什么。
  • 故障排除:列出十二种症状及其原因,从 no workspace 和被拒绝的 none 声明,到无提示的会话启动钩子。
  • 从 comparegraph doctor 开始:它会报告存储、每个提供方以及每个客户端的注册状态。

路线图

以下内容目前均未实现,顺序由维护者决定。完整列表及每项背后的测量结果:docs/roadmap.md。

  • 下一项经测量验证的改进方向:在存储中添加文本通道(文档注释和签名词元)以及按家族划分的同义词,提升 map 在未见克隆项目上的表现。
  • 为已采用的功能提供 port-kit 导出;导出功能统计信息;导入 claim,以及 family import/export。
  • 图谱对等查询、C/C++/C# 解析器、按文件分析缓存,以及更多客户端(Zed、Continue)。

文档

文档内容
docs/reports/README.md所有测量结果的索引,包含结论和状态
docs/dev/scripts.md每个脚本复现哪些数值
docs/dev/release.md如何发布:标签、工作流、注册表条目、tap,以及发布后需要检查的内容
docs/dev/plugin-protocol.md外部引擎的 JSON 行协议、限制、一致性要求和一个 25 行示例
docs/dev/pid-namespaces.md测试为何在 PID 命名空间中运行,以及如何启用该功能
docs/dev/language-fixtures.md每种语法对应一个固定样例、已提交的摘要,以及语法升级后如何重新生成基准
docs/usage.md可获得的功能、配置、保险库和库的用法
docs/commands.md命令行参考
docs/mcp-tools.md18 个 MCP 工具
docs/faq.md、docs/troubleshooting.md常见问题与解决方法
docs/catalog.json18 个 MCP 工具和 9 个错误代码,由生成器生成并经 CI 检查
docs/decisions.md每项临时决策、替代方案,以及可能导致决策改变的因素
docs/design.md设计
docs/roadmap.md后续计划,以及每项计划留下的内容;附有每项背后的测量结果
docs/THIRD_PARTY_NOTICES.md改编代码的来源和许可
skills/七项方法技能
fixtures/gold/README.md如何绘制和标注调用边基准
fixtures/gold-map/README.md如何制作功能映射基准
families/示例包和包含 30 项功能的 code-graph-tools 包
CHANGELOG.md各版本的变更
CONTRIBUTING.md、AGENTS.md、CODE_OF_CONDUCT.md贡献指南:圈层、不变量和禁止事项清单

贡献、许可和第三方代码

安全问题请发送至 [email protected],或通过私密安全公告提交(SECURITY.md);行为准则问题请发送至 同一地址(CODE_OF_CONDUCT.md)。

请先阅读 CONTRIBUTING.md 和 AGENTS.md。修复错误时,先编写一个失败测试;提取逻辑的变更需要扩展一致性测试固定样例;引擎中不得进行模型调用或网络调用。CI 会运行 clippy、测试套件、一致性检查和语言摘要检查,以及 cargo-deny(许可证、安全公告、来源;deny.toml)。随附的解析器层来自 graphmind(MIT);详见 docs/THIRD_PARTY_NOTICES.md。许可证:Apache-2.0,详见 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。