关于 kg-extract
kg-extract 用于从源代码和文档提取实体及其关系,并存入 AgentDB,支持分析代码结构、依赖和变更影响;还会区分 TypeScript 仅类型导入与值导入。
主要功能
- 01提取代码和文档实体
- 02映射导入、继承、调用和依赖
- 03区分仅类型导入与值导入
- 04将实体和关系存入 AgentDB
- 05汇总实体与关系数量
适用场景
- 01从源文件构建知识图谱
- 02分析代码结构与依赖
- 03评估代码变更的影响
MCP 相关
使用 Ruflo MCP 工具将实体和因果边存入 AgentDB。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ ruvnet/ ruflo --skill kg-extract安装后在 Claude Code 中输入/kg-extract确认已加载。
详细介绍
KG Extract
从源文件中提取实体(类、函数、模块、类型、概念)及其关系(导入、继承、实现、依赖、调用),然后将其作为知识图谱存储在 AgentDB 中。
使用场景
当你需要根据源代码或文档构建或更新知识图谱时。适用于了解代码库结构、分析依赖关系和评估影响。
步骤
-
扫描文件——使用
Glob和Read枚举并读取给定路径中的源文件 -
识别实体——从每个文件中提取类、函数、模块、类型和配置引用
-
映射关系——为每个实体确定其与其他实体的关系。关键:TypeScript 的
import type和内联type指示符(import { type Foo, bar })会在编译时被擦除,不得将其计为值导入——它们属于单独且较弱的关系。错误分类会产生虚假的运行时循环(参见 ruvnet/ruflo#2049)。imports:值导入(import { x } from '...'、require(...))——权重为0.9type-depends-on:仅导入 TypeScript 类型(import type { Foo } from '...'和import { type Foo, value } from '...')——权重为0.1,绝不用于循环检测或运行时影响分析extends:类继承——权重为0.9implements:接口实现——权重为0.7depends-on:构造函数依赖、注入的服务——权重为0.8calls:函数/方法调用——权重为0.7references:文档提及、注释——权重为0.3
用于分类 TS 导入的正则表达式提示(避免简单的
from '...'grep 将两者混淆):^\s*import\s+type\s+ → type-depends-on (entire import is type-only) ^\s*import\s*\{[^}]*\btype\s+\w+ → split: type specifiers → type-depends-on, value specifiers → imports ^\s*import\s+[^{]*\bfrom\s+ → imports (value) -
存储到 AgentDB——为每个实体调用
mcp__plugin_ruflo-core_ruflo__agentdb_hierarchical-store,并提供元数据(名称、类型、文件、行号、描述) -
创建边——为每个关系调用
mcp__plugin_ruflo-core_ruflo__agentdb_causal-edge,并提供来源、目标、关系类型和权重 -
报告——汇总:各类型实体总数、各类型关系总数、扫描的文件
CLI 替代方案
npx @claude-flow/cli@latest memory store --namespace knowledge-graph --key "entity-NAME" --value "METADATA_JSON"
npx @claude-flow/cli@latest memory search --query "entities in auth module" --namespace knowledge-graph