惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

PCI Perspectives
PCI Perspectives
AI
AI
L
LINUX DO - 最新话题
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
W
WeLiveSecurity
T
Troy Hunt's Blog
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Forbes - Security
Forbes - Security
Google DeepMind News
Google DeepMind News
Hacker News - Newest:
Hacker News - Newest: "LLM"
O
OpenAI News
D
DataBreaches.Net
S
Secure Thoughts
SecWiki News
SecWiki News
L
LangChain Blog
Google DeepMind News
Google DeepMind News
博客园 - 【当耐特】
Recent Announcements
Recent Announcements
Martin Fowler
Martin Fowler
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Engineering at Meta
Engineering at Meta
H
Heimdal Security Blog
有赞技术团队
有赞技术团队
The Last Watchdog
The Last Watchdog
Recent Commits to openclaw:main
Recent Commits to openclaw:main
宝玉的分享
宝玉的分享
N
News | PayPal Newsroom
博客园 - 聂微东
TaoSecurity Blog
TaoSecurity Blog
Cloudbric
Cloudbric
Blog — PlanetScale
Blog — PlanetScale
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
量子位
T
Threatpost
Security Latest
Security Latest
P
Privacy & Cybersecurity Law Blog
GbyAI
GbyAI
博客园 - 叶小钗
L
Lohrmann on Cybersecurity
S
Security @ Cisco Blogs
Y
Y Combinator Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
T
Tailwind CSS Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
酷 壳 – CoolShell
酷 壳 – CoolShell
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Apple Machine Learning Research
Apple Machine Learning Research
N
Netflix TechBlog - Medium
L
LINUX DO - 热门话题

BlogFinder

