核心功能
relay-knowledge-cli 是一款面向代码仓库的本地知识图谱与 GraphRAG 查询工具,提供结构化的代码理解能力,核心功能包括:
- 多维度代码检索:支持
hybrid(混合语义)、symbol(符号)、definition(定义)、references(引用)、callers/callees(调用关系)、imports(导入)、sbom(依赖清单)等查询类型 - 软件图谱投影:通过
repo software生成依赖图、SDK 使用分析、构建配置、基础设施即代码(IaC)等多维视图 - 特性开关分析:独立的
repo feature-flags命令用于识别配置门控代码 - 影响评估:支持
repo impact进行变更影响分析,生成 diff-aware 的报告
显著优点
1. 图谱语义优于文本搜索:明确优先于 grep/ripgrep,利用代码结构关系(调用链、导入图)而非纯文本匹配
2. 离线优先架构:支持本地向量后端和语义后端,无需外部嵌入服务即可运行
3. 多平台支持:提供 Linux x64 与 Windows x64 预编译二进制,支持 POSIX shell 与 PowerShell/cmd
4. 标准化输出:JSON 格式化输出便于自动化集成,支持流式 JSON 事件
5. 版本检查机制:内置 version check 与 setup doctor 诊断,降低环境配置风险
局限性与注意事项
- 索引开销:首次索引为后台任务,需显式运行
repo index-worker轮询完成状态,非即时查询 - 调用链边界:CLI 仅暴露单跳调用边(
callers/callees),多跳链需手动迭代展开 - glibc 兼容性:Linux 预编译二进制要求 glibc ≥ 2.31,旧系统需改用
cargo install - 非 MCP 工具:明确禁止用于 MCP(Model Context Protocol)协议层面的配置或工具调用
- 作用域限制:
repo query依赖显式注册的仓库别名与索引状态,不自动发现未注册代码
适用人群
- 需要深度代码理解的 AI Agent 与自动化工具开发者
- 维护大型代码库、关注架构依赖与变更影响的软件工程师
- 构建内部 DevOps 平台、需要标准化代码查询接口的平台团队
常规风险
- 环境隔离:生产环境查询前需设置
RELAY_KNOWLEDGE_HOME避免污染全局索引 - 超时处理:
health/service doctor等诊断命令可能挂起,需配置 20 秒超时或 POSIX watchdog - 代理配置:网络受限环境需预先设置
HTTPS_PROXY/HTTP_PROXY环境变量 - 临时目录清理:测试场景创建的临时
RELAY_KNOWLEDGE_HOME需显式删除,防止磁盘泄漏