mcpField
L
llmgraph

llmgraph

本地服务
beta.llmgraph.in开发工具2今天更新

关于 llmgraph

llmgraph 为编码 Agent 分析函数调用关系和代码变更影响,适用于希望在编辑前后核查依赖的开发者。它区分已证明的调用与分析盲区,并说明证据和不确定性。

主要功能

  1. 01查找函数调用者及不可见调用
  2. 02分析修改可能造成的破坏
  3. 03检查编辑后遗漏的调用点
  4. 04标注结论的确定程度
  5. 05解释每条结论的依据

适用场景

  1. 01修改函数签名前查找调用方
  2. 02检查代码变更遗漏的调用点
  3. 03区分可证明依赖与动态调用盲区

MCP 相关

提供 MCP 服务,MCP Agent 可使用调用关系、变更影响、盲区和证据查询工具。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"brainfoods-studio-llmgraph": {
"command": "npx",
"args": [
"-y",
"llmgraph-mcp"
]
}
}
}
启动命令npx -y llmgraph-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmllmgraph-mcp0.4.6

工具

还没有获取到工具列表

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

详细介绍

LLMGRAPH:每张调用图都有盲点。我们会告诉你盲点在哪里。

LLMGRAPH

每张调用图都有盲点。我们会告诉你盲点在哪里。

LLMGRAPH 只绘制它能够证实的调用。对于它看不到的调用,它会统计数量,并用直白的语言说明,让你的 Agent 在编辑前就能看到盲点。

我构建 LLMGRAPH,作为编码 Agent 的真实信息层,而真实信息也包括盲点:Agent 会猜测;LLMGRAPH 会证实它能证实的内容,并指出它无法证实的内容。在三个开源代码库上进行的 50 个问题盲测中,没有一个肯定的回答是错的。


两个函数。同一个名称。你的 Agent 分不出来,我们可以。

grep 会读取名称。LLMGRAPH 会追踪调用。它能证实的,就会证实;不能证实的,就会告诉你,精确到它停下来的那一行。

zod 带有两个 addIssueToContext 副本。文本搜索会把它们混在一起:

$ rg -n addIssueToContext      # zod v3.23.8
146 lines, from both copies, mixed together

LLMGRAPH 会将它们区分开,并展示推理过程:

llmgraph · who_calls addIssueToContext (src/helpers/parseUtil.ts:72): 71 in a set
  ⚠︎ type checker starting: answers use our own reading for now; 71 calls unchecked
  ◇ within_these 71 calls -> one of 1 (closed: repo only) [c] w1
  ⚠︎ plus 7 dynamic calls nearby that could reach anything w2
  – ruled out: 71 same-name calls (proven: other target) [c] w3
  assumes [c]: our own reading, not confirmed by the checker
(lines trimmed)

**排除了 71 个相似项,并说明了原因。**而对于类型检查器尚未确认的内容,它也会如实说明。

谁在另一端?

你的 Agent 在顺着线索追查之前,应该先弄清楚。在 requests 中,将 super_len(o) 改为 super_len(o, strict),然后调用 check_my_changes:

llmgraph · check_my_changes: 1 file changed, 16 calls break
  16 breaks: misses "strict" w1
  ⚠︎ breaks if it runs super_len src/requests/models.py:526 PreparedRequest.prepare_body (within_these, one of 1, closed: repo only) [c] w2
  ⚠︎ breaks if it runs super_len src/requests/models.py:575 PreparedRequest.prepare_content_length (within_these, one of 1, closed: repo only) [c] w3
  ⚠︎ breaks if it runs super_len tests/test_utils.py:62 TestSuperLen.test_io_streams (within_these, one of 1, closed: repo only) [c] w4
  … 13 more test call sites
  ⚠︎ plus 9 dynamic calls nearby that could reach super_len w18
(lines trimmed)

**准确指出 16 个失效调用,且恰好都是真正受影响的调用。**盲测者的文本搜索找到了同样的 16 个,不多不少。而它无法追踪的 9 个动态调用也都被标记出来,而非忽略。

随后,类型检查器完成了检查。几秒后再问一次:

