代码图谱
要找出谁调用了某个函数,智能体通常会 grep、打开文件、再 grep——读进成千上万个用不上的 token。从智能体画一条箭头到“代码图谱”卡片,它就会直接查询项目的图谱:调用者、被调用者、定义,一次调用搞定。
基于 DeusData 的开源代码图谱引擎 codebase-memory-mcp:github.com/DeusData/codebase-memory-mcp
12
个图谱工具,一条箭头全部获得——搜索、调用关系、源码、Cypher、架构
≈5
秒即可在改动后更新图谱(我们的测试)——只重新索引变化的部分
0
字节代码被发送到任何地方——引擎在你的电脑上运行,没有遥测
一个问题,由图谱作答
这些调用及其结果,都是真实应用在一次测试中传给模型的内容,测试项目是本网站自己代码的副本。
❯ 谁调用了 localHref?我想改它的签名。
843
个符号
73 个文件 · 423 次调用
已是最新· TypeScript
最近调用
为页面做了精简:搜索共返回 31 个匹配的函数。智能体的回答仅作示意。
引擎自带的工具,限定在你的工作区
与 codebase-memory-mcp 的 MCP 服务器相同的工具和描述,像所有 NeuroSquad 插件工具一样加上前缀。项目由 NeuroSquad 自动填入,所以智能体只能访问自己工作区的图谱。
查找
codegraph_search_graph 按名称、模式或语义查找函数、类等符号;codegraph_search_code 是按图谱排序的文本搜索。
追踪
codegraph_trace_path 显示谁调用了函数、它又调用了什么,可追溯多层;codegraph_query_graph 用只读 Cypher 回答多步问题。
阅读
codegraph_get_code_snippet 返回单个符号的源码,codegraph_get_file_outline 列出文件中声明的全部内容——无需读整个文件。
理解
codegraph_get_architecture 列出语言、包、入口点和热点;codegraph_detect_changes 把未提交的改动对应到受影响的符号。
图谱跟随你的改动
过时的地图比没有地图更糟。卡片会自动让图谱与文件保持一致。
监视文件夹
文件一变,卡片就把图谱标记为过时,几秒后重新索引。依赖和构建目录会被忽略。
增量更新
只重新解析变化的部分,所以即使大项目首次构建要几分钟,后续更新也只需几秒。
每个回合之后
已连接的智能体结束一个回合时,如果有改动就刷新图谱——下一个问题就能看到新代码。
如实告知
更新进行时,返回给智能体的答案会注明这一点,卡片显示“正在更新”。智能体也可以按需重新索引。
一张卡片,一条箭头
一切都在你已经打开的画布上完成。
添加卡片
添加卡片菜单 → “插件…” → 代码图谱 → “添加到画布”。
下载并构建
点一次“下载”(约 40 MB),再点“构建图谱”。大多数项目只需几秒。
画一条箭头
从智能体指向卡片。它在下一次获取工具列表时就会拿到图谱工具——大多数 CLI 无需重启。
提结构性问题
“谁调用了这个?”“改了那个会影响什么?”——智能体去问图谱。卡片会显示哪个智能体问了什么。
NeuroSquad 运行的所有 CLI
工具通过 NeuroSquad 自己的 MCP 服务器提供,所以任何连了箭头的智能体都能使用。
图谱工具——NeuroSquad 连接到其 MCP 服务器的所有智能体
本机、WSL 和 SSH 主机(Linux x86-64 / ARM64)上的工作区:引擎在代码所在的地方运行。
代码留在你的电脑上
引擎是你机器上的一个程序,而不是一项服务。
不发送任何东西
codebase-memory-mcp 不发起网络请求,也不收集遥测。索引和所有查询都在本地完成。
经过校验的下载
引擎只从官方 GitHub 版本下载一次,并与应用内固定的校验和比对。不匹配的文件会被删除。
保存在应用文件夹
引擎和图谱都在 NeuroSquad 的数据文件夹中(WSL 或 SSH 工作区则在那里的应用自有文件夹中)——不会往你的项目或主目录写入任何内容。
不影响你自己的安装
如果你自己已经在用 codebase-memory-mcp,它会继续独立工作:NeuroSquad 运行的是与之分开的副本。
内含开源软件
由 codebase-memory-mcp 驱动
索引、图谱和工具都来自 codebase-memory-mcp:用 tree-sitter 解析一百多种语言、按类型解析调用、SQLite 图存储和 Cypher 查询,由 DeusData 以 MIT 许可证发布。NeuroSquad 下载它的官方版本,为你的工作区运行。
关于代码图谱的问题
懂得代码结构的智能体
下载 NeuroSquad,添加代码图谱卡片,再画一条箭头。