日常漫步 Vol.24 之漫步前山河 - 雅余 周报 #1-聊聊本周的收获 - Edwin's Blog 我的OpenCode必装插件与Skill Write Something 掌中之物未必在掌握之中 · CRIVU PiliNara,一个更顺手的 PiliPlus 分支 「NekoEcho」:做一个必有回响的猫娘主题博客 2026-05 书影音总结 简化博客主题 - 安迪 我第一次发布 npm 包 拾花小记#45:中考前的二三事 – 小改学习志 黛西花园5月游 #18 枇杷又熟了的五月月报 一些奇奇怪怪的需求?word仿方正书版的几个小操作 - Xiobb's Blog 0419 御温泉之旅 修复了一些bug,网站基本上趋于稳定了 - 新锐博客 又回到四十年前 如何定义成功 迷鹿屋2026已重新上线 科技冰火两重天+一周回顾 ${title} 热度退了,我反而用得更深了-咕咚同学 我到底该不该换个域名? 随身WIFI折腾记 - 安迪 博客撰写体验提升——hexo pro插件 为什么不用相机把屏幕上的接关密码拍下来? 国清寺与天台山 – Ouroboros ★★★★☆《挽救计划》——久违的经济上行感 - Davidの3号基地 删除右键“打开方式”里多余选项 第三周刊_No.53|一切都会被支付两次 安卓APP通话记录与录音上传踩坑记录 - 子舒的博客 天量下跌 inBox 笔记 2.3.8,把工具栏交给了你-咕咚同学 我把小龙虾搬到了微信-咕咚同学 安好 - 响石潭 Compound Engineering Plugin:让每个工程单元都比上一个更容易 MOSS-TTS Family:开源高质量语音与声音生成模型家族深度解析 Crawl4AI:专为 LLM 设计的开源 Web 爬虫与数据抓取工具 Build Your Own X:从零实现你最喜欢的技术——程序员进阶的终极资源清单 Anthropic Skills:用文件夹教 Claude 专业技能的开源框架 1年的去月球(下) - 梅之夏 欢迎回来。 简单讲讲 ASN.1 与 OID DTV - 直播聚合客户端 5.22-5.27 – 不兴江 还没去过鸭川 – 不兴江 张晶晶同学三刷林志颖 关于我 – 不兴江 爱与嫉妒 – 不兴江 港股被持续做空 备案码花了四百块-咕咚同学 一句话生成封面:我给公众号做了4种风格的AI封面生成技能 「官」方認證 再谈费曼学习法 2026-05-28T00:34:11+08:00 2026-05-28T00:28:45+08:00 离谱的英语学习指南:基于AI的英语进阶系统方法论 iii:零集成架构的后端统一运行时 Claude Code Harness:让 Claude Code 工作有迹可循的工程化框架 Heretic:全自动移除大语言模型审查机制的开源工具 MarkItDown:微软开源的万能文档转 Markdown 利器 Harness:让 Claude Code 秒变多智能体协作工厂 这段时间尽折腾AI Agent了,确实极大地提高了效率 近期动态:两个新站点正式上线啦 误判解除!zhouayuan.com 腾讯安全申诉成功 - 周阿源|玩具设计・插画日常・生活随笔 Ralph:让 AI 编码工具自主循环跑完所有 PRD 任务的量产神器 全都违法 – 个人工作记录 关于zhouayuan.com被误判 “含违规信息” 的说明与申诉记录 - 周阿源|玩具设计・插画日常・生活随笔 小米 MiMo v2.5 Pro 白嫖 最大的人间清醒,兜里有钱,但是不花。 夜晚靓歌(12):于文文现场solo - 王志勇的Blog 今日插画:风扬起的倔强 - 周阿源|玩具设计・插画日常・生活随笔 回门习俗 独立网卡 - 忘记了回忆 500亿入股人工智能企业 从命令行到桌面智能体-咕咚同学 第一性原理读书笔记 行者微评论223-加班の守株待兔-博客|政治与时事-风雨行者 ZOZO开源物理接触求解器:GPU加速的可扩展仿真引擎 OpenStock:开源股票市场交易平台技术深度解析 MoneyPrinterTurbo:基于AI的全自动短视频生成工具深度解析 Claude-Mem:为 Claude Code 构建的持久化记忆压缩系统 Twenty:可代码化定制的企业级开源 CRM 平台技术深度解析 2026-05-26T22:59:17+08:00 企业级开源大模型部署平台 GPUStack 实战教程 1年的去月球(上) - 梅之夏 Sevalla - 静态网站托管服务 不用翻墙、不用注册、不用月费,普通人也能用上 Claude Code 装修灯具要注意⚠️ 黄梅天先锋 - 游子微博 公安备案顺利办结,站点备案全部完成 - 周阿源|玩具设计・插画日常・生活随笔 第三次兑换天猫超市卡了宗宗酱-三维狐少儿编程 Don't think, feel. - Rolen's Blog 人这一辈子,到底图个什么 博客迁移 - Edwin's Blog 情感赛道写作模板 再现本轮行情的典型特征 裁员与平常心-咕咚同学 别让“偷懒”,成为隐私泄露的破绽 片刻 - Jdeal | Life is like a Design.
codebase-memory-mcp:毫秒级代码知识图谱引擎,让 AI 编程代理真正读懂你的代码库
Cheman · 2026-06-17 · via BlogFinder

今天在 GitHub Trending 上看到一个令人印象深刻的项目:codebase-memory-mcp,它用纯 C 实现了一个零依赖的代码知识图谱引擎,能在毫秒级回答结构化查询,让 AI 编程代理的代码理解能力从"逐文件搜索"跃升到"图谱遍历"。

一、项目概述

codebase-memory-mcp 是一个面向 AI 编程代理的代码智能后端,核心能力是将整个代码仓库索引为一棵持久化的知识图谱(Knowledge Graph),通过 MCP 协议暴露 14 个工具供代理调用。

核心解决的问题: AI 编程代理在理解大型代码库时,传统的 grep / read 逐文件搜索方式极其低效——5 次结构化查询仅需 ~3,400 tokens,而逐文件搜索需要 ~412,000 tokens,差距 120 倍。codebase-memory-mcp 通过预构建调用链、跨服务 HTTP 链接、类型推断等结构化信息,将代码理解从文本匹配升级为图谱遍历。

