核心用法
relay-knowledge-cli 是一款面向大型代码库的本地知识图谱与 GraphRAG 查询工具,通过编译后的 relay-knowledge 二进制文件提供完整的代码语义分析能力。
主要功能模块
代码图谱查询(`repo query --kind`):支持 8 种查询类型——hybrid(自然语言混合检索)、symbol(符号查找)、definition(定义定位)、references(引用溯源)、callers(调用者分析)、callees(被调用者分析)、imports(导入依赖)、sbom(软件物料清单)。
软件图谱投影(`repo software --kind`):提供 9 个维度的仓库级视图,包括 dependencies(依赖关系)、sdks(SDK/API 使用)、relationships(跨域图关系)、build(构建目标)、iac(基础设施即代码)、design(设计文档)及 all 全量视图。
高级特性:功能标志与配置门控查询(repo feature-flags)、差异感知影响分析(repo impact)、索引状态管理(repo index/repo update)及多格式诊断(setup doctor、health、audit)。
执行模式
- 优先使用捆绑资产:Linux x64 与 Windows x64 预编译二进制位于
assets/目录,优先于 PATH 安装 - 隔离测试环境:支持
RELAY_KNOWLEDGE_HOME临时目录与本地确定性后端(local向量/语义后端) - JSON 优先:所有命令支持
--format json用于自动化流水线
显著优点
1. GraphRAG 原生架构:基于图神经网络的检索增强生成,相比 grep/ripgrep 提供语义级代码理解
2. 企业级代码库适配:专为大型单体仓库设计,支持增量索引、多语言混合分析及跨引用追溯
3. 安全边界清晰:显式禁止 MCP 协议层操作,避免与代理协议配置混淆
4. 跨平台工程化:内置 glibc 2.31 兼容性检查、代理环境变量透传、超时诊断等企业部署需求
潜在缺点与局限性
- 索引冷启动成本:首次全量索引可能产生后台持久任务,需通过
repo status轮询确认就绪 - 查询深度限制:调用链分析仅暴露有界单跳边(one-hop),复杂调用链需手动步进展开
- 架构依赖:Linux 旧版 glibc 环境需回退至 PATH 安装版本
- 语义后端依赖:非
local后端可能引入外部嵌入服务延迟与可用性风险
适合人群
- 平台工程团队:需建立代码库统一语义检索基础设施
- 架构师与 Tech Lead:进行模块依赖分析、技术债务评估及影响面评审
- SRE/DevOps:追踪配置门控、特性标志分布及 IaC 变更影响
- 安全审计人员:SBOM 生成与依赖漏洞影响范围分析
常规风险
| 风险类别 | 说明 |
|---------|------|
| 数据泄露 | 索引过程读取完整源码,需在受控环境执行 |
| 资源耗尽 | 大型仓库全量索引可能占用显著 CPU/内存/磁盘 |
| 过时图谱 | 未执行 `repo update` 可能导致基于旧代码的决策偏差 |
| 误报引用 | 混合检索(`hybrid`)可能返回低置信度匹配,需人工验证 |
| 供应链 | 从 GitHub Releases/crates.io 下载时需配置代理与校验和验证 |