llmgraph · who_calls super_len (src/requests/utils.py:135): 16 certain
  ✓ certain src/requests/models.py:526 PreparedRequest.prepare_body w33
  +1 more (all certain, same file) w34
  ✓ certain tests/test_utils.py:62 TestSuperLen.test_io_streams w35
  +13 more (all certain, same file) w36
  ⚠ plus 9 dynamic calls nearby that could reach anything w37
(lines trimmed)

**从“我们自己的阅读结果”变为已发布程序中的 16 个 certain。**它的标签绝不会超出已证实的范围,并会在获得证据后立即升级。

五种标签

其他工具根据传闻勾勒你的代码库,并自信地填补盲点。LLMGRAPH 只用两种颜色工作:已证实内容用墨色标出,未证实内容用直白的警告说明,绝不会把两者混为一谈。

标签含义
certain我们可以证实它确切地是一个函数。
exactly_these一个已知集合,且其中每个成员确实都能在此处运行。
within_these是已知列表中的一个;列表中有些项可能永远不会在此处出现。
maybe_more存在候选项,但可能还有其他项。
cannot_see没有任何线索。

回答不会给出概率数字,而是说明哪些可能性已被排除。

在我们的测试项目中进行测量

在你的 Agent 发起询问后,类型检查器会在不到一秒内确认调用者(Python);而 check_my_changes 会在 LLMGRAPH 完成保存后的更新后,于不到一秒内给出回答。对于也出现在无关代码中的名称,它没有指出任何错误调用者,而纯文本搜索返回了数百行错误结果,Agent 阅读的令牌也不到一半;对于干净且唯一的名称,则没有节省。

测量方法、原始数据以及 LLMGRAPH 的不足之处:BENCHMARKS.md。

你的 Agent 可以询问什么

工具回答内容
who_calls调用此函数的所有位置,以及我们看不到的调用。
what_breaks_if_changed直接或间接依赖此函数的所有内容,以及我们看不到的内容。
check_my_changes编辑后:你未更新的调用者,以及任何我们看不到的内容。
what_is_unknown我们视野中的盲点(动态调用、未知类型、无法读取的文件)及其原因。
explain我们给出此结论的原因:某一条回答背后的证据。

你的代码会在你的机器上读取和分析,我们绝不会收到你的代码、路径、符号或代码库名称、查询或回答。在已发布程序中检查过:它只会联系 beta.llmgraph.in。使用量统计和崩溃报告默认开启,可以关闭(npx -y llmgraph-mcp telemetry off);许可证检查始终开启。隐私页面。

安装

Claude Code(插件):

claude plugin marketplace add brainfoods-studio/llmgraph-agent-plugin
claude plugin install llmgraph@llmgraph

该插件会在你的 Agent 搜索函数或类名之前提供 LLMGRAPH 的答案,且绝不会阻止搜索。当你的 Agent 即将完成时,如果已保存的编辑导致某些调用确定会出错,它会拦截一次并列出这些调用;对于其他情况绝不会拦截。运行 npx -y llmgraph-mcp hook off 即可关闭这两项功能。

**任何 MCP Agent:**添加服务 npx -y llmgraph-mcp(在 Windows 上,某些 Agent 需要运行 cmd /c npx -y llmgraph-mcp),使用 Google 登录一次,然后由你的 Agent 发起请求。设置指南适用于 Claude Code、Antigravity、Cursor、Codex、Gemini CLI、Windsurf 和 OpenCode;我们已在 Claude Code 和 Antigravity 上进行测试。

**当前限制:**Windows x64 · Python 和 TypeScript/JavaScript(其他语言会报告为 cannot_see,不会被视为没有任何内容)· 仓库行数不超过套餐限制 · 仅限受邀参与的 Beta 版,申请邀请 · 个人用户可试用一种套餐,价格。

此仓库包含采用 MIT 许可证的开源设置文件;LLMGRAPH 引擎为闭源软件,并根据 EULA 在你的机器上运行。Brainfoods Studio,印度 · [email protected] · [email protected]

评论

支持 Markdown

第一次接触 MCP?

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

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