加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一下这个场景:你接手了一个 50 万行的遗留系统,需要在两周内完成重构。传统的做法是什么?grep、阅读注释、翻 PR 记录、问同事——效率低下,信息零散。而 CKB(Code Knowledge Backend)想做的事,就是把整个代码库变成一个可查询的知识图谱:每一个符号的定义、每一次调用的路径、每一个修改的影响范围,都可以用自然语言提问。
这不是一个新玩具。创始人 SimplyLiz 在维护多个大型代码库时,深刻感受到「代码索引」这个中间层的缺失——现有 LLM 工具只知道当前对话窗口的上下文,无法真正理解项目级的符号关系和架构边界。CKB 正是为填补这个空白而生。
CKB 提供 70+ 条 CLI 命令和 MCP 工具,分七个维度解决代码理解问题:
| 场景 | 痛点 | CKB 如何解决 |
|---|---|---|
| 影响分析 | 改这里会破坏什么? | 精确爆炸半径 + 风险评分 |
| 符号导航 | 这个函数被谁调用? | 调用图 + 引用追踪 |
| 死代码检测 | 哪些代码已经废弃? | 置信度评分 |
| 架构映射 | 系统如何分层? | 架构图 + 耦合分析 |
| 安全扫描 | 是否有暴露的密钥? | 26 种模式自动扫描 |
| 合规审计 | 代码是否符合 GDPR/PCI? | 131 项合规检查 |
| 变更评审 | 这个 PR 风险多大? | 21 项质量检查 |
最核心的能力是 ckb impact ——给定一段代码,它能精准回答:修改这个函数,测试套件中有哪些用例需要重新跑?谁应该来 review 这个变更?这个改动会触发哪些 CI 流程?这解决了 AI 编程工具最大的盲区:LLM 擅长生成代码,却无法量化变更的影响范围。
CKB 底层采用 Go 语言编写,充分利用 Go 的并发优势处理大规模代码索引。核心技术栈包括:
项目采用模块化架构,70+ 个 internal 包各司其职:internal/mcp 处理 MCP 协议通信、internal/symbols 负责符号解析、internal/graph 构建调用图、internal/cartographer 生成架构地图。这种设计让功能模块高度解耦,新增语言支持或分析维度只需添加对应 internal 包。
值得注意的是,CKB 使用了 CodeCartographer(一个 Rust 编写的静态库)来处理架构级别的代码理解。Makefile 中提供了两种构建方式:直接下载预编译的静态库(无需 Rust 工具链)或从源码编译。这个设计既保证了开发体验(Go 开发者无需装 Rust),又保留了协同开发的能力。
CLI 模式适合本地开发流程。ckb init 初始化项目,ckb index 生成索引,ckb status 查看状态。ckb serve 启动 HTTP 服务后,支持 REST API 调用,适合集成到现有 CI/CD 系统。
MCP Server 模式是 CKB 的核心亮点。Model Context Protocol(MCP)是 AI 工具的标准协议,支持 Claude Code、Cursor、VS Code 等主流 AI 编程工具直接调用 CKB 的分析能力。JSON 格式的配置文件 .mcp.json 描述了服务入口,AI 工具加载后即可在对话中调用:修改建议会自动带上「这个改动会影响哪些测试」「哪些模块耦合度最高」等上下文。
A2A(Agent-to-Agent)协议是 2025 年的新方向,支持多个 AI Agent 之间互相查询代码知识。这意味着团队中不同角色的 Agent 可以共享同一个代码索引,各自从自己的角度理解代码。
CKB 没有 Web 界面,采用纯命令行驱动。Dockerfile 提供了多阶段构建:编译阶段用 golang:1.24-alpine,运行时镜像精简到 alpine:3.21,总体积控制在合理范围。npm 包(@tastehub/ckb)支持 npx 即开即用,降低了非 Go 开发者的使用门槛。
部署需要准备 Go 1.26+ 环境(无 Go 经验的用户可通过 npm 间接使用),硬件要求极低:不需要 GPU,内存仅需 512MB,磁盘 200MB 即可存储中型项目的索引。从零部署到跑通第一个 ckb impact 命令,约需 10 分钟。
不足之处:没有 docker-compose 一键启动方案,对于不熟悉命令行的用户来说不够友好;也没有 Web UI 查看索引结果,只能在终端中交互。
代码库包含 .golangci.yml 配置 golangci-lint 静态检查,codecov.yml 配置覆盖率报告。Makefile 提供 make test 和 make lint 两种质量门禁。.trivyignore 和 .gitleaks.toml 表明项目对容器镜像安全和密钥泄露有基本防护。
作为一个本地工具,CKB 不存在数据隐私问题——所有代码分析都在用户本地完成,不向外部服务发送任何代码内容。这对于安全敏感的企业环境尤为重要。
2024-2025 年,代码索引基础设施赛道快速升温:Sourcegraph 旗下的代码智能平台、GitHub Copilot 的上下文扩展、以及 CKB 这类开源替代方案,都在争夺同一个定位——成为 AI 编程工具的「第二大脑」。
CKB 的差异化在于:完全本地化、协议标准化(MCP + A2A)、功能粒度细(影响分析 vs 简单搜索)。作为一个 Go 编写的小型开源项目,它在 GitHub 上获得了超过 1200 个 stars,证明开发者对「让 AI 真正理解代码库」这件事有强烈需求。
如果你经常与大型代码库打交道、或者在开发 AI 编程工具,CKB 值得花 10 分钟上手体验。