关键指标:

指标数据
支持语言158 种(内置 tree-sitter 语法)
Linux 内核全量索引3 分钟(28M LOC, 75K 文件)
Django 索引~6 秒
Cypher 查询响应<1ms
Token 消耗降低99.2%(120x fewer tokens)
跨平台macOS / Linux / Windows,单静态二进制

二、技术原理

架构设计

项目采用 RAM-first 流水线 架构,整个索引过程在内存中完成:

  1. LZ4 HC 压缩读取 — 高效解压源码
  2. 内存 SQLite — WAL 模式,索引构建全程在内存
  3. 单次 dump 写盘 — 索引完成后一次性持久化,内存释放
源码 → 文件发现(.gitignore/.cbmignore) → tree-sitter AST → 
定义提取 → 调用链构建 → Hybrid LSP 类型推断 → 
HTTP/gRPC 路由链接 → 知识图谱持久化

两层解析引擎

第一层:Tree-sitter 语法解析(158 语言全覆盖)

所有 tree-sitter 语法内嵌编译到二进制中,零外部依赖。这一层提取函数定义、类结构、导入关系、调用位置等语法级信息。

第二层:Hybrid LSP 语义类型推断(11 语言深度支持)

Tree-sitter 只能做语法分析,无法解析跨模块的类型引用。Hybrid LSP 层用纯 C 实现了各语言的类型解析算法:

  • Python:导入链 + dataclass/Mapped[T]/BaseModel 泛型推断
  • TypeScript/TSX:泛型实例化 + JSX 组件分发 + .d.ts 声明合并
  • Go:包级跨文件注册表 + 接口满足判定 + 内嵌结构体
  • Rustuse 声明 + trait 方法 + UFCS 静态路径
  • Java/Kotlin/C#/PHP/C/C++:各自的类层次、泛型、命名空间解析

这意味着生成的 CALLS 边不仅记录了调用位置,还解析了实际调用的目标方法——等同于 IDE 的 “Go to Definition” 能力。

知识图谱数据模型

节点类型: Project, Package, Folder, File, Module, Class, Function, Method, Interface, Enum, Type, Route, Resource

边类型(精选):

  • CALLS — 函数调用链
  • IMPORTS — 模块导入
  • HTTP_CALLS / ASYNC_CALLS — 跨服务调用
  • EMITS / LISTENS_ON — 事件通道(Socket.IO, EventEmitter 等)
  • DATA_FLOWS — 参数到参数的数据流映射
  • SIMILAR_TO — MinHash + LSH 近似克隆检测
  • SEMANTICALLY_RELATED — 语义关联(词汇不匹配但语义等价)

语义搜索

内置 Nomic nomic-embed-code 嵌入模型(40K tokens, 768d int8),编译进二进制,无需 API Key 或 Ollama。11 信号联合评分:TF-IDF、RRI、API/类型/装饰器签名、AST 轮廓、数据流、Halstead-lite、MinHash、模块邻近度、图扩散。

Cypher 查询支持

实现了 openCypher 只读子集,支持 MATCH/WHERE/WITH/RETURN/ORDER BY/UNION/UNWIND,以及 EXISTS { (n)-[:TYPE]->() } 等单跳存在性检查。例如查找无人调用的死代码:

MATCH (f:Function) WHERE NOT EXISTS { (f)<-[:CALLS]-() } RETURN f.name

三、安装与快速开始

一行安装

# macOS / Linux
curl -fsSL https://raw.githubusercontent.com/DeusData/codebase-memory-mcp/main/install.sh | bash

# 含 3D 图可视化 UI
curl -fsSL https://raw.githubusercontent.com/DeusData/codebase-memory-mcp/main/install.sh | bash -s -- --ui

安装脚本会自动:

  • 下载对应平台的静态二进制
  • 剥离 macOS 隔离属性并 ad-hoc 签名
  • 检测已安装的编程代理(Claude Code、Codex CLI、Gemini CLI 等 11 种)并自动配置 MCP 条目

验证安装

重启编程代理后,在代理中说 “Index this project” 即可。代理会调用 index_repository 工具开始索引。

手动 MCP 配置

如不使用 install 命令,可手动添加到 ~/.claude/.mcp.json

{
  "mcpServers": {
    "codebase-memory-mcp": {
      "command": "/path/to/codebase-memory-mcp",
      "args": []
    }
  }
}

四、使用方法与实战

架构概览

Agent: "这个项目的架构是怎样的?"
→ get_architecture → 返回语言、包、入口点、路由、热点、边界、层级、聚类

调用链追踪

Agent: "谁调用了 ProcessOrder?"
→ trace_path(function_name="ProcessOrder", direction="inbound")
→ 返回完整调用链

变更影响分析

Agent: "修改了这个函数会影响什么?"
→ detect_changes → 映射 git diff 到受影响符号 + 风险分类

死代码检测

Agent: "找出所有没有调用者的函数"
→ search_graph(label="Function", min_in_degree=0) 
  + Cypher: MATCH (f:Function) WHERE NOT EXISTS { (f)<-[:CALLS]-() } RETURN f.name

跨服务 HTTP 链接

自动检测 REST 路由并在服务间建立 HTTP_CALLS 边,还能识别 gRPC、GraphQL、tRPC 的服务定义。

团队共享图谱

.codebase-memory/graph.db.zst(zstd 压缩的知识图谱快照)提交到仓库,队友克隆后直接解压使用,跳过全量索引。压缩比 8–13:1,配合 .gitattributes merge=ours 避免合并冲突。

CLI 模式

所有 MCP 工具均可命令行调用:

codebase-memory-mcp cli search_graph '{"name_pattern": ".*Handler.*"}'
codebase-memory-mcp cli trace_path '{"function_name": "Search", "direction": "both"}'
codebase-memory-mcp cli query_graph '{"query": "MATCH (f:Function) RETURN f.name LIMIT 5"}'

图可视化 UI

codebase-memory-mcp --ui=true --port=9749
# 浏览器打开 http://localhost:9749 即可看到 3D 交互式图谱

五、常见问题与解决方案

Q: /mcp 不显示服务?

检查 .mcp.json 中路径是否为绝对路径。验证方式:echo '{}' | /path/to/binary 应输出 JSON。重启代理。

Q: trace_path 返回 0 结果?

先用 search_graph(name_pattern=".*PartialName.*") 查找精确函数名,Hybrid LSP 的类型推断需要精确匹配。

Q: 查询返回了错误项目的结果?

添加 project="name" 参数。用 list_projects 查看已索引项目名称。

Q: Windows SmartScreen 警告?

当前二进制未签名,点击 “More info” → “Run anyway”。可用 checksums.txt 校验 SHA-256。

Q: 索引大仓库内存不够?

RAM-first 管线在索引期间占内存,完成后释放。可通过 CBM_WORKERS 环境变量减少并行工作线程数。

Q: 想忽略某些文件?

在项目根目录创建 .cbmignore(语法同 .gitignore),或设置 auto_index_limit 限制文件数。

六、总结

codebase-memory-mcp 填补了 AI 编程代理生态中的一个关键空白:结构化代码理解。它用纯 C 零依赖的单二进制,实现了从 158 种语言的语法解析到 11 种语言的语义类型推断,再到跨服务调用链链接的全链路能力。120 倍的 token 节省和毫秒级的查询响应,使其成为大型代码库中 AI 代理的"代码记忆"。对于任何需要在大型项目中使用 AI 辅助编程的开发者,这个项目值得立刻安装试用。

项目地址:https://github.com/DeusData/codebase-memory-mcp